From f6ce926719943751cf65cacde7fae050593eb2d6 Mon Sep 17 00:00:00 2001 From: Perberos <perberos@gmail.com> Date: Wed, 9 Nov 2011 18:17:43 -0300 Subject: inicial --- AUTHORS | 12 + COPYING | 340 + MAINTAINERS | 11 + Makefile.am | 116 + NEWS | 2810 +++++++ README | 21 + TODO | 3 + autogen.sh | 23 + backend/Makefile.am | 40 + backend/backend.symbols | 1 + backend/comics/Makefile.am | 32 + backend/comics/comics-document.c | 936 +++ backend/comics/comics-document.h | 38 + backend/comics/comicsdocument.evince-backend.in | 4 + backend/djvu/Makefile.am | 38 + backend/djvu/djvu-document-private.h | 48 + backend/djvu/djvu-document.c | 706 ++ backend/djvu/djvu-document.h | 38 + backend/djvu/djvu-links.c | 434 ++ backend/djvu/djvu-links.h | 35 + backend/djvu/djvu-text-page.c | 445 ++ backend/djvu/djvu-text-page.h | 59 + backend/djvu/djvudocument.evince-backend.in | 4 + backend/dvi/Makefile.am | 47 + backend/dvi/cairo-device.c | 373 + backend/dvi/cairo-device.h | 41 + backend/dvi/dvi-document.c | 610 ++ backend/dvi/dvi-document.h | 38 + backend/dvi/dvidocument.evince-backend.in | 4 + backend/dvi/fonts.c | 57 + backend/dvi/fonts.h | 6 + backend/dvi/mdvi-lib/Makefile.am | 43 + backend/dvi/mdvi-lib/afmparse.c | 1303 ++++ backend/dvi/mdvi-lib/afmparse.h | 307 + backend/dvi/mdvi-lib/bitmap.c | 1035 +++ backend/dvi/mdvi-lib/bitmap.h | 145 + backend/dvi/mdvi-lib/color.c | 136 + backend/dvi/mdvi-lib/color.h | 34 + backend/dvi/mdvi-lib/common.c | 168 + backend/dvi/mdvi-lib/common.h | 285 + backend/dvi/mdvi-lib/defaults.h | 71 + backend/dvi/mdvi-lib/dviopcodes.h | 72 + backend/dvi/mdvi-lib/dviread.c | 1585 ++++ backend/dvi/mdvi-lib/files.c | 80 + backend/dvi/mdvi-lib/font.c | 519 ++ backend/dvi/mdvi-lib/fontmap.c | 1174 +++ backend/dvi/mdvi-lib/fontmap.h | 82 + backend/dvi/mdvi-lib/fontsrch.c | 371 + backend/dvi/mdvi-lib/gf.c | 395 + backend/dvi/mdvi-lib/hash.c | 224 + backend/dvi/mdvi-lib/hash.h | 49 + backend/dvi/mdvi-lib/list.c | 120 + backend/dvi/mdvi-lib/mdvi.h | 623 ++ backend/dvi/mdvi-lib/pagesel.c | 491 ++ backend/dvi/mdvi-lib/paper.c | 171 + backend/dvi/mdvi-lib/paper.h | 32 + backend/dvi/mdvi-lib/pk.c | 570 ++ backend/dvi/mdvi-lib/private.h | 65 + backend/dvi/mdvi-lib/setup.c | 48 + backend/dvi/mdvi-lib/sp-epsf.c | 311 + backend/dvi/mdvi-lib/special.c | 249 + backend/dvi/mdvi-lib/sysdeps.h | 116 + backend/dvi/mdvi-lib/t1.c | 630 ++ backend/dvi/mdvi-lib/tfm.c | 214 + backend/dvi/mdvi-lib/tfmfile.c | 747 ++ backend/dvi/mdvi-lib/tt.c | 495 ++ backend/dvi/mdvi-lib/util.c | 550 ++ backend/dvi/mdvi-lib/vf.c | 241 + backend/dvi/texmfcnf.c | 64 + backend/dvi/texmfcnf.h | 34 + backend/impress/Makefile.am | 57 + backend/impress/common.h | 40 + backend/impress/document.c | 140 + backend/impress/f_oasis.c | 170 + backend/impress/f_oo13.c | 181 + backend/impress/iksemel.c | 1882 +++++ backend/impress/iksemel.h | 402 + backend/impress/imposter.h | 84 + backend/impress/impress-document.c | 548 ++ backend/impress/impress-document.h | 39 + backend/impress/impressdocument.evince-backend.in | 4 + backend/impress/internal.h | 85 + backend/impress/r_back.c | 46 + backend/impress/r_draw.c | 120 + backend/impress/r_geometry.c | 208 + backend/impress/r_gradient.c | 387 + backend/impress/r_style.c | 111 + backend/impress/r_text.c | 386 + backend/impress/render.c | 54 + backend/impress/zip.c | 349 + backend/impress/zip.h | 18 + backend/pdf/Makefile.am | 34 + backend/pdf/ev-poppler.cc | 3290 ++++++++ backend/pdf/ev-poppler.h | 40 + backend/pdf/pdfdocument.evince-backend.in | 6 + backend/pixbuf/Makefile.am | 30 + backend/pixbuf/pixbuf-document.c | 208 + backend/pixbuf/pixbuf-document.h | 38 + backend/pixbuf/pixbufdocument.evince-backend.in | 4 + backend/ps/Makefile.am | 32 + backend/ps/ev-spectre.c | 473 ++ backend/ps/ev-spectre.h | 48 + backend/ps/psdocument.evince-backend.in | 5 + backend/tiff/Makefile.am | 33 + backend/tiff/tiff-document.c | 533 ++ backend/tiff/tiff-document.h | 38 + backend/tiff/tiff2ps.c | 1872 +++++ backend/tiff/tiff2ps.h | 30 + backend/tiff/tiffdocument.evince-backend.in | 4 + config.h.in~ | 191 + configure.ac | 884 +++ cut-n-paste/Makefile.am | 3 + cut-n-paste/gimpcellrenderertoggle/Makefile.am | 38 + .../gimpcellrenderertoggle.c | 492 ++ .../gimpcellrenderertoggle.h | 77 + .../gimpcellrenderertoggle/gimpwidgetsmarshal.list | 26 + cut-n-paste/smclient/Makefile.am | 42 + cut-n-paste/smclient/eggdesktopfile.c | 1477 ++++ cut-n-paste/smclient/eggdesktopfile.h | 159 + cut-n-paste/smclient/eggsmclient-osx.c | 235 + cut-n-paste/smclient/eggsmclient-private.h | 53 + cut-n-paste/smclient/eggsmclient-win32.c | 353 + cut-n-paste/smclient/eggsmclient-xsmp.c | 1370 ++++ cut-n-paste/smclient/eggsmclient.c | 589 ++ cut-n-paste/smclient/eggsmclient.h | 117 + cut-n-paste/synctex/Makefile.am | 14 + cut-n-paste/synctex/synctex_parser.c | 4171 +++++++++++ cut-n-paste/synctex/synctex_parser.h | 345 + cut-n-paste/synctex/synctex_parser_utils.c | 462 ++ cut-n-paste/synctex/synctex_parser_utils.h | 123 + cut-n-paste/toolbar-editor/Makefile.am | 108 + cut-n-paste/toolbar-editor/egg-editable-toolbar.c | 1828 +++++ cut-n-paste/toolbar-editor/egg-editable-toolbar.h | 91 + cut-n-paste/toolbar-editor/egg-toolbar-editor.c | 672 ++ cut-n-paste/toolbar-editor/egg-toolbar-editor.h | 63 + cut-n-paste/toolbar-editor/egg-toolbars-model.c | 987 +++ cut-n-paste/toolbar-editor/egg-toolbars-model.h | 190 + cut-n-paste/toolbar-editor/eggmarshalers.list | 1 + cut-n-paste/totem-screensaver/Makefile.am | 16 + cut-n-paste/totem-screensaver/README | 3 + cut-n-paste/totem-screensaver/totem-scrsaver.c | 554 ++ cut-n-paste/totem-screensaver/totem-scrsaver.h | 57 + cut-n-paste/zoom-control/Makefile.am | 16 + cut-n-paste/zoom-control/ephy-zoom-action.c | 336 + cut-n-paste/zoom-control/ephy-zoom-action.h | 68 + cut-n-paste/zoom-control/ephy-zoom-control.c | 345 + cut-n-paste/zoom-control/ephy-zoom-control.h | 63 + cut-n-paste/zoom-control/ephy-zoom.c | 68 + cut-n-paste/zoom-control/ephy-zoom.h | 81 + data/Makefile.am | 109 + data/evince-previewer-ui.xml | 34 + data/evince-toolbar.xml | 39 + data/evince-ui.xml | 138 + data/evince.1 | 41 + data/evince.convert | 2 + data/evince.desktop.in.in | 17 + data/evince.ico | Bin 0 -> 24998 bytes data/hand-open.png | Bin 0 -> 1088 bytes data/icons/16x16/Makefile.am | 3 + data/icons/16x16/actions/Makefile.am | 27 + data/icons/16x16/actions/object-rotate-left.png | Bin 0 -> 607 bytes data/icons/16x16/actions/object-rotate-right.png | Bin 0 -> 632 bytes data/icons/16x16/actions/view-page-continuous.png | Bin 0 -> 446 bytes data/icons/16x16/actions/view-page-continuous.xcf | Bin 0 -> 2190 bytes data/icons/16x16/actions/view-page-facing.png | Bin 0 -> 471 bytes data/icons/16x16/actions/view-page-facing.xcf | Bin 0 -> 2158 bytes data/icons/16x16/actions/zoom-fit-height.png | Bin 0 -> 811 bytes data/icons/16x16/actions/zoom-fit-page.svg | 282 + data/icons/16x16/actions/zoom-fit-width.png | Bin 0 -> 771 bytes data/icons/16x16/actions/zoom-fit-width.svg | 278 + data/icons/16x16/actions/zoom.png | Bin 0 -> 876 bytes data/icons/16x16/actions/zoom.svg | 247 + data/icons/16x16/apps/Makefile.am | 16 + data/icons/16x16/apps/evince.png | Bin 0 -> 840 bytes data/icons/16x16/mimetypes/Makefile.am | 14 + .../16x16/mimetypes/x-office-presentation.png | Bin 0 -> 668 bytes data/icons/22x22/Makefile.am | 3 + data/icons/22x22/actions/Makefile.am | 28 + data/icons/22x22/actions/eye.png | Bin 0 -> 617 bytes data/icons/22x22/actions/object-rotate-left.png | Bin 0 -> 911 bytes data/icons/22x22/actions/object-rotate-right.png | Bin 0 -> 939 bytes data/icons/22x22/actions/view-page-continuous.png | Bin 0 -> 722 bytes data/icons/22x22/actions/view-page-continuous.xcf | Bin 0 -> 4004 bytes data/icons/22x22/actions/view-page-facing.png | Bin 0 -> 483 bytes data/icons/22x22/actions/view-page-facing.xcf | Bin 0 -> 1871 bytes data/icons/22x22/actions/zoom-fit-page.png | Bin 0 -> 1377 bytes data/icons/22x22/actions/zoom-fit-page.svg | 254 + data/icons/22x22/actions/zoom-fit-width.png | Bin 0 -> 1405 bytes data/icons/22x22/actions/zoom-fit-width.svg | 252 + data/icons/22x22/actions/zoom.png | Bin 0 -> 1294 bytes data/icons/22x22/actions/zoom.svg | 215 + data/icons/22x22/apps/Makefile.am | 16 + data/icons/22x22/apps/evince.png | Bin 0 -> 1209 bytes data/icons/22x22/mimetypes/Makefile.am | 14 + .../22x22/mimetypes/x-office-presentation.png | Bin 0 -> 1024 bytes data/icons/24x24/Makefile.am | 3 + data/icons/24x24/actions/Makefile.am | 23 + data/icons/24x24/actions/object-rotate-left.png | Bin 0 -> 924 bytes data/icons/24x24/actions/object-rotate-right.png | Bin 0 -> 943 bytes data/icons/24x24/actions/stock_filters-invert.png | Bin 0 -> 402 bytes data/icons/24x24/actions/view-page-continuous.png | Bin 0 -> 724 bytes data/icons/24x24/actions/view-page-facing.png | Bin 0 -> 471 bytes data/icons/24x24/actions/zoom-fit-height.png | Bin 0 -> 1146 bytes data/icons/24x24/actions/zoom-fit-width.png | Bin 0 -> 1170 bytes data/icons/24x24/actions/zoom.png | Bin 0 -> 1344 bytes data/icons/24x24/apps/Makefile.am | 16 + data/icons/24x24/apps/evince.png | Bin 0 -> 1226 bytes data/icons/24x24/mimetypes/Makefile.am | 14 + .../24x24/mimetypes/x-office-presentation.png | Bin 0 -> 1643 bytes data/icons/32x32/Makefile.am | 3 + data/icons/32x32/actions/Makefile.am | 19 + data/icons/32x32/actions/object-rotate-left.png | Bin 0 -> 1319 bytes data/icons/32x32/actions/object-rotate-right.png | Bin 0 -> 1353 bytes data/icons/32x32/actions/view-page-continuous.png | Bin 0 -> 849 bytes data/icons/32x32/actions/view-page-facing.png | Bin 0 -> 943 bytes data/icons/32x32/mimetypes/Makefile.am | 14 + .../32x32/mimetypes/x-office-presentation.png | Bin 0 -> 1618 bytes data/icons/48x48/Makefile.am | 4 + data/icons/48x48/actions/Makefile.am | 20 + data/icons/48x48/actions/close.png | Bin 0 -> 363 bytes data/icons/48x48/actions/resize-se.png | Bin 0 -> 312 bytes data/icons/48x48/actions/resize-sw.png | Bin 0 -> 295 bytes data/icons/48x48/actions/view-page-continuous.png | Bin 0 -> 1494 bytes data/icons/48x48/actions/view-page-facing.png | Bin 0 -> 1485 bytes data/icons/48x48/apps/Makefile.am | 16 + data/icons/48x48/apps/evince.png | Bin 0 -> 3314 bytes data/icons/Makefile.am | 4 + data/icons/scalable/Makefile.am | 3 + data/icons/scalable/actions/Makefile.am | 15 + data/icons/scalable/actions/object-rotate-left.svg | 208 + .../icons/scalable/actions/object-rotate-right.svg | 210 + data/icons/scalable/apps/Makefile.am | 16 + data/icons/scalable/apps/evince.svg | 500 ++ data/icons/scalable/mimetypes/Makefile.am | 14 + .../scalable/mimetypes/x-office-presentation.svg | 686 ++ data/org.mate.Evince.gschema.xml.in | 51 + data/org.mate.evince.Daemon.service.in | 3 + evince-document.h | 62 + evince-document.pc.in | 12 + evince-view.h | 34 + evince-view.pc.in | 11 + help/C/evince.xml | 774 ++ help/C/figures/evince_start_window.png | Bin 0 -> 17271 bytes help/C/legal.xml | 76 + help/ChangeLog | 362 + help/Makefile.am | 17 + help/bg/bg.po | 1015 +++ help/bg/figures/evince_start_window.png | Bin 0 -> 22691 bytes help/ca/ca.po | 1281 ++++ help/ca/figures/evince_start_window.png | Bin 0 -> 15084 bytes help/cs/cs.po | 1257 ++++ help/cs/figures/evince_start_window.png | Bin 0 -> 16696 bytes help/de/de.po | 1275 ++++ help/de/figures/evince_start_window.png | Bin 0 -> 12327 bytes help/el/el.po | 943 +++ help/el/figures/evince_start_window.png | Bin 0 -> 21766 bytes help/en_GB/en_GB.po | 1256 ++++ help/es/es.po | 1281 ++++ help/es/figures/evince_start_window.png | Bin 0 -> 16965 bytes help/eu/eu.po | 626 ++ help/eu/figures/evince_start_window.png | Bin 0 -> 18535 bytes help/evince.omf.in | 11 + help/fi/fi.po | 1244 ++++ help/fi/figures/evince_start_window.png | Bin 0 -> 16351 bytes help/fr/figures/evince_start_window.png | Bin 0 -> 15794 bytes help/fr/fr.po | 1297 ++++ help/it/figures/evince_start_window.png | Bin 0 -> 13779 bytes help/it/it.po | 1285 ++++ help/ja/figures/evince_start_window.png | Bin 0 -> 16465 bytes help/ja/ja.po | 948 +++ help/nl/figures/evince_start_window.png | Bin 0 -> 10972 bytes help/nl/nl.po | 929 +++ help/oc/oc.po | 817 ++ help/pt_BR/pt_BR.po | 1272 ++++ help/reference/Makefile.am | 2 + help/reference/libdocument/Makefile.am | 132 + help/reference/libdocument/libevdocument-docs.xml | 191 + .../libdocument/libevdocument-overrides.txt | 0 .../libdocument/libevdocument-sections.txt | 781 ++ help/reference/libdocument/libevdocument.types | 55 + help/reference/libdocument/version.xml.in | 1 + help/reference/libview/Makefile.am | 139 + help/reference/libview/libevview-docs.xml | 145 + help/reference/libview/libevview-overrides.txt | 0 help/reference/libview/libevview-sections.txt | 338 + help/reference/libview/libevview.types | 29 + help/reference/libview/version.xml.in | 1 + help/reference/shell/Makefile.am | 150 + help/reference/shell/evince-docs.xml | 163 + help/reference/shell/evince-overrides.txt | 0 help/reference/shell/evince-sections.txt | 472 ++ help/reference/shell/evince.types | 24 + help/reference/shell/version.xml.in | 1 + help/ru/ru.po | 1238 ++++ help/sl/sl.po | 906 +++ help/sr/sr.po | 1626 ++++ help/sv/figures/evince_start_window.png | Bin 0 -> 17118 bytes help/sv/sv.po | 900 +++ help/uk/figures/evince_start_window.png | Bin 0 -> 14049 bytes help/uk/uk.po | 998 +++ help/vi/vi.po | 898 +++ help/zh_CN/zh_CN.po | 1183 +++ libdocument/Makefile.am | 193 + libdocument/ev-annotation.c | 1002 +++ libdocument/ev-annotation.h | 161 + libdocument/ev-async-renderer.c | 65 + libdocument/ev-async-renderer.h | 65 + libdocument/ev-attachment.c | 439 ++ libdocument/ev-attachment.h | 79 + libdocument/ev-backends-manager.c | 333 + libdocument/ev-backends-manager.h | 48 + libdocument/ev-debug.c | 177 + libdocument/ev-debug.h | 106 + libdocument/ev-document-annotations.c | 75 + libdocument/ev-document-annotations.h | 99 + libdocument/ev-document-attachments.c | 49 + libdocument/ev-document-attachments.h | 59 + libdocument/ev-document-factory.c | 397 + libdocument/ev-document-factory.h | 39 + libdocument/ev-document-find.c | 42 + libdocument/ev-document-find.h | 65 + libdocument/ev-document-fonts.c | 59 + libdocument/ev-document-fonts.h | 78 + libdocument/ev-document-forms.c | 161 + libdocument/ev-document-forms.h | 128 + libdocument/ev-document-images.c | 47 + libdocument/ev-document-images.h | 65 + libdocument/ev-document-info.h | 154 + libdocument/ev-document-layers.c | 74 + libdocument/ev-document-layers.h | 85 + libdocument/ev-document-links.c | 129 + libdocument/ev-document-links.h | 87 + libdocument/ev-document-misc.c | 400 + libdocument/ev-document-misc.h | 67 + libdocument/ev-document-print.c | 41 + libdocument/ev-document-print.h | 59 + libdocument/ev-document-security.c | 48 + libdocument/ev-document-security.h | 67 + libdocument/ev-document-text.c | 70 + libdocument/ev-document-text.h | 75 + libdocument/ev-document-thumbnails.c | 63 + libdocument/ev-document-thumbnails.h | 69 + libdocument/ev-document-transition.c | 57 + libdocument/ev-document-transition.h | 64 + libdocument/ev-document-type-builtins.c.template | 44 + libdocument/ev-document-type-builtins.h.template | 29 + libdocument/ev-document.c | 867 +++ libdocument/ev-document.h | 303 + libdocument/ev-file-exporter.c | 84 + libdocument/ev-file-exporter.h | 101 + libdocument/ev-file-helpers.c | 683 ++ libdocument/ev-file-helpers.h | 71 + libdocument/ev-form-field.c | 209 + libdocument/ev-form-field.h | 214 + libdocument/ev-image.c | 181 + libdocument/ev-image.h | 68 + libdocument/ev-init.c | 154 + libdocument/ev-init.h | 41 + libdocument/ev-layer.c | 86 + libdocument/ev-layer.h | 62 + libdocument/ev-link-action.c | 341 + libdocument/ev-link-action.h | 73 + libdocument/ev-link-dest.c | 511 ++ libdocument/ev-link-dest.h | 95 + libdocument/ev-link.c | 202 + libdocument/ev-link.h | 55 + libdocument/ev-mapping-list.c | 146 + libdocument/ev-mapping-list.h | 53 + libdocument/ev-module.c | 196 + libdocument/ev-module.h | 74 + libdocument/ev-page.c | 62 + libdocument/ev-page.h | 63 + libdocument/ev-render-context.c | 101 + libdocument/ev-render-context.h | 70 + libdocument/ev-selection.c | 77 + libdocument/ev-selection.h | 93 + libdocument/ev-transition-effect.c | 224 + libdocument/ev-transition-effect.h | 87 + libdocument/ev-version.h.in | 69 + libmisc/Makefile.am | 22 + libmisc/ev-page-action-widget.c | 495 ++ libmisc/ev-page-action-widget.h | 46 + libmisc/ev-page-action.c | 239 + libmisc/ev-page-action.h | 68 + libview/Makefile.am | 163 + libview/ev-annotation-window.c | 654 ++ libview/ev-annotation-window.h | 57 + libview/ev-document-model.c | 571 ++ libview/ev-document-model.h | 87 + libview/ev-job-scheduler.c | 305 + libview/ev-job-scheduler.h | 48 + libview/ev-jobs.c | 1577 ++++ libview/ev-jobs.h | 502 ++ libview/ev-loading-window.c | 278 + libview/ev-loading-window.h | 49 + libview/ev-page-cache.c | 521 ++ libview/ev-page-cache.h | 71 + libview/ev-pixbuf-cache.c | 1192 +++ libview/ev-pixbuf-cache.h | 89 + libview/ev-print-operation.c | 2028 +++++ libview/ev-print-operation.h | 71 + libview/ev-stock-icons.c | 143 + libview/ev-stock-icons.h | 57 + libview/ev-timeline.c | 450 ++ libview/ev-timeline.h | 90 + libview/ev-transition-animation.c | 676 ++ libview/ev-transition-animation.h | 73 + libview/ev-view-accessible.c | 911 +++ libview/ev-view-accessible.h | 33 + libview/ev-view-cursor.c | 55 + libview/ev-view-cursor.h | 47 + libview/ev-view-marshal.list | 2 + libview/ev-view-presentation.c | 1498 ++++ libview/ev-view-presentation.h | 51 + libview/ev-view-private.h | 225 + libview/ev-view-type-builtins.c.template | 44 + libview/ev-view-type-builtins.h.template | 29 + libview/ev-view.c | 6274 ++++++++++++++++ libview/ev-view.h | 115 + m4/gtk-doc.m4 | 61 + m4/intltool.m4 | 216 + m4/libtool.m4 | 7831 ++++++++++++++++++++ m4/ltoptions.m4 | 369 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 98 + m4/mate-doc-utils.m4 | 56 + po/ChangeLog | 4424 +++++++++++ po/LINGUAS | 85 + po/POTFILES.in | 66 + po/POTFILES.skip | 16 + po/af.po | 1423 ++++ po/ar.po | 1835 +++++ po/as.po | 1624 ++++ po/ast.po | 1813 +++++ po/be.po | 1354 ++++ po/be@latin.po | 1428 ++++ po/bg.po | 1723 +++++ po/bn.po | 1813 +++++ po/bn_IN.po | 1647 ++++ po/br.po | 1475 ++++ po/ca.po | 2211 ++++++ po/ca@valencia.po | 2211 ++++++ po/cs.po | 1562 ++++ po/cy.po | 1115 +++ po/da.po | 2155 ++++++ po/de.po | 1812 +++++ po/dz.po | 1603 ++++ po/el.po | 1709 +++++ po/en@shaw.po | 1537 ++++ po/en_CA.po | 1260 ++++ po/en_GB.po | 2359 ++++++ po/eo.po | 1648 ++++ po/es.po | 1853 +++++ po/et.po | 1344 ++++ po/eu.po | 1722 +++++ po/fa.po | 1108 +++ po/fi.po | 1764 +++++ po/fr.po | 1747 +++++ po/ga.po | 1462 ++++ po/gl.po | 1757 +++++ po/gu.po | 1740 +++++ po/he.po | 1719 +++++ po/hi.po | 1459 ++++ po/hu.po | 1694 +++++ po/id.po | 1717 +++++ po/it.po | 1742 +++++ po/ja.po | 1739 +++++ po/ka.po | 1251 ++++ po/kk.po | 1672 +++++ po/kn.po | 1620 ++++ po/ko.po | 1707 +++++ po/ks.po | 1393 ++++ po/ku.po | 1287 ++++ po/lt.po | 1818 +++++ po/lv.po | 1783 +++++ po/mai.po | 1404 ++++ po/mg.po | 1379 ++++ po/mk.po | 1331 ++++ po/ml.po | 1638 ++++ po/mn.po | 1601 ++++ po/mr.po | 1711 +++++ po/ms.po | 1680 +++++ po/nb.po | 1710 +++++ po/nds.po | 1464 ++++ po/ne.po | 1302 ++++ po/nl.po | 1801 +++++ po/nn.po | 1920 +++++ po/oc.po | 1304 ++++ po/or.po | 1598 ++++ po/pa.po | 1950 +++++ po/pl.po | 1723 +++++ po/ps.po | 1241 ++++ po/pt.po | 2105 ++++++ po/pt_BR.po | 1969 +++++ po/ro.po | 1797 +++++ po/ru.po | 1676 +++++ po/rw.po | 841 +++ po/si.po | 1363 ++++ po/sk.po | 1323 ++++ po/sl.po | 1776 +++++ po/sq.po | 1322 ++++ po/sr.po | 2123 ++++++ po/sr@latin.po | 2123 ++++++ po/sv.po | 1755 +++++ po/ta.po | 1770 +++++ po/te.po | 1790 +++++ po/th.po | 2196 ++++++ po/tr.po | 1477 ++++ po/uk.po | 1546 ++++ po/vi.po | 1424 ++++ po/wa.po | 682 ++ po/zh_CN.po | 1853 +++++ po/zh_HK.po | 1926 +++++ po/zh_TW.po | 1941 +++++ previewer/Makefile.am | 37 + previewer/ev-previewer-window.c | 723 ++ previewer/ev-previewer-window.h | 51 + previewer/ev-previewer.c | 205 + properties/Makefile.am | 35 + properties/ev-properties-main.c | 159 + properties/ev-properties-view.c | 399 + properties/ev-properties-view.h | 50 + shell/Makefile.am | 160 + shell/eggfindbar.c | 740 ++ shell/eggfindbar.h | 82 + shell/ev-annotation-properties-dialog.c | 327 + shell/ev-annotation-properties-dialog.h | 54 + shell/ev-application.c | 1151 +++ shell/ev-application.h | 88 + shell/ev-convert-metadata.c | 302 + shell/ev-daemon.c | 553 ++ shell/ev-file-monitor.c | 168 + shell/ev-file-monitor.h | 57 + shell/ev-history.c | 148 + shell/ev-history.h | 65 + shell/ev-keyring.c | 116 + shell/ev-keyring.h | 37 + shell/ev-marshal.list | 1 + shell/ev-media-player-keys.c | 233 + shell/ev-media-player-keys.h | 49 + shell/ev-message-area.c | 354 + shell/ev-message-area.h | 74 + shell/ev-metadata.c | 313 + shell/ev-metadata.h | 69 + shell/ev-navigation-action-widget.c | 214 + shell/ev-navigation-action-widget.h | 46 + shell/ev-navigation-action.c | 247 + shell/ev-navigation-action.h | 64 + shell/ev-open-recent-action.c | 101 + shell/ev-open-recent-action.h | 52 + shell/ev-password-view.c | 434 ++ shell/ev-password-view.h | 59 + shell/ev-progress-message-area.c | 198 + shell/ev-progress-message-area.h | 64 + shell/ev-properties-dialog.c | 138 + shell/ev-properties-dialog.h | 47 + shell/ev-properties-fonts.c | 224 + shell/ev-properties-fonts.h | 48 + shell/ev-properties-license.c | 169 + shell/ev-properties-license.h | 50 + shell/ev-sidebar-annotations.c | 542 ++ shell/ev-sidebar-annotations.h | 62 + shell/ev-sidebar-attachments.c | 707 ++ shell/ev-sidebar-attachments.h | 62 + shell/ev-sidebar-layers.c | 411 + shell/ev-sidebar-layers.h | 58 + shell/ev-sidebar-links.c | 760 ++ shell/ev-sidebar-links.h | 66 + shell/ev-sidebar-page.c | 92 + shell/ev-sidebar-page.h | 64 + shell/ev-sidebar-thumbnails.c | 974 +++ shell/ev-sidebar-thumbnails.h | 59 + shell/ev-sidebar.c | 543 ++ shell/ev-sidebar.h | 67 + shell/ev-utils.c | 389 + shell/ev-utils.h | 47 + shell/ev-window-title.c | 203 + shell/ev-window-title.h | 47 + shell/ev-window.c | 7149 ++++++++++++++++++ shell/ev-window.h | 93 + shell/evince-icon.rc | 1 + shell/main.c | 328 + test/Makefile.am | 19 + test/test-encrypt.pdf | Bin 0 -> 26501 bytes test/test-links.pdf | Bin 0 -> 15151 bytes test/test-mime.bin | Bin 0 -> 15151 bytes test/test-page-labels.pdf | Bin 0 -> 10150 bytes test/test1.py | 36 + test/test2.py | 28 + test/test3.py | 15 + test/test4.py | 20 + test/test5.py | 24 + test/test6.py | 31 + test/test7.py | 33 + thumbnailer/Makefile.am | 83 + thumbnailer/evince-thumbnailer-comics.schemas.in | 106 + thumbnailer/evince-thumbnailer-djvu.schemas.in | 30 + thumbnailer/evince-thumbnailer-dvi.schemas.in | 83 + thumbnailer/evince-thumbnailer-ps.schemas.in | 154 + thumbnailer/evince-thumbnailer.c | 309 + thumbnailer/evince-thumbnailer.schemas.in | 80 + 602 files changed, 287728 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 MAINTAINERS create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100644 TODO create mode 100755 autogen.sh create mode 100644 backend/Makefile.am create mode 100644 backend/backend.symbols create mode 100644 backend/comics/Makefile.am create mode 100644 backend/comics/comics-document.c create mode 100644 backend/comics/comics-document.h create mode 100644 backend/comics/comicsdocument.evince-backend.in create mode 100644 backend/djvu/Makefile.am create mode 100644 backend/djvu/djvu-document-private.h create mode 100644 backend/djvu/djvu-document.c create mode 100644 backend/djvu/djvu-document.h create mode 100644 backend/djvu/djvu-links.c create mode 100644 backend/djvu/djvu-links.h create mode 100644 backend/djvu/djvu-text-page.c create mode 100644 backend/djvu/djvu-text-page.h create mode 100644 backend/djvu/djvudocument.evince-backend.in create mode 100644 backend/dvi/Makefile.am create mode 100644 backend/dvi/cairo-device.c create mode 100644 backend/dvi/cairo-device.h create mode 100644 backend/dvi/dvi-document.c create mode 100644 backend/dvi/dvi-document.h create mode 100644 backend/dvi/dvidocument.evince-backend.in create mode 100644 backend/dvi/fonts.c create mode 100644 backend/dvi/fonts.h create mode 100644 backend/dvi/mdvi-lib/Makefile.am create mode 100644 backend/dvi/mdvi-lib/afmparse.c create mode 100644 backend/dvi/mdvi-lib/afmparse.h create mode 100644 backend/dvi/mdvi-lib/bitmap.c create mode 100644 backend/dvi/mdvi-lib/bitmap.h create mode 100644 backend/dvi/mdvi-lib/color.c create mode 100644 backend/dvi/mdvi-lib/color.h create mode 100644 backend/dvi/mdvi-lib/common.c create mode 100644 backend/dvi/mdvi-lib/common.h create mode 100644 backend/dvi/mdvi-lib/defaults.h create mode 100644 backend/dvi/mdvi-lib/dviopcodes.h create mode 100644 backend/dvi/mdvi-lib/dviread.c create mode 100644 backend/dvi/mdvi-lib/files.c create mode 100644 backend/dvi/mdvi-lib/font.c create mode 100644 backend/dvi/mdvi-lib/fontmap.c create mode 100644 backend/dvi/mdvi-lib/fontmap.h create mode 100644 backend/dvi/mdvi-lib/fontsrch.c create mode 100644 backend/dvi/mdvi-lib/gf.c create mode 100644 backend/dvi/mdvi-lib/hash.c create mode 100644 backend/dvi/mdvi-lib/hash.h create mode 100644 backend/dvi/mdvi-lib/list.c create mode 100644 backend/dvi/mdvi-lib/mdvi.h create mode 100644 backend/dvi/mdvi-lib/pagesel.c create mode 100644 backend/dvi/mdvi-lib/paper.c create mode 100644 backend/dvi/mdvi-lib/paper.h create mode 100644 backend/dvi/mdvi-lib/pk.c create mode 100644 backend/dvi/mdvi-lib/private.h create mode 100644 backend/dvi/mdvi-lib/setup.c create mode 100644 backend/dvi/mdvi-lib/sp-epsf.c create mode 100644 backend/dvi/mdvi-lib/special.c create mode 100644 backend/dvi/mdvi-lib/sysdeps.h create mode 100644 backend/dvi/mdvi-lib/t1.c create mode 100644 backend/dvi/mdvi-lib/tfm.c create mode 100644 backend/dvi/mdvi-lib/tfmfile.c create mode 100644 backend/dvi/mdvi-lib/tt.c create mode 100644 backend/dvi/mdvi-lib/util.c create mode 100644 backend/dvi/mdvi-lib/vf.c create mode 100644 backend/dvi/texmfcnf.c create mode 100644 backend/dvi/texmfcnf.h create mode 100644 backend/impress/Makefile.am create mode 100644 backend/impress/common.h create mode 100644 backend/impress/document.c create mode 100644 backend/impress/f_oasis.c create mode 100644 backend/impress/f_oo13.c create mode 100644 backend/impress/iksemel.c create mode 100644 backend/impress/iksemel.h create mode 100644 backend/impress/imposter.h create mode 100644 backend/impress/impress-document.c create mode 100644 backend/impress/impress-document.h create mode 100644 backend/impress/impressdocument.evince-backend.in create mode 100644 backend/impress/internal.h create mode 100644 backend/impress/r_back.c create mode 100644 backend/impress/r_draw.c create mode 100644 backend/impress/r_geometry.c create mode 100644 backend/impress/r_gradient.c create mode 100644 backend/impress/r_style.c create mode 100644 backend/impress/r_text.c create mode 100644 backend/impress/render.c create mode 100644 backend/impress/zip.c create mode 100644 backend/impress/zip.h create mode 100644 backend/pdf/Makefile.am create mode 100644 backend/pdf/ev-poppler.cc create mode 100644 backend/pdf/ev-poppler.h create mode 100644 backend/pdf/pdfdocument.evince-backend.in create mode 100644 backend/pixbuf/Makefile.am create mode 100644 backend/pixbuf/pixbuf-document.c create mode 100644 backend/pixbuf/pixbuf-document.h create mode 100644 backend/pixbuf/pixbufdocument.evince-backend.in create mode 100644 backend/ps/Makefile.am create mode 100644 backend/ps/ev-spectre.c create mode 100644 backend/ps/ev-spectre.h create mode 100644 backend/ps/psdocument.evince-backend.in create mode 100644 backend/tiff/Makefile.am create mode 100644 backend/tiff/tiff-document.c create mode 100644 backend/tiff/tiff-document.h create mode 100644 backend/tiff/tiff2ps.c create mode 100644 backend/tiff/tiff2ps.h create mode 100644 backend/tiff/tiffdocument.evince-backend.in create mode 100644 config.h.in~ create mode 100644 configure.ac create mode 100644 cut-n-paste/Makefile.am create mode 100644 cut-n-paste/gimpcellrenderertoggle/Makefile.am create mode 100644 cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c create mode 100644 cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.h create mode 100644 cut-n-paste/gimpcellrenderertoggle/gimpwidgetsmarshal.list create mode 100644 cut-n-paste/smclient/Makefile.am create mode 100644 cut-n-paste/smclient/eggdesktopfile.c create mode 100644 cut-n-paste/smclient/eggdesktopfile.h create mode 100644 cut-n-paste/smclient/eggsmclient-osx.c create mode 100644 cut-n-paste/smclient/eggsmclient-private.h create mode 100644 cut-n-paste/smclient/eggsmclient-win32.c create mode 100644 cut-n-paste/smclient/eggsmclient-xsmp.c create mode 100644 cut-n-paste/smclient/eggsmclient.c create mode 100644 cut-n-paste/smclient/eggsmclient.h create mode 100644 cut-n-paste/synctex/Makefile.am create mode 100644 cut-n-paste/synctex/synctex_parser.c create mode 100644 cut-n-paste/synctex/synctex_parser.h create mode 100644 cut-n-paste/synctex/synctex_parser_utils.c create mode 100644 cut-n-paste/synctex/synctex_parser_utils.h create mode 100644 cut-n-paste/toolbar-editor/Makefile.am create mode 100644 cut-n-paste/toolbar-editor/egg-editable-toolbar.c create mode 100644 cut-n-paste/toolbar-editor/egg-editable-toolbar.h create mode 100644 cut-n-paste/toolbar-editor/egg-toolbar-editor.c create mode 100644 cut-n-paste/toolbar-editor/egg-toolbar-editor.h create mode 100644 cut-n-paste/toolbar-editor/egg-toolbars-model.c create mode 100644 cut-n-paste/toolbar-editor/egg-toolbars-model.h create mode 100644 cut-n-paste/toolbar-editor/eggmarshalers.list create mode 100644 cut-n-paste/totem-screensaver/Makefile.am create mode 100644 cut-n-paste/totem-screensaver/README create mode 100644 cut-n-paste/totem-screensaver/totem-scrsaver.c create mode 100644 cut-n-paste/totem-screensaver/totem-scrsaver.h create mode 100644 cut-n-paste/zoom-control/Makefile.am create mode 100644 cut-n-paste/zoom-control/ephy-zoom-action.c create mode 100644 cut-n-paste/zoom-control/ephy-zoom-action.h create mode 100644 cut-n-paste/zoom-control/ephy-zoom-control.c create mode 100644 cut-n-paste/zoom-control/ephy-zoom-control.h create mode 100644 cut-n-paste/zoom-control/ephy-zoom.c create mode 100644 cut-n-paste/zoom-control/ephy-zoom.h create mode 100644 data/Makefile.am create mode 100644 data/evince-previewer-ui.xml create mode 100644 data/evince-toolbar.xml create mode 100644 data/evince-ui.xml create mode 100644 data/evince.1 create mode 100644 data/evince.convert create mode 100644 data/evince.desktop.in.in create mode 100644 data/evince.ico create mode 100644 data/hand-open.png create mode 100644 data/icons/16x16/Makefile.am create mode 100644 data/icons/16x16/actions/Makefile.am create mode 100644 data/icons/16x16/actions/object-rotate-left.png create mode 100644 data/icons/16x16/actions/object-rotate-right.png create mode 100644 data/icons/16x16/actions/view-page-continuous.png create mode 100644 data/icons/16x16/actions/view-page-continuous.xcf create mode 100644 data/icons/16x16/actions/view-page-facing.png create mode 100644 data/icons/16x16/actions/view-page-facing.xcf create mode 100644 data/icons/16x16/actions/zoom-fit-height.png create mode 100644 data/icons/16x16/actions/zoom-fit-page.svg create mode 100644 data/icons/16x16/actions/zoom-fit-width.png create mode 100644 data/icons/16x16/actions/zoom-fit-width.svg create mode 100644 data/icons/16x16/actions/zoom.png create mode 100644 data/icons/16x16/actions/zoom.svg create mode 100644 data/icons/16x16/apps/Makefile.am create mode 100644 data/icons/16x16/apps/evince.png create mode 100644 data/icons/16x16/mimetypes/Makefile.am create mode 100644 data/icons/16x16/mimetypes/x-office-presentation.png create mode 100644 data/icons/22x22/Makefile.am create mode 100644 data/icons/22x22/actions/Makefile.am create mode 100644 data/icons/22x22/actions/eye.png create mode 100644 data/icons/22x22/actions/object-rotate-left.png create mode 100644 data/icons/22x22/actions/object-rotate-right.png create mode 100644 data/icons/22x22/actions/view-page-continuous.png create mode 100644 data/icons/22x22/actions/view-page-continuous.xcf create mode 100644 data/icons/22x22/actions/view-page-facing.png create mode 100644 data/icons/22x22/actions/view-page-facing.xcf create mode 100644 data/icons/22x22/actions/zoom-fit-page.png create mode 100644 data/icons/22x22/actions/zoom-fit-page.svg create mode 100644 data/icons/22x22/actions/zoom-fit-width.png create mode 100644 data/icons/22x22/actions/zoom-fit-width.svg create mode 100644 data/icons/22x22/actions/zoom.png create mode 100644 data/icons/22x22/actions/zoom.svg create mode 100644 data/icons/22x22/apps/Makefile.am create mode 100644 data/icons/22x22/apps/evince.png create mode 100644 data/icons/22x22/mimetypes/Makefile.am create mode 100644 data/icons/22x22/mimetypes/x-office-presentation.png create mode 100644 data/icons/24x24/Makefile.am create mode 100644 data/icons/24x24/actions/Makefile.am create mode 100644 data/icons/24x24/actions/object-rotate-left.png create mode 100644 data/icons/24x24/actions/object-rotate-right.png create mode 100644 data/icons/24x24/actions/stock_filters-invert.png create mode 100644 data/icons/24x24/actions/view-page-continuous.png create mode 100644 data/icons/24x24/actions/view-page-facing.png create mode 100644 data/icons/24x24/actions/zoom-fit-height.png create mode 100644 data/icons/24x24/actions/zoom-fit-width.png create mode 100644 data/icons/24x24/actions/zoom.png create mode 100644 data/icons/24x24/apps/Makefile.am create mode 100644 data/icons/24x24/apps/evince.png create mode 100644 data/icons/24x24/mimetypes/Makefile.am create mode 100644 data/icons/24x24/mimetypes/x-office-presentation.png create mode 100644 data/icons/32x32/Makefile.am create mode 100644 data/icons/32x32/actions/Makefile.am create mode 100644 data/icons/32x32/actions/object-rotate-left.png create mode 100644 data/icons/32x32/actions/object-rotate-right.png create mode 100644 data/icons/32x32/actions/view-page-continuous.png create mode 100644 data/icons/32x32/actions/view-page-facing.png create mode 100644 data/icons/32x32/mimetypes/Makefile.am create mode 100644 data/icons/32x32/mimetypes/x-office-presentation.png create mode 100644 data/icons/48x48/Makefile.am create mode 100644 data/icons/48x48/actions/Makefile.am create mode 100644 data/icons/48x48/actions/close.png create mode 100644 data/icons/48x48/actions/resize-se.png create mode 100644 data/icons/48x48/actions/resize-sw.png create mode 100644 data/icons/48x48/actions/view-page-continuous.png create mode 100644 data/icons/48x48/actions/view-page-facing.png create mode 100644 data/icons/48x48/apps/Makefile.am create mode 100644 data/icons/48x48/apps/evince.png create mode 100644 data/icons/Makefile.am create mode 100644 data/icons/scalable/Makefile.am create mode 100644 data/icons/scalable/actions/Makefile.am create mode 100644 data/icons/scalable/actions/object-rotate-left.svg create mode 100644 data/icons/scalable/actions/object-rotate-right.svg create mode 100644 data/icons/scalable/apps/Makefile.am create mode 100644 data/icons/scalable/apps/evince.svg create mode 100644 data/icons/scalable/mimetypes/Makefile.am create mode 100644 data/icons/scalable/mimetypes/x-office-presentation.svg create mode 100644 data/org.mate.Evince.gschema.xml.in create mode 100644 data/org.mate.evince.Daemon.service.in create mode 100644 evince-document.h create mode 100644 evince-document.pc.in create mode 100644 evince-view.h create mode 100644 evince-view.pc.in create mode 100644 help/C/evince.xml create mode 100644 help/C/figures/evince_start_window.png create mode 100644 help/C/legal.xml create mode 100644 help/ChangeLog create mode 100644 help/Makefile.am create mode 100644 help/bg/bg.po create mode 100644 help/bg/figures/evince_start_window.png create mode 100644 help/ca/ca.po create mode 100644 help/ca/figures/evince_start_window.png create mode 100644 help/cs/cs.po create mode 100644 help/cs/figures/evince_start_window.png create mode 100644 help/de/de.po create mode 100644 help/de/figures/evince_start_window.png create mode 100644 help/el/el.po create mode 100644 help/el/figures/evince_start_window.png create mode 100644 help/en_GB/en_GB.po create mode 100644 help/es/es.po create mode 100644 help/es/figures/evince_start_window.png create mode 100644 help/eu/eu.po create mode 100644 help/eu/figures/evince_start_window.png create mode 100644 help/evince.omf.in create mode 100644 help/fi/fi.po create mode 100644 help/fi/figures/evince_start_window.png create mode 100644 help/fr/figures/evince_start_window.png create mode 100644 help/fr/fr.po create mode 100644 help/it/figures/evince_start_window.png create mode 100644 help/it/it.po create mode 100644 help/ja/figures/evince_start_window.png create mode 100644 help/ja/ja.po create mode 100644 help/nl/figures/evince_start_window.png create mode 100644 help/nl/nl.po create mode 100644 help/oc/oc.po create mode 100644 help/pt_BR/pt_BR.po create mode 100644 help/reference/Makefile.am create mode 100644 help/reference/libdocument/Makefile.am create mode 100644 help/reference/libdocument/libevdocument-docs.xml create mode 100644 help/reference/libdocument/libevdocument-overrides.txt create mode 100644 help/reference/libdocument/libevdocument-sections.txt create mode 100644 help/reference/libdocument/libevdocument.types create mode 100644 help/reference/libdocument/version.xml.in create mode 100644 help/reference/libview/Makefile.am create mode 100644 help/reference/libview/libevview-docs.xml create mode 100644 help/reference/libview/libevview-overrides.txt create mode 100644 help/reference/libview/libevview-sections.txt create mode 100644 help/reference/libview/libevview.types create mode 100644 help/reference/libview/version.xml.in create mode 100644 help/reference/shell/Makefile.am create mode 100644 help/reference/shell/evince-docs.xml create mode 100644 help/reference/shell/evince-overrides.txt create mode 100644 help/reference/shell/evince-sections.txt create mode 100644 help/reference/shell/evince.types create mode 100644 help/reference/shell/version.xml.in create mode 100644 help/ru/ru.po create mode 100644 help/sl/sl.po create mode 100644 help/sr/sr.po create mode 100644 help/sv/figures/evince_start_window.png create mode 100644 help/sv/sv.po create mode 100644 help/uk/figures/evince_start_window.png create mode 100644 help/uk/uk.po create mode 100644 help/vi/vi.po create mode 100644 help/zh_CN/zh_CN.po create mode 100644 libdocument/Makefile.am create mode 100644 libdocument/ev-annotation.c create mode 100644 libdocument/ev-annotation.h create mode 100644 libdocument/ev-async-renderer.c create mode 100644 libdocument/ev-async-renderer.h create mode 100644 libdocument/ev-attachment.c create mode 100644 libdocument/ev-attachment.h create mode 100644 libdocument/ev-backends-manager.c create mode 100644 libdocument/ev-backends-manager.h create mode 100644 libdocument/ev-debug.c create mode 100644 libdocument/ev-debug.h create mode 100644 libdocument/ev-document-annotations.c create mode 100644 libdocument/ev-document-annotations.h create mode 100644 libdocument/ev-document-attachments.c create mode 100644 libdocument/ev-document-attachments.h create mode 100644 libdocument/ev-document-factory.c create mode 100644 libdocument/ev-document-factory.h create mode 100644 libdocument/ev-document-find.c create mode 100644 libdocument/ev-document-find.h create mode 100644 libdocument/ev-document-fonts.c create mode 100644 libdocument/ev-document-fonts.h create mode 100644 libdocument/ev-document-forms.c create mode 100644 libdocument/ev-document-forms.h create mode 100644 libdocument/ev-document-images.c create mode 100644 libdocument/ev-document-images.h create mode 100644 libdocument/ev-document-info.h create mode 100644 libdocument/ev-document-layers.c create mode 100644 libdocument/ev-document-layers.h create mode 100644 libdocument/ev-document-links.c create mode 100644 libdocument/ev-document-links.h create mode 100644 libdocument/ev-document-misc.c create mode 100644 libdocument/ev-document-misc.h create mode 100644 libdocument/ev-document-print.c create mode 100644 libdocument/ev-document-print.h create mode 100644 libdocument/ev-document-security.c create mode 100644 libdocument/ev-document-security.h create mode 100644 libdocument/ev-document-text.c create mode 100644 libdocument/ev-document-text.h create mode 100644 libdocument/ev-document-thumbnails.c create mode 100644 libdocument/ev-document-thumbnails.h create mode 100644 libdocument/ev-document-transition.c create mode 100644 libdocument/ev-document-transition.h create mode 100644 libdocument/ev-document-type-builtins.c.template create mode 100644 libdocument/ev-document-type-builtins.h.template create mode 100644 libdocument/ev-document.c create mode 100644 libdocument/ev-document.h create mode 100644 libdocument/ev-file-exporter.c create mode 100644 libdocument/ev-file-exporter.h create mode 100644 libdocument/ev-file-helpers.c create mode 100644 libdocument/ev-file-helpers.h create mode 100644 libdocument/ev-form-field.c create mode 100644 libdocument/ev-form-field.h create mode 100644 libdocument/ev-image.c create mode 100644 libdocument/ev-image.h create mode 100644 libdocument/ev-init.c create mode 100644 libdocument/ev-init.h create mode 100644 libdocument/ev-layer.c create mode 100644 libdocument/ev-layer.h create mode 100644 libdocument/ev-link-action.c create mode 100644 libdocument/ev-link-action.h create mode 100644 libdocument/ev-link-dest.c create mode 100644 libdocument/ev-link-dest.h create mode 100644 libdocument/ev-link.c create mode 100644 libdocument/ev-link.h create mode 100644 libdocument/ev-mapping-list.c create mode 100644 libdocument/ev-mapping-list.h create mode 100644 libdocument/ev-module.c create mode 100644 libdocument/ev-module.h create mode 100644 libdocument/ev-page.c create mode 100644 libdocument/ev-page.h create mode 100644 libdocument/ev-render-context.c create mode 100644 libdocument/ev-render-context.h create mode 100644 libdocument/ev-selection.c create mode 100644 libdocument/ev-selection.h create mode 100644 libdocument/ev-transition-effect.c create mode 100644 libdocument/ev-transition-effect.h create mode 100644 libdocument/ev-version.h.in create mode 100644 libmisc/Makefile.am create mode 100644 libmisc/ev-page-action-widget.c create mode 100644 libmisc/ev-page-action-widget.h create mode 100644 libmisc/ev-page-action.c create mode 100644 libmisc/ev-page-action.h create mode 100644 libview/Makefile.am create mode 100644 libview/ev-annotation-window.c create mode 100644 libview/ev-annotation-window.h create mode 100644 libview/ev-document-model.c create mode 100644 libview/ev-document-model.h create mode 100644 libview/ev-job-scheduler.c create mode 100644 libview/ev-job-scheduler.h create mode 100644 libview/ev-jobs.c create mode 100644 libview/ev-jobs.h create mode 100644 libview/ev-loading-window.c create mode 100644 libview/ev-loading-window.h create mode 100644 libview/ev-page-cache.c create mode 100644 libview/ev-page-cache.h create mode 100644 libview/ev-pixbuf-cache.c create mode 100644 libview/ev-pixbuf-cache.h create mode 100644 libview/ev-print-operation.c create mode 100644 libview/ev-print-operation.h create mode 100644 libview/ev-stock-icons.c create mode 100644 libview/ev-stock-icons.h create mode 100644 libview/ev-timeline.c create mode 100644 libview/ev-timeline.h create mode 100644 libview/ev-transition-animation.c create mode 100644 libview/ev-transition-animation.h create mode 100644 libview/ev-view-accessible.c create mode 100644 libview/ev-view-accessible.h create mode 100644 libview/ev-view-cursor.c create mode 100644 libview/ev-view-cursor.h create mode 100644 libview/ev-view-marshal.list create mode 100644 libview/ev-view-presentation.c create mode 100644 libview/ev-view-presentation.h create mode 100644 libview/ev-view-private.h create mode 100644 libview/ev-view-type-builtins.c.template create mode 100644 libview/ev-view-type-builtins.h.template create mode 100644 libview/ev-view.c create mode 100644 libview/ev-view.h create mode 100644 m4/gtk-doc.m4 create mode 100644 m4/intltool.m4 create mode 100644 m4/libtool.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/mate-doc-utils.m4 create mode 100644 po/ChangeLog create mode 100644 po/LINGUAS create mode 100644 po/POTFILES.in create mode 100644 po/POTFILES.skip create mode 100644 po/af.po create mode 100644 po/ar.po create mode 100644 po/as.po create mode 100644 po/ast.po create mode 100644 po/be.po create mode 100644 po/be@latin.po create mode 100644 po/bg.po create mode 100644 po/bn.po create mode 100644 po/bn_IN.po create mode 100644 po/br.po create mode 100644 po/ca.po create mode 100644 po/ca@valencia.po create mode 100644 po/cs.po create mode 100644 po/cy.po create mode 100644 po/da.po create mode 100644 po/de.po create mode 100644 po/dz.po create mode 100644 po/el.po create mode 100644 po/en@shaw.po create mode 100644 po/en_CA.po create mode 100644 po/en_GB.po create mode 100644 po/eo.po create mode 100644 po/es.po create mode 100644 po/et.po create mode 100644 po/eu.po create mode 100644 po/fa.po create mode 100644 po/fi.po create mode 100644 po/fr.po create mode 100644 po/ga.po create mode 100644 po/gl.po create mode 100644 po/gu.po create mode 100644 po/he.po create mode 100644 po/hi.po create mode 100644 po/hu.po create mode 100644 po/id.po create mode 100644 po/it.po create mode 100644 po/ja.po create mode 100644 po/ka.po create mode 100644 po/kk.po create mode 100644 po/kn.po create mode 100644 po/ko.po create mode 100644 po/ks.po create mode 100644 po/ku.po create mode 100644 po/lt.po create mode 100644 po/lv.po create mode 100644 po/mai.po create mode 100644 po/mg.po create mode 100644 po/mk.po create mode 100644 po/ml.po create mode 100644 po/mn.po create mode 100644 po/mr.po create mode 100644 po/ms.po create mode 100644 po/nb.po create mode 100644 po/nds.po create mode 100644 po/ne.po create mode 100644 po/nl.po create mode 100644 po/nn.po create mode 100644 po/oc.po create mode 100644 po/or.po create mode 100644 po/pa.po create mode 100644 po/pl.po create mode 100644 po/ps.po create mode 100644 po/pt.po create mode 100644 po/pt_BR.po create mode 100644 po/ro.po create mode 100644 po/ru.po create mode 100644 po/rw.po create mode 100644 po/si.po create mode 100644 po/sk.po create mode 100644 po/sl.po create mode 100644 po/sq.po create mode 100644 po/sr.po create mode 100644 po/sr@latin.po create mode 100644 po/sv.po create mode 100644 po/ta.po create mode 100644 po/te.po create mode 100644 po/th.po create mode 100644 po/tr.po create mode 100644 po/uk.po create mode 100644 po/vi.po create mode 100644 po/wa.po create mode 100644 po/zh_CN.po create mode 100644 po/zh_HK.po create mode 100644 po/zh_TW.po create mode 100644 previewer/Makefile.am create mode 100644 previewer/ev-previewer-window.c create mode 100644 previewer/ev-previewer-window.h create mode 100644 previewer/ev-previewer.c create mode 100644 properties/Makefile.am create mode 100644 properties/ev-properties-main.c create mode 100644 properties/ev-properties-view.c create mode 100644 properties/ev-properties-view.h create mode 100644 shell/Makefile.am create mode 100644 shell/eggfindbar.c create mode 100644 shell/eggfindbar.h create mode 100644 shell/ev-annotation-properties-dialog.c create mode 100644 shell/ev-annotation-properties-dialog.h create mode 100644 shell/ev-application.c create mode 100644 shell/ev-application.h create mode 100644 shell/ev-convert-metadata.c create mode 100644 shell/ev-daemon.c create mode 100644 shell/ev-file-monitor.c create mode 100644 shell/ev-file-monitor.h create mode 100644 shell/ev-history.c create mode 100644 shell/ev-history.h create mode 100644 shell/ev-keyring.c create mode 100644 shell/ev-keyring.h create mode 100644 shell/ev-marshal.list create mode 100644 shell/ev-media-player-keys.c create mode 100644 shell/ev-media-player-keys.h create mode 100644 shell/ev-message-area.c create mode 100644 shell/ev-message-area.h create mode 100644 shell/ev-metadata.c create mode 100644 shell/ev-metadata.h create mode 100644 shell/ev-navigation-action-widget.c create mode 100644 shell/ev-navigation-action-widget.h create mode 100644 shell/ev-navigation-action.c create mode 100644 shell/ev-navigation-action.h create mode 100644 shell/ev-open-recent-action.c create mode 100644 shell/ev-open-recent-action.h create mode 100644 shell/ev-password-view.c create mode 100644 shell/ev-password-view.h create mode 100644 shell/ev-progress-message-area.c create mode 100644 shell/ev-progress-message-area.h create mode 100644 shell/ev-properties-dialog.c create mode 100644 shell/ev-properties-dialog.h create mode 100644 shell/ev-properties-fonts.c create mode 100644 shell/ev-properties-fonts.h create mode 100644 shell/ev-properties-license.c create mode 100644 shell/ev-properties-license.h create mode 100644 shell/ev-sidebar-annotations.c create mode 100644 shell/ev-sidebar-annotations.h create mode 100644 shell/ev-sidebar-attachments.c create mode 100644 shell/ev-sidebar-attachments.h create mode 100644 shell/ev-sidebar-layers.c create mode 100644 shell/ev-sidebar-layers.h create mode 100644 shell/ev-sidebar-links.c create mode 100644 shell/ev-sidebar-links.h create mode 100644 shell/ev-sidebar-page.c create mode 100644 shell/ev-sidebar-page.h create mode 100644 shell/ev-sidebar-thumbnails.c create mode 100644 shell/ev-sidebar-thumbnails.h create mode 100644 shell/ev-sidebar.c create mode 100644 shell/ev-sidebar.h create mode 100644 shell/ev-utils.c create mode 100644 shell/ev-utils.h create mode 100644 shell/ev-window-title.c create mode 100644 shell/ev-window-title.h create mode 100644 shell/ev-window.c create mode 100644 shell/ev-window.h create mode 100644 shell/evince-icon.rc create mode 100644 shell/main.c create mode 100644 test/Makefile.am create mode 100644 test/test-encrypt.pdf create mode 100644 test/test-links.pdf create mode 100644 test/test-mime.bin create mode 100644 test/test-page-labels.pdf create mode 100755 test/test1.py create mode 100755 test/test2.py create mode 100755 test/test3.py create mode 100755 test/test4.py create mode 100755 test/test5.py create mode 100755 test/test6.py create mode 100755 test/test7.py create mode 100644 thumbnailer/Makefile.am create mode 100644 thumbnailer/evince-thumbnailer-comics.schemas.in create mode 100644 thumbnailer/evince-thumbnailer-djvu.schemas.in create mode 100644 thumbnailer/evince-thumbnailer-dvi.schemas.in create mode 100644 thumbnailer/evince-thumbnailer-ps.schemas.in create mode 100644 thumbnailer/evince-thumbnailer.c create mode 100644 thumbnailer/evince-thumbnailer.schemas.in diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..64fbaefb --- /dev/null +++ b/AUTHORS @@ -0,0 +1,12 @@ +The Xpdf software and documentation are +Copyright 1996-2003 Glyph & Cog, LLC. + +Martin Kretzschmar <m_kretzschmar@gmx.net> +Marco Pesenti Gritti <marco@gnome.org> +Jonathan Blandford <jrb@gnome.org> +Nickolay V. Shmyrev <nshmyrev@yandex.ru> +Bryan Clark <clarkbw@gnome.org> +Carlos Garcia Campos <carlosgc@gnome.org> +Wouter Bolsterlee <wbolster@gnome.org> + +And many others diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..ecb192b2 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 00000000..3c7bfb8e --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,11 @@ +Jonathan Blandford +E-mail: jrb@gnome.org +Userid: jrb + +Nickolay V. Shmyrev +E-mail: nshmyrev@yandex.ru +Userid: nshmyrev + +Carlos Garcia Campos +E-mail: carlosgc@gnome.org +Userid: carlosgc diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..2468dae4 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,116 @@ +ACLOCAL_AMFLAGS = -I m4 + +# Set the minimum required Windows version to Windows 2000 (0x0500). +if PLATFORM_WIN32 +AM_CPPFLAGS = -D_WIN32_WINNT=0x0500 +endif + +SUBDIRS = \ + cut-n-paste \ + data \ + libdocument \ + backend \ + libview \ + libmisc \ + properties \ + shell \ + po \ + help + +if ENABLE_TESTS +SUBDIRS += test +endif + +if ENABLE_THUMBNAILER +SUBDIRS += thumbnailer +endif + +if ENABLE_PREVIEWER +SUBDIRS += previewer +endif + +NULL = + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = \ + evince-document-$(EV_API_VERSION).pc \ + evince-view-$(EV_API_VERSION).pc \ + $(NULL) + +headerdir = $(includedir)/evince/$(EV_API_VERSION) +header_DATA = \ + evince-document.h \ + evince-view.h \ + $(NULL) + +# Applications + +intltool_extra = intltool-extract.in intltool-merge.in intltool-update.in + +EXTRA_DIST = \ + $(intltool_extra) \ + $(header_DATA) \ + autogen.sh \ + mate-doc-utils.make \ + MAINTAINERS + +DISTCLEANFILES = \ + mate-doc-utils.make \ + intltool-extract \ + intltool-merge \ + intltool-update + +MAINTAINERCLEANFILES = \ + ChangeLog \ + $(srcdir)/INSTALL \ + $(srcdir)/aclocal.m4 \ + $(srcdir)/autoscan.log \ + $(srcdir)/compile \ + $(srcdir)/config.guess \ + $(srcdir)/config.h.in \ + $(srcdir)/config.sub \ + $(srcdir)/configure \ + $(srcdir)/configure.scan \ + $(srcdir)/depcomp \ + $(srcdir)/install-sh \ + $(srcdir)/ltmain.sh \ + $(srcdir)/missing \ + $(srcdir)/mkinstalldirs \ + $(srcdir)/omf.make \ + $(srcdir)/xmldocs.make \ + $(srcdir)/gtk-doc.make \ + $(srcdir)/po/Makefile.in.in \ + `find "$(srcdir)" -type f -name Makefile.in -print` + +DISTCHECK_CONFIGURE_FLAGS = \ + --disable-schemas-install \ + --disable-scrollkeeper \ + --enable-gtk-doc \ + --disable-caja \ + --disable-tests \ + --disable-silent-rules + +# Ignore scrollkeeper issues for now. @#*$& scrollkeeper +distuninstallcheck_listfiles = find . -type f -print | grep -v scrollkeeper | grep -v /share/mate/help/ | grep -v \.omf + +distclean-local: + if test "$(srcdir)" = "."; then :; else \ + rm -f ChangeLog; \ + fi + +ChangeLog: + $(AM_V_GEN) if test -d "$(srcdir)/.git"; then \ + (GIT_DIR=$(top_srcdir)/.git ./missing --run git log -M -C --name-status --date=short --no-color) | fmt --split-only > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ + (test -f $@ || echo git log is required to generate this file >> $@)); \ + else \ + test -f $@ || \ + (echo A git checkout and git log is required to generate ChangeLog >&2 && \ + echo A git checkout and git log is required to generate this file >> $@); \ + fi + +.PHONY: ChangeLog + +-include $(top_srcdir)/git.mk diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..0af06a59 --- /dev/null +++ b/NEWS @@ -0,0 +1,2810 @@ +================ +Evince 2.32.0 +================ + +Bug fixes: + + * Make "Shrink to Printable Area" default option for Page Scaling + (Marek Kasik) + * Fix build with --disable-dbus (#629498, Didier Roche) + +Translation updates: + + * Damyan Ivanov (bg) + * Ivar Smolin (et) + * IƱaki LarraƱaga Murgoitio (eu) + * Milan Bouchet-Valat (fr) + * Francesco Marletta (it) + * Shushi Kurose (ja) + * Changwoo Ryu (ko) + * Wouter Bolsterlee (nl) + * Piotr DrÄ g (pl) + * Henrique P. Machado (pt_BR) + * Lucian Adrian Grijincu (ro) + * Yuri Myasoedov (ru) + +================ +Evince 2.31.92 +================ + +Bug fixes: + + * Change gsettings schema path from /apps/evince to + /org/mate/evince (Christian Persch) + * A D-Bus signal is now emitted when document is loaded (#626561, + JosĆ© Aliste) + * Use MateConf again for lockdown settings (#628945, Christian Persch) + * Fix a crash during selection when evince is built with gtk2 + (Carlos Garcia Campos) + * Evince daemon can spawn an evince instance when finding a + document (#625971, JosĆ© Aliste) + +Translation updates: + + * Khaled Hosny (ar) + * Kenneth Nielsen (da) + * Christian Kirbach (de) + * Michael Kotsarinis (el) + * Bruce Cowan (en_GB) + * Ivar Smolin (et) + * Gabor Kelemen (hu) + * Andika Triwidada (id) + * Shushi Kurose (ja) + * Baurzhan Muftakhidinov (kk) + * Aurimas Äernius (lt) + * Kjartan Maraas (nb) + * Duarte Loreto (pt) + * MiloÅ” PopoviÄ (sr@latin) + * ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ (sr) + * Daniel Nylander (sv) + * ę±ę¶ (zh_CN) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.31.90 +================ + +Bug fixes: + + * Do not jump to link dest when clicking with GDK_CONTROL_MASK + (#626407, Carlos Garcia Campos) + * Use GDK_BLANK_CURSOR instead of creating our own empty cursor + (Carlos Garcia Campos) + * Improve findbar message when there are no matches (#626334, + Carlos Garcia Campos, JosĆ© Aliste) + * Remove #ifdefs for old cairo versions (#626147, Juanjo MarĆn) + +Translation updates: + + * Paul Seyfert (de) + * Jorge GonzĆ”lez (es) + * Fran Dieguez (gl) + * Yaron Shahrabani (he) + * Torstein Adolf Winterseth (nn) + * A S Alam (pa) + * Matej UrbanÄiÄ (sl) + * Xhacker Liu (zh_CN) + +================ +Evince 2.31.6.1 +================ + +New Features and UI Improvements: + + * Add --with-gtk=2.0|3.0 configure flag (#626030, Vincent Untz) + +Bug fixes: + + * Fix a crash with DVI files and empty glyphs (#600552, Marek Kasik) + * Fix a crash when a page is manually entered (#624936, Marek Kasik) + +Translation updates: + + * Jorge GonzĆ”lez (es) + * Fran Dieguez (gl) + * Yaron Shahrabani (he) + * Andika Triwidada (id) + * Kjartan Maraas (nb) + * Matej UrbanÄiÄ (sl) + * Dr.T.Vasudevan (ta) + +================ +Evince 2.31.6 +================ + +New Features and UI Improvements: + + * Preliminary support for adding new annotations (#168304, Carlos + Garcia Campos) + * Add confirmation dialog on closing window when document has been + modified (Form fields have been filled out or annots have been + added/modified) (#168304, Carlos Garcia Campos) + * Add an action to edit menu to save current settings as + default. Default settings will be used only for new documents + that don't have metadata (#620325, Carlos Garcia Campos) + * Migrate lockdown to gsettings (Carlos Garcia Campos) + +Bug fixes: + + * Update synctex parser from TexLive SVN repository (#624532, + Marek Kasik) + * Fix a crash when loading document with inverted colors enabled + (Carlos Garcia Campos) + * Several build improvements (Hib Eris) + * Fix memory leaks when document is reloaded (Carlos Garcia Campos) + * Fix position of window annotations when moved by the user (Jose + Aliste, Carlos Garcia Campos) + * Fix build with poppler 0.14 (#624904, Carlos Garcia Campos) + * Use cairo instead of gdk_draw API (Carlos Garcia Campos) + * Only set text and text_layout flags in page cache when a11y + might be enabled (Carlos Garcia Campos) + +Translation updates: + + * Xandru Armesto (ast) + * Mario BlƤttermann (de) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Fran DiĆ©guez (gl) + * Sweta Kothari (gu) + * Yaron Shahrabani (he) + * Shankar Prasad (kn) + * Sandeep Shedmake (mr) + * Kjartan Maraas (nb) + * Daniel Nylander (sv) + * Krishna Babu K (te) + * Eleanor Chen (zh_CN) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.31.5 +================ + +New Features and UI Improvements: + + * Add a new sidebar page to show the list of annotations (Carlos + Garcia Campos) + * Finish DBus API for synctex support (#543503, Jose Aliste) + * Switch to GTK+ 3 + +Bug fixes: + + * Make sure annot popups never show up outside the main window + * (#604125, Carlos Garcia Campos) + * Set word wrapping mode for text in popup annotations (#623456, + gvlat@pochta.ru) + +Translation updates: + + * Baurzhan Muftakhidinov (kk) + * ę±ę¶ (zh_CN) + +================ +Evince 2.31.4.1 +================ + +Bug fixes: + + * Fix build when poppler_page_get_text_layout is not available + (#623080, Carlos Garcia Campos) + +================ +Evince 2.31.4 +================ + +New Features and UI Improvements: + + * Implement AtkText interface in EvView (#309015, Daniel Garcia) + * Add preliminary SyncTex support (#543503, Jose Aliste, Carlos + Garcia Campos) + +Bug fixes: + + * Don't save print document settings into global file (#530018, + Carlos Garcia Campos) + * Reload presentation view when document changes (#621750, Carlos + Garcia Campos) + * Remove hard-coded reason in totem-scrsaver (#621386, Bastien + Nocera) + * Fix opening cbz files with [] in archive (#619248, Juanjo MarĆn) + +Translation updates: + + * Carles Ferrando Garcia (ca) + * Kristjan SCHMIDT (eo) + * Fran DiĆ©guez (gl) + * Kjartan Maraas (nb) + * Matej UrbanÄiÄ (sl) + * ęØē« (zh_CN) + +================ +Evince 2.31.3 +================ + +New Features and UI Improvements: + + * Use a dynamic pixbuf cache size based on document page + size. It allows us caching more pages for lower scale factors + and increase zoom level by caching fewer pages. (#303365, Carlos + Garcia Campos) + +Bug fixes: + + * Fix fade animations (#619825, Carlos Garcia Campos) + * Fix a crash when starting animation in presentation mode + (#619948, Carlos Garcia Campos) + * Remove set_focus_on_map and set NOTIFICATION type hint for + loading window. It prevents focus stealing and skips taskbar and + pager hints (#620548, Carlos Garcia Campos) + * Fix build with GSEAL enabled (#605776, Carlos Garcia Campos) + * Remove circular dependencies in Makefiles and fix some compiler + warnings (Hib Eris) + +Translation updates: + + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Fran DiĆ©guez (gl) + * Yaron Shahrabani (he) + * Kjartan Maraas (nb) + * Sira Nokyoongtong (th) + * ēé²(Gan Lu) (zh_CN) + +================ +Evince 2.31.2 +================ + +New Features and UI Improvements: + + * Port to GDBus (Christian Persch, Carlos Garcia Campos) + * Do not use the mateconf gsettings backend any more (#619335, + Matthias Clasen) + * Use cairo to draw search results (Carlos Garcia Campos) + * Use a loading window to show loading progress information + instead of the old 'Loading ...' text rendered on every page + (Carlos Garcia Campos) + +Bug fixes: + + * Fix localization on Windows (#610548, Hib Eris) + * Convert relative path to absolute path for evince-previewer + (Marek Kasik) + * Fix opening files with '#' in its name (#616515, Carlos Garcia + Campos) + * Accept keyboard focus in window annotations (Carlos Garcia + Campos) + * Fix most of the GSEAL build issues (#605776, Carlos Garcia + Campos) + * Add .c files to the introspection sources (#617736, Christian + Persch) + +Translation updates: + + * Thomas Thurman (en@shaw) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Manoj Kumar Giri (or) + +================ +Evince 2.31.1 +================ + +New Features and UI Improvements: + + * Add saved documents with "save a copy" to recent file list + (#617580, Carlos Garcia Campos) + * Port override_restrictions mateconf key to GSettings (Carlos Garcia + Campos) + * Add icons to the recent items, and always show them in menu + (#614400, Christian Persch) + +Bug fixes: + + * Invert colors of pages and thumbanils when loading in inverted + color mode (#616110, #616111, Juanjo MarĆn) + * Take default settings from last document opened. Fixes + regression caused by migration to gio metadata (#606090, + Carlos Garcia Campos) + * Ellipsise the recent action's label (Christian Persch) + * Make inverted colors mode work in presentation mode too + (#614693, Carlos Garcia Campos) + * Respect MATE22_USER_DIR env variable (#613637, Ray Strode) + * Fix loading of local documents when uri contains a page + destination (#616515, Carlos Garcia Campos) + * Make mate-doc-utils optional (Hib Eris) + * Update icons to match mate-icon-theme appearance (#614747, + Hylke Bons, Carlos Garcia Campos) + * Make sure there's a new valid page range before updating caches + (fdo#27599, Carlos Garcia Campos) + * Fix .desktop file according to CorrectDesktopFiles GNIOME Goal + (#592733, Javier JardĆ³n) + * Update FSF address everywhere (#514607, Arun Persaud) + * Fix loading of compressed password-protected documents (#613959, + Carlos Garcia Campos) + * Add command line option to open document at a given page index + (#613449, Daniel M. German) + * Fix build with GSEAL_ENABLE for libview and libdocument + (#605776, Hib Eris, Carlos Garcia Campos) + * Close previewer window with control + w (#612972, Carlos Garcia + Campos) + * Fix keybindings in previewer window (#612972, Carlos Garcia + Campos) + +Translation updates: + + * Runa Bhattacharjee (bn_IN) + * Gil Forcada (ca) + * Gil Forcada (ca@valencia) + * Jorge GonzĆ”lez (es) + * Fran DiĆ©guez (gl) + * Shankar Prasad (kn) + * Ani Peter (ml) + * Sandeep Shedmake (mr) + * Wouter Bolsterlee (nl) + * Andrej ŽnidarÅ”iÄ (sl) + +================ +Evince 2.30.0 +================ + +Bug fixes: + + * Fix scale calculation on rotated monitors in presentation mode + (JosĆ© Aliste, Carlos Garcia Campos) + * Save current page when closing window in presentation mode + (#612656, Carlos Garcia Campos) + * Fix rendering of documents with non uniform page size when in + presentation mode (Carlos Garcia Campos) + * Use monitor height instead of screen height to calculate page + scale in presentation mode (#608924, Carlos Garcia Campos) + +Translation updates: + + * Sadia Afroz (bn) + * Lucas Lommer (cs) + * Kenneth Nielsen (da) + * IƱaki LarraƱaga Murgoitio (eu) + * Tommi Vainikainen (fi) + * Gabor Kelemen (hu) + * Andika Triwidada (id) + * Francesco Marletta (it) + * Changwoo Ryu (ko) + * Badral (mn) + * Nils-Christoph Fiedler (nds) + * Wouter Bolsterlee (nl) + * A S Alam (pa) + * Duarte Loreto (pt) + * Daniel Nylander (sv) + * Maxim Dziumanenko (uk) + +================ +Evince 2.29.92 +================ + +Bug fixes: + + * Fix build with gtk+ >= 2.19.7 + +Translation updates: + + * Gil Forcada (ca) + * Bruce Cowan (en_GB) + * IƱaki LarraƱaga Murgoitio (eu) + * Gabor Kelemen (hu) + * Gintautas Miliauskas (lt) + * Anita Reitere (lv) + * Umarzuki bin Mochlis Moktar (ms) + * Piotr DrÄ g (pl) + * Yuri Kozlov (ru) + * MiloÅ” PopoviÄ (sr@latin) + * ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ (sr) + * Daniel Nylander (sv) + +================ +Evince 2.29.91 +================ + +New Features and UI Improvements: + + * DVI backend support on windows (#602910, Hib Eris) + +Documentation fixes: + + * Modernise API docs (Christian Persch) + +Bug fixes: + + * Fix dpi calculation (#608586, Juanjo MarĆn) + * Allow adding actions for more than one item in view popup menu + (#609497, Carlos Garcia Campos) + * Add mateconf schemas for comic cbt files (#609501, Carlos Garcia + Campos) + * Update totem-scrsaver from totem sources (#610173, Carlos Garcia + Campos) + * Fix linking with pedantic linkers (#609895, Hib Eris) + * Do not link evince shell to poppler directly (#608832, Hib Eris) + * Several translatable messages fixed (#608698, Philip Withnall) + +Translation updates: + + * Khaled Hosny (ar) + * Krasimir \"Bfaf\" Chonov (bg) + * Sadia Afroz (bn) + * Christian Kirbach (de) + * nikosCharonitakis (el) + * Philip Withnall (en_GB) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Claude Paroz (fr) + * Fran DiĆ©guez (gl) + * Hideki Yamane (Debian-JP) (ja) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Henrique P. Machado (pt_BR) + * Adi Roiban (ro) + * Matej UrbanÄiÄ (sl) + * Dr,T,Vasudevan (ta) + * Theppitak Karoonboonyanan (th) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.29.5 +================ + +New Features and UI Improvements: + + * Make Home/End keys go to first/last page in presentation mode + too (#358462, Carlos Garcia Campos) + * Allow finish presentation by clicking on end page (#309364, + Carlos Garcia Campos) + * Add custom print tab to printing dialog with several page scale + options (#599468, #599470, #599547, Adrian Johnson) + * Add support for remote files in evince thumbnailers (#605218, + Carlos Garcia Campos) + * Add evince icon to the windows executable (#596401, Hib Eris) + +Bug fixes: + + * Fix transition of pages with duration=0 in presentation mode + (Carlos Garcia Campos) + * Fix vertical white line shown in presentation mode with + documents with black background (#438760, Carlos Garcia Campos) + * Fix fickering and blank screen issues when changing pages fast + in presentation mode (#602738, Carlos Garcia Campos) + * Fix printing on Windows (#604705, Hib Eris) + * Disable text selection in presentation mode (#605554, Carlos + Garcia Campos) + * Make comics backend also compile on Windows (#605146, Hib Eris) + * Remove comics_regex_quote() in favor of always using + g_shell_quote() (#605092, Juanjo MarĆn) + * Properly redrawn properties view when document is reloaded + (#605169, Carlos Garcia Campos) + +Translation updates: + + * Khaled Hosny (ar) + * Jorge GonzĆ”lez (es) + * Kjartan Maraas (nb) + * Matej UrbanÄiÄ (sl) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Maxim Dziumanenko (uk) + +================ +Evince 2.29.4 +================ + +New Features and UI Improvements: + + * Always show rotate icons (#599398, Carlos Garcia Campos) + * EvPrintOperation has been moved to libview so that it can + be used by EvView users (#604750, Tomeu Vizoso) + * Support for cbt comic files (#588266, Juanjo MarĆn) + +Bug fixes: + + * Do not fail to open external uri links that are relative paths + (#604716, Carlos Garcia Campos) + * Do not hardcode BINDIR on Windows (#605001, Hib Eris) + * Fix a crash in djvu backend on windows (#604919, Hib Eris) + * Replace mkdtemp with our own _ev_g_mkdtemp to make it portable + (#604917, Hib Eris) + * Include a copy of some icons from mate-icon-theme to be used as + fallback on platforms like window where mate-icon-theme is not + available (#596400, Hib Eris) + * Fix 0x0 page size always shown in properties view (Carlos Garcia + Campos) + * Do not hide page selector widget on invalid input (#603714, + Carlos Garcia Campos) + * Split EvPixbufCache into dynamic and static data. Static page + data (links, annots, images, text and forms) that don't + depend on current scale/rotation, have been moved to EvPageCache + and are never removed. (#602405, Carlos Garcia Campos) + * Fix a typo in EV_RENDER_CONTEXT macro definition (#603857, + Gustavo Carneiro) + * Code cleanups and improvements in libview (#603858, Carlos + Garcia Campos) + +Translation updates: + + * Khaled Hosny (ar) + * Yaron Shahrabani (he) + * Kjartan Maraas (nb) + * Matej UrbanÄiÄ (sl) + * Tao Wei (zh_CN) + +================ +Evince 2.29.3 +================ + +New Features and UI Improvements: + + * Add inverted colors view mode (#321823, Juanjo MarĆn, Carlos + Garcia Campos) + * Add options to open/save attachment annotations to context menu + (Carlos Garcia Campos) + +Bug fixes: + + * Fix infinite loop when scrollbar visibility changes in fit-with + mode (Carlos Garcia Campos) + * Fix rendering issue in dual/continuous mode (#602742, JosĆ© + Aliste) + * Do not resize the window when zoom in/out with CTRL+Scroll + (#602798, Carlos Garcia Campos) + * Keep scroll position when reloading (#602445, Carlos Garcia + Campos) + * Make "p" and "n" accels unsensitive while searching (Carlos + Garcia Campos) + +Translation updates: + + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Yaron Shahrabani (he) + * Nils-Christoph Fiedler (nds) + * Matej UrbanÄiÄ (sl) + * Tao Wei (zh_CN) + +================ +Evince 2.29.2 +================ + +New Features and UI Improvements: + + * Add support for PDF File Attachment Annotations (#601839, Carlos + Garcia Campos) + * Use "n" and "p" keys for page jump (#601217, Carlos Garcia + Campos) + * Update actions sensitivity when mateconf keys change (#568433, + Carlos Garcia Campos) + +Documentation fixes: + + * Make series ID unique (#599726, Christian Persch) + +Bug fixes: + + * Fix saving attachments (Carlos Garcia Campos) + * Make sure view is redrawn as soon as current page is rendered + (#601433, Carlos Garcia Campos) + * Fix documentation of default flag values in configure (Emmanuel + Fleury) + * Do not mark properties name and desc as translatable (#509824, + Carlos Garcia Campos) + * Fix build with glib < 2.22.0 (#600338, Christian Spurk) + * Disable print page setup options according to lockdown (#568433, + Carlos Garcia Campos) + * Fix loading of remote files (Carlos Garcia Campos) + * Correctly process --with-smclient arguments (#590174, Christian + Persch) + +Translation updates: + + * Thomas Thurman (en@shaw) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * AntĆ³n MĆ©ixome (gl) + * Kjartan Maraas (nb) + * Matej UrbanÄiÄ (sl) + * Daniel Nylander (sv) + * Dr.T.Vasudevan (ta) + * ęØę ę±(Fan Qijiang) (zh_CN) + +================ +Evince 2.29.1 +================ + +New Features and UI Improvements: + + * Embed page setup settings in the print dialog (#591551, Marek + KaÅ”Ćk, Carlos Garcia Campos) + * A new tab has been added to properties dialog to show + * information about the document license (#349173, Juanjo MarĆn, + Carlos Garcia Campos) + * Use different processes for every document opened. (#583680, + #434966, #497388, #524633, #586087, Carlos Garcia Campos) + * Use GVFS metadata instead of our own xml based + implementation. (#586841, Carlos Garcia Campos) + * When scrolling a page, move one screen leaving one line context + to help to visually track the document as it moves. (#170871, + Carlos Garcia Campos) + * Use GtkInfoBar instead of GeditMessageArea for the message area + (#592785, Carlos Garcia Campos) + * EvPageCache has been splitted up into document part (moved to + EvDocument which has been converted into an abstract class + instead of an interface) and view part: EvDocumentModel. This + allows to have more than one EvView for the same document, so + that "Open a Copy" can be implemented without using the symlink + hack. (#573641, Carlos Garcia Campos) + +Bug fixes: + + * Several fixes and cleanups in comics backend (Christian Persch) + * Don't exit with non-writable $HOME (Christian Persch) + * Clean up temp file handling to make sure we can cope with not + being able to create our temp directory (#595372, Christian Persch) + * Set page orientation of each page when printing so that + documents with mixed portrait/landscape pages print correctly + (#599470, Adrian Johnson) + * Preserve aspect ratio when scaling page for printing (#599468, + Adrian Johnson) + * Fix a crash when we don't have a DBUS connection (Christian Persch) + * Make sure total_num_bytes > 0 before using it in progress + callbacks (#597691, Carlos Garcia Campos) + * Escape document URI before showing it in progress area (#597691, + Carlos Garcia Campos) + * Fix a crash due to an uninitialized variable (#597154, Carlos + Garcia Campos) + * Fix a crash when there are form field widgets active during + rotation (#593316, Carlos Garcia Campos) + * Remarks the selected thumbnail after rotation (#595548, Juanjo MarĆn) + * Don't change current page when rotating documents with different + page sizes (#595704, Carlos Garcia Campos) + * Fix thumbnails rotation when loading a rotated document + (#595718, Carlos Garcia Campos) + * Save images as png or jpg when the filename has no extensions + (#595079, Patrick Ammann) + * Populate destination page when reloading the document (#570054, + Fernando Herrera) + +Translation updates: + + * Khaled Hosny (ar) + * Astur (ast) + * Krasimir \"Bfaf\" Chonov (bg) + * Runa Bhattacharjee (bn_IN) + * Gil Forcada (ca) + * Marek ÄernockĆ½ (cs) + * Kenneth Nielsen (da) + * Mario BlƤttermann (de) + * Kostas Papadimas (el) + * Philip Withnall (en_GB) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * IƱaki LarraƱaga Murgoitio (eu) + * Tommi Vainikainen (fi) + * Claude Paroz (fr) + * AntĆ³n MĆ©ixome (gl) + * Sweta Kothari (gu) + * Gabor Kelemen (hu) + * Andika Triwidada (id) + * Francesco Marletta (it) + * Shushi Kurose (ja) + * Shankar Prasad (kn) + * Changwoo Ryu (ko) + * Gintautas Miliauskas (lt) + * Sangeeta Kumari (mai) + * Ani Peter (ml) + * Sandeep Shedmake (mr) + * Kjartan Maraas (nb) + * Reinout van Schouwen (nl) + * Manoj Kumar Giri (or) + * A S Alam (pa) + * Piotr DrÄ g (pl) + * AndrĆ© Gondim (pt_BR) + * Duarte Loreto (pt) + * Lucian Adrian Grijincu (ro) + * Matej UrbanÄiÄ (sl) + * MiloÅ” PopoviÄ (sr@latin) + * ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ (sr) + * Daniel Nylander (sv) + * Dr.T.Vasudevan (ta) + * Krishna Babu K (te) + * Theppitak Karoonboonyanan (th) + * Baris Cicek (tr) + * Maxim Dziumanenko (uk) + * Aron Xu (zh_CN) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.27.90 +================ + +Bug fixes: + + * Let scroll wheel change page when in non-continuous best-fit + mode (#562257, Philip Langdale) + * Show print progress information when using GtkPrintOperation + * Don't show crash recovery dialog when requested file is the only + one to be recovered (#578894, Carlos Garcia Campos) + * Disable crash recovery when D-BUS is disabled (#578894, Carlos + Garcia Campos) + * Grab focus on view widget after setting metadata (#589300, + Nickolay V. Shmyrev) + * Fixes segmentation violation when print file format is empty + (#589226, Andreas Liebe) + * Use AM_V_GEN to make custom commands silent (#585355, Javier JardĆ³n) + * Don't install schema files when building without mateconf (Nickolay + V. Shmyrev) + +Translation updates: + + * Khaled Hosny (ar) + * Maruf Ovee (bn) + * Denis (br) + * Gil Forcada (ca) + * Carles Ferrando Garcia (ca@valencia) + * Marek ÄernockĆ½ (cs) + * Mario BlƤttermann (de) + * SeĆ”n de BĆŗrca (ga) + * AntĆ³n MĆ©ixome (gl) + * Kjartan Maraas (nb) + * AndrĆ© Gondim (pt_BR) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.27.4 +================ + +Bug fixes: + + * Compute selections on button press for word/line selections + (#562059, Carlos Garcia Campos) + * Fix several even/odd multipage issues (#583429, Bartek Kostrzewa) + * Register thumbnailing for gzip/gzip dvi files (#588013, Emilio + Pozuelo Monfort) + * Get rid of shave with AM_SILENT_RULES automake option (#585355, + Javier JardĆ³n) + * Make evince output pdf on supported printers (#585442, Johan Brannlund) + * Fix build on windows (Fridrich Strba) + * Determine data directory on runtime on windows (Fridrich Strba) + * Fix build without MateConf (Nickolay V. Shmyrev) + * Fix several introspection build issues (#585971, Christian Persch) + +Translation updates: + + * Giannis Katsampirhs (el) + * Jonathan Ernst (fr) + * Daniel Nylander (sv) + * Maxim Dziumanenko (uk) + * Clytie Siddall (vi) + * Nguyį» n ÄƬnh Trung (vi) + +================ +Evince 2.27.3 +================ + +New Features and UI Improvements: + + * Update the hildon port (Christian Persch) + * Complete the win32 port (#339172, Hib Eris) + * Allow activate the menubar in fullscreen mode (#504243, Carlos + Garcia Campos) + * Do not create popup window if the annot doesn't have a popup + (Carlos Garcia Campos) + * Add tests for printer settings (#583976, Bartek Kostrzewa) + * Remember and reuse "Save a Copy..." path (#485195, Carlos Garcia Campos) + * Support for cb7 using the p7zip commands in comics backend + (#565174, Juanjo MarĆn) + * Parse xml metadata to detect PDF/A documents (#582206, Davide Capodaglio) + +Bug fixes: + + * Several build fixes and improvements (Christian Persch) + * Fix page transitions in presentation mode (#583652, #581881, + Carlos Garcia Campos) + * Scale according to paper size before rendering for printing + (Carlos Garcia Campos) + * Fix multipage even/odd printing issues (#583429, #583388, Bartek + Kostrzewa) + * Gracefully work with FITB destinations and friends (#583276, + Matthias Drochner) + * Fix double to int conversion in thumbnails_get_dimensions + (#581524, Carlos Garcia Campos) + * Ohter bugs fixed: #584617, #585497 + +Translation updates: + + * Runa Bhattacharjee (bn_IN) + * Mario BlƤttermann (de) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Kjartan Maraas (nb) + * Vladimir Melo (pt_BR) + * Dr.T.Vaasudevan (ta) + +================ +Evince 2.27.1 +================ + +New Features and UI Improvements: + + * Use GtkPrintOperation when printing for the backends that + support rendering into a cairo context (#557112, Carlos Garcia Campos) + * Recover previous session when running evince after a crash + (#578894, Carlos Garcia Campos) + * Preliminary annotations support (#315002, Carlos Garcia Campos, + IƱigo MartĆnez) + * Rename Print Setup menu entry as Page Setup for consistency with + the GTK+ dialog title (#581109, Nickolay V. Shmyrev) + * Added F3 as a find-next accelerator key (#579072, Michael J. Chudobiak) + * Support the free Gna! unrar tool in comics backend (#552074, + Juanjo MarĆn) + * Add evince-previewer as a separate applicaton that implements + the printing preview (Carlos Garcia Campos) + +Bug fixes: + + * Fix handling of the tmp folder (#582108, Juanjo MarĆn) + * Abort dnd operations originated in the same Evince window + (#582077, Carlos Garcia Campos) + * Disable bouncing during scrolling (#533534, Martin Pohlack) + * Fix build without mateconftool-2 (#581441, Christian Persch) + * Fix documentation build (#579671, Nickolay V. Shmyrev) + * Fix error handling of broken documents (#580886, Nickolay V. Shmyrev) + * Fix several memory leaks in comics backend (#552074, Juanjo MarĆn) + * Escape URIs for display (#581064, Nickolay V. Shmyrev) + * Resync with libegg to remove deprecated GTK+ symbols (#580556, + Javier JardĆ³n) + * Correct check for exit status of commands in comics backend + (#579656, Juanjo MarĆn) + * Add -no-undefined flag for Cygwin build (#580058, Yaakov Selkowitz) + * Use g_file_make_symbolic_link to create symlinks (#339172, Hib Eris) + * Delete the temp symlink created when opening a copy (Carlos + Garcia Campos) + * Don't redraw again when zoom is set more than once to the same + scale factor (Carlos Garcia Campos) + * Fix print preview of empty selection (#517735, Juanjo MarĆn) + * Don't prevent unmounting in case the initial cwd is on an + external device (#575436, Carlos Garcia Campos) + * Create and load the document based on the mime-type provided by + caja instead of using our own documents factory. (#533917, + Carlos Garcia Campos) + * Fix endianess issues in dvi and tiff backends (#578433, #509920, + Benjamin Berg) + * Fix memory leak in tiff backend (#578285, Nickolay V. Shmyrev) + * Fix path where accels file is saved (#577500, Nickolay + V. Shmyrev) + * Fix fading animations (Nickolay V. Shmyrev) + * Translate the categories in the caja properties tab + (#575085, Christian Persch) + * Other bugs fixed: #539972, #578436, #582543 + +Translation updates: + + * Jorge Gonzalez (es) + * Manoj Kumar Giri (or) + * Ivar Smolin (et) + * Vladimir Melo (pt_BR) + * Matej Urban (sl) + * Khaled Hosny (ar) + * MiloÅ” PopoviÄ (sr) + * Funda Wang (zh_CN) + * Amitakhya Phukan (as) + * Baris Cicek (tr) + +================ +Evince 2.26.0 +================ + +Bug fixes: + + * Fix compiler warning when building with -Wformat (#574168, + Tobias Mueller) + * Fix a crash with encrypted documents (Christian Persch) + +Translation updates: + + * F Wolff (af) + * Martin Picek (cs) + * Fotis Tsamis (el) + * Ivar Smolin (et) + * Suso Baleato (gl) + * Yaron Shahrabani (he) + * Gabor Kelemen (hu) + * Francesco Marletta (it) + * Shankar Prasad (kn) + * Gintautas Miliauskas (lt) + * Sangeeta Kumari (mai) + * Ani Peter (ml) + * Sandeep Shedmake (mr) + * Manoj Kumar Giri (or) + * FabrĆcio Godoy (pt_BR) + * MiČu Moldovan (ro) + * Yuriy Penkin (ru) + * I. Felix (ta) + * Krishna Babu K (te) + +================ +Evince 2.25.92 +================ + +Bug fixes: + + * Show the 'jump to page' window in the right GdkScreen (#560541, + Carlos Garcia Campos) + * Make our own thumbnail when the provided one doesn't have the + needed size (#323198, #307357, Christian Spurk, Carlos Garcia Campos) + * Reduce the restriction on the minimum size of thumbnails from 40 + to 1 (#323198, Christian Spurk) + * Use GOption in thumbnailer (Carlos Garcia Campos) + * Fix saving a copy of encrypted PDF documents (#566791, Carlos + Garcia Campos) + * Don't use g_quark_from_static_string in a loadable module + (Christian Persch) + * Use g_object_unref() instead of gdk_pixbuf_unref() in impress + backend (#571707, Thomas H.P. Andersen) + +Translation updates: + + * Ihar Hrachyshka (be@latin) + * Alexander Shopov (bg) + * Gil Forcada (ca) + * Petr Kovar (cs) + * Christian Kirbach (de) + * David Lodge (en_GB) + * Juanje Ojeda Croissier (es) + * IƱaki LarraƱaga Murgoitio (eu) + * Ilkka Tuohela (fi) + * Claude Paroz (fr) + * Sweta Kothari (gu) + * Yuval Tanny (he) + * Takeshi AIHANA (ja) + * Changwoo Ryu (ko) + * Kjartan Maraas (nb) + * Duarte Loreto (pt) + * Daniel Nylander (sv) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.25.91 +================ + +Bug fixes: + + * Fix several memory leaks (Christian Persch) + * Fix errors handling and propagation (Christian Persch) + * Fix several translation strings in properties dialog (#571787, + Nickolay V. Shmyrev) + * Do not resize the window on reloading (#571051, #304249, Carlos + Garcia Campos) + * Experimental introspection support (#569083, Christian Persch) + * Use g_set_error_literal() (Christian Persch) + * Other firxes for win32 (#339172, Hib Eris) + * Make session manager code compile for win32 (#339172, Carlos + Garcia Campos) + * Update totem-screensaver from totem svn to make it build for + win32 (#339172, Hib Eris) + * Make use of MateConf optional (#339172, Hib Eris, Carlos Garcia Campos) + * Fix i18n in libdocument (Christian Persch) + * Include gi18n-lib.h instead of gi18n.h in libs and backends + (Christian Persch) + +Translation updates: + + * Mikel GonzĆ”lez (ast) + * Ihar Hrachyshka (be@latin) + * Kenneth Nielsen (da) + * Dawa pemo (dz) + * Juanje Ojeda Croissier (es) + * Ivar Smolin (et) + * IƱaki LarraƱaga Murgoitio (eu) + * Gabor Kelemen (hu) + * Takeshi AIHANA (ja) + * Shankar Prasad (kn) + * Arangel Angov (mk) + * Wouter Bolsterlee (nl) + * Tomasz Dominikowski (pl) + * Taylon (pt_BR) + * ŠŠ¾ŃŠ°Š½ Š Š°ŠŗŠøŃ (sr) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Clytie Siddall (vi) + * Gan Lu (zh_CN) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.25.90 +================ + +Bug fixes: + + * Split API documentation into libdocument, libview and shell + (#568465, Carlos Garcia Campos) + * Fix symbols conflict in impress backend (#569998, Christian Persch) + * Add mnemonics to buttons in search bar (#569212, Carlos Garcia + Campos) + * Fix a crash when printing (#569328, Carlos Garcia Campos) + * Fix --version command line option (#562869, Christian Persch) + * Use versioned directory for backends (#569082, Christian Persch) + * Add EV_DEFINE_BOXED_TYPE and EV_DEFINE_INTERFACE macros + (#568228, Carlos Garcia Campos) + * Sync EggToolbarEditor with libegg (Nickolay V. Shmyrev) + * Respect directory umask and setgid when saving files (#568593, + Michael J. Chudobiak) + * Add libtool versioning, pkg-config files and single headers for + libdocument and libview (#568224, #568220, #568229, #568227, + Christian Persch) + * Remove G_OBJECT casts from g_signal_connect calls (#568386, Hiroyuki + Ikezoe) + * Install several missing header files of libdocument and libview + (#567787, #567790, Tomeu Vizoso) + * Other bugs fixed: #569120, #569231, #569327, #570077 + +Translation updates: + + * Hendrik Richter (de) + * Ivar Smolin (et) + * Gabor Kelemen (hu) + * Changwoo Ryu (ko) + * Kjartan Maraas (nb) + * Daniel Nylander (sv) + +================ +Evince 2.25.5 +================ + +Code changes: + + * Move EvView specific code to a libevview library so that it can + be embbeded in other applications (#567751, Tomeu Vizoso, Carlos + Garcia Campos) + * Other improvements for embbeders (#567785, #567788, #567789, + Tomeu Vizoso) + +Bug fixes: + + * Fix a minor typo (Michal Vaner) + * Fix the API docs build (#568171, Christian Persch) + * Simplify drag data handling (#558084, Christian Persch) + * Several portability issues (#339172, Hib Eris) + * Fix mnemonic conflict (#567937, Carlos Garcia Campos) + * Other bugs fixed: #567910 + +Translation updates: + + * Gil Forcada (ca) + * Hendrik Richter (de) + * Juanje Ojeda Croissier (es) + * Kjartan Maraas (nb) + * Gan Lu (zh_CN) + +================ +Evince 2.25.4 +================ + +New Features and UI Improvements: + + * Show progress information when loading/saving remote files + (#370958, Carlos Garcia Campos) + * Remember page setup options (#525185, #349102, Carlos Garcia Campos) + * Show a confirmation dialog when there are pending print jobs + while closing the main window (#480964, Carlos Garcia Campos) + * Show progress information when printing (#482770, Carlos Garcia Campos) + * Add document URI to properties page (#555376, Carlos Garcia Campos) + +Bug fixes: + + * Bump glib requirement to fix build with older versions + (Christian Spurk) + * Fix mime type handling (Hib Eris) + * Fix saving images to remote locations (Carlos Garcia Campos) + * Do not try to jump to the location of the find result for every + match, but only for the first one. It makes searching really + faster. (#564774, Michael Hunold) + * Fix zip mime-type in comics backend (Juanjo MarĆn) + * Fix several memory leaks (Carlos Garcia Campos) + +Translation updates: + + * Ihar Hrachyshka (be@latin) + * Juanje Ojeda Croissier (es) + * Yuval Tanny (he) + * Kjartan Maraas (nb) + * Taylon (pt_BR) + * Gan Lu (zh_CN) + +================ +Evince 2.25.2 +================ + +New Features and UI Improvements: + + * PDF Optional content (layers) support. (Carlos Garcia Campos) + * The password dialog has been reworked in order to make it more + hig compliant and consistent (#562496, Carlos Garcia Campos) + * Improved keyring support. Password dialog is not shown anymore + when the password is already in the keyring (Carlos Garcia Campos) + * Support for monitor and reload of remote documents + (#555399, Carlos Garcia Campos) + +Bug fixes: + + * Fix opening comic documents with a wrong but valid extension + (#562143, Carlos Garcia Campos) + * Fix a crash when searching (#558377, Carlos Garcia Campos) + * Fix several crashes when selecting text (#561393, Marek KaÅ”Ćk) + +Translation updates: + + * Jorge GonzĆ”lez (es) + * Nguyį» n ÄƬnh Trung (vi) + +================ +Evince 2.25.1 +================ + +New Features and UI Improvements: + + * Use the message area instead of popup dialogs for any error and + warning messages (Carlos Garcia Campos) + +Bug fixes: + + * Adapt to the new single-include policy (#558064, Christian Persch) + * Fix page transition in presentation mode (#516749, Nickolay V. Shmyrev) + * Other bugs fixed: (#558066, Christian Persch) + +Translation updates: + + * Hendrik Richter (de) + +================ +Evince 2.24.1 +================ + +Bug fixes: + + * Disable toggle function of F5 when in presentation mode + (#556162, Dave Neary) + * Create a loading thumbnail for every different page size + (#556264, Carlos Garcia Campos) + * Fix several memory leaks (Carlos Garcia Campos) + * Do not show bad titles like 'Microsoft Word' in the window title + bar (#534684, Robin Sonefors and Nickolay V. Shmyrev) + * Fix mailto links which were considered as http uris (#555801, + Carlos Garcia Campos) + * Fix launching external applications (#554500, Carlos Garcia Campos) + * Other bugs fixed (#552382, #553369, #555134, Carlos Garcia Campos) + +Translation updates: + + * Ihar Hrachyshka (be@latin) + * Adrian GuniÅ” (cs) + * Kenneth Nielsen (da) + * Ivar Smolin (et) + * Takeshi AIHANA (ja) + +================ +Evince 2.24.0 +================ + +Bug fixes: + + * Use GdkAppLaunchContext when available to launch external uris + (Carlos Garcia Campos) + * Use the message area to show errors when lauching external uris + instead of a popup window (Carlos Garcia Campos) + * Assume invalid uris are http uris (#552071, Carlos Garcia + Campos) + +Translation updates: + + * Usama Akkad (ar) + * Gil Forcada (ca) + * Kenneth Nielsen (da) + * Hendrik Richter (de) + * nikosCharonitakis (el) + * Ilkka Tuohela (fi) + * Sweta Kothari (gu) + * Gabor Kelemen (hu) + * Francesco Marletta (it) + * Shankar Prasad (kn) + * Changwoo Ryu (ko) + * Gintautas Miliauskas (lt) + * Arangel Angov (mk) + * Santhosh Thottingal (ml) + * Sandeep Shedmake (mr) + * wadim dziedzic (pl) + * MiČu Moldovan (ro) + * Alexandre Prokoudine (ru) + * ŠŠ¾ŃŠ°Š½ Š Š°ŠŗŠøŃ (sr) + * Dr.T.Vasudevan (ta) + * Baris Cicek (tr) + * Chao-Hsiung Liao (zh_HK) + * Chao-Hsiung Liao (zh_TW) + +================ +Evince 2.23.92 +================ + +Bug fixes: + + * Allow page scrolling with PageUp/PageDown keys when find bar is + active (#529833, Carlos Garcia Campos) + * Search in page labels is now case-insensitive (#550136, Michael Lee) + * Do not append the file extension twice when saving an image + (Carlos Garcia Campos) + * Correctly restore the cursor after showing the context menu + (Carlos Garcia Campos) + * Grab the mediakeys with a low priority so that it doesn't + interfere with other applications like a music player + (#547164, Eric Piel) + +Translation updates: + + * Alexander Shopov (bg) + * Petr Kovar (cs) + * David Lodge (en_GB) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * IƱaki LarraƱaga Murgoitio (eu) + * Robert-AndrĆ© Mauchin (fr) + * Ignacio Casal Quinteiro (gl) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Leonardo Ferreira Fontenelle (pt_BR) + * Duarte Loreto (pt) + * Laurent Dhima (sq) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Clytie Siddall (vi) + * Funda Wang (zh_CN) + +================ +Evince 2.23.91 +================ + +New Features and UI Improvements: + + * Use EggSMClient from libegg instead of mate-client and remove + libmate and libmateui dependencies (Carlos Garcia Campos) + * Implement document_get_page_label in tiff backend (Carlos Garcia + Campos) + +Bug fixes: + + * Start up in the right workspace when resuming a previous session + (Carlos Garcia Campos) + * Fix marco warnings shown in ~/.xsession-errors (Carlos + Garcia Campos) + * Fix a crash due to an idle function called with an already + destroyed object (#549163, Carlos Garcia Campos) + * Fix problems when opening or saving attachments (#548653, Carlos + Garcia Campos) + * Handle document orientation in tiff backend (#548444, Carlos + Garcia Campos) + * Fix a crash when adjustment page size is 0 (#547440, Carlos + Garcia Campos) + * Other bugs fixed: #548462 + +Translation updates: + + * Runa Bhattacharjee (bn_IN) + * Gil Forcada (ca) + * Mario BlƤttermann (de) + * Dawa pemo (dz) + * Jorge GonzĆ”lez (es) + * IƱaki LarraƱaga Murgoitio (eu) + * Ilkka Tuohela (fi) + * Takeshi AIHANA (ja) + * Shankar Prasad (kn) + * Gintautas Miliauskas (lt) + * Arangel Angov (mk) + * Manoj Kumar Giri (or) + * Vladimir Melo (pt_BR) + * Chao-Hsiung Liao (zh_HK) + +================ +Evince 2.23.6 +================ + +Bug fixes: + + * Correctly build desktop file (#544237, Gƶtz Waschk) + +Other changes: + + * Cleanup #include statements. (Wouter Bolsterlee) + * The jobs system has been reworked in order to make it simpler + and easier to extend. (Carlos Garcia Campos) + * Add a profile mode available when debug is enabled (Carlos + Garcia Campos) + +Translation updates: + + * Djihed Afifi (ar) + * Adrian GuniÅ” (cs) + * Pierre Lemaire (fr) + * Duarte Loreto (pt) + +================ +Evince 2.23.5 +================ + +New Features and UI Improvements: + + * Intercept window manager's fullscreen request in order to + run/stop fullscreen mode (#493541, Carlos Garcia Campos) + * 7-zip compressed commics support (#532312, Kartik Rustagi) + * Add Alt+Left and Alt+Right shortcuts to rotate (#539972, Bastien + Nocera) + * Media player keys support (#539971, Bastien Nocera) + +Bug fixes: + + * Restart the job search when the find bar is opened for the + second time (#531956, Carlos Garcia Campos) + * Fixes caja crash caused by evince properties page extension + (#542548, Carlos Garcia Campos) + * Fix Solaris build (#542924, Darren Kenny) + * Fix endianess bug (#540950, Benjamin Jacobs) + * Other bugs fixed: #542001 + +Translation updates: + + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Ignacio Casal Quinteiro (gl) + * Yuval Tanny (he) + * Rakesh Pandit (ks) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Zabeeh Khan (ps) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + +================ +Evince 2.23.4 +================ + +New Features and UI Improvements: + + * A warning message is shown in the message area when the document + has no pages (#171588, Carlos Garcia Campos) + * Automaticly reload the document when the file has changed on + disk (#304249, Carlos Garcia Campos) + * Added Ctrl-Insert keybinding for copying text and Ctrl+N for + opening a copy (#526523, #532239, Carlos Garcia Campos) + * Save as action has been added as a toolbar button too. (Abhishek Mukherjee) + * Primary selection is also updated when copying a link address + (#520855, Carlos Garcia Campos) + * Added GtkMountOperation, copied from gtk+. (Carlos Garcia Campos) + * GS code has been removed, libspectre is now required to build the + PostScript backend. (Carlos Garcia Campos) + +Bug fixes: + + * Fixed a crash when opening documents with no pages + (#537574, Carlos Garcia Campos) + * Fixed a crash when running in debug mode (Daniel M. German) + * Fixed a crash in impress backend (#530852, Hans Petter Jansson) + * Improved error handling in djvu backend (#530202, Carlos Garcia Campos) + * Do not use the pixbuf backend for rendering tiff documents when + the tiff backend is available (#520290, Carlos Garcia Campos) + * Fixed T1 font rendering in dvi backend (#536883, Mattias Nissler) + * Other bugs fixed: #533323, #533897, #533896, #534493, #537535 + +Thanks: + + Matthias Drochner, Frederic Peters, Cosimo Cecchi + +Translation updates: + + * Djihed Afifi (ar) + + +================ +Evince 2.22.1.1 +================ + +Bug fixes: + + * Fix build in FreeBSD (#526799, Michael Johnson, Carlos Garcia Campos) + * Fixes djvu backend links (#526517, Carlos Garcia Campos) + +=============== +Evince 2.22.1 +=============== + +Bug fixes: + + * Add compressed dvi to the list of supported mime types + (#307087, Ed Catmur) + * Fix a crash when printing a range that doesn't specify the start + or end page (#524288, Carlos Garcia Campos) + * Fix a crash when thumbnail failed to render in PS backend + (#525015, Carlos Garcia Campos) + * Open default application when launching an external uri + (#525009, Emil Soleyman) + * Add a configure option to enable/diable DBus (#521797, RĆ©mi Cardona) + * Fix printing in documents with rotated pages (#512648, Eugen Dedu) + * Do not append file extension twice when saving an image + (#523069, Carlos Garcia Campos, Wouter Bolsterlee) + * Cancel find operation when the find bar is closed + (#508845, Carlos Garcia Campos) + * Several printing fixes: collate, reverse and copies were broken + (#365332, Eugen Dedu) + * Fix selection rendering when poppler is compiled with splash + backend (Carlos Garcia Campos). + * Other bugs fixed: #521224, #524112 + +Translation updates: + + * Alexander Nyakhaychyk (be) + * Yavor Doganov (bg) + * David Lodge (en_GB) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Clytie Siddall (vi) + +=============== +Evince 2.22.0 +=============== + +Bug fixes: + + * Do not print when Escape is pressed to close printing dialog + (#495107, Wouter Bolsterlee) + * Fix a crash in caja properties page (#519679, Carlos Garcia Campos) + * Fix a crash with transition effects (#519106, Carlos Garnacho) + * Fix document mime type detection (#518874, Carlos Garcia Campos) + * Fix a crash in forms (#518831, Carlos Garcia Campos) + * Fix images extraction (#516237, Carlos Garcia Campos) + +Translation updates: + + * Djihed Afifi (ar) + * Ihar Hrachyshka (be@latin) + * Petr Kovar (cs) + * Kenneth Nielsen (da) + * nikosCharonitakis (el) + * David Lodge (en_GB) + * Jorge GonzĆ”lez (es) + * Ivar Smolin (et) + * Ilkka Tuohela (fi) + * Claude Paroz (fr) + * Ignacio Casal Quinteiro (gl) + * Ankit Patel (gu) + * Yuval Tanny (he) + * Gabor Kelemen (hu) + * Luca Ferretti (it) + * Takeshi Aihana (ja) + * Shankar Prasad (kn) + * Changwoo Ryu (ko) + * Gintautas Miliauskas (lt) + * Arangel Angov (mk) + * Sandeep Shedmake (mr) + * Narayan Kumar Magar (ne) + * Ć smund SkjƦveland (nn) + * Yannig Marchegay (Kokoyaya) (oc) + * Hugo Doria (pt_BR) + * Laurent Dhima (sq) + +=============== +Evince 2.21.91 +=============== + +Bug fixes: + + * mate-print code has been removed (#512370, Carlos Garcia Campos) + * Fix thumbnailer crash (#513934, Matthias Clasen) + * Fix djvu rendering (#482720, Carlos Garcia Campos) + * Fix mime type detection based on file contents (Cosimo Cecchi, Carlos Garcia Campos) + * Other bugs fixed: #512719, #512720, #512718, #512771, #513203 + +Translation updates: + + * Khaled Hosny (ar) + * Amitakhya Phukan (as) + * Hendrik Richter (de) + * Jorge GonzĆ”lez (es) + * Kjartan Maraas (nb) + * Yannig Marchegay (Kokoyaya) (oc) + * Tomasz Dominikowski (pl) + * Vladimir Melo (pt_BR) + * Duarte Loreto (pt) + * Theppitak Karoonboonyanan (th) + * Serdar CICEK (tr) + * Woodman Tuen (zh_HK) + +=============== +Evince 2.21.90 +=============== + +Important notice for distributors: + + * This release overrides document permissions by default. See + http://bugzilla.mate.org/show_bug.cgi?id=382700 for more information + about this. + * Ghostscript interface for PostScript documents is now deprecated. + Please use libspectre (http://libspectre.freedesktop.org/) + instead. + +New features and UI improvements: + + * Port to gio and drop mate-vfs dependency. (#510401, Cosimo Cecchi, Carlos Garcia Campos) + * Scroll pages in page entry with mouse wheel (#324122, David Turner) + * Automatic scrolling in context menu (#323670, David Turner) + * Kinetic scrolling (#461271, David Turner) + * New plugin system for backends (#351348, Carlos Garcia Campos) + * Allow saving images in formats other than PNG (#500209, Carl-Anton + Ingmarsson, Nickolay V. Shmyrev) + * Add support for page transitions (#458460, Carlos Garnacho) + * Override document restrictions by default (#382700, Wouter Bolsterlee) + * Use up/down arrows instead of left/right (#170081, Wouter Bolsterlee) + +Bug fixes: + + * Reset cursor correctly (#501603, #509958, Carlos Garcia Campos) + * Use GSlice to allocate memory (#475972, Christian Persch) + * Do not limit minimum zoom factor in best fit/fit width mode (#503805, + Carlos Garcia Campos) + * Use libspectre, if available, for the ps backend. (#317106, #499787, + #501235, #421879, #445797, #443859, #486547, #386005, #507705, Carlos Garcia Campos) + * Put RTL marker in recent file list (#509076, Djihed Afifi) + * Put Caja extension in right place (#505359, Matthias Clasen, Brian + Pepple, Damien Carbery, Wouter Bolsterlee) + * Avoid filename quoting issues (#502500, Tom Parker) + * Repair horizontal scrolling with shift (#483412, Nickolay V. Shmyrev) + * Mate Keyring is now an optional dependency (#509676, Marcelo Lira) + * Reduce memory consumption by rendering images on demand (Carlos Garcia Campos) + * Fix printing in dvi backend when filename contains white spaces. (#502839, Carlos Garcia Campos) + * Other bugs fixed: #502843, #460658, #504721, #511635 + +Thanks: + + * Carlos Garcia Campos + * Christian Persch + * Yaakov Selkowitz + * David Turner + * Carl-Anton Ingmarsson + * Carlos Garnacho + * Djihed Afifi + * Nickolay V. Shmyrev + * Wouter Bolsterlee + * Marcelo Lira + +Translation updates: + + * Djihed Afifi (ar) + * Ihar Hrachyshka (be@latin) + * Gil Forcada (ca) + * Jorge Gonzalez (es) + * Priit Laes (et) + * Inaki Larranaga Murgoitio (eu) + * StĆ©phane Raimbault (fr) + * SeĆ”n de BĆŗrca (ga) + * Ignacio Casal Quinteiro (gl) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Thierry Randrianiriana (mg) + * Yannig Marchegay (oc) + * Leonardo Ferreira Fontenelle, Hugo Doria, Rodrigo Flores (pt_BR) + * Daniel Nylander (sv) + * Clytie Siddall (vi) + +=============== +Evince 2.21.1 +=============== + +New Features and UI Improvements: + + * Use message area for notification about errors + * Some print settings for documents are stored in metadata + * Added command line option for search + * Expander with a recent documents is added to toolbar + * Egg-recent code dropped + * Djvu, dvi and comics are enabled by default + * Support for links with URI's like mailto (Pascal Terjan) + * Removed the shadow of the fullscreen toolbar + +Bug fixes: + + * A lot of bug fixes from a stable branch + +Thanks: + + To Carlos Garcia Campos who did the all the amazing work above :) + +Translations: + + Changwoo Ryu (ko) + Daniel Nylander (sv) + Djihed Afifi (ar) + Jorge Gonzalez (es) + Francesco Marletta (it) + Gabor Kelemen (hu) + Gintautas Miliauskas (lt) + Ignacio Casal Quinteiro (gl) + Ihar Hrachyshka (be@latin) + Ilkka Tuohela (fi) + Ivar Smolin (et) + Jorge GonzĆ”lez (es) + Kjartan Maraas (nb) + Matej UrbanÄiÄ (sl) + Peter Bach (da) + Yannig Marchegay (Kokoyaya) (oc) + +=============== +Evince 2.20.2 +=============== + +Bug fixes: + + * Tiff documents were rendered with wrong colors (Matthias Clasen) + * Fix endless loop when zero pages per sheet is selected (Darren Kenny) + * Do not jump to the first page when reloading from command line (Carlos Garcia Campos) + * Memory leak fix (Hiroyuki Ikezoe) + * Fix printing with poppler splash backend (Carlos Garcia Campos) + * Fix a crash when printing with the mate-print dialog (Carlos Garcia Campos) + * Warning fix (Sebastien Bacher) + +Translations: + + Matej UrbanÄiÄ (sl) + Youssef Chahibi (ar) + +=============== +Evince 2.20.1 +=============== + +Bug fixes: + + * Printing multiple pages per sheet fixes (Carlos Garcia Campos) + * Respect ranges order during print (Carlos Garcia Campos) + * Silently ignore unknown form fields (Matthias Drochner) + * Do not show the toolbar in fullscreen mode if the main toolbar is not visible (Carlos Garcia Campos) + * Give priority to form fields over images (Carlos Garcia Campos) + +Translations: + + Changwoo Ryu (ko) + Francesco Marletta (it) + Ilkka Tuohela (fi) + Peter Bach (da) + +=============== +Evince 2.20.0 +=============== + +Bug fixes: + + * Forms support broken by forgotten ifdef fix (Carlos Garcia Campos) + * Issue with making a copy and xfer to different file system (Carlos Garcia Campos) + * Desktop file fixes (Gƶtz Waschk) + +Translations: + + Youssef Chahibi (ar) + Alexander Shopov (bg) + Peter Bach (da) + Ivar Smolin (et) + Ignacio Casal Quinteiro (gl) + Francesco Marletta (it) + Gintautas Miliauskas (lt) + Espen Stefansen (nb) + Yannig Marchegay (Kokoyaya) (oc) + MiÅu Moldovan (ro) + Peter TuhĆ”rsky (sk) + Laurent Dhima (sq) + ŠŠ¾ŃŠ°Š½ Š Š°ŠŗŠøŃ (sr) + Maxim Dziumanenko (uk) + +=============== +Evince 2.19.92 +=============== + +Bug fixes: + + * Bump requirements to poppler 0.6 (Carlos Garcia Campos) + * Restart the search when reloading a document with the find bar visible (Carlos Garcia Campos) + * Do not jump to the first page when reloading a document from the last page (Carlos Garcia Campos) + * Do not update visibility when changing a chrome flag (Carlos Garcia Campos) + * Use GTK_UNIT_POINTS instead of GTK_UNIT_PIXEL (Carlos Garcia Campos) + * Make sure current-page <= end-page in continuous mode (Carlos Garcia Campos) + * Ignore outline items without a title (Carlos Garcia Campos) + * Use only drag mouse cursor during a drag operation (Carlos Garcia Campos) + * Actually fix printing regressions (Carlos Garcia Campos) + * Add support for double and triple click selections (Carlos Garcia Campos) + +Translations: + + Gil Forcada (ca) + +=============== +Evince 2.19.4 +=============== + +Bug fixes: + + * Find works when findbar is hidden (Justin Blanchard) + * Use directly cairo_surface_get_content (Jeff Muizelaar) + * Great speedup by using CAIRO_FORMAT_RGB24 instead of CAIRO_FORMAT_ARGB32 (Jeff Muizelaar) + * Fix for embedded thumbnails dimension and rotation (Carlos Garcia Campos) + * Avoid ifdefs inside macros (Jens Granseuer) + * Memory leak fixes (Justin Blanchard, Hiroyuki Ikezoe) + * New icon sizes (Andreas Nilsson) + * Invalid read fix (Justin Blanchard) + * Fix multihead problems in toolbar editor (Carlos Garcia Campos) + * Use the same cairo context for every page in the same expose event (Carlos Garcia Campos) + +Translations: + + Adam Weinberger (en_CA) + Danishka Navin (si) + Duarte Loreto (pt) + Hendrik Richter (de) + Ihar Hrachyshka (be@latin) + Raphael Higino (pt_BR) + StĆ©phane Raimbault (fr) + Takeshi Aihana (ja) + +============== +Evince 0.9.3 +============== + +New Features and UI Improvements: + + * Use new GTK+ tootlips (Carlos Garcia Campos) + * Printing multiple pages per sheet (Carlos Garcia Campos) + * Added UNIX-like key bindings hjkl (Cosimo Cecchi) + +Bug fixes: + + * Do not block while enumerating printers in preview mode (Christian Persch) + * Show new pages as soon as they are rendered even if other page + elements like forms, images or links are not ready yet (Carlos Garcia Campos) + * Provide different options in the print dialog depending on document + type backend capabilities (Carlos Garcia Campos) + +Translations: + + Jorge GonzĆ”lez (es) + IƱaki LarraƱaga Murgoitio (eu) + Ilkka Tuohela (fi) + Gabor Kelemen (hu) + Arangel Angov (mk) + Wouter Bolsterlee (nl) + Funda Wang (zh_CN) + +============== +Evince 0.9.2 +============== + +New Features and UI Improvements: + + * Forms support (Julien Rebetez, Carlos Garcia Campos) + * Toolbar editor icons on dragging (Jaap Haitsma) + +Bug fixes: + + * Program description translation issue fixed (Gabor Kelemen) + * Do not change page after presentation (Cesar Fernandez) + +Translations: + + Ankit Patel (gu) + Arangel Angov (mk) + Bharat Kumar (te) + Clytie Siddall (vi) + Daniel Nylander (sv) + Dr.T.Vasudevan (ta) + Espen Stefansen (nb) + Ivar Smolin (et) + Takeshi Aihana (ja) + Theppitak Karoonboonyanan (th) + Tomasz Dominikowski (pl) + Tshewang Norbu (dz) + +============== +Evince 0.9.1 +============== + +New Features and UI Improvements: + + * Cairo-based renderer for pages and selections of PDF, DVJU and DVI documents (Carlos Garcia Campos) + * PDF exporter for printing DVI documents (Alaska Subedi) + * Zoom icon artwork (Michael Monreal) + * Patch to avoid frequent process wakeup for metadata handling (Bastien Nocera, Arjan van de Ven) + * Bumped poppler requirements to 0.5.9 (Carlos Garcia Campos) + * Changed sidebar ordering (Wouter Bolsterlee) + * Removed extra locking of a main loop to speed up rendering (Carlos Garcia Campos) + +Bug fixes: + + * Print job is released quickly (Carlos Garcia Campos) + * Update a cursor and tooltips after scrolling (Carlos Garcia Campos) + * More safe mkdir_with_parents (Eduardo Lima) + * Safe saving of a document copy to a remote location (Carlos Garcia Campos) + * Build fix without libmate (Marc Brockschmidt) + * Selections don't disappear after zoom (Carlos Garcia Campos) + * Preview button added to the print dialog (Carlos Garcia Campos) + +Translations: + + Daniel Nylander (sv) + David Lodge (en_GB) + Dr.T.Vasudevan (ta) + Espen Stefansen (nb) + Gil Forcada (ca) + Ignacio Casal Quinteiro (gl) + Ivar Smolin (et) + Jorge GonzĆ”lez (es) + Sonam Pelden (dz) + Theppitak Karoonboonyanan (th) + Yuval Tanny (he) + +============== +Evince 0.9.0 +============== + +New Features and UI Improvements: + + * Printing support in djvu documents (Alaska Subedi) + * Optional drop of libmate dependency (Ross Burton) + * Print button for preview mode (Carlos Garcia Campos) + * Remember print settings (Carlos Garcia Campos) + * Use gtk+ builtin paper list to identify the document's paper size (Carlos Garcia Campos) + * Start rendering pages before any other jobs (Carlos Garcia Campos) + * Developer documentation updated. (IƱigo MartĆnez) + * History button improvements (Nickolay Shmyrev) + +Bug Fixes: + + * Fixes for issues with fullscreen toolbar (Carlos Garcia Campos) + * Open document in empty window with EggRecent (Eduardo Lima) + * Compilation fixes for FreeBSD (Roy Marples) + * A lot of calls to parent class methos added (Christian Persch) + * Update gtk-icon-cache in uninstall hook (Brian Pepple) + * Fix for crash in comics backend when filename contains quote (Nickolay Shmyrev) + * Always add application-specific icons to the theme (Nickolay Shmyrev) + +Translations: + + Jakub Friedl (cs) + Dimitris Glezos (el) + David Lodge (en_GB) + Jorge GonzĆ”lez (es) + Ivar Smolin (et) + Francesco Marletta (it) + Espen Stefansen (nb) + Yannig Marchegay (oc) + Washington Lins (pt_BR) + Daniel Nylander (sv) + +============== +Evince 0.8.1 +============== + +Bug Fixes: + + * Default resolution is used when it's not provided by TIFF + document (Carlos Garcia Campos) + * Added support for ps, eps and compressed documents + thumbnails (Carlos Garcia Campos) + * Implemented font color specials in the DVI backend (Ricardo Markiewicz) + * DOCUMENTS folder from xdg-data-dirs is used as default folder when + opening a file chooser (Matthias Clasen) + * unlink-tempfile is used instead of unlink-temp-file (Carlos Garcia Campos) + +Translations: + + Gil Forcada (ca) + Ignacio Casal Quinteiro (gl) + IƱaki LarraƱaga Murgoitio (eu) + Jorge GonzĆ”lez (es) + Jakub Friedl (cs) + Sonam Pelden (dz) + +============== +Evince 0.8.0 +============== + +Features and UI Improvements: + + * Thumbnails for postscript documents (Carlos Garcia Campos) + * Copy of compressed document is saved compressed (Carlos Garcia Campos) + +Bug Fixes: + + * Properly handle PostScript page orientation (Carlos Garcia Campos) + * Do not render thumbnails when sidebar thumbnail page is not visible + on startup (Carlos Garcia Campos) + * Warning when document has one page (Carlos Garcia Campos) + * Djvu backend builds on Mac (Carlos Garcia Campos) + * Allow deleting in goto window in presentation mode (Carlos Garcia Campos) + +Translations: + + Ankit Patel (gu) + Changwoo Ryu (ko) + Christian Kintner (de) + Clytie Siddall (vi) + Daniel Nylander (sv) + Djihed Afifi (ar) + Duarte Loreto (pt) + Erdal Ronahi (ku) + Funda Wang (zh_CN) + Gabor Kelemen (hu) + Gil Forcada (ca) + Gintautas Miliauskas (lt) + Ihar Hrachyshka (be) + Ivar Smolin (et) + Kjartan Maraas (nb) + Matic Žgur (sl) + Maxim Dziumanenko (uk) + MiÅu Moldovan (ro) + Nickolay V. Shmyrev (ru) + Raphael Higino (pt_BR) + Takeshi Aihana (ja) + Thierry Randrianiriana (mg) + Wadim Dziedzic (pl) + Woodman Tuen (zh_HK) + Woodman Tuen (zh_TW) + Yuval Tanny (he) + ŠŠ³Š¾Ń ŠŠµŃŃŠ¾ŃŠ¾Š²ŠøŃ (sr) + +============== +Evince 0.7.2 +============== + +New Features and UI Improvements: + + * Document thumbnail is used as window icon (Carlos Garcia Campos) + * Support for gzipped and bzipped + document types (Carlos Garcia Campos) + * A lot of new icons (Luca Feretti, Andreas Nilsson) + * Finally working history button (Nickolay V. Shmyrev) + +Internal Improvements: + + * Developer gtk-doc based documentation (Nickolay V. Shmyrev) + * More dogtail tests (Nickolay V. Shmyrev) + +Bug Fixes: + + * Fontconfig lock to avoid crashes (Carlos Garcia Campos) + * Critical crash fix by checking return value from + psscan (Tom Parker) + * Critical crash fix in caja property page and + broken ODF (Tom Parker) + * Critical crash fix with multifile djvu + documents (Carlos Garcia Campos) + * Multithreaded gtk problems fix by using async + mate-vfs (Carlos Garcia Campos) + +Translations: + + Changwoo Ryu (ko) + Clytie Siddall (vi) + Daniel Nylander (sv) + David Lodge (en_GB) + Dimitris Glezos (el) + Dorji Tashi (dz) + Duarte Loreto (pt) + Gabor Kelemen (hu) + Ihar Hrachyshka (be) + Ilkka Tuohela (fi) + Ivar Smolin (et) + Jovan Naumovski (mk) + Khaled Hosny (ar) + Kjartan Maraas (nb) + Nickolay V. Shmyrev (ru) + StĆ©phane Raimbault (fr) + Theppitak Karoonboonyanan (th) + Vladimir Petkov (bg) + Wouter Bolsterlee (nl) + Yuval Tanny (he) + +Thanks: + + Ed Catmur, Esteban Sanchez, Theppitak Karoonboonyanan, Wouter Bolsterlee + +============== +Evince 0.7.1 +============== + +New Features: + + * Popup window to jump to another page in presentation mode. (Carlos Garcia Campos) + * Page transition support in presentation mode. (Carlos Garcia Campos) + +Bug Fixes: + + * Fix random crashes related to threads and Font Config (Carlos Garcia Campos) + * Fix icon name in desktop file (Luca Ferretti) + * Always use "best fit" zoom in presentation mode (Wouter Bolsterlee) + * Don't restore the view on the last page when a document is reopened + (Wouter Bolsterlee) + * Fix build due to libxml2 (Elijah Newren) + +Translations: + + * Djihed Afifi (ar) + * Ales Nyakhaychyk (be) + * Alexander Shopov (bg) + * Josep Puigdemont i CasamajĆ³ (ca) + * David Lodge (en_GB) + * Francisco Javier F. Serrador (es) + * Priit Laes (et) + * Raivis Dejus (lv) + * Jovan Naumovski (mk) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Matic Žgur (sl) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Clytie Siddall (vi) + +Thanks: + + Damien Carbery, Jens Granseuer, Yevgen Muntyan + +============== +Evince 0.7.0 +============== + +New Features: + + * History. Preliminary implementation, not finished yet. (Nickolay V. Shmyrev) + * Option to open a copy of the document in a new window. (Carlos Garcia Campos) + * Multihead systems support. (Carlos Garcia Campos) + * Added paper size field to the properties dialog. (Kasper Svendsen, Wouter Bolsterlee) + * Added automated UI tests with dogtail (Nickolay V. Shmyrev) + +Bug Fixes: + + * Links support in rotated documents. (Radoslav Dorcik) + * Side pane disabled when entering and leaving fullscreen mode. (Nickolay V. Shmyrev) + * Fixed crash in DVI backend. (Nickolay V. Shmyrev) + * Printing settings scale, copies, collate, reverse, odd/even work again (Carlos Garcia Campos) + * Added page setup dialog for printing. (Carlos Garcia Campos) + * Support for printing to a PDF file. (Carlos Garcia Campos) + * Allow blank screen in presentation mode. (Carlos Garcia Campos) + * Added "End of presentation" page in presentation mode. (Carlos Garcia Campos) + * Screensaver detection in presentation mode. (Wouter Bolsterlee) + * "Loading..." text is not shown in presentation mode. (Wouter Bolsterlee) + +Security Fixes: + + * Buffer overflow in PS backend. CVE-2006-5864. (Carlos Garcia Campos) + +Translations: + + * Djihed Afifi (ar) + * Runa Bhattacharjee (bn_IN) + * Gil Forcada (ca) + * Jakub Friedl (cs) + * Mindu Dorji (dz) + * Dimitris Glezos (el) + * David Lodge (en_GB) + * Francisco Javier F. Serrador (es) + * Ilkka Tuohela (fi) + * Claude Paroz (fr) + * Ankit Patel (gu) + * Rajesh Ranjan (hi) + * Gabor Kelemen (hu) + * Satoru SATOH (ja) + * Vladimer Sichinava (ka) + * Fano Rajaonarisoa (mg) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + * Leonardo Ferreira Fontenelle (pt_BR) + * Leonid Kanter (ru) + * Steve Murphy (rw) + * Daniel Nylander (sv) + * Theppitak Karoonboonyanan (th) + * Baris Cicek (tr) + +Thanks: + + Claudio Saavedra, Gabriel Felipe Cornejo, Mathias Hasselmann, Michael Monreal, + Julien Rebetez, P. Henrique Silva, Yevgen Muntyan + +============== +Evince 0.6.1 +============== + +Bug Fixes: + + * Current page follows find page + * Reopen reloads document + * Document size is guessed correctly + * Icons are installed in correct folders + * Memory leak fixed, etc + +Translations: + + * da dz el en_GB es fa gl it ka nn ro + * documentation: fi it sv + +Thanks: + + Carlos Garcia Campos, Mathias Hasselmann, Wouter Bolsterlee, + Christian Persch + + and especially translators: + + Alessio Frusciante, Ć smund SkjƦveland, David Lodge, + Francisco Javier F. Serrador, Ignacio Casal Quinteiro, Kostas Papadimas, + Mugurel Tudorm, Ole Laursen, Pema Geyleg, Roozbeh Pournader, + Vladimer Sichinava, Daniel Nylander, Tommi Vainikainen, Luca Ferretti + +============== +Evince 0.6.0 +============== + +Bug Fixes: + + * Links aren't lost while resizing + * Tiff backend crash is fixed + * Recent code and icons code are screen safe + * Crash while handling password-protected documents is fixed + +Translations: + + * bg bn bn_IN ca de dz el et fa fi fr gu hi hu ja ko lt lv mk ml + mr nb or pt pt_BR ro ru sl sv th tr vi zh_CN zh_HK zh_TW + +Thanks: + + Carlos Garcia Campos, Julien Rebetez, Sebastien Bacher, Wouter Bolsterlee + + and especially translators: + + Abel Cheung, Alexander Shopov, Ani Peter, Ankit Patel, Baris Cicek, + Changwoo Ryu, Chao-Hsiung Liao, Christophe Merlet, Claude Paroz, Clytie + Siddall, Daniel Nylander, Duarte Loreto, Funda Wang, Gabor Kelemen, + Guntupalli Karunakar, Hendrik Richter, Ilkka Tuohela, Ivar Smolin, Josep + Puigdemont i CasamajĆ³, Jovan Naumovski, Khandakar Mujahidul Islam, + Kjartan Maraas, Leonardo Ferreira Fontenelle, Leonid Kanter, Lucas + Rocha, Matic Žgur, Meelad Zakaria, MiÅu Moldovan, Mugurel Tudor, Nikos + Charonitakis, Priit Laes, Rahul Bhalerao, Raivis Dejus, Rajesh Ranjan, + Roozbeh Pournader, Runa Bhattacharjee, Satoru SATOH, Subhransu Behera, + Theppitak Karoonboonyanan, Žygimantas BeruÄka + +============== +Evince 0.5.5 +============== + +New Features: + + * Evince have preview mode for using with gtk+ + * New print dialog is used with gtk 2.10 + * New recent files framework is used + +UI Improvements: + + * Sidebar is unified with Epiphany + * Escape unfocus page entry + +Bug Fixes: + + * Automake updates + * Link coordinates now used correctly + * Desktop file is corrected + * Memory leak fixes + +Translations: + + * ca cs de dz el es et eu fi fr gu ja ko mk nl ru sl sv th zh_HK zh_TW + +Thanks: + + Carlos Garcia Campos, Christian Persch, Radoslav Dorcik, + Ricardo Markiewicz, Sebastien Bacher, Wouter Bolsterlee + + and especially translators: + + Ankit Patel, Arangel Angov, BenoĆ®t Dejean, Changwoo Ryu, Chao-Hsiung + Liao, Christophe Merlet, Daniel Nylander, Francisco Javier F. Serrador, + Guntupalli Karunakar, Hendrik Richter, Ilkka Tuohela, Inaki Larranaga, + Jakub Friedl, Josep Puigdemont i CasamajĆ³, Jovan Naumovski, Nikos + Charonitakis, Priit Laes, Takeshi Aihana, Theppitak Karoonboonyanan + +============== +Evince 0.5.4 +============== + +New Features: + + * Evince supports impress slides with --enable-impress + * URI's with anchors can be opened + +Bug Fixes: + + * PAPI printing crash was fixed + * Threads-related crash was fixed + * Assertion on document types that don't support + links don't cause crash now + * Reload crash was fixed as loading of + password-protected documents + * Page-label command line option works again + +Translations: + + * be bg bn_IN ca cs de dz es et eu fi fr gl gu he id ko mk nb ne + nl ru ta th vi zh_CN zh_HK zh_TW + +Thanks: + + Bastien Nocera, Carlos Garcia Campos, Ghee Teo, Pat Rondon, + Ricardo Markiewicz, Wouter Bolsterlee + + and especially translators: + + Ahmad Riza H Nst, Ales Nyakhaychyk, Alexander Shopov, Ankit Patel, + BenoĆ®t Dejean, Changwoo Ryu, Chao-Hsiung Liao, Clytie Siddall, + Francisco Javier F. Serrador, Funda Wang, Hendrik Richter, + I. Felix, Ignacio Casal Quinteiro, Ilkka Tuohela, Inaki Larranaga, + Jakub Friedl, Jayaradha, Josep Puigdemont CasamajĆ³, + Jovan Naumovski, Kjartan Maraas, Pawan Chitrakar, Pema Geyleg, + Priit Laes, Runa Bhattacharjee, Theppitak Karoonboonyanan, + Vincent van Adrighem, Yair Hershkovitz + +============== +Evince 0.5.3 +============== + +New Features: + + * Evince supports attachments in PDF files + * We require gtk 2.8 and djvulibre 3.5.17 now + * Links system is reworked allowing named links + +Interface imporovements: + + * Esc closes properties dialog + * Cursor is hidden in presentation mode + * Find previous item is added to the menu + +Bug Fixes: + + * GOption port and po/LINGUAS work + * Fixed mime type detection by file contents + * Several memory leaks were found + * Crash on exit related to thumbnailer + * Current page is selected more intelligently + * Work around libtool build bug is created + +Translations: + + + * bg bn br dz es et fi gl gu nb nl nn no ro vi zh_CN zh_HK zh_TW + +Thanks: + + Michael Plump, Carlos Garcia Campos, Wouter Bolsterlee, Francisco + Javier F. Serrador, Kjartan Maraas and especially all translators. + +============== +Evince 0.5.2 +============== + +Bug Fixes: + + * View don't jump on scrolling + * In presentation mode we scroll by one page + +Translations: + + * bg bn da de et fa fr hi hu ja ka pt pt_BR ro ru sv uk vi + +============== +Evince 0.5.1 +============== + +New Features: + + * Evince can search text in DJVU files + +Interface improvements: + + * Odd pages are placed to the right in dual page mode + +Bug Fixes: + + * Produce thumbnails for comic books and carefully work with + unzip + * Correctly interoperate with DBUS 0.60 + * Ghostscript interpreter is checked in runtime + * PS mime types are listed in desktop file + * It's possible to add sidebar checkbutton on toolbar + * It's possible to print in inverse order + * Filechooser now will ask for overwrite confirmation + * Search now takes account for scrolling + * It's allowed to scroll view from find entry + * Evince don't jump to find result if window was scrolled during search + * It's now clear what page the toolbar page number applies to + +Translations: + + * bg ca cs cy da el en_CA es et eu fi gl gu he hu ja lt nb nl no pl + pt_BR pt ru sq sr th vi zh_CN zh_HK zh_TW + * Spanish docs are updated and we have Bulgarian translation now + +Thanks: + + Ricardo Markiewicz, Rostislav Raykov, Stanislav Slusny, + Francisco Javier F. Serrador, Antoine Dopffer, Michael Hofmann, + Gary Coady, Luca Ferretti, Carlos Garcia Campos, Eduardo de Barros Lima, + Christopher Aillon and all translators. + +============== +Evince 0.5.0 +============== + +New Features: + + * Various types of PDF links are now supported + * New backend for comic books (CBR/CBZ archives) + * Storage of passwords for protected documents in mate-keyring + * Layout settings for new documents are taken from the last used document + +Interface Improvements: + + * Statusbar was removed to save space + * Notification about page processing is shown on the page + * More key bindings + * Improved intelligent window title that shouldn't confuse users + * Show index by default if available + * Tooltips for links + * Now we have right click context menu + +Bug Fixes: + + * Crashes on reload and window close are fixed + * DBus usage cleaned + * Printing of multiple copies start to work + * Crash on structured ps document + * Improved session handling + * Vertical and horizontal scrolling on selection + +Translations: + + * be, bg, bn, ca, cs, de, en_CA, es, et, eu, fi, fr, gl, gu + hu, it, ku, lt, nb, nl, no, ro, ru, sr, sv, th, vi, zh_CN, zh_HK, zh_TW + * nl for documentation. + +============== +Evince 0.4.0 +============== + +Bug Fixes: + + * Depend on poppler 0.4.0 + * Pass in timestamp to to handle opening multiple windows over dbus + better (Ryan Lortie) + * Really quit when rendering postscript files. + * Set textdomain to libglade. + * Fix rotation of thumbnails multiple times + * Fix selection for non-continuous case + * Disable selection and links for rotated case + * findbar fixes + +============== +Evince 0.3.4 +============== + +Bug Fixes: + + * Depend on poppler 0.4.0 + * Convert filenames to utf8 when showing them in the UI + * Return focus back to view on escape + * Fix compatibility with dbus 0.34.2 + * Fix some build warnings + * Fix dvi backend compilation with t1lib-5.0 + +============== +Evince 0.3.3 +============== + +New Features: + + * real text selection, complete with theming and I-Beam support + * Respect lockdown mateconf keys + * Metadata support per document + * Font properties dialog + * dbus support to create a factory + * Implement caja plugin for properties. + +Interface Improvements: + + * HIG Fixes + * Hide menu entry in .desktop file + * Get the correct mime types in the open dialog + +Bug Fixes: + + * Improved rotation support + * Backwards searching + * Use unzipped document when printing + * Persist the print settings + * Support pdf's with 0 pages + * Fix find flickering + * mate-doc-utils for manual + * Add keypad accelerators for zooming. Fix for bug 308128. + * fix mem leaks + * MIME Fixes + * tiff/djvu backend fixes + +Translations: + + * eu, gl, gu, he, hi, ne, pa, pl, sk, sr, st@Latn, tr + +============== +Evince 0.3.2 +============== + +New Features: + + * Multi page tiff support + * Document properties + * Document rotation + * Mate vfs support + +Interface Improvements: + + * Faster dvi rendering + * More compact layout for documents with different page formats + * Stock icons for all toolbar editor items + * Multiple selection in the open dialog + * Loading progress feedback + * Multiple column thumbnails + * Expand links when specified by the document + * Several new handy keybindings + * Ellipsize recent items labels + +Bug Fixes: + + * Fix rendering of several postscript documents + * Fix reloading of postcript documents + * Fix a lot of memory leaks + * Fix compilation on gcc 4 + * Several minor fixes + +============== +Evince 0.3.1 +============== + +New Features: + + * Toolbar editor + * Middle button scrolling + * Support for printing page ranges + * Support for printing chapters (from the index) + +Interface Improvements: + + * Move best fit items in the toolbar control at the top + * In the sidebar make drop down menu as large as the button + * Several keybindings improvements + * Faster scrolling + * Only render the visible thumbnails (less memory usage) + * Get rid of confusing Normal size menu + +Bug Fixes: + + * Better mime detection + * Several minor fixes + * Fix printing on LPD printers + +============== +Evince 0.3.0 +============== + +New Features: + + * Continous mode + * Dual page mode + * Control + Scroll does zooming + * Shift + Scroll scrolls horizontally + * Zoom control in the toolbar + +Interface Improvements: + + * If all page labels are numeric show only + the page total + +Bug Fixes: + + * Fix size of dvi thumbnails + * Fix crash on exit + * Make thumbnailer schemas translatable + * Fix build problems with t1lib + +============== +Evince 0.2.1 +============== + +New Features: + + * new backend to support DJVU files. + * new backend to support DVI. + * Initial implementation of doc metadata. No UI for this yet, + though we respect docs requesting UI changes. + * support application/x-gzpostscript + * consolidate mime handling code so thumbnailer and main page + can use them. Thumbnail all types we support. + * Respect document orientation + * Implement print and save a copy for the ps backend. + * Badass completion of the document in the entry. Only works + with GTK+ >= 2.7.1 + * User docs + +Bug Fixes: + + * Faster Zooming + * Clean up Schemas + * README added. + * Small rework of sidebar code. Now sidebar pages should implement + EvSidebarPage interface. + * lots of small bug fixes + * Actually fix the "FIXME: update priority" comment. + * Update egg-recent from libegg. This should fix long startup + problem. + +Interface Improvements: + + * Shift + Space scrolls up. + * Removed fullscreen toolbar hard-coded style + * Fix normal size zoom. Make zoom in/zoom out unsensitive when + they are behyond the limits. + * Doesn't show resize grip when maximized + * don't draw border in fullscreen + * Doesn't show thumbnails if document has 1 page. Make sidebar + menu entries sensitive only if if they have sense. + * Work around the Escape conflict (find bar and unfullscreen) + * Save accelerators on exit. + * Add Edit->Find Next + +Translations: + + * Make all toolbar items translatable + * ru (Nickolay Shmyrev) + +============== +Evince 0.2.0 +============== + +Code changes + + * Use poppler glib api + +Interface improvements + + * Rewrite most of the backend code to use threads and make + the interface more responsive + +New features + + * Use page labels as page numbers (Jonathan) + +============== +Evince 0.1.9 +============== + + * Fix a crash in the caja thumbnailer (Fernando Herrera) + +============== +Evince 0.1.8 +============== + +BugFixes + + * Fix crash when opening pdf documents with only 1 page + +============== +Evince 0.1.7 +============== + +New features + + * Caja thumbnailer for pdf (Fernando Herrera) + +BugFixes + + * Make code C89 compliant (Jens Granseuer) + * Fix some issues in the caja thumbnailer (Marco) + * Do not read ps defaults from ggv prefs! (Marco) + +============== +Evince 0.1.6 +============== + +Code changes + + * Use poppler instead of our own xpdf fork (Kristian HĆøgsberg) + +Interface improvements + + * Use an entry for the page control instead of + spin buttons (Marco) + * Expand the sidebar selection widget (Carlos) + +Bug fixes + + * Fix crash in links loading (Jonathan) + * Fix crashes when reloading document (Marco) + +============== +Evince 0.1.5 +============== + +New features + + * Reload menu (Kai Willadsen) + +Interface improvements + + * Support for DnD of files (Carlos Garcia Campos) + * Set the "Previous" and "Next" toolbar + buttons as important (Vincent Noel) + * Make the "best fit" and "fit width" + values act as toggle buttons (Jonathan) + * Autohide the fullscreen button (Kristian HĆøgsberg) + * Added ellipsis to Print item (Bryan) + * Change the fullscreen toolbar to always be in + the popup window (Jonathan) + * Improved sidebar widget (Carlos Garcia Campos) + * Minimal size for the sidebar (Marco) + * Hide the sidebar if the type doesn't + support thumbnailing and indexing (Jonathan) + * Remember the sidebar size (Carlos Garcia Campos) + +Bug fixes + + * Fix compilation on non-gcc platforms (Marco) + * Fix thumbnails generation (Crispin Flowerday) + * Fix best fit size allocation (Martin) + * Replace newlines in the title by spaces (Martin) + * Get rid of the black flash when resizing the window (Jonathan) + * Sync selection with zoom levels (Marco) + * Fix clipboard operations (Marco) + * Fix a crash when the ps document cannot be opened (Marco) + * Fix postcript page selection (Marco) + * Fix page sizing to be idempotent (Marco) + * Fix page sizing toggle buttons (Marco) + * Fix freezing on document with unrecognized links (Marco) + * Check ghostscript minimal version (Marco) + * Fix rendering of landscape documents (Marco) + * Unescape filenames for display (Marco) + +============== +Evince 0.1.4 +============== + +Code changes + + * Add debugging/logging helpers (Marco) + * Add warnings about unimplemented/unknown link + types (Marco) + +Interface improvements + + * Epiphany like fullscreen mode (Christian Persch) + * Save chromes state between sessions (Christian Persch) + * Improve toolbar layout and icons (Luca Ferretti) + +Bug fixes + + * Really fix postscript rendering (Marco) + * Do not leak gs processes on exit (Marco) + * Fix a buffer overflow fix (Marco) + +============== +Evince 0.1.3 +============== + +Code changes + + * Beginnings of continuous viewing (Jonathan) + +New features + + * Support eps (Marco) + * Support gzipped ps (Marco) + +Bug fixes + + * Fix a crash with the postscript view (Marco) + * Fix image view (Jeff Muizelaar) + * Fix a warning when opening documents without + thumbnails (Martin) + * Fix crashes when searched word is not found (Marco) + * Fix a crash when changing page with keys (Marco) + +============== +Evince 0.1.2 +============== + +New features + + * Make search really work (Marco) + +Interface improvements + + * Show password state in the view (Jonathan) + * add GTK_SHADOW_IN to the scrolled window (Martin) + * make sure the selected thumbnail stays visible (Martin) + * Remove history buttons from the toolbar (Marco) + +Bug fixes + + * Fix CID fonts with freetype 2.1.9 (Marco) + * Fix inverted up/down buttons (Marco) + +============== +Evince 0.1.1 +============== + +New features + + * Actually print PDF files + * Navigation history + * Support Links + * Support encrypted PDFs + * A desktop file + +Interface improvements + + * Rename Bookmarks sidebar to Index + * Use filename as title if the file doesn't have a title (Jeff + Muizelaar) or if the title is empty + * Make navigation with thumbnails possible (Anders Carlsson) + * (De)Sensitize actions as necessary (Dave Malcolm) + * Show a wait cursor while the page is rendering + * Center the page; draw a page border + * Undo selection on page change + * Shorter toolbar item labels + * Make selection work in any direction + +Code changes + + * Render PDFs directly as packed RGB + * Update egg-recent code (not used yet) + * Update to latest Xpdf patchlevel + +Bug fixes + + * PostScript backend fixes + * Pixbuf backend fixes (Jeff Muizelaar) + * Set page spin button limits correctly (Anders Carlsson) + * Fix problem when base fonts are installed as pcf files. + * Keep search selection highlighting correct even when + zooming/changing window size (Stephane LOEUILLET) + +Translation updates + + * cs (Miloslav Trmac) + * de (Frank Arnold) + * en_CA (Adam Weinberger) + * es (Antonio Ognio) + * nb (Kjartan Maraas) + * nl (Tino Meinen) + +evince 0.1.0 +------------ + +Initial release. diff --git a/README b/README new file mode 100644 index 00000000..88a44a24 --- /dev/null +++ b/README @@ -0,0 +1,21 @@ +Evince +================================================== +Evince is a document viewer capable of displaying +multiple and single page document formats like PDF +and Postscript. For more general information about +Evince please visit our website at + +http://www.mate.org/projects/evince/ + +This software is licensed under the GPL + +Evince Requirements +================================================== +MATE Platform libraries [ http://www.mate.org/start/ ] +Poppler for PDF viewing [ http://poppler.freedesktop.org/ ] +GhostScript for Postscript viewing [ http://www.cs.wisc.edu/~ghost/ ] + +Evince Optional Backend Libraries +================================================== +DjVuLibre for DjVu viewing [ http://djvulibre.djvuzone.org/ ] +Rar for viewing CBR comics [ http://www.rarsoft.com/ ] diff --git a/TODO b/TODO new file mode 100644 index 00000000..715d57b3 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +See our bugzilla for list of entries we are working at + +http://bugzilla.mate.org/buglist.cgi?product=evince&bug_status=NEW \ No newline at end of file diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 00000000..eb12863a --- /dev/null +++ b/autogen.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +PKG_NAME="evince" + +(test -f $srcdir/configure.ac) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level $PKG_NAME directory" + exit 1 +} + +which mate-autogen.sh || { + echo "You need to install mate-common from the MATE CVS" + exit 1 +} + +REQUIRED_AUTOMAKE_VERSION=1.10 +REQUIRED_GTK_DOC_VERSION=1.13 +USE_MATE2_MACROS=1 +. mate-autogen.sh diff --git a/backend/Makefile.am b/backend/Makefile.am new file mode 100644 index 00000000..a6dc6e58 --- /dev/null +++ b/backend/Makefile.am @@ -0,0 +1,40 @@ +SUBDIRS = + +# Backends + +if ENABLE_PDF +SUBDIRS += pdf +endif + +if ENABLE_PS +SUBDIRS += ps +endif + +if ENABLE_PIXBUF +SUBDIRS += pixbuf +endif + +if ENABLE_DJVU +SUBDIRS += djvu +endif + +if ENABLE_TIFF +SUBDIRS += tiff +endif + +if ENABLE_DVI +SUBDIRS += dvi +endif + +if ENABLE_COMICS + SUBDIRS += comics +endif + +if ENABLE_IMPRESS + SUBDIRS += impress +endif + +EXTRA_DIST = \ + backend.symbols + +-include $(top_srcdir)/git.mk diff --git a/backend/backend.symbols b/backend/backend.symbols new file mode 100644 index 00000000..6c41cf8f --- /dev/null +++ b/backend/backend.symbols @@ -0,0 +1 @@ +register_evince_backend diff --git a/backend/comics/Makefile.am b/backend/comics/Makefile.am new file mode 100644 index 00000000..0b06ecbc --- /dev/null +++ b/backend/comics/Makefile.am @@ -0,0 +1,32 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(LIB_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libcomicsdocument.la + +libcomicsdocument_la_SOURCES = \ + comics-document.c \ + comics-document.h + +libcomicsdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libcomicsdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + $(LIB_LIBS) + +backend_in_files = comicsdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c new file mode 100644 index 00000000..4d74385a --- /dev/null +++ b/backend/comics/comics-document.c @@ -0,0 +1,936 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2009-2010 Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (C) 2005, Teemu Tervo <teemu.tervo@gmx.net> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <unistd.h> +#include <string.h> +#include <stdlib.h> +#include <errno.h> + +#include <glib.h> +#include <glib/gi18n-lib.h> +#include <glib/gstdio.h> +#include <gio/gio.h> + +#ifdef G_OS_WIN32 +# define WIFEXITED(x) ((x) != 3) +# define WEXITSTATUS(x) (x) +#else +# include <sys/wait.h> +#endif + +#include "comics-document.h" +#include "ev-document-misc.h" +#include "ev-document-thumbnails.h" +#include "ev-file-helpers.h" + +#ifdef G_OS_WIN32 +/* On windows g_spawn_command_line_sync reads stdout in O_BINARY mode, not in O_TEXT mode. + * As a consequence, newlines are in a platform dependent representation (\r\n). This + * might be considered a bug in glib. + */ +#define EV_EOL "\r\n" +#else +#define EV_EOL "\n" +#endif + +typedef enum +{ + RARLABS, + GNAUNRAR, + UNZIP, + P7ZIP, + TAR +} ComicBookDecompressType; + +typedef struct _ComicsDocumentClass ComicsDocumentClass; + +struct _ComicsDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _ComicsDocument +{ + EvDocument parent_instance; + + gchar *archive, *dir; + GPtrArray *page_names; + gchar *selected_command, *alternative_command; + gchar *extract_command, *list_command, *decompress_tmp; + gboolean regex_arg; + gint offset; + ComicBookDecompressType command_usage; +}; + +#define OFFSET_7Z 53 +#define OFFSET_ZIP 2 +#define NO_OFFSET 0 + +/* For perfomance reasons of 7z* we've choosen to decompress on the temporary + * directory instead of decompressing on the stdout */ + +/** + * @extract: command line arguments to pass to extract a file from the archive + * to stdout. + * @list: command line arguments to list the archive contents + * @decompress_tmp: command line arguments to pass to extract the archive + * into a directory. + * @regex_arg: whether the command can accept regex expressions + * @offset: the position offset of the filename on each line in the output of + * running the @list command + */ +typedef struct { + char *extract; + char *list; + char *decompress_tmp; + gboolean regex_arg; + gint offset; +} ComicBookDecompressCommand; + +static const ComicBookDecompressCommand command_usage_def[] = { + /* RARLABS unrar */ + {"%s p -c- -ierr --", "%s vb -c- -- %s", NULL , FALSE, NO_OFFSET}, + + /* GNA! unrar */ + {NULL , "%s t %s" , "%s -xf %s %s" , FALSE, NO_OFFSET}, + + /* unzip */ + {"%s -p -C --" , "%s %s" , NULL , TRUE , OFFSET_ZIP}, + + /* 7zip */ + {NULL , "%s l -- %s" , "%s x -y %s -o%s", FALSE, OFFSET_7Z}, + + /* tar */ + {"%s -xOf" , "%s -tf %s" , NULL , FALSE, NO_OFFSET} +}; + +static void comics_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); + +static GSList* get_supported_image_extensions (void); +static void get_page_size_area_prepared_cb (GdkPixbufLoader *loader, + gpointer data); +static void render_pixbuf_size_prepared_cb (GdkPixbufLoader *loader, + gint width, + gint height, + gpointer data); +static char** extract_argv (EvDocument *document, + gint page); + + +EV_BACKEND_REGISTER_WITH_CODE (ComicsDocument, comics_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + comics_document_document_thumbnails_iface_init); + } ); + +/** + * comics_regex_quote: + * @unquoted_string: a literal string + * + * Quotes a string so unzip will not interpret the regex expressions of + * @unquoted_string. Basically, this functions uses [] to disable regex + * expressions. The return value must be freed with * g_free() + * + * Return value: quoted and disabled-regex string + **/ +static gchar * +comics_regex_quote (const gchar *unquoted_string) +{ + const gchar *p; + GString *dest; + + dest = g_string_new ("'"); + + p = unquoted_string; + + while (*p) { + switch (*p) { + /* * matches a sequence of 0 or more characters */ + case ('*'): + /* ? matches exactly 1 charactere */ + case ('?'): + /* [...] matches any single character found inside + * the brackets. Disabling the first bracket is enough. + */ + case ('['): + g_string_append (dest, "["); + g_string_append_c (dest, *p); + g_string_append (dest, "]"); + break; + /* Because \ escapes regex expressions that we are + * disabling for unzip, we need to disable \ too */ + case ('\\'): + g_string_append (dest, "[\\\\]"); + break; + /* Escape single quote inside the string */ + case ('\''): + g_string_append (dest, "'\\''"); + break; + default: + g_string_append_c (dest, *p); + break; + } + ++p; + } + g_string_append_c (dest, '\''); + return g_string_free (dest, FALSE); +} + + +/* This function manages the command for decompressing a comic book */ +static gboolean +comics_decompress_temp_dir (const gchar *command_decompress_tmp, + const gchar *command, + GError **error) +{ + gboolean success; + gchar *std_out, *basename; + GError *err = NULL; + gint retval; + + success = g_spawn_command_line_sync (command_decompress_tmp, &std_out, + NULL, &retval, &err); + basename = g_path_get_basename (command); + if (!success) { + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Error launching the command ā%sā in order to " + "decompress the comic book: %s"), + basename, + err->message); + g_error_free (err); + } else if (WIFEXITED (retval)) { + if (WEXITSTATUS (retval) == EXIT_SUCCESS) { + g_free (std_out); + g_free (basename); + return TRUE; + } else { + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("The command ā%sā failed at " + "decompressing the comic book."), + basename); + g_free (std_out); + } + } else { + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("The command ā%sā did not end normally."), + basename); + g_free (std_out); + } + g_free (basename); + return FALSE; +} + +/* This function shows how to use the choosen command for decompressing a + * comic book file. It modifies fields of the ComicsDocument struct with + * this information */ +static gboolean +comics_generate_command_lines (ComicsDocument *comics_document, + GError **error) +{ + gchar *quoted_file, *quoted_file_aux; + gchar *quoted_command; + ComicBookDecompressType type; + + type = comics_document->command_usage; + comics_document->regex_arg = command_usage_def[type].regex_arg; + quoted_command = g_shell_quote (comics_document->selected_command); + if (comics_document->regex_arg) { + quoted_file = comics_regex_quote (comics_document->archive); + quoted_file_aux = g_shell_quote (comics_document->archive); + comics_document->list_command = + g_strdup_printf (command_usage_def[type].list, + comics_document->alternative_command, + quoted_file_aux); + g_free (quoted_file_aux); + } else { + quoted_file = g_shell_quote (comics_document->archive); + comics_document->list_command = + g_strdup_printf (command_usage_def[type].list, + quoted_command, quoted_file); + } + comics_document->extract_command = + g_strdup_printf (command_usage_def[type].extract, + quoted_command); + comics_document->offset = command_usage_def[type].offset; + if (command_usage_def[type].decompress_tmp) { + comics_document->dir = ev_mkdtemp ("evince-comics-XXXXXX", error); + if (comics_document->dir == NULL) + return FALSE; + + /* unrar-free can't create directories, but ev_mkdtemp already created the dir */ + + comics_document->decompress_tmp = + g_strdup_printf (command_usage_def[type].decompress_tmp, + quoted_command, quoted_file, + comics_document->dir); + g_free (quoted_file); + g_free (quoted_command); + + if (!comics_decompress_temp_dir (comics_document->decompress_tmp, + comics_document->selected_command, error)) + return FALSE; + else + return TRUE; + } else { + g_free (quoted_file); + g_free (quoted_command); + return TRUE; + } + +} + +/* This function chooses an external command for decompressing a comic + * book based on its mime tipe. */ +static gboolean +comics_check_decompress_command (gchar *mime_type, + ComicsDocument *comics_document, + GError **error) +{ + gboolean success; + gchar *std_out, *std_err; + gint retval; + GError *err = NULL; + + /* FIXME, use proper cbr/cbz mime types once they're + * included in shared-mime-info */ + + if (!strcmp (mime_type, "application/x-cbr") || + !strcmp (mime_type, "application/x-rar")) { + /* The RARLAB provides a no-charge proprietary (freeware) + * decompress-only client for Linux called unrar. Another + * option is a GPLv2-licensed command-line tool developed by + * the Gna! project. Confusingly enough, the free software RAR + * decoder is also named unrar. For this reason we need to add + * some lines for disambiguation. Sorry for the added the + * complexity but it's life :) + * Finally, some distributions, like Debian, rename this free + * option as unrar-free. + * */ + comics_document->selected_command = + g_find_program_in_path ("unrar"); + if (comics_document->selected_command) { + /* We only use std_err to avoid printing useless error + * messages on the terminal */ + success = + g_spawn_command_line_sync ( + comics_document->selected_command, + &std_out, &std_err, + &retval, &err); + if (!success) { + g_propagate_error (error, err); + g_error_free (err); + return FALSE; + /* I don't check retval status because RARLAB unrar + * doesn't have a way to return 0 without involving an + * operation with a file*/ + } else if (WIFEXITED (retval)) { + if (g_strrstr (std_out,"freeware") != NULL) + /* The RARLAB freeware client */ + comics_document->command_usage = RARLABS; + else + /* The Gna! free software client */ + comics_document->command_usage = GNAUNRAR; + + g_free (std_out); + g_free (std_err); + return TRUE; + } + } + /* The Gna! free software client with Debian naming convention */ + comics_document->selected_command = + g_find_program_in_path ("unrar-free"); + if (comics_document->selected_command) { + comics_document->command_usage = GNAUNRAR; + return TRUE; + } + + } else if (!strcmp (mime_type, "application/x-cbz") || + !strcmp (mime_type, "application/zip")) { + /* InfoZIP's unzip program */ + comics_document->selected_command = + g_find_program_in_path ("unzip"); + comics_document->alternative_command = + g_find_program_in_path ("zipnote"); + if (comics_document->selected_command && + comics_document->alternative_command) { + comics_document->command_usage = UNZIP; + return TRUE; + } + + } else if (!strcmp (mime_type, "application/x-cb7") || + !strcmp (mime_type, "application/x-7z-compressed")) { + /* 7zr, 7za and 7z are the commands from the p7zip project able + * to decompress .7z files */ + comics_document->selected_command = + g_find_program_in_path ("7zr"); + if (comics_document->selected_command) { + comics_document->command_usage = P7ZIP; + return TRUE; + } + comics_document->selected_command = + g_find_program_in_path ("7za"); + if (comics_document->selected_command) { + comics_document->command_usage = P7ZIP; + return TRUE; + } + comics_document->selected_command = + g_find_program_in_path ("7z"); + if (comics_document->selected_command) { + comics_document->command_usage = P7ZIP; + return TRUE; + } + } else if (!strcmp (mime_type, "application/x-cbt") || + !strcmp (mime_type, "application/x-tar")) { + /* tar utility (Tape ARchive) */ + comics_document->selected_command = + g_find_program_in_path ("tar"); + if (comics_document->selected_command) { + comics_document->command_usage = TAR; + return TRUE; + } + } else { + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Not a comic book MIME type: %s"), + mime_type); + return FALSE; + } + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Can't find an appropriate command to " + "decompress this type of comic book")); + return FALSE; +} + +static int +sort_page_names (gconstpointer a, + gconstpointer b) +{ + return strcmp (* (const char **) a, * (const char **) b); +} + +static gboolean +comics_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + GSList *supported_extensions; + gchar *std_out; + gchar *mime_type; + gchar **cb_files, *cb_file; + gboolean success; + int i, retval; + GError *err = NULL; + + comics_document->archive = g_filename_from_uri (uri, NULL, error); + if (!comics_document->archive) + return FALSE; + + mime_type = ev_file_get_mime_type (uri, FALSE, &err); + if (!mime_type) { + if (err) { + g_propagate_error (error, err); + } else { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Unknown MIME Type")); + } + + return FALSE; + } + + if (!comics_check_decompress_command (mime_type, comics_document, + error)) { + g_free (mime_type); + return FALSE; + } else if (!comics_generate_command_lines (comics_document, error)) { + g_free (mime_type); + return FALSE; + } + + g_free (mime_type); + + /* Get list of files in archive */ + success = g_spawn_command_line_sync (comics_document->list_command, + &std_out, NULL, &retval, error); + + if (!success) { + return FALSE; + } else if (!WIFEXITED(retval) || WEXITSTATUS(retval) != EXIT_SUCCESS) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("File corrupted")); + return FALSE; + } + + /* FIXME: is this safe against filenames containing \n in the archive ? */ + cb_files = g_strsplit (std_out, EV_EOL, 0); + + g_free (std_out); + + if (!cb_files) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("No files in archive")); + return FALSE; + } + + comics_document->page_names = g_ptr_array_sized_new (64); + + supported_extensions = get_supported_image_extensions (); + for (i = 0; cb_files[i] != NULL; i++) { + if (comics_document->offset != NO_OFFSET) { + if (g_utf8_strlen (cb_files[i],-1) > + comics_document->offset) { + cb_file = + g_utf8_offset_to_pointer (cb_files[i], + comics_document->offset); + } else { + continue; + } + } else { + cb_file = cb_files[i]; + } + gchar *suffix = g_strrstr (cb_file, "."); + if (!suffix) + continue; + suffix = g_ascii_strdown (suffix + 1, -1); + if (g_slist_find_custom (supported_extensions, suffix, + (GCompareFunc) strcmp) != NULL) { + g_ptr_array_add (comics_document->page_names, + g_strstrip (g_strdup (cb_file))); + } + g_free (suffix); + } + g_strfreev (cb_files); + g_slist_foreach (supported_extensions, (GFunc) g_free, NULL); + g_slist_free (supported_extensions); + + if (comics_document->page_names->len == 0) { + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("No images found in archive %s"), + uri); + return FALSE; + } + + /* Now sort the pages */ + g_ptr_array_sort (comics_document->page_names, sort_page_names); + + return TRUE; +} + + +static gboolean +comics_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + + return ev_xfer_uri_simple (comics_document->archive, uri, error); +} + +static int +comics_document_get_n_pages (EvDocument *document) +{ + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + + if (comics_document->page_names == NULL) + return 0; + + return comics_document->page_names->len; +} + +static void +comics_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + GdkPixbufLoader *loader; + char **argv; + guchar buf[1024]; + gboolean success, got_size = FALSE; + gint outpipe = -1; + GPid child_pid; + gssize bytes; + GdkPixbuf *pixbuf; + gchar *filename; + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + + if (!comics_document->decompress_tmp) { + argv = extract_argv (document, page->index); + success = g_spawn_async_with_pipes (NULL, argv, NULL, + G_SPAWN_SEARCH_PATH | + G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, + &child_pid, + NULL, &outpipe, NULL, NULL); + g_strfreev (argv); + g_return_if_fail (success == TRUE); + + loader = gdk_pixbuf_loader_new (); + g_signal_connect (loader, "area-prepared", + G_CALLBACK (get_page_size_area_prepared_cb), + &got_size); + + while (outpipe >= 0) { + bytes = read (outpipe, buf, 1024); + + if (bytes > 0) + gdk_pixbuf_loader_write (loader, buf, bytes, NULL); + if (bytes <= 0 || got_size) { + close (outpipe); + outpipe = -1; + gdk_pixbuf_loader_close (loader, NULL); + } + } + + if (gdk_pixbuf_loader_get_pixbuf (loader)) { + pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); + if (width) + *width = gdk_pixbuf_get_width (pixbuf); + if (height) + *height = gdk_pixbuf_get_height (pixbuf); + } + + g_spawn_close_pid (child_pid); + g_object_unref (loader); + } else { + filename = g_build_filename (comics_document->dir, + (char *) comics_document->page_names->pdata[page->index], + NULL); + pixbuf = gdk_pixbuf_new_from_file (filename, NULL); + g_free (filename); + if (width) + *width = gdk_pixbuf_get_width (pixbuf); + if (height) + *height = gdk_pixbuf_get_height (pixbuf); + } +} + +static void +get_page_size_area_prepared_cb (GdkPixbufLoader *loader, + gpointer data) +{ + gboolean *got_size = data; + *got_size = TRUE; +} + +static GdkPixbuf * +comics_document_render_pixbuf (EvDocument *document, + EvRenderContext *rc) +{ + GdkPixbufLoader *loader; + GdkPixbuf *rotated_pixbuf; + char **argv; + guchar buf[4096]; + gboolean success; + gint outpipe = -1; + GPid child_pid; + gssize bytes; + gint width, height; + gchar *filename; + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + + if (!comics_document->decompress_tmp) { + argv = extract_argv (document, rc->page->index); + success = g_spawn_async_with_pipes (NULL, argv, NULL, + G_SPAWN_SEARCH_PATH | + G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, + &child_pid, + NULL, &outpipe, NULL, NULL); + g_strfreev (argv); + g_return_val_if_fail (success == TRUE, NULL); + + loader = gdk_pixbuf_loader_new (); + g_signal_connect (loader, "size-prepared", + G_CALLBACK (render_pixbuf_size_prepared_cb), + &rc->scale); + + while (outpipe >= 0) { + bytes = read (outpipe, buf, 4096); + + if (bytes > 0) { + gdk_pixbuf_loader_write (loader, buf, bytes, + NULL); + } else if (bytes <= 0) { + close (outpipe); + gdk_pixbuf_loader_close (loader, NULL); + outpipe = -1; + } + } + + rotated_pixbuf = gdk_pixbuf_rotate_simple ( + gdk_pixbuf_loader_get_pixbuf (loader), + 360 - rc->rotation); + g_spawn_close_pid (child_pid); + g_object_unref (loader); + } else { + filename = + g_build_filename (comics_document->dir, + (char *) comics_document->page_names->pdata[rc->page->index], + NULL); + + gdk_pixbuf_get_file_info (filename, &width, &height); + + rotated_pixbuf = + gdk_pixbuf_rotate_simple (gdk_pixbuf_new_from_file_at_size ( + filename, width * (rc->scale) + 0.5, + height * (rc->scale) + 0.5, NULL), + 360 - rc->rotation); + g_free (filename); + + } + return rotated_pixbuf; +} + +static cairo_surface_t * +comics_document_render (EvDocument *document, + EvRenderContext *rc) +{ + GdkPixbuf *pixbuf; + cairo_surface_t *surface; + + pixbuf = comics_document_render_pixbuf (document, rc); + surface = ev_document_misc_surface_from_pixbuf (pixbuf); + g_object_unref (pixbuf); + + return surface; +} + +static void +render_pixbuf_size_prepared_cb (GdkPixbufLoader *loader, + gint width, + gint height, + gpointer data) +{ + double *scale = data; + int w = (width * (*scale) + 0.5); + int h = (height * (*scale) + 0.5); + + gdk_pixbuf_loader_set_size (loader, w, h); +} + +/** + * comics_remove_dir: Removes a directory recursively. + * Returns: + * 0 if it was successfully deleted, + * -1 if an error occurred + */ +static int +comics_remove_dir (gchar *path_name) +{ + GDir *content_dir; + const gchar *filename; + gchar *filename_with_path; + + if (g_file_test (path_name, G_FILE_TEST_IS_DIR)) { + content_dir = g_dir_open (path_name, 0, NULL); + filename = g_dir_read_name (content_dir); + while (filename) { + filename_with_path = + g_build_filename (path_name, + filename, NULL); + comics_remove_dir (filename_with_path); + g_free (filename_with_path); + filename = g_dir_read_name (content_dir); + } + g_dir_close (content_dir); + } + /* Note from g_remove() documentation: on Windows, it is in general not + * possible to remove a file that is open to some process, or mapped + * into memory.*/ + return (g_remove (path_name)); +} + +static void +comics_document_finalize (GObject *object) +{ + ComicsDocument *comics_document = COMICS_DOCUMENT (object); + + if (comics_document->decompress_tmp) { + if (comics_remove_dir (comics_document->dir) == -1) + g_warning (_("There was an error deleting ā%sā."), + comics_document->dir); + g_free (comics_document->dir); + } + + if (comics_document->page_names) { + g_ptr_array_foreach (comics_document->page_names, (GFunc) g_free, NULL); + g_ptr_array_free (comics_document->page_names, TRUE); + } + + g_free (comics_document->archive); + g_free (comics_document->selected_command); + g_free (comics_document->alternative_command); + g_free (comics_document->extract_command); + g_free (comics_document->list_command); + + G_OBJECT_CLASS (comics_document_parent_class)->finalize (object); +} + +static void +comics_document_class_init (ComicsDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + gobject_class->finalize = comics_document_finalize; + + ev_document_class->load = comics_document_load; + ev_document_class->save = comics_document_save; + ev_document_class->get_n_pages = comics_document_get_n_pages; + ev_document_class->get_page_size = comics_document_get_page_size; + ev_document_class->render = comics_document_render; +} + +static void +comics_document_init (ComicsDocument *comics_document) +{ + comics_document->archive = NULL; + comics_document->page_names = NULL; + comics_document->extract_command = NULL; +} + +/* Returns a list of file extensions supported by gdk-pixbuf */ +static GSList* +get_supported_image_extensions() +{ + GSList *extensions = NULL; + GSList *formats = gdk_pixbuf_get_formats (); + GSList *l; + + for (l = formats; l != NULL; l = l->next) { + int i; + gchar **ext = gdk_pixbuf_format_get_extensions (l->data); + + for (i = 0; ext[i] != NULL; i++) { + extensions = g_slist_append (extensions, + g_strdup (ext[i])); + } + + g_strfreev (ext); + } + + g_slist_free (formats); + return extensions; +} + +static GdkPixbuf * +comics_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + GdkPixbuf *thumbnail; + + thumbnail = comics_document_render_pixbuf (EV_DOCUMENT (document), rc); + + if (border) { + GdkPixbuf *tmp_pixbuf = thumbnail; + + thumbnail = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } + + return thumbnail; +} + +static void +comics_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + gdouble page_width, page_height; + + comics_document_get_page_size (EV_DOCUMENT (document), rc->page, + &page_width, &page_height); + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } else { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static void +comics_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = comics_document_thumbnails_get_thumbnail; + iface->get_dimensions = comics_document_thumbnails_get_dimensions; +} + +static char** +extract_argv (EvDocument *document, gint page) +{ + ComicsDocument *comics_document = COMICS_DOCUMENT (document); + char **argv; + char *command_line, *quoted_archive, *quoted_filename; + GError *err = NULL; + + if (page >= comics_document->page_names->len) + return NULL; + + if (comics_document->regex_arg) { + quoted_archive = comics_regex_quote (comics_document->archive); + quoted_filename = + comics_regex_quote (comics_document->page_names->pdata[page]); + } else { + quoted_archive = g_shell_quote (comics_document->archive); + quoted_filename = g_shell_quote (comics_document->page_names->pdata[page]); + } + + command_line = g_strdup_printf ("%s %s %s", + comics_document->extract_command, + quoted_archive, + quoted_filename); + g_shell_parse_argv (command_line, NULL, &argv, &err); + + if (err) { + g_warning (_("Error %s"), err->message); + g_error_free (err); + return NULL; + } + + g_free (command_line); + g_free (quoted_archive); + g_free (quoted_filename); + return argv; +} diff --git a/backend/comics/comics-document.h b/backend/comics/comics-document.h new file mode 100644 index 00000000..76feef05 --- /dev/null +++ b/backend/comics/comics-document.h @@ -0,0 +1,38 @@ +/* comics-document.h: Implementation of EvDocument for comic book archives + * Copyright (C) 2005, Teemu Tervo <teemu.tervo@gmx.net> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __COMICS_DOCUMENT_H__ +#define __COMICS_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define COMICS_TYPE_DOCUMENT (comics_document_get_type ()) +#define COMICS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COMICS_TYPE_DOCUMENT, ComicsDocument)) +#define COMICS_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COMICS_TYPE_DOCUMENT)) + +typedef struct _ComicsDocument ComicsDocument; + +GType comics_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __COMICS_DOCUMENT_H__ */ diff --git a/backend/comics/comicsdocument.evince-backend.in b/backend/comics/comicsdocument.evince-backend.in new file mode 100644 index 00000000..90d4c01b --- /dev/null +++ b/backend/comics/comicsdocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=comicsdocument +_TypeDescription=Comic Books +MimeType=application/x-cbr;application/x-cbz;application/x-cb7;application/x-cbt; diff --git a/backend/djvu/Makefile.am b/backend/djvu/Makefile.am new file mode 100644 index 00000000..6bc9d06e --- /dev/null +++ b/backend/djvu/Makefile.am @@ -0,0 +1,38 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATEICONDIR=\""${prefix}/${DATADIRNAME}/pixmaps"\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(DJVU_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libdjvudocument.la + +libdjvudocument_la_SOURCES = \ + djvu-document.c \ + djvu-document.h \ + djvu-document-private.h \ + djvu-links.c \ + djvu-links.h \ + djvu-text-page.c \ + djvu-text-page.h + +libdjvudocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libdjvudocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + $(DJVU_LIBS) + +backend_in_files = djvudocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/djvu/djvu-document-private.h b/backend/djvu/djvu-document-private.h new file mode 100644 index 00000000..2ec9b67a --- /dev/null +++ b/backend/djvu/djvu-document-private.h @@ -0,0 +1,48 @@ +/* + * Declarations used throughout the djvu classes + * + * Copyright (C) 2006, Michael Hofmann <mh21@piware.de> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DJVU_DOCUMENT_INTERNAL_H__ +#define __DJVU_DOCUMENT_INTERNAL_H__ + +#include "djvu-document.h" + +#include <libdjvu/ddjvuapi.h> + +struct _DjvuDocument { + EvDocument parent_instance; + + ddjvu_context_t *d_context; + ddjvu_document_t *d_document; + ddjvu_format_t *d_format; + ddjvu_format_t *thumbs_format; + + gchar *uri; + + /* PS exporter */ + gchar *ps_filename; + GString *opts; +}; + +int djvu_document_get_n_pages (EvDocument *document); +void djvu_handle_events (DjvuDocument *djvu_document, + int wait, + GError **error); + +#endif /* __DJVU_DOCUMENT_INTERNAL_H__ */ diff --git a/backend/djvu/djvu-document.c b/backend/djvu/djvu-document.c new file mode 100644 index 00000000..aa0e595d --- /dev/null +++ b/backend/djvu/djvu-document.c @@ -0,0 +1,706 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Nickolay V. Shmyrev <nshmyrev@yandex.ru> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <config.h> +#include "djvu-document.h" +#include "djvu-text-page.h" +#include "djvu-links.h" +#include "djvu-document-private.h" +#include "ev-document-thumbnails.h" +#include "ev-file-exporter.h" +#include "ev-document-misc.h" +#include "ev-document-find.h" +#include "ev-document-links.h" +#include "ev-selection.h" +#include "ev-file-helpers.h" + +#include <glib.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <glib/gi18n-lib.h> +#include <string.h> + +#define SCALE_FACTOR 0.2 + +enum { + PROP_0, + PROP_TITLE +}; + +struct _DjvuDocumentClass +{ + EvDocumentClass parent_class; +}; + +typedef struct _DjvuDocumentClass DjvuDocumentClass; + +static void djvu_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); +static void djvu_document_file_exporter_iface_init (EvFileExporterInterface *iface); +static void djvu_document_find_iface_init (EvDocumentFindInterface *iface); +static void djvu_document_document_links_iface_init (EvDocumentLinksInterface *iface); +static void djvu_selection_iface_init (EvSelectionInterface *iface); + +EV_BACKEND_REGISTER_WITH_CODE (DjvuDocument, djvu_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, djvu_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, djvu_document_file_exporter_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND, djvu_document_find_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS, djvu_document_document_links_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_SELECTION, djvu_selection_iface_init); + }); + + +#define EV_DJVU_ERROR ev_djvu_error_quark () + +static GQuark +ev_djvu_error_quark (void) +{ + static GQuark q = 0; + if (q == 0) + q = g_quark_from_string ("ev-djvu-quark"); + + return q; +} + +static void +handle_message (const ddjvu_message_t *msg, GError **error) +{ + switch (msg->m_any.tag) { + case DDJVU_ERROR: { + gchar *error_str; + + if (msg->m_error.filename) { + error_str = g_strdup_printf ("DjvuLibre error: %s:%d", + msg->m_error.filename, + msg->m_error.lineno); + } else { + error_str = g_strdup_printf ("DjvuLibre error: %s", + msg->m_error.message); + } + + if (error) { + g_set_error_literal (error, EV_DJVU_ERROR, 0, error_str); + } else { + g_warning ("%s", error_str); + } + + g_free (error_str); + return; + } + break; + default: + break; + } +} + +void +djvu_handle_events (DjvuDocument *djvu_document, int wait, GError **error) +{ + ddjvu_context_t *ctx = djvu_document->d_context; + const ddjvu_message_t *msg; + + if (!ctx) + return; + + if (wait) + ddjvu_message_wait (ctx); + + while ((msg = ddjvu_message_peek (ctx))) { + handle_message (msg, error); + ddjvu_message_pop (ctx); + if (error && *error) + return; + } +} + +static void +djvu_wait_for_message (DjvuDocument *djvu_document, ddjvu_message_tag_t message, GError **error) +{ + ddjvu_context_t *ctx = djvu_document->d_context; + const ddjvu_message_t *msg; + + ddjvu_message_wait (ctx); + while ((msg = ddjvu_message_peek (ctx)) && (msg->m_any.tag != message)) { + handle_message (msg, error); + ddjvu_message_pop (ctx); + if (error && *error) + return; + } + if (msg && msg->m_any.tag == message) + ddjvu_message_pop (ctx); +} + +static gboolean +djvu_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + ddjvu_document_t *doc; + gchar *filename; + gboolean missing_files = FALSE; + GError *djvu_error = NULL; + + /* FIXME: We could actually load uris */ + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + doc = ddjvu_document_create_by_filename (djvu_document->d_context, filename, TRUE); + + if (!doc) { + g_free (filename); + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("DjVu document has incorrect format")); + return FALSE; + } + + if (djvu_document->d_document) + ddjvu_document_release (djvu_document->d_document); + + djvu_document->d_document = doc; + + djvu_wait_for_message (djvu_document, DDJVU_DOCINFO, &djvu_error); + if (djvu_error) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + djvu_error->message); + g_error_free (djvu_error); + g_free (filename); + ddjvu_document_release (djvu_document->d_document); + djvu_document->d_document = NULL; + + return FALSE; + } + + if (ddjvu_document_decoding_error (djvu_document->d_document)) + djvu_handle_events (djvu_document, TRUE, &djvu_error); + + if (djvu_error) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + djvu_error->message); + g_error_free (djvu_error); + g_free (filename); + ddjvu_document_release (djvu_document->d_document); + djvu_document->d_document = NULL; + + return FALSE; + } + + g_free (djvu_document->uri); + djvu_document->uri = g_strdup (uri); + + if (ddjvu_document_get_type (djvu_document->d_document) == DDJVU_DOCTYPE_INDIRECT) { + gint n_files; + gint i; + gchar *base; + + base = g_path_get_dirname (filename); + + n_files = ddjvu_document_get_filenum (djvu_document->d_document); + for (i = 0; i < n_files; i++) { + struct ddjvu_fileinfo_s fileinfo; + gchar *file; + + ddjvu_document_get_fileinfo (djvu_document->d_document, + i, &fileinfo); + + if (fileinfo.type != 'P') + continue; + + file = g_build_filename (base, fileinfo.id, NULL); + if (!g_file_test (file, G_FILE_TEST_EXISTS)) { + missing_files = TRUE; + g_free (file); + + break; + } + g_free (file); + } + g_free (base); + } + g_free (filename); + + if (missing_files) { + g_set_error_literal (error, + G_FILE_ERROR, + G_FILE_ERROR_EXIST, + _("The document is composed of several files. " + "One or more of these files cannot be accessed.")); + + return FALSE; + } + + return TRUE; +} + + +static gboolean +djvu_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + + return ev_xfer_uri_simple (djvu_document->uri, uri, error); +} + +int +djvu_document_get_n_pages (EvDocument *document) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + + g_return_val_if_fail (djvu_document->d_document, 0); + + return ddjvu_document_get_pagenum (djvu_document->d_document); +} + +static void +document_get_page_size (DjvuDocument *djvu_document, + gint page, + double *width, + double *height) +{ + ddjvu_pageinfo_t info; + ddjvu_status_t r; + + while ((r = ddjvu_document_get_pageinfo(djvu_document->d_document, page, &info)) < DDJVU_JOB_OK) + djvu_handle_events(djvu_document, TRUE, NULL); + + if (r >= DDJVU_JOB_FAILED) + djvu_handle_events(djvu_document, TRUE, NULL); + + *width = info.width * SCALE_FACTOR; + *height = info.height * SCALE_FACTOR; +} + +static void +djvu_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + + g_return_if_fail (djvu_document->d_document); + + document_get_page_size (djvu_document, page->index, + width, height); +} + +static cairo_surface_t * +djvu_document_render (EvDocument *document, + EvRenderContext *rc) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + cairo_surface_t *surface; + gchar *pixels; + gint rowstride; + ddjvu_rect_t rrect; + ddjvu_rect_t prect; + ddjvu_page_t *d_page; + ddjvu_page_rotation_t rotation; + double page_width, page_height, tmp; + + d_page = ddjvu_page_create_by_pageno (djvu_document->d_document, rc->page->index); + + while (!ddjvu_page_decoding_done (d_page)) + djvu_handle_events(djvu_document, TRUE, NULL); + + page_width = ddjvu_page_get_width (d_page) * rc->scale * SCALE_FACTOR + 0.5; + page_height = ddjvu_page_get_height (d_page) * rc->scale * SCALE_FACTOR + 0.5; + + switch (rc->rotation) { + case 90: + rotation = DDJVU_ROTATE_90; + tmp = page_height; + page_height = page_width; + page_width = tmp; + + break; + case 180: + rotation = DDJVU_ROTATE_180; + + break; + case 270: + rotation = DDJVU_ROTATE_270; + tmp = page_height; + page_height = page_width; + page_width = tmp; + + break; + default: + rotation = DDJVU_ROTATE_0; + } + + surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, + page_width, page_height); + rowstride = cairo_image_surface_get_stride (surface); + pixels = (gchar *)cairo_image_surface_get_data (surface); + + prect.x = 0; + prect.y = 0; + prect.w = page_width; + prect.h = page_height; + rrect = prect; + + ddjvu_page_set_rotation (d_page, rotation); + + ddjvu_page_render (d_page, DDJVU_RENDER_COLOR, + &prect, + &rrect, + djvu_document->d_format, + rowstride, + pixels); + + cairo_surface_mark_dirty (surface); + + return surface; +} + +static void +djvu_document_finalize (GObject *object) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (object); + + if (djvu_document->d_document) + ddjvu_document_release (djvu_document->d_document); + + if (djvu_document->opts) + g_string_free (djvu_document->opts, TRUE); + + if (djvu_document->ps_filename) + g_free (djvu_document->ps_filename); + + ddjvu_context_release (djvu_document->d_context); + ddjvu_format_release (djvu_document->d_format); + ddjvu_format_release (djvu_document->thumbs_format); + g_free (djvu_document->uri); + + G_OBJECT_CLASS (djvu_document_parent_class)->finalize (object); +} + +static void +djvu_document_class_init (DjvuDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + gobject_class->finalize = djvu_document_finalize; + + ev_document_class->load = djvu_document_load; + ev_document_class->save = djvu_document_save; + ev_document_class->get_n_pages = djvu_document_get_n_pages; + ev_document_class->get_page_size = djvu_document_get_page_size; + ev_document_class->render = djvu_document_render; +} + +static gchar * +djvu_text_copy (DjvuDocument *djvu_document, + gint page, + EvRectangle *rectangle) +{ + miniexp_t page_text; + gchar *text = NULL; + + while ((page_text = + ddjvu_document_get_pagetext (djvu_document->d_document, + page, "char")) == miniexp_dummy) + djvu_handle_events (djvu_document, TRUE, NULL); + + if (page_text != miniexp_nil) { + DjvuTextPage *page = djvu_text_page_new (page_text); + + text = djvu_text_page_copy (page, rectangle); + djvu_text_page_free (page); + ddjvu_miniexp_release (djvu_document->d_document, page_text); + } + + return text; +} + +static gchar * +djvu_selection_get_selected_text (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (selection); + double width, height; + EvRectangle rectangle; + gchar *text; + + djvu_document_get_page_size (EV_DOCUMENT (djvu_document), + page, &width, &height); + rectangle.x1 = points->x1 / SCALE_FACTOR; + rectangle.y1 = (height - points->y2) / SCALE_FACTOR; + rectangle.x2 = points->x2 / SCALE_FACTOR; + rectangle.y2 = (height - points->y1) / SCALE_FACTOR; + + text = djvu_text_copy (djvu_document, page->index, &rectangle); + + if (text == NULL) + text = g_strdup (""); + + return text; +} + +static void +djvu_selection_iface_init (EvSelectionInterface *iface) +{ + iface->get_selected_text = djvu_selection_get_selected_text; +} + +static void +djvu_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + gdouble page_width, page_height; + + djvu_document_get_page_size (EV_DOCUMENT(djvu_document), rc->page, + &page_width, &page_height); + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } else { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static GdkPixbuf * +djvu_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + GdkPixbuf *pixbuf, *rotated_pixbuf; + gdouble page_width, page_height; + gint thumb_width, thumb_height; + guchar *pixels; + + g_return_val_if_fail (djvu_document->d_document, NULL); + + djvu_document_get_page_size (EV_DOCUMENT(djvu_document), rc->page, + &page_width, &page_height); + + thumb_width = (gint) (page_width * rc->scale); + thumb_height = (gint) (page_height * rc->scale); + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, + thumb_width, thumb_height); + gdk_pixbuf_fill (pixbuf, 0xffffffff); + pixels = gdk_pixbuf_get_pixels (pixbuf); + + while (ddjvu_thumbnail_status (djvu_document->d_document, rc->page->index, 1) < DDJVU_JOB_OK) + djvu_handle_events(djvu_document, TRUE, NULL); + + ddjvu_thumbnail_render (djvu_document->d_document, rc->page->index, + &thumb_width, &thumb_height, + djvu_document->thumbs_format, + gdk_pixbuf_get_rowstride (pixbuf), + (gchar *)pixels); + + rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, 360 - rc->rotation); + g_object_unref (pixbuf); + + if (border) { + GdkPixbuf *tmp_pixbuf = rotated_pixbuf; + + rotated_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } + + return rotated_pixbuf; +} + +static void +djvu_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = djvu_document_thumbnails_get_thumbnail; + iface->get_dimensions = djvu_document_thumbnails_get_dimensions; +} + +/* EvFileExporterIface */ +static void +djvu_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (exporter); + + if (djvu_document->ps_filename) + g_free (djvu_document->ps_filename); + djvu_document->ps_filename = g_strdup (fc->filename); + + g_string_assign (djvu_document->opts, "-page="); +} + +static void +djvu_document_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (exporter); + + g_string_append_printf (djvu_document->opts, "%d,", (rc->page->index) + 1); +} + +static void +djvu_document_file_exporter_end (EvFileExporter *exporter) +{ + int d_optc = 1; + const char *d_optv[d_optc]; + + DjvuDocument *djvu_document = DJVU_DOCUMENT (exporter); + + FILE *fn = fopen (djvu_document->ps_filename, "w"); + if (fn == NULL) { + g_warning ("Cannot open file ā%sā.", djvu_document->ps_filename); + return; + } + + d_optv[0] = djvu_document->opts->str; + + ddjvu_job_t * job = ddjvu_document_print(djvu_document->d_document, fn, d_optc, d_optv); + while (!ddjvu_job_done(job)) { + djvu_handle_events (djvu_document, TRUE, NULL); + } + + fclose(fn); +} + +static EvFileExporterCapabilities +djvu_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_COPIES | + EV_FILE_EXPORTER_CAN_COLLATE | + EV_FILE_EXPORTER_CAN_REVERSE | + EV_FILE_EXPORTER_CAN_GENERATE_PS; +} + +static void +djvu_document_file_exporter_iface_init (EvFileExporterInterface *iface) +{ + iface->begin = djvu_document_file_exporter_begin; + iface->do_page = djvu_document_file_exporter_do_page; + iface->end = djvu_document_file_exporter_end; + iface->get_capabilities = djvu_document_file_exporter_get_capabilities; +} + +static void +djvu_document_init (DjvuDocument *djvu_document) +{ + guint masks[4] = { 0xff0000, 0xff00, 0xff, 0xff000000 }; + + djvu_document->d_context = ddjvu_context_create ("Evince"); + djvu_document->d_format = ddjvu_format_create (DDJVU_FORMAT_RGBMASK32, 4, masks); + ddjvu_format_set_row_order (djvu_document->d_format, 1); + + djvu_document->thumbs_format = ddjvu_format_create (DDJVU_FORMAT_RGB24, 0, 0); + ddjvu_format_set_row_order (djvu_document->thumbs_format, 1); + + djvu_document->ps_filename = NULL; + djvu_document->opts = g_string_new (""); + + djvu_document->d_document = NULL; +} + +static GList * +djvu_document_find_find_text (EvDocumentFind *document, + EvPage *page, + const char *text, + gboolean case_sensitive) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document); + miniexp_t page_text; + gdouble width, height; + GList *matches = NULL, *l; + + g_return_val_if_fail (text != NULL, NULL); + + while ((page_text = ddjvu_document_get_pagetext (djvu_document->d_document, + page->index, + "char")) == miniexp_dummy) + djvu_handle_events (djvu_document, TRUE, NULL); + + if (page_text != miniexp_nil) { + DjvuTextPage *tpage = djvu_text_page_new (page_text); + + djvu_text_page_prepare_search (tpage, case_sensitive); + if (tpage->links->len > 0) { + djvu_text_page_search (tpage, text); + matches = tpage->results; + } + djvu_text_page_free (tpage); + ddjvu_miniexp_release (djvu_document->d_document, page_text); + } + + if (!matches) + return NULL; + + document_get_page_size (djvu_document, page->index, &width, &height); + for (l = matches; l && l->data; l = g_list_next (l)) { + EvRectangle *r = (EvRectangle *)l->data; + gdouble tmp; + + tmp = r->y1; + + r->x1 *= SCALE_FACTOR; + r->x2 *= SCALE_FACTOR; + + tmp = r->y1; + r->y1 = height - r->y2 * SCALE_FACTOR; + r->y2 = height - tmp * SCALE_FACTOR; + } + + + return matches; +} + +static void +djvu_document_find_iface_init (EvDocumentFindInterface *iface) +{ + iface->find_text = djvu_document_find_find_text; +} + +static EvMappingList * +djvu_document_links_get_links (EvDocumentLinks *document_links, + EvPage *page) +{ + return djvu_links_get_links (document_links, page->index, SCALE_FACTOR); +} + +static void +djvu_document_document_links_iface_init (EvDocumentLinksInterface *iface) +{ + iface->has_document_links = djvu_links_has_document_links; + iface->get_links_model = djvu_links_get_links_model; + iface->get_links = djvu_document_links_get_links; + iface->find_link_dest = djvu_links_find_link_dest; +} diff --git a/backend/djvu/djvu-document.h b/backend/djvu/djvu-document.h new file mode 100644 index 00000000..bcb916af --- /dev/null +++ b/backend/djvu/djvu-document.h @@ -0,0 +1,38 @@ +/* djvu-document.h: Implementation of EvDocument for djvu documents + * Copyright (C) 2005, Nickolay V. Shmyrev <nshmyrev@yandex.ru> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DJVU_DOCUMENT_H__ +#define __DJVU_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define DJVU_TYPE_DOCUMENT (djvu_document_get_type ()) +#define DJVU_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DJVU_TYPE_DOCUMENT, DjvuDocument)) +#define DJVU_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DJVU_TYPE_DOCUMENT)) + +typedef struct _DjvuDocument DjvuDocument; + +GType djvu_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __DJVU_DOCUMENT_H__ */ diff --git a/backend/djvu/djvu-links.c b/backend/djvu/djvu-links.c new file mode 100644 index 00000000..d13af0be --- /dev/null +++ b/backend/djvu/djvu-links.c @@ -0,0 +1,434 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Implements hyperlink functionality for Djvu files. + * Copyright (C) 2006 Pauli Virtanen <pav@iki.fi> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <string.h> +#include <glib.h> +#include <libdjvu/miniexp.h> +#include "djvu-document.h" +#include "djvu-links.h" +#include "djvu-document-private.h" +#include "ev-document-links.h" +#include "ev-mapping-list.h" + +static gboolean number_from_miniexp(miniexp_t sexp, int *number) +{ + if (miniexp_numberp (sexp)) { + *number = miniexp_to_int (sexp); + return TRUE; + } else { + return FALSE; + } +} + +static gboolean string_from_miniexp(miniexp_t sexp, const char **str) +{ + if (miniexp_stringp (sexp)) { + *str = miniexp_to_str (sexp); + return TRUE; + } else { + return FALSE; + } +} + +static gboolean number_from_string_10(const gchar *str, guint64 *number) +{ + gchar *end_ptr; + + *number = g_ascii_strtoull(str, &end_ptr, 10); + if (*end_ptr == '\0') { + return TRUE; + } else { + return FALSE; + } +} + +static EvLinkDest * +get_djvu_link_dest (const DjvuDocument *djvu_document, const gchar *link_name, int base_page) +{ + guint64 page_num = 0; + + /* #pagenum, #+pageoffset, #-pageoffset */ + if (g_str_has_prefix (link_name, "#")) { + if (base_page > 0 && g_str_has_prefix (link_name+1, "+")) { + if (number_from_string_10 (link_name + 2, &page_num)) { + return ev_link_dest_new_page (base_page + page_num); + } + } else if (base_page > 0 && g_str_has_prefix (link_name+1, "-")) { + if (number_from_string_10 (link_name + 2, &page_num)) { + return ev_link_dest_new_page (base_page - page_num); + } + } else { + if (number_from_string_10 (link_name + 1, &page_num)) { + return ev_link_dest_new_page (page_num - 1); + } + } + } else { + /* FIXME: component file identifiers */ + } + + return NULL; +} + +static EvLinkAction * +get_djvu_link_action (const DjvuDocument *djvu_document, const gchar *link_name, int base_page) +{ + EvLinkDest *ev_dest = NULL; + EvLinkAction *ev_action = NULL; + + ev_dest = get_djvu_link_dest (djvu_document, link_name, base_page); + + if (ev_dest) { + ev_action = ev_link_action_new_dest (ev_dest); + } else if (strstr(link_name, "://") != NULL) { + /* It's probably an URI */ + ev_action = ev_link_action_new_external_uri (link_name); + } else { + /* FIXME: component file identifiers */ + } + + return ev_action; +} + +static gchar * +str_to_utf8 (const gchar *text) +{ + static const gchar *encodings_to_try[2]; + static gint n_encodings_to_try = 0; + gchar *utf8_text = NULL; + gint i; + + if (n_encodings_to_try == 0) { + const gchar *charset; + gboolean charset_is_utf8; + + charset_is_utf8 = g_get_charset (&charset); + if (!charset_is_utf8) { + encodings_to_try[n_encodings_to_try++] = charset; + } + + if (g_ascii_strcasecmp (charset, "ISO-8859-1") != 0) { + encodings_to_try[n_encodings_to_try++] = "ISO-8859-1"; + } + } + + for (i = 0; i < n_encodings_to_try; i++) { + utf8_text = g_convert (text, -1, "UTF-8", + encodings_to_try[i], + NULL, NULL, NULL); + if (utf8_text) + break; + } + + return utf8_text; +} + +/** + * Builds the index GtkTreeModel from DjVu s-expr + * + * (bookmarks + * ("title1" "dest1" + * ("title12" "dest12" + * ... ) + * ... ) + * ("title2" "dest2" + * ... ) + * ... ) + */ +static void +build_tree (const DjvuDocument *djvu_document, + GtkTreeModel *model, + GtkTreeIter *parent, + miniexp_t iter) +{ + const char *title, *link_dest; + char *title_markup; + + EvLinkAction *ev_action = NULL; + EvLink *ev_link = NULL; + GtkTreeIter tree_iter; + + if (miniexp_car (iter) == miniexp_symbol ("bookmarks")) { + /* The (bookmarks) cons */ + iter = miniexp_cdr (iter); + } else if ( miniexp_length (iter) >= 2 ) { + gchar *utf8_title = NULL; + + /* An entry */ + if (!string_from_miniexp (miniexp_car (iter), &title)) goto unknown_entry; + if (!string_from_miniexp (miniexp_cadr (iter), &link_dest)) goto unknown_entry; + + + if (!g_utf8_validate (title, -1, NULL)) { + utf8_title = str_to_utf8 (title); + title_markup = g_markup_escape_text (utf8_title, -1); + } else { + title_markup = g_markup_escape_text (title, -1); + } + + ev_action = get_djvu_link_action (djvu_document, link_dest, -1); + + if (g_str_has_suffix (link_dest, ".djvu")) { + /* FIXME: component file identifiers */ + } else if (ev_action) { + ev_link = ev_link_new (utf8_title ? utf8_title : title, ev_action); + gtk_tree_store_append (GTK_TREE_STORE (model), &tree_iter, parent); + gtk_tree_store_set (GTK_TREE_STORE (model), &tree_iter, + EV_DOCUMENT_LINKS_COLUMN_MARKUP, title_markup, + EV_DOCUMENT_LINKS_COLUMN_LINK, ev_link, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, FALSE, + -1); + g_object_unref (ev_link); + } else { + gtk_tree_store_append (GTK_TREE_STORE (model), &tree_iter, parent); + gtk_tree_store_set (GTK_TREE_STORE (model), &tree_iter, + EV_DOCUMENT_LINKS_COLUMN_MARKUP, title_markup, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, FALSE, + -1); + } + + g_free (title_markup); + g_free (utf8_title); + iter = miniexp_cddr (iter); + parent = &tree_iter; + } else { + goto unknown_entry; + } + + for (; iter != miniexp_nil; iter = miniexp_cdr (iter)) { + build_tree (djvu_document, model, parent, miniexp_car (iter)); + } + return; + + unknown_entry: + g_warning ("DjvuLibre error: Unknown entry in bookmarks"); + return; +} + +static gboolean +get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, + miniexp_t sexp, + EvMapping *ev_link_mapping) +{ + miniexp_t iter; + + iter = sexp; + + if ((miniexp_car (iter) == miniexp_symbol ("rect") || miniexp_car (iter) == miniexp_symbol ("oval")) + && miniexp_length (iter) == 5) { + /* FIXME: get bounding box for (oval) since Evince doesn't support shaped links */ + int minx, miny, width, height; + + iter = miniexp_cdr (iter); + if (!number_from_miniexp (miniexp_car (iter), &minx)) goto unknown_link; + iter = miniexp_cdr (iter); + if (!number_from_miniexp (miniexp_car (iter), &miny)) goto unknown_link; + iter = miniexp_cdr (iter); + if (!number_from_miniexp (miniexp_car (iter), &width)) goto unknown_link; + iter = miniexp_cdr (iter); + if (!number_from_miniexp (miniexp_car (iter), &height)) goto unknown_link; + + ev_link_mapping->area.x1 = minx; + ev_link_mapping->area.x2 = (minx + width); + ev_link_mapping->area.y1 = (page_info->height - (miny + height)); + ev_link_mapping->area.y2 = (page_info->height - miny); + } else if (miniexp_car (iter) == miniexp_symbol ("poly") + && miniexp_length (iter) >= 5 && miniexp_length (iter) % 2 == 1) { + + /* FIXME: get bounding box since Evince doesn't support shaped links */ + int minx = G_MAXINT, miny = G_MAXINT; + int maxx = G_MININT, maxy = G_MININT; + + iter = miniexp_cdr(iter); + while (iter != miniexp_nil) { + int x, y; + + if (!number_from_miniexp (miniexp_car(iter), &x)) goto unknown_link; + iter = miniexp_cdr (iter); + if (!number_from_miniexp (miniexp_car(iter), &y)) goto unknown_link; + iter = miniexp_cdr (iter); + + minx = MIN (minx, x); + miny = MIN (miny, y); + maxx = MAX (maxx, x); + maxy = MAX (maxy, y); + } + + ev_link_mapping->area.x1 = minx; + ev_link_mapping->area.x2 = maxx; + ev_link_mapping->area.y1 = (page_info->height - maxy); + ev_link_mapping->area.y2 = (page_info->height - miny); + } else { + /* unknown */ + goto unknown_link; + } + + return TRUE; + + unknown_link: + g_warning("DjvuLibre error: Unknown hyperlink area %s", miniexp_to_name(miniexp_car(sexp))); + return FALSE; +} + +static EvMapping * +get_djvu_hyperlink_mapping (DjvuDocument *djvu_document, + int page, + ddjvu_pageinfo_t *page_info, + miniexp_t sexp) +{ + EvMapping *ev_link_mapping = NULL; + EvLinkAction *ev_action = NULL; + miniexp_t iter; + const char *url, *url_target, *comment; + + ev_link_mapping = g_new (EvMapping, 1); + + iter = sexp; + + if (miniexp_car (iter) != miniexp_symbol ("maparea")) goto unknown_mapping; + + iter = miniexp_cdr(iter); + + if (miniexp_caar(iter) == miniexp_symbol("url")) { + if (!string_from_miniexp (miniexp_cadr (miniexp_car (iter)), &url)) goto unknown_mapping; + if (!string_from_miniexp (miniexp_caddr (miniexp_car (iter)), &url_target)) goto unknown_mapping; + } else { + if (!string_from_miniexp (miniexp_car(iter), &url)) goto unknown_mapping; + url_target = NULL; + } + + iter = miniexp_cdr (iter); + if (!string_from_miniexp (miniexp_car(iter), &comment)) goto unknown_mapping; + + iter = miniexp_cdr (iter); + if (!get_djvu_hyperlink_area (page_info, miniexp_car(iter), ev_link_mapping)) goto unknown_mapping; + + iter = miniexp_cdr (iter); + /* FIXME: DjVu hyperlink attributes are ignored */ + + ev_action = get_djvu_link_action (djvu_document, url, page); + if (!ev_action) goto unknown_mapping; + + ev_link_mapping->data = ev_link_new (comment, ev_action); + + return ev_link_mapping; + + unknown_mapping: + if (ev_link_mapping) g_free(ev_link_mapping); + g_warning("DjvuLibre error: Unknown hyperlink %s", miniexp_to_name(miniexp_car(sexp))); + return NULL; +} + + +gboolean +djvu_links_has_document_links (EvDocumentLinks *document_links) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document_links); + miniexp_t outline; + + while ((outline = ddjvu_document_get_outline (djvu_document->d_document)) == miniexp_dummy) + djvu_handle_events (djvu_document, TRUE, NULL); + + if (outline) { + ddjvu_miniexp_release (djvu_document->d_document, outline); + return TRUE; + } + + return FALSE; +} + +EvMappingList * +djvu_links_get_links (EvDocumentLinks *document_links, + gint page, + double scale_factor) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document_links); + GList *retval = NULL; + miniexp_t page_annotations = miniexp_nil; + miniexp_t *hyperlinks = NULL, *iter = NULL; + EvMapping *ev_link_mapping; + ddjvu_pageinfo_t page_info; + + while ((page_annotations = ddjvu_document_get_pageanno (djvu_document->d_document, page)) == miniexp_dummy) + djvu_handle_events (djvu_document, TRUE, NULL); + + while (ddjvu_document_get_pageinfo (djvu_document->d_document, page, &page_info) < DDJVU_JOB_OK) + djvu_handle_events(djvu_document, TRUE, NULL); + + if (page_annotations) { + hyperlinks = ddjvu_anno_get_hyperlinks (page_annotations); + if (hyperlinks) { + for (iter = hyperlinks; *iter; ++iter) { + ev_link_mapping = get_djvu_hyperlink_mapping (djvu_document, page, &page_info, *iter); + if (ev_link_mapping) { + ev_link_mapping->area.x1 *= scale_factor; + ev_link_mapping->area.x2 *= scale_factor; + ev_link_mapping->area.y1 *= scale_factor; + ev_link_mapping->area.y2 *= scale_factor; + retval = g_list_prepend (retval, ev_link_mapping); + } + } + free (hyperlinks); + } + ddjvu_miniexp_release (djvu_document->d_document, page_annotations); + } + + return ev_mapping_list_new (page, retval, (GDestroyNotify)g_object_unref); +} + +EvLinkDest * +djvu_links_find_link_dest (EvDocumentLinks *document_links, + const gchar *link_name) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document_links); + EvLinkDest *ev_dest = NULL; + + ev_dest = get_djvu_link_dest (djvu_document, link_name, -1); + + if (!ev_dest) { + g_warning ("DjvuLibre error: unknown link destination %s", link_name); + } + + return ev_dest; +} + +GtkTreeModel * +djvu_links_get_links_model (EvDocumentLinks *document_links) +{ + DjvuDocument *djvu_document = DJVU_DOCUMENT (document_links); + GtkTreeModel *model = NULL; + miniexp_t outline = miniexp_nil; + + while ((outline = ddjvu_document_get_outline (djvu_document->d_document)) == miniexp_dummy) + djvu_handle_events (djvu_document, TRUE, NULL); + + if (outline) { + model = (GtkTreeModel *) gtk_tree_store_new (EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS, + G_TYPE_STRING, + G_TYPE_OBJECT, + G_TYPE_BOOLEAN, + G_TYPE_STRING); + build_tree (djvu_document, model, NULL, outline); + + ddjvu_miniexp_release (djvu_document->d_document, outline); + } + + return model; +} diff --git a/backend/djvu/djvu-links.h b/backend/djvu/djvu-links.h new file mode 100644 index 00000000..76d9072c --- /dev/null +++ b/backend/djvu/djvu-links.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2006 Pauli Virtanen <pav@iki.fi> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DJVU_LINK_H__ +#define __DJVU_LINK_H__ + +#include "ev-document-links.h" +#include "djvu-document.h" + +#include <glib.h> + +GtkTreeModel *djvu_links_get_links_model (EvDocumentLinks *document_links); +EvMappingList *djvu_links_get_links (EvDocumentLinks *document_links, + gint page, + double scale_factor); +EvLinkDest *djvu_links_find_link_dest (EvDocumentLinks *document_links, + const gchar *link_name); +gboolean djvu_links_has_document_links (EvDocumentLinks *document_links); + +#endif /* __DJVU_LINK_H__ */ diff --git a/backend/djvu/djvu-text-page.c b/backend/djvu/djvu-text-page.c new file mode 100644 index 00000000..3f171d1e --- /dev/null +++ b/backend/djvu/djvu-text-page.c @@ -0,0 +1,445 @@ +/* + * Implements search and copy functionality for Djvu files. + * Copyright (C) 2006 Michael Hofmann <mh21@piware.de> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <string.h> +#include <glib.h> +#include <libdjvu/miniexp.h> +#include "djvu-text-page.h" + + +/** + * djvu_text_page_selection_process: + * @page: #DjvuTextPage instance + * @p: s-expression to append + * @delimit: character/word/... delimiter + * + * Appends the string in @p to the page text. + * + * Returns: whether the end was not reached in this s-expression + */ +static gboolean +djvu_text_page_selection_process (DjvuTextPage *page, + miniexp_t p, + int delimit) +{ + if (page->text || p == page->start) { + char *token_text = (char *) miniexp_to_str (miniexp_nth (5, p)); + if (page->text) { + char *new_text = + g_strjoin (delimit & 2 ? "\n" : + delimit & 1 ? " " : NULL, + page->text, token_text, + NULL); + g_free (page->text); + page->text = new_text; + } else + page->text = g_strdup (token_text); + if (p == page->end) + return FALSE; + } + return TRUE; +} + +/** + * djvu_text_page_selection: + * @page: #DjvuTextPage instance + * @p: tree to append + * @delimit: character/word/... delimiter + * + * Walks the tree in @p and appends the text with + * djvu_text_page_selection_process() for all s-expressions + * between the start and end fields. + * + * Returns: whether the end was not reached in this subtree + */ +static gboolean +djvu_text_page_selection (DjvuTextPage *page, + miniexp_t p, + int delimit) +{ + g_return_val_if_fail (miniexp_consp (p) && miniexp_symbolp + (miniexp_car (p)), FALSE); + + if (miniexp_car (p) != page->char_symbol) + delimit |= miniexp_car (p) == page->word_symbol ? 1 : 2; + + miniexp_t deeper = miniexp_cddr (miniexp_cdddr (p)); + while (deeper != miniexp_nil) { + miniexp_t str = miniexp_car (deeper); + if (miniexp_stringp (str)) { + if (!djvu_text_page_selection_process + (page, p, delimit)) + return FALSE; + } else { + if (!djvu_text_page_selection + (page, str, delimit)) + return FALSE; + } + delimit = 0; + deeper = miniexp_cdr (deeper); + } + return TRUE; +} + +static void +djvu_text_page_limits_process (DjvuTextPage *page, + miniexp_t p, + EvRectangle *rect) +{ + EvRectangle current; + + current.x1 = miniexp_to_int (miniexp_nth (1, p)); + current.y1 = miniexp_to_int (miniexp_nth (2, p)); + current.x2 = miniexp_to_int (miniexp_nth (3, p)); + current.y2 = miniexp_to_int (miniexp_nth (4, p)); + if (current.x2 >= rect->x1 && current.y1 <= rect->y2 && + current.x1 <= rect->x2 && current.y2 >= rect->y1) { + if (page->start == miniexp_nil) + page->start = p; + page->end = p; + } +} + + +static void +djvu_text_page_limits (DjvuTextPage *page, + miniexp_t p, + EvRectangle *rect) +{ + g_return_if_fail (miniexp_consp (p) && + miniexp_symbolp (miniexp_car (p))); + + miniexp_t deeper = miniexp_cddr (miniexp_cdddr (p)); + while (deeper != miniexp_nil) { + miniexp_t str = miniexp_car (deeper); + if (miniexp_stringp (str)) + djvu_text_page_limits_process (page, p, rect); + else + djvu_text_page_limits (page, str, rect); + + deeper = miniexp_cdr (deeper); + } +} + +char * +djvu_text_page_copy (DjvuTextPage *page, + EvRectangle *rectangle) +{ + char* text; + + page->start = miniexp_nil; + page->end = miniexp_nil; + djvu_text_page_limits (page, page->text_structure, rectangle); + djvu_text_page_selection (page, page->text_structure, 0); + + /* Do not free the string */ + text = page->text; + page->text = NULL; + + return text; +} + +/** + * djvu_text_page_position: + * @page: #DjvuTextPage instance + * @position: index in the page text + * + * Returns the closest s-expression that contains the given position in + * the page text. + * + * Returns: closest s-expression + */ +static miniexp_t +djvu_text_page_position (DjvuTextPage *page, + int position) +{ + GArray *links = page->links; + int low = 0; + int hi = links->len - 1; + int mid = 0; + + g_return_val_if_fail (hi >= 0, miniexp_nil); + + /* Shamelessly copied from GNU classpath */ + while (low <= hi) { + mid = (low + hi) >> 1; + DjvuTextLink *link = + &g_array_index (links, DjvuTextLink, mid); + if (link->position == position) + break; + else if (link->position > position) + hi = --mid; + else + low = mid + 1; + } + + return g_array_index (page->links, DjvuTextLink, mid).pair; +} + +/** + * djvu_text_page_union: + * @target: first rectangle and result + * @source: second rectangle + * + * Calculates the bounding box of two rectangles and stores the reuslt + * in the first. + */ +static void +djvu_text_page_union (EvRectangle *target, + EvRectangle *source) +{ + if (source->x1 < target->x1) + target->x1 = source->x1; + if (source->x2 > target->x2) + target->x2 = source->x2; + if (source->y1 < target->y1) + target->y1 = source->y1; + if (source->y2 > target->y2) + target->y2 = source->y2; +} + +/** + * djvu_text_page_sexpr_process: + * @page: #DjvuTextPage instance + * @p: s-expression to append + * @start: first s-expression in the selection + * @end: last s-expression in the selection + * + * Appends the rectangle defined by @p to the internal bounding box rectangle. + * + * Returns: whether the end was not reached in this s-expression + */ +static gboolean +djvu_text_page_sexpr_process (DjvuTextPage *page, + miniexp_t p, + miniexp_t start, + miniexp_t end) +{ + if (page->bounding_box || p == start) { + EvRectangle *new_rectangle = ev_rectangle_new (); + new_rectangle->x1 = miniexp_to_int (miniexp_nth (1, p)); + new_rectangle->y1 = miniexp_to_int (miniexp_nth (2, p)); + new_rectangle->x2 = miniexp_to_int (miniexp_nth (3, p)); + new_rectangle->y2 = miniexp_to_int (miniexp_nth (4, p)); + if (page->bounding_box) { + djvu_text_page_union (page->bounding_box, + new_rectangle); + g_free (new_rectangle); + } else + page->bounding_box = new_rectangle; + if (p == end) + return FALSE; + } + return TRUE; +} + +/** + * djvu_text_page_sexpr: + * @page: #DjvuTextPage instance + * @p: tree to append + * @start: first s-expression in the selection + * @end: last s-expression in the selection + * + * Walks the tree in @p and extends the rectangle with + * djvu_text_page_process() for all s-expressions between @start and @end. + * + * Returns: whether the end was not reached in this subtree + */ +static gboolean +djvu_text_page_sexpr (DjvuTextPage *page, + miniexp_t p, + miniexp_t start, + miniexp_t end) +{ + g_return_val_if_fail (miniexp_consp (p) && miniexp_symbolp + (miniexp_car (p)), FALSE); + + miniexp_t deeper = miniexp_cddr (miniexp_cdddr (p)); + while (deeper != miniexp_nil) { + miniexp_t str = miniexp_car (deeper); + if (miniexp_stringp (str)) { + if (!djvu_text_page_sexpr_process + (page, p, start, end)) + return FALSE; + } else { + if (!djvu_text_page_sexpr + (page, str, start, end)) + return FALSE; + } + deeper = miniexp_cdr (deeper); + } + return TRUE; +} + +/** + * djvu_text_page_box: + * @page: #DjvuTextPage instance + * @start: first s-expression in the selection + * @end: last s-expression in the selection + * + * Builds a rectangle that contains all s-expressions in the given range. + */ +static EvRectangle * +djvu_text_page_box (DjvuTextPage *page, + miniexp_t start, + miniexp_t end) +{ + page->bounding_box = NULL; + djvu_text_page_sexpr (page, page->text_structure, start, end); + return page->bounding_box; +} + +/** + * djvu_text_page_append_search: + * @page: #DjvuTextPage instance + * @p: tree to append + * @case_sensitive: do not ignore case + * @delimit: insert spaces because of higher (sentence/paragraph/...) break + * + * Appends the tree in @p to the internal text string. + */ +static void +djvu_text_page_append_text (DjvuTextPage *page, + miniexp_t p, + gboolean case_sensitive, + gboolean delimit) +{ + char *token_text; + + g_return_if_fail (miniexp_consp (p) && + miniexp_symbolp (miniexp_car (p))); + + delimit |= page->char_symbol != miniexp_car (p); + + miniexp_t deeper = miniexp_cddr (miniexp_cdddr (p)); + while (deeper != miniexp_nil) { + miniexp_t data = miniexp_car (deeper); + if (miniexp_stringp (data)) { + DjvuTextLink link; + link.position = page->text == NULL ? 0 : + strlen (page->text); + link.pair = p; + g_array_append_val (page->links, link); + + token_text = (char *) miniexp_to_str (data); + if (!case_sensitive) + token_text = g_utf8_casefold (token_text, -1); + if (page->text == NULL) + page->text = g_strdup (token_text); + else { + char *new_text = + g_strjoin (delimit ? " " : NULL, + page->text, token_text, + NULL); + g_free (page->text); + page->text = new_text; + } + if (!case_sensitive) + g_free (token_text); + } else + djvu_text_page_append_text (page, data, + case_sensitive, delimit); + delimit = FALSE; + deeper = miniexp_cdr (deeper); + } +} + +/** + * djvu_text_page_search: + * @page: #DjvuTextPage instance + * @text: text to search + * + * Searches the page for the given text. The results list has to be + * externally freed afterwards. + */ +void +djvu_text_page_search (DjvuTextPage *page, + const char *text) +{ + char *haystack = page->text; + int search_len; + EvRectangle *result; + if (page->links->len == 0) + return; + + search_len = strlen (text); + while ((haystack = strstr (haystack, text)) != NULL) { + int start_p = haystack - page->text; + miniexp_t start = djvu_text_page_position (page, start_p); + int end_p = start_p + search_len - 1; + miniexp_t end = djvu_text_page_position (page, end_p); + result = djvu_text_page_box (page, start, end); + g_assert (result); + page->results = g_list_prepend (page->results, result); + haystack = haystack + search_len; + } + page->results = g_list_reverse (page->results); +} + + +/** + * djvu_text_page_prepare_search: + * @page: #DjvuTextPage instance + * @case_sensitive: do not ignore case + * + * Indexes the page text and prepares the page for subsequent searches. + */ +void +djvu_text_page_prepare_search (DjvuTextPage *page, + gboolean case_sensitive) +{ + djvu_text_page_append_text (page, page->text_structure, + case_sensitive, FALSE); +} + +/** + * djvu_text_page_new: + * @text: S-expression of the page text + * + * Creates a new page to search. + * + * Returns: new #DjvuTextPage instance + */ +DjvuTextPage * +djvu_text_page_new (miniexp_t text) +{ + DjvuTextPage *page; + + page = g_new0 (DjvuTextPage, 1); + page->links = g_array_new (FALSE, FALSE, sizeof (DjvuTextLink)); + page->char_symbol = miniexp_symbol ("char"); + page->word_symbol = miniexp_symbol ("word"); + page->text_structure = text; + return page; +} + +/** + * djvu_text_page_free: + * @page: #DjvuTextPage instance + * + * Frees the given #DjvuTextPage instance. + */ +void +djvu_text_page_free (DjvuTextPage *page) +{ + g_free (page->text); + g_array_free (page->links, TRUE); + g_free (page); +} diff --git a/backend/djvu/djvu-text-page.h b/backend/djvu/djvu-text-page.h new file mode 100644 index 00000000..6e16f259 --- /dev/null +++ b/backend/djvu/djvu-text-page.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2006 Michael Hofmann <mh21@piware.de> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DJVU_TEXT_PAGE_H__ +#define __DJVU_TEXT_PAGE_H__ + +#include "ev-document.h" + +#include <string.h> +#include <glib.h> +#include <libdjvu/miniexp.h> + + +typedef struct _DjvuTextPage DjvuTextPage; +typedef struct _DjvuTextLink DjvuTextLink; + +struct _DjvuTextPage { + char *text; + GArray *links; + GList *results; + miniexp_t char_symbol; + miniexp_t word_symbol; + EvRectangle *bounding_box; + miniexp_t text_structure; + miniexp_t start; + miniexp_t end; +}; + +struct _DjvuTextLink { + int position; + miniexp_t pair; +}; + +char * djvu_text_page_copy (DjvuTextPage *page, + EvRectangle *rectangle); +void djvu_text_page_prepare_search (DjvuTextPage *page, + gboolean case_sensitive); +void djvu_text_page_search (DjvuTextPage *page, + const char *text); +DjvuTextPage* djvu_text_page_new (miniexp_t text); +void djvu_text_page_free (DjvuTextPage *page); + +#endif /* __DJVU_TEXT_PAGE_H__ */ + diff --git a/backend/djvu/djvudocument.evince-backend.in b/backend/djvu/djvudocument.evince-backend.in new file mode 100644 index 00000000..485af118 --- /dev/null +++ b/backend/djvu/djvudocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=djvudocument +_TypeDescription=DjVu Documents +MimeType=image/vnd.djvu diff --git a/backend/dvi/Makefile.am b/backend/dvi/Makefile.am new file mode 100644 index 00000000..6dcd50ed --- /dev/null +++ b/backend/dvi/Makefile.am @@ -0,0 +1,47 @@ +SUBDIRS = mdvi-lib + +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -I$(srcdir)/mdvi-lib \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(WARN_CFLAGS) \ + $(BACKEND_CFLAGS) \ + $(SPECTRE_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libdvidocument.la + +libdvidocument_la_SOURCES = \ + dvi-document.c \ + dvi-document.h \ + cairo-device.c \ + cairo-device.h \ + texmfcnf.c \ + texmfcnf.h \ + fonts.c \ + fonts.h + +libdvidocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libdvidocument_la_LIBADD = \ + mdvi-lib/libmdvi.la \ + -lkpathsea \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + $(SPECTRE_LIBS) + +if WITH_TYPE1_FONTS +libdvidocument_la_LIBADD += -lt1 +endif + +backend_in_files = dvidocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c new file mode 100644 index 00000000..47425cad --- /dev/null +++ b/backend/dvi/cairo-device.c @@ -0,0 +1,373 @@ +/* + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <stdlib.h> +#include <gdk/gdk.h> +#ifdef HAVE_SPECTRE +#include <libspectre/spectre.h> +#endif + +#include "cairo-device.h" + +typedef struct { + cairo_t *cr; + + gint xmargin; + gint ymargin; + + gdouble scale; + + Ulong fg; + Ulong bg; + +} DviCairoDevice; + +static void +dvi_cairo_draw_glyph (DviContext *dvi, + DviFontChar *ch, + int x0, + int y0) +{ + DviCairoDevice *cairo_device; + int x, y, w, h; + gboolean isbox; + DviGlyph *glyph; + cairo_surface_t *surface; + + cairo_device = (DviCairoDevice *) dvi->device.device_data; + + glyph = &ch->grey; + + isbox = (glyph->data == NULL || + (dvi->params.flags & MDVI_PARAM_CHARBOXES) || + MDVI_GLYPH_ISEMPTY (glyph->data)); + + x = - glyph->x + x0 + cairo_device->xmargin; + y = - glyph->y + y0 + cairo_device->ymargin; + w = glyph->w; + h = glyph->h; + + surface = cairo_get_target (cairo_device->cr); + if (x < 0 || y < 0 + || x + w > cairo_image_surface_get_width (surface) + || y + h > cairo_image_surface_get_height (surface)) + return; + + cairo_save (cairo_device->cr); + if (isbox) { + cairo_rectangle (cairo_device->cr, + x - cairo_device->xmargin, + y - cairo_device->ymargin, + w, h); + cairo_stroke (cairo_device->cr); + } else { + cairo_translate (cairo_device->cr, x, y); + cairo_set_source_surface (cairo_device->cr, + (cairo_surface_t *) glyph->data, + 0, 0); + cairo_paint (cairo_device->cr); + } + + cairo_restore (cairo_device->cr); +} + +static void +dvi_cairo_draw_rule (DviContext *dvi, + int x, + int y, + Uint width, + Uint height, + int fill) +{ + DviCairoDevice *cairo_device; + Ulong color; + + cairo_device = (DviCairoDevice *) dvi->device.device_data; + + color = cairo_device->fg; + + cairo_save (cairo_device->cr); + + cairo_set_line_width (cairo_device->cr, + cairo_get_line_width (cairo_device->cr) * cairo_device->scale); + cairo_set_source_rgb (cairo_device->cr, + ((color >> 16) & 0xff) / 255., + ((color >> 8) & 0xff) / 255., + ((color >> 0) & 0xff) / 255.); + + cairo_rectangle (cairo_device->cr, + x + cairo_device->xmargin, + y + cairo_device->ymargin, + width, height); + if (fill == 0) { + cairo_stroke (cairo_device->cr); + } else { + cairo_fill (cairo_device->cr); + } + + cairo_restore (cairo_device->cr); +} + +#ifdef HAVE_SPECTRE +static void +dvi_cairo_draw_ps (DviContext *dvi, + const char *filename, + int x, + int y, + Uint width, + Uint height) +{ + DviCairoDevice *cairo_device; + unsigned char *data = NULL; + int row_length; + SpectreDocument *psdoc; + SpectreRenderContext *rc; + int w, h; + SpectreStatus status; + cairo_surface_t *image; + + cairo_device = (DviCairoDevice *) dvi->device.device_data; + + psdoc = spectre_document_new (); + spectre_document_load (psdoc, filename); + if (spectre_document_status (psdoc)) { + spectre_document_free (psdoc); + return; + } + + spectre_document_get_page_size (psdoc, &w, &h); + + rc = spectre_render_context_new (); + spectre_render_context_set_scale (rc, + (double)width / w, + (double)height / h); + spectre_document_render_full (psdoc, rc, &data, &row_length); + status = spectre_document_status (psdoc); + + spectre_render_context_free (rc); + spectre_document_free (psdoc); + + if (status) { + g_warning ("Error rendering PS document %s: %s\n", + filename, spectre_status_to_string (status)); + free (data); + + return; + } + + image = cairo_image_surface_create_for_data ((unsigned char *)data, + CAIRO_FORMAT_RGB24, + width, height, + row_length); + + cairo_save (cairo_device->cr); + + cairo_translate (cairo_device->cr, + x + cairo_device->xmargin, + y + cairo_device->ymargin); + cairo_set_source_surface (cairo_device->cr, image, 0, 0); + cairo_paint (cairo_device->cr); + + cairo_restore (cairo_device->cr); + + cairo_surface_destroy (image); + free (data); +} +#endif /* HAVE_SPECTRE */ + +static int +dvi_cairo_alloc_colors (void *device_data, + Ulong *pixels, + int npixels, + Ulong fg, + Ulong bg, + double gamma, + int density) +{ + double frac; + GdkColor color, color_fg, color_bg; + int i, n; + + color_bg.red = (bg >> 16) & 0xff; + color_bg.green = (bg >> 8) & 0xff; + color_bg.blue = (bg >> 0) & 0xff; + + color_fg.red = (fg >> 16) & 0xff; + color_fg.green = (fg >> 8) & 0xff; + color_fg.blue = (fg >> 0) & 0xff; + + n = npixels - 1; + for (i = 0; i < npixels; i++) { + frac = (gamma > 0) ? + pow ((double)i / n, 1 / gamma) : + 1 - pow ((double)(n - i) / n, -gamma); + + color.red = frac * ((double)color_fg.red - color_bg.red) + color_bg.red; + color.green = frac * ((double)color_fg.green - color_bg.green) + color_bg.green; + color.blue = frac * ((double)color_fg.blue - color_bg.blue) + color_bg.blue; + + pixels[i] = (color.red << 16) + (color.green << 8) + color.blue + 0xff000000; + } + + return npixels; +} + +static void * +dvi_cairo_create_image (void *device_data, + Uint width, + Uint height, + Uint bpp) +{ + return cairo_image_surface_create (CAIRO_FORMAT_RGB24, width, height); +} + +static void +dvi_cairo_free_image (void *ptr) +{ + cairo_surface_destroy ((cairo_surface_t *)ptr); +} + +static void +dvi_cairo_put_pixel (void *image, int x, int y, Ulong color) +{ + cairo_surface_t *surface; + gint rowstride; + guint32 *p; + + surface = (cairo_surface_t *) image; + + rowstride = cairo_image_surface_get_stride (surface); + p = (guint32*) (cairo_image_surface_get_data (surface) + y * rowstride + x * 4); + + *p = color; +} + +static void +dvi_cairo_set_color (void *device_data, Ulong fg, Ulong bg) +{ + DviCairoDevice *cairo_device = (DviCairoDevice *) device_data; + + cairo_device->fg = fg; + cairo_device->bg = bg; +} + +/* Public methods */ +void +mdvi_cairo_device_init (DviDevice *device) +{ + device->device_data = g_new0 (DviCairoDevice, 1); + + device->draw_glyph = dvi_cairo_draw_glyph; + device->draw_rule = dvi_cairo_draw_rule; + device->alloc_colors = dvi_cairo_alloc_colors; + device->create_image = dvi_cairo_create_image; + device->free_image = dvi_cairo_free_image; + device->put_pixel = dvi_cairo_put_pixel; + device->set_color = dvi_cairo_set_color; +#ifdef HAVE_SPECTRE + device->draw_ps = dvi_cairo_draw_ps; +#else + device->draw_ps = NULL; +#endif + device->refresh = NULL; +} + +void +mdvi_cairo_device_free (DviDevice *device) +{ + DviCairoDevice *cairo_device; + + cairo_device = (DviCairoDevice *) device->device_data; + + if (cairo_device->cr) + cairo_destroy (cairo_device->cr); + + g_free (cairo_device); +} + +cairo_surface_t * +mdvi_cairo_device_get_surface (DviDevice *device) +{ + DviCairoDevice *cairo_device; + + cairo_device = (DviCairoDevice *) device->device_data; + + return cairo_surface_reference (cairo_get_target (cairo_device->cr)); +} + +void +mdvi_cairo_device_render (DviContext* dvi) +{ + DviCairoDevice *cairo_device; + gint page_width; + gint page_height; + cairo_surface_t *surface; + guchar *pixels; + gint rowstride; + static const cairo_user_data_key_t key; + + cairo_device = (DviCairoDevice *) dvi->device.device_data; + + if (cairo_device->cr) + cairo_destroy (cairo_device->cr); + + page_width = dvi->dvi_page_w * dvi->params.conv + 2 * cairo_device->xmargin; + page_height = dvi->dvi_page_h * dvi->params.vconv + 2 * cairo_device->ymargin; + + rowstride = page_width * 4; + pixels = (guchar *) g_malloc (page_height * rowstride); + memset (pixels, 0xff, page_height * rowstride); + + surface = cairo_image_surface_create_for_data (pixels, + CAIRO_FORMAT_RGB24, + page_width, page_height, + rowstride); + cairo_surface_set_user_data (surface, &key, + pixels, (cairo_destroy_func_t)g_free); + + cairo_device->cr = cairo_create (surface); + cairo_surface_destroy (surface); + + mdvi_dopage (dvi, dvi->currpage); +} + +void +mdvi_cairo_device_set_margins (DviDevice *device, + gint xmargin, + gint ymargin) +{ + DviCairoDevice *cairo_device; + + cairo_device = (DviCairoDevice *) device->device_data; + + cairo_device->xmargin = xmargin; + cairo_device->ymargin = ymargin; +} + +void +mdvi_cairo_device_set_scale (DviDevice *device, + gdouble scale) +{ + DviCairoDevice *cairo_device; + + cairo_device = (DviCairoDevice *) device->device_data; + + cairo_device->scale = scale; +} diff --git a/backend/dvi/cairo-device.h b/backend/dvi/cairo-device.h new file mode 100644 index 00000000..bf76d2af --- /dev/null +++ b/backend/dvi/cairo-device.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef MDVI_CAIRO_DEVICE +#define MDVI_CAIRO_DEVICE + +#include <glib.h> +#include <cairo.h> + +#include "mdvi.h" + +G_BEGIN_DECLS + +void mdvi_cairo_device_init (DviDevice *device); +void mdvi_cairo_device_free (DviDevice *device); +cairo_surface_t *mdvi_cairo_device_get_surface (DviDevice *device); +void mdvi_cairo_device_render (DviContext* dvi); +void mdvi_cairo_device_set_margins (DviDevice *device, + gint xmargin, + gint ymargin); +void mdvi_cairo_device_set_scale (DviDevice *device, + gdouble scale); + +G_END_DECLS + +#endif /* MDVI_CAIRO_DEVICE */ diff --git a/backend/dvi/dvi-document.c b/backend/dvi/dvi-document.c new file mode 100644 index 00000000..a4a3dc6d --- /dev/null +++ b/backend/dvi/dvi-document.c @@ -0,0 +1,610 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Nickolay V. Shmyrev <nshmyrev@yandex.ru> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "dvi-document.h" +#include "texmfcnf.h" +#include "ev-document-thumbnails.h" +#include "ev-document-misc.h" +#include "ev-file-exporter.h" +#include "ev-file-helpers.h" + +#include "mdvi.h" +#include "fonts.h" +#include "color.h" +#include "cairo-device.h" + +#include <glib/gi18n-lib.h> +#include <ctype.h> +#ifdef G_OS_WIN32 +# define WIFEXITED(x) ((x) != 3) +# define WEXITSTATUS(x) (x) +#else +# include <sys/wait.h> +#endif +#include <stdlib.h> + +GMutex *dvi_context_mutex = NULL; + +enum { + PROP_0, + PROP_TITLE +}; + +struct _DviDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _DviDocument +{ + EvDocument parent_instance; + + DviContext *context; + DviPageSpec *spec; + DviParams *params; + + /* To let document scale we should remember width and height */ + double base_width; + double base_height; + + gchar *uri; + + /* PDF exporter */ + gchar *exporter_filename; + GString *exporter_opts; +}; + +typedef struct _DviDocumentClass DviDocumentClass; + +static void dvi_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); +static void dvi_document_file_exporter_iface_init (EvFileExporterInterface *iface); +static void dvi_document_do_color_special (DviContext *dvi, + const char *prefix, + const char *arg); + +EV_BACKEND_REGISTER_WITH_CODE (DviDocument, dvi_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, dvi_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, dvi_document_file_exporter_iface_init); + }); + +static gboolean +dvi_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + gchar *filename; + DviDocument *dvi_document = DVI_DOCUMENT(document); + + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + g_mutex_lock (dvi_context_mutex); + if (dvi_document->context) + mdvi_destroy_context (dvi_document->context); + + dvi_document->context = mdvi_init_context(dvi_document->params, dvi_document->spec, filename); + g_mutex_unlock (dvi_context_mutex); + g_free (filename); + + if (!dvi_document->context) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("DVI document has incorrect format")); + return FALSE; + } + + mdvi_cairo_device_init (&dvi_document->context->device); + + + dvi_document->base_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv + + 2 * unit2pix(dvi_document->params->dpi, MDVI_HMARGIN) / dvi_document->params->hshrink; + + dvi_document->base_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv + + 2 * unit2pix(dvi_document->params->vdpi, MDVI_VMARGIN) / dvi_document->params->vshrink; + + g_free (dvi_document->uri); + dvi_document->uri = g_strdup (uri); + + return TRUE; +} + + +static gboolean +dvi_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + DviDocument *dvi_document = DVI_DOCUMENT (document); + + return ev_xfer_uri_simple (dvi_document->uri, uri, error); +} + +static int +dvi_document_get_n_pages (EvDocument *document) +{ + DviDocument *dvi_document = DVI_DOCUMENT (document); + + return dvi_document->context->npages; +} + +static void +dvi_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + DviDocument *dvi_document = DVI_DOCUMENT (document); + + *width = dvi_document->base_width; + *height = dvi_document->base_height;; +} + +static cairo_surface_t * +dvi_document_render (EvDocument *document, + EvRenderContext *rc) +{ + cairo_surface_t *surface; + cairo_surface_t *rotated_surface; + DviDocument *dvi_document = DVI_DOCUMENT(document); + gint required_width, required_height; + gint proposed_width, proposed_height; + gint xmargin = 0, ymargin = 0; + + /* We should protect our context since it's not + * thread safe. The work to the future - + * let context render page independently + */ + g_mutex_lock (dvi_context_mutex); + + mdvi_setpage (dvi_document->context, rc->page->index); + + mdvi_set_shrink (dvi_document->context, + (int)((dvi_document->params->hshrink - 1) / rc->scale) + 1, + (int)((dvi_document->params->vshrink - 1) / rc->scale) + 1); + + required_width = dvi_document->base_width * rc->scale + 0.5; + required_height = dvi_document->base_height * rc->scale + 0.5; + proposed_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv; + proposed_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv; + + if (required_width >= proposed_width) + xmargin = (required_width - proposed_width) / 2; + if (required_height >= proposed_height) + ymargin = (required_height - proposed_height) / 2; + + mdvi_cairo_device_set_margins (&dvi_document->context->device, xmargin, ymargin); + mdvi_cairo_device_set_scale (&dvi_document->context->device, rc->scale); + mdvi_cairo_device_render (dvi_document->context); + surface = mdvi_cairo_device_get_surface (&dvi_document->context->device); + + g_mutex_unlock (dvi_context_mutex); + + rotated_surface = ev_document_misc_surface_rotate_and_scale (surface, + required_width, + required_height, + rc->rotation); + cairo_surface_destroy (surface); + + return rotated_surface; +} + +static void +dvi_document_finalize (GObject *object) +{ + DviDocument *dvi_document = DVI_DOCUMENT(object); + + g_mutex_lock (dvi_context_mutex); + if (dvi_document->context) { + mdvi_cairo_device_free (&dvi_document->context->device); + mdvi_destroy_context (dvi_document->context); + } + g_mutex_unlock (dvi_context_mutex); + + if (dvi_document->params) + g_free (dvi_document->params); + + if (dvi_document->exporter_filename) + g_free (dvi_document->exporter_filename); + + if (dvi_document->exporter_opts) + g_string_free (dvi_document->exporter_opts, TRUE); + + g_free (dvi_document->uri); + + G_OBJECT_CLASS (dvi_document_parent_class)->finalize (object); +} + +static gboolean +dvi_document_support_synctex (EvDocument *document) +{ + return TRUE; +} + +static void +dvi_document_class_init (DviDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + gchar *texmfcnf; + + gobject_class->finalize = dvi_document_finalize; + + texmfcnf = get_texmfcnf(); + mdvi_init_kpathsea ("evince", MDVI_MFMODE, MDVI_FALLBACK_FONT, MDVI_DPI, texmfcnf); + g_free(texmfcnf); + + mdvi_register_special ("Color", "color", NULL, dvi_document_do_color_special, 1); + mdvi_register_fonts (); + + dvi_context_mutex = g_mutex_new (); + + ev_document_class->load = dvi_document_load; + ev_document_class->save = dvi_document_save; + ev_document_class->get_n_pages = dvi_document_get_n_pages; + ev_document_class->get_page_size = dvi_document_get_page_size; + ev_document_class->render = dvi_document_render; + ev_document_class->support_synctex = dvi_document_support_synctex; +} + +static void +dvi_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + DviDocument *dvi_document = DVI_DOCUMENT (document); + gdouble page_width = dvi_document->base_width; + gdouble page_height = dvi_document->base_height; + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } else { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static GdkPixbuf * +dvi_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + DviDocument *dvi_document = DVI_DOCUMENT (document); + GdkPixbuf *pixbuf; + GdkPixbuf *rotated_pixbuf; + cairo_surface_t *surface; + gint thumb_width, thumb_height; + gint proposed_width, proposed_height; + + thumb_width = (gint) (dvi_document->base_width * rc->scale); + thumb_height = (gint) (dvi_document->base_height * rc->scale); + + g_mutex_lock (dvi_context_mutex); + + mdvi_setpage (dvi_document->context, rc->page->index); + + mdvi_set_shrink (dvi_document->context, + (int)dvi_document->base_width * dvi_document->params->hshrink / thumb_width, + (int)dvi_document->base_height * dvi_document->params->vshrink / thumb_height); + + proposed_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv; + proposed_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv; + + if (border) { + mdvi_cairo_device_set_margins (&dvi_document->context->device, + MAX (thumb_width - proposed_width, 0) / 2, + MAX (thumb_height - proposed_height, 0) / 2); + } else { + mdvi_cairo_device_set_margins (&dvi_document->context->device, + MAX (thumb_width - proposed_width - 2, 0) / 2, + MAX (thumb_height - proposed_height - 2, 0) / 2); + } + + mdvi_cairo_device_set_scale (&dvi_document->context->device, rc->scale); + mdvi_cairo_device_render (dvi_document->context); + surface = mdvi_cairo_device_get_surface (&dvi_document->context->device); + g_mutex_unlock (dvi_context_mutex); + + pixbuf = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); + + rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, 360 - rc->rotation); + g_object_unref (pixbuf); + + if (border) { + GdkPixbuf *tmp_pixbuf = rotated_pixbuf; + + rotated_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } + + return rotated_pixbuf; +} + +static void +dvi_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = dvi_document_thumbnails_get_thumbnail; + iface->get_dimensions = dvi_document_thumbnails_get_dimensions; +} + +/* EvFileExporterIface */ +static void +dvi_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + DviDocument *dvi_document = DVI_DOCUMENT(exporter); + + if (dvi_document->exporter_filename) + g_free (dvi_document->exporter_filename); + dvi_document->exporter_filename = g_strdup (fc->filename); + + if (dvi_document->exporter_opts) { + g_string_free (dvi_document->exporter_opts, TRUE); + } + dvi_document->exporter_opts = g_string_new ("-s "); +} + +static void +dvi_document_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) +{ + DviDocument *dvi_document = DVI_DOCUMENT(exporter); + + g_string_append_printf (dvi_document->exporter_opts, "%d,", (rc->page->index) + 1); +} + +static void +dvi_document_file_exporter_end (EvFileExporter *exporter) +{ + gchar *command_line; + gint exit_stat; + GError *err = NULL; + gboolean success; + + DviDocument *dvi_document = DVI_DOCUMENT(exporter); + + command_line = g_strdup_printf ("dvipdfm %s -o %s \"%s\"", /* dvipdfm -s 1,2,.., -o exporter_filename dvi_filename */ + dvi_document->exporter_opts->str, + dvi_document->exporter_filename, + dvi_document->context->filename); + + success = g_spawn_command_line_sync (command_line, + NULL, + NULL, + &exit_stat, + &err); + + g_free (command_line); + + if (success == FALSE) { + g_warning ("Error: %s", err->message); + } else if (!WIFEXITED(exit_stat) || WEXITSTATUS(exit_stat) != EXIT_SUCCESS){ + g_warning ("Error: dvipdfm does not end normally or exit with a failure status."); + } + + if (err) + g_error_free (err); +} + +static EvFileExporterCapabilities +dvi_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_COPIES | + EV_FILE_EXPORTER_CAN_COLLATE | + EV_FILE_EXPORTER_CAN_REVERSE | + EV_FILE_EXPORTER_CAN_GENERATE_PDF; +} + +static void +dvi_document_file_exporter_iface_init (EvFileExporterInterface *iface) +{ + iface->begin = dvi_document_file_exporter_begin; + iface->do_page = dvi_document_file_exporter_do_page; + iface->end = dvi_document_file_exporter_end; + iface->get_capabilities = dvi_document_file_exporter_get_capabilities; +} + +#define RGB2ULONG(r,g,b) ((0xFF<<24)|(r<<16)|(g<<8)|(b)) + +static gboolean +hsb2rgb (float h, float s, float v, guchar *red, guchar *green, guchar *blue) +{ + float i, f, p, q, t, r, g, b; + + if (h == 360) + h = 0; + else if ((h > 360) || (h < 0)) + return FALSE; + + s /= 100; + v /= 100; + h /= 60; + i = floor (h); + f = h - i; + p = v * (1 - s); + q = v * (1 - (s * f)); + t = v * (1 - (s * (1 - f))); + + if (i == 0) { + r = v; + g = t; + b = p; + } else if (i == 1) { + r = q; + g = v; + b = p; + } else if (i == 2) { + r = p; + g = v; + b = t; + } else if (i == 3) { + r = p; + g = q; + b = v; + } else if (i == 4) { + r = t; + g = p; + b = v; + } else if (i == 5) { + r = v; + g = p; + b = q; + } + + *red = (guchar)floor(r * 255.0); + *green = (guchar)floor(g * 255.0); + *blue = (guchar)floor(b * 255.0); + + return TRUE; +} + +static void +parse_color (const gchar *ptr, + gdouble *color, + gint n_color) +{ + gchar *p = (gchar *)ptr; + gint i; + + for (i = 0; i < n_color; i++) { + while (isspace (*p)) p++; + color[i] = g_ascii_strtod (p, NULL); + while (!isspace (*p) && *p != '\0') p++; + if (*p == '\0') + break; + } +} + +static void +dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char *arg) +{ + if (strncmp (arg, "pop", 3) == 0) { + mdvi_pop_color (dvi); + } else if (strncmp (arg, "push", 4) == 0) { + /* Find color source: Named, CMYK or RGB */ + const char *tmp = arg + 4; + + while (isspace (*tmp)) tmp++; + + if (!strncmp ("rgb", tmp, 3)) { + gdouble rgb[3]; + guchar red, green, blue; + + parse_color (tmp + 4, rgb, 3); + + red = 255 * rgb[0]; + green = 255 * rgb[1]; + blue = 255 * rgb[2]; + + mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); + } else if (!strncmp ("hsb", tmp, 4)) { + gdouble hsb[3]; + guchar red, green, blue; + + parse_color (tmp + 4, hsb, 3); + + if (hsb2rgb (hsb[0], hsb[1], hsb[2], &red, &green, &blue)) + mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); + } else if (!strncmp ("cmyk", tmp, 4)) { + gdouble cmyk[4]; + double r, g, b; + guchar red, green, blue; + + parse_color (tmp + 5, cmyk, 4); + + r = 1.0 - cmyk[0] - cmyk[3]; + if (r < 0.0) + r = 0.0; + g = 1.0 - cmyk[1] - cmyk[3]; + if (g < 0.0) + g = 0.0; + b = 1.0 - cmyk[2] - cmyk[3]; + if (b < 0.0) + b = 0.0; + + red = r * 255 + 0.5; + green = g * 255 + 0.5; + blue = b * 255 + 0.5; + + mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); + } else if (!strncmp ("gray ", tmp, 5)) { + gdouble gray; + guchar rgb; + + parse_color (tmp + 5, &gray, 1); + + rgb = gray * 255 + 0.5; + + mdvi_push_color (dvi, RGB2ULONG (rgb, rgb, rgb), 0xFFFFFFFF); + } else { + GdkColor color; + + if (gdk_color_parse (tmp, &color)) { + guchar red, green, blue; + + red = color.red * 255 / 65535.; + green = color.green * 255 / 65535.; + blue = color.blue * 255 / 65535.; + + mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); + } + } + } +} + +static void +dvi_document_init_params (DviDocument *dvi_document) +{ + dvi_document->params = g_new0 (DviParams, 1); + + dvi_document->params->dpi = MDVI_DPI; + dvi_document->params->vdpi = MDVI_VDPI; + dvi_document->params->mag = MDVI_MAGNIFICATION; + dvi_document->params->density = MDVI_DEFAULT_DENSITY; + dvi_document->params->gamma = MDVI_DEFAULT_GAMMA; + dvi_document->params->flags = MDVI_PARAM_ANTIALIASED; + dvi_document->params->hdrift = 0; + dvi_document->params->vdrift = 0; + dvi_document->params->hshrink = MDVI_SHRINK_FROM_DPI(dvi_document->params->dpi); + dvi_document->params->vshrink = MDVI_SHRINK_FROM_DPI(dvi_document->params->vdpi); + dvi_document->params->orientation = MDVI_ORIENT_TBLR; + + dvi_document->spec = NULL; + + dvi_document->params->bg = 0xffffffff; + dvi_document->params->fg = 0xff000000; +} + +static void +dvi_document_init (DviDocument *dvi_document) +{ + dvi_document->context = NULL; + dvi_document_init_params (dvi_document); + + dvi_document->exporter_filename = NULL; + dvi_document->exporter_opts = NULL; +} diff --git a/backend/dvi/dvi-document.h b/backend/dvi/dvi-document.h new file mode 100644 index 00000000..845301b6 --- /dev/null +++ b/backend/dvi/dvi-document.h @@ -0,0 +1,38 @@ +/* dvi-document.h: Implementation of EvDocument for dvi documents + * Copyright (C) 2005, Nickolay V. Shmyrev <nshmyrev@yandex.ru> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DVI_DOCUMENT_H__ +#define __DVI_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define DVI_TYPE_DOCUMENT (dvi_document_get_type ()) +#define DVI_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DVI_TYPE_DOCUMENT, DviDocument)) +#define DVI_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DVI_TYPE_DOCUMENT)) + +typedef struct _DviDocument DviDocument; + +GType dvi_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __DVI_DOCUMENT_H__ */ diff --git a/backend/dvi/dvidocument.evince-backend.in b/backend/dvi/dvidocument.evince-backend.in new file mode 100644 index 00000000..cb5fe6ed --- /dev/null +++ b/backend/dvi/dvidocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=dvidocument +_TypeDescription=DVI Documents +MimeType=application/x-dvi;application/x-bzdvi;application/x-gzdvi diff --git a/backend/dvi/fonts.c b/backend/dvi/fonts.c new file mode 100644 index 00000000..99be63ce --- /dev/null +++ b/backend/dvi/fonts.c @@ -0,0 +1,57 @@ +#include "config.h" +#include "fonts.h" +#include "mdvi.h" + +static int registered = 0; + +extern DviFontInfo pk_font_info; +extern DviFontInfo pkn_font_info; +extern DviFontInfo gf_font_info; +extern DviFontInfo vf_font_info; +extern DviFontInfo ovf_font_info; +#if 0 +extern DviFontInfo tt_font_info; +#endif +#ifdef WITH_TYPE1_FONTS +extern DviFontInfo t1_font_info; +#endif +extern DviFontInfo afm_font_info; +extern DviFontInfo tfm_font_info; +extern DviFontInfo ofm_font_info; + +static struct fontinfo { + DviFontInfo *info; + char *desc; + int klass; +} known_fonts[] = { + {&vf_font_info, "Virtual fonts", 0}, + {&ovf_font_info, "Omega's virtual fonts", 0}, +#if 0 + {&tt_font_info, "TrueType fonts", 0}, +#endif +#ifdef WITH_TYPE1_FONTS + {&t1_font_info, "Type1 PostScript fonts", 0}, +#endif + {&pk_font_info, "Packed bitmap (auto-generated)", 1}, + {&pkn_font_info, "Packed bitmap", -2}, + {&gf_font_info, "Metafont's generic font format", 1}, + {&ofm_font_info, "Omega font metrics", -1}, + {&tfm_font_info, "TeX font metrics", -1}, + {&afm_font_info, "Adobe font metrics", -1}, + {0, 0} +}; + +void mdvi_register_fonts (void) +{ + struct fontinfo *type; + + if (!registered) { + for(type = known_fonts; type->info; type++) { + mdvi_register_font_type(type->info, type->klass); + } + registered = 1; + } + return; +} + + diff --git a/backend/dvi/fonts.h b/backend/dvi/fonts.h new file mode 100644 index 00000000..e55a8ddf --- /dev/null +++ b/backend/dvi/fonts.h @@ -0,0 +1,6 @@ +#ifndef MDVI_FONTS_REGISTRATION_H +#define MDVI_FONTS_REGISTRATION_H + +void mdvi_register_fonts (void); + +#endif /* MDVI_FONTS_REGISTRATION_H */ diff --git a/backend/dvi/mdvi-lib/Makefile.am b/backend/dvi/mdvi-lib/Makefile.am new file mode 100644 index 00000000..e976aa60 --- /dev/null +++ b/backend/dvi/mdvi-lib/Makefile.am @@ -0,0 +1,43 @@ +INCLUDES = $(WARN_CFLAGS) +noinst_LTLIBRARIES = libmdvi.la + +libmdvi_la_SOURCES = \ + afmparse.c \ + afmparse.h \ + bitmap.c \ + bitmap.h \ + color.c \ + color.h \ + common.c \ + common.h \ + defaults.h \ + dviopcodes.h \ + dviread.c \ + files.c \ + font.c \ + fontmap.c \ + fontmap.h \ + fontsrch.c \ + gf.c \ + hash.c \ + hash.h \ + list.c \ + mdvi.h \ + pagesel.c \ + paper.c \ + paper.h \ + pk.c \ + private.h \ + setup.c \ + special.c \ + sp-epsf.c \ + sysdeps.h \ + t1.c \ + tfm.c \ + tfmfile.c \ + tt.c \ + util.c \ + vf.c + + +-include $(top_srcdir)/git.mk diff --git a/backend/dvi/mdvi-lib/afmparse.c b/backend/dvi/mdvi-lib/afmparse.c new file mode 100644 index 00000000..164366b0 --- /dev/null +++ b/backend/dvi/mdvi-lib/afmparse.c @@ -0,0 +1,1303 @@ +/* + * (C) 1988, 1989, 1990 by Adobe Systems Incorporated. All rights reserved. + * + * This file may be freely copied and redistributed as long as: + * 1) This entire notice continues to be included in the file, + * 2) If the file has been modified in any way, a notice of such + * modification is conspicuously indicated. + * + * PostScript, Display PostScript, and Adobe are registered trademarks of + * Adobe Systems Incorporated. + * + * ************************************************************************ + * THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT + * NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS + * INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR + * LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY + * KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION, + * AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. + * ************************************************************************ + */ + +/* + * modified for MDVI: + * - some names changed to avoid conflicts with T1lib + * - changed to ANSI C prototypes, as used by MDVI + * mal - 3/01 + */ + +/* parseAFM.c + * + * This file is used in conjuction with the parseAFM.h header file. + * This file contains several procedures that are used to parse AFM + * files. It is intended to work with an application program that needs + * font metric information. The program can be used as is by making a + * procedure call to "parseFile" (passing in the expected parameters) + * and having it fill in a data structure with the data from the + * AFM file, or an application developer may wish to customize this + * code. + * + * There is also a file, parseAFMclient.c, that is a sample application + * showing how to call the "parseFile" procedure and how to use the data + * after "parseFile" has returned. + * + * Please read the comments in parseAFM.h and parseAFMclient.c. + * + * History: + * original: DSM Thu Oct 20 17:39:59 PDT 1988 + * modified: DSM Mon Jul 3 14:17:50 PDT 1989 + * - added 'storageProblem' return code + * - fixed bug of not allocating extra byte for string duplication + * - fixed typos + * modified: DSM Tue Apr 3 11:18:34 PDT 1990 + * - added free(ident) at end of parseFile routine + * modified: DSM Tue Jun 19 10:16:29 PDT 1990 + * - changed (width == 250) to (width = 250) in initializeArray + */ + +#include <config.h> +#include "sysdeps.h" + +#ifdef WITH_AFM_FILES + +#include <stdlib.h> /* added for MDVI */ +#include <string.h> /* added for MDVI */ + +#include <stdio.h> +#include <errno.h> +#include <sys/file.h> +#include <math.h> +#include "afmparse.h" +#undef VERSION + +#define lineterm EOL /* line terminating character */ +#define normalEOF 1 /* return code from parsing routines used only */ + /* in this module */ +#define Space "space" /* used in string comparison to look for the width */ + /* of the space character to init the widths array */ +#define False "false" /* used in string comparison to check the value of */ + /* boolean keys (e.g. IsFixedPitch) */ + +#define MATCH(A,B) (strncmp((A),(B), MAX_NAME) == 0) + + + +/*************************** GLOBALS ***********************/ + +static char *ident = NULL; /* storage buffer for keywords */ + + +/* "shorts" for fast case statement + * The values of each of these enumerated items correspond to an entry in the + * table of strings defined below. Therefore, if you add a new string as + * new keyword into the keyStrings table, you must also add a corresponding + * parseKey AND it MUST be in the same position! + * + * IMPORTANT: since the sorting algorithm is a binary search, the strings of + * keywords must be placed in lexicographical order, below. [Therefore, the + * enumerated items are not necessarily in lexicographical order, depending + * on the name chosen. BUT, they must be placed in the same position as the + * corresponding key string.] The NOPE shall remain in the last position, + * since it does not correspond to any key string, and it is used in the + * "recognize" procedure to calculate how many possible keys there are. + */ + +enum parseKey { + ASCENDER, CHARBBOX, CODE, COMPCHAR, CAPHEIGHT, COMMENT, + DESCENDER, ENCODINGSCHEME, ENDCHARMETRICS, ENDCOMPOSITES, + ENDFONTMETRICS, ENDKERNDATA, ENDKERNPAIRS, ENDTRACKKERN, + FAMILYNAME, FONTBBOX, FONTNAME, FULLNAME, ISFIXEDPITCH, + ITALICANGLE, KERNPAIR, KERNPAIRXAMT, LIGATURE, CHARNAME, + NOTICE, COMPCHARPIECE, STARTCHARMETRICS, STARTCOMPOSITES, + STARTFONTMETRICS, STARTKERNDATA, STARTKERNPAIRS, + STARTTRACKKERN, TRACKKERN, UNDERLINEPOSITION, + UNDERLINETHICKNESS, VERSION, XYWIDTH, XWIDTH, WEIGHT, XHEIGHT, + NOPE } ; + +/* keywords for the system: + * This a table of all of the current strings that are vaild AFM keys. + * Each entry can be referenced by the appropriate parseKey value (an + * enumerated data type defined above). If you add a new keyword here, + * a corresponding parseKey MUST be added to the enumerated data type + * defined above, AND it MUST be added in the same position as the + * string is in this table. + * + * IMPORTANT: since the sorting algorithm is a binary search, the keywords + * must be placed in lexicographical order. And, NULL should remain at the + * end. + */ + +static char *keyStrings[] = { + "Ascender", "B", "C", "CC", "CapHeight", "Comment", + "Descender", "EncodingScheme", "EndCharMetrics", "EndComposites", + "EndFontMetrics", "EndKernData", "EndKernPairs", "EndTrackKern", + "FamilyName", "FontBBox", "FontName", "FullName", "IsFixedPitch", + "ItalicAngle", "KP", "KPX", "L", "N", + "Notice", "PCC", "StartCharMetrics", "StartComposites", + "StartFontMetrics", "StartKernData", "StartKernPairs", + "StartTrackKern", "TrackKern", "UnderlinePosition", + "UnderlineThickness", "Version", "W", "WX", "Weight", "XHeight", + NULL }; + +/*************************** PARSING ROUTINES **************/ + +/*************************** token *************************/ + +/* A "AFM File Conventions" tokenizer. That means that it will + * return the next token delimited by white space. See also + * the `linetoken' routine, which does a similar thing but + * reads all tokens until the next end-of-line. + */ + +static char *token(FILE *stream) +{ + int ch, idx; + + /* skip over white space */ + while ((ch = fgetc(stream)) == ' ' || ch == lineterm || + ch == ',' || ch == '\t' || ch == ';'); + + idx = 0; + while (ch != EOF && ch != ' ' && ch != lineterm + && ch != '\t' && ch != ':' && ch != ';') + { + ident[idx++] = ch; + ch = fgetc(stream); + } /* while */ + + if (ch == EOF && idx < 1) return ((char *)NULL); + if (idx >= 1 && ch != ':' ) ungetc(ch, stream); + if (idx < 1 ) ident[idx++] = ch; /* single-character token */ + ident[idx] = 0; + + return(ident); /* returns pointer to the token */ + +} /* token */ + + +/*************************** linetoken *************************/ + +/* "linetoken" will get read all tokens until the EOL character from + * the given stream. This is used to get any arguments that can be + * more than one word (like Comment lines and FullName). + */ + +static char *linetoken(FILE *stream) +{ + int ch, idx; + + while ((ch = fgetc(stream)) == ' ' || ch == '\t' ); + + idx = 0; + while (ch != EOF && ch != lineterm) + { + ident[idx++] = ch; + ch = fgetc(stream); + } /* while */ + + ungetc(ch, stream); + ident[idx] = 0; + + return(ident); /* returns pointer to the token */ + +} /* linetoken */ + + +/*************************** recognize *************************/ + +/* This function tries to match a string to a known list of + * valid AFM entries (check the keyStrings array above). + * "ident" contains everything from white space through the + * next space, tab, or ":" character. + * + * The algorithm is a standard Knuth binary search. + */ + +static enum parseKey recognize(char *ident) +{ + int lower = 0, upper = (int) NOPE, midpoint, cmpvalue; + BOOL found = FALSE; + + while ((upper >= lower) && !found) + { + midpoint = (lower + upper)/2; + if (keyStrings[midpoint] == NULL) break; + cmpvalue = strncmp(ident, keyStrings[midpoint], MAX_NAME); + if (cmpvalue == 0) found = TRUE; + else if (cmpvalue < 0) upper = midpoint - 1; + else lower = midpoint + 1; + } /* while */ + + if (found) return (enum parseKey) midpoint; + else return NOPE; + +} /* recognize */ + + +/************************* parseGlobals *****************************/ + +/* This function is called by "parseFile". It will parse the AFM File + * up to the "StartCharMetrics" keyword, which essentially marks the + * end of the Global Font Information and the beginning of the character + * metrics information. + * + * If the caller of "parseFile" specified that it wanted the Global + * Font Information (as defined by the "AFM File Specification" + * document), then that information will be stored in the returned + * data structure. + * + * Any Global Font Information entries that are not found in a + * given file, will have the usual default initialization value + * for its type (i.e. entries of type int will be 0, etc). + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static BOOL parseGlobals(FILE *fp, GlobalFontInfo *gfi) +{ + BOOL cont = TRUE, save = (gfi != NULL); + int error = ok; + register char *keyword; + + while (cont) + { + keyword = token(fp); + + if (keyword == NULL) + /* Have reached an early and unexpected EOF. */ + /* Set flag and stop parsing */ + { + error = earlyEOF; + break; /* get out of loop */ + } + if (!save) + /* get tokens until the end of the Global Font info section */ + /* without saving any of the data */ + switch (recognize(keyword)) + { + case STARTCHARMETRICS: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + default: + break; + } /* switch */ + else + /* otherwise parse entire global font info section, */ + /* saving the data */ + switch(recognize(keyword)) + { + case STARTFONTMETRICS: + keyword = token(fp); + gfi->afmVersion = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->afmVersion, keyword); + break; + case COMMENT: + keyword = linetoken(fp); + break; + case FONTNAME: + keyword = token(fp); + gfi->fontName = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->fontName, keyword); + break; + case ENCODINGSCHEME: + keyword = token(fp); + gfi->encodingScheme = (char *) + malloc(strlen(keyword) + 1); + strcpy(gfi->encodingScheme, keyword); + break; + case FULLNAME: + keyword = linetoken(fp); + gfi->fullName = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->fullName, keyword); + break; + case FAMILYNAME: + keyword = linetoken(fp); + gfi->familyName = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->familyName, keyword); + break; + case WEIGHT: + keyword = token(fp); + gfi->weight = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->weight, keyword); + break; + case ITALICANGLE: + keyword = token(fp); + gfi->italicAngle = atof(keyword); + if (errno == ERANGE) error = parseError; + break; + case ISFIXEDPITCH: + keyword = token(fp); + if (MATCH(keyword, False)) + gfi->isFixedPitch = 0; + else + gfi->isFixedPitch = 1; + break; + case UNDERLINEPOSITION: + keyword = token(fp); + gfi->underlinePosition = atoi(keyword); + break; + case UNDERLINETHICKNESS: + keyword = token(fp); + gfi->underlineThickness = atoi(keyword); + break; + case VERSION: + keyword = token(fp); + gfi->version = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->version, keyword); + break; + case NOTICE: + keyword = linetoken(fp); + gfi->notice = (char *) malloc(strlen(keyword) + 1); + strcpy(gfi->notice, keyword); + break; + case FONTBBOX: + keyword = token(fp); + gfi->fontBBox.llx = atoi(keyword); + keyword = token(fp); + gfi->fontBBox.lly = atoi(keyword); + keyword = token(fp); + gfi->fontBBox.urx = atoi(keyword); + keyword = token(fp); + gfi->fontBBox.ury = atoi(keyword); + break; + case CAPHEIGHT: + keyword = token(fp); + gfi->capHeight = atoi(keyword); + break; + case XHEIGHT: + keyword = token(fp); + gfi->xHeight = atoi(keyword); + break; + case DESCENDER: + keyword = token(fp); + gfi->descender = atoi(keyword); + break; + case ASCENDER: + keyword = token(fp); + gfi->ascender = atoi(keyword); + break; + case STARTCHARMETRICS: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + return(error); + +} /* parseGlobals */ + + + +#if 0 /* this function does not seem to be used anywhere */ +/************************* initializeArray ************************/ + +/* Unmapped character codes are (at Adobe Systems) assigned the + * width of the space character (if one exists) else they get the + * value of 250 ems. This function initializes all entries in the + * char widths array to have this value. Then any mapped character + * codes will be replaced with the width of the appropriate character + * when parsing the character metric section. + + * This function parses the Character Metrics Section looking + * for a space character (by comparing character names). If found, + * the width of the space character will be used to initialize the + * values in the array of character widths. + * + * Before returning, the position of the read/write pointer of the + * file is reset to be where it was upon entering this function. + */ + +static int initializeArray(FILE *fp, int *cwi) +{ + BOOL cont = TRUE, found = FALSE; + long opos = ftell(fp); + int code = 0, width = 0, i = 0, error = 0; + register char *keyword; + + while (cont) + { + keyword = token(fp); + if (keyword == NULL) + { + error = earlyEOF; + break; /* get out of loop */ + } + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case CODE: + code = atoi(token(fp)); + break; + case XWIDTH: + width = atoi(token(fp)); + break; + case CHARNAME: + keyword = token(fp); + if (MATCH(keyword, Space)) + { + cont = FALSE; + found = TRUE; + } + break; + case ENDCHARMETRICS: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + if (!found) + width = 250; + + for (i = 0; i < 256; ++i) + cwi[i] = width; + + fseek(fp, opos, 0); + + return(error); + +} /* initializeArray */ +#endif /* unused */ + +/************************* parseCharWidths **************************/ + +/* This function is called by "parseFile". It will parse the AFM File + * up to the "EndCharMetrics" keyword. It will save the character + * width info (as opposed to all of the character metric information) + * if requested by the caller of parseFile. Otherwise, it will just + * parse through the section without saving any information. + * + * If data is to be saved, parseCharWidths is passed in a pointer + * to an array of widths that has already been initialized by the + * standard value for unmapped character codes. This function parses + * the Character Metrics section only storing the width information + * for the encoded characters into the array using the character code + * as the index into that array. + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static int parseCharWidths(FILE *fp, int *cwi) +{ + BOOL cont = TRUE, save = (cwi != NULL); + int pos = 0, error = ok; + register char *keyword; + + while (cont) + { + keyword = token(fp); + /* Have reached an early and unexpected EOF. */ + /* Set flag and stop parsing */ + if (keyword == NULL) + { + error = earlyEOF; + break; /* get out of loop */ + } + if (!save) + /* get tokens until the end of the Char Metrics section without */ + /* saving any of the data*/ + switch (recognize(keyword)) + { + case ENDCHARMETRICS: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + default: + break; + } /* switch */ + else + /* otherwise parse entire char metrics section, saving */ + /* only the char x-width info */ + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case CODE: + keyword = token(fp); + pos = atoi(keyword); + break; + case XYWIDTH: + /* PROBLEM: Should be no Y-WIDTH when doing "quick & dirty" */ + keyword = token(fp); keyword = token(fp); /* eat values */ + error = parseError; + break; + case XWIDTH: + keyword = token(fp); + if (pos >= 0) /* ignore unmapped chars */ + cwi[pos] = atoi(keyword); + break; + case ENDCHARMETRICS: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case CHARNAME: /* eat values (so doesn't cause parseError) */ + keyword = token(fp); + break; + case CHARBBOX: + keyword = token(fp); keyword = token(fp); + keyword = token(fp); keyword = token(fp); + break; + case LIGATURE: + keyword = token(fp); keyword = token(fp); + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + return(error); + +} /* parseCharWidths */ + + +/************************* parseCharMetrics ************************/ + +/* This function is called by parseFile if the caller of parseFile + * requested that all character metric information be saved + * (as opposed to only the character width information). + * + * parseCharMetrics is passed in a pointer to an array of records + * to hold information on a per character basis. This function + * parses the Character Metrics section storing all character + * metric information for the ALL characters (mapped and unmapped) + * into the array. + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static int parseCharMetrics(FILE *fp, FontInfo *fi) +{ + BOOL cont = TRUE, firstTime = TRUE; + int error = ok, count = 0; + register CharMetricInfo *temp = fi->cmi; + register char *keyword; + + while (cont) + { + keyword = token(fp); + if (keyword == NULL) + { + error = earlyEOF; + break; /* get out of loop */ + } + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case CODE: + if (count < fi->numOfChars) + { + if (firstTime) firstTime = FALSE; + else temp++; + temp->code = atoi(token(fp)); + count++; + } + else + { + error = parseError; + cont = FALSE; + } + break; + case XYWIDTH: + temp->wx = atoi(token(fp)); + temp->wy = atoi(token(fp)); + break; + case XWIDTH: + temp->wx = atoi(token(fp)); + break; + case CHARNAME: + keyword = token(fp); + temp->name = (char *) malloc(strlen(keyword) + 1); + strcpy(temp->name, keyword); + break; + case CHARBBOX: + temp->charBBox.llx = atoi(token(fp)); + temp->charBBox.lly = atoi(token(fp)); + temp->charBBox.urx = atoi(token(fp)); + temp->charBBox.ury = atoi(token(fp)); + break; + case LIGATURE: { + Ligature **tail = &(temp->ligs); + Ligature *node = *tail; + + if (*tail != NULL) + { + while (node->next != NULL) + node = node->next; + tail = &(node->next); + } + + *tail = (Ligature *) calloc(1, sizeof(Ligature)); + keyword = token(fp); + (*tail)->succ = (char *) malloc(strlen(keyword) + 1); + strcpy((*tail)->succ, keyword); + keyword = token(fp); + (*tail)->lig = (char *) malloc(strlen(keyword) + 1); + strcpy((*tail)->lig, keyword); + break; } + case ENDCHARMETRICS: + cont = FALSE;; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + if ((error == ok) && (count != fi->numOfChars)) + error = parseError; + + return(error); + +} /* parseCharMetrics */ + + + +/************************* parseTrackKernData ***********************/ + +/* This function is called by "parseFile". It will parse the AFM File + * up to the "EndTrackKern" or "EndKernData" keywords. It will save the + * track kerning data if requested by the caller of parseFile. + * + * parseTrackKernData is passed in a pointer to the FontInfo record. + * If data is to be saved, the FontInfo record will already contain + * a valid pointer to storage for the track kerning data. + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static int parseTrackKernData(FILE *fp, FontInfo *fi) +{ + BOOL cont = TRUE, save = (fi->tkd != NULL); + int pos = 0, error = ok, tcount = 0; + register char *keyword; + + while (cont) + { + keyword = token(fp); + + if (keyword == NULL) + { + error = earlyEOF; + break; /* get out of loop */ + } + if (!save) + /* get tokens until the end of the Track Kerning Data */ + /* section without saving any of the data */ + switch(recognize(keyword)) + { + case ENDTRACKKERN: + case ENDKERNDATA: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + default: + break; + } /* switch */ + else + /* otherwise parse entire Track Kerning Data section, */ + /* saving the data */ + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case TRACKKERN: + if (tcount < fi->numOfTracks) + { + keyword = token(fp); + fi->tkd[pos].degree = atoi(keyword); + keyword = token(fp); + fi->tkd[pos].minPtSize = atof(keyword); + if (errno == ERANGE) error = parseError; + keyword = token(fp); + fi->tkd[pos].minKernAmt = atof(keyword); + if (errno == ERANGE) error = parseError; + keyword = token(fp); + fi->tkd[pos].maxPtSize = atof(keyword); + if (errno == ERANGE) error = parseError; + keyword = token(fp); + fi->tkd[pos++].maxKernAmt = atof(keyword); + if (errno == ERANGE) error = parseError; + tcount++; + } + else + { + error = parseError; + cont = FALSE; + } + break; + case ENDTRACKKERN: + case ENDKERNDATA: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + if (error == ok && tcount != fi->numOfTracks) + error = parseError; + + return(error); + +} /* parseTrackKernData */ + + +/************************* parsePairKernData ************************/ + +/* This function is called by "parseFile". It will parse the AFM File + * up to the "EndKernPairs" or "EndKernData" keywords. It will save + * the pair kerning data if requested by the caller of parseFile. + * + * parsePairKernData is passed in a pointer to the FontInfo record. + * If data is to be saved, the FontInfo record will already contain + * a valid pointer to storage for the pair kerning data. + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static int parsePairKernData(FILE *fp, FontInfo *fi) +{ + BOOL cont = TRUE, save = (fi->pkd != NULL); + int pos = 0, error = ok, pcount = 0; + register char *keyword; + + while (cont) + { + keyword = token(fp); + + if (keyword == NULL) + { + error = earlyEOF; + break; /* get out of loop */ + } + if (!save) + /* get tokens until the end of the Pair Kerning Data */ + /* section without saving any of the data */ + switch(recognize(keyword)) + { + case ENDKERNPAIRS: + case ENDKERNDATA: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + default: + break; + } /* switch */ + else + /* otherwise parse entire Pair Kerning Data section, */ + /* saving the data */ + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case KERNPAIR: + if (pcount < fi->numOfPairs) + { + keyword = token(fp); + fi->pkd[pos].name1 = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->pkd[pos].name1, keyword); + keyword = token(fp); + fi->pkd[pos].name2 = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->pkd[pos].name2, keyword); + keyword = token(fp); + fi->pkd[pos].xamt = atoi(keyword); + keyword = token(fp); + fi->pkd[pos++].yamt = atoi(keyword); + pcount++; + } + else + { + error = parseError; + cont = FALSE; + } + break; + case KERNPAIRXAMT: + if (pcount < fi->numOfPairs) + { + keyword = token(fp); + fi->pkd[pos].name1 = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->pkd[pos].name1, keyword); + keyword = token(fp); + fi->pkd[pos].name2 = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->pkd[pos].name2, keyword); + keyword = token(fp); + fi->pkd[pos++].xamt = atoi(keyword); + pcount++; + } + else + { + error = parseError; + cont = FALSE; + } + break; + case ENDKERNPAIRS: + case ENDKERNDATA: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + if (error == ok && pcount != fi->numOfPairs) + error = parseError; + + return(error); + +} /* parsePairKernData */ + + +/************************* parseCompCharData **************************/ + +/* This function is called by "parseFile". It will parse the AFM File + * up to the "EndComposites" keyword. It will save the composite + * character data if requested by the caller of parseFile. + * + * parseCompCharData is passed in a pointer to the FontInfo record, and + * a boolean representing if the data should be saved. + * + * This function will create the appropriate amount of storage for + * the composite character data and store a pointer to the storage + * in the FontInfo record. + * + * This function returns an error code specifying whether there was + * a premature EOF or a parsing error. This return value is used by + * parseFile to determine if there is more file to parse. + */ + +static int parseCompCharData(FILE *fp, FontInfo *fi) +{ + BOOL cont = TRUE, firstTime = TRUE, save = (fi->ccd != NULL); + int pos = 0, j = 0, error = ok, ccount = 0, pcount = 0; + register char *keyword; + + while (cont) + { + keyword = token(fp); + if (keyword == NULL) + /* Have reached an early and unexpected EOF. */ + /* Set flag and stop parsing */ + { + error = earlyEOF; + break; /* get out of loop */ + } + if (ccount > fi->numOfComps) + { + error = parseError; + break; /* get out of loop */ + } + if (!save) + /* get tokens until the end of the Composite Character info */ + /* section without saving any of the data */ + switch(recognize(keyword)) + { + case ENDCOMPOSITES: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + default: + break; + } /* switch */ + else + /* otherwise parse entire Composite Character info section, */ + /* saving the data */ + switch(recognize(keyword)) + { + case COMMENT: + keyword = linetoken(fp); + break; + case COMPCHAR: + if (ccount < fi->numOfComps) + { + keyword = token(fp); + if (pcount != fi->ccd[pos].numOfPieces) + error = parseError; + pcount = 0; + if (firstTime) firstTime = FALSE; + else pos++; + fi->ccd[pos].ccName = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->ccd[pos].ccName, keyword); + keyword = token(fp); + fi->ccd[pos].numOfPieces = atoi(keyword); + fi->ccd[pos].pieces = (Pcc *) + calloc(fi->ccd[pos].numOfPieces, sizeof(Pcc)); + j = 0; + ccount++; + } + else + { + error = parseError; + cont = FALSE; + } + break; + case COMPCHARPIECE: + if (pcount < fi->ccd[pos].numOfPieces) + { + keyword = token(fp); + fi->ccd[pos].pieces[j].pccName = (char *) + malloc(strlen(keyword) + 1); + strcpy(fi->ccd[pos].pieces[j].pccName, keyword); + keyword = token(fp); + fi->ccd[pos].pieces[j].deltax = atoi(keyword); + keyword = token(fp); + fi->ccd[pos].pieces[j++].deltay = atoi(keyword); + pcount++; + } + else + error = parseError; + break; + case ENDCOMPOSITES: + cont = FALSE; + break; + case ENDFONTMETRICS: + cont = FALSE; + error = normalEOF; + break; + case NOPE: + default: + error = parseError; + break; + } /* switch */ + } /* while */ + + if (error == ok && ccount != fi->numOfComps) + error = parseError; + + return(error); + +} /* parseCompCharData */ + + + + +/*************************** 'PUBLIC' FUNCTION ********************/ + + +/*************************** parseFile *****************************/ + +/* parseFile is the only 'public' procedure available. It is called + * from an application wishing to get information from an AFM file. + * The caller of this function is responsible for locating and opening + * an AFM file and handling all errors associated with that task. + * + * parseFile expects 3 parameters: a vaild file pointer, a pointer + * to a (FontInfo *) variable (for which storage will be allocated and + * the data requested filled in), and a mask specifying which + * data from the AFM File should be saved in the FontInfo structure. + * + * The file will be parsed and the requested data will be stored in + * a record of type FontInfo (refer to ParseAFM.h). + * + * parseFile returns an error code as defined in parseAFM.h. + * + * The position of the read/write pointer associated with the file + * pointer upon return of this function is undefined. + */ + +extern int afm_parse_file(FILE *fp, FontInfo **fi, FLAGS flags) +{ + + int code = ok; /* return code from each of the parsing routines */ + int error = ok; /* used as the return code from this function */ + + register char *keyword; /* used to store a token */ + + + /* storage data for the global variable ident */ + ident = (char *) calloc(MAX_NAME, sizeof(char)); + if (ident == NULL) {error = storageProblem; return(error);} + + (*fi) = (FontInfo *) calloc(1, sizeof(FontInfo)); + if ((*fi) == NULL) {error = storageProblem; return(error);} + + if (flags & P_G) + { + (*fi)->gfi = (GlobalFontInfo *) calloc(1, sizeof(GlobalFontInfo)); + if ((*fi)->gfi == NULL) {error = storageProblem; return(error);} + } + + /* The AFM File begins with Global Font Information. This section */ + /* will be parsed whether or not information should be saved. */ + code = parseGlobals(fp, (*fi)->gfi); + + if (code < 0) error = code; + + /* The Global Font Information is followed by the Character Metrics */ + /* section. Which procedure is used to parse this section depends on */ + /* how much information should be saved. If all of the metrics info */ + /* is wanted, parseCharMetrics is called. If only the character widths */ + /* is wanted, parseCharWidths is called. parseCharWidths will also */ + /* be called in the case that no character data is to be saved, just */ + /* to parse through the section. */ + + if ((code != normalEOF) && (code != earlyEOF)) + { + (*fi)->numOfChars = atoi(token(fp)); + if (flags & (P_M ^ P_W)) + { + (*fi)->cmi = (CharMetricInfo *) + calloc((*fi)->numOfChars, sizeof(CharMetricInfo)); + if ((*fi)->cmi == NULL) {error = storageProblem; return(error);} + code = parseCharMetrics(fp, *fi); + } + else + { + if (flags & P_W) + { + (*fi)->cwi = (int *) calloc(256, sizeof(int)); + if ((*fi)->cwi == NULL) + { + error = storageProblem; + return(error); + } + } + /* parse section regardless */ + code = parseCharWidths(fp, (*fi)->cwi); + } /* else */ + } /* if */ + + if ((error != earlyEOF) && (code < 0)) error = code; + + /* The remaining sections of the AFM are optional. This code will */ + /* look at the next keyword in the file to determine what section */ + /* is next, and then allocate the appropriate amount of storage */ + /* for the data (if the data is to be saved) and call the */ + /* appropriate parsing routine to parse the section. */ + + while ((code != normalEOF) && (code != earlyEOF)) + { + keyword = token(fp); + if (keyword == NULL) + /* Have reached an early and unexpected EOF. */ + /* Set flag and stop parsing */ + { + code = earlyEOF; + break; /* get out of loop */ + } + switch(recognize(keyword)) + { + case STARTKERNDATA: + break; + case ENDKERNDATA: + break; + case STARTTRACKKERN: + keyword = token(fp); + if (flags & P_T) + { + (*fi)->numOfTracks = atoi(keyword); + (*fi)->tkd = (TrackKernData *) + calloc((*fi)->numOfTracks, sizeof(TrackKernData)); + if ((*fi)->tkd == NULL) + { + error = storageProblem; + return(error); + } + } /* if */ + code = parseTrackKernData(fp, *fi); + break; + case STARTKERNPAIRS: + keyword = token(fp); + if (flags & P_P) + { + (*fi)->numOfPairs = atoi(keyword); + (*fi)->pkd = (PairKernData *) + calloc((*fi)->numOfPairs, sizeof(PairKernData)); + if ((*fi)->pkd == NULL) + { + error = storageProblem; + return(error); + } + } /* if */ + code = parsePairKernData(fp, *fi); + break; + case STARTCOMPOSITES: + keyword = token(fp); + if (flags & P_C) + { + (*fi)->numOfComps = atoi(keyword); + (*fi)->ccd = (CompCharData *) + calloc((*fi)->numOfComps, sizeof(CompCharData)); + if ((*fi)->ccd == NULL) + { + error = storageProblem; + return(error); + } + } /* if */ + code = parseCompCharData(fp, *fi); + break; + case ENDFONTMETRICS: + code = normalEOF; + break; + case NOPE: + default: + code = parseError; + break; + } /* switch */ + + if ((error != earlyEOF) && (code < 0)) error = code; + + } /* while */ + + if ((error != earlyEOF) && (code < 0)) error = code; + + if (ident != NULL) { free(ident); ident = NULL; } + + return(error); + +} /* parseFile */ + +/* added for MDVI: this function was copied from `parseAFMclient.c' */ + +void afm_free_fontinfo(FontInfo *fi) +{ + if (fi != NULL) + { + if (fi->gfi != NULL) + { + free(fi->gfi->afmVersion); fi->gfi->afmVersion = NULL; + free(fi->gfi->fontName); fi->gfi->fontName = NULL; + free(fi->gfi->fullName); fi->gfi->fullName = NULL; + free(fi->gfi->familyName); fi->gfi->familyName = NULL; + free(fi->gfi->weight); fi->gfi->weight = NULL; + free(fi->gfi->version); fi->gfi->version = NULL; + free(fi->gfi->notice); fi->gfi->notice = NULL; + free(fi->gfi->encodingScheme); fi->gfi->encodingScheme = NULL; + free(fi->gfi); fi->gfi = NULL; + } + + if (fi->cwi != NULL) + { free(fi->cwi); fi->cwi = NULL; } + + if (fi->cmi != NULL) + { + int i = 0; + CharMetricInfo *temp = fi->cmi; + Ligature *node = temp->ligs; + + for (i = 0; i < fi->numOfChars; ++i) + { + for (node = temp->ligs; node != NULL; node = node->next) + { + free(node->succ); node->succ = NULL; + free(node->lig); node->lig = NULL; + } + + free(temp->name); temp->name = NULL; + temp++; + } + + free(fi->cmi); fi->cmi = NULL; + } + + if (fi->tkd != NULL) + { free(fi->tkd); fi->tkd = NULL; } + + if (fi->pkd != NULL) + { + free(fi->pkd->name1); fi->pkd->name1 = NULL; + free(fi->pkd->name2); fi->pkd->name2 = NULL; + free(fi->pkd); fi->pkd = NULL; + } + + if (fi->ccd != NULL) + { + int i = 0, j = 0; + CompCharData *ccd = fi->ccd; + + for (i = 0; i < fi->numOfComps; ++i) + { + for (j = 0; j < ccd[i].numOfPieces; ++j) + { + free(ccd[i].pieces[j].pccName); + ccd[i].pieces[j].pccName = NULL; + } + + free(ccd[i].ccName); ccd[i].ccName = NULL; + } + + free(fi->ccd); fi->ccd = NULL; + } + + free(fi); + + } /* if */ + +} /* afm_free_fontinfo */ + +#endif /* WITH_AFM_FILES */ diff --git a/backend/dvi/mdvi-lib/afmparse.h b/backend/dvi/mdvi-lib/afmparse.h new file mode 100644 index 00000000..6cce780c --- /dev/null +++ b/backend/dvi/mdvi-lib/afmparse.h @@ -0,0 +1,307 @@ +/* modified for MDVI -- some names changed to avoid conflicts with T1lib */ +/* + * (C) 1988, 1989 by Adobe Systems Incorporated. All rights reserved. + * + * This file may be freely copied and redistributed as long as: + * 1) This entire notice continues to be included in the file, + * 2) If the file has been modified in any way, a notice of such + * modification is conspicuously indicated. + * + * PostScript, Display PostScript, and Adobe are registered trademarks of + * Adobe Systems Incorporated. + * + * ************************************************************************ + * THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT + * NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS + * INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR + * LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY + * KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION, + * AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. + * ************************************************************************ + */ + +/* ParseAFM.h + * + * This header file is used in conjuction with the parseAFM.c file. + * Together these files provide the functionality to parse Adobe Font + * Metrics files and store the information in predefined data structures. + * It is intended to work with an application program that needs font metric + * information. The program can be used as is by making a procedure call to + * parse an AFM file and have the data stored, or an application developer + * may wish to customize the code. + * + * This header file defines the data structures used as well as the key + * strings that are currently recognized by this version of the AFM parser. + * This program is based on the document "Adobe Font Metrics Files, + * Specification Version 2.0". + * + * AFM files are separated into distinct sections of different data. Because + * of this, the parseAFM program can parse a specified file to only save + * certain sections of information based on the application's needs. A record + * containing the requested information will be returned to the application. + * + * AFM files are divided into five sections of data: + * 1) The Global Font Information + * 2) The Character Metrics Information + * 3) The Track Kerning Data + * 4) The Pair-Wise Kerning Data + * 5) The Composite Character Data + * + * Basically, the application can request any of these sections independent + * of what other sections are requested. In addition, in recognizing that + * many applications will want ONLY the x-width of characters and not all + * of the other character metrics information, there is a way to receive + * only the width information so as not to pay the storage cost for the + * unwanted data. An application should never request both the + * "quick and dirty" char metrics (widths only) and the Character Metrics + * Information since the Character Metrics Information will contain all + * of the character widths as well. + * + * There is a procedure in parseAFM.c, called parseFile, that can be + * called from any application wishing to get information from the AFM File. + * This procedure expects 3 parameters: a vaild file descriptor, a pointer + * to a (FontInfo *) variable (for which space will be allocated and then + * will be filled in with the data requested), and a mask specifying + * which data from the AFM File should be saved in the FontInfo structure. + * + * The flags that can be used to set the appropriate mask are defined below. + * In addition, several commonly used masks have already been defined. + * + * History: + * original: DSM Thu Oct 20 17:39:59 PDT 1988 + * modified: DSM Mon Jul 3 14:17:50 PDT 1989 + * - added 'storageProblem' return code + * - fixed typos + */ +#ifndef _MDVI_PARSEAFM_H +#define _MDVI_PARSEAFM_H 1 + +#include "sysdeps.h" + +#include <stdio.h> + +/* your basic constants */ +#define TRUE 1 +#define FALSE 0 +#define EOL '\n' /* end-of-line indicator */ +#define MAX_NAME 4096 /* max length for identifiers */ +#define BOOL int +#define FLAGS int + +/* Flags that can be AND'ed together to specify exactly what + * information from the AFM file should be saved. */ +#define P_G 0x01 /* 0000 0001 */ /* Global Font Info */ +#define P_W 0x02 /* 0000 0010 */ /* Character Widths ONLY */ +#define P_M 0x06 /* 0000 0110 */ /* All Char Metric Info */ +#define P_P 0x08 /* 0000 1000 */ /* Pair Kerning Info */ +#define P_T 0x10 /* 0001 0000 */ /* Track Kerning Info */ +#define P_C 0x20 /* 0010 0000 */ /* Composite Char Info */ + +/* Commonly used flags */ +#define P_GW (P_G | P_W) +#define P_GM (P_G | P_M) +#define P_GMP (P_G | P_M | P_P) +#define P_GMK (P_G | P_M | P_P | P_T) +#define P_ALL (P_G | P_M | P_P | P_T | P_C) + +/* Possible return codes from the parseFile procedure. + * + * ok means there were no problems parsing the file. + * + * parseError means that there was some kind of parsing error, but the + * parser went on. This could include problems like the count for any given + * section does not add up to how many entries there actually were, or + * there was a key that was not recognized. The return record may contain + * vaild data or it may not. + * + * earlyEOF means that an End of File was encountered before expected. This + * may mean that the AFM file had been truncated, or improperly formed. + * + * storageProblem means that there were problems allocating storage for + * the data structures that would have contained the AFM data. + */ +#define ok 0 +#define parseError -1 +#define earlyEOF -2 +#define storageProblem -3 + +/************************* TYPES *********************************/ +/* Below are all of the data structure definitions. These structures + * try to map as closely as possible to grouping and naming of data + * in the AFM Files. + */ + +/* Bounding box definition. Used for the Font BBox as well as the + * Character BBox. + */ +typedef struct +{ + int llx; /* lower left x-position */ + int lly; /* lower left y-position */ + int urx; /* upper right x-position */ + int ury; /* upper right y-position */ +} BBox; + +/* Global Font information. + * The key that each field is associated with is in comments. For an + * explanation about each key and its value please refer to the AFM + * documentation (full title & version given above). + */ +typedef struct +{ + char *afmVersion; /* key: StartFontMetrics */ + char *fontName; /* key: FontName */ + char *fullName; /* key: FullName */ + char *familyName; /* key: FamilyName */ + char *weight; /* key: Weight */ + float italicAngle; /* key: ItalicAngle */ + BOOL isFixedPitch; /* key: IsFixedPitch */ + BBox fontBBox; /* key: FontBBox */ + int underlinePosition; /* key: UnderlinePosition */ + int underlineThickness; /* key: UnderlineThickness */ + char *version; /* key: Version */ + char *notice; /* key: Notice */ + char *encodingScheme; /* key: EncodingScheme */ + int capHeight; /* key: CapHeight */ + int xHeight; /* key: XHeight */ + int ascender; /* key: Ascender */ + int descender; /* key: Descender */ +} GlobalFontInfo; + +/* Ligature definition is a linked list since any character can have + * any number of ligatures. + */ +typedef struct _t_ligature +{ + char *succ, *lig; + struct _t_ligature *next; +} Ligature; + +/* Character Metric Information. This structure is used only if ALL + * character metric information is requested. If only the character + * widths is requested, then only an array of the character x-widths + * is returned. + * + * The key that each field is associated with is in comments. For an + * explanation about each key and its value please refer to the + * Character Metrics section of the AFM documentation (full title + * & version given above). + */ +typedef struct +{ + int code, /* key: C */ + wx, /* key: WX */ + wy; /* together wx and wy are associated with key: W */ + char *name; /* key: N */ + BBox charBBox; /* key: B */ + Ligature *ligs; /* key: L (linked list; not a fixed number of Ls */ +} CharMetricInfo; + +/* Track kerning data structure. + * The fields of this record are the five values associated with every + * TrackKern entry. + * + * For an explanation about each value please refer to the + * Track Kerning section of the AFM documentation (full title + * & version given above). + */ +typedef struct +{ + int degree; + float minPtSize, + minKernAmt, + maxPtSize, + maxKernAmt; +} TrackKernData; + +/* Pair Kerning data structure. + * The fields of this record are the four values associated with every + * KP entry. For KPX entries, the yamt will be zero. + * + * For an explanation about each value please refer to the + * Pair Kerning section of the AFM documentation (full title + * & version given above). + */ +typedef struct +{ + char *name1; + char *name2; + int xamt, + yamt; +} PairKernData; + +/* PCC is a piece of a composite character. This is a sub structure of a + * compCharData described below. + * These fields will be filled in with the values from the key PCC. + * + * For an explanation about each key and its value please refer to the + * Composite Character section of the AFM documentation (full title + * & version given above). + */ +typedef struct +{ + char *pccName; + int deltax, + deltay; +} Pcc; + +/* Composite Character Information data structure. + * The fields ccName and numOfPieces are filled with the values associated + * with the key CC. The field pieces points to an array (size = numOfPieces) + * of information about each of the parts of the composite character. That + * array is filled in with the values from the key PCC. + * + * For an explanation about each key and its value please refer to the + * Composite Character section of the AFM documentation (full title + * & version given above). + */ +typedef struct +{ + char *ccName; + int numOfPieces; + Pcc *pieces; +} CompCharData; + +/* FontInfo + * Record type containing pointers to all of the other data + * structures containing information about a font. + * A a record of this type is filled with data by the + * parseFile function. + */ +typedef struct +{ + GlobalFontInfo *gfi; /* ptr to a GlobalFontInfo record */ + int *cwi; /* ptr to 256 element array of just char widths */ + int numOfChars; /* number of entries in char metrics array */ + CharMetricInfo *cmi; /* ptr to char metrics array */ + int numOfTracks; /* number to entries in track kerning array */ + TrackKernData *tkd; /* ptr to track kerning array */ + int numOfPairs; /* number to entries in pair kerning array */ + PairKernData *pkd; /* ptr to pair kerning array */ + int numOfComps; /* number to entries in comp char array */ + CompCharData *ccd; /* ptr to comp char array */ +} FontInfo; + +/************************* PROCEDURES ****************************/ + +/* Call this procedure to do the grunt work of parsing an AFM file. + * + * "fp" should be a valid file pointer to an AFM file. + * + * "fi" is a pointer to a pointer to a FontInfo record sturcture + * (defined above). Storage for the FontInfo structure will be + * allocated in parseFile and the structure will be filled in + * with the requested data from the AFM File. + * + * "flags" is a mask with bits set representing what data should + * be saved. Defined above are valid flags that can be used to set + * the mask, as well as a few commonly used masks. + * + * The possible return codes from parseFile are defined above. + */ + +extern int afm_parse_file __PROTO((FILE *, FontInfo **, FLAGS)); +extern void afm_free_fontinfo __PROTO((FontInfo *)); + +#endif /* _MDVI_PARSEAFM_H */ diff --git a/backend/dvi/mdvi-lib/bitmap.c b/backend/dvi/mdvi-lib/bitmap.c new file mode 100644 index 00000000..53f21207 --- /dev/null +++ b/backend/dvi/mdvi-lib/bitmap.c @@ -0,0 +1,1035 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* Bitmap manipulation routines */ + +#include <config.h> +#include <stdlib.h> + +#include "mdvi.h" +#include "color.h" + +/* bit_masks[n] contains a BmUnit with `n' contiguous bits */ + +static BmUnit bit_masks[] = { + 0x0, 0x1, 0x3, 0x7, + 0xf, 0x1f, 0x3f, 0x7f, + 0xff, +#if BITMAP_BYTES > 1 + 0x1ff, 0x3ff, 0x7ff, + 0xfff, 0x1fff, 0x3fff, 0x7fff, + 0xffff, +#if BITMAP_BYTES > 2 + 0x1ffff, 0x3ffff, 0x7ffff, + 0xfffff, 0x1fffff, 0x3fffff, 0x7fffff, + 0xffffff, 0x1ffffff, 0x3ffffff, 0x7ffffff, + 0xfffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff, + 0xffffffff +#endif /* BITMAP_BYTES > 2 */ +#endif /* BITMAP_BYTES > 1 */ +}; + +#ifndef NODEBUG +#define SHOW_OP_DATA (DEBUGGING(BITMAP_OPS) && DEBUGGING(BITMAP_DATA)) +#endif + +/* + * Some useful macros to manipulate bitmap data + * SEGMENT(m,n) = bit mask for a segment of `m' contiguous bits + * starting at column `n'. These macros assume that + * m + n <= BITMAP_BITS, 0 <= m, n. + */ +#ifdef WORD_BIG_ENDIAN +#define SEGMENT(m,n) (bit_masks[m] << (BITMAP_BITS - (m) - (n))) +#else +#define SEGMENT(m,n) (bit_masks[m] << (n)) +#endif + +/* sampling and shrinking routines shamelessly stolen from xdvi */ + +static int sample_count[] = { + 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 +}; + +/* bit_swap[j] = j with all bits inverted (i.e. msb -> lsb) */ +static Uchar bit_swap[] = { + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff +}; + + +/* + * next we have three bitmap functions to convert bitmaps in LSB bit order + * with 8, 16 and 32 bits per unit, to our internal format. The differences + * are minimal, but writing a generic function to handle all unit sizes is + * hopelessly slow. + */ + +BITMAP *bitmap_convert_lsb8(Uchar *bits, int w, int h, int stride) +{ + BITMAP *bm; + int i; + Uchar *unit; + register Uchar *curr; + Uchar *end; + int bytes; + + DEBUG((DBG_BITMAP_OPS, "convert LSB %dx%d@8 -> bitmap\n", w, h)); + + bm = bitmap_alloc_raw(w, h); + + /* this is the number of bytes in the original bitmap */ + bytes = ROUND(w, 8); + unit = (Uchar *)bm->data; + end = unit + bm->stride; + curr = bits; + /* we try to do this as fast as we can */ + for(i = 0; i < h; i++) { +#ifdef WORD_LITTLE_ENDIAN + memcpy(unit, curr, bytes); + curr += stride; +#else + int j; + + for(j = 0; j < bytes; curr++, j++) + unit[j] = bit_swap[*curr]; + cur += stride - bytes; +#endif + memzero(unit + bytes, bm->stride - bytes); + unit += bm->stride; + } + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); + return bm; +} + +BITMAP *bitmap_convert_msb8(Uchar *data, int w, int h, int stride) +{ + BITMAP *bm; + Uchar *unit; + Uchar *curr; + int i; + int bytes; + + bm = bitmap_alloc(w, h); + bytes = ROUND(w, 8); + unit = (Uchar *)bm->data; + curr = data; + for(i = 0; i < h; i++) { +#ifdef WORD_LITTLE_ENDIAN + int j; + + for(j = 0; j < bytes; curr++, j++) + unit[j] = bit_swap[*curr]; + curr += stride - bytes; +#else + memcpy(unit, curr, bytes); + curr += stride; +#endif + memzero(unit + bytes, bm->stride - bytes); + unit += bm->stride; + } + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); + return bm; +} + + +BITMAP *bitmap_copy(BITMAP *bm) +{ + BITMAP *nb = bitmap_alloc(bm->width, bm->height); + + DEBUG((DBG_BITMAP_OPS, "copy %dx%d\n", bm->width, bm->height)); + memcpy(nb->data, bm->data, bm->height * bm->stride); + return nb; +} + +BITMAP *bitmap_alloc(int w, int h) +{ + BITMAP *bm; + + bm = xalloc(BITMAP); + bm->width = w; + bm->height = h; + bm->stride = BM_BYTES_PER_LINE(bm); + if(h && bm->stride) + bm->data = (BmUnit *)mdvi_calloc(h, bm->stride); + else + bm->data = NULL; + + return bm; +} + +BITMAP *bitmap_alloc_raw(int w, int h) +{ + BITMAP *bm; + + bm = xalloc(BITMAP); + bm->width = w; + bm->height = h; + bm->stride = BM_BYTES_PER_LINE(bm); + if(h && bm->stride) + bm->data = (BmUnit *)mdvi_malloc(h * bm->stride); + else + bm->data = NULL; + + return bm; +} + +void bitmap_destroy(BITMAP *bm) +{ + if(bm->data) + free(bm->data); + free(bm); +} + +void bitmap_print(FILE *out, BITMAP *bm) +{ + int i, j; + BmUnit *a, mask; + static const char labels[] = { + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' + }; + int sub; + + a = bm->data; + fprintf(out, " "); + if(bm->width > 10) { + putchar('0'); + sub = 0; + for(j = 2; j <= bm->width; j++) + if((j %10) == 0) { + if((j % 100) == 0) { + fprintf(out, "*"); + sub += 100; + } else + fprintf(out, "%d", (j - sub)/10); + } else + putc(' ', out); + fprintf(out, "\n "); + } + for(j = 0; j < bm->width; j++) + putc(labels[j % 10], out); + putchar('\n'); + for(i = 0; i < bm->height; i++) { + mask = FIRSTMASK; + a = (BmUnit *)((char *)bm->data + i * bm->stride); + fprintf(out, "%3d ", i+1); + for(j = 0; j < bm->width; j++) { + if(*a & mask) + putc('#', out); + else + putc('.', out); + if(mask == LASTMASK) { + a++; + mask = FIRSTMASK; + } else + NEXTMASK(mask); + } + putchar('\n'); + } +} + +void bitmap_set_col(BITMAP *bm, int row, int col, int count, int state) +{ + BmUnit *ptr; + BmUnit mask; + + ptr = __bm_unit_ptr(bm, col, row); + mask = FIRSTMASKAT(col); + + while(count-- > 0) { + if(state) + *ptr |= mask; + else + *ptr &= ~mask; + /* move to next row */ + ptr = bm_offset(ptr, bm->stride); + } +} + +/* + * to use this function you should first make sure that + * there is room for `count' bits in the scanline + * + * A general-purpose (but not very efficient) function to paint `n' pixels + * on a bitmap, starting at position (x, y) would be: + * + * bitmap_paint_bits(__bm_unit_ptr(bitmap, x, y), x % BITMAP_BITS, n) + * + */ +void bitmap_paint_bits(BmUnit *ptr, int n, int count) +{ + /* paint the head */ + if(n + count > BITMAP_BITS) { + *ptr |= SEGMENT(BITMAP_BITS - n, n); + count -= BITMAP_BITS - n; + ptr++; + } else { + *ptr |= SEGMENT(count, n); + return; + } + + /* paint the middle */ + for(; count >= BITMAP_BITS; count -= BITMAP_BITS) + *ptr++ = bit_masks[BITMAP_BITS]; + + /* paint the tail */ + if(count > 0) + *ptr |= SEGMENT(count, 0); +} + +/* + * same as paint_bits but clears pixels instead of painting them. Written + * as a separate function for efficiency reasons. + */ +void bitmap_clear_bits(BmUnit *ptr, int n, int count) +{ + if(n + count > BITMAP_BITS) { + *ptr &= ~SEGMENT(BITMAP_BITS - n, n); + count -= BITMAP_BITS; + ptr++; + } else { + *ptr &= ~SEGMENT(count, n); + return; + } + + for(; count >= BITMAP_BITS; count -= BITMAP_BITS) + *ptr++ = 0; + + if(count > 0) + *ptr &= ~SEGMENT(count, 0); +} + +/* the general function to paint rows. Still used by the PK reader, but that + * will change soon (The GF reader already uses bitmap_paint_bits()). + */ +void bitmap_set_row(BITMAP *bm, int row, int col, int count, int state) +{ + BmUnit *ptr; + + ptr = __bm_unit_ptr(bm, col, row); + if(state) + bitmap_paint_bits(ptr, col & (BITMAP_BITS-1), count); + else + bitmap_clear_bits(ptr, col & (BITMAP_BITS-1), count); +} + +/* + * Now several `flipping' operations + */ + +void bitmap_flip_horizontally(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->width; + nb.height = bm->height; + nb.stride = bm->stride; + nb.data = mdvi_calloc(bm->height, bm->stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, nb.width-1, 0); + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fline = fptr; + tline = tptr; + fmask = FIRSTMASK; + tmask = FIRSTMASKAT(nb.width-1); + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + if(tmask == FIRSTMASK) { + tmask = LASTMASK; + tline--; + } else + PREVMASK(tmask); + } + fptr = bm_offset(fptr, bm->stride); + tptr = bm_offset(tptr, bm->stride); + } + DEBUG((DBG_BITMAP_OPS, "flip_horizontally (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_flip_vertically(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask; + int w, h; + + nb.width = bm->width; + nb.height = bm->height; + nb.stride = bm->stride; + nb.data = mdvi_calloc(bm->height, bm->stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, 0, nb.height-1); + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fline = fptr; + tline = tptr; + fmask = FIRSTMASK; + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= fmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + tline++; + } else + NEXTMASK(fmask); + } + fptr = bm_offset(fptr, bm->stride); + tptr = (BmUnit *)((char *)tptr - bm->stride); + } + DEBUG((DBG_BITMAP_OPS, "flip_vertically (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_flip_diagonally(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->width; + nb.height = bm->height; + nb.stride = bm->stride; + nb.data = mdvi_calloc(bm->height, bm->stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, nb.width-1, nb.height-1); + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fline = fptr; + tline = tptr; + fmask = FIRSTMASK; + tmask = FIRSTMASKAT(nb.width-1); + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + if(tmask == FIRSTMASK) { + tmask = LASTMASK; + tline--; + } else + PREVMASK(tmask); + } + fptr = bm_offset(fptr, bm->stride); + tptr = bm_offset(tptr, -nb.stride); + } + DEBUG((DBG_BITMAP_OPS, "flip_diagonally (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_rotate_clockwise(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->height; + nb.height = bm->width; + nb.stride = BM_BYTES_PER_LINE(&nb); + nb.data = mdvi_calloc(nb.height, nb.stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, nb.width - 1, 0); + + tmask = FIRSTMASKAT(nb.width-1); + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fmask = FIRSTMASK; + fline = fptr; + tline = tptr; + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + /* go to next row */ + tline = bm_offset(tline, nb.stride); + } + fptr = bm_offset(fptr, bm->stride); + if(tmask == FIRSTMASK) { + tmask = LASTMASK; + tptr--; + } else + PREVMASK(tmask); + } + + DEBUG((DBG_BITMAP_OPS, "rotate_clockwise (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + bm->width = nb.width; + bm->height = nb.height; + bm->stride = nb.stride; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_rotate_counter_clockwise(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->height; + nb.height = bm->width; + nb.stride = BM_BYTES_PER_LINE(&nb); + nb.data = mdvi_calloc(nb.height, nb.stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, 0, nb.height - 1); + + tmask = FIRSTMASK; + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fmask = FIRSTMASK; + fline = fptr; + tline = tptr; + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + /* go to previous row */ + tline = bm_offset(tline, -nb.stride); + } + fptr = bm_offset(fptr, bm->stride); + if(tmask == LASTMASK) { + tmask = FIRSTMASK; + tptr++; + } else + NEXTMASK(tmask); + } + + DEBUG((DBG_BITMAP_OPS, "rotate_counter_clockwise (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + bm->width = nb.width; + bm->height = nb.height; + bm->stride = nb.stride; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_flip_rotate_clockwise(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->height; + nb.height = bm->width; + nb.stride = BM_BYTES_PER_LINE(&nb); + nb.data = mdvi_calloc(nb.height, nb.stride); + + fptr = bm->data; + tptr = __bm_unit_ptr(&nb, nb.width-1, nb.height-1); + + tmask = FIRSTMASKAT(nb.width-1); + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fmask = FIRSTMASK; + fline = fptr; + tline = tptr; + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + /* go to previous line */ + tline = bm_offset(tline, -nb.stride); + } + fptr = bm_offset(fptr, bm->stride); + if(tmask == FIRSTMASK) { + tmask = LASTMASK; + tptr--; + } else + PREVMASK(tmask); + } + DEBUG((DBG_BITMAP_OPS, "flip_rotate_clockwise (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + bm->width = nb.width; + bm->height = nb.height; + bm->stride = nb.stride; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +void bitmap_flip_rotate_counter_clockwise(BITMAP *bm) +{ + BITMAP nb; + BmUnit *fptr, *tptr; + BmUnit fmask, tmask; + int w, h; + + nb.width = bm->height; + nb.height = bm->width; + nb.stride = BM_BYTES_PER_LINE(&nb); + nb.data = mdvi_calloc(nb.height, nb.stride); + + fptr = bm->data; + tptr = nb.data; + tmask = FIRSTMASK; + + for(h = 0; h < bm->height; h++) { + BmUnit *fline, *tline; + + fmask = FIRSTMASK; + fline = fptr; + tline = tptr; + for(w = 0; w < bm->width; w++) { + if(*fline & fmask) + *tline |= tmask; + if(fmask == LASTMASK) { + fmask = FIRSTMASK; + fline++; + } else + NEXTMASK(fmask); + /* go to next line */ + tline = bm_offset(tline, nb.stride); + } + fptr = bm_offset(fptr, bm->stride); + if(tmask == LASTMASK) { + tmask = FIRSTMASK; + tptr++; + } else + NEXTMASK(tmask); + } + + DEBUG((DBG_BITMAP_OPS, "flip_rotate_counter_clockwise (%d,%d) -> (%d,%d)\n", + bm->width, bm->height, nb.width, nb.height)); + mdvi_free(bm->data); + bm->data = nb.data; + bm->width = nb.width; + bm->height = nb.height; + bm->stride = nb.stride; + if(SHOW_OP_DATA) + bitmap_print(stderr, bm); +} + +#if 0 +void bitmap_transform(BITMAP *map, DviOrientation orient) +{ + switch(orient) { + case MDVI_ORIENT_TBLR: + break; + case MDVI_ORIENT_TBRL: + bitmap_flip_horizontally(map); + break; + case MDVI_ORIENT_BTLR: + bitmap_flip_vertically(map); + break; + case MDVI_ORIENT_BTRL: + bitmap_flip_diagonally(map); + break; + case MDVI_ORIENT_RP90: + bitmap_rotate_counter_clockwise(map); + break; + case MDVI_ORIENT_RM90: + bitmap_rotate_clockwise(map); + break; + case MDVI_ORIENT_IRP90: + bitmap_flip_rotate_counter_clockwise(map); + break; + case MDVI_ORIENT_IRM90: + bitmap_flip_rotate_clockwise(map); + break; + } +} +#endif + +/* + * Count the number of non-zero bits in a box of dimensions w x h, starting + * at column `step' in row `data'. + * + * Shamelessly stolen from xdvi. + */ +static int do_sample(BmUnit *data, int stride, int step, int w, int h) +{ + BmUnit *ptr, *end, *cp; + int shift, n; + int bits_left; + int wid; + + ptr = data + step / BITMAP_BITS; + end = bm_offset(data, h * stride); + shift = FIRSTSHIFTAT(step); + bits_left = w; + n = 0; + while(bits_left) { +#ifndef WORD_BIG_ENDIAN + wid = BITMAP_BITS - shift; +#else + wid = shift; +#endif + if(wid > bits_left) + wid = bits_left; + if(wid > 8) + wid = 8; +#ifdef WORD_BIG_ENDIAN + shift -= wid; +#endif + for(cp = ptr; cp < end; cp = bm_offset(cp, stride)) + n += sample_count[(*cp >> shift) & bit_masks[wid]]; +#ifndef WORD_BIG_ENDIAN + shift += wid; +#endif +#ifdef WORD_BIG_ENDIAN + if(shift == 0) { + shift = BITMAP_BITS; + ptr++; + } +#else + if(shift == BITMAP_BITS) { + shift = 0; + ptr++; + } +#endif + bits_left -= wid; + } + return n; +} + +void mdvi_shrink_box(DviContext *dvi, DviFont *font, + DviFontChar *pk, DviGlyph *dest) +{ + int x, y, z; + DviGlyph *glyph; + int hs, vs; + + hs = dvi->params.hshrink; + vs = dvi->params.vshrink; + glyph = &pk->glyph; + + x = (int)glyph->x / hs; + if((int)glyph->x - x * hs > 0) + x++; + dest->w = x + ROUND((int)glyph->w - glyph->x, hs); + + z = (int)glyph->y + 1; + y = z / vs; + if(z - y * vs <= 0) + y--; + dest->h = y + ROUND((int)glyph->h - z, vs) + 1; + dest->x = x; + dest->y = glyph->y / vs; + dest->data = MDVI_GLYPH_EMPTY; + DEBUG((DBG_BITMAPS, "shrink_box: (%dw,%dh,%dx,%dy) -> (%dw,%dh,%dx,%dy)\n", + glyph->w, glyph->h, glyph->x, glyph->y, + dest->w, dest->h, dest->x, dest->y)); +} + +void mdvi_shrink_glyph(DviContext *dvi, DviFont *font, + DviFontChar *pk, DviGlyph *dest) +{ + int rows_left, rows, init_cols; + int cols_left, cols; + BmUnit *old_ptr, *new_ptr; + BITMAP *oldmap, *newmap; + BmUnit m, *cp; + DviGlyph *glyph; + int sample, min_sample; + int old_stride; + int new_stride; + int x, y; + int w, h; + int hs, vs; + + hs = dvi->params.hshrink; + vs = dvi->params.vshrink; + + min_sample = vs * hs * dvi->params.density / 100; + + glyph = &pk->glyph; + oldmap = (BITMAP *)glyph->data; + + x = (int)glyph->x / hs; + init_cols = (int)glyph->x - x * hs; + if(init_cols <= 0) + init_cols += hs; + else + x++; + w = x + ROUND((int)glyph->w - glyph->x, hs); + + cols = (int)glyph->y + 1; + y = cols / vs; + rows = cols - y * vs; + if(rows <= 0) { + rows += vs; + y--; + } + h = y + ROUND((int)glyph->h - cols, vs) + 1; + + /* create the new glyph */ + newmap = bitmap_alloc(w, h); + dest->data = newmap; + dest->x = x; + dest->y = glyph->y / vs; + dest->w = w; + dest->h = h; + + old_ptr = oldmap->data; + old_stride = oldmap->stride; + new_ptr = newmap->data; + new_stride = newmap->stride; + rows_left = glyph->h; + + while(rows_left) { + if(rows > rows_left) + rows = rows_left; + cols_left = glyph->w; + m = FIRSTMASK; + cp = new_ptr; + cols = init_cols; + while(cols_left > 0) { + if(cols > cols_left) + cols = cols_left; + sample = do_sample(old_ptr, old_stride, + glyph->w - cols_left, cols, rows); + if(sample >= min_sample) + *cp |= m; + if(m == LASTMASK) { + m = FIRSTMASK; + cp++; + } else + NEXTMASK(m); + cols_left -= cols; + cols = hs; + } + new_ptr = bm_offset(new_ptr, new_stride); + old_ptr = bm_offset(old_ptr, rows * old_stride); + rows_left -= rows; + rows = vs; + } + DEBUG((DBG_BITMAPS, "shrink_glyph: (%dw,%dh,%dx,%dy) -> (%dw,%dh,%dx,%dy)\n", + glyph->w, glyph->h, glyph->x, glyph->y, + dest->w, dest->h, dest->x, dest->y)); + if(DEBUGGING(BITMAP_DATA)) + bitmap_print(stderr, newmap); +} + +void mdvi_shrink_glyph_grey(DviContext *dvi, DviFont *font, + DviFontChar *pk, DviGlyph *dest) +{ + int rows_left, rows; + int cols_left, cols, init_cols; + long sampleval, samplemax; + BmUnit *old_ptr; + void *image; + int w, h; + int x, y; + DviGlyph *glyph; + BITMAP *map; + Ulong *pixels; + int npixels; + Ulong colortab[2]; + int hs, vs; + DviDevice *dev; + + hs = dvi->params.hshrink; + vs = dvi->params.vshrink; + dev = &dvi->device; + + glyph = &pk->glyph; + map = (BITMAP *)glyph->data; + + x = (int)glyph->x / hs; + init_cols = (int)glyph->x - x * hs; + if(init_cols <= 0) + init_cols += hs; + else + x++; + w = x + ROUND((int)glyph->w - glyph->x, hs); + + cols = (int)glyph->y + 1; + y = cols / vs; + rows = cols - y * vs; + if(rows <= 0) { + rows += vs; + y--; + } + h = y + ROUND((int)glyph->h - cols, vs) + 1; + ASSERT(w && h); + + /* before touching anything, do this */ + image = dev->create_image(dev->device_data, w, h, BITMAP_BITS); + if(image == NULL) { + mdvi_shrink_glyph(dvi, font, pk, dest); + return; + } + + /* save these colors */ + pk->fg = MDVI_CURRFG(dvi); + pk->bg = MDVI_CURRBG(dvi); + + samplemax = vs * hs; + npixels = samplemax + 1; + pixels = get_color_table(&dvi->device, npixels, pk->fg, pk->bg, + dvi->params.gamma, dvi->params.density); + if(pixels == NULL) { + npixels = 2; + colortab[0] = pk->fg; + colortab[1] = pk->bg; + pixels = &colortab[0]; + } + + /* setup the new glyph */ + dest->data = image; + dest->x = x; + dest->y = glyph->y / vs; + dest->w = w; + dest->h = h; + + y = 0; + old_ptr = map->data; + rows_left = glyph->h; + + while(rows_left && y < h) { + x = 0; + if(rows > rows_left) + rows = rows_left; + cols_left = glyph->w; + cols = init_cols; + while(cols_left && x < w) { + if(cols > cols_left) + cols = cols_left; + sampleval = do_sample(old_ptr, map->stride, + glyph->w - cols_left, cols, rows); + /* scale the sample value by the number of grey levels */ + if(npixels - 1 != samplemax) + sampleval = ((npixels-1) * sampleval) / samplemax; + ASSERT(sampleval < npixels); + dev->put_pixel(image, x, y, pixels[sampleval]); + cols_left -= cols; + cols = hs; + x++; + } + for(; x < w; x++) + dev->put_pixel(image, x, y, pixels[0]); + old_ptr = bm_offset(old_ptr, rows * map->stride); + rows_left -= rows; + rows = vs; + y++; + } + + for(; y < h; y++) { + for(x = 0; x < w; x++) + dev->put_pixel(image, x, y, pixels[0]); + } + DEBUG((DBG_BITMAPS, "shrink_glyph_grey: (%dw,%dh,%dx,%dy) -> (%dw,%dh,%dx,%dy)\n", + glyph->w, glyph->h, glyph->x, glyph->y, + dest->w, dest->h, dest->x, dest->y)); +} + diff --git a/backend/dvi/mdvi-lib/bitmap.h b/backend/dvi/mdvi-lib/bitmap.h new file mode 100644 index 00000000..4d98fecd --- /dev/null +++ b/backend/dvi/mdvi-lib/bitmap.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _BITMAP_H +#define _BITMAP_H 1 + +#include "sysdeps.h" + +/* Structures and functions to manipulate bitmaps */ + +/* bitmap unit (as in X's docs) */ +typedef Uint32 BmUnit; + +/* size (in bytes) of a bitmap atom */ +#define BITMAP_BYTES 4 + +/* size (in bits) of a bitmap atom */ +#define BITMAP_BITS (BITMAP_BYTES << 3) + +typedef struct { + int width; + int height; + int stride; + BmUnit *data; +} BITMAP; + +#define BM_BYTES_PER_LINE(b) \ + (ROUND((b)->width, BITMAP_BITS) * BITMAP_BYTES) +#define BM_WIDTH(b) (((BITMAP *)(b))->width) +#define BM_HEIGHT(b) (((BITMAP *)(b))->height) + +#define BMBIT(n) ((BmUnit)1 << (n)) + +/* Macros to manipulate individual pixels in a bitmap + * (they are slow, don't use them) + */ + +#define bm_offset(b,o) (BmUnit *)((Uchar *)(b) + (o)) + +#define __bm_unit_ptr(b,x,y) \ + bm_offset((b)->data, (y) * (b)->stride + \ + ((x) / BITMAP_BITS) * BITMAP_BYTES) + +#define __bm_unit(b,x,y) __bm_unit_ptr((b), (x), (y))[0] + +#define BM_GETPIXEL(b,x,y) __bm_unit((b), (x), (y)) +#define BM_SETPIXEL(b,x,y) (__bm_unit((b), (x), (y)) |= FIRSTMASKAT(x)) +#define BM_CLRPIXEL(b,x,y) (__bm_unit((b), (x), (y)) &= ~FIRSTMASKAT(x)) + +/* + * These macros are used to access pixels in a bitmap. They are supposed + * to be used like this: + */ +#if 0 + BmUnit *row, mask; + + mask = FIRSTMASK; + + /* position `unit' at coordinates (column_number, row_number) */ + unit = (BmUnit *)((char *)bitmap->data + row_number * bitmap->stride + + (column_number / BITMAP_BITS); + /* loop over all pixels IN THE SAME ROW */ + for(i = 0; i < number_of_pixels; i++) { + /* to test if a pixel is set */ + if(*unit & mask) { + /* yes, it is, do something with it */ + } + /* to set/clear a pixel */ + if(painting) + *unit |= mask; /* now you see it */ + else + *unit &= ~mask; /* now you don't */ + /* move to next pixel */ + if(mask == LASTMASK) { + unit++; + UPDATEMASK(mask); + } + } +/* end of sample code */ +#endif + +/* bitmaps are stored in native byte order */ +#ifdef WORD_BIG_ENDIAN +#define FIRSTSHIFT (BITMAP_BITS - 1) +#define LASTSHIFT 0 +#define NEXTMASK(m) ((m) >>= 1) +#define PREVMASK(m) ((m) <<= 1) +#define FIRSTSHIFTAT(c) (BITMAP_BITS - ((c) % BITMAP_BITS) - 1) +#else +#define FIRSTSHIFT 0 +#define LASTSHIFT (BITMAP_BITS - 1) +#define NEXTMASK(m) ((m) <<= 1) +#define PREVMASK(m) ((m) >>= 1) +#define FIRSTSHIFTAT(c) ((c) % BITMAP_BITS) +#endif + +#define FIRSTMASK BMBIT(FIRSTSHIFT) +#define FIRSTMASKAT(c) BMBIT(FIRSTSHIFTAT(c)) +#define LASTMASK BMBIT(LASTSHIFT) + +extern BITMAP *bitmap_alloc __PROTO((int, int)); +extern BITMAP *bitmap_alloc_raw __PROTO((int, int)); +extern void bitmap_destroy __PROTO((BITMAP *)); + +/* + * set_row(bm, row, col, count, state): + * sets `count' pixels to state `onoff', starting from pixel + * at position (col, row). All pixels must lie in the same + * row. + */ +extern void bitmap_set_col __PROTO((BITMAP *, int, int, int, int)); +extern void bitmap_set_row __PROTO((BITMAP *, int, int, int, int)); + +extern void bitmap_paint_bits __PROTO((BmUnit *, int, int)); +extern void bitmap_clear_bits __PROTO((BmUnit *, int, int)); + +extern BITMAP *bitmap_copy __PROTO((BITMAP *)); +extern void bitmap_flip_horizontally __PROTO((BITMAP *)); +extern void bitmap_flip_vertically __PROTO((BITMAP *)); +extern void bitmap_flip_diagonally __PROTO((BITMAP *)); +extern void bitmap_rotate_clockwise __PROTO((BITMAP *)); +extern void bitmap_rotate_counter_clockwise __PROTO((BITMAP *)); +extern void bitmap_flip_rotate_clockwise __PROTO((BITMAP *)); +extern void bitmap_flip_rotate_counter_clockwise __PROTO((BITMAP *)); +extern BITMAP *bitmap_convert_lsb8 __PROTO((Uchar *, int, int, int)); +extern BITMAP *bitmap_convert_msb8 __PROTO((Uchar *, int, int, int)); + +#include <stdio.h> +extern void bitmap_print __PROTO((FILE *, BITMAP *)); + +#endif /* _BITMAP_H */ diff --git a/backend/dvi/mdvi-lib/color.c b/backend/dvi/mdvi-lib/color.c new file mode 100644 index 00000000..c28107fd --- /dev/null +++ b/backend/dvi/mdvi-lib/color.c @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "mdvi.h" +#include "color.h" + +void mdvi_set_color(DviContext *dvi, Ulong fg, Ulong bg) +{ + if(dvi->curr_fg != fg || dvi->curr_bg != bg) { + DEBUG((DBG_DEVICE, "setting color to (%lu,%lu)\n", fg, bg)); + if(dvi->device.set_color) + dvi->device.set_color(dvi->device.device_data, fg, bg); + dvi->curr_fg = fg; + dvi->curr_bg = bg; + } +} + +void mdvi_push_color(DviContext *dvi, Ulong fg, Ulong bg) +{ + if(dvi->color_top == dvi->color_size) { + dvi->color_size += 32; + dvi->color_stack = mdvi_realloc(dvi->color_stack, + dvi->color_size * sizeof(DviColorPair)); + } + dvi->color_stack[dvi->color_top].fg = dvi->curr_fg; + dvi->color_stack[dvi->color_top].bg = dvi->curr_bg; + dvi->color_top++; + mdvi_set_color(dvi, fg, bg); +} + +void mdvi_pop_color(DviContext *dvi) +{ + Ulong fg, bg; + + if(dvi->color_top == 0) + return; + dvi->color_top--; + fg = dvi->color_stack[dvi->color_top].fg; + bg = dvi->color_stack[dvi->color_top].bg; + mdvi_set_color(dvi, fg, bg); +} + +void mdvi_reset_color(DviContext *dvi) +{ + dvi->color_top = 0; + mdvi_set_color(dvi, dvi->params.fg, dvi->params.bg); +} + +/* cache for color tables, to avoid creating them for every glyph */ +typedef struct { + Ulong fg; + Ulong bg; + Uint nlevels; + Ulong *pixels; + int density; + double gamma; + Uint hits; +} ColorCache; + +#define CCSIZE 256 +static ColorCache color_cache[CCSIZE]; +static int cc_entries; + +#define GAMMA_DIFF 0.005 + + +/* create a color table */ +Ulong *get_color_table(DviDevice *dev, + int nlevels, Ulong fg, Ulong bg, double gamma, int density) +{ + ColorCache *cc, *tofree; + int lohits; + Ulong *pixels; + int status; + + lohits = color_cache[0].hits; + tofree = &color_cache[0]; + /* look in the cache and see if we have one that matches this request */ + for(cc = &color_cache[0]; cc < &color_cache[cc_entries]; cc++) { + if(cc->hits < lohits) { + lohits = cc->hits; + tofree = cc; + } + if(cc->fg == fg && cc->bg == bg && cc->density == density && + cc->nlevels == nlevels && fabs(cc->gamma - gamma) <= GAMMA_DIFF) + break; + } + + if(cc < &color_cache[cc_entries]) { + cc->hits++; + return cc->pixels; + } + + DEBUG((DBG_DEVICE, "Adding color table to cache (fg=%lu, bg=%lu, n=%d)\n", + fg, bg, nlevels)); + + /* no entry was found in the cache, create a new one */ + if(cc_entries < CCSIZE) { + cc = &color_cache[cc_entries++]; + cc->pixels = NULL; + } else { + cc = tofree; + mdvi_free(cc->pixels); + } + pixels = xnalloc(Ulong, nlevels); + status = dev->alloc_colors(dev->device_data, + pixels, nlevels, fg, bg, gamma, density); + if(status < 0) { + mdvi_free(pixels); + return NULL; + } + cc->fg = fg; + cc->bg = bg; + cc->gamma = gamma; + cc->density = density; + cc->nlevels = nlevels; + cc->pixels = pixels; + cc->hits = 1; + return pixels; +} diff --git a/backend/dvi/mdvi-lib/color.h b/backend/dvi/mdvi-lib/color.h new file mode 100644 index 00000000..35b2f923 --- /dev/null +++ b/backend/dvi/mdvi-lib/color.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef _COLOR_H_ +#define _COLOR_H_ + +#include "common.h" + +extern Ulong *get_color_table(DviDevice *dev, + int nlevels, Ulong fg, Ulong bg, double gamma, int density); + +extern void mdvi_set_color __PROTO((DviContext *, Ulong, Ulong)); +extern void mdvi_push_color __PROTO((DviContext *, Ulong, Ulong)); +extern void mdvi_pop_color __PROTO((DviContext *)); +extern void mdvi_reset_color __PROTO((DviContext *)); + +#endif /* _COLOR_H_ */ + diff --git a/backend/dvi/mdvi-lib/common.c b/backend/dvi/mdvi-lib/common.c new file mode 100644 index 00000000..97b34b56 --- /dev/null +++ b/backend/dvi/mdvi-lib/common.c @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdlib.h> +#include <string.h> + +#include "common.h" + +long fsgetn(FILE *p, size_t n) +{ + long v; + + v = fgetbyte(p); + if(v & 0x80) + v -= 0x100; + while(--n > 0) + v = (v << 8) | fgetbyte(p); + return v; +} + +Ulong fugetn(FILE *p, size_t n) +{ + Ulong v; + + v = fgetbyte(p); + while(--n > 0) + v = (v << 8) | fgetbyte(p); + return v; +} + +long msgetn(const Uchar *p, size_t n) +{ + long v = (long)*p++; + + if(v & 0x80) + v -= 0x100; + while(--n > 0) + v = (v << 8) | *p++; + return v; +} + +Ulong mugetn(const Uchar *p, size_t n) +{ + Ulong v = (Ulong)*p++; + + while(--n > 0) + v = (v << 8) | *p++; + return v; +} + +char *read_string(FILE *in, int s, char *buffer, size_t len) +{ + int n; + char *str; + + n = fugetn(in, s ? s : 1); + if((str = buffer) == NULL || n + 1 > len) + str = mdvi_malloc(n + 1); + if(fread(str, 1, n, in) != n) { + if(str != buffer) mdvi_free(str); + return NULL; + } + str[n] = 0; + return str; +} + +size_t read_bcpl(FILE *in, char *buffer, size_t maxlen, size_t wanted) +{ + size_t i; + + i = (int)fuget1(in); + if(maxlen && i > maxlen) + i = maxlen; + if(fread(buffer, i, 1, in) != 1) + return -1; + buffer[i] = '\0'; + while(wanted-- > i) + (void)fgetc(in); + return i; +} + +char *read_alloc_bcpl(FILE *in, size_t maxlen, size_t *size) +{ + size_t i; + char *buffer; + + i = (size_t)fuget1(in); + if(maxlen && i > maxlen) + i = maxlen; + buffer = (char *)malloc(i + 1); + if(buffer == NULL) + return NULL; + if(fread(buffer, i, 1, in) != 1) { + free(buffer); + return NULL; + } + buffer[i] = '\0'; + if(size) *size = i; + return buffer; +} + +/* buffers */ + +void buff_free(Buffer *buf) +{ + if(buf->data) + mdvi_free(buf->data); + buff_init(buf); +} + +void buff_init(Buffer *buf) +{ + buf->data = NULL; + buf->size = 0; + buf->length = 0; +} + +size_t buff_add(Buffer *buf, const char *data, size_t len) +{ + if(!len && data) + len = strlen(data); + if(buf->length + len + 1 > buf->size) { + buf->size = buf->length + len + 256; + buf->data = mdvi_realloc(buf->data, buf->size); + } + memcpy(buf->data + buf->length, data, len); + buf->length += len; + return buf->length; +} + +char *buff_gets(Buffer *buf, size_t *length) +{ + char *ptr; + char *ret; + size_t len; + + ptr = strchr(buf->data, '\n'); + if(ptr == NULL) + return NULL; + ptr++; /* include newline */ + len = ptr - buf->data; + ret = mdvi_malloc(len + 1); + if(len > 0) { + memcpy(ret, buf->data, len); + memmove(buf->data, buf->data + len, buf->length - len); + buf->length -= len; + } + ret[len] = 0; + if(length) *length = len; + return ret; +} + diff --git a/backend/dvi/mdvi-lib/common.h b/backend/dvi/mdvi-lib/common.h new file mode 100644 index 00000000..27a7d8f9 --- /dev/null +++ b/backend/dvi/mdvi-lib/common.h @@ -0,0 +1,285 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _MDVI_COMMON_H +#define _MDVI_COMMON_H 1 + +#include <stdio.h> +#include <sys/types.h> +#include <math.h> + +#include "sysdeps.h" + +#if STDC_HEADERS +# include <string.h> +#endif + +#if !defined(STDC_HEADERS) || defined(__STRICT_ANSI__) +# ifndef HAVE_STRCHR +# define strchr index +# define strrchr rindex +# endif +# ifndef HAVE_MEMCPY +# define memcpy(a,b,n) bcopy((b), (a), (n)) +# define memmove(a,b,n) bcopy((b), (a), (n)) +# endif +#endif + +#if defined(STDC_HEADERS) || defined(HAVE_MEMCPY) +#define memzero(a,n) memset((a), 0, (n)) +#else +#define memzero(a,n) bzero((a), (n)) +#endif + +typedef struct _List { + struct _List *next; + struct _List *prev; +} List; +#define LIST(x) ((List *)(x)) + +typedef struct { + char *data; + size_t size; + size_t length; +} Buffer; + +typedef struct { + List *head; + List *tail; + int count; +} ListHead; +#define MDVI_EMPTY_LIST_HEAD {NULL, NULL, 0} + +typedef struct { + char *data; + size_t size; + size_t length; +} Dstring; + +/* Functions to read numbers from streams and memory */ + +#define fgetbyte(p) ((unsigned)getc(p)) + +extern char *program_name; + +extern Ulong fugetn __PROTO((FILE *, size_t)); +extern long fsgetn __PROTO((FILE *, size_t)); +extern Ulong mugetn __PROTO((const Uchar *, size_t)); +extern long msgetn __PROTO((const Uchar *, size_t)); + +/* To read from a stream (fu: unsigned, fs: signed) */ +#define fuget4(p) fugetn((p), 4) +#define fuget3(p) fugetn((p), 3) +#define fuget2(p) fugetn((p), 2) +#define fuget1(p) fgetbyte(p) +#define fsget4(p) fsgetn((p), 4) +#define fsget3(p) fsgetn((p), 3) +#define fsget2(p) fsgetn((p), 2) +#define fsget1(p) fsgetn((p), 1) + +/* To read from memory (mu: unsigned, ms: signed) */ +#define MUGETN(p,n) ((p) += (n), mugetn((p)-(n), (n))) +#define MSGETN(p,n) ((p) += (n), msgetn((p)-(n), (n))) +#define muget4(p) MUGETN((p), 4) +#define muget3(p) MUGETN((p), 3) +#define muget2(p) MUGETN((p), 2) +#define muget1(p) MUGETN((p), 1) +#define msget4(p) MSGETN((p), 4) +#define msget3(p) MSGETN((p), 3) +#define msget2(p) MSGETN((p), 2) +#define msget1(p) MSGETN((p), 1) + +#define ROUND(x,y) (((x) + (y) - 1) / (y)) +#define FROUND(x) (int)((x) + 0.5) +#define SFROUND(x) (int)((x) >= 0 ? floor((x) + 0.5) : ceil((x) + 0.5)) + +#define Max(a,b) (((a) > (b)) ? (a) : (b)) +#define Min(a,b) (((a) < (b)) ? (a) : (b)) + +/* make 2byte number from 2 8bit quantities */ +#define HALFWORD(a,b) ((((a) << 8) & 0xf) | (b)) +#define FULLWORD(a,b,c,d) \ + ((((Int8)(a) << 24) & 0xff000000) | \ + (((Uint8)(b) << 16) & 0x00ff0000) | \ + (((Uint8)(c) << 8) & 0x0000ff00) | \ + ((Uint8)(d) & 0xff)) + +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +#define SWAPINT(a,b) \ + ({ int _s = a; a = b; b = _s; }) +#else +#define SWAPINT(a,b) do { int _s = a; a = b; b = _s; } while(0) +#endif + +#define STREQ(a,b) (strcmp((a), (b)) == 0) +#define STRNEQ(a,b,n) (strncmp((a), (b), (n)) == 0) +#define STRCEQ(a,b) (strcasecmp((a), (b)) == 0) +#define STRNCEQ(a,b,n) (strncasecmp((a), (b), (n)) == 0) + +extern char *read_string __PROTO((FILE *, int, char *, size_t)); +extern size_t read_bcpl __PROTO((FILE *, char *, size_t, size_t)); +extern char *read_alloc_bcpl __PROTO((FILE *, size_t, size_t *)); + +/* miscellaneous */ + +extern void mdvi_message __PROTO((const char *, ...)); +extern void mdvi_crash __PROTO((const char *, ...)); +extern void mdvi_fatal __PROTO((const char *, ...)); +extern void mdvi_error __PROTO((const char *, ...)); +extern void mdvi_warning __PROTO((const char *, ...)); +extern int unit2pix __PROTO((int, const char *)); +extern double unit2pix_factor __PROTO((const char *)); + +#define LOG_NONE -1 +#define LOG_INFO 0 +#define LOG_WARN 1 +#define LOG_ERROR 2 +#define LOG_DEBUG 3 + +#define DBG_OPCODE (1 << 0) +#define DBG_FONTS (1 << 1) +#define DBG_FILES (1 << 2) +#define DBG_DVI (1 << 3) +#define DBG_PARAMS (1 << 4) +#define DBG_SPECIAL (1 << 5) +#define DBG_DEVICE (1 << 6) +#define DBG_GLYPHS (1 << 7) +#define DBG_BITMAPS (1 << 8) +#define DBG_PATHS (1 << 9) +#define DBG_SEARCH (1 << 10) +#define DBG_VARS (1 << 11) +#define DBG_BITMAP_OPS (1 << 12) +#define DBG_BITMAP_DATA (1 << 13) +#define DBG_TYPE1 (1 << 14) +#define DBG_TT (1 << 15) +#define DBG_FT2 (1 << 16) +#define DBG_FMAP (1 << 17) + +#define DBG_SILENT (1 << 31) + +#ifdef NODEBUG +#define DEBUGGING(x) 0 +#else +#define DEBUGGING(x) (_mdvi_debug_mask & DBG_##x) +#endif + +#ifndef NODEBUG +extern Uint32 _mdvi_debug_mask; +extern void __debug __PROTO((int, const char *, ...)); +#define DEBUG(x) __debug x +#define ASSERT(x) do { \ + if(!(x)) mdvi_crash("%s:%d: Assertion %s failed\n", \ + __FILE__, __LINE__, #x); \ + } while(0) +#define ASSERT_VALUE(x,y) do { \ + if((x) != (y)) \ + mdvi_crash("%s:%d: Assertion failed (%d = %s != %s)\n", \ + __FILE__, __LINE__, (x), #x, #x); \ + } while(0) +#else +#define DEBUG(x) do { } while(0) +#define ASSERT(x) do { } while(0) +#define ASSERT_VALUE(x,y) do { } while(0) +#endif + +#define set_debug_mask(m) (_mdvi_debug_mask = (Uint32)(m)) +#define add_debug_mask(m) (_mdvi_debug_mask |= (Uint32)(m)) +#define get_debug_mask() _mdvi_debug_mask + +/* memory allocation */ + +extern void mdvi_free __PROTO((void *)); +extern void *mdvi_malloc __PROTO((size_t)); +extern void *mdvi_realloc __PROTO((void *, size_t)); +extern void *mdvi_calloc __PROTO((size_t, size_t)); +extern char *mdvi_strncpy __PROTO((char *, const char *, size_t)); +extern char *mdvi_strdup __PROTO((const char *)); +extern char *mdvi_strndup __PROTO((const char *, size_t)); +extern void *mdvi_memdup __PROTO((const void *, size_t)); +extern char *mdvi_build_path_from_cwd __PROTO((const char *)); +extern char *mdvi_strrstr __PROTO((const char *, const char *)); + +/* macros to make memory allocation nicer */ +#define xalloc(t) (t *)mdvi_malloc(sizeof(t)) +#define xnalloc(t,n) (t *)mdvi_calloc((n), sizeof(t)) +#define xresize(p,t,n) (t *)mdvi_realloc((p), (n) * sizeof(t)) + +extern char *xstradd __PROTO((char *, size_t *, size_t, const char *, size_t)); + +extern Ulong get_mtime __PROTO((int)); + +/* lists */ +extern void listh_init __PROTO((ListHead *)); +extern void listh_prepend __PROTO((ListHead *, List *)); +extern void listh_append __PROTO((ListHead *, List *)); +extern void listh_add_before __PROTO((ListHead *, List *, List *)); +extern void listh_add_after __PROTO((ListHead *, List *, List *)); +extern void listh_remove __PROTO((ListHead *, List *)); +extern void listh_concat __PROTO((ListHead *, ListHead *)); +extern void listh_catcon __PROTO((ListHead *, ListHead *)); + +extern void buff_init __PROTO((Buffer *)); +extern size_t buff_add __PROTO((Buffer *, const char *, size_t)); +extern char *buff_gets __PROTO((Buffer *, size_t *)); +extern void buff_free __PROTO((Buffer *)); + +extern char *getword __PROTO((char *, const char *, char **)); +extern char *getstring __PROTO((char *, const char *, char **)); + +extern void dstring_init __PROTO((Dstring *)); +extern int dstring_new __PROTO((Dstring *, const char *, int)); +extern int dstring_append __PROTO((Dstring *, const char *, int)); +extern int dstring_copy __PROTO((Dstring *, int, const char *, int)); +extern int dstring_insert __PROTO((Dstring *, int, const char *, int)); +extern void dstring_reset __PROTO((Dstring *)); + +#define dstring_length(d) ((d)->length) +#define dstring_strcat(d,s) dstring_append((d), (s), -1) + +extern char *dgets __PROTO((Dstring *, FILE *)); +extern int file_readable __PROTO((const char *)); +extern int file_exists __PROTO((const char *)); +extern const char *file_basename __PROTO((const char *)); +extern const char *file_extension __PROTO((const char *)); + +/* + * Miscellaneous macros + */ + +#define LIST_FOREACH(ptr, type, list) \ + for(ptr = (type *)(list)->head; ptr; ptr = (ptr)->next) + +#define Size(x) (sizeof(x) / sizeof((x)[0])) + +/* multiply a fix_word by a 32bit number */ +#define B0(x) ((x) & 0xff) +#define B1(x) B0((x) >> 8) +#define B2(x) B0((x) >> 16) +#define B3(x) B0((x) >> 24) +#define __tfm_mul(z,t) \ + (((((B0(t) * (z)) >> 8) + (B1(t) * (z))) >> 8) + B2(t) * (z)) +#define TFMSCALE(z,t,a,b) \ + ((B3(t) == 255) ? \ + __tfm_mul((z), (t)) / (b) - (a) : \ + __tfm_mul((z), (t)) / (b)) +#define TFMPREPARE(x,z,a,b) do { \ + a = 16; z = (x); \ + while(z > 040000000L) { z >>= 1; a <<= 1; } \ + b = 256 / a; a *= z; \ + } while(0) + +#endif /* _MDVI_COMMON_H */ diff --git a/backend/dvi/mdvi-lib/defaults.h b/backend/dvi/mdvi-lib/defaults.h new file mode 100644 index 00000000..7e63f81e --- /dev/null +++ b/backend/dvi/mdvi-lib/defaults.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _MDVI_DEFAULTS_H +#define _MDVI_DEFAULTS_H 1 + +/* resolution */ +#define MDVI_DPI 600 +#define MDVI_VDPI MDVI_DPI + +/* horizontal margins */ +#define MDVI_HMARGIN "1in" + +/* vertical margins */ +#define MDVI_VMARGIN "1in" + +/* rulers */ +#define MDVI_HRUNITS "1in" +#define MDVI_VRUNITS "1in" + +/* paper */ +#define MDVI_PAPERNAME "letter" + +/* magnification */ +#define MDVI_MAGNIFICATION 1.0 + +/* fallback font */ +#define MDVI_FALLBACK_FONT "cmr10" + +/* metafont mode */ +#define MDVI_MFMODE NULL + +/* default shrinking factor */ +#define MDVI_DEFAULT_SHRINKING -1 /* based on resolution */ + +/* default pixel density */ +#define MDVI_DEFAULT_DENSITY 50 + +/* default gamma correction */ +#define MDVI_DEFAULT_GAMMA 1.0 + +/* default window geometry */ +#define MDVI_GEOMETRY NULL + +/* default orientation */ +#define MDVI_ORIENTATION "tblr" + +/* colors */ +#define MDVI_FOREGROUND "black" +#define MDVI_BACKGROUND "white" + +/* flags */ +#define MDVI_DEFAULT_FLAGS MDVI_ANTIALIASED + +#define MDVI_DEFAULT_CONFIG "mdvi.conf" + +#endif /* _MDVI_DEAFAULTS_H */ diff --git a/backend/dvi/mdvi-lib/dviopcodes.h b/backend/dvi/mdvi-lib/dviopcodes.h new file mode 100644 index 00000000..f99af05e --- /dev/null +++ b/backend/dvi/mdvi-lib/dviopcodes.h @@ -0,0 +1,72 @@ +#ifndef _MDVI_DVIOPCODES_H +#define _MDVI_DVIOPCODES_H 1 + +#define DVI_SET_CHAR0 0 +#define DVI_SET_CHAR1 1 +#define DVI_SET_CHAR_MAX 127 +#define DVI_SET1 128 +#define DVI_SET2 129 +#define DVI_SET3 130 +#define DVI_SET4 131 +#define DVI_SET_RULE 132 +#define DVI_PUT1 133 +#define DVI_PUT2 134 +#define DVI_PUT3 135 +#define DVI_PUT4 136 +#define DVI_PUT_RULE 137 +#define DVI_NOOP 138 +#define DVI_BOP 139 +#define DVI_EOP 140 +#define DVI_PUSH 141 +#define DVI_POP 142 +#define DVI_RIGHT1 143 +#define DVI_RIGHT2 144 +#define DVI_RIGHT3 145 +#define DVI_RIGHT4 146 +#define DVI_W0 147 +#define DVI_W1 148 +#define DVI_W2 149 +#define DVI_W3 150 +#define DVI_W4 151 +#define DVI_X0 152 +#define DVI_X1 153 +#define DVI_X2 154 +#define DVI_X3 155 +#define DVI_X4 156 +#define DVI_DOWN1 157 +#define DVI_DOWN2 158 +#define DVI_DOWN3 159 +#define DVI_DOWN4 160 +#define DVI_Y0 161 +#define DVI_Y1 162 +#define DVI_Y2 163 +#define DVI_Y3 164 +#define DVI_Y4 165 +#define DVI_Z0 166 +#define DVI_Z1 167 +#define DVI_Z2 168 +#define DVI_Z3 169 +#define DVI_Z4 170 +#define DVI_FNT_NUM0 171 +#define DVI_FNT_NUM1 172 +#define DVI_FNT_NUM_MAX 234 +#define DVI_FNT1 235 +#define DVI_FNT2 236 +#define DVI_FNT3 237 +#define DVI_FNT4 238 +#define DVI_XXX1 239 +#define DVI_XXX2 240 +#define DVI_XXX3 241 +#define DVI_XXX4 242 +#define DVI_FNT_DEF1 243 +#define DVI_FNT_DEF2 244 +#define DVI_FNT_DEF3 245 +#define DVI_FNT_DEF4 246 +#define DVI_PRE 247 +#define DVI_POST 248 +#define DVI_POST_POST 249 + +#define DVI_ID 2 +#define DVI_TRAILER 223 + +#endif /* _MDVI_DVIOPCODES_H */ diff --git a/backend/dvi/mdvi-lib/dviread.c b/backend/dvi/mdvi-lib/dviread.c new file mode 100644 index 00000000..97b7b844 --- /dev/null +++ b/backend/dvi/mdvi-lib/dviread.c @@ -0,0 +1,1585 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <math.h> +#include <errno.h> +#include <unistd.h> +#include <fcntl.h> + +#include "mdvi.h" +#include "private.h" +#include "color.h" + +typedef int (*DviCommand) __PROTO((DviContext *, int)); + +#define DVICMDDEF(x) static int x __PROTO((DviContext *, int)) + +DVICMDDEF(set_char); +DVICMDDEF(set_rule); +DVICMDDEF(no_op); +DVICMDDEF(push); +DVICMDDEF(pop); +DVICMDDEF(move_right); +DVICMDDEF(move_down); +DVICMDDEF(move_w); +DVICMDDEF(move_x); +DVICMDDEF(move_y); +DVICMDDEF(move_z); +DVICMDDEF(sel_font); +DVICMDDEF(sel_fontn); +DVICMDDEF(special); +DVICMDDEF(def_font); +DVICMDDEF(undefined); +DVICMDDEF(unexpected); + +static const DviCommand dvi_commands[] = { + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, + set_char, set_char, set_char, set_char, /* 0 - 127 */ + set_char, set_char, set_char, set_char, /* 128 - 131 */ + set_rule, /* 132 */ + set_char, set_char, set_char, set_char, /* 133 - 136 */ + set_rule, /* 137 */ + no_op, /* 138 */ + unexpected, /* 139 (BOP) */ + unexpected, /* 140 (EOP) */ + push, /* 141 */ + pop, /* 142 */ + move_right, move_right, move_right, move_right, /* 143 - 146 */ + move_w, move_w, move_w, move_w, move_w, /* 147 - 151 */ + move_x, move_x, move_x, move_x, move_x, /* 152 - 156 */ + move_down, move_down, move_down, move_down, /* 157 - 160 */ + move_y, move_y, move_y, move_y, move_y, /* 161 - 165 */ + move_z, move_z, move_z, move_z, move_z, /* 166 - 170 */ + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, + sel_font, sel_font, sel_font, sel_font, /* 171 - 234 */ + sel_fontn, sel_fontn, sel_fontn, sel_fontn, /* 235 - 238 */ + special, special, special, special, /* 239 - 242 */ + def_font, def_font, def_font, def_font, /* 243 - 246 */ + unexpected, /* 247 (PRE) */ + unexpected, /* 248 (POST) */ + unexpected, /* 249 (POST_POST) */ + undefined, undefined, undefined, + undefined, undefined, undefined /* 250 - 255 */ +}; + +#define DVI_BUFLEN 4096 + +static int mdvi_run_macro(DviContext *dvi, Uchar *macro, size_t len); + +static void dummy_draw_glyph(DviContext *dvi, DviFontChar *ch, int x, int y) +{ +} + +static void dummy_draw_rule(DviContext *dvi, int x, int y, Uint w, Uint h, int f) +{ +} + +static int dummy_alloc_colors(void *a, Ulong *b, int c, Ulong d, Ulong e, double f, int g) +{ + return -1; +} + +static void *dummy_create_image(void *a, Uint b, Uint c, Uint d) +{ + return NULL; +} + +static void dummy_free_image(void *a) +{ +} + +static void dummy_dev_destroy(void *a) +{ +} + +static void dummy_dev_putpixel(void *a, int x, int y, Ulong c) +{ +} + +static void dummy_dev_refresh(DviContext *a, void *b) +{ +} + +static void dummy_dev_set_color(void *a, Ulong b, Ulong c) +{ +} + +/* functions to report errors */ +static void dvierr(DviContext *dvi, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, "%s[%d]: Error: ", + dvi->filename, dvi->currpage); + vfprintf(stderr, format, ap); + va_end(ap); +} + +static void dviwarn(DviContext *dvi, const char *format, ...) +{ + va_list ap; + + fprintf(stderr, "%s[%d]: Warning: ", + dvi->filename, dvi->currpage); + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); +} + +#define NEEDBYTES(d,n) \ + ((d)->buffer.pos + (n) > (d)->buffer.length) + +static int get_bytes(DviContext *dvi, size_t n) +{ + /* + * caller wants to read `n' bytes from dvi->buffer + dvi->pos. + * Make sure there is enough data to satisfy the request + */ + if(NEEDBYTES(dvi, n)) { + size_t required; + int newlen; + + if(dvi->buffer.frozen || dvi->in == NULL || feof(dvi->in)) { + /* this is EOF */ + dviwarn(dvi, _("unexpected EOF\n")); + return -1; + } + /* get more data */ + if(dvi->buffer.data == NULL) { + /* first allocation */ + dvi->buffer.size = Max(DVI_BUFLEN, n); + dvi->buffer.data = (Uchar *)mdvi_malloc(dvi->buffer.size); + dvi->buffer.length = 0; + dvi->buffer.frozen = 0; + } else if(dvi->buffer.pos < dvi->buffer.length) { + /* move whatever we want to keep */ + dvi->buffer.length -= dvi->buffer.pos; + memmove(dvi->buffer.data, + dvi->buffer.data + dvi->buffer.pos, + dvi->buffer.length); + } else { + /* we can discard all the data in this buffer */ + dvi->buffer.length = 0; + } + + required = n - dvi->buffer.length; + if(required > dvi->buffer.size - dvi->buffer.length) { + /* need to allocate more memory */ + dvi->buffer.size = dvi->buffer.length + required + 128; + dvi->buffer.data = (Uchar *)xresize(dvi->buffer.data, + char, dvi->buffer.size); + } + /* now read into the buffer */ + newlen = fread(dvi->buffer.data + dvi->buffer.length, + 1, dvi->buffer.size - dvi->buffer.length, dvi->in); + if(newlen == -1) { + mdvi_error("%s: %s\n", dvi->filename, strerror(errno)); + return -1; + } + dvi->buffer.length += newlen; + dvi->buffer.pos = 0; + } + return 0; +} + +/* only relative forward seeks are supported by this function */ +static int dskip(DviContext *dvi, long offset) +{ + ASSERT(offset > 0); + + if(NEEDBYTES(dvi, offset) && get_bytes(dvi, offset) == -1) + return -1; + dvi->buffer.pos += offset; + return 0; +} + +/* DVI I/O functions (note: here `n' must be <= 4) */ +static long dsgetn(DviContext *dvi, size_t n) +{ + long val; + + if(NEEDBYTES(dvi, n) && get_bytes(dvi, n) == -1) + return -1; + val = msgetn(dvi->buffer.data + dvi->buffer.pos, n); + dvi->buffer.pos += n; + return val; +} + +static int dread(DviContext *dvi, char *buffer, size_t len) +{ + if(NEEDBYTES(dvi, len) && get_bytes(dvi, len) == -1) + return -1; + memcpy(buffer, dvi->buffer.data + dvi->buffer.pos, len); + dvi->buffer.pos += len; + return 0; +} + +static long dugetn(DviContext *dvi, size_t n) +{ + long val; + + if(NEEDBYTES(dvi, n) && get_bytes(dvi, n) == -1) + return -1; + val = mugetn(dvi->buffer.data + dvi->buffer.pos, n); + dvi->buffer.pos += n; + return val; +} + +static long dtell(DviContext *dvi) +{ + return dvi->depth ? + dvi->buffer.pos : + ftell(dvi->in) - dvi->buffer.length + dvi->buffer.pos; +} + +static void dreset(DviContext *dvi) +{ + if(!dvi->buffer.frozen && dvi->buffer.data) + mdvi_free(dvi->buffer.data); + dvi->buffer.data = NULL; + dvi->buffer.size = 0; + dvi->buffer.length = 0; + dvi->buffer.pos = 0; +} + +#define dsget1(d) dsgetn((d), 1) +#define dsget2(d) dsgetn((d), 2) +#define dsget3(d) dsgetn((d), 3) +#define dsget4(d) dsgetn((d), 4) +#define duget1(d) dugetn((d), 1) +#define duget2(d) dugetn((d), 2) +#define duget3(d) dugetn((d), 3) +#define duget4(d) dugetn((d), 4) + +#ifndef NODEBUG +static void dviprint(DviContext *dvi, const char *command, int sub, const char *fmt, ...) +{ + int i; + va_list ap; + + printf("%s: ", dvi->filename); + for(i = 0; i < dvi->depth; i++) + printf(" "); + printf("%4lu: %s", dtell(dvi), command); + if(sub >= 0) printf("%d", sub); + if(*fmt) printf(": "); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); +} +#define SHOWCMD(x) \ + if(_mdvi_debug_mask & DBG_OPCODE) do { dviprint x; } while(0) +#else +#define SHOWCMD(x) do { } while(0) +#endif + +int mdvi_find_tex_page(DviContext *dvi, int tex_page) +{ + int i; + + for(i = 0; i < dvi->npages; i++) + if(dvi->pagemap[i][1] == tex_page) + return i; + return -1; +} + +/* page sorting functions */ +static int sort_up(const void *p1, const void *p2) +{ + return ((long *)p1)[1] - ((long *)p2)[1]; +} +static int sort_down(const void *p1, const void *p2) +{ + return ((long *)p2)[1] - ((long *)p1)[1]; +} +static int sort_random(const void *p1, const void *p2) +{ + return (rand() % 1) ? -1 : 1; +} +static int sort_dvi_up(const void *p1, const void *p2) +{ + return ((long *)p1)[0] - ((long *)p2)[0]; +} +static int sort_dvi_down(const void *p1, const void *p2) +{ + return ((long *)p1)[0] - ((long *)p2)[0]; +} + +void mdvi_sort_pages(DviContext *dvi, DviPageSort type) +{ + int (*sortfunc) __PROTO((const void *, const void *)); + + switch(type) { + case MDVI_PAGE_SORT_UP: + sortfunc = sort_up; + break; + case MDVI_PAGE_SORT_DOWN: + sortfunc = sort_down; + break; + case MDVI_PAGE_SORT_RANDOM: + sortfunc = sort_random; + break; + case MDVI_PAGE_SORT_DVI_UP: + sortfunc = sort_dvi_up; + break; + case MDVI_PAGE_SORT_DVI_DOWN: + sortfunc = sort_dvi_down; + break; + case MDVI_PAGE_SORT_NONE: + default: + sortfunc = NULL; + break; + } + + if(sortfunc) + qsort(dvi->pagemap, dvi->npages, sizeof(PageNum), sortfunc); +} + +static DviFontRef *define_font(DviContext *dvi, int op) +{ + Int32 arg; + Int32 scale; + Int32 dsize; + Int32 checksum; + int hdpi; + int vdpi; + int n; + char *name; + DviFontRef *ref; + + arg = dugetn(dvi, op - DVI_FNT_DEF1 + 1); + checksum = duget4(dvi); + scale = duget4(dvi); + dsize = duget4(dvi); + hdpi = FROUND(dvi->params.mag * dvi->params.dpi * scale / dsize); + vdpi = FROUND(dvi->params.mag * dvi->params.vdpi * scale / dsize); + n = duget1(dvi) + duget1(dvi); + name = mdvi_malloc(n + 1); + dread(dvi, name, n); + name[n] = 0; + DEBUG((DBG_FONTS, "requesting font %d = `%s' at %.1fpt (%dx%d dpi)\n", + arg, name, (double)scale / (dvi->params.tfm_conv * 0x100000), + hdpi, vdpi)); + ref = font_reference(&dvi->params, arg, name, checksum, hdpi, vdpi, scale); + if(ref == NULL) { + mdvi_error(_("could not load font `%s'\n"), name); + mdvi_free(name); + return NULL; + } + mdvi_free(name); + return ref; +} + +static char *opendvi(const char *name) +{ + int len; + char *file; + + len = strlen(name); + /* if file ends with .dvi and it exists, that's it */ + if(len >= 4 && STREQ(name+len-4, ".dvi")) { + DEBUG((DBG_DVI|DBG_FILES, "opendvi: Trying `%s'\n", name)); + if(access(name, R_OK) == 0) + return mdvi_strdup(name); + } + + /* try appending .dvi */ + file = mdvi_malloc(len + 5); + strcpy(file, name); + strcpy(file+len, ".dvi"); + DEBUG((DBG_DVI|DBG_FILES, "opendvi: Trying `%s'\n", file)); + if(access(file, R_OK) == 0) + return file; + /* try the given name */ + file[len] = 0; + DEBUG((DBG_DVI|DBG_FILES, "opendvi: Trying `%s'\n", file)); + if(access(file, R_OK) == 0) + return file; + mdvi_free(file); + return NULL; +} + +int mdvi_reload(DviContext *dvi, DviParams *np) +{ + DviContext *newdvi; + DviParams *pars; + + /* close our file */ + if(dvi->in) { + fclose(dvi->in); + dvi->in = NULL; + } + + pars = np ? np : &dvi->params; + DEBUG((DBG_DVI, "%s: reloading\n", dvi->filename)); + + /* load it again */ + newdvi = mdvi_init_context(pars, dvi->pagesel, dvi->filename); + if(newdvi == NULL) { + mdvi_warning(_("could not reload `%s'\n"), dvi->filename); + return -1; + } + + /* drop all our font references */ + font_drop_chain(dvi->fonts); + /* destroy our font map */ + if(dvi->fontmap) + mdvi_free(dvi->fontmap); + dvi->currfont = NULL; + + /* and use the ones we just loaded */ + dvi->fonts = newdvi->fonts; + dvi->fontmap = newdvi->fontmap; + dvi->nfonts = newdvi->nfonts; + + /* copy the new information */ + dvi->params = newdvi->params; + dvi->num = newdvi->num; + dvi->den = newdvi->den; + dvi->dvimag = newdvi->dvimag; + dvi->dviconv = newdvi->dviconv; + dvi->dvivconv = newdvi->dvivconv; + dvi->modtime = newdvi->modtime; + + if(dvi->fileid) mdvi_free(dvi->fileid); + dvi->fileid = newdvi->fileid; + + dvi->dvi_page_w = newdvi->dvi_page_w; + dvi->dvi_page_h = newdvi->dvi_page_h; + + mdvi_free(dvi->pagemap); + dvi->pagemap = newdvi->pagemap; + dvi->npages = newdvi->npages; + if(dvi->currpage > dvi->npages-1) + dvi->currpage = 0; + + mdvi_free(dvi->stack); + dvi->stack = newdvi->stack; + dvi->stacksize = newdvi->stacksize; + + /* remove fonts that are not being used anymore */ + font_free_unused(&dvi->device); + + mdvi_free(newdvi->filename); + mdvi_free(newdvi); + + DEBUG((DBG_DVI, "%s: reload successful\n", dvi->filename)); + if(dvi->device.refresh) + dvi->device.refresh(dvi, dvi->device.device_data); + + return 0; +} + +/* function to change parameters ia DVI context + * The DVI context is modified ONLY if this function is successful */ +int mdvi_configure(DviContext *dvi, DviParamCode option, ...) +{ + va_list ap; + int reset_all; + int reset_font; + DviParams np; + + va_start(ap, option); + + reset_font = 0; + reset_all = 0; + np = dvi->params; /* structure copy */ + while(option != MDVI_PARAM_LAST) { + switch(option) { + case MDVI_SET_DPI: + np.dpi = np.vdpi = va_arg(ap, Uint); + reset_all = 1; + break; + case MDVI_SET_XDPI: + np.dpi = va_arg(ap, Uint); + reset_all = 1; + break; + case MDVI_SET_YDPI: + np.vdpi = va_arg(ap, Uint); + break; + case MDVI_SET_SHRINK: + np.hshrink = np.vshrink = va_arg(ap, Uint); + reset_font = MDVI_FONTSEL_GREY|MDVI_FONTSEL_BITMAP; + break; + case MDVI_SET_XSHRINK: + np.hshrink = va_arg(ap, Uint); + reset_font = MDVI_FONTSEL_GREY|MDVI_FONTSEL_BITMAP; + break; + case MDVI_SET_YSHRINK: + np.vshrink = va_arg(ap, Uint); + reset_font = MDVI_FONTSEL_GREY|MDVI_FONTSEL_BITMAP; + break; + case MDVI_SET_ORIENTATION: + np.orientation = va_arg(ap, DviOrientation); + reset_font = MDVI_FONTSEL_GLYPH; + break; + case MDVI_SET_GAMMA: + np.gamma = va_arg(ap, double); + reset_font = MDVI_FONTSEL_GREY; + break; + case MDVI_SET_DENSITY: + np.density = va_arg(ap, Uint); + reset_font = MDVI_FONTSEL_BITMAP; + break; + case MDVI_SET_MAGNIFICATION: + np.mag = va_arg(ap, double); + reset_all = 1; + break; + case MDVI_SET_DRIFT: + np.hdrift = np.vdrift = va_arg(ap, int); + break; + case MDVI_SET_HDRIFT: + np.hdrift = va_arg(ap, int); + break; + case MDVI_SET_VDRIFT: + np.vdrift = va_arg(ap, int); + break; + case MDVI_SET_FOREGROUND: + np.fg = va_arg(ap, Ulong); + reset_font = MDVI_FONTSEL_GREY; + break; + case MDVI_SET_BACKGROUND: + np.bg = va_arg(ap, Ulong); + reset_font = MDVI_FONTSEL_GREY; + break; + default: + break; + } + option = va_arg(ap, DviParamCode); + } + va_end(ap); + + /* check that all values make sense */ + if(np.dpi <= 0 || np.vdpi <= 0) + return -1; + if(np.mag <= 0.0) + return -1; + if(np.density < 0) + return -1; + if(np.hshrink < 1 || np.vshrink < 1) + return -1; + if(np.hdrift < 0 || np.vdrift < 0) + return -1; + if(np.fg == np.bg) + return -1; + + /* + * If the dpi or the magnification change, we basically have to reload + * the DVI file again from scratch. + */ + + if(reset_all) + return (mdvi_reload(dvi, &np) == 0); + + if(np.hshrink != dvi->params.hshrink) { + np.conv = dvi->dviconv; + if(np.hshrink) + np.conv /= np.hshrink; + } + if(np.vshrink != dvi->params.vshrink) { + np.vconv = dvi->dvivconv; + if(np.vshrink) + np.vconv /= np.vshrink; + } + + if(reset_font) { + font_reset_chain_glyphs(&dvi->device, dvi->fonts, reset_font); + } + dvi->params = np; + if((reset_font & MDVI_FONTSEL_GLYPH) && dvi->device.refresh) { + dvi->device.refresh(dvi, dvi->device.device_data); + return 0; + } + + return 1; +} +/* + * Read the initial data from the DVI file. If something is wrong with the + * file, we just spit out an error message and refuse to load the file, + * without giving any details. This makes sense because DVI files are ok + * 99.99% of the time, and dvitype(1) can be used to check the other 0.01%. + */ +DviContext *mdvi_init_context(DviParams *par, DviPageSpec *spec, const char *file) +{ + FILE *p; + Int32 arg; + int op; + long offset; + int n; + DviContext *dvi; + char *filename; + int pagecount; + + /* + * 1. Open the file and initialize the DVI context + */ + + filename = opendvi(file); + if(filename == NULL) { + perror(file); + return NULL; + } + p = fopen(filename, "rb"); + if(p == NULL) { + perror(file); + mdvi_free(filename); + return NULL; + } + dvi = xalloc(DviContext); + memzero(dvi, sizeof(DviContext)); + dvi->pagemap = NULL; + dvi->filename = filename; + dvi->stack = NULL; + dvi->modtime = get_mtime(fileno(p)); + dvi->buffer.data = NULL; + dvi->pagesel = spec; + dvi->in = p; /* now we can use the dget*() functions */ + + /* + * 2. Read the preamble, extract scaling information, and + * setup the DVI parameters. + */ + + if(fuget1(p) != DVI_PRE) + goto bad_dvi; + if((arg = fuget1(p)) != DVI_ID) { + mdvi_error(_("%s: unsupported DVI format (version %u)\n"), + file, arg); + goto error; /* jump to the end of this routine, + * where we handle errors */ + } + /* get dimensions */ + dvi->num = fuget4(p); + dvi->den = fuget4(p); + dvi->dvimag = fuget4(p); + + /* check that these numbers make sense */ + if(!dvi->num || !dvi->den || !dvi->dvimag) + goto bad_dvi; + + dvi->params.mag = + (par->mag > 0 ? par->mag : (double)dvi->dvimag / 1000.0); + dvi->params.hdrift = par->hdrift; + dvi->params.vdrift = par->vdrift; + dvi->params.dpi = par->dpi ? par->dpi : MDVI_DPI; + dvi->params.vdpi = par->vdpi ? par->vdpi : par->dpi; + dvi->params.hshrink = par->hshrink; + dvi->params.vshrink = par->vshrink; + dvi->params.density = par->density; + dvi->params.gamma = par->gamma; + dvi->params.conv = (double)dvi->num / dvi->den; + dvi->params.conv *= (dvi->params.dpi / 254000.0) * dvi->params.mag; + dvi->params.vconv = (double)dvi->num / dvi->den; + dvi->params.vconv *= (dvi->params.vdpi / 254000.0) * dvi->params.mag; + dvi->params.tfm_conv = (25400000.0 / dvi->num) * + ((double)dvi->den / 473628672) / 16.0; + dvi->params.flags = par->flags; + dvi->params.orientation = par->orientation; + dvi->params.fg = par->fg; + dvi->params.bg = par->bg; + + /* initialize colors */ + dvi->curr_fg = par->fg; + dvi->curr_bg = par->bg; + dvi->color_stack = NULL; + dvi->color_top = 0; + dvi->color_size = 0; + + /* pixel conversion factors */ + dvi->dviconv = dvi->params.conv; + dvi->dvivconv = dvi->params.vconv; + if(dvi->params.hshrink) + dvi->params.conv /= dvi->params.hshrink; + if(dvi->params.vshrink) + dvi->params.vconv /= dvi->params.vshrink; + + /* get the comment from the preamble */ + n = fuget1(p); + dvi->fileid = mdvi_malloc(n + 1); + fread(dvi->fileid, 1, n, p); + dvi->fileid[n] = 0; + DEBUG((DBG_DVI, "%s: %s\n", filename, dvi->fileid)); + + /* + * 3. Read postamble, extract page information (number of + * pages, dimensions) and stack depth. + */ + + /* jump to the end of the file */ + if(fseek(p, (long)-1, SEEK_END) == -1) + goto error; + for(n = 0; (op = fuget1(p)) == DVI_TRAILER; n++) + if(fseek(p, (long)-2, SEEK_CUR) < 0) + break; + if(op != arg || n < 4) + goto bad_dvi; + /* get the pointer to postamble */ + fseek(p, (long)-5, SEEK_CUR); + arg = fuget4(p); + /* jump to it */ + fseek(p, (long)arg, SEEK_SET); + if(fuget1(p) != DVI_POST) + goto bad_dvi; + offset = fuget4(p); + if(dvi->num != fuget4(p) || dvi->den != fuget4(p) || + dvi->dvimag != fuget4(p)) + goto bad_dvi; + dvi->dvi_page_h = fuget4(p); + dvi->dvi_page_w = fuget4(p); + dvi->stacksize = fuget2(p); + dvi->npages = fuget2(p); + DEBUG((DBG_DVI, "%s: from postamble: stack depth %d, %d page%s\n", + filename, dvi->stacksize, dvi->npages, dvi->npages > 1 ? "s" : "")); + + /* + * 4. Process font definitions. + */ + + /* process font definitions */ + dvi->nfonts = 0; + dvi->fontmap = NULL; + /* + * CAREFUL: here we need to use the dvi->buffer, but it might leave the + * the file cursor in the wrong position after reading fonts (because of + * buffering). It's ok, though, because after the font definitions we read + * the page offsets, and we fseek() to the relevant part of the file with + * SEEK_SET. Nothing is read after the page offsets. + */ + while((op = duget1(dvi)) != DVI_POST_POST) { + DviFontRef *ref; + + if(op == DVI_NOOP) + continue; + else if(op < DVI_FNT_DEF1 || op > DVI_FNT_DEF4) + goto error; + ref = define_font(dvi, op); + if(ref == NULL) + goto error; + ref->next = dvi->fonts; + dvi->fonts = ref; + dvi->nfonts++; + } + /* we don't need the buffer anymore */ + dreset(dvi); + + if(op != DVI_POST_POST) + goto bad_dvi; + font_finish_definitions(dvi); + DEBUG((DBG_DVI, "%s: %d font%s required by this job\n", + filename, dvi->nfonts, dvi->nfonts > 1 ? "s" : "")); + dvi->findref = font_find_mapped; + + /* + * 5. Build the page map. + */ + + dvi->pagemap = xnalloc(PageNum, dvi->npages); + memzero(dvi->pagemap, sizeof(PageNum) * dvi->npages); + + n = dvi->npages - 1; + pagecount = n; + while(offset != -1) { + int i; + PageNum page; + + fseek(p, offset, SEEK_SET); + op = fuget1(p); + if(op != DVI_BOP || n < 0) + goto bad_dvi; + for(i = 1; i <= 10; i++) + page[i] = fsget4(p); + page[0] = offset; + offset = fsget4(p); + /* check if the page is selected */ + if(spec && mdvi_page_selected(spec, page, n) == 0) { + DEBUG((DBG_DVI, "Page %d (%ld.%ld.%ld.%ld.%ld.%ld.%ld.%ld.%ld.%ld) ignored by request\n", + n, page[1], page[2], page[3], page[4], page[5], + page[6], page[7], page[8], page[9], page[10])); + } else { + memcpy(&dvi->pagemap[pagecount], page, sizeof(PageNum)); + pagecount--; + } + n--; + } + pagecount++; + if(pagecount >= dvi->npages) { + mdvi_error(_("no pages selected\n")); + goto error; + } + if(pagecount) { + DEBUG((DBG_DVI, "%d of %d pages selected\n", + dvi->npages - pagecount, dvi->npages)); + dvi->npages -= pagecount; + memmove(dvi->pagemap, &dvi->pagemap[pagecount], + dvi->npages * sizeof(PageNum)); + } + + /* + * 6. Setup stack, initialize device functions + */ + + dvi->curr_layer = 0; + dvi->stack = xnalloc(DviState, dvi->stacksize + 8); + + dvi->device.draw_glyph = dummy_draw_glyph; + dvi->device.draw_rule = dummy_draw_rule; + dvi->device.alloc_colors = dummy_alloc_colors; + dvi->device.create_image = dummy_create_image; + dvi->device.free_image = dummy_free_image; + dvi->device.dev_destroy = dummy_dev_destroy; + dvi->device.put_pixel = dummy_dev_putpixel; + dvi->device.refresh = dummy_dev_refresh; + dvi->device.set_color = dummy_dev_set_color; + dvi->device.device_data = NULL; + + DEBUG((DBG_DVI, "%s read successfully\n", filename)); + return dvi; + +bad_dvi: + mdvi_error(_("%s: File corrupted, or not a DVI file\n"), file); +error: + /* if we came from the font definitions, this will be non-trivial */ + dreset(dvi); + mdvi_destroy_context(dvi); + return NULL; +} + +void mdvi_destroy_context(DviContext *dvi) +{ + if(dvi->device.dev_destroy) + dvi->device.dev_destroy(dvi->device.device_data); + /* release all fonts */ + if(dvi->fonts) { + font_drop_chain(dvi->fonts); + font_free_unused(&dvi->device); + } + if(dvi->fontmap) + mdvi_free(dvi->fontmap); + if(dvi->filename) + mdvi_free(dvi->filename); + if(dvi->stack) + mdvi_free(dvi->stack); + if(dvi->pagemap) + mdvi_free(dvi->pagemap); + if(dvi->fileid) + mdvi_free(dvi->fileid); + if(dvi->in) + fclose(dvi->in); + if(dvi->buffer.data && !dvi->buffer.frozen) + mdvi_free(dvi->buffer.data); + if(dvi->color_stack) + mdvi_free(dvi->color_stack); + + mdvi_free(dvi); +} + +void mdvi_setpage(DviContext *dvi, int pageno) +{ + if(pageno < 0) + pageno = 0; + if(pageno > dvi->npages-1) + pageno = dvi->npages - 1; + dvi->currpage = pageno; +} + +static int mdvi_run_macro(DviContext *dvi, Uchar *macro, size_t len) +{ + DviFontRef *curr, *fonts; + DviBuffer saved_buffer; + FILE *saved_file; + int opcode; + int oldtop; + + dvi->depth++; + push(dvi, DVI_PUSH); + dvi->pos.w = 0; + dvi->pos.x = 0; + dvi->pos.y = 0; + dvi->pos.z = 0; + + /* save our state */ + curr = dvi->currfont; + fonts = dvi->fonts; + saved_buffer = dvi->buffer; + saved_file = dvi->in; + dvi->currfont = curr->ref->subfonts; + dvi->fonts = curr->ref->subfonts; + dvi->buffer.data = macro; + dvi->buffer.pos = 0; + dvi->buffer.length = len; + dvi->buffer.frozen = 1; + dvi->in = NULL; + oldtop = dvi->stacktop; + + /* execute commands */ + while((opcode = duget1(dvi)) != DVI_EOP) { + if(dvi_commands[opcode](dvi, opcode) < 0) + break; + } + if(opcode != DVI_EOP) + dviwarn(dvi, _("%s: vf macro had errors\n"), + curr->ref->fontname); + if(dvi->stacktop != oldtop) + dviwarn(dvi, _("%s: stack not empty after vf macro\n"), + curr->ref->fontname); + + /* restore things */ + pop(dvi, DVI_POP); + dvi->currfont = curr; + dvi->fonts = fonts; + dvi->buffer = saved_buffer; + dvi->in = saved_file; + dvi->depth--; + + return (opcode != DVI_EOP ? -1 : 0); +} + +int mdvi_dopage(DviContext *dvi, int pageno) +{ + int op; + int ppi; + int reloaded = 0; + +again: + if(dvi->in == NULL) { + /* try reopening the file */ + dvi->in = fopen(dvi->filename, "rb"); + if(dvi->in == NULL) { + mdvi_warning(_("%s: could not reopen file (%s)\n"), + dvi->filename, + strerror(errno)); + return -1; + } + DEBUG((DBG_FILES, "reopen(%s) -> Ok\n", dvi->filename)); + } + + /* check if we need to reload the file */ + if(!reloaded && get_mtime(fileno(dvi->in)) > dvi->modtime) { + mdvi_reload(dvi, &dvi->params); + /* we have to reopen the file, again */ + reloaded = 1; + goto again; + } + + if(pageno < 0 || pageno > dvi->npages-1) { + mdvi_error(_("%s: page %d out of range\n"), + dvi->filename, pageno); + return -1; + } + + fseek(dvi->in, (long)dvi->pagemap[pageno][0], SEEK_SET); + if((op = fuget1(dvi->in)) != DVI_BOP) { + mdvi_error(_("%s: bad offset at page %d\n"), + dvi->filename, pageno+1); + return -1; + } + + /* skip bop */ + fseek(dvi->in, (long)44, SEEK_CUR); + + /* reset state */ + dvi->currfont = NULL; + memzero(&dvi->pos, sizeof(DviState)); + dvi->stacktop = 0; + dvi->currpage = pageno; + dvi->curr_layer = 0; + + if(dvi->buffer.data && !dvi->buffer.frozen) + mdvi_free(dvi->buffer.data); + + /* reset our buffer */ + dvi->buffer.data = NULL; + dvi->buffer.length = 0; + dvi->buffer.pos = 0; + dvi->buffer.frozen = 0; + +#if 0 /* make colors survive page breaks */ + /* reset color stack */ + mdvi_reset_color(dvi); +#endif + + /* set max horizontal and vertical drift (from dvips) */ + if(dvi->params.hdrift < 0) { + ppi = dvi->params.dpi / dvi->params.hshrink; /* shrunk pixels per inch */ + if(ppi < 600) + dvi->params.hdrift = ppi / 100; + else if(ppi < 1200) + dvi->params.hdrift = ppi / 200; + else + dvi->params.hdrift = ppi / 400; + } + if(dvi->params.vdrift < 0) { + ppi = dvi->params.vdpi / dvi->params.vshrink; /* shrunk pixels per inch */ + if(ppi < 600) + dvi->params.vdrift = ppi / 100; + else if(ppi < 1200) + dvi->params.vdrift = ppi / 200; + else + dvi->params.vdrift = ppi / 400; + } + + dvi->params.thinsp = FROUND(0.025 * dvi->params.dpi / dvi->params.conv); + dvi->params.vsmallsp = FROUND(0.025 * dvi->params.vdpi / dvi->params.vconv); + + /* execute all the commands in the page */ + while((op = duget1(dvi)) != DVI_EOP) { + if(dvi_commands[op](dvi, op) < 0) + break; + } + + fflush(stdout); + fflush(stderr); + if(op != DVI_EOP) + return -1; + if(dvi->stacktop) + dviwarn(dvi, _("stack not empty at end of page\n")); + return 0; +} + +static int inline move_vertical(DviContext *dvi, int amount) +{ + int rvv; + + dvi->pos.v += amount; + rvv = vpixel_round(dvi, dvi->pos.v); + if(!dvi->params.vdrift) + return rvv; + if(amount > dvi->params.vsmallsp || amount <= -dvi->params.vsmallsp) + return rvv; + else { + int newvv; + + newvv = dvi->pos.vv + vpixel_round(dvi, amount); + if(rvv - newvv > dvi->params.vdrift) + return rvv - dvi->params.vdrift; + else if(newvv - rvv > dvi->params.vdrift) + return rvv + dvi->params.vdrift; + else + return newvv; + } +} + +static int inline move_horizontal(DviContext *dvi, int amount) +{ + int rhh; + + dvi->pos.h += amount; + rhh = pixel_round(dvi, dvi->pos.h); + if(!dvi->params.hdrift) + return rhh; + else if(amount > dvi->params.thinsp || amount <= -6 * dvi->params.thinsp) + return rhh; + else { + int newhh; + + newhh = dvi->pos.hh + pixel_round(dvi, amount); + if(rhh - newhh > dvi->params.hdrift) + return rhh - dvi->params.hdrift; + else if(newhh - rhh > dvi->params.hdrift) + return rhh + dvi->params.hdrift; + else + return newhh; + } +} + +static void inline fix_after_horizontal(DviContext *dvi) +{ + int rhh; + + rhh = pixel_round(dvi, dvi->pos.h); + if(!dvi->params.hdrift) + dvi->pos.hh = rhh; + else if(rhh - dvi->pos.hh > dvi->params.hdrift) + dvi->pos.hh = rhh - dvi->params.hdrift; + else if(dvi->pos.hh - rhh > dvi->params.hdrift) + dvi->pos.hh = rhh + dvi->params.hdrift; +} + +/* commands */ + +#define DBGSUM(a,b,c) \ + (a), (b) > 0 ? '+' : '-', \ + (b) > 0 ? (b) : -(b), (c) + +/* + * Draw rules with some sort of antialias support. Usefult for high-rate + * scale factors. + */ + +static void draw_shrink_rule (DviContext *dvi, int x, int y, Uint w, Uint h, int f) +{ + int hs, vs, npixels; + Ulong fg, bg; + Ulong *pixels; + + hs = dvi->params.hshrink; + vs = dvi->params.vshrink; + fg = dvi->curr_fg; + bg = dvi->curr_bg; + + if (MDVI_ENABLED(dvi, MDVI_PARAM_ANTIALIASED)) { + npixels = vs * hs + 1; + pixels = get_color_table(&dvi->device, npixels, bg, fg, + dvi->params.gamma, dvi->params.density); + + if (pixels) { + int color; + + /* Lines with width 1 should be perfectly visible + * in shrink about 15. That is the reason of constant + */ + + color = (pow (vs / h * hs, 2) + pow (hs / w * vs, 2)) / 225; + if (color < npixels) { + fg = pixels[color]; + } else { + fg = pixels[npixels - 1]; + } + } + } + + mdvi_push_color (dvi, fg, bg); + dvi->device.draw_rule(dvi, x, y, w, h, f); + mdvi_pop_color (dvi); + + return; +} + +/* + * The only commands that actually draw something are: + * set_char, set_rule + */ + +static void draw_box(DviContext *dvi, DviFontChar *ch) +{ + DviGlyph *glyph = NULL; + int x, y, w, h; + + if(!MDVI_GLYPH_UNSET(ch->shrunk.data)) + glyph = &ch->shrunk; + else if(!MDVI_GLYPH_UNSET(ch->grey.data)) + glyph = &ch->grey; + else if(!MDVI_GLYPH_UNSET(ch->glyph.data)) + glyph = &ch->glyph; + if(glyph == NULL) + return; + x = glyph->x; + y = glyph->y; + w = glyph->w; + h = glyph->h; + /* this is bad -- we have to undo the orientation */ + switch(dvi->params.orientation) { + case MDVI_ORIENT_TBLR: + break; + case MDVI_ORIENT_TBRL: + x = w - x; + break; + case MDVI_ORIENT_BTLR: + y = h - y; + break; + case MDVI_ORIENT_BTRL: + x = w - x; + y = h - y; + break; + case MDVI_ORIENT_RP90: + SWAPINT(w, h); + SWAPINT(x, y); + x = w - x; + break; + case MDVI_ORIENT_RM90: + SWAPINT(w, h); + SWAPINT(x, y); + y = h - y; + break; + case MDVI_ORIENT_IRP90: + SWAPINT(w, h); + SWAPINT(x, y); + break; + case MDVI_ORIENT_IRM90: + SWAPINT(w, h); + SWAPINT(x, y); + x = w - x; + y = h - y; + break; + } + + draw_shrink_rule(dvi, dvi->pos.hh - x, dvi->pos.vv - y, w, h, 1); +} + +int set_char(DviContext *dvi, int opcode) +{ + int num; + int h; + int hh; + DviFontChar *ch; + DviFont *font; + + if(opcode < 128) + num = opcode; + else + num = dugetn(dvi, opcode - DVI_SET1 + 1); + if(dvi->currfont == NULL) { + dvierr(dvi, _("no default font set yet\n")); + return -1; + } + font = dvi->currfont->ref; + ch = font_get_glyph(dvi, font, num); + if(ch == NULL || ch->missing) { + /* try to display something anyway */ + ch = FONTCHAR(font, num); + if(!glyph_present(ch)) { + dviwarn(dvi, + _("requested character %d does not exist in `%s'\n"), + num, font->fontname); + return 0; + } + draw_box(dvi, ch); + } else if(dvi->curr_layer <= dvi->params.layer) { + if(ISVIRTUAL(font)) + mdvi_run_macro(dvi, (Uchar *)font->private + + ch->offset, ch->width); + else if(ch->width && ch->height) + dvi->device.draw_glyph(dvi, ch, + dvi->pos.hh, dvi->pos.vv); + } + if(opcode >= DVI_PUT1 && opcode <= DVI_PUT4) { + SHOWCMD((dvi, "putchar", opcode - DVI_PUT1 + 1, + "char %d (%s)\n", + num, dvi->currfont->ref->fontname)); + } else { + h = dvi->pos.h + ch->tfmwidth; + hh = dvi->pos.hh + pixel_round(dvi, ch->tfmwidth); + SHOWCMD((dvi, "setchar", num, "(%d,%d) h:=%d%c%d=%d, hh:=%d (%s)\n", + dvi->pos.hh, dvi->pos.vv, + DBGSUM(dvi->pos.h, ch->tfmwidth, h), hh, + font->fontname)); + dvi->pos.h = h; + dvi->pos.hh = hh; + fix_after_horizontal(dvi); + } + + return 0; +} + +int set_rule(DviContext *dvi, int opcode) +{ + Int32 a, b; + int h, w; + + a = dsget4(dvi); + b = dsget4(dvi); w = rule_round(dvi, b); + if(a > 0 && b > 0) { + h = vrule_round(dvi, a); + SHOWCMD((dvi, opcode == DVI_SET_RULE ? "setrule" : "putrule", -1, + "width %d, height %d (%dx%d pixels)\n", + b, a, w, h)); + /* the `draw' functions expect the origin to be at the top left + * corner of the rule, not the bottom left, as in DVI files */ + if(dvi->curr_layer <= dvi->params.layer) { + draw_shrink_rule(dvi, + dvi->pos.hh, dvi->pos.vv - h + 1, w, h, 1); + } + } else { + SHOWCMD((dvi, opcode == DVI_SET_RULE ? "setrule" : "putrule", -1, + "(moving left only, by %d)\n", b)); + } + + if(opcode == DVI_SET_RULE) { + dvi->pos.h += b; + dvi->pos.hh += w; + fix_after_horizontal(dvi); + } + return 0; +} + +int no_op(DviContext *dvi, int opcode) +{ + SHOWCMD((dvi, "noop", -1, "")); + return 0; +} + +int push(DviContext *dvi, int opcode) +{ + if(dvi->stacktop == dvi->stacksize) { + if(!dvi->depth) + dviwarn(dvi, _("enlarging stack\n")); + dvi->stacksize += 8; + dvi->stack = xresize(dvi->stack, + DviState, dvi->stacksize); + } + memcpy(&dvi->stack[dvi->stacktop], &dvi->pos, sizeof(DviState)); + SHOWCMD((dvi, "push", -1, + "level %d: (h=%d,v=%d,w=%d,x=%d,y=%d,z=%d,hh=%d,vv=%d)\n", + dvi->stacktop, + dvi->pos.h, dvi->pos.v, dvi->pos.w, dvi->pos.x, + dvi->pos.y, dvi->pos.z, dvi->pos.hh, dvi->pos.vv)); + dvi->stacktop++; + return 0; +} + +int pop(DviContext *dvi, int opcode) +{ + if(dvi->stacktop == 0) { + dvierr(dvi, _("stack underflow\n")); + return -1; + } + memcpy(&dvi->pos, &dvi->stack[dvi->stacktop-1], sizeof(DviState)); + SHOWCMD((dvi, "pop", -1, + "level %d: (h=%d,v=%d,w=%d,x=%d,y=%d,z=%d,hh=%d,vv=%d)\n", + dvi->stacktop, + dvi->pos.h, dvi->pos.v, dvi->pos.w, dvi->pos.x, + dvi->pos.y, dvi->pos.z, dvi->pos.hh, dvi->pos.vv)); + dvi->stacktop--; + return 0; +} + +int move_right(DviContext *dvi, int opcode) +{ + Int32 arg; + int h, hh; + + arg = dsgetn(dvi, opcode - DVI_RIGHT1 + 1); + h = dvi->pos.h; + hh = move_horizontal(dvi, arg); + SHOWCMD((dvi, "right", opcode - DVI_RIGHT1 + 1, + "%d h:=%d%c%d=%d, hh:=%d\n", + arg, DBGSUM(h, arg, dvi->pos.h), hh)); + dvi->pos.hh = hh; + return 0; +} + +int move_down(DviContext *dvi, int opcode) +{ + Int32 arg; + int v, vv; + + arg = dsgetn(dvi, opcode - DVI_DOWN1 + 1); + v = dvi->pos.v; + vv = move_vertical(dvi, arg); + SHOWCMD((dvi, "down", opcode - DVI_DOWN1 + 1, + "%d v:=%d%c%d=%d, vv:=%d\n", + arg, DBGSUM(v, arg, dvi->pos.v), vv)); + dvi->pos.vv = vv; + return 0; +} + +int move_w(DviContext *dvi, int opcode) +{ + int h, hh; + + if(opcode != DVI_W0) + dvi->pos.w = dsgetn(dvi, opcode - DVI_W0); + h = dvi->pos.h; + hh = move_horizontal(dvi, dvi->pos.w); + SHOWCMD((dvi, "w", opcode - DVI_W0, + "%d h:=%d%c%d=%d, hh:=%d\n", + dvi->pos.w, DBGSUM(h, dvi->pos.w, dvi->pos.h), hh)); + dvi->pos.hh = hh; + return 0; +} + +int move_x(DviContext *dvi, int opcode) +{ + int h, hh; + + if(opcode != DVI_X0) + dvi->pos.x = dsgetn(dvi, opcode - DVI_X0); + h = dvi->pos.h; + hh = move_horizontal(dvi, dvi->pos.x); + SHOWCMD((dvi, "x", opcode - DVI_X0, + "%d h:=%d%c%d=%d, hh:=%d\n", + dvi->pos.x, DBGSUM(h, dvi->pos.x, dvi->pos.h), hh)); + dvi->pos.hh = hh; + return 0; +} + +int move_y(DviContext *dvi, int opcode) +{ + int v, vv; + + if(opcode != DVI_Y0) + dvi->pos.y = dsgetn(dvi, opcode - DVI_Y0); + v = dvi->pos.v; + vv = move_vertical(dvi, dvi->pos.y); + SHOWCMD((dvi, "y", opcode - DVI_Y0, + "%d h:=%d%c%d=%d, hh:=%d\n", + dvi->pos.y, DBGSUM(v, dvi->pos.y, dvi->pos.v), vv)); + dvi->pos.vv = vv; + return 0; +} + +int move_z(DviContext *dvi, int opcode) +{ + int v, vv; + + if(opcode != DVI_Z0) + dvi->pos.z = dsgetn(dvi, opcode - DVI_Z0); + v = dvi->pos.v; + vv = move_vertical(dvi, dvi->pos.z); + SHOWCMD((dvi, "z", opcode - DVI_Z0, + "%d h:=%d%c%d=%d, hh:=%d\n", + dvi->pos.z, DBGSUM(v, dvi->pos.z, dvi->pos.v), vv)); + dvi->pos.vv = vv; + return 0; +} + +int sel_font(DviContext *dvi, int opcode) +{ + DviFontRef *ref; + int ndx; + + ndx = opcode - DVI_FNT_NUM0; + if(dvi->depth) + ref = font_find_flat(dvi, ndx); + else + ref = dvi->findref(dvi, ndx); + if(ref == NULL) { + dvierr(dvi, _("font %d is not defined\n"), + opcode - DVI_FNT_NUM0); + return -1; + } + SHOWCMD((dvi, "fntnum", opcode - DVI_FNT_NUM0, + "current font is %s\n", + ref->ref->fontname)); + dvi->currfont = ref; + return 0; +} + +int sel_fontn(DviContext *dvi, int opcode) +{ + Int32 arg; + DviFontRef *ref; + + arg = dugetn(dvi, opcode - DVI_FNT1 + 1); + if(dvi->depth) + ref = font_find_flat(dvi, arg); + else + ref = dvi->findref(dvi, arg); + if(ref == NULL) { + dvierr(dvi, _("font %d is not defined\n"), arg); + return -1; + } + SHOWCMD((dvi, "fnt", opcode - DVI_FNT1 + 1, + "current font is %s (id %d)\n", + ref->ref->fontname, arg)); + dvi->currfont = ref; + return 0; +} + +int special(DviContext *dvi, int opcode) +{ + char *s; + Int32 arg; + + arg = dugetn(dvi, opcode - DVI_XXX1 + 1); + s = mdvi_malloc(arg + 1); + dread(dvi, s, arg); + s[arg] = 0; + mdvi_do_special(dvi, s); + SHOWCMD((dvi, "XXXX", opcode - DVI_XXX1 + 1, + "[%s]", s)); + mdvi_free(s); + return 0; +} + +int def_font(DviContext *dvi, int opcode) +{ + DviFontRef *ref; + Int32 arg; + + arg = dugetn(dvi, opcode - DVI_FNT_DEF1 + 1); + if(dvi->depth) + ref = font_find_flat(dvi, arg); + else + ref = dvi->findref(dvi, arg); + /* skip the rest */ + dskip(dvi, 12); + dskip(dvi, duget1(dvi) + duget1(dvi)); + if(ref == NULL) { + dvierr(dvi, _("font %d is not defined in postamble\n"), arg); + return -1; + } + SHOWCMD((dvi, "fntdef", opcode - DVI_FNT_DEF1 + 1, + "%d -> %s (%d links)\n", + ref->fontid, ref->ref->fontname, + ref->ref->links)); + return 0; +} + +int unexpected(DviContext *dvi, int opcode) +{ + dvierr(dvi, _("unexpected opcode %d\n"), opcode); + return -1; +} + +int undefined(DviContext *dvi, int opcode) +{ + dvierr(dvi, _("undefined opcode %d\n"), opcode); + return -1; +} + diff --git a/backend/dvi/mdvi-lib/files.c b/backend/dvi/mdvi-lib/files.c new file mode 100644 index 00000000..b7065068 --- /dev/null +++ b/backend/dvi/mdvi-lib/files.c @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/stat.h> + +#include "common.h" + +char *dgets(Dstring *dstr, FILE *in) +{ + char buffer[256]; + + dstr->length = 0; + if(feof(in)) + return NULL; + while(fgets(buffer, 256, in) != NULL) { + int len = strlen(buffer); + + if(buffer[len-1] == '\n') { + dstring_append(dstr, buffer, len - 1); + break; + } + dstring_append(dstr, buffer, len); + } + if(dstr->data) + dstr->data[dstr->length] = 0; + return dstr->data; +} + +/* some simple helper functions to manipulate file names */ + +const char *file_basename(const char *filename) +{ + const char *ptr = strrchr(filename, '/'); + + return (ptr ? ptr + 1 : filename); +} + +const char *file_extension(const char *filename) +{ + const char *ptr = strchr(file_basename(filename), '.'); + + return (ptr ? ptr + 1 : NULL); +} + +int file_readable(const char *filename) +{ + int status = (access(filename, R_OK) == 0); + + DEBUG((DBG_FILES, "file_redable(%s) -> %s\n", + filename, status ? "Yes" : "No")); + return status; +} + +int file_exists(const char *filename) +{ + int status = (access(filename, F_OK) == 0); + + DEBUG((DBG_FILES, "file_exists(%s) -> %s\n", + filename, status ? "Yes" : "No")); + return status; +} + diff --git a/backend/dvi/mdvi-lib/font.c b/backend/dvi/mdvi-lib/font.c new file mode 100644 index 00000000..2f655df0 --- /dev/null +++ b/backend/dvi/mdvi-lib/font.c @@ -0,0 +1,519 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdlib.h> + +#include "mdvi.h" +#include "private.h" + +static ListHead fontlist; + +extern char *_mdvi_fallback_font; + +extern void vf_free_macros(DviFont *); + +#define finfo search.info +#define TYPENAME(font) \ + ((font)->finfo ? (font)->finfo->name : "none") + +int font_reopen(DviFont *font) +{ + if(font->in) + fseek(font->in, (long)0, SEEK_SET); + else if((font->in = fopen(font->filename, "rb")) == NULL) { + DEBUG((DBG_FILES, "reopen(%s) -> Error\n", font->filename)); + return -1; + } + DEBUG((DBG_FILES, "reopen(%s) -> Ok.\n", font->filename)); + return 0; +} + +/* used from context: params and device */ +static int load_font_file(DviParams *params, DviFont *font) +{ + int status; + + if(SEARCH_DONE(font->search)) + return -1; + if(font->in == NULL && font_reopen(font) < 0) + return -1; + DEBUG((DBG_FONTS, "%s: loading %s font from `%s'\n", + font->fontname, + font->finfo->name, font->filename)); + do { + status = font->finfo->load(params, font); + } while(status < 0 && mdvi_font_retry(params, font) == 0); + if(status < 0) + return -1; + if(font->in) { + fclose(font->in); + font->in = NULL; + } + DEBUG((DBG_FONTS, "reload_font(%s) -> %s\n", + font->fontname, status < 0 ? "Error" : "Ok")); + return 0; +} + +void font_drop_one(DviFontRef *ref) +{ + DviFont *font; + + font = ref->ref; + mdvi_free(ref); + /* drop all children */ + for(ref = font->subfonts; ref; ref = ref->next) { + /* just adjust the reference counts */ + ref->ref->links--; + } + if(--font->links == 0) { + /* + * this font doesn't have any more references, but + * we still keep it around in case a virtual font + * requests it. + */ + if(font->in) { + fclose(font->in); + font->in = NULL; + } + if(LIST(font) != fontlist.tail) { + /* move it to the end of the list */ + listh_remove(&fontlist, LIST(font)); + listh_append(&fontlist, LIST(font)); + } + } + DEBUG((DBG_FONTS, "%s: reference dropped, %d more left\n", + font->fontname, font->links)); +} + +void font_drop_chain(DviFontRef *head) +{ + DviFontRef *ptr; + + for(; (ptr = head); ) { + head = ptr->next; + font_drop_one(ptr); + } +} + +int font_free_unused(DviDevice *dev) +{ + DviFont *font, *next; + int count = 0; + + DEBUG((DBG_FONTS, "destroying unused fonts\n")); + for(font = (DviFont *)fontlist.head; font; font = next) { + DviFontRef *ref; + + next = font->next; + if(font->links) + continue; + count++; + DEBUG((DBG_FONTS, "removing unused %s font `%s'\n", + TYPENAME(font), font->fontname)); + listh_remove(&fontlist, LIST(font)); + if(font->in) + fclose(font->in); + /* get rid of subfonts (but can't use `drop_chain' here) */ + for(; (ref = font->subfonts); ) { + font->subfonts = ref->next; + mdvi_free(ref); + } + /* remove this font */ + font_reset_font_glyphs(dev, font, MDVI_FONTSEL_GLYPH); + /* let the font destroy its private data */ + if(font->finfo->freedata) + font->finfo->freedata(font); + /* destroy characters */ + if(font->chars) + mdvi_free(font->chars); + mdvi_free(font->fontname); + mdvi_free(font->filename); + mdvi_free(font); + } + DEBUG((DBG_FONTS, "%d unused fonts removed\n", count)); + return count; +} + +/* used from context: params and device */ +DviFontRef * +font_reference( + DviParams *params, /* rendering parameters */ + Int32 id, /* external id number */ + const char *name, /* font name */ + Int32 sum, /* checksum (from DVI of VF) */ + int hdpi, /* resolution */ + int vdpi, + Int32 scale) /* scaling factor (from DVI or VF) */ +{ + DviFont *font; + DviFontRef *ref; + DviFontRef *subfont_ref; + + /* see if there is a font with the same characteristics */ + for(font = (DviFont *)fontlist.head; font; font = font->next) { + if(strcmp(name, font->fontname) == 0 + && (!sum || !font->checksum || font->checksum == sum) + && font->hdpi == hdpi + && font->vdpi == vdpi + && font->scale == scale) + break; + } + /* try to load the font */ + if(font == NULL) { + font = mdvi_add_font(name, sum, hdpi, vdpi, scale); + if(font == NULL) + return NULL; + listh_append(&fontlist, LIST(font)); + } + if(!font->links && !font->chars && load_font_file(params, font) < 0) { + DEBUG((DBG_FONTS, "font_reference(%s) -> Error\n", name)); + return NULL; + } + ref = xalloc(DviFontRef); + ref->ref = font; + + font->links++; + for(subfont_ref = font->subfonts; subfont_ref; subfont_ref = subfont_ref->next) { + /* just adjust the reference counts */ + subfont_ref->ref->links++; + } + + ref->fontid = id; + + if(LIST(font) != fontlist.head) { + listh_remove(&fontlist, LIST(font)); + listh_prepend(&fontlist, LIST(font)); + } + + DEBUG((DBG_FONTS, "font_reference(%s) -> %d links\n", + font->fontname, font->links)); + return ref; +} + +void font_transform_glyph(DviOrientation orient, DviGlyph *g) +{ + BITMAP *map; + int x, y; + + map = (BITMAP *)g->data; + if(MDVI_GLYPH_ISEMPTY(map)) + map = NULL; + + /* put the glyph in the right orientation */ + switch(orient) { + case MDVI_ORIENT_TBLR: + break; + case MDVI_ORIENT_TBRL: + g->x = g->w - g->x; + if(map) bitmap_flip_horizontally(map); + break; + case MDVI_ORIENT_BTLR: + g->y = g->h - g->y; + if(map) bitmap_flip_vertically(map); + break; + case MDVI_ORIENT_BTRL: + g->x = g->w - g->x; + g->y = g->h - g->y; + if(map) bitmap_flip_diagonally(map); + break; + case MDVI_ORIENT_RP90: + if(map) bitmap_rotate_counter_clockwise(map); + y = g->y; + x = g->w - g->x; + g->x = y; + g->y = x; + SWAPINT(g->w, g->h); + break; + case MDVI_ORIENT_RM90: + if(map) bitmap_rotate_clockwise(map); + y = g->h - g->y; + x = g->x; + g->x = y; + g->y = x; + SWAPINT(g->w, g->h); + break; + case MDVI_ORIENT_IRP90: + if(map) bitmap_flip_rotate_counter_clockwise(map); + y = g->y; + x = g->x; + g->x = y; + g->y = x; + SWAPINT(g->w, g->h); + break; + case MDVI_ORIENT_IRM90: + if(map) bitmap_flip_rotate_clockwise(map); + y = g->h - g->y; + x = g->w - g->x; + g->x = y; + g->y = x; + SWAPINT(g->w, g->h); + break; + } +} + +static int load_one_glyph(DviContext *dvi, DviFont *font, int code) +{ + BITMAP *map; + DviFontChar *ch; + int status; + +#ifndef NODEBUG + ch = FONTCHAR(font, code); + DEBUG((DBG_GLYPHS, "loading glyph code %d in %s (at %u)\n", + code, font->fontname, ch->offset)); +#endif + if(font->finfo->getglyph == NULL) { + /* font type does not need to load glyphs (e.g. vf) */ + return 0; + } + + status = font->finfo->getglyph(&dvi->params, font, code); + if(status < 0) + return -1; + /* get the glyph again (font->chars may have changed) */ + ch = FONTCHAR(font, code); +#ifndef NODEBUG + map = (BITMAP *)ch->glyph.data; + if(DEBUGGING(BITMAP_DATA)) { + DEBUG((DBG_BITMAP_DATA, + "%s: new %s bitmap for character %d:\n", + font->fontname, TYPENAME(font), code)); + if(MDVI_GLYPH_ISEMPTY(map)) + DEBUG((DBG_BITMAP_DATA, "blank bitmap\n")); + else + bitmap_print(stderr, map); + } +#endif + /* check if we have to scale it */ + if(!font->finfo->scalable && font->hdpi != font->vdpi) { + int hs, vs, d; + + /* we scale it ourselves */ + d = Max(font->hdpi, font->vdpi); + hs = d / font->hdpi; + vs = d / font->vdpi; + if(ch->width && ch->height && (hs > 1 || vs > 1)) { + int h, v; + DviGlyph glyph; + + DEBUG((DBG_FONTS, + "%s: scaling glyph %d to resolution %dx%d\n", + font->fontname, code, font->hdpi, font->vdpi)); + h = dvi->params.hshrink; + v = dvi->params.vshrink; + d = dvi->params.density; + dvi->params.hshrink = hs; + dvi->params.vshrink = vs; + dvi->params.density = 50; + /* shrink it */ + font->finfo->shrink0(dvi, font, ch, &glyph); + /* restore parameters */ + dvi->params.hshrink = h; + dvi->params.vshrink = v; + dvi->params.density = d; + /* update glyph data */ + if(!MDVI_GLYPH_ISEMPTY(ch->glyph.data)) + bitmap_destroy((BITMAP *)ch->glyph.data); + ch->glyph.data = glyph.data; + ch->glyph.x = glyph.x; + ch->glyph.y = glyph.y; + ch->glyph.w = glyph.w; + ch->glyph.h = glyph.h; + } + + } + font_transform_glyph(dvi->params.orientation, &ch->glyph); + + return 0; +} + +DviFontChar *font_get_glyph(DviContext *dvi, DviFont *font, int code) +{ + DviFontChar *ch; + +again: + /* if we have not loaded the font yet, do so now */ + if(!font->chars && load_font_file(&dvi->params, font) < 0) + return NULL; + + /* get the unscaled glyph, maybe loading it from disk */ + ch = FONTCHAR(font, code); + if(!ch || !glyph_present(ch)) + return NULL; + if(!ch->loaded && load_one_glyph(dvi, font, code) == -1) { + if(font->chars == NULL) { + /* we need to try another font class */ + goto again; + } + return NULL; + } + /* yes, we have to do this again */ + ch = FONTCHAR(font, code); + + /* Got the glyph. If we also have the right scaled glyph, do no more */ + if(!ch->width || !ch->height || + font->finfo->getglyph == NULL || + (dvi->params.hshrink == 1 && dvi->params.vshrink == 1)) + return ch; + + /* If the glyph is empty, we just need to shrink the box */ + if(ch->missing || MDVI_GLYPH_ISEMPTY(ch->glyph.data)) { + if(MDVI_GLYPH_UNSET(ch->shrunk.data)) + mdvi_shrink_box(dvi, font, ch, &ch->shrunk); + return ch; + } else if(MDVI_ENABLED(dvi, MDVI_PARAM_ANTIALIASED)) { + if(ch->grey.data && + !MDVI_GLYPH_ISEMPTY(ch->grey.data) && + ch->fg == dvi->curr_fg && + ch->bg == dvi->curr_bg) + return ch; + if(ch->grey.data && + !MDVI_GLYPH_ISEMPTY(ch->grey.data)) { + if(dvi->device.free_image) + dvi->device.free_image(ch->grey.data); + ch->grey.data = NULL; + } + font->finfo->shrink1(dvi, font, ch, &ch->grey); + } else if(!ch->shrunk.data) + font->finfo->shrink0(dvi, font, ch, &ch->shrunk); + + return ch; +} + +void font_reset_one_glyph(DviDevice *dev, DviFontChar *ch, int what) +{ + if(!glyph_present(ch)) + return; + if(what & MDVI_FONTSEL_BITMAP) { + if(MDVI_GLYPH_NONEMPTY(ch->shrunk.data)) + bitmap_destroy((BITMAP *)ch->shrunk.data); + ch->shrunk.data = NULL; + } + if(what & MDVI_FONTSEL_GREY) { + if(MDVI_GLYPH_NONEMPTY(ch->grey.data)) { + if(dev->free_image) + dev->free_image(ch->grey.data); + } + ch->grey.data = NULL; + } + if(what & MDVI_FONTSEL_GLYPH) { + if(MDVI_GLYPH_NONEMPTY(ch->glyph.data)) + bitmap_destroy((BITMAP *)ch->glyph.data); + ch->glyph.data = NULL; + ch->loaded = 0; + } +} + +void font_reset_font_glyphs(DviDevice *dev, DviFont *font, int what) +{ + int i; + DviFontChar *ch; + + if(what & MDVI_FONTSEL_GLYPH) + what |= MDVI_FONTSEL_BITMAP|MDVI_FONTSEL_GREY; + if(font->subfonts) { + DviFontRef *ref; + + for(ref = font->subfonts; ref; ref = ref->next) + font_reset_font_glyphs(dev, ref->ref, what); + } + if(font->in) { + DEBUG((DBG_FILES, "close(%s)\n", font->filename)); + fclose(font->in); + font->in = NULL; + } + if(font->finfo->getglyph == NULL) + return; + DEBUG((DBG_FONTS, "resetting glyphs in font `%s'\n", font->fontname)); + for(ch = font->chars, i = font->loc; i <= font->hic; ch++, i++) { + if(glyph_present(ch)) + font_reset_one_glyph(dev, ch, what); + } + if((what & MDVI_FONTSEL_GLYPH) && font->finfo->reset) + font->finfo->reset(font); +} + +void font_reset_chain_glyphs(DviDevice *dev, DviFontRef *head, int what) +{ + DviFontRef *ref; + + for(ref = head; ref; ref = ref->next) + font_reset_font_glyphs(dev, ref->ref, what); +} + +static int compare_refs(const void *p1, const void *p2) +{ + return ((*(DviFontRef **)p1)->fontid - (*(DviFontRef **)p2)->fontid); +} + +void font_finish_definitions(DviContext *dvi) +{ + int count; + DviFontRef **map, *ref; + + /* first get rid of unused fonts */ + font_free_unused(&dvi->device); + + if(dvi->fonts == NULL) { + mdvi_warning(_("%s: no fonts defined\n"), dvi->filename); + return; + } + map = xnalloc(DviFontRef *, dvi->nfonts); + for(count = 0, ref = dvi->fonts; ref; ref = ref->next) + map[count++] = ref; + /* sort the array by font id */ + qsort(map, dvi->nfonts, sizeof(DviFontRef *), compare_refs); + dvi->fontmap = map; +} + +DviFontRef *font_find_flat(DviContext *dvi, Int32 id) +{ + DviFontRef *ref; + + for(ref = dvi->fonts; ref; ref = ref->next) + if(ref->fontid == id) + break; + return ref; +} + +DviFontRef *font_find_mapped(DviContext *dvi, Int32 id) +{ + int lo, hi, n; + DviFontRef **map; + + /* do a binary search */ + lo = 0; hi = dvi->nfonts; + map = dvi->fontmap; + while(lo < hi) { + int sign; + + n = (hi + lo) >> 1; + sign = (map[n]->fontid - id); + if(sign == 0) + break; + else if(sign < 0) + lo = n; + else + hi = n; + } + if(lo >= hi) + return NULL; + return map[n]; +} + diff --git a/backend/dvi/mdvi-lib/fontmap.c b/backend/dvi/mdvi-lib/fontmap.c new file mode 100644 index 00000000..c3c3a8d3 --- /dev/null +++ b/backend/dvi/mdvi-lib/fontmap.c @@ -0,0 +1,1174 @@ +/* encoding.c - functions to manipulate encodings and fontmaps */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <sys/stat.h> + +#include "mdvi.h" +#include "private.h" + +#include <kpathsea/expand.h> +#include <kpathsea/pathsearch.h> + +typedef struct _DviFontMap DviFontMap; + +struct _DviFontMap { + ListHead entries; + DviHashTable fonts; +}; + +typedef struct _PSFontMap { + struct _PSFontMap *next; + struct _PSFontMap *prev; + char *psname; + char *mapname; + char *fullname; +} PSFontMap; + +/* these variables control PS font maps */ +static char *pslibdir = NULL; /* path where we look for PS font maps */ +static char *psfontdir = NULL; /* PS font search path */ +static int psinitialized = 0; /* did we expand the path already? */ + +static ListHead psfonts = MDVI_EMPTY_LIST_HEAD; +static DviHashTable pstable = MDVI_EMPTY_HASH_TABLE; + +static ListHead fontmaps; +static DviHashTable maptable; +static int fontmaps_loaded = 0; + +#define MAP_HASH_SIZE 57 +#define ENC_HASH_SIZE 31 +#define PSMAP_HASH_SIZE 57 + +/* this hash table should be big enough to + * hold (ideally) one glyph name per bucket */ +#define ENCNAME_HASH_SIZE 131 /* most TeX fonts have 128 glyphs */ + +static ListHead encodings = MDVI_EMPTY_LIST_HEAD; +static DviEncoding *tex_text_encoding = NULL; +static DviEncoding *default_encoding = NULL; + +/* we keep two hash tables for encodings: one for their base files (e.g. + * "8r.enc"), and another one for their names (e.g. "TeXBase1Encoding") */ +static DviHashTable enctable = MDVI_EMPTY_HASH_TABLE; +static DviHashTable enctable_file = MDVI_EMPTY_HASH_TABLE; + +/* the TeX text encoding, from dvips */ +static char *tex_text_vector[256] = { + "Gamma", "Delta", "Theta", "Lambda", "Xi", "Pi", "Sigma", "Upsilon", + "Phi", "Psi", "Omega", "arrowup", "arrowdown", "quotesingle", + "exclamdown", "questiondown", "dotlessi", "dotlessj", "grave", + "acute", "caron", "breve", "macron", "ring", "cedilla", + "germandbls", "ae", "oe", "oslash", "AE", "OE", "Oslash", "space", + "exclam", "quotedbl", "numbersign", "dollar", "percent", + "ampersand", "quoteright", "parenleft", "parenright", "asterisk", + "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", + "three", "four", "five", "six", "seven", "eight", "nine", "colon", + "semicolon", "less", "equal", "greater", "question", "at", "A", "B", + "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", + "bracketleft", "backslash", "bracketright", "circumflex", + "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", + "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", + "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "tilde", + "dieresis", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static void ps_init_default_paths __PROTO((void)); +static int mdvi_set_default_encoding __PROTO((const char *name)); +static int mdvi_init_fontmaps __PROTO((void)); + +/* + * What we do here is allocate one block large enough to hold the entire + * file (these files are small) minus the leading comments. This is much + * better than allocating up to 256 tiny strings per encoding vector. */ +static int read_encoding(DviEncoding *enc) +{ + FILE *in; + int curr; + char *line; + char *name; + char *next; + struct stat st; + + ASSERT(enc->private == NULL); + + in = fopen(enc->filename, "rb"); + if(in == NULL) { + DEBUG((DBG_FMAP, "%s: could not read `%s' (%s)\n", + enc->name, enc->filename, strerror(errno))); + return -1; + } + if(fstat(fileno(in), &st) < 0) { + /* should not happen */ + fclose(in); + return -1; + } + st.st_size -= enc->offset; + + /* this will be one big string */ + enc->private = (char *)malloc(st.st_size + 1); + /* setup the hash table */ + mdvi_hash_create(&enc->nametab, ENCNAME_HASH_SIZE); + /* setup the encoding vector */ + enc->vector = (char **)mdvi_malloc(256 * sizeof(char *)); + + /* jump to the beginning of the interesting part */ + fseek(in, enc->offset, SEEK_SET); + /* and read everything */ + if(fread(enc->private, st.st_size, 1, in) != 1) { + fclose(in); + mdvi_free(enc->private); + enc->private = NULL; + return -1; + } + /* we don't need this anymore */ + fclose(in); + curr = 0; + + next = name = NULL; + DEBUG((DBG_FMAP, "%s: reading encoding vector\n", enc->name)); + for(line = enc->private; *line && curr < 256; line = next) { + SKIPSP(line); + if(*line == ']') { + line++; SKIPSP(line); + if(STRNEQ(line, "def", 3)) + break; + } + name = getword(line, " \t\n", &next); + if(name == NULL) + break; + /* next > line */ + if(*name < ' ') + continue; + if(*name == '%') { + while(*next && *next != '\n') + next++; + if(*next) next++; /* skip \n */ + continue; + } + + /* got a name */ + if(*next) *next++ = 0; + + if(*name == '/') + name++; + enc->vector[curr] = name; + /* add it to the hash table */ + if(!STREQ(name, ".notdef")) { + mdvi_hash_add(&enc->nametab, MDVI_KEY(name), + Int2Ptr(curr + 1), MDVI_HASH_REPLACE); + } + curr++; + } + if(curr == 0) { + mdvi_hash_reset(&enc->nametab, 0); + mdvi_free(enc->private); + mdvi_free(enc); + return -1; + } + while(curr < 256) + enc->vector[curr++] = NULL; + return 0; +} + +static DviEncoding *find_encoding(const char *name) +{ + return (DviEncoding *)(encodings.count ? + mdvi_hash_lookup(&enctable, MDVI_KEY(name)) : NULL); +} + +static void destroy_encoding(DviEncoding *enc) +{ + if(enc == default_encoding) { + default_encoding = tex_text_encoding; + /* now we use reference counts again */ + mdvi_release_encoding(enc, 1); + } + if(enc != tex_text_encoding) { + mdvi_hash_reset(&enc->nametab, 0); + if(enc->private) { + mdvi_free(enc->private); + mdvi_free(enc->vector); + } + if(enc->name) + mdvi_free(enc->name); + if(enc->filename) + mdvi_free(enc->filename); + mdvi_free(enc); + } +} + +/* this is used for the `enctable_file' hash table */ +static void file_hash_free(DviHashKey key, void *data) +{ + mdvi_free(key); +} + +static DviEncoding *register_encoding(const char *basefile, int replace) +{ + DviEncoding *enc; + FILE *in; + char *filename; + char *name; + Dstring input; + char *line; + long offset; + + DEBUG((DBG_FMAP, "register_encoding(%s)\n", basefile)); + + if(encodings.count) { + enc = mdvi_hash_lookup(&enctable_file, MDVI_KEY(basefile)); + if(enc != NULL) { + DEBUG((DBG_FMAP, "%s: already there\n", basefile)); + return enc; /* no error */ + } + } + + /* try our own files first */ + filename = kpse_find_file(basefile, + kpse_program_text_format, 0); + + /* then try the system-wide ones */ + if(filename == NULL) + filename = kpse_find_file(basefile, + kpse_tex_ps_header_format, 0); + if(filename == NULL) + filename = kpse_find_file(basefile, + kpse_dvips_config_format, 0); + + /* finally try the given name */ + if(filename == NULL) + filename = mdvi_strdup(basefile); + + in = fopen(filename, "rb"); + if(in == NULL) { + mdvi_free(filename); + return NULL; + } + + /* just lookup the name of the encoding */ + name = NULL; + dstring_init(&input); + while((line = dgets(&input, in)) != NULL) { + if(STRNEQ(line, "Encoding=", 9)) { + name = getword(line + 9, " \t", &line); + if(*line) *line++ = 0; + break; + } else if(*line == '/') { + char *label = getword(line + 1, " \t", &line); + if(*line) { + *line++ = 0; + SKIPSP(line); + if(*line == '[') { + *line = 0; + name = label; + break; + } + } + } + } + offset = ftell(in); + fclose(in); + if(name == NULL || *name == 0) { + DEBUG((DBG_FMAP, + "%s: could not determine name of encoding\n", + basefile)); + mdvi_free(filename); + return NULL; + } + + /* check if the encoding is already there */ + enc = find_encoding(name); + if(enc == tex_text_encoding) { + /* A special case: if the vector we found is the static one, + * allow the user to override it with an external file */ + listh_remove(&encodings, LIST(enc)); + mdvi_hash_remove(&enctable, MDVI_KEY(enc->name)); + if(enc == default_encoding) + default_encoding = NULL; + } else if(enc) { + /* if the encoding is being used, refuse to remove it */ + if(enc->links) { + mdvi_free(filename); + dstring_reset(&input); + return NULL; + } + if(replace) { + mdvi_hash_remove(&enctable, MDVI_KEY(name)); + mdvi_hash_remove(&enctable_file, MDVI_KEY(basefile)); + listh_remove(&encodings, LIST(enc)); + if(enc == default_encoding) { + default_encoding = NULL; + mdvi_release_encoding(enc, 1); + } + DEBUG((DBG_FMAP, "%s: overriding encoding\n", name)); + destroy_encoding(enc); + } else { + mdvi_free(filename); + dstring_reset(&input); + return enc; /* no error */ + } + } + enc = xalloc(DviEncoding); + enc->name = mdvi_strdup(name); + enc->filename = filename; + enc->links = 0; + enc->offset = offset; + enc->private = NULL; + enc->vector = NULL; + mdvi_hash_init(&enc->nametab); + dstring_reset(&input); + if(default_encoding == NULL) + default_encoding = enc; + mdvi_hash_add(&enctable, MDVI_KEY(enc->name), + enc, MDVI_HASH_UNCHECKED); + mdvi_hash_add(&enctable_file, MDVI_KEY(mdvi_strdup(basefile)), + enc, MDVI_HASH_REPLACE); + listh_prepend(&encodings, LIST(enc)); + DEBUG((DBG_FMAP, "%s: encoding `%s' registered\n", + basefile, enc->name)); + return enc; +} + +DviEncoding *mdvi_request_encoding(const char *name) +{ + DviEncoding *enc = find_encoding(name); + + if(enc == NULL) { + DEBUG((DBG_FMAP, "%s: encoding not found, returning default `%s'\n", + name, default_encoding->name)); + return default_encoding; + } + /* we don't keep reference counts for this */ + if(enc == tex_text_encoding) + return enc; + if(!enc->private && read_encoding(enc) < 0) + return NULL; + enc->links++; + + /* if the hash table is empty, rebuild it */ + if(enc->nametab.nkeys == 0) { + int i; + + DEBUG((DBG_FMAP, "%s: rehashing\n", enc->name)); + for(i = 0; i < 256; i++) { + if(enc->vector[i] == NULL) + continue; + mdvi_hash_add(&enc->nametab, + MDVI_KEY(enc->vector[i]), + (DviHashKey)Int2Ptr(i), + MDVI_HASH_REPLACE); + } + } + return enc; +} + +void mdvi_release_encoding(DviEncoding *enc, int should_free) +{ + /* ignore our static encoding */ + if(enc == tex_text_encoding) + return; + if(!enc->links || --enc->links > 0 || !should_free) + return; + DEBUG((DBG_FMAP, "%s: resetting encoding vector\n", enc->name)); + mdvi_hash_reset(&enc->nametab, 1); /* we'll reuse it */ +} + +int mdvi_encode_glyph(DviEncoding *enc, const char *name) +{ + void *data; + + data = mdvi_hash_lookup(&enc->nametab, MDVI_KEY(name)); + if(data == NULL) + return -1; + /* we added +1 to the hashed index just to distinguish + * a failed lookup from a zero index. Adjust it now. */ + return (Ptr2Int(data) - 1); +} + +/**************** + * Fontmaps * + ****************/ + +static void parse_spec(DviFontMapEnt *ent, char *spec) +{ + char *arg, *command; + + /* this is a ridiculously simple parser, and recognizes only + * things of the form <argument> <command>. Of these, only + * command=SlantFont, ExtendFont and ReEncodeFont are handled */ + while(*spec) { + arg = getword(spec, " \t", &spec); + if(*spec) *spec++ = 0; + command = getword(spec, " \t", &spec); + if(*spec) *spec++ = 0; + if(!arg || !command) + continue; + if(STREQ(command, "SlantFont")) { + double x = 10000 * strtod(arg, 0); + + /* SFROUND evaluates arguments twice */ + ent->slant = SFROUND(x); + } else if(STREQ(command, "ExtendFont")) { + double x = 10000 * strtod(arg, 0); + + ent->extend = SFROUND(x); + } else if(STREQ(command, "ReEncodeFont")) { + if(ent->encoding) + mdvi_free(ent->encoding); + ent->encoding = mdvi_strdup(arg); + } + } +} + +#if 0 +static void print_ent(DviFontMapEnt *ent) +{ + printf("Entry for `%s':\n", ent->fontname); + printf(" PS name: %s\n", ent->psname ? ent->psname : "(none)"); + printf(" Encoding: %s\n", ent->encoding ? ent->encoding : "(default)"); + printf(" EncFile: %s\n", ent->encfile ? ent->encfile : "(none)"); + printf(" FontFile: %s\n", ent->fontfile ? ent->fontfile : "(same)"); + printf(" Extend: %ld\n", ent->extend); + printf(" Slant: %ld\n", ent->slant); +} +#endif + +DviFontMapEnt *mdvi_load_fontmap(const char *file) +{ + char *ptr; + FILE *in; + int lineno = 1; + Dstring input; + ListHead list; + DviFontMapEnt *ent; + DviEncoding *last_encoding; + char *last_encfile; + + ptr = kpse_find_file(file, kpse_program_text_format, 0); + if(ptr == NULL) + ptr = kpse_find_file(file, kpse_tex_ps_header_format, 0); + if(ptr == NULL) + ptr = kpse_find_file(file, kpse_dvips_config_format, 0); + if(ptr == NULL) + in = fopen(file, "rb"); + else { + in = fopen(ptr, "rb"); + mdvi_free(ptr); + } + if(in == NULL) + return NULL; + + ent = NULL; + listh_init(&list); + dstring_init(&input); + last_encoding = NULL; + last_encfile = NULL; + + while((ptr = dgets(&input, in)) != NULL) { + char *font_file; + char *tex_name; + char *ps_name; + char *vec_name; + int is_encoding; + DviEncoding *enc; + + lineno++; + SKIPSP(ptr); + + /* we skip what dvips does */ + if(*ptr <= ' ' || *ptr == '*' || *ptr == '#' || + *ptr == ';' || *ptr == '%') + continue; + + font_file = NULL; + tex_name = NULL; + ps_name = NULL; + vec_name = NULL; + is_encoding = 0; + + if(ent == NULL) { + ent = xalloc(DviFontMapEnt); + ent->encoding = NULL; + ent->slant = 0; + ent->extend = 0; + } + while(*ptr) { + char *hdr_name = NULL; + + while(*ptr && *ptr <= ' ') + ptr++; + if(*ptr == 0) + break; + if(*ptr == '"') { + char *str; + + str = getstring(ptr, " \t", &ptr); + if(*ptr) *ptr++ = 0; + parse_spec(ent, str); + continue; + } else if(*ptr == '<') { + ptr++; + if(*ptr == '<') + ptr++; + else if(*ptr == '[') { + is_encoding = 1; + ptr++; + } + SKIPSP(ptr); + hdr_name = ptr; + } else if(!tex_name) + tex_name = ptr; + else if(!ps_name) + ps_name = ptr; + else + hdr_name = ptr; + + /* get next word */ + getword(ptr, " \t", &ptr); + if(*ptr) *ptr++ = 0; + + if(hdr_name) { + const char *ext = file_extension(hdr_name); + + if(is_encoding || (ext && STRCEQ(ext, "enc"))) + vec_name = hdr_name; + else + font_file = hdr_name; + } + } + + if(tex_name == NULL) + continue; + ent->fontname = mdvi_strdup(tex_name); + ent->psname = ps_name ? mdvi_strdup(ps_name) : NULL; + ent->fontfile = font_file ? mdvi_strdup(font_file) : NULL; + ent->encfile = vec_name ? mdvi_strdup(vec_name) : NULL; + ent->fullfile = NULL; + enc = NULL; /* we don't have this yet */ + + /* if we have an encoding file, register it */ + if(ent->encfile) { + /* register_encoding is smart enough not to load the + * same file twice */ + if(!last_encfile || !STREQ(last_encfile, ent->encfile)) { + last_encfile = ent->encfile; + last_encoding = register_encoding(ent->encfile, 1); + } + enc = last_encoding; + } + if(ent->encfile && enc){ + if(ent->encoding && !STREQ(ent->encoding, enc->name)) { + mdvi_warning( + _("%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n"), + file, lineno, ent->encfile, + ent->encoding, enc->name); + } else if(!ent->encoding) + ent->encoding = mdvi_strdup(enc->name); + } + + /* add it to the list */ + /*print_ent(ent);*/ + listh_append(&list, LIST(ent)); + ent = NULL; + } + dstring_reset(&input); + fclose(in); + + return (DviFontMapEnt *)list.head; +} + +static void free_ent(DviFontMapEnt *ent) +{ + ASSERT(ent->fontname != NULL); + mdvi_free(ent->fontname); + if(ent->psname) + mdvi_free(ent->psname); + if(ent->fontfile) + mdvi_free(ent->fontfile); + if(ent->encoding) + mdvi_free(ent->encoding); + if(ent->encfile) + mdvi_free(ent->encfile); + if(ent->fullfile) + mdvi_free(ent->fullfile); + mdvi_free(ent); +} + +void mdvi_install_fontmap(DviFontMapEnt *head) +{ + DviFontMapEnt *ent, *next; + + for(ent = head; ent; ent = next) { + /* add all the entries, overriding old ones */ + DviFontMapEnt *old; + + old = (DviFontMapEnt *) + mdvi_hash_remove(&maptable, MDVI_KEY(ent->fontname)); + if(old != NULL) { + DEBUG((DBG_FMAP, "%s: overriding fontmap entry\n", + old->fontname)); + listh_remove(&fontmaps, LIST(old)); + free_ent(old); + } + next = ent->next; + mdvi_hash_add(&maptable, MDVI_KEY(ent->fontname), + ent, MDVI_HASH_UNCHECKED); + listh_append(&fontmaps, LIST(ent)); + } +} + +static void init_static_encoding() +{ + DviEncoding *encoding; + int i; + + DEBUG((DBG_FMAP, "installing static TeX text encoding\n")); + encoding = xalloc(DviEncoding); + encoding->private = ""; + encoding->filename = ""; + encoding->name = "TeXTextEncoding"; + encoding->vector = tex_text_vector; + encoding->links = 1; + encoding->offset = 0; + mdvi_hash_create(&encoding->nametab, ENCNAME_HASH_SIZE); + for(i = 0; i < 256; i++) { + if(encoding->vector[i]) { + mdvi_hash_add(&encoding->nametab, + MDVI_KEY(encoding->vector[i]), + (DviHashKey)Int2Ptr(i), + MDVI_HASH_UNCHECKED); + } + } + ASSERT_VALUE(encodings.count, 0); + mdvi_hash_create(&enctable, ENC_HASH_SIZE); + mdvi_hash_create(&enctable_file, ENC_HASH_SIZE); + enctable_file.hash_free = file_hash_free; + mdvi_hash_add(&enctable, MDVI_KEY(encoding->name), + encoding, MDVI_HASH_UNCHECKED); + listh_prepend(&encodings, LIST(encoding)); + tex_text_encoding = encoding; + default_encoding = tex_text_encoding; +} + +static int mdvi_set_default_encoding(const char *name) +{ + DviEncoding *enc, *old; + + enc = find_encoding(name); + if(enc == NULL) + return -1; + if(enc == default_encoding) + return 0; + /* this will read it from file if necessary, + * but it can fail if the file is corrupted */ + enc = mdvi_request_encoding(name); + if(enc == NULL) + return -1; + old = default_encoding; + default_encoding = enc; + if(old != tex_text_encoding) + mdvi_release_encoding(old, 1); + return 0; +} + +static int mdvi_init_fontmaps(void) +{ + char *file; + char *line; + FILE *in; + Dstring input; + int count = 0; + char *config; + + if(fontmaps_loaded) + return 0; + /* we will only try this once */ + fontmaps_loaded = 1; + + DEBUG((DBG_FMAP, "reading fontmaps\n")); + + /* make sure the static encoding is there */ + init_static_encoding(); + + /* create the fontmap hash table */ + mdvi_hash_create(&maptable, MAP_HASH_SIZE); + + /* get the name of our configuration file */ + config = kpse_cnf_get("mdvi-config"); + if(config == NULL) + config = MDVI_DEFAULT_CONFIG; + /* let's ask kpathsea for the file first */ + file = kpse_find_file(config, kpse_program_text_format, 0); + if(file == NULL) + in = fopen(config, "rb"); + else { + in = fopen(file, "rb"); + mdvi_free(file); + } + if(in == NULL) + return -1; + dstring_init(&input); + while((line = dgets(&input, in)) != NULL) { + char *arg; + + SKIPSP(line); + if(*line < ' ' || *line == '#' || *line == '%') + continue; + if(STRNEQ(line, "fontmap", 7)) { + DviFontMapEnt *ent; + + arg = getstring(line + 7, " \t", &line); *line = 0; + DEBUG((DBG_FMAP, "%s: loading fontmap\n", arg)); + ent = mdvi_load_fontmap(arg); + if(ent == NULL) + mdvi_warning(_("%s: could not load fontmap\n"), arg); + else { + DEBUG((DBG_FMAP, + "%s: installing fontmap\n", arg)); + mdvi_install_fontmap(ent); + count++; + } + } else if(STRNEQ(line, "encoding", 8)) { + arg = getstring(line + 8, " \t", &line); *line = 0; + if(arg && *arg) + register_encoding(arg, 1); + } else if(STRNEQ(line, "default-encoding", 16)) { + arg = getstring(line + 16, " \t", &line); *line = 0; + if(mdvi_set_default_encoding(arg) < 0) + mdvi_warning(_("%s: could not set as default encoding\n"), + arg); + } else if(STRNEQ(line, "psfontpath", 10)) { + arg = getstring(line + 11, " \t", &line); *line = 0; + if(!psinitialized) + ps_init_default_paths(); + if(psfontdir) + mdvi_free(psfontdir); + psfontdir = kpse_path_expand(arg); + } else if(STRNEQ(line, "pslibpath", 9)) { + arg = getstring(line + 10, " \t", &line); *line = 0; + if(!psinitialized) + ps_init_default_paths(); + if(pslibdir) + mdvi_free(pslibdir); + pslibdir = kpse_path_expand(arg); + } else if(STRNEQ(line, "psfontmap", 9)) { + arg = getstring(line + 9, " \t", &line); *line = 0; + if(mdvi_ps_read_fontmap(arg) < 0) + mdvi_warning("%s: %s: could not read PS fontmap\n", + config, arg); + } + } + fclose(in); + dstring_reset(&input); + fontmaps_loaded = 1; + DEBUG((DBG_FMAP, "%d files installed, %d fontmaps\n", + count, fontmaps.count)); + return count; +} + +int mdvi_query_fontmap(DviFontMapInfo *info, const char *fontname) +{ + DviFontMapEnt *ent; + + if(!fontmaps_loaded && mdvi_init_fontmaps() < 0) + return -1; + ent = (DviFontMapEnt *)mdvi_hash_lookup(&maptable, MDVI_KEY(fontname)); + + if(ent == NULL) + return -1; + info->psname = ent->psname; + info->encoding = ent->encoding; + info->fontfile = ent->fontfile; + info->extend = ent->extend; + info->slant = ent->slant; + info->fullfile = ent->fullfile; + + return 0; +} + +int mdvi_add_fontmap_file(const char *name, const char *fullpath) +{ + DviFontMapEnt *ent; + + if(!fontmaps_loaded && mdvi_init_fontmaps() < 0) + return -1; + ent = (DviFontMapEnt *)mdvi_hash_lookup(&maptable, MDVI_KEY(name)); + if(ent == NULL) + return -1; + if(ent->fullfile) + mdvi_free(ent->fullfile); + ent->fullfile = mdvi_strdup(fullpath); + return 0; +} + + +void mdvi_flush_encodings(void) +{ + DviEncoding *enc; + + if(enctable.nbucks == 0) + return; + + DEBUG((DBG_FMAP, "flushing %d encodings\n", encodings.count)); + /* asked to remove all encodings */ + for(; (enc = (DviEncoding *)encodings.head); ) { + encodings.head = LIST(enc->next); + if((enc != tex_text_encoding && enc->links) || enc->links > 1) { + mdvi_warning(_("encoding vector `%s' is in use\n"), + enc->name); + } + destroy_encoding(enc); + } + /* destroy the static encoding */ + if(tex_text_encoding->nametab.buckets) + mdvi_hash_reset(&tex_text_encoding->nametab, 0); + mdvi_hash_reset(&enctable, 0); + mdvi_hash_reset(&enctable_file, 0); +} + +void mdvi_flush_fontmaps(void) +{ + DviFontMapEnt *ent; + + if(!fontmaps_loaded) + return; + + DEBUG((DBG_FMAP, "flushing %d fontmaps\n", fontmaps.count)); + for(; (ent = (DviFontMapEnt *)fontmaps.head); ) { + fontmaps.head = LIST(ent->next); + free_ent(ent); + } + mdvi_hash_reset(&maptable, 0); + fontmaps_loaded = 0; +} + +/* reading of PS fontmaps */ + +void ps_init_default_paths(void) +{ + char *kppath; + char *kfpath; + + ASSERT(psinitialized == 0); + + kppath = getenv("GS_LIB"); + kfpath = getenv("GS_FONTPATH"); + + if(kppath != NULL) + pslibdir = kpse_path_expand(kppath); + if(kfpath != NULL) + psfontdir = kpse_path_expand(kfpath); + + listh_init(&psfonts); + mdvi_hash_create(&pstable, PSMAP_HASH_SIZE); + psinitialized = 1; +} + +int mdvi_ps_read_fontmap(const char *name) +{ + char *fullname; + FILE *in; + Dstring dstr; + char *line; + int count = 0; + + if(!psinitialized) + ps_init_default_paths(); + if(pslibdir) + fullname = kpse_path_search(pslibdir, name, 1); + else + fullname = (char *)name; + in = fopen(fullname, "rb"); + if(in == NULL) { + if(fullname != name) + mdvi_free(fullname); + return -1; + } + dstring_init(&dstr); + + while((line = dgets(&dstr, in)) != NULL) { + char *name; + char *mapname; + const char *ext; + PSFontMap *ps; + + SKIPSP(line); + /* we're looking for lines of the form + * /FONT-NAME (fontfile) + * /FONT-NAME /FONT-ALIAS + */ + if(*line != '/') + continue; + name = getword(line + 1, " \t", &line); + if(*line) *line++ = 0; + mapname = getword(line, " \t", &line); + if(*line) *line++ = 0; + + if(!name || !mapname || !*name) + continue; + if(*mapname == '(') { + char *end; + + mapname++; + for(end = mapname; *end && *end != ')'; end++); + *end = 0; + } + if(!*mapname) + continue; + /* dont add `.gsf' fonts, which require a full blown + * PostScript interpreter */ + ext = file_extension(mapname); + if(ext && STREQ(ext, "gsf")) { + DEBUG((DBG_FMAP, "(ps) %s: font `%s' ignored\n", + name, mapname)); + continue; + } + ps = (PSFontMap *)mdvi_hash_lookup(&pstable, MDVI_KEY(name)); + if(ps != NULL) { + if(STREQ(ps->mapname, mapname)) + continue; + DEBUG((DBG_FMAP, + "(ps) replacing font `%s' (%s) by `%s'\n", + name, ps->mapname, mapname)); + mdvi_free(ps->mapname); + ps->mapname = mdvi_strdup(mapname); + if(ps->fullname) { + mdvi_free(ps->fullname); + ps->fullname = NULL; + } + } else { + DEBUG((DBG_FMAP, "(ps) adding font `%s' as `%s'\n", + name, mapname)); + ps = xalloc(PSFontMap); + ps->psname = mdvi_strdup(name); + ps->mapname = mdvi_strdup(mapname); + ps->fullname = NULL; + listh_append(&psfonts, LIST(ps)); + mdvi_hash_add(&pstable, MDVI_KEY(ps->psname), + ps, MDVI_HASH_UNCHECKED); + count++; + } + } + fclose(in); + dstring_reset(&dstr); + + DEBUG((DBG_FMAP, "(ps) %s: %d PostScript fonts registered\n", + fullname, count)); + return 0; +} + +void mdvi_ps_flush_fonts(void) +{ + PSFontMap *map; + + if(!psinitialized) + return; + DEBUG((DBG_FMAP, "(ps) flushing PS font map (%d) entries\n", + psfonts.count)); + mdvi_hash_reset(&pstable, 0); + for(; (map = (PSFontMap *)psfonts.head); ) { + psfonts.head = LIST(map->next); + mdvi_free(map->psname); + mdvi_free(map->mapname); + if(map->fullname) + mdvi_free(map->fullname); + mdvi_free(map); + } + listh_init(&psfonts); + if(pslibdir) { + mdvi_free(pslibdir); + pslibdir = NULL; + } + if(psfontdir) { + mdvi_free(psfontdir); + psfontdir = NULL; + } + psinitialized = 0; +} + +char *mdvi_ps_find_font(const char *psname) +{ + PSFontMap *map, *smap; + char *filename; + int recursion_limit = 32; + + DEBUG((DBG_FMAP, "(ps) resolving PS font `%s'\n", psname)); + if(!psinitialized) + return NULL; + map = (PSFontMap *)mdvi_hash_lookup(&pstable, MDVI_KEY(psname)); + if(map == NULL) + return NULL; + if(map->fullname) + return mdvi_strdup(map->fullname); + + /* is it an alias? */ + smap = map; + while(recursion_limit-- > 0 && smap && *smap->mapname == '/') + smap = (PSFontMap *)mdvi_hash_lookup(&pstable, + MDVI_KEY(smap->mapname + 1)); + if(smap == NULL) { + if(recursion_limit == 0) + DEBUG((DBG_FMAP, + "(ps) %s: possible loop in PS font map\n", + psname)); + return NULL; + } + + if(psfontdir) + filename = kpse_path_search(psfontdir, smap->mapname, 1); + else if(file_exists(map->mapname)) + filename = mdvi_strdup(map->mapname); + else + filename = NULL; + if(filename) + map->fullname = mdvi_strdup(filename); + + return filename; +} + +/* + * To get metric info for a font, we proceed as follows: + * - We try to find NAME.<tfm,ofm,afm>. + * - We query the fontmap for NAME. + * - We get back a PSNAME, and use to find the file in the PS font map. + * - We get the PSFONT file name, replace its extension by "afm" and + * lookup the file in GS's font search path. + * - We finally read the data, transform it as specified in our font map, + * and return it to the caller. The new data is left in the font metrics + * cache, so the next time it will be found at the first step (when we look + * up NAME.afm). + * + * The name `_ps_' in this function is not meant to imply that it can be + * used for Type1 fonts only. It should be usable for TrueType fonts as well. + * + * The returned metric info is subjected to the same caching mechanism as + * all the other metric data, as returned by get_font_metrics(). One should + * not modify the returned data at all, and it should be disposed with + * free_font_metrics(). + */ +TFMInfo *mdvi_ps_get_metrics(const char *fontname) +{ + TFMInfo *info; + DviFontMapInfo map; + char buffer[64]; /* to avoid mallocs */ + char *psfont; + char *basefile; + char *afmfile; + char *ext; + int baselen; + int nc; + TFMChar *ch; + double efactor; + double sfactor; + + DEBUG((DBG_FMAP, "(ps) %s: looking for metric data\n", fontname)); + info = get_font_metrics(fontname, DviFontAny, NULL); + if(info != NULL) + return info; + + /* query the fontmap */ + if(mdvi_query_fontmap(&map, fontname) < 0 || !map.psname) + return NULL; + + /* get the PS font */ + psfont = mdvi_ps_find_font(map.psname); + if(psfont == NULL) + return NULL; + DEBUG((DBG_FMAP, "(ps) %s: found as PS font `%s'\n", + fontname, psfont)); + /* replace its extension */ + basefile = strrchr(psfont, '/'); + if(basefile == NULL) + basefile = psfont; + baselen = strlen(basefile); + ext = strrchr(basefile, '.'); + if(ext != NULL) + *ext = 0; + if(baselen + 4 < 64) + afmfile = &buffer[0]; + else + afmfile = mdvi_malloc(baselen + 5); + strcpy(afmfile, basefile); + strcpy(afmfile + baselen, ".afm"); + /* we don't need this anymore */ + mdvi_free(psfont); + DEBUG((DBG_FMAP, "(ps) %s: looking for `%s'\n", + fontname, afmfile)); + /* lookup the file */ + psfont = kpse_path_search(psfontdir, afmfile, 1); + /* don't need this anymore */ + if(afmfile != &buffer[0]) + mdvi_free(afmfile); + if(psfont != NULL) { + info = get_font_metrics(fontname, DviFontAFM, psfont); + mdvi_free(psfont); + } else + info = NULL; + if(info == NULL || (!map.extend && !map.slant)) + return info; + + /* + * transform the data as prescribed -- keep in mind that `info' + * points to CACHED data, so we're modifying the metric cache + * in place. + */ + +#define DROUND(x) ((x) >= 0 ? floor((x) + 0.5) : ceil((x) - 0.5)) +#define TRANSFORM(x,y) DROUND(efactor * (x) + sfactor * (y)) + + efactor = (double)map.extend / 10000.0; + sfactor = (double)map.slant / 10000.0; + DEBUG((DBG_FMAP, "(ps) %s: applying extend=%f, slant=%f\n", + efactor, sfactor)); + + nc = info->hic - info->loc + 1; + for(ch = info->chars; ch < info->chars + nc; ch++) { + /* the AFM bounding box is: + * wx = ch->advance + * llx = ch->left + * lly = -ch->depth + * urx = ch->right + * ury = ch->height + * what we do here is transform wx, llx, and urx by + * newX = efactor * oldX + sfactor * oldY + * where for `wx' oldY = 0. Also, these numbers are all in + * TFM units (i.e. TFM's fix-words, which is just the actual + * number times 2^20, no need to do anything to it). + */ + if(ch->present) { + ch->advance = TRANSFORM(ch->advance, 0); + ch->left = TRANSFORM(ch->left, -ch->depth); + ch->right = TRANSFORM(ch->right, ch->height); + } + } + + return info; +} diff --git a/backend/dvi/mdvi-lib/fontmap.h b/backend/dvi/mdvi-lib/fontmap.h new file mode 100644 index 00000000..bb5a944d --- /dev/null +++ b/backend/dvi/mdvi-lib/fontmap.h @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _MDVI_FONTMAP_H +#define _MDVI_FONTMAP_H 1 + +typedef struct _DviFontMapEnt DviFontMapEnt; +typedef struct _DviEncoding DviEncoding; + +typedef struct { + const char *psname; + const char *encoding; + const char *fontfile; + const char *fullfile; + const char *fmfile; + int fmtype; + long extend; + long slant; +} DviFontMapInfo; + +struct _DviEncoding { + DviEncoding *next; + DviEncoding *prev; + char *private; + char *filename; + char *name; + char **vector; /* table with exactly 256 strings */ + int links; + long offset; + DviHashTable nametab; +}; + +struct _DviFontMapEnt { + DviFontMapEnt *next; + DviFontMapEnt *prev; + char *private; + char *fontname; + char *psname; + char *encoding; + char *encfile; + char *fontfile; + char *fullfile; + long extend; + long slant; +}; + +#define MDVI_FMAP_SLANT(x) ((double)(x)->slant / 10000.0) +#define MDVI_FMAP_EXTEND(x) ((double)(x)->extend / 10000.0) + +extern DviEncoding *mdvi_request_encoding __PROTO((const char *)); +extern void mdvi_release_encoding __PROTO((DviEncoding *, int)); +extern int mdvi_encode_glyph __PROTO((DviEncoding *, const char *)); +extern DviFontMapEnt *mdvi_load_fontmap __PROTO((const char *)); +extern void mdvi_install_fontmap __PROTO((DviFontMapEnt *)); +extern int mdvi_load_fontmaps __PROTO((void)); +extern int mdvi_query_fontmap __PROTO((DviFontMapInfo *, const char *)); +extern void mdvi_flush_encodings __PROTO((void)); +extern void mdvi_flush_fontmaps __PROTO((void)); + +extern int mdvi_add_fontmap_file __PROTO((const char *, const char *)); + +/* PS font maps */ +extern int mdvi_ps_read_fontmap __PROTO((const char *)); +extern char *mdvi_ps_find_font __PROTO((const char *)); +extern TFMInfo *mdvi_ps_get_metrics __PROTO((const char *)); +extern void mdvi_ps_flush_fonts __PROTO((void)); + +#endif /* _MDVI_FONTMAP_H */ diff --git a/backend/dvi/mdvi-lib/fontsrch.c b/backend/dvi/mdvi-lib/fontsrch.c new file mode 100644 index 00000000..8ebaa5ca --- /dev/null +++ b/backend/dvi/mdvi-lib/fontsrch.c @@ -0,0 +1,371 @@ +/* fontsearch.c -- implements the font lookup mechanism in MDVI */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * How this works: + * Fonts are divided into MAX_CLASS priority classes. The first + * MAX_CLASS-1 ones correspond to `real' fonts (pk, gf, vf, type1, truetype, + * etc). The last one corresponds to `metric' fonts that are used as a last + * resort (tfm, afm, ofm, ...). When a font is looked up, it is tried in a + * `high' priority class (0 being the highest priority). The priority is + * lowered until it reaches MAX_CLASS-1. Then the whole thing is repeated + * for the fallback font. When the search reaches MAX_CLASS-1, we lookup the + * original font, and then the fallback font. The search can be done + * incrementally, with several calls to mdvi_lookup_font(). If this function + * is called again to continue a search, the function assumes the previous + * font it returned was not valid, and it goes on to the next step. + * + * Reason for this: + * Some font types are quite expensive to load (e.g. Type1), so loading + * them is deferred until the last possible moment. This means that a font that + * was supposed to exist may have to be discarded. Until now, MDVI had no ability to + * "resume" a search, so in this case it would have produced an error, regardless + * of whether the offending font existed in other formats. + * Also, given the large number of font types supported by MDVI, some mechanism + * was necessary to bring some order into the chaos. + * + * This mechanism fixes these two problems. For the first one, a search can + * be "resumed" and all the font formats tried for the missing font, and + * again for the fallback font (see above). As for the second, the + * hierarchical division in classes gives a lot of flexibility in how the + * fonts are configured. + */ + +#include <config.h> +#include "mdvi.h" + +#define HAVE_PROTOTYPES 1 +#include <kpathsea/tex-file.h> +#include <kpathsea/tex-glyph.h> + +struct _DviFontClass { + DviFontClass *next; + DviFontClass *prev; + DviFontInfo info; + int links; + int id; +}; + +char *_mdvi_fallback_font = MDVI_FALLBACK_FONT; + +/* this leaves classes 0 and 1 for `real' fonts */ +#define MAX_CLASS 3 +static ListHead font_classes[MAX_CLASS]; +static int initialized = 0; + +static void init_font_classes(void) +{ + int i; + + for(i = 0; i < MAX_CLASS; i++) + listh_init(&font_classes[i]); + initialized = 1; +} + +int mdvi_get_font_classes(void) +{ + return (MAX_CLASS - 2); +} + +char **mdvi_list_font_class(int klass) +{ + char **list; + int i, n; + DviFontClass *fc; + + if(klass == -1) + klass = MAX_CLASS-1; + if(klass < 0 || klass >= MAX_CLASS) + return NULL; + n = font_classes[klass].count; + list = xnalloc(char *, n + 1); + fc = (DviFontClass *)font_classes[klass].head; + for(i = 0; i < n; fc = fc->next, i++) { + list[i] = mdvi_strdup(fc->info.name); + } + list[i] = NULL; + return list; +} + +int mdvi_register_font_type(DviFontInfo *info, int klass) +{ + DviFontClass *fc; + + if(klass == -1) + klass = MAX_CLASS-1; + if(klass < 0 || klass >= MAX_CLASS) + return -1; + if(!initialized) + init_font_classes(); + fc = xalloc(struct _DviFontClass); + fc->links = 0; + fc->id = klass; + fc->info.name = mdvi_strdup(info->name); + fc->info.scalable = info->scalable; + fc->info.load = info->load; + fc->info.getglyph = info->getglyph; + fc->info.shrink0 = info->shrink0; + fc->info.shrink1 = info->shrink1; + fc->info.freedata = info->freedata; + fc->info.reset = info->reset; + fc->info.lookup = info->lookup; + fc->info.kpse_type = info->kpse_type; + listh_append(&font_classes[klass], LIST(fc)); + return 0; +} + +int mdvi_unregister_font_type(const char *name, int klass) +{ + DviFontClass *fc; + int k; + + if(klass == -1) + klass = MAX_CLASS - 1; + + if(klass >= 0 && klass < MAX_CLASS) { + k = klass; + LIST_FOREACH(fc, DviFontClass, &font_classes[k]) { + if(STREQ(fc->info.name, name)) + break; + } + } else if(klass < 0) { + for(k = 0; k < MAX_CLASS; k++) { + LIST_FOREACH(fc, DviFontClass, &font_classes[k]) { + if(STREQ(fc->info.name, name)) + break; + } + if(fc) break; + } + } else + return -1; + + if(fc == NULL || fc->links) + return -1; + /* remove it */ + listh_remove(&font_classes[k], LIST(fc)); + + /* and destroy it */ + mdvi_free(fc->info.name); + mdvi_free(fc); + return 0; +} + +static char *lookup_font(DviFontClass *ptr, const char *name, Ushort *h, Ushort *v) +{ + char *filename; + + /* + * If the font type registered a function to do the lookup, use that. + * Otherwise we use kpathsea. + */ + if(ptr->info.lookup) + filename = ptr->info.lookup(name, h, v); + else if(ptr->info.kpse_type <= kpse_any_glyph_format) { + kpse_glyph_file_type type; + + filename = kpse_find_glyph(name, Max(*h, *v), + ptr->info.kpse_type, &type); + /* if kpathsea returned a fallback font, reject it */ + if(filename && type.source == kpse_glyph_source_fallback) { + mdvi_free(filename); + filename = NULL; + } else if(filename) + *h = *v = type.dpi; + } else + filename = kpse_find_file(name, ptr->info.kpse_type, 1); + return filename; +} + +/* + * Class MAX_CLASS-1 is special: it consists of `metric' fonts that should + * be tried as a last resort + */ +char *mdvi_lookup_font(DviFontSearch *search) +{ + int kid; + int k; + DviFontClass *ptr; + DviFontClass *last; + char *filename = NULL; + const char *name; + Ushort hdpi, vdpi; + + if(search->id < 0) + return NULL; + + if(search->curr == NULL) { + /* this is the initial search */ + name = search->wanted_name; + hdpi = search->hdpi; + vdpi = search->vdpi; + kid = 0; + last = NULL; + } else { + name = search->actual_name; + hdpi = search->actual_hdpi; + vdpi = search->actual_vdpi; + kid = search->id; + last = search->curr; + } + + ptr = NULL; +again: + /* try all classes except MAX_CLASS-1 */ + for(k = kid; !filename && k < MAX_CLASS-1; k++) { + if(last == NULL) + ptr = (DviFontClass *)font_classes[k].head; + else + ptr = last->next; + while(ptr) { + DEBUG((DBG_FONTS, "%d: trying `%s' at (%d,%d)dpi as `%s'\n", + k, name, hdpi, vdpi, ptr->info.name)); + /* lookup the font in this class */ + filename = lookup_font(ptr, name, &hdpi, &vdpi); + if(filename) + break; + ptr = ptr->next; + } + last = NULL; + } + if(filename != NULL) { + search->id = k-1; + search->curr = ptr; + search->actual_name = name; + search->actual_hdpi = hdpi; + search->actual_vdpi = vdpi; + search->info = &ptr->info; + ptr->links++; + return filename; + } + + if(kid < MAX_CLASS - 1 && !STREQ(name, _mdvi_fallback_font)) { + mdvi_warning("font `%s' at %dx%d not found, trying `%s' instead\n", + name, hdpi, vdpi, _mdvi_fallback_font); + name = _mdvi_fallback_font; + kid = 0; + goto again; + } + + /* we tried the fallback font, and all the `real' classes. Let's + * try the `metric' class now */ + name = search->wanted_name; + hdpi = search->hdpi; + vdpi = search->vdpi; + if(kid == MAX_CLASS-1) { + /* we were looking into this class from the beginning */ + if(last == NULL) { + /* no more fonts to try */ + return NULL; + } + ptr = last->next; + } else { + mdvi_warning("font `%s' not found, trying metric files instead\n", + name); + ptr = (DviFontClass *)font_classes[MAX_CLASS-1].head; + } + +metrics: + while(ptr) { + DEBUG((DBG_FONTS, "metric: trying `%s' at (%d,%d)dpi as `%s'\n", + name, hdpi, vdpi, ptr->info.name)); + filename = lookup_font(ptr, name, &hdpi, &vdpi); + if(filename) + break; + ptr = ptr->next; + } + if(filename != NULL) { + if(STREQ(name, _mdvi_fallback_font)) + search->id = MAX_CLASS; + else + search->id = MAX_CLASS - 1; + search->curr = ptr; + search->actual_name = name; + search->actual_hdpi = hdpi; + search->actual_vdpi = vdpi; + search->info = &ptr->info; + ptr->links++; + return filename; + } + if(!STREQ(name, _mdvi_fallback_font)) { + mdvi_warning("metric file for `%s' not found, trying `%s' instead\n", + name, _mdvi_fallback_font); + name = _mdvi_fallback_font; + ptr = (DviFontClass *)font_classes[MAX_CLASS-1].head; + goto metrics; + } + + search->id = -1; + search->actual_name = NULL; + + /* tough luck, nothing found */ + return NULL; +} + +/* called by `font_reference' to do the initial lookup */ +DviFont *mdvi_add_font(const char *name, Int32 sum, + int hdpi, int vdpi, Int32 scale) +{ + DviFont *font; + + font = xalloc(DviFont); + font->fontname = mdvi_strdup(name); + SEARCH_INIT(font->search, font->fontname, hdpi, vdpi); + font->filename = mdvi_lookup_font(&font->search); + if(font->filename == NULL) { + /* this answer is final */ + mdvi_free(font->fontname); + mdvi_free(font); + return NULL; + } + font->hdpi = font->search.actual_hdpi; + font->vdpi = font->search.actual_vdpi; + font->scale = scale; + font->design = 0; + font->checksum = sum; + font->type = 0; + font->links = 0; + font->loc = 0; + font->hic = 0; + font->in = NULL; + font->chars = NULL; + font->subfonts = NULL; + + return font; +} + +int mdvi_font_retry(DviParams *params, DviFont *font) +{ + /* try the search again */ + char *filename; + + ASSERT(font->search.curr != NULL); + /* we won't be using this class anymore */ + font->search.curr->links--; + + filename = mdvi_lookup_font(&font->search); + if(filename == NULL) + return -1; + mdvi_free(font->filename); + font->filename = filename; + /* copy the new information */ + font->hdpi = font->search.actual_hdpi; + font->vdpi = font->search.actual_vdpi; + + return 0; +} diff --git a/backend/dvi/mdvi-lib/gf.c b/backend/dvi/mdvi-lib/gf.c new file mode 100644 index 00000000..00607ff6 --- /dev/null +++ b/backend/dvi/mdvi-lib/gf.c @@ -0,0 +1,395 @@ +/* gf.c - GF font support */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* functions to read GF fonts */ + +#include <config.h> +#include <string.h> +#include "common.h" +#include "mdvi.h" +#include "private.h" + +/* opcodes */ + +#define GF_PAINT0 0 +#define GF_PAINT1 64 +#define GF_PAINT2 65 +#define GF_PAINT3 66 +#define GF_BOC 67 +#define GF_BOC1 68 +#define GF_EOC 69 +#define GF_SKIP0 70 +#define GF_SKIP1 71 +#define GF_SKIP2 72 +#define GF_SKIP3 73 +#define GF_NEW_ROW_0 74 +#define GF_NEW_ROW_1 75 +#define GF_NEW_ROW_MAX 238 +#define GF_XXX1 239 +#define GF_XXX2 240 +#define GF_XXX3 241 +#define GF_XXX4 242 +#define GF_YYY 243 +#define GF_NOOP 244 +#define GF_LOC 245 +#define GF_LOC0 246 +#define GF_PRE 247 +#define GF_POST 248 +#define GF_POST_POST 249 + +#define GF_ID 131 +#define GF_TRAILER 223 + +#define BLACK 1 +#define WHITE 0 + +static int gf_load_font __PROTO((DviParams *, DviFont *)); +static int gf_font_get_glyph __PROTO((DviParams *, DviFont *, int)); + +/* only symbol exported by this file */ +DviFontInfo gf_font_info = { + "GF", + 0, /* scaling not supported natively */ + gf_load_font, + gf_font_get_glyph, + mdvi_shrink_glyph, + mdvi_shrink_glyph_grey, + NULL, /* free */ + NULL, /* reset */ + NULL, /* lookup */ + kpse_gf_format, + NULL +}; + +static int gf_read_bitmap(FILE *p, DviFontChar *ch) +{ + int op; + int min_n, max_n; + int min_m, max_m; + int paint_switch; + int x, y; + int bpl; + Int32 par; + BmUnit *line; + BITMAP *map; + + fseek(p, (long)ch->offset, SEEK_SET); + op = fuget1(p); + if(op == GF_BOC) { + /* skip character code */ + fuget4(p); + /* skip pointer */ + fuget4(p); + min_m = fsget4(p); + max_m = fsget4(p); + min_n = fsget4(p); + max_n = fsget4(p); + } else if(op == GF_BOC1) { + /* skip character code */ + fuget1(p); + min_m = fuget1(p); /* this is max_m - min_m */ + max_m = fuget1(p); + min_n = fuget1(p); /* this is max_n - min_n */ + max_n = fuget1(p); + min_m = max_m - min_m; + min_n = max_n - min_n; + } else { + mdvi_error(_("GF: invalid opcode %d in character %d\n"), + op, ch->code); + return -1; + } + + ch->x = -min_m; + ch->y = max_n; + ch->width = max_m - min_m + 1; + ch->height = max_n - min_n + 1; + map = bitmap_alloc(ch->width, ch->height); + + ch->glyph.data = map; + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + +#define COLOR(x) ((x) ? "BLACK" : "WHITE") + + paint_switch = WHITE; + x = y = 0; + line = map->data; + bpl = map->stride; + DEBUG((DBG_BITMAPS, "(gf) reading character %d\n", ch->code)); + while((op = fuget1(p)) != GF_EOC) { + Int32 n; + + if(feof(p)) + break; + if(op == GF_PAINT0) { + DEBUG((DBG_BITMAPS, "(gf) Paint0 %s -> %s\n", + COLOR(paint_switch), COLOR(!paint_switch))); + paint_switch = !paint_switch; + } else if(op <= GF_PAINT3) { + if(op < GF_PAINT1) + par = op; + else + par = fugetn(p, op - GF_PAINT1 + 1); + if(y >= ch->height || x + par >= ch->width) + goto toobig; + /* paint everything between columns x and x + par - 1 */ + DEBUG((DBG_BITMAPS, "(gf) Paint %d %s from (%d,%d)\n", + par, COLOR(paint_switch), x, y)); + if(paint_switch == BLACK) + bitmap_paint_bits(line + (x / BITMAP_BITS), + x % BITMAP_BITS, par); + paint_switch = !paint_switch; + x += par; + } else if(op >= GF_NEW_ROW_0 && op <= GF_NEW_ROW_MAX) { + y++; + line = bm_offset(line, bpl); + x = op - GF_NEW_ROW_0; + paint_switch = BLACK; + DEBUG((DBG_BITMAPS, "(gf) new_row_%d\n", x)); + } else switch(op) { + case GF_SKIP0: + y++; + line = bm_offset(line, bpl); + x = 0; + paint_switch = WHITE; + DEBUG((DBG_BITMAPS, "(gf) skip_0\n")); + break; + case GF_SKIP1: + case GF_SKIP2: + case GF_SKIP3: + par = fugetn(p, op - GF_SKIP1 + 1); + y += par + 1; + line = bm_offset(line, (par + 1) * bpl); + x = 0; + paint_switch = WHITE; + DEBUG((DBG_BITMAPS, "(gf) skip_%d\n", op - GF_SKIP1)); + break; + case GF_XXX1: + case GF_XXX2: + case GF_XXX3: + case GF_XXX4: { +#ifndef NODEBUG + char *s; + + s = read_string(p, op - GF_XXX1 + 1, NULL, 0); + DEBUG((DBG_SPECIAL, "(gf) Character %d: Special \"%s\"\n", + ch->code, s)); + mdvi_free(s); +#else + n = fugetn(p, op - GF_XXX1 + 1); + fseek(p, (long)n, SEEK_CUR); +#endif + break; + } + case GF_YYY: + n = fuget4(p); + DEBUG((DBG_SPECIAL, "(gf) Character %d: MF special %u\n", + ch->code, n)); + break; + case GF_NOOP: + DEBUG((DBG_BITMAPS, "(gf) no_op\n")); + break; + default: + mdvi_error(_("(gf) Character %d: invalid opcode %d\n"), + ch->code, op); + goto error; + } + /* chech that we're still inside the bitmap */ + if(x > ch->width || y > ch->height) + goto toobig; + DEBUG((DBG_BITMAPS, "(gf) curr_loc @ (%d,%d)\n", x, y)); + } + + if(op != GF_EOC) + goto error; + DEBUG((DBG_BITMAPS, "(gf) end of character %d\n", ch->code)); + return 0; + +toobig: + mdvi_error(_("(gf) character %d has an incorrect bounding box\n"), + ch->code); +error: + bitmap_destroy(map); + ch->glyph.data = NULL; + return -1; +} + +static int gf_load_font(DviParams *unused, DviFont *font) +{ + int i; + int n; + int loc; + int hic; + FILE *p; + Int32 word; + int op; + long alpha, beta, z; +#ifndef NODEBUG + char s[256]; +#endif + + p = font->in; + + /* check preamble */ + loc = fuget1(p); hic = fuget1(p); + if(loc != GF_PRE || hic != GF_ID) + goto badgf; + loc = fuget1(p); +#ifndef NODEBUG + for(i = 0; i < loc; i++) + s[i] = fuget1(p); + s[i] = 0; + DEBUG((DBG_FONTS, "(gf) %s: %s\n", font->fontname, s)); +#else + fseek(p, (long)loc, SEEK_CUR); +#endif + /* now read character locators in postamble */ + if(fseek(p, (long)-1, SEEK_END) == -1) + return -1; + + n = 0; + while((op = fuget1(p)) == GF_TRAILER) { + if(fseek(p, (long)-2, SEEK_CUR) < 0) + break; + n++; + } + if(op != GF_ID || n < 4) + goto badgf; + /* get the pointer to the postamble */ + fseek(p, (long)-5, SEEK_CUR); + op = fuget4(p); + /* jump to it */ + fseek(p, (long)op, SEEK_SET); + if(fuget1(p) != GF_POST) + goto badgf; + /* skip pointer to last EOC */ + fuget4(p); + /* get the design size */ + font->design = fuget4(p); + /* the checksum */ + word = fuget4(p); + if(word && font->checksum && font->checksum != word) { + mdvi_warning(_("%s: bad checksum (expected %u, found %u)\n"), + font->fontname, font->checksum, word); + } else if(!font->checksum) + font->checksum = word; + /* skip pixels per point ratio */ + fuget4(p); + fuget4(p); + font->chars = xnalloc(DviFontChar, 256); + for(loc = 0; loc < 256; loc++) + font->chars[loc].offset = 0; + /* skip glyph "bounding box" */ + fseek(p, (long)16, SEEK_CUR); + loc = 256; + hic = -1; + TFMPREPARE(font->scale, z, alpha, beta); + while((op = fuget1(p)) != GF_POST_POST) { + DviFontChar *ch; + int cc; + + /* get the character code */ + cc = fuget1(p); + if(cc < loc) + loc = cc; + if(cc > hic) + hic = cc; + ch = &font->chars[cc]; + switch(op) { + case GF_LOC: + fsget4(p); /* skip dx */ + fsget4(p); /* skip dy */ + break; + case GF_LOC0: + fuget1(p); /* skip dx */ + /* dy assumed 0 */ + break; + default: + mdvi_error(_("%s: junk in postamble\n"), font->fontname); + goto error; + } + ch->code = cc; + ch->tfmwidth = fuget4(p); + ch->tfmwidth = TFMSCALE(ch->tfmwidth, z, alpha, beta); + ch->offset = fuget4(p); + if(ch->offset == -1) + ch->offset = 0; + /* initialize the rest of the glyph information */ + ch->x = 0; + ch->y = 0; + ch->width = 0; + ch->height = 0; + ch->glyph.data = NULL; + ch->shrunk.data = NULL; + ch->grey.data = NULL; + ch->flags = 0; + ch->loaded = 0; + } + + if(op != GF_POST_POST) + goto badgf; + + if(loc > 0 || hic < 255) { + /* shrink to optimal size */ + memmove(font->chars, font->chars + loc, + (hic - loc + 1) * sizeof(DviFontChar)); + font->chars = xresize(font->chars, + DviFontChar, hic - loc + 1); + } + font->loc = loc; + font->hic = hic; + + return 0; + +badgf: + mdvi_error(_("%s: File corrupted, or not a GF file\n"), font->fontname); +error: + if(font->chars) { + mdvi_free(font->chars); + font->chars = NULL; + } + font->loc = font->hic = 0; + return -1; +} + +static int gf_font_get_glyph(DviParams *params, DviFont *font, int code) +{ + DviFontChar *ch; + + if(code < font->loc || code > font->hic || !font->chars) + return -1; + ch = &font->chars[code - font->loc]; + + if(!ch->loaded) { + if(ch->offset == 0) + return -1; + DEBUG((DBG_GLYPHS, "(gf) %s: loading GF glyph for character %d\n", + font->fontname, code)); + if(font->in == NULL && font_reopen(font) < 0) + return -1; + if(fseek(font->in, ch->offset, SEEK_SET) == -1) + return -1; + if(gf_read_bitmap(font->in, ch) < 0) + return -1; + ch->loaded = 1; + } + return 0; +} diff --git a/backend/dvi/mdvi-lib/hash.c b/backend/dvi/mdvi-lib/hash.c new file mode 100644 index 00000000..d359e3c8 --- /dev/null +++ b/backend/dvi/mdvi-lib/hash.c @@ -0,0 +1,224 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "mdvi.h" + +/* simple hash tables for MDVI */ + + +struct _DviHashBucket { + DviHashBucket *next; + DviHashKey key; + Ulong hvalue; + void *data; +}; + +static Ulong hash_string(DviHashKey key) +{ + Uchar *p; + Ulong h, g; + + for(h = 0, p = (Uchar *)key; *p; p++) { + h = (h << 4UL) + *p; + if((g = h & 0xf0000000L) != 0) { + h ^= (g >> 24UL); + h ^= g; + } + } + + return h; +} + +static int hash_compare(DviHashKey k1, DviHashKey k2) +{ + return strcmp((char *)k1, (char *)k2); +} + +void mdvi_hash_init(DviHashTable *hash) +{ + hash->buckets = NULL; + hash->nbucks = 0; + hash->nkeys = 0; + hash->hash_func = NULL; + hash->hash_comp = NULL; + hash->hash_free = NULL; +} + +void mdvi_hash_create(DviHashTable *hash, int size) +{ + int i; + + hash->nbucks = size; + hash->buckets = xnalloc(DviHashBucket *, size); + for(i = 0; i < size; i++) + hash->buckets[i] = NULL; + hash->hash_func = hash_string; + hash->hash_comp = hash_compare; + hash->hash_free = NULL; + hash->nkeys = 0; +} + +static DviHashBucket *hash_find(DviHashTable *hash, DviHashKey key) +{ + Ulong hval; + DviHashBucket *buck; + + hval = (hash->hash_func(key) % hash->nbucks); + + for(buck = hash->buckets[hval]; buck; buck = buck->next) + if(hash->hash_comp(buck->key, key) == 0) + break; + return buck; +} + +/* Neither keys nor data are duplicated */ +int mdvi_hash_add(DviHashTable *hash, DviHashKey key, void *data, int rep) +{ + DviHashBucket *buck = NULL; + Ulong hval; + + if(rep != MDVI_HASH_UNCHECKED) { + buck = hash_find(hash, key); + if(buck != NULL) { + if(buck->data == data) + return 0; + if(rep == MDVI_HASH_UNIQUE) + return -1; + if(hash->hash_free != NULL) + hash->hash_free(buck->key, buck->data); + } + } + if(buck == NULL) { + buck = xalloc(DviHashBucket); + buck->hvalue = hash->hash_func(key); + hval = (buck->hvalue % hash->nbucks); + buck->next = hash->buckets[hval]; + hash->buckets[hval] = buck; + hash->nkeys++; + } + + /* save key and data */ + buck->key = key; + buck->data = data; + + return 0; +} + +void *mdvi_hash_lookup(DviHashTable *hash, DviHashKey key) +{ + DviHashBucket *buck = hash_find(hash, key); + + return buck ? buck->data : NULL; +} + +static DviHashBucket *hash_remove(DviHashTable *hash, DviHashKey key) +{ + DviHashBucket *buck, *last; + Ulong hval; + + hval = hash->hash_func(key); + hval %= hash->nbucks; + + for(last = NULL, buck = hash->buckets[hval]; buck; buck = buck->next) { + if(hash->hash_comp(buck->key, key) == 0) + break; + last = buck; + } + if(buck == NULL) + return NULL; + if(last) + last->next = buck->next; + else + hash->buckets[hval] = buck->next; + hash->nkeys--; + return buck; +} + +void *mdvi_hash_remove(DviHashTable *hash, DviHashKey key) +{ + DviHashBucket *buck = hash_remove(hash, key); + void *data = NULL; + + if(buck) { + data = buck->data; + mdvi_free(buck); + } + return data; +} + +void *mdvi_hash_remove_ptr(DviHashTable *hash, DviHashKey key) +{ + DviHashBucket *buck, *last; + Ulong hval; + void *ptr; + + hval = hash->hash_func(key); + hval %= hash->nbucks; + + for(last = NULL, buck = hash->buckets[hval]; buck; buck = buck->next) { + if(buck->key == key) + break; + last = buck; + } + if(buck == NULL) + return NULL; + if(last) + last->next = buck->next; + else + hash->buckets[hval] = buck->next; + hash->nkeys--; + /* destroy the bucket */ + ptr = buck->data; + mdvi_free(buck); + return ptr; +} + +int mdvi_hash_destroy_key(DviHashTable *hash, DviHashKey key) +{ + DviHashBucket *buck = hash_remove(hash, key); + + if(buck == NULL) + return -1; + if(hash->hash_free) + hash->hash_free(buck->key, buck->data); + mdvi_free(buck); + return 0; +} + +void mdvi_hash_reset(DviHashTable *hash, int reuse) +{ + int i; + DviHashBucket *buck; + + /* remove all keys in the hash table */ + for(i = 0; i < hash->nbucks; i++) { + for(; (buck = hash->buckets[i]); ) { + hash->buckets[i] = buck->next; + if(hash->hash_free) + hash->hash_free(buck->key, buck->data); + mdvi_free(buck); + } + } + hash->nkeys = 0; + if(!reuse && hash->buckets) { + mdvi_free(hash->buckets); + hash->buckets = NULL; + hash->nbucks = 0; + } /* otherwise, it is left empty, ready to be reused */ +} diff --git a/backend/dvi/mdvi-lib/hash.h b/backend/dvi/mdvi-lib/hash.h new file mode 100644 index 00000000..b10afd60 --- /dev/null +++ b/backend/dvi/mdvi-lib/hash.h @@ -0,0 +1,49 @@ +#ifndef MDVI_HASH +#define MDVI_HASH + +/* Hash tables */ + + +typedef struct _DviHashBucket DviHashBucket; +typedef struct _DviHashTable DviHashTable; + +/* + * Hash tables + */ + +typedef Uchar *DviHashKey; +#define MDVI_KEY(x) ((DviHashKey)(x)) + +typedef Ulong (*DviHashFunc) __PROTO((DviHashKey key)); +typedef int (*DviHashComp) __PROTO((DviHashKey key1, DviHashKey key2)); +typedef void (*DviHashFree) __PROTO((DviHashKey key, void *data)); + + +struct _DviHashTable { + DviHashBucket **buckets; + int nbucks; + int nkeys; + DviHashFunc hash_func; + DviHashComp hash_comp; + DviHashFree hash_free; +}; +#define MDVI_EMPTY_HASH_TABLE {NULL, 0, 0, NULL, NULL, NULL} + +#define MDVI_HASH_REPLACE 0 +#define MDVI_HASH_UNIQUE 1 +#define MDVI_HASH_UNCHECKED 2 + +extern void mdvi_hash_init __PROTO((DviHashTable *)); +extern void mdvi_hash_create __PROTO((DviHashTable *, int)); +extern int mdvi_hash_add __PROTO((DviHashTable *, DviHashKey, void *, int)); +extern int mdvi_hash_destroy_key __PROTO((DviHashTable *, DviHashKey)); +extern void mdvi_hash_reset __PROTO((DviHashTable *, int)); +extern void *mdvi_hash_lookup __PROTO((DviHashTable *, DviHashKey)); +extern void *mdvi_hash_remove __PROTO((DviHashTable *, DviHashKey)); +extern void *mdvi_hash_remove_ptr __PROTO((DviHashTable *, DviHashKey)); + +#define mdvi_hash_flush(h) mdvi_hash_reset((h), 1) +#define mdvi_hash_destroy(h) mdvi_hash_reset((h), 0) + +#endif + diff --git a/backend/dvi/mdvi-lib/list.c b/backend/dvi/mdvi-lib/list.c new file mode 100644 index 00000000..eb73a178 --- /dev/null +++ b/backend/dvi/mdvi-lib/list.c @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "common.h" + +void listh_init(ListHead *head) +{ + head->head = head->tail = NULL; + head->count = 0; +} + +void listh_prepend(ListHead *head, List *list) +{ + list->prev = NULL; + list->next = head->head; + if(head->head) + head->head->prev = list; + head->head = list; + if(!head->tail) + head->tail = list; + head->count++; +} + +void listh_append(ListHead *head, List *list) +{ + list->next = NULL; + list->prev = head->tail; + if(head->tail) + head->tail->next = list; + else + head->head = list; + head->tail = list; + head->count++; +} + +void listh_add_before(ListHead *head, List *at, List *list) +{ + if(at == head->head || head->head == NULL) + listh_prepend(head, list); + else { + list->next = at; + list->prev = at->prev; + at->prev = list; + head->count++; + } +} + +void listh_add_after(ListHead *head, List *at, List *list) +{ + if(at == head->tail || !head->tail) + listh_append(head, list); + else { + list->prev = at; + list->next = at->next; + at->next = list; + head->count++; + } +} + +void listh_remove(ListHead *head, List *list) +{ + if(list == head->head) { + head->head = list->next; + if(head->head) + head->head->prev = NULL; + } else if(list == head->tail) { + head->tail = list->prev; + if(head->tail) + head->tail->next = NULL; + } else { + list->next->prev = list->prev; + list->prev->next = list->next; + } + if(--head->count == 0) + head->head = head->tail = NULL; +} + +void listh_concat(ListHead *h1, ListHead *h2) +{ + if(h2->head == NULL) + ; /* do nothing */ + else if(h1->tail == NULL) + h1->head = h2->head; + else { + h1->tail->next = h2->head; + h2->head->prev = h1->tail; + } + h1->tail = h2->tail; + h1->count += h2->count; +} + +void listh_catcon(ListHead *h1, ListHead *h2) +{ + if(h2->head == NULL) + ; /* do nothing */ + else if(h1->head == NULL) + h1->tail = h2->tail; + else { + h1->head->prev = h2->tail; + h2->tail->next = h1->head; + } + h1->head = h2->head; + h1->count += h2->count; +} diff --git a/backend/dvi/mdvi-lib/mdvi.h b/backend/dvi/mdvi-lib/mdvi.h new file mode 100644 index 00000000..327e61fe --- /dev/null +++ b/backend/dvi/mdvi-lib/mdvi.h @@ -0,0 +1,623 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _MDVI_DVI_H +#define _MDVI_DVI_H 1 + +#include <stdio.h> +#include <sys/types.h> +#include <math.h> + +#include "sysdeps.h" +#include "bitmap.h" +#include "common.h" +#include "defaults.h" +#include "dviopcodes.h" + +typedef struct _DviGlyph DviGlyph; +typedef struct _DviDevice DviDevice; +typedef struct _DviFontChar DviFontChar; +typedef struct _DviFontRef DviFontRef; +typedef struct _DviFontInfo DviFontInfo; +typedef struct _DviFont DviFont; +typedef struct _DviState DviState; +typedef struct _DviPageSpec *DviPageSpec; +typedef struct _DviParams DviParams; +typedef struct _DviBuffer DviBuffer; +typedef struct _DviContext DviContext; +typedef struct _DviRange DviRange; +typedef struct _DviColorPair DviColorPair; +typedef struct _DviSection DviSection; +typedef struct _TFMChar TFMChar; +typedef struct _TFMInfo TFMInfo; +typedef struct _DviFontSearch DviFontSearch; +/* this is an opaque type */ +typedef struct _DviFontClass DviFontClass; + +typedef void (*DviFreeFunc) __PROTO((void *)); +typedef void (*DviFree2Func) __PROTO((void *, void *)); + +typedef Ulong DviColor; + +#ifdef TRUE +#undef TRUE +#endif +#ifdef FALSE +#undef FALSE +#endif + +typedef enum { + FALSE = 0, + TRUE = 1 +} DviBool; + +#include "hash.h" +#include "paper.h" + +/* + * information about a page: + * pagenum[0] = offset to BOP + * pagenum[1], ..., pagenum[10] = TeX \counters + */ +typedef long PageNum[11]; + +/* this structure contains the platform-specific information + * required to interpret a DVI file */ + +typedef void (*DviGlyphDraw) __PROTO((DviContext *context, + DviFontChar *glyph, + int x, int y)); + +typedef void (*DviRuleDraw) __PROTO((DviContext *context, + int x, int y, + Uint width, Uint height, int fill)); + +typedef int (*DviColorScale) __PROTO((void *device_data, + Ulong *pixels, + int npixels, + Ulong foreground, + Ulong background, + double gamma, + int density)); +typedef void *(*DviCreateImage) __PROTO((void *device_data, + Uint width, + Uint height, + Uint bpp)); +typedef void (*DviFreeImage) __PROTO((void *image)); +typedef void (*DviPutPixel) __PROTO((void *image, int x, int y, Ulong color)); +typedef void (*DviDevDestroy) __PROTO((void *data)); +typedef void (*DviRefresh) __PROTO((DviContext *dvi, void *device_data)); +typedef void (*DviSetColor) __PROTO((void *device_data, Ulong, Ulong)); +typedef void (*DviPSDraw) __PROTO((DviContext *context, + const char *filename, + int x, int y, + Uint width, Uint height)); + +struct _DviDevice { + DviGlyphDraw draw_glyph; + DviRuleDraw draw_rule; + DviColorScale alloc_colors; + DviCreateImage create_image; + DviFreeImage free_image; + DviPutPixel put_pixel; + DviDevDestroy dev_destroy; + DviRefresh refresh; + DviSetColor set_color; + DviPSDraw draw_ps; + void * device_data; +}; + +/* + * Fonts + */ + +#include "fontmap.h" + +struct _TFMChar { + Int32 present; + Int32 advance; /* advance */ + Int32 height; /* ascent */ + Int32 depth; /* descent */ + Int32 left; /* leftSideBearing */ + Int32 right; /* rightSideBearing */ +}; + +struct _TFMInfo { + int type; /* DviFontAFM, DviFontTFM, DviFontOFM */ + Uint32 checksum; + Uint32 design; + int loc; + int hic; + char coding[64]; + char family[64]; + TFMChar *chars; +}; + +struct _DviGlyph { + short x, y; /* origin */ + Uint w, h; /* dimensions */ + void *data; /* bitmap or XImage */ +}; + +typedef void (*DviFontShrinkFunc) + __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +typedef int (*DviFontLoadFunc) __PROTO((DviParams *, DviFont *)); +typedef int (*DviFontGetGlyphFunc) __PROTO((DviParams *, DviFont *, int)); +typedef void (*DviFontFreeFunc) __PROTO((DviFont *)); +typedef void (*DviFontResetFunc) __PROTO((DviFont *)); +typedef char *(*DviFontLookupFunc) __PROTO((const char *, Ushort *, Ushort *)); +typedef int (*DviFontEncodeFunc) __PROTO((DviParams *, DviFont *, DviEncoding *)); + +struct _DviFontInfo { + char *name; /* human-readable format identifying string */ + int scalable; /* does it support scaling natively? */ + DviFontLoadFunc load; + DviFontGetGlyphFunc getglyph; + DviFontShrinkFunc shrink0; + DviFontShrinkFunc shrink1; + DviFontFreeFunc freedata; + DviFontResetFunc reset; + DviFontLookupFunc lookup; + int kpse_type; + void * private; +}; + +struct _DviFontChar { + Uint32 offset; + Int16 code; /* format-dependent, not used by MDVI */ + Int16 width; + Int16 height; + Int16 x; + Int16 y; + Int32 tfmwidth; + Ushort flags; +#ifdef __STRICT_ANSI__ + Ushort loaded; + Ushort missing; +#else + Ushort loaded : 1, + missing : 1; +#endif + Ulong fg; + Ulong bg; + BITMAP *glyph_data; + /* data for shrunk bitimaps */ + DviGlyph glyph; + DviGlyph shrunk; + DviGlyph grey; +}; + +struct _DviFontRef { + DviFontRef *next; + DviFont *ref; + Int32 fontid; +}; + +typedef enum { + DviFontAny = -1, + DviFontPK = 0, + DviFontGF = 1, + DviFontVF = 2, + DviFontTFM = 3, + DviFontT1 = 4, + DviFontTT = 5, + DviFontAFM = 6, + DviFontOFM = 7 +} DviFontType; + +struct _DviFontSearch { + int id; + Ushort hdpi; + Ushort vdpi; + Ushort actual_hdpi; + Ushort actual_vdpi; + const char *wanted_name; + const char *actual_name; + DviFontClass *curr; + DviFontInfo *info; +}; + +/* this is a kludge, I know */ +#define ISVIRTUAL(font) ((font)->search.info->getglyph == NULL) +#define SEARCH_DONE(s) ((s).id < 0) +#define SEARCH_INIT(s, name, h, v) do { \ + (s).id = 0; \ + (s).curr = NULL; \ + (s).hdpi = (h); \ + (s).vdpi = (v); \ + (s).wanted_name = (name); \ + (s).actual_name = NULL; \ + } while(0) + +struct _DviFont { + DviFont *next; + DviFont *prev; + int type; + Int32 checksum; + int hdpi; + int vdpi; + Int32 scale; + Int32 design; + FILE *in; + char *fontname; + char *filename; + int links; + int loc; + int hic; + Uint flags; + DviFontSearch search; + DviFontChar *chars; + DviFontRef *subfonts; + void *private; +}; + +/* + * Dvi context + */ + +typedef enum { + MDVI_ORIENT_TBLR = 0, /* top to bottom, left to right */ + MDVI_ORIENT_TBRL = 1, /* top to bottom, right to left */ + MDVI_ORIENT_BTLR = 2, /* bottom to top, left to right */ + MDVI_ORIENT_BTRL = 3, /* bottom to top, right to left */ + MDVI_ORIENT_RP90 = 4, /* rotated +90 degrees (counter-clockwise) */ + MDVI_ORIENT_RM90 = 5, /* rotated -90 degrees (clockwise) */ + MDVI_ORIENT_IRP90 = 6, /* flip horizontally, then rotate by +90 */ + MDVI_ORIENT_IRM90 = 7 /* rotate by -90, then flip horizontally */ +} DviOrientation; + +typedef enum { + MDVI_PAGE_SORT_UP, /* up, using \counter0 */ + MDVI_PAGE_SORT_DOWN, /* down, using \counter0 */ + MDVI_PAGE_SORT_RANDOM, /* randomly */ + MDVI_PAGE_SORT_DVI_UP, /* up, by location in DVI file */ + MDVI_PAGE_SORT_DVI_DOWN, /* down, by location in DVI file */ + MDVI_PAGE_SORT_NONE /* don't sort */ +} DviPageSort; + +struct _DviParams { + double mag; /* magnification */ + double conv; /* horizontal DVI -> pixel */ + double vconv; /* vertical DVI -> pixel */ + double tfm_conv; /* TFM -> DVI */ + double gamma; /* gamma correction factor */ + Uint dpi; /* horizontal resolution */ + Uint vdpi; /* vertical resolution */ + int hshrink; /* horizontal shrinking factor */ + int vshrink; /* vertical shrinking factor */ + Uint density; /* pixel density */ + Uint flags; /* flags (see MDVI_PARAM macros) */ + int hdrift; /* max. horizontal drift */ + int vdrift; /* max. vertical drift */ + int vsmallsp; /* small vertical space */ + int thinsp; /* small horizontal space */ + int layer; /* visible layer (for layered DVI files) */ + Ulong fg; /* foreground color */ + Ulong bg; /* background color */ + DviOrientation orientation; /* page orientation */ + int base_x; + int base_y; +}; + +typedef enum { + MDVI_PARAM_LAST = 0, + MDVI_SET_DPI = 1, + MDVI_SET_XDPI = 2, + MDVI_SET_YDPI = 3, + MDVI_SET_SHRINK = 4, + MDVI_SET_XSHRINK = 5, + MDVI_SET_YSHRINK = 6, + MDVI_SET_GAMMA = 7, + MDVI_SET_DENSITY = 8, + MDVI_SET_MAGNIFICATION = 9, + MDVI_SET_DRIFT = 10, + MDVI_SET_HDRIFT = 11, + MDVI_SET_VDRIFT = 12, + MDVI_SET_ORIENTATION = 13, + MDVI_SET_FOREGROUND = 14, + MDVI_SET_BACKGROUND = 15 +} DviParamCode; + +struct _DviBuffer { + Uchar *data; + size_t size; /* allocated size */ + size_t length; /* amount of data buffered */ + size_t pos; /* current position in buffer */ + int frozen; /* can we free this data? */ +}; + +/* DVI registers */ +struct _DviState { + int h; + int v; + int hh; + int vv; + int w; + int x; + int y; + int z; +}; + +struct _DviColorPair { + Ulong fg; + Ulong bg; +}; + +struct _DviContext { + char *filename; /* name of the DVI file */ + FILE *in; /* from here we read */ + char *fileid; /* from preamble */ + int npages; /* number of pages */ + int currpage; /* currrent page (0 based) */ + int depth; /* recursion depth */ + DviBuffer buffer; /* input buffer */ + DviParams params; /* parameters */ + DviPaper paper; /* paper type */ + Int32 num; /* numerator */ + Int32 den; /* denominator */ + DviFontRef *fonts; /* fonts used in this file */ + DviFontRef **fontmap; /* for faster id lookups */ + DviFontRef *currfont; /* current font */ + int nfonts; /* # of fonts used in this job */ + Int32 dvimag; /* original magnification */ + double dviconv; /* unshrunk scaling factor */ + double dvivconv; /* unshrunk scaling factor (vertical) */ + int dvi_page_w; /* unscaled page width */ + int dvi_page_h; /* unscaled page height */ + Ulong modtime; /* file modification time */ + PageNum *pagemap; /* page table */ + DviState pos; /* registers */ + DviPageSpec *pagesel; /* page selection data */ + int curr_layer; /* current layer */ + DviState *stack; /* DVI stack */ + int stacksize; /* stack depth */ + int stacktop; /* stack pointer */ + DviDevice device; /* device-specific routines */ + Ulong curr_fg; /* rendering color */ + Ulong curr_bg; + + DviColorPair *color_stack; + int color_top; + int color_size; + + DviFontRef *(*findref) __PROTO((DviContext *, Int32)); + void *user_data; /* client data attached to this context */ +}; + +typedef enum { + MDVI_RANGE_BOUNDED, /* range is finite */ + MDVI_RANGE_LOWER, /* range has a lower bound */ + MDVI_RANGE_UPPER, /* range has an upper bound */ + MDVI_RANGE_UNBOUNDED /* range has no bounds at all */ +} DviRangeType; + +struct _DviRange { + DviRangeType type; /* one of the above */ + int from; /* lower bound */ + int to; /* upper bound */ + int step; /* step */ +}; + + +typedef void (*DviSpecialHandler) + __PROTO((DviContext *dvi, const char *prefix, const char *arg)); + +#define RANGE_HAS_LOWER(x) \ + ((x) == MDVI_RANGE_BOUNDED || (x) == MDVI_RANGE_LOWER) +#define RANGE_HAS_UPPER(x) \ + ((x) == MDVI_RANGE_BOUNDED || (x) == MDVI_RANGE_UPPER) + +/* + * Macros and prototypes + */ + +#define MDVI_PARAM_ANTIALIASED 1 +#define MDVI_PARAM_MONO 2 +#define MDVI_PARAM_CHARBOXES 4 +#define MDVI_PARAM_SHOWUNDEF 8 +#define MDVI_PARAM_DELAYFONTS 16 + +/* + * The FALLBACK priority class is reserved for font formats that + * contain no glyph information and are to be used as a last + * resort (e.g. TFM, AFM) + */ +#define MDVI_FONTPRIO_FALLBACK -3 +#define MDVI_FONTPRIO_LOWEST -2 +#define MDVI_FONTPRIO_LOW -1 +#define MDVI_FONTPRIO_NORMAL 0 +#define MDVI_FONTPRIO_HIGH 1 +#define MDVI_FONTPRIO_HIGHEST 2 + +#define MDVI_FONT_ENCODED (1 << 0) + +#define MDVI_GLYPH_EMPTY ((void *)1) +/* does the glyph have a non-empty bitmap/image? */ +#define MDVI_GLYPH_NONEMPTY(x) ((x) && (x) != MDVI_GLYPH_EMPTY) +/* has the glyph been loaded from disk? */ +#define MDVI_GLYPH_UNSET(x) ((x) == NULL) +/* do we have only a bounding box for this glyph? */ +#define MDVI_GLYPH_ISEMPTY(x) ((x) == MDVI_GLYPH_EMPTY) + +#define MDVI_ENABLED(d,x) ((d)->params.flags & (x)) +#define MDVI_DISABLED(d,x) !MDVI_ENABLED((d), (x)) + +#define MDVI_LASTPAGE(d) ((d)->npages - 1) +#define MDVI_NPAGES(d) (d)->npages +#define MDVI_VALIDPAGE(d,p) ((p) >= 0 && (p) <= MDVI_LASTPAGE(d)) +#define MDVI_FLAGS(d) (d)->params.flags +#define MDVI_SHRINK_FROM_DPI(d) Max(1, (d) / 75) +#define MDVI_CURRFG(d) (d)->curr_fg +#define MDVI_CURRBG(d) (d)->curr_bg + +#define pixel_round(d,v) (int)((d)->params.conv * (v) + 0.5) +#define vpixel_round(d,v) (int)((d)->params.vconv * (v) + 0.5) +#define rule_round(d,v) (int)((d)->params.conv * (v) + 0.99999) /*9999999)*/ +#define vrule_round(d,v) (int)((d)->params.vconv * (v) + 0.99999) + +extern int mdvi_reload __PROTO((DviContext *, DviParams *)); +extern void mdvi_setpage __PROTO((DviContext *, int)); +extern int mdvi_dopage __PROTO((DviContext *, int)); +extern void mdvi_shrink_glyph __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +extern void mdvi_shrink_box __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +extern void mdvi_shrink_glyph_grey __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +extern int mdvi_find_tex_page __PROTO((DviContext *, int)); +extern int mdvi_configure __PROTO((DviContext *, DviParamCode, ...)); + +extern int get_tfm_chars __PROTO((DviParams *, DviFont *, TFMInfo *, int)); +extern int tfm_load_file __PROTO((const char *, TFMInfo *)); +extern int afm_load_file __PROTO((const char *, TFMInfo *)); +extern TFMInfo *get_font_metrics __PROTO((const char *, int, const char *)); +extern char *lookup_font_metrics __PROTO((const char *, int *)); +extern void free_font_metrics __PROTO((TFMInfo *)); +extern void flush_font_metrics __PROTO((void)); + +#define get_metrics(name) get_font_metrics((name), DviFontAny, NULL) + +extern void mdvi_sort_pages __PROTO((DviContext *, DviPageSort)); + +extern void mdvi_init_kpathsea __PROTO((const char *, const char *, const char *, int, const char *)); + +extern DviContext* mdvi_init_context __PROTO((DviParams *, DviPageSpec *, const char *)); +extern void mdvi_destroy_context __PROTO((DviContext *)); + +/* helper macros that call mdvi_configure() */ +#define mdvi_config_one(d,x,y) mdvi_configure((d), (x), (y), MDVI_PARAM_LAST) +#define mdvi_set_dpi(d,x) mdvi_config_one((d), MDVI_SET_DPI, (x)) +#define mdvi_set_xdpi(d,x) mdvi_config_one((d), MDVI_SET_XDPI, (x)) +#define mdvi_set_ydpi(d,x) mdvi_config_one((d), MDVI_SET_YDPI, (x)) +#define mdvi_set_hshrink(d,h) mdvi_config_one((d), MDVI_SET_XSHRINK, (h)) +#define mdvi_set_vshrink(d,h) mdvi_config_one((d), MDVI_SET_YSHRINK, (h)) +#define mdvi_set_gamma(d,g) mdvi_config_one((d), MDVI_SET_GAMMA, (g)) +#define mdvi_set_density(d,x) mdvi_config_one((d), MDVI_SET_DENSITY, (x)) +#define mdvi_set_drift(d,x) mdvi_config_one((d), MDVI_SET_DRIFT, (x)) +#define mdvi_set_hdrift(d,h) mdvi_config_one((d), MDVI_SET_HDRIFT, (h)) +#define mdvi_set_vdrift(d,v) mdvi_config_one((d), MDVI_SET_VDRIFT, (v)) +#define mdvi_set_mag(d,m) \ + mdvi_config_one((d), MDVI_SET_MAGNIFICATION, (m)) +#define mdvi_set_foreground(d,x) \ + mdvi_config_one((d), MDVI_SET_FOREGROUND, (x)) +#define mdvi_set_background(d,x) \ + mdvi_config_one((d), MDVI_SET_BACKGROUND, (x)) +#define mdvi_set_orientation(d,x) \ + mdvi_config_one((d), MDVI_SET_ORIENTATION, (x)) +#define mdvi_set_shrink(d,h,v) \ + mdvi_configure((d), MDVI_SET_XSHRINK, (h), \ + MDVI_SET_YSHRINK, (v), MDVI_PARAM_LAST) + +extern DviRange* mdvi_parse_range __PROTO((const char *, DviRange *, int *, char **)); +extern DviPageSpec* mdvi_parse_page_spec __PROTO((const char *)); +extern void mdvi_free_page_spec __PROTO((DviPageSpec *)); +extern int mdvi_in_range __PROTO((DviRange *, int, int)); +extern int mdvi_range_length __PROTO((DviRange *, int)); +extern int mdvi_page_selected __PROTO((DviPageSpec *, PageNum, int)); + +/* Specials */ +extern int mdvi_register_special __PROTO(( + const char *label, + const char *prefix, + const char *regex, + DviSpecialHandler handler, + int replace)); +extern int mdvi_unregister_special __PROTO((const char *prefix)); +extern int mdvi_do_special __PROTO((DviContext *dvi, char *dvi_special)); +extern void mdvi_flush_specials __PROTO((void)); + +/* Fonts */ + +#define MDVI_FONTSEL_BITMAP (1 << 0) +#define MDVI_FONTSEL_GREY (1 << 1) +#define MDVI_FONTSEL_GLYPH (1 << 2) + +#define FONTCHAR(font, code) \ + (((code) < font->loc || (code) > font->hic || !(font)->chars) ? \ + NULL : &font->chars[(code) - (font)->loc]) +#define FONT_GLYPH_COUNT(font) ((font)->hic - (font)->loc + 1) + +#define glyph_present(x) ((x) && (x)->offset) + +/* create a reference to a font */ +extern DviFontRef *font_reference __PROTO((DviParams *params, + Int32 dvi_id, + const char *font_name, + Int32 checksum, + int xdpi, + int ydpi, + Int32 scale_factor)); + +/* drop a reference to a font */ +extern void font_drop_one __PROTO((DviFontRef *)); + +/* drop a chain of references */ +extern void font_drop_chain __PROTO((DviFontRef *)); + +/* destroy selected information for a glyph */ +extern void font_reset_one_glyph __PROTO((DviDevice *, DviFontChar *, int)); + +/* destroy selected information for all glyphs in a font */ +extern void font_reset_font_glyphs __PROTO((DviDevice *, DviFont *, int)); + +/* same for a chain of font references */ +extern void font_reset_chain_glyphs __PROTO((DviDevice *, DviFontRef *, int)); + +extern void font_finish_definitions __PROTO((DviContext *)); + +/* lookup an id # in a reference chain */ +extern DviFontRef* font_find_flat __PROTO((DviContext *, Int32)); +extern DviFontRef* font_find_mapped __PROTO((DviContext *, Int32)); + +/* called to reopen (or rewind) a font file */ +extern int font_reopen __PROTO((DviFont *)); + +/* reads a glyph from a font, and makes all necessary transformations */ +extern DviFontChar* font_get_glyph __PROTO((DviContext *, DviFont *, int)); + +/* transform a glyph according to the given orientation */ +extern void font_transform_glyph __PROTO((DviOrientation, DviGlyph *)); + +/* destroy all fonts that are not being used, returns number of fonts freed */ +extern int font_free_unused __PROTO((DviDevice *)); + +#define font_free_glyph(dev, font, code) \ + font_reset_one_glyph((dev), \ + FONTCHAR((font), (code)), MDVI_FONTSEL_GLYPH) + +extern int mdvi_encode_font __PROTO((DviParams *, DviFont *)); + + +/* font lookup functions */ +extern int mdvi_register_font_type __PROTO((DviFontInfo *, int)); +extern char **mdvi_list_font_class __PROTO((int)); +extern int mdvi_get_font_classes __PROTO((void)); +extern int mdvi_unregister_font_type __PROTO((const char *, int)); +extern char *mdvi_lookup_font __PROTO((DviFontSearch *)); +extern DviFont *mdvi_add_font __PROTO((const char *, Int32, int, int, Int32)); +extern int mdvi_font_retry __PROTO((DviParams *, DviFont *)); + +/* Miscellaneous */ + +extern int mdvi_set_logfile __PROTO((const char *)); +extern int mdvi_set_logstream __PROTO((FILE *)); +extern int mdvi_set_loglevel __PROTO((int)); + +#define mdvi_stop_logging(x) mdvi_set_logstream(NULL) + +/* this will check the environment and then `texmf.cnf' for + * the given name changed to lowercase, and `_' changed to `-' */ +extern char* mdvi_getenv __PROTO((const char *)); + +#endif /* _MDVI_DVI_H */ diff --git a/backend/dvi/mdvi-lib/pagesel.c b/backend/dvi/mdvi-lib/pagesel.c new file mode 100644 index 00000000..5a153955 --- /dev/null +++ b/backend/dvi/mdvi-lib/pagesel.c @@ -0,0 +1,491 @@ +/* pagesel.c -- Page selection mechanism */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdlib.h> +#include <ctype.h> +#include <string.h> +#include <limits.h> + +#include "mdvi.h" +#include "private.h" + +char *program_name = "page"; + +struct _DviPageSpec { + DviRange *ranges; + int nranges; +}; + +DviRange *mdvi_parse_range(const char *format, DviRange *limit, int *nitems, char **endptr) +{ + int quoted; + int size; + int curr; + int done; + int lower; + int upper; + int type; + char * cp; + char * copy; + char * text; + DviRange one; + DviRange *range; + + quoted = (*format == '{'); + if(quoted) format++; + + size = 0; + curr = 0; + range = NULL; + copy = mdvi_strdup(format); + done = 0; + lower = 0; + upper = 0; + type = MDVI_RANGE_UNBOUNDED; + + if(limit) { + switch(limit->type) { + case MDVI_RANGE_BOUNDED: + lower = limit->from; + upper = limit->to; + break; + case MDVI_RANGE_UPPER: + lower = INT_MIN; + upper = limit->to; + break; + case MDVI_RANGE_LOWER: + lower = limit->from; + upper = INT_MAX; + break; + case MDVI_RANGE_UNBOUNDED: + lower = INT_MIN; + upper = INT_MAX; + break; + } + type = limit->type; + } else { + lower = INT_MIN; + upper = INT_MAX; + type = MDVI_RANGE_UNBOUNDED; + } + one.type = type; + one.from = lower; + one.to = upper; + one.step = 1; + for(cp = text = copy; !done; cp++) { + char *p; + int f, t, s; + int ch; + int this_type; + int lower_given = 0; + int upper_given = 0; + + if(*cp == 0 || *cp == '.' || (*cp == '}' && quoted)) + done = 1; + else if(*cp != ',') + continue; + + if(text == cp) + continue; + ch = *cp; + *cp = 0; + f = lower; + t = upper; + s = 1; + + p = strchr(text, ':'); + if(p) *p++ = 0; + if(*text) { + lower_given = 1; + f = strtol(text, NULL, 0); + } + if(p == NULL) { + if(lower_given) { + upper_given = 1; + t = f; s = 1; + } + goto finish; + } + text = p; + p = strchr(text, ':'); + if(p) *p++ = 0; + if(*text) { + upper_given = 1; + t = strtol(text, NULL, 0); + } + if(p == NULL) + goto finish; + text = p; + if(*text) + s = strtol(text, NULL, 0); +finish: + if(lower_given && upper_given) + this_type = MDVI_RANGE_BOUNDED; + else if(lower_given) { + if(!RANGE_HAS_UPPER(type)) + this_type = MDVI_RANGE_LOWER; + else + this_type = MDVI_RANGE_BOUNDED; + t = upper; + } else if(upper_given) { + if(RANGE_HAS_UPPER(one.type)) { + one.to++; + this_type = MDVI_RANGE_BOUNDED; + } else { + one.to = lower; + if(!RANGE_HAS_LOWER(type)) + this_type = MDVI_RANGE_UPPER; + else + this_type = MDVI_RANGE_BOUNDED; + } + f = one.to; + } else { + this_type = type; + f = lower; + t = upper; + } + one.type = this_type; + one.to = t; + one.from = f; + one.step = s; + + if(curr == size) { + size += 8; + range = mdvi_realloc(range, size * sizeof(DviRange)); + } + memcpy(&range[curr++], &one, sizeof(DviRange)); + *cp = ch; + text = cp + 1; + } + if(done) + cp--; + if(quoted && *cp == '}') + cp++; + if(endptr) + *endptr = (char *)format + (cp - copy); + if(curr && curr < size) + range = mdvi_realloc(range, curr * sizeof(DviRange)); + *nitems = curr; + mdvi_free(copy); + return range; +} + +DviPageSpec *mdvi_parse_page_spec(const char *format) +{ + /* + * a page specification looks like this: + * '{'RANGE_SPEC'}' for a DVI spec + * '{'RANGE_SPEC'}' '.' ... for a TeX spec + */ + DviPageSpec *spec; + DviRange *range; + int count; + int i; + char *ptr; + + spec = xnalloc(struct _DviPageSpec *, 11); + for(i = 0; i < 11; i++) + spec[i] = NULL; + + /* check what kind of spec we're parsing */ + if(*format != '*') { + range = mdvi_parse_range(format, NULL, &count, &ptr); + if(ptr == format) { + if(range) mdvi_free(range); + mdvi_error(_("invalid page specification `%s'\n"), format); + return NULL; + } + } else + range = NULL; + + if(*format == 'D' || *format == 'd' || *ptr != '.') + i = 0; + else + i = 1; + + if(range) { + spec[i] = xalloc(struct _DviPageSpec); + spec[i]->ranges = range; + spec[i]->nranges = count; + } else + spec[i] = NULL; + + if(*ptr != '.') { + if(*ptr) + mdvi_warning(_("garbage after DVI page specification ignored\n")); + return spec; + } + + for(i++; *ptr == '.' && i <= 10; i++) { + ptr++; + if(*ptr == '*') { + ptr++; + range = NULL; + } else { + char *end; + + range = mdvi_parse_range(ptr, NULL, &count, &end); + if(end == ptr) { + if(range) mdvi_free(range); + range = NULL; + } else + ptr = end; + } + if(range != NULL) { + spec[i] = xalloc(struct _DviPageSpec); + spec[i]->ranges = range; + spec[i]->nranges = count; + } else + spec[i] = NULL; + } + + if(i > 10) + mdvi_warning(_("more than 10 counters in page specification\n")); + else if(*ptr) + mdvi_warning(_("garbage after TeX page specification ignored\n")); + + return spec; +} + +/* returns non-zero if the given page is included by `spec' */ +int mdvi_page_selected(DviPageSpec *spec, PageNum page, int dvipage) +{ + int i; + int not_found; + + if(spec == NULL) + return 1; + if(spec[0]) { + not_found = mdvi_in_range(spec[0]->ranges, + spec[0]->nranges, dvipage); + if(not_found < 0) + return 0; + } + for(i = 1; i <= 10; i++) { + if(spec[i] == NULL) + continue; + not_found = mdvi_in_range(spec[i]->ranges, + spec[i]->nranges, (int)page[i]); + if(not_found < 0) + return 0; + } + return 1; +} + +void mdvi_free_page_spec(DviPageSpec *spec) +{ + int i; + + for(i = 0; i < 11; i++) + if(spec[i]) { + mdvi_free(spec[i]->ranges); + mdvi_free(spec[i]); + } + mdvi_free(spec); +} + +int mdvi_in_range(DviRange *range, int nitems, int value) +{ + DviRange *r; + + for(r = range; r < range + nitems; r++) { + int cond; + + switch(r->type) { + case MDVI_RANGE_BOUNDED: + if(value == r->from) + return (r - range); + if(r->step < 0) + cond = (value <= r->from) && (value >= r->to); + else + cond = (value <= r->to) && (value >= r->from); + if(cond && ((value - r->from) % r->step) == 0) + return (r - range); + break; + case MDVI_RANGE_LOWER: + if(value == r->from) + return (r - range); + if(r->step < 0) + cond = (value < r->from); + else + cond = (value > r->from); + if(cond && ((value - r->from) % r->step) == 0) + return (r - range); + break; + case MDVI_RANGE_UPPER: + if(value == r->to) + return (r - range); + if(r->step < 0) + cond = (value > r->to); + else + cond = (value < r->to); + if(cond && ((value - r->to) % r->step) == 0) + return (r - range); + break; + case MDVI_RANGE_UNBOUNDED: + if((value % r->step) == 0) + return (r - range); + break; + } + } + return -1; +} + +int mdvi_range_length(DviRange *range, int nitems) +{ + int count = 0; + DviRange *r; + + for(r = range; r < range + nitems; r++) { + int n; + + if(r->type != MDVI_RANGE_BOUNDED) + return -2; + n = (r->to - r->from) / r->step; + if(n < 0) + n = 0; + count += n + 1; + } + return count; +} + +#ifdef TEST + +void print_range(DviRange *range) +{ + switch(range->type) { + case MDVI_RANGE_BOUNDED: + printf("From %d to %d, step %d\n", + range->from, range->to, range->step); + break; + case MDVI_RANGE_LOWER: + printf("From %d, step %d\n", + range->from, range->step); + break; + case MDVI_RANGE_UPPER: + printf("From %d, step -%d\n", + range->to, range->step); + break; + case MDVI_RANGE_UNBOUNDED: + printf("From 0, step %d and %d\n", + range->step, -range->step); + break; + } +} + +int main() +{ +#if 0 + char buf[256]; + DviRange limit; + + limit.from = 0; + limit.to = 100; + limit.step = 2; + limit.type = MDVI_RANGE_UNBOUNDED; + while(1) { + DviRange *range; + char *end; + int count; + int i; + + printf("Range> "); fflush(stdout); + if(fgets(buf, 256, stdin) == NULL) + break; + if(buf[strlen(buf)-1] == '\n') + buf[strlen(buf)-1] = 0; + if(buf[0] == 0) + continue; + end = NULL; + range = mdvi_parse_range(buf, &limit, &count, &end); + if(range == NULL) { + printf("range is empty\n"); + continue; + } + + for(i = 0; i < count; i++) { + printf("Range %d (%d elements):\n", + i, mdvi_range_length(&range[i], 1)); + print_range(&range[i]); + } + if(end && *end) + printf("Tail: [%s]\n", end); + printf("range has %d elements\n", + mdvi_range_length(range, count)); +#if 1 + while(1) { + int v; + + printf("Value: "); fflush(stdout); + if(fgets(buf, 256, stdin) == NULL) + break; + if(buf[strlen(buf)-1] == '\n') + buf[strlen(buf)-1] = 0; + if(buf[0] == 0) + break; + v = atoi(buf); + i = mdvi_in_range(range, count, v); + if(i == -1) + printf("%d not in range\n", v); + else { + printf("%d in range: ", v); + print_range(&range[i]); + } + } +#endif + if(range) mdvi_free(range); + } +#else + DviPageSpec *spec; + char buf[256]; + + while(1) { + printf("Spec> "); fflush(stdout); + if(fgets(buf, 256, stdin) == NULL) + break; + if(buf[strlen(buf)-1] == '\n') + buf[strlen(buf)-1] = 0; + if(buf[0] == 0) + continue; + spec = mdvi_parse_page_spec(buf); + if(spec == NULL) + printf("no spec parsed\n"); + else { + int i; + + printf("spec = "); + for(i = 0; i < 11; i++) { + printf("Counter %d:\n", i); + if(spec[i]) { + int k; + + for(k = 0; k < spec[i]->nranges; k++) + print_range(&spec[i]->ranges[k]); + } else + printf("\t*\n"); + } + mdvi_free_page_spec(spec); + } + } +#endif + exit(0); + +} +#endif /* TEST */ diff --git a/backend/dvi/mdvi-lib/paper.c b/backend/dvi/mdvi-lib/paper.c new file mode 100644 index 00000000..42cbcd3f --- /dev/null +++ b/backend/dvi/mdvi-lib/paper.c @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <string.h> + +#include "common.h" +#include "mdvi.h" +#include "private.h" + +static const DviPaperSpec papers[] = { + {"ISO", 0, 0}, + {"4A0", "1682mm", "2378mm"}, + {"2A0", "1189mm", "1682mm"}, + {"A0", "841mm", "1189mm"}, + {"A1", "594mm", "841mm"}, + {"A2", "420mm", "594mm"}, + {"A3", "297mm", "420mm"}, + {"A4", "210mm", "297mm"}, + {"A5", "148mm", "210mm"}, + {"A6", "105mm", "148mm"}, + {"A7", "74mm", "105mm"}, + {"A8", "52mm", "74mm"}, + {"A9", "37mm", "52mm"}, + {"A10", "26mm", "37mm"}, + {"B0", "1000mm", "1414mm"}, + {"B1", "707mm", "1000mm"}, + {"B2", "500mm", "707mm"}, + {"B3", "353mm", "500mm"}, + {"B4", "250mm", "353mm"}, + {"B5", "176mm", "250mm"}, + {"B6", "125mm", "176mm"}, + {"B7", "88mm", "125mm"}, + {"B8", "62mm", "88mm"}, + {"B9", "44mm", "62mm"}, + {"B10", "31mm", "44mm"}, + {"C0", "917mm", "1297mm"}, + {"C1", "648mm", "917mm"}, + {"C2", "458mm", "648mm"}, + {"C3", "324mm", "458mm"}, + {"C4", "229mm", "324mm"}, + {"C5", "162mm", "229mm"}, + {"C6", "114mm", "162mm"}, + {"C7", "81mm", "114mm"}, + {"C8", "57mm", "81mm"}, + {"C9", "40mm", "57mm"}, + {"C10", "28mm", "40mm"}, + {"US", 0, 0}, + {"archA", "9in", "12in"}, + {"archB", "12in", "18in"}, + {"archC", "18in", "24in"}, + {"archD", "24in", "36in"}, + {"archE", "36in", "48in"}, + {"executive", "7.5in", "10in"}, + {"flsa", "8.5in", "13in"}, + {"flse", "8.5in", "13in"}, + {"halfletter", "5.5in", "8.5in"}, + {"letter", "8.5in", "11in"}, + {"legal", "8.5in", "14in"}, + {"ledger", "17in", "11in"}, + {"note", "7.5in", "10in"}, + {"tabloid", "11in", "17in"}, + {"statement", "5.5in", "8.5in"}, + {0, 0, 0} +}; + +static DviPaperClass str2class(const char *name) +{ + if(STRCEQ(name, "ISO")) + return MDVI_PAPER_CLASS_ISO; + else if(STRCEQ(name, "US")) + return MDVI_PAPER_CLASS_US; + return MDVI_PAPER_CLASS_CUSTOM; +} + +int mdvi_get_paper_size(const char *name, DviPaper *paper) +{ + const DviPaperSpec *sp; + double a, b; + char c, d, e, f; + char buf[32]; + + paper->pclass = MDVI_PAPER_CLASS_CUSTOM; + if(sscanf(name, "%lfx%lf%c%c", &a, &b, &c, &d) == 4) { + sprintf(buf, "%12.16f%c%c", a, c, d); + paper->inches_wide = unit2pix_factor(buf); + sprintf(buf, "%12.16f%c%c", b, c, d); + paper->inches_tall = unit2pix_factor(buf); + paper->name = _("custom"); + return 0; + } else if(sscanf(name, "%lf%c%c,%lf%c%c", &a, &c, &d, &b, &e, &f) == 6) { + sprintf(buf, "%12.16f%c%c", a, c, d); + paper->inches_wide = unit2pix_factor(buf); + sprintf(buf, "%12.16f%c%c", b, e, f); + paper->inches_tall = unit2pix_factor(buf); + paper->name = _("custom"); + return 0; + } + + for(sp = &papers[0]; sp->name; sp++) { + if(!sp->width || !sp->height) { + paper->pclass = str2class(sp->name); + continue; + } + if(strcasecmp(sp->name, name) == 0) { + paper->inches_wide = unit2pix_factor(sp->width); + paper->inches_tall = unit2pix_factor(sp->height); + paper->name = sp->name; + return 0; + } + } + return -1; +} + +DviPaperSpec *mdvi_get_paper_specs(DviPaperClass pclass) +{ + int i; + int first, count; + DviPaperSpec *spec, *ptr; + + first = -1; + count = 0; + if(pclass == MDVI_PAPER_CLASS_ANY || + pclass == MDVI_PAPER_CLASS_CUSTOM) { + first = 0; + count = (sizeof(papers) / sizeof(papers[0])) - 3; + } else for(i = 0; papers[i].name; i++) { + if(papers[i].width == NULL) { + if(str2class(papers[i].name) == pclass) + first = i; + else if(first >= 0) + break; + } else if(first >= 0) + count++; + } + ptr = spec = xnalloc(DviPaperSpec, count + 1); + for(i = first; papers[i].name&& count > 0; i++) { + if(papers[i].width) { + ptr->name = papers[i].name; + ptr->width = papers[i].width; + ptr->height = papers[i].height; + ptr++; + count--; + } + } + ptr->name = NULL; + ptr->width = NULL; + ptr->height = NULL; + + return spec; +} + +void mdvi_free_paper_specs(DviPaperSpec *spec) +{ + mdvi_free(spec); +} diff --git a/backend/dvi/mdvi-lib/paper.h b/backend/dvi/mdvi-lib/paper.h new file mode 100644 index 00000000..d42ee079 --- /dev/null +++ b/backend/dvi/mdvi-lib/paper.h @@ -0,0 +1,32 @@ +#ifndef MDVI_PAPER +#define MDVI_PAPER + +typedef struct _DviPaper DviPaper; +typedef struct _DviPaperSpec DviPaperSpec; + +typedef enum { + MDVI_PAPER_CLASS_ISO, + MDVI_PAPER_CLASS_US, + MDVI_PAPER_CLASS_ANY, + MDVI_PAPER_CLASS_CUSTOM +} DviPaperClass; + +struct _DviPaper { + DviPaperClass pclass; + const char *name; + double inches_wide; + double inches_tall; +}; + +struct _DviPaperSpec { + const char *name; + const char *width; + const char *height; +}; + + +extern int mdvi_get_paper_size __PROTO((const char *, DviPaper *)); +extern DviPaperSpec* mdvi_get_paper_specs __PROTO((DviPaperClass)); +extern void mdvi_free_paper_specs __PROTO((DviPaperSpec *)); + +#endif diff --git a/backend/dvi/mdvi-lib/pk.c b/backend/dvi/mdvi-lib/pk.c new file mode 100644 index 00000000..a5791869 --- /dev/null +++ b/backend/dvi/mdvi-lib/pk.c @@ -0,0 +1,570 @@ + +/* Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * History: + * + * 11/3/2000: + * - First working version + * 11/4/2000: + * - FIXED: entirely white/black rows were missed. + * 11/8/2000: + * - TESTED: Glyphs are rendered correctly in different byte orders. + * - Made bitmap code much more efficient and compact. + */ + +#include <config.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <math.h> + +#include "mdvi.h" +#include "private.h" + +#define PK_ID 89 +#define PK_CMD_START 240 +#define PK_X1 240 +#define PK_X2 241 +#define PK_X3 242 +#define PK_X4 243 +#define PK_Y 244 +#define PK_POST 245 +#define PK_NOOP 246 +#define PK_PRE 247 + +#define PK_DYN_F(x) (((x) >> 4) & 0xf) +#define PK_PACKED(x) (PK_DYN_F(x) != 14) + +static int pk_load_font __PROTO((DviParams *, DviFont *)); +static int pk_font_get_glyph __PROTO((DviParams *, DviFont *, int)); + +static int pk_auto_generate = 1; /* this is ON by default */ + +typedef struct { + char currbyte; + char nybpos; + int dyn_f; +} pkread; + +static char *pk_lookup __PROTO((const char *, Ushort *, Ushort *)); +static char *pk_lookupn __PROTO((const char *, Ushort *, Ushort *)); + +/* only symbols exported by this file */ +DviFontInfo pk_font_info = { + "PK", + 0, /* scaling not supported natively */ + pk_load_font, + pk_font_get_glyph, + mdvi_shrink_glyph, + mdvi_shrink_glyph_grey, + NULL, /* free */ + NULL, /* reset */ + pk_lookup, /* lookup */ + kpse_pk_format, + NULL +}; + +DviFontInfo pkn_font_info = { + "PKN", + 0, /* scaling not supported natively */ + pk_load_font, + pk_font_get_glyph, + mdvi_shrink_glyph, + mdvi_shrink_glyph_grey, + NULL, /* free */ + NULL, /* reset */ + pk_lookupn, /* lookup */ + kpse_pk_format, + NULL +}; + +static char *pk_lookup(const char *name, Ushort *hdpi, Ushort *vdpi) +{ + kpse_glyph_file_type type; + char *filename; + + if(pk_auto_generate == 0) { + kpse_set_program_enabled(kpse_pk_format, 1, kpse_src_cmdline); + pk_auto_generate = 1; + } + filename = kpse_find_glyph(name, Max(*hdpi, *vdpi), + kpse_pk_format, &type); + if(filename && type.source == kpse_glyph_source_fallback) { + mdvi_free(filename); + filename = NULL; + } else if(filename) { + *hdpi = *vdpi = type.dpi; + } + return filename; +} + +static char *pk_lookupn(const char *name, Ushort *hdpi, Ushort *vdpi) +{ + kpse_glyph_file_type type; + char *filename; + + if(pk_auto_generate) { + kpse_set_program_enabled(kpse_pk_format, 0, kpse_src_cmdline); + pk_auto_generate = 0; + } + filename = kpse_find_glyph(name, Max(*hdpi, *vdpi), + kpse_pk_format, &type); + if(filename && type.source == kpse_glyph_source_fallback) { + mdvi_free(filename); + filename = NULL; + } else if(filename) { + *hdpi = *vdpi = type.dpi; + } + return filename; +} + +static inline int pk_get_nyb(FILE *p, pkread *pk) +{ + unsigned t; + int nb; + char c; + + t = c = pk->currbyte; + nb = pk->nybpos; + + switch(nb) { + case 0: + c = pk->currbyte = fuget1(p); + t = (c >> 4); + break; + case 1: + t = c; + break; + } + pk->nybpos = !nb; + return (t & 0xf); +} + +/* + * this is a bit cumbersome because we have to pass around + * the `pkread' data... + */ +static int pk_packed_num(FILE *p, pkread *pkr, int *repeat) +{ + int i, j; + int dyn_f = pkr->dyn_f; + + i = pk_get_nyb(p, pkr); + if(i == 0) { + do { + j = pk_get_nyb(p, pkr); + i++; + } while(j == 0); + while(i-- > 0) + j = (j << 4) + pk_get_nyb(p, pkr); + return (j - 15 + ((13 - dyn_f) << 4) + + dyn_f); + } else if(i <= dyn_f) + return i; + else if(i < 14) + return ((i - dyn_f - 1) << 4) + + pk_get_nyb(p, pkr) + dyn_f + 1; + else { + *repeat = 1; + if(i == 14) + *repeat = pk_packed_num(p, pkr, repeat); + return pk_packed_num(p, pkr, repeat); + } +} + +#define ROUND(x,y) (((x) + (y) - 1) / (y)) + +static BITMAP *get_bitmap(FILE *p, int w, int h, int flags) +{ + int i, j; + BmUnit *ptr; + BITMAP *bm; + int bitpos; + int currch; + + flags = 0; /* shut up that compiler */ + bitpos = -1; + if((bm = bitmap_alloc(w, h)) == NULL) + return NULL; + DEBUG((DBG_BITMAPS, "get_bitmap(%d,%d,%d): reading raw bitmap\n", + w, h, flags)); + ptr = bm->data; + currch = 0; + for(i = 0; i < h; i++) { + BmUnit mask; + + mask = FIRSTMASK; + for(j = 0; j < w; j++) { + if(bitpos < 0) { + currch = fuget1(p); + bitpos = 7; + } + if(currch & (1 << bitpos)) + *ptr |= mask; + bitpos--; + if(mask == LASTMASK) { + ptr++; + mask = FIRSTMASK; + } else + NEXTMASK(mask); + } + ptr = bm_offset(ptr, bm->stride); + } + return bm; +} + +static BITMAP *get_packed(FILE *p, int w, int h, int flags) +{ + int inrow, count; + int row; + BITMAP *bm; + int repeat_count; + int paint; + pkread pkr; + + pkr.nybpos = 0; + pkr.currbyte = 0; + pkr.dyn_f = PK_DYN_F(flags); + paint = !!(flags & 0x8); + + repeat_count = 0; + row = 0; + inrow = w; + if((bm = bitmap_alloc(w, h)) == NULL) + return NULL; + DEBUG((DBG_BITMAPS, "get_packed(%d,%d,%d): reading packed glyph\n", + w, h, flags)); + while(row < h) { + int i = 0; + + count = pk_packed_num(p, &pkr, &i); + if(i > 0) { + if(repeat_count) + fprintf(stderr, "second repeat count for this row (had %d and got %d)\n", + repeat_count, i); + repeat_count = i; + } + + if(count >= inrow) { + Uchar *r, *t; + BmUnit *a, mask; + + /* first finish current row */ + if(paint) + bitmap_set_row(bm, row, w - inrow, inrow, paint); + /* now copy it as many times as required */ + r = (Uchar *)bm->data + row * bm->stride; + while(repeat_count-- > 0) { + t = r + bm->stride; + /* copy entire lines */ + memcpy(t, r, bm->stride); + r = t; + row++; + } + repeat_count = 0; + /* count first row we drew */ + row++; + /* update run count */ + count -= inrow; + /* now r points to the beginning of the last row we finished */ + if(paint) + mask = ~((BmUnit)0); + else + mask = 0; + /* goto next row */ + a = (BmUnit *)(r + bm->stride); + /* deal with entirely with/black rows */ + while(count >= w) { + /* count number of atoms in a row */ + i = ROUND(w, BITMAP_BITS); + while(i-- > 0) + *a++ = mask; + count -= w; + row++; + } + inrow = w; + } + if(count > 0) + bitmap_set_row(bm, row, w - inrow, count, paint); + inrow -= count; + paint = !paint; + } + if(row != h || inrow != w) { + mdvi_error(_("Bad PK file: More bits than required\n")); + bitmap_destroy(bm); + return NULL; + } + return bm; +} + +static BITMAP *get_char(FILE *p, int w, int h, int flags) +{ + /* check if dyn_f == 14 */ + if(((flags >> 4) & 0xf) == 14) + return get_bitmap(p, w, h, flags); + else + return get_packed(p, w, h, flags); +} + +/* supports any number of characters in a font */ +static int pk_load_font(DviParams *unused, DviFont *font) +{ + int i; + int flag_byte; + int loc, hic, maxch; + Int32 checksum; + FILE *p; +#ifndef NODEBUG + char s[256]; +#endif + long alpha, beta, z; + + font->chars = xnalloc(DviFontChar, 256); + p = font->in; + memzero(font->chars, 256 * sizeof(DviFontChar)); + for(i = 0; i < 256; i++) + font->chars[i].offset = 0; + + /* check the preamble */ + loc = fuget1(p); hic = fuget1(p); + if(loc != PK_PRE || hic != PK_ID) + goto badpk; + i = fuget1(p); +#ifndef NODEBUG + for(loc = 0; loc < i; loc++) + s[loc] = fuget1(p); + s[loc] = 0; + DEBUG((DBG_FONTS, "(pk) %s: %s\n", font->fontname, s)); +#else + fseek(in, (long)i, SEEK_CUR); +#endif + /* get the design size */ + font->design = fuget4(p); + /* get the checksum */ + checksum = fuget4(p); + if(checksum && font->checksum && font->checksum != checksum) { + mdvi_warning(_("%s: checksum mismatch (expected %u, got %u)\n"), + font->fontname, font->checksum, checksum); + } else if(!font->checksum) + font->checksum = checksum; + /* skip pixel per point ratios */ + fuget4(p); + fuget4(p); + if(feof(p)) + goto badpk; + + /* now start reading the font */ + loc = 256; hic = -1; maxch = 256; + + /* initialize alpha and beta for TFM width computation */ + TFMPREPARE(font->scale, z, alpha, beta); + + while((flag_byte = fuget1(p)) != PK_POST) { + if(feof(p)) + break; + if(flag_byte >= PK_CMD_START) { + switch(flag_byte) { + case PK_X1: + case PK_X2: + case PK_X3: + case PK_X4: { +#ifndef NODEBUG + char *t; + int n; + + i = fugetn(p, flag_byte - PK_X1 + 1); + if(i < 256) + t = &s[0]; + else + t = mdvi_malloc(i + 1); + for(n = 0; n < i; n++) + t[n] = fuget1(p); + t[n] = 0; + DEBUG((DBG_SPECIAL, "(pk) %s: Special \"%s\"\n", + font->fontname, t)); + if(t != &s[0]) + mdvi_free(t); +#else + i = fugetn(p, flag_byte - PK_X1 + 1); + while(i-- > 0) + fuget1(p); +#endif + break; + } + case PK_Y: + i = fuget4(p); + DEBUG((DBG_SPECIAL, "(pk) %s: MF special %u\n", + font->fontname, (unsigned)i)); + break; + case PK_POST: + case PK_NOOP: + break; + case PK_PRE: + mdvi_error(_("%s: unexpected preamble\n"), font->fontname); + goto error; + } + } else { + int pl; + int cc; + int w, h; + int x, y; + int offset; + long tfm; + + switch(flag_byte & 0x7) { + case 7: + pl = fuget4(p); + cc = fuget4(p); + offset = ftell(p) + pl; + tfm = fuget4(p); + fsget4(p); /* skip dx */ + fsget4(p); /* skip dy */ + w = fuget4(p); + h = fuget4(p); + x = fsget4(p); + y = fsget4(p); + break; + case 4: + case 5: + case 6: + pl = (flag_byte % 4) * 65536 + fuget2(p); + cc = fuget1(p); + offset = ftell(p) + pl; + tfm = fuget3(p); + fsget2(p); /* skip dx */ + /* dy assumed 0 */ + w = fuget2(p); + h = fuget2(p); + x = fsget2(p); + y = fsget2(p); + break; + default: + pl = (flag_byte % 4) * 256 + fuget1(p); + cc = fuget1(p); + offset = ftell(p) + pl; + tfm = fuget3(p); + fsget1(p); /* skip dx */ + /* dy assumed 0 */ + w = fuget1(p); + h = fuget1(p); + x = fsget1(p); + y = fsget1(p); + } + if(feof(p)) + break; + if(cc < loc) + loc = cc; + if(cc > hic) + hic = cc; + if(cc > maxch) { + font->chars = xresize(font->chars, + DviFontChar, cc + 16); + for(i = maxch; i < cc + 16; i++) + font->chars[i].offset = 0; + maxch = cc + 16; + } + font->chars[cc].code = cc; + font->chars[cc].flags = flag_byte; + font->chars[cc].offset = ftell(p); + font->chars[cc].width = w; + font->chars[cc].height = h; + font->chars[cc].glyph.data = NULL; + font->chars[cc].x = x; + font->chars[cc].y = y; + font->chars[cc].glyph.x = x; + font->chars[cc].glyph.y = y; + font->chars[cc].glyph.w = w; + font->chars[cc].glyph.h = h; + font->chars[cc].grey.data = NULL; + font->chars[cc].shrunk.data = NULL; + font->chars[cc].tfmwidth = TFMSCALE(z, tfm, alpha, beta); + font->chars[cc].loaded = 0; + fseek(p, (long)offset, SEEK_SET); + } + } + if(flag_byte != PK_POST) { + mdvi_error(_("%s: unexpected end of file (no postamble)\n"), + font->fontname); + goto error; + } + while((flag_byte = fuget1(p)) != EOF) { + if(flag_byte != PK_NOOP) { + mdvi_error(_("invalid PK file! (junk in postamble)\n")); + goto error; + } + } + + /* resize font char data */ + if(loc > 0 || hic < maxch-1) { + memmove(font->chars, font->chars + loc, + (hic - loc + 1) * sizeof(DviFontChar)); + font->chars = xresize(font->chars, + DviFontChar, hic - loc + 1); + } + font->loc = loc; + font->hic = hic; + return 0; + +badpk: + mdvi_error(_("%s: File corrupted, or not a PK file\n"), font->fontname); +error: + mdvi_free(font->chars); + font->chars = NULL; + font->loc = font->hic = 0; + return -1; +} + +static int pk_font_get_glyph(DviParams *params, DviFont *font, int code) +{ + DviFontChar *ch; + + if((ch = FONTCHAR(font, code)) == NULL) + return -1; + + if(ch->offset == 0) + return -1; + DEBUG((DBG_GLYPHS, "(pk) loading glyph for character %d (%dx%d) in font `%s'\n", + code, ch->width, ch->height, font->fontname)); + if(font->in == NULL && font_reopen(font) < 0) + return -1; + if(!ch->width || !ch->height) { + /* this happens for ` ' (ASCII 32) in some fonts */ + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + ch->glyph.data = NULL; + return 0; + } + if(fseek(font->in, ch->offset, SEEK_SET) == -1) + return -1; + ch->glyph.data = get_char(font->in, + ch->width, ch->height, ch->flags); + if(ch->glyph.data) { + /* restore original settings */ + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + } else + return -1; + ch->loaded = 1; + return 0; +} diff --git a/backend/dvi/mdvi-lib/private.h b/backend/dvi/mdvi-lib/private.h new file mode 100644 index 00000000..9f89dc70 --- /dev/null +++ b/backend/dvi/mdvi-lib/private.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _MDVI_PRIVATE_H +#define _MDVI_PRIVATE_H 1 + +#define HAVE_PROTOTYPES 1 + +#if STDC_HEADERS +# /* kpathsea's headers (wrongly!) redefine strchr() and strrchr() to +# non ANSI C functions if HAVE_STRCHR and HAVE_STRRCHR are not defined. +# */ +# ifndef HAVE_STRCHR +# define HAVE_STRCHR +# endif +# ifndef HAVE_STRRCHR +# define HAVE_STRRCHR +# endif +#endif + +#include <kpathsea/debug.h> +#include <kpathsea/tex-file.h> +#include <kpathsea/tex-glyph.h> +#include <kpathsea/cnf.h> +#include <kpathsea/proginit.h> +#include <kpathsea/progname.h> +#include <kpathsea/tex-make.h> +#include <kpathsea/lib.h> + +#define ISSP(p) (*(p) == ' ' || *(p) == '\t') +#define SKIPSP(p) while(ISSP(p)) p++ +#define SKIPNSP(p) while(*(p) && !ISSP(p)) p++ + +#ifdef ENABLE_NLS +#include <libintl.h> +#define _(x) gettext(x) +#define _G(x) x +#else +#define _(x) x +#define _G(x) x +#endif /* ENABLE_NLS */ + +#if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2 +#define _BREAKPOINT() do { __asm__ __volatile__ ("int $03"); } while(0) +#elif defined (__alpha__) && defined (__GNUC__) && __GNUC__ >= 2 +#define _BREAKPOINT() do { __asm__ __volatile__ ("bpt"); } while(0) +#else /* !__i386__ && !__alpha__ */ +#define _BREAKPOINT() +#endif /* __i386__ */ + +#endif /* _MDVI_PRIVATE_H */ diff --git a/backend/dvi/mdvi-lib/setup.c b/backend/dvi/mdvi-lib/setup.c new file mode 100644 index 00000000..ba0c545d --- /dev/null +++ b/backend/dvi/mdvi-lib/setup.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <ctype.h> + +#include "mdvi.h" +#include "private.h" + +void mdvi_init_kpathsea(const char *program, + const char *mfmode, const char *font, int dpi, + const char *texmfcnf) +{ + const char *p; + + /* Stop meaningless output generation. */ + kpse_make_tex_discard_errors = FALSE; + + p = strrchr(program, '/'); + p = (p ? p + 1 : program); + kpse_set_program_name(program, p); + kpse_init_prog(p, dpi, mfmode, font); + kpse_set_program_enabled(kpse_any_glyph_format, 1, kpse_src_compile); + kpse_set_program_enabled(kpse_pk_format, 1, kpse_src_compile); + kpse_set_program_enabled(kpse_tfm_format, 1, kpse_src_compile); + kpse_set_program_enabled(kpse_ofm_format, 1, kpse_src_compile); + if (texmfcnf != NULL) + xputenv("TEXMFCNF", texmfcnf); +} + diff --git a/backend/dvi/mdvi-lib/sp-epsf.c b/backend/dvi/mdvi-lib/sp-epsf.c new file mode 100644 index 00000000..703a9c8c --- /dev/null +++ b/backend/dvi/mdvi-lib/sp-epsf.c @@ -0,0 +1,311 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* postscript specials */ + +#include <config.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "mdvi.h" +#include "private.h" + +typedef struct { + double ox; + double oy; + double bw; + double bh; + double angle; +} EpsfBox; + +#define LLX 0 +#define LLY 1 +#define URX 2 +#define URY 3 +#define RWI 4 +#define RHI 5 +#define HOFF 6 +#define VOFF 7 +#define HSIZE 8 +#define VSIZE 9 +#define HSCALE 10 +#define VSCALE 11 +#define ANGLE 12 +#define CLIP 13 + +void epsf_special __PROTO((DviContext *dvi, char *prefix, char *arg)); + +/* Note: the given strings are modified in place */ +static char *parse_epsf_special(EpsfBox *box, char **ret, + char *prefix, char *arg) +{ + static struct { + char *name; + int has_arg; + char *value; + } keys[] = { + {"llx", 1, "0"}, + {"lly", 1, "0"}, + {"urx", 1, "0"}, + {"ury", 1, "0"}, + {"rwi", 1, "0"}, + {"rhi", 1, "0"}, + {"hoffset", 1, "0"}, + {"voffset", 1, "0"}, + {"hsize", 1, "612"}, + {"vsize", 1, "792"}, + {"hscale", 1, "100"}, + {"vscale", 1, "100"}, + {"angle", 1, "0"}, + {"clip", 0, "0"} + }; +#define NKEYS (sizeof(keys) / sizeof(keys[0])) + char *ptr; + char *filename; + int quoted; + double value[NKEYS]; + Uchar present[NKEYS]; + Buffer buffer; + char *name; + int i; + double originx; + double originy; + double hsize; + double vsize; + double hscale; + double vscale; + + /* this special has the form + * ["]file.ps["] [key=valye]* + */ + + /* scan the filename */ + while(*arg == ' ' || *arg == '\t') + arg++; + + /* make a copy of the string */ + ptr = arg; + + if(*ptr == '"') + for(name = ++ptr; *ptr && *ptr != '"'; ptr++); + else + for(name = ptr; *ptr && *ptr != ' ' && *ptr != '\t'; ptr++); + if(ptr == name) + return NULL; + *ptr++ = 0; + filename = name; + + /* reset values to defaults */ + for(i = 0; i < NKEYS; i++) { + value[i] = atof(keys[i].value); + present[i] = 0; + } + + buff_init(&buffer); + buff_add(&buffer, "@beginspecial ", 0); + + quoted = 0; + while(*ptr) { + const char *keyname; + char *val; + char *p; + + while(*ptr == ' ' || *ptr == '\t') + ptr++; + keyname = ptr; + + /* get the whole key=value pair */ + for(; *ptr && *ptr != ' ' && *ptr != '\t'; ptr++); + + if(*ptr) *ptr++ = 0; + /* now we shouldn't touch `ptr' anymore */ + + /* now work on this pair */ + p = strchr(keyname, '='); + if(p == NULL) + val = NULL; + else { + *p++ = 0; + if(*p == '"') { + val = ++p; + /* skip until closing quote */ + while(*p && *p != '"') + p++; + if(*p != '"') + mdvi_warning( + _("%s: malformed value for key `%s'\n"), + filename, keyname); + } else + val = p; + } + + /* lookup the key */ + for(i = 0; i < NKEYS; i++) + if(STRCEQ(keys[i].name, keyname)) + break; + if(i == NKEYS) { + mdvi_warning(_("%s: unknown key `%s' ignored\n"), + filename, keyname); + continue; + } + if(keys[i].has_arg && val == NULL) { + mdvi_warning(_("%s: no argument for key `%s', using defaults\n"), + filename, keyname); + val = keys[i].value; + } else if(!keys[i].has_arg && val) { + mdvi_warning(_("%s: argument `%s' ignored for key `%s'\n"), + filename, val, keyname); + val = NULL; + } + if(val) + value[i] = atof(val); + + /* put the argument */ + buff_add(&buffer, val, 0); + buff_add(&buffer, " @", 2); + buff_add(&buffer, keyname, 0); + buff_add(&buffer, " ", 1); + + /* remember that this option was given */ + present[i] = 0xff; + } + buff_add(&buffer, " @setspecial", 0); + + /* now compute the bounding box (code comes from dvips) */ + originx = 0; + originy = 0; + hscale = 1; + vscale = 1; + hsize = 0; + vsize = 0; + + if(present[HSIZE]) + hsize = value[HSIZE]; + if(present[VSIZE]) + vsize = value[VSIZE]; + if(present[HOFF]) + originx = value[HOFF]; + if(present[VOFF]) + originy = value[VOFF]; + if(present[HSCALE]) + hscale = value[HSCALE] / 100.0; + if(present[VSCALE]) + vscale = value[VSCALE] / 100.0; + if(present[URX] && present[LLX]) + hsize = value[URX] - value[LLX]; + if(present[URY] && present[LLY]) + vsize = value[URY] - value[LLY]; + if(present[RWI] || present[RHI]) { + if(present[RWI] && !present[RHI]) + hscale = vscale = value[RWI] / (10.0 * hsize); + else if(present[RHI] && !present[RWI]) + hscale = vscale = value[RHI] / (10.0 * vsize); + else { + hscale = value[RWI] / (10.0 * hsize); + vscale = value[RHI] / (10.0 * vsize); + } + } + + box->ox = originx; + box->oy = originy; + box->bw = hsize * hscale; + box->bh = vsize * vscale; + box->angle = value[ANGLE]; + + *ret = buffer.data; + + return filename; +} + +void epsf_special(DviContext *dvi, char *prefix, char *arg) +{ + char *file; + char *special; + char *psfile; + char *tmp; + EpsfBox box = {0, 0, 0, 0}; + int x, y; + int w, h; + double xf, vf; + struct stat buf; + + file = parse_epsf_special(&box, &special, prefix, arg); + if (file != NULL) + mdvi_free (special); + + xf = dvi->params.dpi * dvi->params.mag / (72.0 * dvi->params.hshrink); + vf = dvi->params.vdpi * dvi->params.mag / (72.0 * dvi->params.vshrink); + w = FROUND(box.bw * xf); + h = FROUND(box.bh * vf); + x = FROUND(box.ox * xf) + dvi->pos.hh; + y = FROUND(box.oy * vf) + dvi->pos.vv - h + 1; + + if (!file || !dvi->device.draw_ps) { + dvi->device.draw_rule (dvi, x, y, w, h, 0); + return; + } + + if (file[0] == '/') { /* Absolute path */ + if (stat (file, &buf) == 0) + dvi->device.draw_ps (dvi, file, x, y, w, h); + else + dvi->device.draw_rule (dvi, x, y, w, h, 0); + return; + } + + tmp = mdvi_strrstr (dvi->filename, "/"); + if (tmp) { /* Document directory */ + int path_len = strlen (dvi->filename) - strlen (tmp + 1); + int file_len = strlen (file); + + psfile = mdvi_malloc (path_len + file_len + 1); + psfile[0] = '\0'; + strncat (psfile, dvi->filename, path_len); + strncat (psfile, file, file_len); + + if (stat (psfile, &buf) == 0) { + dvi->device.draw_ps (dvi, psfile, x, y, w, h); + mdvi_free (psfile); + + return; + } + + mdvi_free (psfile); + } + + psfile = mdvi_build_path_from_cwd (file); + if (stat (psfile, &buf) == 0) { /* Current working dir */ + dvi->device.draw_ps (dvi, psfile, x, y, w, h); + mdvi_free (psfile); + + return; + } + + mdvi_free (psfile); + + psfile = kpse_find_pict (file); + if (psfile) { /* kpse */ + dvi->device.draw_ps (dvi, psfile, x, y, w, h); + } else { + dvi->device.draw_rule(dvi, x, y, w, h, 0); + } + + free (psfile); +} diff --git a/backend/dvi/mdvi-lib/special.c b/backend/dvi/mdvi-lib/special.c new file mode 100644 index 00000000..e4832544 --- /dev/null +++ b/backend/dvi/mdvi-lib/special.c @@ -0,0 +1,249 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <ctype.h> +#include <string.h> + +#include "mdvi.h" +#include "private.h" + +#if defined(WITH_REGEX_SPECIALS) && defined(HAVE_REGEX_H) +#include <regex.h> +#endif + +typedef struct _DviSpecial { + struct _DviSpecial *next; + struct _DviSpecial *prev; + char *label; + char *prefix; + size_t plen; +#ifdef WITH_REGEX_SPECIALS + regex_t reg; + int has_reg; +#endif + DviSpecialHandler handler; +} DviSpecial; + +static ListHead specials = {NULL, NULL, 0}; + +#define SPECIAL(x) \ + void x __PROTO((DviContext *, const char *, const char *)) + +static SPECIAL(sp_layer); +extern SPECIAL(epsf_special); +extern SPECIAL(do_color_special); + +static struct { + char *label; + char *prefix; + char *regex; + DviSpecialHandler handler; +} builtins[] = { + {"Layers", "layer", NULL, sp_layer}, + {"EPSF", "psfile", NULL, epsf_special} +}; +#define NSPECIALS (sizeof(builtins) / sizeof(builtins[0])) +static int registered_builtins = 0; + +static void register_builtin_specials(void) +{ + int i; + + ASSERT(registered_builtins == 0); + registered_builtins = 1; + for(i = 0; i < NSPECIALS; i++) + mdvi_register_special( + builtins[i].label, + builtins[i].prefix, + builtins[i].regex, + builtins[i].handler, + 1 /* replace if exists */); +} + +static DviSpecial *find_special_prefix(const char *prefix) +{ + DviSpecial *sp; + + /* should have a hash table here, but I'm so lazy */ + for(sp = (DviSpecial *)specials.head; sp; sp = sp->next) { + if(STRCEQ(sp->prefix, prefix)) + break; + } + return sp; +} + +int mdvi_register_special(const char *label, const char *prefix, + const char *regex, DviSpecialHandler handler, int replace) +{ + DviSpecial *sp; + int newsp = 0; + + if(!registered_builtins) + register_builtin_specials(); + + sp = find_special_prefix(prefix); + if(sp == NULL) { + sp = xalloc(DviSpecial); + sp->prefix = mdvi_strdup(prefix); + newsp = 1; + } else if(!replace) + return -1; + else { + mdvi_free(sp->label); + sp->label = NULL; + } + +#ifdef WITH_REGEX_SPECIALS + if(!newsp && sp->has_reg) { + regfree(&sp->reg); + sp->has_reg = 0; + } + if(regex && regcomp(&sp->reg, regex, REG_NOSUB) != 0) { + if(newsp) { + mdvi_free(sp->prefix); + mdvi_free(sp); + } + return -1; + } + sp->has_reg = (regex != NULL); +#endif + sp->handler = handler; + sp->label = mdvi_strdup(label); + sp->plen = strlen(prefix); + if(newsp) + listh_prepend(&specials, LIST(sp)); + DEBUG((DBG_SPECIAL, + "New \\special handler `%s' with prefix `%s'\n", + label, prefix)); + return 0; +} + +int mdvi_unregister_special(const char *prefix) +{ + DviSpecial *sp; + + sp = find_special_prefix(prefix); + if(sp == NULL) + return -1; + mdvi_free(sp->prefix); +#ifdef WITH_REGEX_SPECIALS + if(sp->has_reg) + regfree(&sp->reg); +#endif + listh_remove(&specials, LIST(sp)); + mdvi_free(sp); + return 0; +} + +#define IS_PREFIX_DELIMITER(x) (strchr(" \t\n:=", (x)) != NULL) + +int mdvi_do_special(DviContext *dvi, char *string) +{ + char *prefix; + char *ptr; + DviSpecial *sp; + + if(!registered_builtins) { + } + + if(!string || !*string) + return 0; + + /* skip leading spaces */ + while(*string && isspace(*string)) + string++; + + DEBUG((DBG_SPECIAL, "Looking for a handler for `%s'\n", string)); + + /* now try to find a match */ + ptr = string; + for(sp = (DviSpecial *)specials.head; sp; sp = sp->next) { +#ifdef WITH_REGEX_SPECIALS + if(sp->has_reg && !regexec(&sp->reg, ptr, 0, 0, 0)) + break; +#endif + /* check the prefix */ + if(STRNCEQ(sp->prefix, ptr, sp->plen)) { + ptr += sp->plen; + break; + } + } + + if(sp == NULL) { + DEBUG((DBG_SPECIAL, "None found\n")); + return -1; + } + + /* extract the prefix */ + if(ptr == string) { + prefix = NULL; + DEBUG((DBG_SPECIAL, + "REGEX match with `%s' (arg `%s')\n", + sp->label, ptr)); + } else { + if(*ptr) *ptr++ = 0; + prefix = string; + DEBUG((DBG_SPECIAL, + "PREFIX match with `%s' (prefix `%s', arg `%s')\n", + sp->label, prefix, ptr)); + } + + /* invoke the handler */ + sp->handler(dvi, prefix, ptr); + + return 0; +} + +void mdvi_flush_specials(void) +{ + DviSpecial *sp, *list; + + + for(list = (DviSpecial *)specials.head; (sp = list); ) { + list = sp->next; + if(sp->prefix) mdvi_free(sp->prefix); + if(sp->label) mdvi_free(sp->label); +#ifdef WITH_REGEX_SPECIALS + if(sp->has_reg) + regfree(&sp->reg); +#endif + mdvi_free(sp); + } + specials.head = NULL; + specials.tail = NULL; + specials.count = 0; +} + +/* some builtin specials */ + +void sp_layer(DviContext *dvi, const char *prefix, const char *arg) +{ + if(STREQ("push", arg)) + dvi->curr_layer++; + else if(STREQ("pop", arg)) { + if(dvi->curr_layer) + dvi->curr_layer--; + else + mdvi_warning(_("%s: tried to pop top level layer\n"), + dvi->filename); + } else if(STREQ("reset", arg)) + dvi->curr_layer = 0; + DEBUG((DBG_SPECIAL, "Layer level: %d\n", dvi->curr_layer)); +} + diff --git a/backend/dvi/mdvi-lib/sysdeps.h b/backend/dvi/mdvi-lib/sysdeps.h new file mode 100644 index 00000000..c77d7651 --- /dev/null +++ b/backend/dvi/mdvi-lib/sysdeps.h @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#ifndef _SYSDEP_H +#define _SYSDEP_H 1 + +/* + * The purpose of this file is to define symbols that describe the + * system-dependent features we use. Namely, byte order, native integer + * types of various sizes, and safe pointer<->integer conversion. + */ + +#include "config.h" + +#ifdef WORDS_BIGENDIAN +#define WORD_BIG_ENDIAN 1 +#else +#define WORD_LITTLE_ENDIAN 1 +#endif + +typedef unsigned long Ulong; +typedef unsigned int Uint; +typedef unsigned short Ushort; +typedef unsigned char Uchar; + +/* this one's easy */ +typedef unsigned char Uint8; +typedef char Int8; + +/* define a datatype for 32bit integers (either int or long) */ +#if SIZEOF_LONG == 4 +typedef unsigned long Uint32; +typedef long Int32; +#else /* SIZEOF_LONG != 4 */ +#if SIZEOF_INT == 4 +typedef unsigned int Uint32; +typedef int Int32; +#else /* SIZEOF_INT != 4 */ +#ifdef __cplusplus +#include "No.appropriate.32bit.native.type.found.Fix.sysdeps.h" +#else +#error No appropriate 32bit native type found. Fix sysdeps.h +#endif /* ! __cplusplus */ +#endif /* SIZEOF_INT != 4 */ +#endif /* SIZEOF_LONG != 4 */ + +/* now 16bit integers (one of long, int or short) */ +#if SIZEOF_SHORT == 2 +typedef unsigned short Uint16; +typedef short Int16; +#else /* SIZEOF_SHORT != 2 */ +#if SIZEOF_INT == 2 +typedef unsigned int Uint16; +typedef short Int16; +#else /* SIZEOF_INT != 2 */ +#ifdef __cplusplus +#include "No.appropriate.16bit.native.type.found.Fix.sysdeps.h" +#else +#error No appropriate 16bit native type found. Fix sysdeps.h +#endif /* ! __cplusplus */ +#endif /* SIZEOF_INT != 2 */ +#endif /* SIZEOF_SHORT != 2 */ + +/* + * An integer type to convert to and from pointers safely. All we do here is + * look for an integer type with the same size as a pointer. + */ +#if SIZEOF_LONG == SIZEOF_VOID_P +typedef unsigned long UINT; +typedef long INT; +#else +#if SIZEOF_INT == SIZEOF_VOID_P +typedef unsigned int UINT; +typedef int INT; +#else +#if SIZEOF_SHORT == SIZEOF_VOID_P +typedef unsigned short UINT; +typedef short INT; +#else +#ifdef __cplusplus +#include "No.native.pointer-compatible.integer.type.found.Fix.sysdeps.h" +#else +#error No native pointer-compatible integer type found. Fix sysdeps.h +#endif +#endif +#endif +#endif + +/* nice, uh? */ +typedef void *Pointer; + +/* macros to do the safe pointer <-> integer conversions */ +#define Ptr2Int(x) ((INT)((Pointer)(x))) +#define Int2Ptr(x) ((Pointer)((INT)(x))) + +#ifdef _NO_PROTO +#define __PROTO(x) () +#else +#define __PROTO(x) x +#endif + +#endif /* _SYSDEP_H */ diff --git a/backend/dvi/mdvi-lib/t1.c b/backend/dvi/mdvi-lib/t1.c new file mode 100644 index 00000000..bc910ba6 --- /dev/null +++ b/backend/dvi/mdvi-lib/t1.c @@ -0,0 +1,630 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * Type1 font support for MDVI + * + * We use T1lib only as a rasterizer, not to draw glyphs. + */ + +#include <config.h> +#include "mdvi.h" + +#ifdef WITH_TYPE1_FONTS + +#include <stdio.h> +#include <t1lib.h> +#include "private.h" + +static int t1lib_initialized = 0; + +typedef struct t1info { + struct t1info *next; + struct t1info *prev; + char *fontname; /* (short) name of this font */ + int t1id; /* T1lib's id for this font */ + int hasmetrics; /* have we processed this font? */ + TFMInfo *tfminfo; /* TFM data is shared */ + DviFontMapInfo mapinfo; + DviEncoding *encoding; +} T1Info; + +static void t1_font_remove __PROTO((T1Info *)); +static int t1_load_font __PROTO((DviParams *, DviFont *)); +static int t1_font_get_glyph __PROTO((DviParams *, DviFont *, int)); +static void t1_font_shrink_glyph + __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +static void t1_free_data __PROTO((DviFont *)); +static void t1_reset_font __PROTO((DviFont *)); +static char *t1_lookup_font __PROTO((const char *, Ushort *, Ushort *)); + +/* only symbol exported by this file */ +DviFontInfo t1_font_info = { + "Type1", + 1, /* scaling supported by format */ + t1_load_font, + t1_font_get_glyph, + t1_font_shrink_glyph, + mdvi_shrink_glyph_grey, + t1_free_data, + t1_reset_font, + t1_lookup_font, /* lookup */ + kpse_type1_format, + NULL +}; + +/* this seems good enough for most DVI files */ +#define T1_HASH_SIZE 31 + +/* If these parameters change, we must delete all size information + * in all fonts, and reset the device resolutions in T1lib */ +static int t1lib_xdpi = -1; +static int t1lib_ydpi = -1; + +static ListHead t1fonts = {NULL, NULL, 0}; +static DviHashTable t1hash; + +/* Type1 fonts need their own `lookup' function. Here is how it works: + * First we try to find the font by its given name. If that fails, we + * query the font maps. A typical font map entry may contain the line + * + * ptmr8rn Times-Roman ".82 ExtendFont TeXBase1Encoding ReEncodeFont" <8r.enc <ptmr + * + * which means: If you're looking for the font `ptmr8rn' load `Times-Roman' + * which is in `ptmr' instead, and extend it by 0.82 points, then reencode + * it with the vector TeXBase1Encoding from the file `8r.enc'. This will + * fail if the entry looks like this: + * + * ptmr8rn Times-Roman ".82 ExtendFont TeXBase1Encoding ReEncodeFont" <8r.enc + * + * because to deal with this we would need to be able to locate the font file + * for the `Times-Roman' font ourselves, and that's beyond the scope of mdvi. + * But hey, we tried hard. + */ +char *t1_lookup_font(const char *name, Ushort *hdpi, Ushort *vdpi) +{ + char *filename; + char *newname; + const char *ext; + DviFontMapInfo info; + + DEBUG((DBG_TYPE1, "(t1) looking for `%s'\n", name)); + + /* first let's try the font we were asked for */ + filename = kpse_find_file(name, kpse_type1_format, 1); + if(filename != NULL) { + /* we got it */ + return filename; + } + + DEBUG((DBG_TYPE1, "(t1) %s: not found, querying font maps\n", name)); + /* now query the fontmap */ + if(mdvi_query_fontmap(&info, name) < 0) { + /* it's not there either */ + return NULL; + } + + /* check what we got */ + if(info.fullfile) { + DEBUG((DBG_TYPE1, "(t1) %s: found `%s' (cached)\n", + name, info.fullfile)); + /* this is a cached lookup */ + return mdvi_strdup(info.fullfile); + } + + /* no file associated to this font? */ + if(info.fontfile == NULL) + return info.psname ? mdvi_ps_find_font(info.psname) : NULL; + + /* let's extract the extension */ + ext = file_extension(info.fontfile); + if(ext && !STREQ(ext, "pfa") && !STREQ(ext, "pfb")) { + DEBUG((DBG_TYPE1, + "(t1) %s: associated name `%s' is not Type1\n", + name, info.fontfile)); + /* it's not a Type1 font */ + return NULL; + } + + /* get the `base' name */ + if(ext) { + newname = mdvi_strdup(name); + newname[ext - info.fontfile - 1] = 0; + } else + newname = (char *)name; /* we don't modify this */ + + /* look it up */ + DEBUG((DBG_TYPE1, "(t1) looking for `%s' on behalf of `%s'\n", + newname, name)); + filename = kpse_find_file(newname, kpse_type1_format, 1); + + /* we don't need this anymore */ + if(newname != name) + mdvi_free(newname); + if(filename == NULL) { + DEBUG((DBG_TYPE1, "(t1) %s: not found\n", name)); + return NULL; + } + + DEBUG((DBG_TYPE1, "(t1) %s: found as `%s'\n", name, filename)); + /* got it! let's remember this */ + mdvi_add_fontmap_file(name, filename); + return filename; +} + +static void t1_reset_resolution(int xdpi, int ydpi) +{ + int i; + int nfonts; + + DEBUG((DBG_TYPE1, "(t1) resetting device resolution (current: (%d,%d))\n", + t1lib_xdpi, t1lib_ydpi)); +#if T1LIB_VERSION < 5 + nfonts = T1_Get_no_fonts(); +#else + nfonts = T1_GetNoFonts(); +#endif + + for(i = 0; i < nfonts; i++) + T1_DeleteAllSizes(i); + /* reset device resolutions */ + if(T1_SetDeviceResolutions((float)xdpi, (float)ydpi) < 0) + mdvi_warning(_("(t1) failed to reset device resolution\n")); + else + DEBUG((DBG_TYPE1, + "(t1) reset successful, new resolution is (%d, %d)\n", + xdpi, ydpi)); + t1lib_xdpi = xdpi; + t1lib_ydpi = ydpi; +} + +static void t1_reset_font(DviFont *font) +{ + T1Info *info = (T1Info *)font->private; + + if(info == NULL) + return; + DEBUG((DBG_FONTS, "(t1) resetting font `%s'\n", font->fontname)); + /* just mark the font as not having metric info. It will be reset + * automatically later */ + info->hasmetrics = 0; +} + +static void t1_transform_font(T1Info *info) +{ + if(!info->hasmetrics && info->encoding != NULL) { + DEBUG((DBG_TYPE1, "(t1) %s: encoding with vector `%s'\n", + info->fontname, info->encoding->name)); + T1_DeleteAllSizes(info->t1id); + if(T1_ReencodeFont(info->t1id, info->encoding->vector) < 0) + mdvi_warning(_("%s: could not encode font\n"), info->fontname); + } + if(info->mapinfo.slant) { + DEBUG((DBG_TYPE1, "(t1) %s: slanting by %.3f\n", + info->fontname, + MDVI_FMAP_SLANT(&info->mapinfo))); + T1_SlantFont(info->t1id, + MDVI_FMAP_SLANT(&info->mapinfo)); + } + if(info->mapinfo.extend) { + DEBUG((DBG_TYPE1, "(t1) %s: extending by %.3f\n", + info->fontname, + MDVI_FMAP_EXTEND(&info->mapinfo))); + T1_ExtendFont(info->t1id, + MDVI_FMAP_EXTEND(&info->mapinfo)); + } +} + +/* if this function is called, we really need this font */ +static int t1_really_load_font(DviParams *params, DviFont *font, T1Info *info) +{ + int i; + T1Info *old; + int t1id; + int copied; + int status; + + DEBUG((DBG_TYPE1, "(t1) really_load_font(%s)\n", info->fontname)); + + /* if the parameters changed, reset T1lib */ + if(t1lib_xdpi != params->dpi || t1lib_ydpi != params->vdpi) + t1_reset_resolution(params->dpi, params->vdpi); + + /* if we already have a T1lib id, do nothing */ + if(info->t1id != -1) { + info->hasmetrics = 1; + /* apply slant and extend again */ + t1_transform_font(info); + return 0; + } + + /* before we even attempt to load the font, make sure we have metric + * data for it */ + info->tfminfo = mdvi_ps_get_metrics(info->fontname); + if(info->tfminfo == NULL) { + DEBUG((DBG_FONTS, + "(t1) %s: no metric data, font ignored\n", + info->fontname)); + goto t1_error; + } + /* fix this */ + font->design = info->tfminfo->design; + + /* check if we have a font with this name (maybe at a different size) */ + old = (T1Info *)mdvi_hash_lookup(&t1hash, (unsigned char *)info->fontname); + if(old == info) { + /* let's avoid confusion */ + old = NULL; + } + if(old && old->t1id != -1) { + /* let's take advantage of T1lib's font sharing */ + t1id = T1_CopyFont(old->t1id); + DEBUG((DBG_TYPE1, "(t1) %s -> %d (CopyFont)\n", + info->fontname, t1id)); + copied = 1; + } else { + t1id = T1_AddFont(font->filename); + DEBUG((DBG_TYPE1, "(t1) %s -> %d (AddFont)\n", + info->fontname, t1id)); + copied = 0; + } + if(t1id < 0) + goto t1_error; + info->t1id = t1id; + + /* + * a minor optimization: If the old font in the hash table has + * not been loaded yet, replace it by this one, so we can use + * CopyFont later. + */ + if(old && old->t1id == -1) { + DEBUG((DBG_TYPE1, "(t1) font `%s' exchanged in hash table\n", + info->fontname)); + mdvi_hash_remove(&t1hash, (unsigned char *)old->fontname); + mdvi_hash_add(&t1hash, (unsigned char *)info->fontname, + info, MDVI_HASH_UNCHECKED); + } + + /* now let T1lib load it */ + if(!copied && T1_LoadFont(info->t1id) < 0) { + DEBUG((DBG_TYPE1, "(t1) T1_LoadFont(%d) failed with error %d\n", + info->t1id, T1_errno)); + goto t1_error; + } + DEBUG((DBG_TYPE1, "(t1) T1_LoadFont(%d) -> Ok\n", info->t1id)); + + /* get information from the fontmap */ + status = mdvi_query_fontmap(&info->mapinfo, info->fontname); + if(!status && info->mapinfo.encoding) + info->encoding = mdvi_request_encoding(info->mapinfo.encoding); + t1_transform_font(info); + + i = info->tfminfo->hic - info->tfminfo->loc + 1; + if(i != font->hic - font->loc + 1) { + /* reset to optimal size */ + font->chars = mdvi_realloc(font->chars, i * sizeof(DviFontChar)); + } + + /* get the scaled characters metrics */ + get_tfm_chars(params, font, info->tfminfo, 0); + info->hasmetrics = 1; + + DEBUG((DBG_TYPE1, "(t1) font `%s' really-loaded\n", info->fontname)); + return 0; + +t1_error: + /* some error does not allows us to use this font. We need to reset + * the font structure, so the font system can try to read this + * font in a different class */ + + /* first destroy the private data */ + t1_font_remove(info); + /* now reset all chars -- this is the important part */ + mdvi_free(font->chars); + font->chars = NULL; + font->loc = font->hic = 0; + return -1; +} + +static int init_t1lib(DviParams *params) +{ + int t1flags; + +#ifdef WORD_LITTLE_ENDIAN + /* try making T1lib use bitmaps in our format, but if this + * fails we'll convert the bitmap ourselves */ + T1_SetBitmapPad(BITMAP_BITS); +#endif + T1_SetDeviceResolutions((float)params->dpi, (float)params->vdpi); + t1flags = IGNORE_CONFIGFILE|IGNORE_FONTDATABASE|T1_NO_AFM; + if(DEBUGGING(TYPE1)) + t1flags |= LOGFILE; + if(T1_InitLib(t1flags) == NULL) + return (t1lib_initialized = -1); + if(DEBUGGING(TYPE1)) { + DEBUG((DBG_TYPE1, "T1lib debugging output saved in t1lib.log\n")); + T1_SetLogLevel(T1LOG_DEBUG); + } + /* initialize our hash table, but don't allocate memory for it + * until we use it */ + mdvi_hash_init(&t1hash); + DEBUG((DBG_TYPE1, "(t1) t1lib %s initialized -- resolution is (%d, %d), pad is %d bits\n", + T1_GetLibIdent(), params->dpi, params->vdpi, T1_GetBitmapPad())); + t1lib_initialized = 1; + t1lib_xdpi = params->dpi; + t1lib_ydpi = params->vdpi; + return 0; +} + +static int t1_load_font(DviParams *params, DviFont *font) +{ + T1Info *info; + int i; + + if(t1lib_initialized < 0) + return -1; + else if(t1lib_initialized == 0 && init_t1lib(params) < 0) + return -1; + + if(font->in != NULL) { + /* we don't need this */ + fclose(font->in); + font->in = NULL; + } + + info = xalloc(T1Info); + + /* + * mark the font as `unregistered' with T1lib. It will + * be added when we actually use it + */ + info->t1id = -1; + + /* add the font to our list */ + info->fontname = font->fontname; + info->hasmetrics = 0; + info->encoding = NULL; + info->mapinfo.psname = NULL; + info->mapinfo.encoding = NULL; + info->mapinfo.fontfile = NULL; + info->mapinfo.extend = 0; + info->mapinfo.slant = 0; + info->encoding = NULL; + + /* create the hash table if we have not done so yet */ + if(t1hash.nbucks == 0) + mdvi_hash_create(&t1hash, T1_HASH_SIZE); + mdvi_hash_add(&t1hash, (unsigned char *) info->fontname, info, MDVI_HASH_UNIQUE); + listh_append(&t1fonts, LIST(info)); + + font->private = info; + + /* reset everything */ + font->chars = xnalloc(DviFontChar, 256); + font->loc = 0; + font->hic = 255; + for(i = 0; i < 256; i++) { + font->chars[i].code = i; + font->chars[i].offset = 1; + font->chars[i].loaded = 0; + font->chars[i].glyph.data = NULL; + font->chars[i].shrunk.data = NULL; + font->chars[i].grey.data = NULL; + } + + return 0; +} + +#define GLYPH_WIDTH(g) \ + ((g)->metrics.rightSideBearing - (g)->metrics.leftSideBearing) +#define GLYPH_HEIGHT(g) \ + ((g)->metrics.ascent - (g)->metrics.descent) + +static inline BITMAP *t1_glyph_bitmap(GLYPH *glyph) +{ + int w, h, pad; + + w = GLYPH_WIDTH(glyph); + h = GLYPH_HEIGHT(glyph); + + if(!w || !h) + return MDVI_GLYPH_EMPTY; + + pad = T1_GetBitmapPad(); + return bitmap_convert_lsb8((unsigned char *)glyph->bits, w, h, ROUND(w, pad) * (pad >> 3)); +} + +static void t1_font_shrink_glyph(DviContext *dvi, DviFont *font, DviFontChar *ch, DviGlyph *dest) +{ + double size; + GLYPH *glyph; + T1Info *info; + T1_TMATRIX matrix; + + info = (T1Info *)font->private; + ASSERT(info != NULL); + + DEBUG((DBG_TYPE1, "(t1) shrinking glyph for character %d in `%s' (%d,%d)\n", + ch->code, font->fontname, ch->width, ch->height)); + size = (double)font->scale / (dvi->params.tfm_conv * 0x100000); + size = 72.0 * size / 72.27; + matrix.cxx = 1.0/(double)dvi->params.hshrink; + matrix.cyy = 1.0/(double)dvi->params.vshrink; + matrix.cxy = 0.0; + matrix.cyx = 0.0; + glyph = T1_SetChar(info->t1id, ch->code, (float)size, &matrix); + + dest->data = t1_glyph_bitmap(glyph); + dest->x = -glyph->metrics.leftSideBearing; + dest->y = glyph->metrics.ascent; + dest->w = GLYPH_WIDTH(glyph); + dest->h = GLYPH_HEIGHT(glyph); + +#ifndef NODEBUG + if(DEBUGGING(BITMAP_DATA)) { + DEBUG((DBG_BITMAP_DATA, + "(t1) %s: t1_shrink_glyph(%d): (%dw,%dh,%dx,%dy) -> (%dw,%dh,%dx,%dy)\n", + ch->glyph.w, ch->glyph.h, ch->glyph.x, ch->glyph.y, + dest->w, dest->h, dest->x, dest->y)); + bitmap_print(stderr, (BITMAP *)dest->data); + } +#endif + /* transform the glyph - we could do this with t1lib, but we do + * it ourselves for now */ + font_transform_glyph(dvi->params.orientation, dest); +} + +static int t1_font_get_glyph(DviParams *params, DviFont *font, int code) +{ + T1Info *info = (T1Info *)font->private; + GLYPH *glyph; + DviFontChar *ch; + double size; + T1_TMATRIX matrix; + int dpi; + + ASSERT(info != NULL); + if(!info->hasmetrics && t1_really_load_font(params, font, info) < 0) + return -1; + ch = FONTCHAR(font, code); + if(!ch || !glyph_present(ch)) + return -1; + ch->loaded = 1; + if(!ch->width || !ch->height) { + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + ch->glyph.data = NULL; + return 0; + } + + /* load the glyph with T1lib (this is done only once for each glyph) */ + + /* get size in TeX points (tfm_conv includes dpi and magnification) */ + size = (double)font->scale / (params->tfm_conv * 0x100000); + /* and transform into PostScript points */ + size = 72.0 * size / 72.27; + + dpi = Max(font->hdpi, font->vdpi); + /* we don't want the glyph to be cached twice (once by us, another by + * T1lib), so we use an identity matrix to tell T1lib not to keep the + * glyph around */ + matrix.cxx = (double)font->hdpi / dpi; + matrix.cyy = (double)font->vdpi / dpi; + matrix.cxy = matrix.cyx = 0.0; + glyph = T1_SetChar(info->t1id, ch->code, (float)size, &matrix); + if(glyph == NULL) { + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + ch->glyph.data = NULL; + ch->missing = 1; + return 0; + } + /* and make it a bitmap */ + ch->glyph.data = t1_glyph_bitmap(glyph); + ch->glyph.x = -glyph->metrics.leftSideBearing; + ch->glyph.y = glyph->metrics.ascent; + ch->glyph.w = GLYPH_WIDTH(glyph); + ch->glyph.h = GLYPH_HEIGHT(glyph); + + /* let's also fix the glyph's origin + * (which is not contained in the TFM) */ + ch->x = ch->glyph.x; + ch->y = ch->glyph.y; + /* let's fix these too */ + ch->width = ch->glyph.w; + ch->height = ch->glyph.h; + + return 0; +} + +static void t1_font_remove(T1Info *info) +{ + T1Info *old; + + /* first remove it from our list */ + listh_remove(&t1fonts, LIST(info)); + + /* it it's in the hash table, we may need to replace this by another font */ + old = (T1Info *)mdvi_hash_lookup(&t1hash, (unsigned char *)info->fontname); + if(old == info) { + mdvi_hash_remove(&t1hash, (unsigned char *) info->fontname); + /* go through the list and see if there is another + * font with this name */ + for(old = (T1Info *)t1fonts.head; old; old = old->next) + if(STREQ(old->fontname, info->fontname)) + break; + if(old != NULL) + mdvi_hash_add(&t1hash, (unsigned char *) old->fontname, old, + MDVI_HASH_UNCHECKED); + } + /* release our encoding vector */ + if(info->encoding) { + DEBUG((DBG_TYPE1, "(t1) %s: releasing vector `%s'\n", + info->fontname, info->encoding->name)); + mdvi_release_encoding(info->encoding, 1); + } + + /* now get rid of it */ + if(info->t1id != -1) { + DEBUG((DBG_TYPE1, "(t1) %s: T1_DeleteFont(%d)\n", + info->fontname, info->t1id)); + T1_DeleteFont(info->t1id); + } else + DEBUG((DBG_TYPE1, "(t1) %s: not loaded yet, DeleteFont skipped\n", + info->fontname)); + + if(info->tfminfo) + free_font_metrics(info->tfminfo); + /*mdvi_free(info->fontname);*/ + mdvi_free(info); +} + +static void t1_free_data(DviFont *font) +{ + /* called after all the glyphs are destroyed */ + + if(font->private == NULL) { + /* this is perfectly normal, it just means the font has + * not been requested by MDVI yet */ + return; + } + + /* destroy this data */ + + t1_font_remove((T1Info *)font->private); + font->private = NULL; + + /* + * if this is the last T1 font, reset the T1 library + * It is important that we do this, because this is will be called + * when the resolution or the magnification changes. + */ + if(t1fonts.count == 0) { + DEBUG((DBG_TYPE1, "(t1) last font removed -- closing T1lib\n")); + T1_CloseLib(); + t1lib_initialized = 0; + t1lib_xdpi = -1; + t1lib_ydpi = -1; + } +} + +#endif /* WITH_TYPE1_FONTS */ diff --git a/backend/dvi/mdvi-lib/tfm.c b/backend/dvi/mdvi-lib/tfm.c new file mode 100644 index 00000000..f37de0be --- /dev/null +++ b/backend/dvi/mdvi-lib/tfm.c @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "mdvi.h" +#include "private.h" + +static int tfm_load_font __PROTO((DviParams *, DviFont *)); +static int tfm_font_get_glyph __PROTO((DviParams *, DviFont *, int)); + +DviFontInfo tfm_font_info = { + "TFM", + 0, /* scaling not supported by format */ + tfm_load_font, + tfm_font_get_glyph, + mdvi_shrink_box, + mdvi_shrink_box, + NULL, /* free */ + NULL, /* reset */ + NULL, /* lookup */ + kpse_tfm_format, + NULL +}; + +DviFontInfo ofm_font_info = { + "OFM", + 0, /* scaling not supported by format */ + tfm_load_font, + tfm_font_get_glyph, + mdvi_shrink_box, + mdvi_shrink_box, + NULL, /* free */ + NULL, /* reset */ + NULL, /* lookup */ + kpse_ofm_format, + NULL +}; + +DviFontInfo afm_font_info = { + "AFM", + 0, /* scaling not supported by format */ + tfm_load_font, + tfm_font_get_glyph, + mdvi_shrink_box, + mdvi_shrink_box, + NULL, /* free */ + NULL, /* reset */ + NULL, /* lookup */ + kpse_afm_format, + NULL +}; + +#define TYPENAME(font) \ + ((font)->search.info ? (font)->search.info : "none") + +/* + * Although it does not seem that way, this conversion is independent of the + * shrinking factors, within roundoff (that's because `conv' and `vconv' + * have already been scaled by hshrink and vshrink, repsectively). We + * should really use `dviconv' and `dvivconv', but I'm not so sure those + * should be moved to the DviParams structure. + */ +#define XCONV(x) FROUND(params->conv * (x) * params->hshrink) +#define YCONV(y) FROUND(params->vconv * (y) * params->vshrink) + +/* this is used quite often in several places, so I made it standalone */ +int get_tfm_chars(DviParams *params, DviFont *font, TFMInfo *info, int loaded) +{ + Int32 z, alpha, beta; + int n; + DviFontChar *ch; + TFMChar *ptr; + + n = info->hic - info->loc + 1; + if(n != FONT_GLYPH_COUNT(font)) { + font->chars = mdvi_realloc(font->chars, + n * sizeof(DviFontChar)); + } + font->loc = info->loc; + font->hic = info->hic; + ch = font->chars; + ptr = info->chars; + + /* Prepare z, alpha and beta for TFM width computation */ + TFMPREPARE(font->scale, z, alpha, beta); + + /* get the character metrics */ + for(n = info->loc; n <= info->hic; ch++, ptr++, n++) { + int a, b, c, d; + + ch->offset = ptr->present; + if(ch->offset == 0) + continue; + /* this is what we came here for */ + ch->tfmwidth = TFMSCALE(z, ptr->advance, alpha, beta); + /* scale all other TFM units (so they are in DVI units) */ + a = TFMSCALE(z, ptr->left, alpha, beta); + b = TFMSCALE(z, ptr->right, alpha, beta); + c = TFMSCALE(z, ptr->height, alpha, beta); + d = TFMSCALE(z, ptr->depth, alpha, beta); + + /* now convert to unscaled pixels */ + ch->width = XCONV(b - a); + ch->height = YCONV(c - d); + if(ch->height < 0) ch->height = -ch->height; + ch->x = XCONV(a); + ch->y = YCONV(c); + /* + * the offset is not used, but we might as well set it to + * something meaningful (and it MUST be non-zero) + */ + ch->flags = 0; + ch->code = n; + ch->glyph.data = NULL; + ch->grey.data = NULL; + ch->shrunk.data = NULL; + ch->loaded = loaded; + } + + return 0; +} + +/* + * We use this function as a last resort to find the character widths in a + * font The DVI rendering code can correctly skip over a glyph if it knows + * its TFM width, which is what we try to find here. + */ +static int tfm_load_font(DviParams *params, DviFont *font) +{ + TFMInfo *tfm; + int type; + + switch(font->search.info->kpse_type) { + case kpse_tfm_format: + type = DviFontTFM; + break; + case kpse_afm_format: + type = DviFontAFM; + break; + case kpse_ofm_format: + type = DviFontOFM; + break; + default: + return -1; + } + + /* we don't need this */ + if(font->in) { + fclose(font->in); + font->in = NULL; + } + tfm = get_font_metrics(font->fontname, type, font->filename); + if(tfm == NULL) + return -1; + + if(tfm->checksum && font->checksum && tfm->checksum != font->checksum) { + mdvi_warning(_("%s: Checksum mismatch (got %u, expected %u)\n"), + font->fontname, (unsigned)tfm->checksum, + (unsigned)font->checksum); + } + font->checksum = tfm->checksum; + font->design = tfm->design; + font->loc = 0; + font->hic = 0; + font->chars = NULL; + get_tfm_chars(params, font, tfm, 1); + + /* free everything */ + free_font_metrics(tfm); + + return 0; +} + +static int tfm_font_get_glyph(DviParams *params, DviFont *font, int code) +{ + DviFontChar *ch; + + ch = FONTCHAR(font, code); + if(!glyph_present(ch)) + return -1; + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + /* + * This has two purposes: (1) avoid unnecessary calls to this function, + * and (2) detect when the glyph data for a TFM font is actually used + * (we'll get a SEGV). Any occurrence of that is a bug. + */ + ch->glyph.data = MDVI_GLYPH_EMPTY; + + return 0; +} diff --git a/backend/dvi/mdvi-lib/tfmfile.c b/backend/dvi/mdvi-lib/tfmfile.c new file mode 100644 index 00000000..73ebf26a --- /dev/null +++ b/backend/dvi/mdvi-lib/tfmfile.c @@ -0,0 +1,747 @@ +/* tfmfile.c -- readers for TFM, AFM, OTFM-0 and OTFM-1 files */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdio.h> /* tex-file.h needs this */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "mdvi.h" +#include "private.h" + +#ifdef WITH_AFM_FILES +#undef TRUE +#undef FALSE +#include "afmparse.h" +#endif + +typedef struct tfmpool { + struct tfmpool *next; + struct tfmpool *prev; + char *short_name; + int links; + TFMInfo tfminfo; +} TFMPool; + +static ListHead tfmpool = {NULL, NULL, 0}; +static DviHashTable tfmhash; + +#define TFM_HASH_SIZE 31 + +#ifdef WORD_LITTLE_ENDIAN +static inline void swap_array(Uint32 *ptr, int n) +{ + Uint32 i; + + while(n-- > 0) { + i = *ptr; + *ptr++ = ((i & 0xff000000) >> 24) + | ((i & 0x00ff0000) >> 8) + | ((i & 0x0000ff00) << 8) + | ((i & 0x000000ff) << 24); + } +} +#endif + +#ifdef WITH_AFM_FILES + +static int __PROTO(ofm_load_file(const char *filename, TFMInfo *info)); + +/* reading of AFM files */ +/* macro to convert between AFM and TFM units */ +#define AFM2TFM(x) FROUND((double)(x) * 0x100000 / 1000) +int afm_load_file(const char *filename, TFMInfo *info) +{ + /* the information we want is: + * - tfmwidth + * - width and heights + * - character origins + */ + FontInfo *fi = NULL; + int status; + CharMetricInfo *cm; + FILE *in; + + in = fopen(filename, "rb"); + if(in == NULL) + return -1; + status = afm_parse_file(in, &fi, P_GM); + fclose(in); + + if(status != ok) { + mdvi_error(_("%s: Error reading AFM data\n"), filename); + return -1; + } + + /* aim high */ + info->chars = xnalloc(TFMChar, 256); + info->loc = 256; + info->hic = 0; + info->design = 0xa00000; /* fake -- 10pt */ + info->checksum = 0; /* no checksum */ + info->type = DviFontAFM; + mdvi_strncpy(info->coding, fi->gfi->encodingScheme, 63); + mdvi_strncpy(info->family, fi->gfi->familyName, 63); + + /* now get the data */ + for(cm = fi->cmi; cm < fi->cmi + fi->numOfChars; cm++) { + int code; + TFMChar *ch; + + code = cm->code; + if(code < 0 || code > 255) + continue; /* ignore it */ + ch = &info->chars[code]; + ch->present = 1; + if(code < info->loc) + info->loc = code; + if(code > info->hic) + info->hic = code; + ch->advance = AFM2TFM(cm->wx); + /* this is the `leftSideBearing' */ + ch->left = AFM2TFM(cm->charBBox.llx); + /* this is the height (ascent - descent) -- the sign is to follow + * TeX conventions, as opposed to Adobe's ones */ + ch->depth = -AFM2TFM(cm->charBBox.lly); + /* this is the width (rightSideBearing - leftSideBearing) */ + ch->right = AFM2TFM(cm->charBBox.urx); + /* this is the `ascent' */ + ch->height = AFM2TFM(cm->charBBox.ury); + } + + /* we don't need this anymore */ + afm_free_fontinfo(fi); + + /* optimize storage */ + if(info->loc > 0 || info->hic < 256) { + memmove(&info->chars[0], + &info->chars[info->loc], + (info->hic - info->loc + 1) * sizeof(TFMChar)); + info->chars = mdvi_realloc(info->chars, + (info->hic - info->loc + 1) * sizeof(TFMChar)); + } + + /* we're done */ + return 0; +} + +#endif /* WITH_AFM_FILES */ + +int tfm_load_file(const char *filename, TFMInfo *info) +{ + int lf, lh, bc, ec, nw, nh, nd, ne; + int i, n; + Uchar *tfm; + Uchar *ptr; + struct stat st; + int size; + FILE *in; + Int32 *cb; + Int32 *charinfo; + Int32 *widths; + Int32 *heights; + Int32 *depths; + Uint32 checksum; + + in = fopen(filename, "rb"); + if(in == NULL) + return -1; + tfm = NULL; + + DEBUG((DBG_FONTS, "(mt) reading TFM file `%s'\n", + filename)); + /* We read the entire TFM file into core */ + if(fstat(fileno(in), &st) < 0) + return -1; + if(st.st_size == 0) + goto bad_tfm; + + /* allocate a word-aligned buffer to hold the file */ + size = 4 * ROUND(st.st_size, 4); + if(size != st.st_size) + mdvi_warning(_("Warning: TFM file `%s' has suspicious size\n"), + filename); + tfm = (Uchar *)mdvi_malloc(size); + if(fread(tfm, st.st_size, 1, in) != 1) + goto error; + /* we don't need this anymore */ + fclose(in); + in = NULL; + + /* not a checksum, but serves a similar purpose */ + checksum = 0; + + ptr = tfm; + /* get the counters */ + lf = muget2(ptr); + lh = muget2(ptr); checksum += 6 + lh; + bc = muget2(ptr); + ec = muget2(ptr); checksum += ec - bc + 1; + nw = muget2(ptr); checksum += nw; + nh = muget2(ptr); checksum += nh; + nd = muget2(ptr); checksum += nd; + checksum += muget2(ptr); /* skip italics correction count */ + checksum += muget2(ptr); /* skip lig/kern table size */ + checksum += muget2(ptr); /* skip kern table size */ + ne = muget2(ptr); checksum += ne; + checksum += muget2(ptr); /* skip # of font parameters */ + + size = ec - bc + 1; + cb = (Int32 *)tfm; cb += 6 + lh; + charinfo = cb; cb += size; + widths = cb; cb += nw; + heights = cb; cb += nh; + depths = cb; + + if(widths[0] || heights[0] || depths[0] || + checksum != lf || bc - 1 > ec || ec > 255 || ne > 256) + goto bad_tfm; + + /* from this point on, no error checking is done */ + + /* now we're at the header */ + /* get the checksum */ + info->checksum = muget4(ptr); + /* get the design size */ + info->design = muget4(ptr); + /* get the coding scheme */ + if(lh > 2) { + /* get the coding scheme */ + i = n = msget1(ptr); + if(n < 0 || n > 39) { + mdvi_warning(_("%s: font coding scheme truncated to 40 bytes\n"), + filename); + n = 39; + } + memcpy(info->coding, ptr, n); + info->coding[n] = 0; + ptr += i; + } else + strcpy(info->coding, "FontSpecific"); + /* get the font family */ + if(lh > 12) { + n = msget1(ptr); + if(n > 0) { + i = Max(n, 63); + memcpy(info->family, ptr, i); + info->family[i] = 0; + } else + strcpy(info->family, "unspecified"); + ptr += n; + } + /* now we don't read from `ptr' anymore */ + + info->loc = bc; + info->hic = ec; + info->type = DviFontTFM; + + /* allocate characters */ + info->chars = xnalloc(TFMChar, size); + + +#ifdef WORD_LITTLE_ENDIAN + /* byte-swap the three arrays at once (they are consecutive in memory) */ + swap_array((Uint32 *)widths, nw + nh + nd); +#endif + + /* get the relevant data */ + ptr = (Uchar *)charinfo; + for(i = bc; i <= ec; ptr += 3, i++) { + int ndx; + + ndx = (int)*ptr; ptr++; + info->chars[i-bc].advance = widths[ndx]; + /* TFM files lack this information */ + info->chars[i-bc].left = 0; + info->chars[i-bc].right = widths[ndx]; + info->chars[i-bc].present = (ndx != 0); + if(ndx) { + ndx = ((*ptr >> 4) & 0xf); + info->chars[i-bc].height = heights[ndx]; + ndx = (*ptr & 0xf); + info->chars[i-bc].depth = depths[ndx]; + } + } + + /* free everything */ + mdvi_free(tfm); + + return 0; + +bad_tfm: + mdvi_error(_("%s: File corrupted, or not a TFM file\n"), filename); +error: + if(tfm) mdvi_free(tfm); + if(in) fclose(in); + return -1; +} + +static int ofm1_load_file(FILE *in, TFMInfo *info) +{ + int lf, lh, bc, ec, nw, nh, nd; + int nco, ncw, npc; + int i; + int n; + int size; + Int32 *tfm; + Int32 *widths; + Int32 *heights; + Int32 *depths; + TFMChar *tch; + TFMChar *end; + + lf = fuget4(in); + lh = fuget4(in); + bc = fuget4(in); + ec = fuget4(in); + nw = fuget4(in); + nh = fuget4(in); + nd = fuget4(in); + fuget4(in); /* italics */ + fuget4(in); /* lig-kern */ + fuget4(in); /* kern */ + fuget4(in); /* extensible recipe */ + fuget4(in); /* parameters */ + fuget4(in); /* direction */ + nco = fuget4(in); + ncw = fuget4(in); + npc = fuget4(in); + + /* get the checksum */ + info->checksum = fuget4(in); + /* the design size */ + info->design = fuget4(in); + /* get the coding scheme */ + if(lh > 2) { + /* get the coding scheme */ + i = n = fsget1(in); + if(n < 0 || n > 39) + n = 39; + fread(info->coding, 39, 1, in); + info->coding[n] = 0; + } else + strcpy(info->coding, "FontSpecific"); + /* get the font family */ + if(lh > 12) { + n = fsget1(in); + if(n > 0) { + i = Max(n, 63); + fread(info->family, i, 1, in); + info->family[i] = 0; + } else + strcpy(info->family, "unspecified"); + } + tfm = NULL; + + /* jump to the beginning of the char-info table */ + fseek(in, 4L*nco, SEEK_SET); + + size = ec - bc + 1; + info->loc = bc; + info->hic = ec; + info->chars = xnalloc(TFMChar, size); + end = info->chars + size; + + for(tch = info->chars, i = 0; i < ncw; i++) { + TFMChar ch; + int nr; + + /* in the characters we store the actual indices */ + ch.advance = fuget2(in); + ch.height = fuget1(in); + ch.depth = fuget1(in); + /* skip 2nd word */ + fuget4(in); + /* get # of repeats */ + nr = fuget2(in); + /* skip parameters */ + fseek(in, (long)npc * 2, SEEK_CUR); + /* if npc is odd, skip padding */ + if(npc & 1) fuget2(in); + + /* now repeat the character */ + while(nr-- >= 0 && tch < end) + memcpy(tch++, &ch, sizeof(TFMChar)); + if(tch == end) + goto bad_tfm; + } + + /* I wish we were done, but we aren't */ + + /* get the widths, heights and depths */ + size = nw + nh + nd; + tfm = xnalloc(Int32, size); + /* read them in one sweep */ + if(fread(tfm, 4, size, in) != size) { + mdvi_free(tfm); + goto bad_tfm; + } + + /* byte-swap things if necessary */ +#ifdef WORD_LITTLE_ENDIAN + swap_array((Uint32 *)tfm, size); +#endif + widths = tfm; + heights = widths + nw; + depths = heights + nh; + + if(widths[0] || heights[0] || depths[0]) + goto bad_tfm; + + /* now fix the characters */ + size = ec - bc + 1; + for(tch = info->chars; tch < end; tch++) { + tch->present = (tch->advance != 0); + tch->advance = widths[tch->advance]; + tch->height = heights[tch->height]; + tch->depth = depths[tch->depth]; + tch->left = 0; + tch->right = tch->advance; + } + + /* NOW we're done */ + mdvi_free(tfm); + return 0; + +bad_tfm: + if(tfm) mdvi_free(tfm); + return -1; +} + +/* we don't read OFM files into memory, because they can potentially be large */ +static int ofm_load_file(const char *filename, TFMInfo *info) +{ + int lf, lh, bc, ec, nw, nh, nd; + int i, n; + Int32 *tfm; + Uchar *ptr; + int size; + FILE *in; + Int32 *cb; + Int32 *charinfo; + Int32 *widths; + Int32 *heights; + Int32 *depths; + Uint32 checksum; + int olevel; + int nwords; + + in = fopen(filename, "rb"); + if(in == NULL) + return -1; + + /* not a checksum, but serves a similar purpose */ + checksum = 0; + + /* get the counters */ + /* get file level */ + olevel = fsget2(in); + if(olevel != 0) + goto bad_tfm; + olevel = fsget2(in); + if(olevel != 0) { + DEBUG((DBG_FONTS, "(mt) reading Level-1 OFM file `%s'\n", + filename)); + /* we handle level-1 files separately */ + if(ofm1_load_file(in, info) < 0) + goto bad_tfm; + return 0; + } + + DEBUG((DBG_FONTS, "(mt) reading Level-0 OFM file `%s'\n", filename)); + nwords = 14; + lf = fuget4(in); checksum = nwords; + lh = fuget4(in); checksum += lh; + bc = fuget4(in); + ec = fuget4(in); checksum += 2 * (ec - bc + 1); + nw = fuget4(in); checksum += nw; + nh = fuget4(in); checksum += nh; + nd = fuget4(in); checksum += nd; + checksum += fuget4(in); /* skip italics correction count */ + checksum += 2*fuget4(in); /* skip lig/kern table size */ + checksum += fuget4(in); /* skip kern table size */ + checksum += 2*fuget4(in); /* skip extensible recipe count */ + checksum += fuget4(in); /* skip # of font parameters */ + + /* I have found several .ofm files that seem to have the + * font-direction word missing, so we try to detect that here */ + if(checksum == lf + 1) { + DEBUG((DBG_FONTS, "(mt) font direction missing in `%s'\n", + filename)); + checksum--; + nwords--; + } else { + /* skip font direction */ + fuget4(in); + } + + if(checksum != lf || bc > ec + 1 || ec > 65535) + goto bad_tfm; + + /* now we're at the header */ + + /* get the checksum */ + info->checksum = fuget4(in); + /* get the design size */ + info->design = fuget4(in); + + /* get the coding scheme */ + if(lh > 2) { + /* get the coding scheme */ + i = n = fsget1(in); + if(n < 0 || n > 39) { + mdvi_warning(_("%s: font coding scheme truncated to 40 bytes\n"), + filename); + n = 39; + } + fread(info->coding, 39, 1, in); + info->coding[n] = 0; + } else + strcpy(info->coding, "FontSpecific"); + /* get the font family */ + if(lh > 12) { + n = fsget1(in); + if(n > 0) { + i = Max(n, 63); + fread(info->family, i, 1, in); + info->family[i] = 0; + } else + strcpy(info->family, "unspecified"); + } + + /* now skip anything else in the header */ + fseek(in, 4L*(nwords + lh), SEEK_SET); + /* and read everything at once */ + size = 2*(ec - bc + 1) + nw + nh + nd; + tfm = xnalloc(Int32, size * sizeof(Int32)); + if(fread(tfm, 4, size, in) != size) { + mdvi_free(tfm); + goto bad_tfm; + } + /* byte-swap all the tables at once */ +#ifdef WORD_LITTLE_ENDIAN + swap_array((Uint32 *)tfm, size); +#endif + cb = tfm; + charinfo = cb; cb += 2*(ec - bc + 1); + widths = cb; cb += nw; + heights = cb; cb += nh; + depths = cb; + + if(widths[0] || heights[0] || depths[0]) { + mdvi_free(tfm); + goto bad_tfm; + } + + /* from this point on, no error checking is done */ + + /* we don't need this anymore */ + fclose(in); + + /* now we don't read from `ptr' anymore */ + + info->loc = bc; + info->hic = ec; + info->type = DviFontTFM; + + /* allocate characters */ + info->chars = xnalloc(TFMChar, size); + + /* get the relevant data */ + ptr = (Uchar *)charinfo; + for(i = bc; i <= ec; ptr += 4, i++) { + int ndx; + + ndx = muget2(ptr); + info->chars[i-bc].advance = widths[ndx]; + /* TFM files lack this information */ + info->chars[i-bc].left = 0; + info->chars[i-bc].right = widths[ndx]; + info->chars[i-bc].present = (ndx != 0); + ndx = muget1(ptr); + info->chars[i-bc].height = heights[ndx]; + ndx = muget1(ptr); + info->chars[i-bc].depth = depths[ndx]; + } + + mdvi_free(tfm); + return 0; + +bad_tfm: + mdvi_error(_("%s: File corrupted, or not a TFM file\n"), filename); + fclose(in); + return -1; +} + +char *lookup_font_metrics(const char *name, int *type) +{ + char *file; + + switch(*type) { +#ifndef WITH_AFM_FILES + case DviFontAny: +#endif + case DviFontTFM: + file = kpse_find_tfm(name); + *type = DviFontTFM; + break; + case DviFontOFM: { + file = kpse_find_ofm(name); + /* we may have gotten a TFM back */ + if(file != NULL) { + const char *ext = file_extension(file); + if(ext && STREQ(ext, "tfm")) + *type = DviFontTFM; + } + break; + } +#ifdef WITH_AFM_FILES + case DviFontAFM: + file = kpse_find_file(name, kpse_afm_format, 0); + break; + case DviFontAny: + file = kpse_find_file(name, kpse_afm_format, 0); + *type = DviFontAFM; + if(file == NULL) { + file = kpse_find_tfm(name); + *type = DviFontTFM; + } + break; +#endif + default: + return NULL; + } + + return file; +} + +/* + * The next two functions are just wrappers for the font metric loaders, + * and use the pool of TFM data + */ + +/* this is how we interpret arguments: + * - if filename is NULL, we look for files of the given type, + * unless type is DviFontAny, in which case we try all the + * types we know of. + * - if filename is not NULL, we look at `type' to decide + * how to read the file. If type is DviFontAny, we just + * return an error. + */ +TFMInfo *get_font_metrics(const char *short_name, int type, const char *filename) +{ + TFMPool *tfm = NULL; + int status; + char *file; + + if(tfmpool.count) { + tfm = (TFMPool *)mdvi_hash_lookup(&tfmhash, + MDVI_KEY(short_name)); + if(tfm != NULL) { + DEBUG((DBG_FONTS, "(mt) reusing metric file `%s' (%d links)\n", + short_name, tfm->links)); + tfm->links++; + return &tfm->tfminfo; + } + } + + file = filename ? (char *)filename : lookup_font_metrics(short_name, &type); + if(file == NULL) + return NULL; + + tfm = xalloc(TFMPool); + DEBUG((DBG_FONTS, "(mt) loading font metric data from `%s'\n", file, file)); + switch(type) { + case DviFontTFM: + status = tfm_load_file(file, &tfm->tfminfo); + break; + case DviFontOFM: + status = ofm_load_file(file, &tfm->tfminfo); + break; +#ifdef WITH_AFM_FILES + case DviFontAFM: + status = afm_load_file(file, &tfm->tfminfo); + break; +#endif + default: + status = -1; + break; + } + if(file != filename) + mdvi_free(file); + if(status < 0) { + mdvi_free(tfm); + return NULL; + } + tfm->short_name = mdvi_strdup(short_name); + + /* add it to the pool */ + if(tfmpool.count == 0) + mdvi_hash_create(&tfmhash, TFM_HASH_SIZE); + mdvi_hash_add(&tfmhash, MDVI_KEY(tfm->short_name), + tfm, MDVI_HASH_UNCHECKED); + listh_prepend(&tfmpool, LIST(tfm)); + tfm->links = 1; + + return &tfm->tfminfo; +} + +void free_font_metrics(TFMInfo *info) +{ + TFMPool *tfm; + + if(tfmpool.count == 0) + return; + /* get the entry -- can't use the hash table for this, because + * we don't have the short name */ + for(tfm = (TFMPool *)tfmpool.head; tfm; tfm = tfm->next) + if(info == &tfm->tfminfo) + break; + if(tfm == NULL) + return; + if(--tfm->links > 0) { + DEBUG((DBG_FONTS, "(mt) %s not removed, still in use\n", + tfm->short_name)); + return; + } + mdvi_hash_remove_ptr(&tfmhash, MDVI_KEY(tfm->short_name)); + + DEBUG((DBG_FONTS, "(mt) removing unused TFM data for `%s'\n", tfm->short_name)); + listh_remove(&tfmpool, LIST(tfm)); + mdvi_free(tfm->short_name); + mdvi_free(tfm->tfminfo.chars); + mdvi_free(tfm); +} + +void flush_font_metrics(void) +{ + TFMPool *ptr; + + for(; (ptr = (TFMPool *)tfmpool.head); ) { + tfmpool.head = LIST(ptr->next); + + mdvi_free(ptr->short_name); + mdvi_free(ptr->tfminfo.chars); + mdvi_free(ptr); + } + mdvi_hash_reset(&tfmhash, 0); +} diff --git a/backend/dvi/mdvi-lib/tt.c b/backend/dvi/mdvi-lib/tt.c new file mode 100644 index 00000000..e85d8e70 --- /dev/null +++ b/backend/dvi/mdvi-lib/tt.c @@ -0,0 +1,495 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "mdvi.h" + +#ifdef WITH_TRUETYPE_FONTS + +#include <string.h> +#include <freetype.h> +#include <ftxpost.h> +#include <ftxerr18.h> + +#include "private.h" + +static TT_Engine tt_handle; +static int initialized = 0; + +typedef struct ftinfo { + struct ftinfo *next; + struct ftinfo *prev; + char *fontname; + char *fmfname; + TT_Face face; + TT_Instance instance; + TT_Glyph glyph; + int hasmetrics; + int loaded; + int fmftype; + TFMInfo *tfminfo; + DviFontMapInfo mapinfo; + DviEncoding *encoding; +} FTInfo; + +static int tt_load_font __PROTO((DviParams *, DviFont *)); +static int tt_font_get_glyph __PROTO((DviParams *, DviFont *, int)); +static void tt_free_data __PROTO((DviFont *)); +static void tt_reset_font __PROTO((DviFont *)); +static void tt_shrink_glyph + __PROTO((DviContext *, DviFont *, DviFontChar *, DviGlyph *)); +static void tt_font_remove __PROTO((FTInfo *)); + +DviFontInfo tt_font_info = { + "TT", + 0, + tt_load_font, + tt_font_get_glyph, + tt_shrink_glyph, + mdvi_shrink_glyph_grey, + tt_free_data, /* free */ + tt_reset_font, /* reset */ + NULL, /* lookup */ + kpse_truetype_format, + NULL +}; + +#define FT_HASH_SIZE 31 + +static ListHead ttfonts = {NULL, NULL, 0}; + +static int init_freetype(void) +{ + TT_Error code; + + ASSERT(initialized == 0); + code = TT_Init_FreeType(&tt_handle); + if(code) { + DEBUG((DBG_TT, "(tt) Init_Freetype: error %d\n", code)); + return -1; + } + code = TT_Init_Post_Extension(tt_handle); + if(code) { + TT_Done_FreeType(tt_handle); + return -1; + } + /* we're on */ + initialized = 1; + return 0; +} + +static void tt_encode_font(DviFont *font, FTInfo *info) +{ + TT_Face_Properties prop; + int i; + + if(TT_Get_Face_Properties(info->face, &prop)) + return; + + for(i = 0; i < prop.num_Glyphs; i++) { + char *string; + int ndx; + + if(TT_Get_PS_Name(info->face, i, &string)) + continue; + ndx = mdvi_encode_glyph(info->encoding, string); + if(ndx < font->loc || ndx > font->hic) + continue; + font->chars[ndx - font->loc].code = i; + } +} + +static int tt_really_load_font(DviParams *params, DviFont *font, FTInfo *info) +{ + DviFontChar *ch; + TFMChar *ptr; + Int32 z, alpha, beta; + int i; + FTInfo *old; + TT_Error status; + double point_size; + static int warned = 0; + TT_CharMap cmap; + TT_Face_Properties props; + int map_found; + + DEBUG((DBG_TT, "(tt) really_load_font(%s)\n", info->fontname)); + + /* get the point size */ + point_size = (double)font->scale / (params->tfm_conv * 0x100000); + point_size = 72.0 * point_size / 72.27; + if(info->loaded) { + /* just reset the size info */ + TT_Set_Instance_Resolutions(info->instance, + params->dpi, params->vdpi); + TT_Set_Instance_CharSize(info->instance, FROUND(point_size * 64)); + /* FIXME: should extend/slant again */ + info->hasmetrics = 1; + return 0; + } + + /* load the face */ + DEBUG((DBG_TT, "(tt) loading new face `%s'\n", + info->fontname)); + status = TT_Open_Face(tt_handle, font->filename, &info->face); + if(status) { + mdvi_warning(_("(tt) %s: could not load face: %s\n"), + info->fontname, TT_ErrToString18(status)); + return -1; + } + + /* create a new instance of this face */ + status = TT_New_Instance(info->face, &info->instance); + if(status) { + mdvi_warning(_("(tt) %s: could not create face: %s\n"), + info->fontname, TT_ErrToString18(status)); + TT_Close_Face(info->face); + return -1; + } + + /* create a glyph */ + status = TT_New_Glyph(info->face, &info->glyph); + if(status) { + mdvi_warning(_("(tt) %s: could not create glyph: %s\n"), + info->fontname, TT_ErrToString18(status)); + goto tt_error; + } + + /* + * We'll try to find a Unicode charmap. It's not that important that we + * actually find one, especially if the fontmap files are installed + * properly, but it's good to have some predefined behaviour + */ + TT_Get_Face_Properties(info->face, &props); + + map_found = -1; + for(i = 0; map_found < 0 && i < props.num_CharMaps; i++) { + TT_UShort pid, eid; + + TT_Get_CharMap_ID(info->face, i, &pid, &eid); + switch(pid) { + case TT_PLATFORM_APPLE_UNICODE: + map_found = i; + break; + case TT_PLATFORM_ISO: + if(eid == TT_ISO_ID_7BIT_ASCII || + eid == TT_ISO_ID_8859_1) + map_found = 1; + break; + case TT_PLATFORM_MICROSOFT: + if(eid == TT_MS_ID_UNICODE_CS) + map_found = 1; + break; + } + } + if(map_found < 0) { + mdvi_warning(_("(tt) %s: no acceptable map found, using #0\n"), + info->fontname); + map_found = 0; + } + DEBUG((DBG_TT, "(tt) %s: using charmap #%d\n", + info->fontname, map_found)); + TT_Get_CharMap(info->face, map_found, &cmap); + + DEBUG((DBG_TT, "(tt) %s: Set_Char_Size(%.2f, %d, %d)\n", + font->fontname, point_size, font->hdpi, font->vdpi)); + status = TT_Set_Instance_Resolutions(info->instance, + params->dpi, params->vdpi); + if(status) { + error(_("(tt) %s: could not set resolution: %s\n"), + info->fontname, TT_ErrToString18(status)); + goto tt_error; + } + status = TT_Set_Instance_CharSize(info->instance, + FROUND(point_size * 64)); + if(status) { + error(_("(tt) %s: could not set point size: %s\n"), + info->fontname, TT_ErrToString18(status)); + goto tt_error; + } + + /* after this point we don't fail */ + + /* get information from the fontmap */ + status = mdvi_query_fontmap(&info->mapinfo, info->fontname); + if(!status && info->mapinfo.encoding) + info->encoding = mdvi_request_encoding(info->mapinfo.encoding); + else + info->encoding = NULL; + + if(info->encoding != NULL) { + TT_Post post; + + status = TT_Load_PS_Names(info->face, &post); + if(status) { + mdvi_warning(_("(tt) %s: could not load PS name table\n"), + info->fontname); + mdvi_release_encoding(info->encoding, 0); + info->encoding = NULL; + } + } + + /* get the metrics. If this fails, it's not fatal, but certainly bad */ + info->tfminfo = get_font_metrics(info->fontname, + info->fmftype, info->fmfname); + + if(info->tfminfo == NULL) { + mdvi_warning("(tt) %s: no metrics data, font ignored\n", + info->fontname); + goto tt_error; + } + /* fix this */ + font->design = info->tfminfo->design; + + /* get the scaled character metrics */ + get_tfm_chars(params, font, info->tfminfo, 0); + + if(info->encoding) + tt_encode_font(font, info); + else { + mdvi_warning(_("%s: no encoding vector found, expect bad output\n"), + info->fontname); + /* this is better than nothing */ + for(i = font->loc; i <= font->hic; i++) + font->chars[i - font->loc].code = TT_Char_Index(cmap, i); + } + + info->loaded = 1; + info->hasmetrics = 1; + return 0; + +tt_error: + tt_font_remove(info); + mdvi_free(font->chars); + font->chars = NULL; + font->loc = font->hic = 0; + return -1; +} + +static int tt_load_font(DviParams *params, DviFont *font) +{ + int i; + FTInfo *info; + + if(!initialized && init_freetype() < 0) + return -1; + + if(font->in != NULL) { + fclose(font->in); + font->in = NULL; + } + + info = xalloc(FTInfo); + + memzero(info, sizeof(FTInfo)); + info->fmftype = DviFontAny; /* any metrics type will do */ + info->fmfname = lookup_font_metrics(font->fontname, &info->fmftype); + info->fontname = font->fontname; + info->hasmetrics = 0; + info->loaded = 0; + + /* these will be obtained from the fontmaps */ + info->mapinfo.psname = NULL; + info->mapinfo.encoding = NULL; + info->mapinfo.fontfile = NULL; + info->mapinfo.extend = 0; + info->mapinfo.slant = 0; + + /* initialize these */ + font->chars = xnalloc(DviFontChar, 256); + font->loc = 0; + font->hic = 255; + for(i = 0; i < 256; i++) { + font->chars[i].offset = 1; + font->chars[i].glyph.data = NULL; + font->chars[i].shrunk.data = NULL; + font->chars[i].grey.data = NULL; + } + + if(info->fmfname == NULL) + mdvi_warning(_("(tt) %s: no font metric data\n"), font->fontname); + + listh_append(&ttfonts, LIST(info)); + font->private = info; + + return 0; +} + +static int tt_get_bitmap(DviParams *params, DviFont *font, + int code, double xscale, double yscale, DviGlyph *glyph) +{ + TT_Outline outline; + TT_Raster_Map raster; + TT_BBox bbox; + TT_Glyph_Metrics metrics; + TT_Matrix mat; + FTInfo *info; + int error; + int have_outline = 0; + int w, h; + + info = (FTInfo *)font->private; + if(info == NULL) + return -1; + + error = TT_Load_Glyph(info->instance, info->glyph, + code, TTLOAD_DEFAULT); + if(error) goto tt_error; + error = TT_Get_Glyph_Outline(info->glyph, &outline); + if(error) goto tt_error; + have_outline = 1; + mat.xx = FROUND(xscale * 65536); + mat.yy = FROUND(yscale * 65536); + mat.yx = 0; + mat.xy = 0; + TT_Transform_Outline(&outline, &mat); + error = TT_Get_Outline_BBox(&outline, &bbox); + if(error) goto tt_error; + bbox.xMin &= -64; + bbox.yMin &= -64; + bbox.xMax = (bbox.xMax + 63) & -64; + bbox.yMax = (bbox.yMax + 63) & -64; + w = (bbox.xMax - bbox.xMin) / 64; + h = (bbox.yMax - bbox.yMin) / 64; + + glyph->w = w; + glyph->h = h; + glyph->x = -bbox.xMin / 64; + glyph->y = bbox.yMax / 64; + if(!w || !h) + goto tt_error; + raster.rows = h; + raster.width = w; + raster.cols = ROUND(w, 8); + raster.size = h * raster.cols; + raster.flow = TT_Flow_Down; + raster.bitmap = mdvi_calloc(h, raster.cols); + + TT_Translate_Outline(&outline, -bbox.xMin, -bbox.yMin); + TT_Get_Outline_Bitmap(tt_handle, &outline, &raster); + glyph->data = bitmap_convert_msb8(raster.bitmap, w, h, ROUND(w, 8)); + TT_Done_Outline(&outline); + mdvi_free(raster.bitmap); + + return 0; +tt_error: + if(have_outline) + TT_Done_Outline(&outline); + return -1; +} + +static int tt_font_get_glyph(DviParams *params, DviFont *font, int code) +{ + FTInfo *info = (FTInfo *)font->private; + DviFontChar *ch; + int error; + double xs, ys; + int dpi; + + ASSERT(info != NULL); + if(!info->hasmetrics && tt_really_load_font(params, font, info) < 0) + return -1; + ch = FONTCHAR(font, code); + if(!ch || !glyph_present(ch)) + return -1; + ch->loaded = 1; + if(!ch->width || !ch->height) + goto blank; + if(ch->code == 0) { + ch->glyph.data = NULL; + goto missing; + } + /* get the glyph */ + dpi = Max(font->hdpi, font->vdpi); + error = tt_get_bitmap(params, font, ch->code, + (double)font->hdpi / dpi, + (double)font->vdpi / dpi, + &ch->glyph); + if(error) + goto missing; + ch->x = ch->glyph.x; + ch->y = ch->glyph.y; + + return 0; + +missing: + ch->glyph.data = MDVI_GLYPH_EMPTY; + ch->missing = 1; +blank: + ch->glyph.w = ch->width; + ch->glyph.h = ch->height; + ch->glyph.x = ch->x; + ch->glyph.y = ch->y; + return 0; +} + +static void tt_shrink_glyph(DviContext *dvi, DviFont *font, DviFontChar *ch, DviGlyph *dest) +{ + tt_get_bitmap(&dvi->params, font, + ch->code, + (double)font->hdpi / (dvi->params.dpi * dvi->params.hshrink), + (double)font->vdpi / (dvi->params.vdpi * dvi->params.vshrink), + dest); + /* transform the glyph for the current orientation */ + font_transform_glyph(dvi->params.orientation, dest); +} + +static void tt_reset_font(DviFont *font) +{ + FTInfo *info = (FTInfo *)font->private; + + if(info == NULL) + return; + info->hasmetrics = 0; +} + +static void tt_font_remove(FTInfo *info) +{ + FTInfo *old; + + if(info->loaded) { + /* all fonts in the hash table have called TT_Open_Face */ + TT_Done_Instance(info->instance); + TT_Close_Face(info->face); + } + listh_remove(&ttfonts, LIST(info)); + /* release our encodings */ + if(info->encoding) + mdvi_release_encoding(info->encoding, 1); + /* and destroy the font */ + if(info->tfminfo) + free_font_metrics(info->tfminfo); + if(info->fmfname) + mdvi_free(info->fmfname); + mdvi_free(info); +} + +static void tt_free_data(DviFont *font) +{ + if(font->private == NULL) + return; + + tt_font_remove((FTInfo *)font->private); + if(initialized && ttfonts.count == 0) { + DEBUG((DBG_TT, "(tt) last font removed -- closing FreeType\n")); + TT_Done_FreeType(tt_handle); + initialized = 0; + } +} + +#endif /* WITH_TRUETYPE_FONTS */ diff --git a/backend/dvi/mdvi-lib/util.c b/backend/dvi/mdvi-lib/util.c new file mode 100644 index 00000000..349d273a --- /dev/null +++ b/backend/dvi/mdvi-lib/util.c @@ -0,0 +1,550 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <time.h> +#include <sys/stat.h> +#include <errno.h> +#include <unistd.h> + +#include "common.h" +#include "private.h" + +static char *const messages[] = { + _G("Ooops!"), + _G("Aieeeee!!"), + _G("Ouch!"), + _G("Houston, we have a problem"), + _G("3.. 2.. 1.. BOOM!"), + _G("I'm history"), + _G("I'm going down"), + _G("I smell a rat") +}; +#define NMSGS (sizeof(messages) / sizeof(char *)) + +static FILE *logfile = NULL; +static int _mdvi_log_level; + +int mdvi_set_logfile(const char *filename); +int mdvi_set_logstream(FILE *file); +int mdvi_set_loglevel(int level); + +static void vputlog(int level, const char *head, const char *format, va_list ap) +{ + if(logfile != NULL && _mdvi_log_level >= level) { + if(head != NULL) + fprintf(logfile, "%s: ", head); + vfprintf(logfile, format, ap); + } +} + +int mdvi_set_logfile(const char *filename) +{ + FILE *f = NULL; + + if(filename && (f = fopen(filename, "w")) == NULL) + return -1; + if(logfile != NULL && !isatty(fileno(logfile))) { + fclose(logfile); + logfile = NULL; + } + if(filename) + logfile = f; + return 0; +} + +int mdvi_set_logstream(FILE *file) +{ + if(logfile && !isatty(fileno(logfile))) { + fclose(logfile); + logfile = NULL; + } + logfile = file; + return 0; +} + +int mdvi_set_loglevel(int level) +{ + int old = _mdvi_log_level; + + _mdvi_log_level = level; + return old; +} + +#ifndef NODEBUG +Uint32 _mdvi_debug_mask = 0; + +void __debug(int mask, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + if(_mdvi_debug_mask & mask) { + if(!DEBUGGING(SILENT)) { + fprintf(stderr, "Debug: "); + vfprintf(stderr, format, ap); + fflush(stderr); + } +#ifndef __GNUC__ + /* let's be portable */ + va_end(ap); + va_start(ap, format); +#endif + vputlog(LOG_DEBUG, "Debug", format, ap); + } + va_end(ap); +} +#endif + +void mdvi_message(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + if(_mdvi_log_level >= LOG_INFO) { + fprintf(stderr, "%s: ", program_name); + vfprintf(stderr, format, ap); +#ifndef __GNUC__ + va_end(ap); + va_start(ap, format); +#endif + } + vputlog(LOG_INFO, NULL, format, ap); + va_end(ap); +} + +void mdvi_crash(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, "%s: %s: ", + program_name, + gettext(messages[(int)time(NULL) % NMSGS])); + vfprintf(stderr, format, ap); +#ifndef __GNUC__ + /* let's be portable */ + va_end(ap); + va_start(ap, format); +#endif + vputlog(LOG_ERROR, _("Crashing"), format, ap); + va_end(ap); + abort(); +} + +void mdvi_error(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, _("%s: Error: "), program_name); + vfprintf(stderr, format, ap); +#ifndef __GNUC__ + /* let's be portable */ + va_end(ap); + va_start(ap, format); +#endif + vputlog(LOG_ERROR, _("Error"), format, ap); + va_end(ap); +} + +void mdvi_warning(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, _("%s: Warning: "), program_name); + vfprintf(stderr, format, ap); +#ifndef __GNUC__ + /* let's be portable */ + va_end(ap); + va_start(ap, format); +#endif + vputlog(LOG_WARN, _("Warning"), format, ap); + va_end(ap); +} + +void mdvi_fatal(const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, _("%s: Fatal: "), program_name); + vfprintf(stderr, format, ap); +#ifndef __GNUC__ + /* let's be portable */ + va_end(ap); + va_start(ap, format); +#endif + vputlog(LOG_ERROR, _("Fatal"), format, ap); + va_end(ap); +#ifndef NODEBUG + abort(); +#else + exit(EXIT_FAILURE); +#endif +} + +void *mdvi_malloc(size_t nelems) +{ + void *ptr = malloc(nelems); + + if(ptr == NULL) + mdvi_fatal(_("out of memory allocating %u bytes\n"), + (unsigned)nelems); + return ptr; +} + +void *mdvi_realloc(void *data, size_t newsize) +{ + void *ptr; + + if(newsize == 0) + mdvi_crash(_("attempted to reallocate with zero size\n")); + ptr = realloc(data, newsize); + if(ptr == NULL) + mdvi_fatal(_("failed to reallocate %u bytes\n"), (unsigned)newsize); + return ptr; +} + +void *mdvi_calloc(size_t nmemb, size_t size) +{ + void *ptr; + + if(nmemb == 0) + mdvi_crash(_("attempted to callocate 0 members\n")); + if(size == 0) + mdvi_crash(_("attempted to callocate %u members with size 0\n"), + (unsigned)nmemb); + ptr = calloc(nmemb, size); + if(ptr == 0) + mdvi_fatal(_("failed to allocate %ux%u bytes\n"), + (unsigned)nmemb, (unsigned)size); + return ptr; +} + +void mdvi_free(void *ptr) +{ + if(ptr == NULL) + mdvi_crash(_("attempted to free NULL pointer\n")); + free(ptr); +} + +char *mdvi_strdup(const char *string) +{ + int length; + char *ptr; + + length = strlen(string) + 1; + ptr = (char *)mdvi_malloc(length); + memcpy(ptr, string, length); + return ptr; +} + +/* `to' should have room for length+1 bytes */ +char *mdvi_strncpy(char *to, const char *from, size_t length) +{ + strncpy(to, from, length); + to[length] = '\0'; + return to; +} + +char *mdvi_strndup(const char *string, size_t length) +{ + int n; + char *ptr; + + n = strlen(string); + if(n > length) + n = length; + ptr = (char *)mdvi_malloc(n + 1); + memcpy(ptr, string, n); + return ptr; +} + +void *mdvi_memdup(const void *data, size_t length) +{ + void *ptr = mdvi_malloc(length); + + memcpy(ptr, data, length); + return ptr; +} + +char *mdvi_strrstr (const char *haystack, const char *needle) +{ + size_t i; + size_t needle_len; + size_t haystack_len; + const char *p; + + needle_len = strlen (needle); + haystack_len = strlen (haystack); + + if (needle_len == 0) + return NULL; + + if (haystack_len < needle_len) + return (char *)haystack; + + p = haystack + haystack_len - needle_len; + while (p >= haystack) { + for (i = 0; i < needle_len; i++) + if (p[i] != needle[i]) + goto next; + + return (char *)p; + + next: + p--; + } + + return NULL; +} + +char *mdvi_build_path_from_cwd (const char *path) +{ + char *ptr; + char *buf = NULL; + size_t buf_size = 512; + + while (1) { + buf = mdvi_realloc (buf, buf_size); + if ((ptr = getcwd (buf, buf_size)) == NULL && errno == ERANGE) { + buf_size *= 2; + } else { + buf = ptr; + break; + } + } + + buf = mdvi_realloc (buf, strlen (buf) + strlen (path) + 2); + strcat (buf, "/"); + strncat (buf, path, strlen (path)); + + return buf; +} + +double unit2pix_factor(const char *spec) +{ + double val; + double factor; + const char *p, *q; + static const char *units = "incmmmmtptpcddccspbpftydcs"; + + val = 0.0; + + for(p = spec; *p >= '0' && *p <= '9'; p++) + val = 10.0 * val + (double)(*p - '0'); + if(*p == '.') { + p++; + factor = 0.1; + while(*p && *p >= '0' && *p <= '9') { + val += (*p++ - '0') * factor; + factor = factor * 0.1; + } + } + factor = 1.0; + for(q = units; *q; q += 2) { + if(p[0] == q[0] && p[1] == q[1]) + break; + } + switch((int)(q - units)) { + /*in*/ case 0: factor = 1.0; break; + /*cm*/ case 2: factor = 1.0 / 2.54; break; + /*mm*/ case 4: factor = 1.0 / 25.4; break; + /*mt*/ case 6: factor = 1.0 / 0.0254; break; + /*pt*/ case 8: factor = 1.0 / 72.27; break; + /*pc*/ case 10: factor = 12.0 / 72.27; break; + /*dd*/ case 12: factor = (1238.0 / 1157.0) / 72.27; break; + /*cc*/ case 14: factor = 12 * (1238.0 / 1157.0) / 72.27; break; + /*sp*/ case 16: factor = 1.0 / (72.27 * 65536); break; + /*bp*/ case 18: factor = 1.0 / 72.0; break; + /*ft*/ case 20: factor = 12.0; break; + /*yd*/ case 22: factor = 36.0; break; + /*cs*/ case 24: factor = 1.0 / 72000.0; break; + default: factor = 1.0; + } + return factor * val; +} + +int unit2pix(int dpi, const char *spec) +{ + double factor = unit2pix_factor(spec); + + return (int)(factor * dpi + 0.5); +} + +Ulong get_mtime(int fd) +{ + struct stat st; + + if(fstat(fd, &st) == 0) + return (Ulong)st.st_mtime; + return 0; +} + +char *xstradd(char *dest, size_t *size, size_t n, const char *src, size_t m) +{ + if(m == 0) + m = strlen(src); + if(n + m >= *size) { + dest = mdvi_realloc(dest, n + m + 1); + *size = n + m + 1; + } + memcpy(dest + n, src, m); + dest[n + m] = 0; + return dest; +} + +char *getword(char *string, const char *delim, char **end) +{ + char *ptr; + char *word; + + /* skip leading delimiters */ + for(ptr = string; *ptr && strchr(delim, *ptr); ptr++); + + if(*ptr == 0) + return NULL; + word = ptr++; + /* skip non-delimiters */ + while(*ptr && !strchr(delim, *ptr)) + ptr++; + *end = (char *)ptr; + return word; +} + +char *getstring(char *string, const char *delim, char **end) +{ + char *ptr; + char *word; + int quoted = 0; + + /* skip leading delimiters */ + for(ptr = string; *ptr && strchr(delim, *ptr); ptr++); + + if(ptr == NULL) + return NULL; + quoted = (*ptr == '"'); + if(quoted) + for(word = ++ptr; *ptr && *ptr != '"'; ptr++); + else + for(word = ptr; *ptr && !strchr(delim, *ptr); ptr++); + *end = (char *)ptr; + return word; +} + +static long pow2(size_t n) +{ + long x = 8; /* don't bother allocating less than this */ + + while(x < n) + x <<= 1L; + return x; +} + +void dstring_init(Dstring *dstr) +{ + dstr->data = NULL; + dstr->size = 0; + dstr->length = 0; +} + +int dstring_append(Dstring *dstr, const char *string, int len) +{ + if(len < 0) + len = strlen(string); + if(len) { + if(dstr->length + len >= dstr->size) { + dstr->size = pow2(dstr->length + len + 1); + dstr->data = mdvi_realloc(dstr->data, dstr->size); + } + memcpy(dstr->data + dstr->length, string, len); + dstr->length += len; + dstr->data[dstr->length] = 0; + } else if(dstr->size == 0) { + ASSERT(dstr->data == NULL); + dstr->size = 8; + dstr->data = mdvi_malloc(8); + dstr->data[0] = 0; + } + + return dstr->length; +} + +int dstring_copy(Dstring *dstr, int pos, const char *string, int len) +{ + ASSERT(pos >= 0); + if(len < 0) + len = strlen(string); + if(len) { + if(pos + len >= dstr->length) { + dstr->length = pos; + return dstring_append(dstr, string, len); + } + memcpy(dstr->data + pos, string, len); + } + return dstr->length; +} + +int dstring_insert(Dstring *dstr, int pos, const char *string, int len) +{ + ASSERT(pos >= 0); + if(pos == dstr->length) + return dstring_append(dstr, string, len); + if(len < 0) + len = strlen(string); + if(len) { + if(dstr->length + len >= dstr->size) { + dstr->size = pow2(dstr->length + len + 1); + dstr->data = mdvi_realloc(dstr->data, dstr->size); + } + /* make room */ + memmove(dstr->data + pos, dstr->data + pos + len, len); + /* now copy */ + memcpy(dstr->data + pos, string, len); + dstr->length += len; + dstr->data[dstr->length] = 0; + } + return dstr->length; +} + +int dstring_new(Dstring *dstr, const char *string, int len) +{ + if(len < 0) + len = strlen(string); + if(len) { + dstr->size = pow2(len + 1); + dstr->data = mdvi_malloc(dstr->size * len); + memcpy(dstr->data, string, len); + } else + dstring_init(dstr); + return dstr->length; +} + +void dstring_reset(Dstring *dstr) +{ + if(dstr->data) + mdvi_free(dstr->data); + dstring_init(dstr); +} + diff --git a/backend/dvi/mdvi-lib/vf.c b/backend/dvi/mdvi-lib/vf.c new file mode 100644 index 00000000..fb498476 --- /dev/null +++ b/backend/dvi/mdvi-lib/vf.c @@ -0,0 +1,241 @@ +/* vf.c -- VF font support */ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <string.h> + +#include "mdvi.h" +#include "private.h" + +static int vf_load_font __PROTO((DviParams *, DviFont *)); +static void vf_free_macros __PROTO((DviFont *)); + +/* only symbol exported by this file */ +DviFontInfo vf_font_info = { + "VF", + 1, /* virtual fonts scale just fine */ + vf_load_font, + NULL, /* get_glyph */ + NULL, /* shrink0 */ + NULL, /* shrink1 */ + vf_free_macros, + NULL, /* reset */ + NULL, /* lookup */ + kpse_vf_format, + NULL +}; + +DviFontInfo ovf_font_info = { + "OVF", + 1, /* virtual fonts scale just fine */ + vf_load_font, + NULL, /* get_glyph */ + NULL, /* shrink0 */ + NULL, /* shrink1 */ + vf_free_macros, + NULL, /* reset */ + NULL, /* lookup */ + kpse_ovf_format, + NULL +}; + +static int vf_load_font(DviParams *params, DviFont *font) +{ + FILE *p; + Uchar *macros; + int msize; + int mlen; + Int32 checksum; + long alpha, beta, z; + int op; + int i; + int nchars; + int loc, hic; + DviFontRef *last; + + macros = NULL; + msize = mlen = 0; + p = font->in; + + if(fuget1(p) != 247 || fuget1(p) != 202) + goto badvf; + mlen = fuget1(p); + fseek(p, (long)mlen, SEEK_CUR); + checksum = fuget4(p); + if(checksum && font->checksum && checksum != font->checksum) { + mdvi_warning(_("%s: Checksum mismatch (expected %u, got %u)\n"), + font->fontname, font->checksum, checksum); + } else if(!font->checksum) + font->checksum = checksum; + font->design = fuget4(p); + + /* read all the fonts in the preamble */ + last = NULL; + + /* initialize alpha, beta and z for TFM width computation */ + TFMPREPARE(font->scale, z, alpha, beta); + + op = fuget1(p); + while(op >= DVI_FNT_DEF1 && op <= DVI_FNT_DEF4) { + DviFontRef *ref; + Int32 scale, design; + Uint32 checksum; + int id; + int n; + int hdpi; + int vdpi; + char *name; + + /* process fnt_def commands */ + + id = fugetn(p, op - DVI_FNT_DEF1 + 1); + checksum = fuget4(p); + scale = fuget4(p); + design = fuget4(p); + + /* scale this font according to our parent's scale */ + scale = TFMSCALE(scale, z, alpha, beta); + design = FROUND(params->tfm_conv * design); + + /* compute the resolution */ + hdpi = FROUND(params->mag * params->dpi * scale / design); + vdpi = FROUND(params->mag * params->vdpi * scale / design); + n = fuget1(p) + fuget1(p); + name = mdvi_malloc(n + 1); + fread(name, 1, n, p); + name[n] = 0; + DEBUG((DBG_FONTS, "(vf) %s: defined font `%s' at %.1fpt (%dx%d dpi)\n", + font->fontname, name, + (double)scale / (params->tfm_conv * 0x100000), hdpi, vdpi)); + + /* get the font */ + ref = font_reference(params, id, name, checksum, hdpi, vdpi, scale); + if(ref == NULL) { + mdvi_error(_("(vf) %s: could not load font `%s'\n"), + font->fontname, name); + goto error; + } + mdvi_free(name); + if(last == NULL) + font->subfonts = last = ref; + else + last->next = ref; + ref->next = NULL; + op = fuget1(p); + } + + if(op >= DVI_FNT_DEF1 && op <= DVI_FNT_DEF4) + goto error; + + /* This function correctly reads both .vf and .ovf files */ + + font->chars = xnalloc(DviFontChar, 256); + for(i = 0; i < 256; i++) + font->chars[i].offset = 0; + nchars = 256; + loc = -1; hic = -1; + /* now read the characters themselves */ + while(op <= 242) { + int pl; + Int32 cc; + Int32 tfm; + + if(op == 242) { + pl = fuget4(p); + cc = fuget4(p); + tfm = fuget4(p); + } else { + pl = op; + cc = fuget1(p); + tfm = fuget3(p); + } + if(loc < 0 || cc < loc) + loc = cc; + if(hic < 0 || cc > hic) + hic = cc; + if(cc >= nchars) { + font->chars = xresize(font->chars, + DviFontChar, cc + 16); + for(i = nchars; i < cc + 16; i++) + font->chars[i].offset = 0; + nchars = cc + 16; + } + if(font->chars[cc].offset) { + mdvi_error(_("(vf) %s: character %d redefined\n"), + font->fontname, cc); + goto error; + } + + DEBUG((DBG_GLYPHS, "(vf) %s: defined character %d (macro length %d)\n", + font->fontname, cc, pl)); + font->chars[cc].width = pl + 1; + font->chars[cc].code = cc; + font->chars[cc].tfmwidth = TFMSCALE(tfm, z, alpha, beta); + font->chars[cc].offset = mlen; + font->chars[cc].loaded = 1; + if(mlen + pl + 1 > msize) { + msize = mlen + pl + 256; + macros = xresize(macros, Uchar, msize); + } + if(pl && fread(macros + mlen, 1, pl, p) != pl) + break; + macros[mlen+pl] = DVI_EOP; + mlen += pl + 1; + op = fuget1(p); + } + if(op != 248) { + mdvi_error(_("(vf) %s: no postamble\n"), font->fontname); + goto error; + } + + /* make macro memory just big enough */ + if(msize > mlen) { + macros = xresize(macros, Uchar, mlen); + msize = mlen; + } + + DEBUG((DBG_FONTS|DBG_GLYPHS, + "(vf) %s: macros use %d bytes\n", font->fontname, msize)); + + if(loc > 0 || hic < nchars-1) { + memmove(font->chars, font->chars + loc, + (hic - loc + 1) * sizeof(DviFontChar)); + font->chars = xresize(font->chars, + DviFontChar, hic - loc + 1); + } + font->loc = loc; + font->hic = hic; + font->private = macros; + + return 0; + +badvf: + mdvi_error(_("%s: File corrupted, or not a VF file.\n"), font->fontname); +error: + if(font->chars) + mdvi_free(font->chars); + if(macros) + mdvi_free(macros); + return -1; +} + +static void vf_free_macros(DviFont *font) +{ + mdvi_free(font->private); +} diff --git a/backend/dvi/texmfcnf.c b/backend/dvi/texmfcnf.c new file mode 100644 index 00000000..9ca3125f --- /dev/null +++ b/backend/dvi/texmfcnf.c @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2010, Hib Eris <hib@hiberis.nl> + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "texmfcnf.h" + +#include <glib.h> +#include <stdlib.h> +#ifdef G_OS_WIN32 +#include <windows.h> +#endif + +gchar * +get_texmfcnf(void) +{ + char *env = getenv("TEXMFCNF"); + if (env) + return g_strdup(env); + +#ifdef G_OS_WIN32 + gchar *texmfcnf = NULL; + TCHAR path[_MAX_PATH]; + + if (SearchPath(NULL, "mktexpk", ".exe", _MAX_PATH, path, NULL)) + { + gchar *sdir, *sdir_parent, *sdir_grandparent; + const gchar *texmfcnf_fmt = "{%s,%s,%s}{,{/share,}/texmf{-local,}/web2c}"; + + sdir = g_path_get_dirname(path); + sdir_parent = g_path_get_dirname(sdir); + sdir_grandparent = g_path_get_dirname(sdir_parent); + + texmfcnf = g_strdup_printf(texmfcnf_fmt, + sdir, sdir_parent, sdir_grandparent); + + g_free(sdir); + g_free(sdir_parent); + g_free(sdir_grandparent); + } + return texmfcnf; +#else + return NULL; +#endif +} + + + + diff --git a/backend/dvi/texmfcnf.h b/backend/dvi/texmfcnf.h new file mode 100644 index 00000000..11cb9b3d --- /dev/null +++ b/backend/dvi/texmfcnf.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010, Hib Eris <hib@hiberis.nl> + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef TEXMFCNF_H +#define TEXMFCNF_H + +#include <glib.h> + +G_BEGIN_DECLS + +gchar *get_texmfcnf(void); + +G_END_DECLS + +#endif /* TEXMFCNF_H */ + + + + diff --git a/backend/impress/Makefile.am b/backend/impress/Makefile.am new file mode 100644 index 00000000..a7b65705 --- /dev/null +++ b/backend/impress/Makefile.am @@ -0,0 +1,57 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCEDATADIR=\""$(datadir)"\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libimpressdocument.la + +libimpressdocument_la_SOURCES = \ + $(IMPOSTER_SOURCE_FILES) \ + $(IMPOSTER_INCLUDE_FILES) \ + impress-document.c \ + impress-document.h + +IMPOSTER_SOURCE_FILES = \ + document.c \ + f_oasis.c \ + f_oo13.c \ + iksemel.c \ + r_back.c \ + r_draw.c \ + render.c \ + r_geometry.c \ + r_gradient.c \ + r_style.c \ + r_text.c \ + zip.c +IMPOSTER_INCLUDE_FILES = \ + common.h \ + iksemel.h \ + imposter.h \ + internal.h \ + zip.h +IMPOSTER_RENDER_SOURCE_FILES = \ + render.c +IMPOSTER_RENDER_INCLUDE_FILES = \ + render.h + +libimpressdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libimpressdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) -lz + +backend_in_files = impressdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/impress/common.h b/backend/impress/common.h new file mode 100644 index 00000000..73e4ac19 --- /dev/null +++ b/backend/impress/common.h @@ -0,0 +1,40 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#ifndef COMMON_H +#define COMMON_H 1 + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <sys/types.h> +#include <stdio.h> + +#ifdef STDC_HEADERS +#include <stdlib.h> +#include <string.h> +#include <stdarg.h> +#elif HAVE_STRINGS_H +#include <strings.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#ifdef HAVE_ERRNO_H +#include <errno.h> +#endif +#ifndef errno +extern int errno; +#endif + +#include <iksemel.h> +#include "imposter.h" + + +#endif /* COMMON_H */ diff --git a/backend/impress/document.c b/backend/impress/document.c new file mode 100644 index 00000000..b01c0e18 --- /dev/null +++ b/backend/impress/document.c @@ -0,0 +1,140 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +static iks * +_imp_load_xml(ImpDoc *doc, const char *xmlfile) +{ + int e; + iks *x; + + x = zip_load_xml (doc->zfile, xmlfile, &e); + return x; +} + +ImpDoc * +imp_open(const char *filename, int *err) +{ + ImpDoc *doc; + int e; + + doc = calloc(1, sizeof(ImpDoc)); + if (!doc) { + *err = IMP_NOMEM; + return NULL; + } + + doc->stack = iks_stack_new(sizeof(ImpPage) * 32, 0); + if (!doc->stack) { + *err = IMP_NOMEM; + imp_close(doc); + return NULL; + } + + doc->zfile = zip_open(filename, &e); + if (e) { + *err = IMP_NOTZIP; + imp_close(doc); + return NULL; + } + + doc->content = _imp_load_xml(doc, "content.xml"); + doc->styles = _imp_load_xml(doc, "styles.xml"); + doc->meta = _imp_load_xml(doc, "meta.xml"); + + if (!doc->content || !doc->styles) { + *err = IMP_BADDOC; + imp_close(doc); + return NULL; + } + + e = _imp_oo13_load(doc); + if (e && e != IMP_NOTIMP) { + *err = e; + imp_close(doc); + return NULL; + } + + if (e == IMP_NOTIMP) { + e = _imp_oasis_load(doc); + if (e) { + *err = e; + imp_close(doc); + return NULL; + } + } + + return doc; +} + +int +imp_nr_pages(ImpDoc *doc) +{ + return doc->nr_pages; +} + +ImpPage * +imp_get_page(ImpDoc *doc, int page_no) +{ + if (page_no == IMP_LAST_PAGE) { + return doc->last_page; + } else { + ImpPage *page; + if (page_no < 0 || page_no > doc->nr_pages) return NULL; + for (page = doc->pages; page_no; --page_no) { + page = page->next; + } + return page; + } +} + +ImpPage * +imp_next_page(ImpPage *page) +{ + return page->next; +} + +ImpPage * +imp_prev_page(ImpPage *page) +{ + return page->prev; +} + +int +imp_get_page_no(ImpPage *page) +{ + return page->nr; +} + +const char * +imp_get_page_name(ImpPage *page) +{ + return page->name; +} + +void * +imp_get_xml(ImpDoc *doc, const char *filename) +{ + if (strcmp(filename, "content.xml") == 0) + return doc->content; + else if (strcmp(filename, "styles.xml") == 0) + return doc->styles; + else if (strcmp(filename, "meta.xml") == 0) + return doc->meta; + else + return NULL; +} + +void +imp_close(ImpDoc *doc) +{ + if (doc->stack) iks_stack_delete(doc->stack); + if (doc->zfile) zip_close(doc->zfile); + free(doc); +} diff --git a/backend/impress/f_oasis.c b/backend/impress/f_oasis.c new file mode 100644 index 00000000..8fe6ee1a --- /dev/null +++ b/backend/impress/f_oasis.c @@ -0,0 +1,170 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +static void +render_object(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + char *tag, *t; + ImpColor fg; + + tag = iks_name(node); + if (strcmp(tag, "draw:g") == 0) { + iks *x; + for (x = iks_first_tag(node); x; x = iks_next_tag(x)) { + render_object(ctx, drw_data, x); + } + } else if (strcmp(tag, "draw:frame") == 0) { + iks *x; + for (x = iks_first_tag(node); x; x = iks_next_tag(x)) { + render_object(ctx, drw_data, x); + } + } else if (strcmp(tag, "draw:line") == 0) { + r_get_color(ctx, node, "svg:stroke-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + ctx->drw->draw_line(drw_data, + r_get_x(ctx, node, "svg:x1"), r_get_y(ctx, node, "svg:y1"), + r_get_x(ctx, node, "svg:x2"), r_get_y(ctx, node, "svg:y2") + ); + } else if (strcmp(tag, "draw:rect") == 0) { + int x, y, w, h, r = 0; + char *t; + x = r_get_x(ctx, node, "svg:x"); + y = r_get_y(ctx, node, "svg:y"); + w = r_get_x(ctx, node, "svg:width"); + h = r_get_y(ctx, node, "svg:height"); + t = r_get_style(ctx, node, "draw:corner-radius"); + if (t) r = atof(t) * ctx->fact_x; + if (r_get_style(ctx, node, "draw:fill")) { + r_get_color(ctx, node, "draw:fill-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + _imp_draw_rect(ctx, drw_data, 1, x, y, w, h, r); + } + r_get_color(ctx, node, "svg:stroke-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + _imp_draw_rect(ctx, drw_data, 0, x, y, w, h, r); + r_text(ctx, drw_data, node); + } else if (strcmp(tag, "draw:ellipse") == 0 || strcmp(tag, "draw:circle") == 0) { + int sa, ea, fill = 0; + r_get_color(ctx, node, "svg:stroke-color", &fg); + sa = r_get_angle(node, "draw:start-angle", 0); + ea = r_get_angle(node, "draw:end-angle", 360); + if (ea > sa) ea = ea - sa; else ea = 360 + ea - sa; + t = r_get_style(ctx, node, "draw:fill"); + if (t) fill = 1; + ctx->drw->set_fg_color(drw_data, &fg); + ctx->drw->draw_arc(drw_data, + fill, + r_get_x(ctx, node, "svg:x"), r_get_y(ctx, node, "svg:y"), + r_get_x(ctx, node, "svg:width"), r_get_y(ctx, node, "svg:height"), + sa, ea + ); + } else if (strcmp(tag, "draw:polygon") == 0) { + // FIXME: + r_polygon(ctx, drw_data, node); + } else if (strcmp(tag, "draw:text-box") == 0) { + // FIXME: + r_text(ctx, drw_data, node); + } else if (strcmp(tag, "draw:image") == 0) { + char *name; + + name = iks_find_attrib(node, "xlink:href"); + if (!name) return; + if (name[0] == '#') ++name; + + _imp_draw_image(ctx, drw_data, + name, + r_get_x(ctx, node, "svg:x"), + r_get_y(ctx, node, "svg:y"), + r_get_x(ctx, node, "svg:width"), + r_get_y(ctx, node, "svg:height") + ); + } else { + printf("Unknown element: %s\n", tag); + } +} + +static void +render_page(ImpRenderCtx *ctx, void *drw_data) +{ + iks *x; + char *element; + int i; + + i = _imp_fill_back(ctx, drw_data, ctx->page->page); + element = iks_find_attrib(ctx->page->page, "draw:master-page-name"); + if (element) { + x = iks_find_with_attrib( + iks_find(ctx->page->doc->styles, "office:master-styles"), + "style:master-page", "style:name", element + ); + if (x) { + if (i == 0) _imp_fill_back(ctx, drw_data, x); + for (x = iks_first_tag(x); x; x = iks_next_tag(x)) { + if (iks_find_attrib(x, "presentation:class")) + continue; + render_object(ctx, drw_data, x); + } + } + } + for (x = iks_first_tag(ctx->page->page); x; x = iks_next_tag(x)) { + render_object(ctx, drw_data, x); + } +} + +static void +get_geometry(ImpRenderCtx *ctx) +{ + char *tmp; + iks *x, *y; + + tmp = iks_find_attrib(ctx->page->page, "draw:master-page-name"); + x = iks_find(ctx->page->doc->styles, "office:master-styles"); + y = iks_find_with_attrib(x, "style:master-page", "style:name", tmp); + x = iks_find(ctx->page->doc->styles, "office:automatic-styles"); + y = iks_find_with_attrib(x, "style:page-layout", "style:name", + iks_find_attrib(y, "style:page-layout-name")); + ctx->cm_w = atof(iks_find_attrib(iks_find(y, "style:page-layout-properties"), "fo:page-width")); + ctx->cm_h = atof(iks_find_attrib(iks_find(y, "style:page-layout-properties"), "fo:page-height")); +} + +int +_imp_oasis_load(ImpDoc *doc) +{ + ImpPage *page; + iks *x, *pres; + int i; + + pres = iks_find(iks_find(doc->content, "office:body"), "office:presentation"); + if (!pres) return IMP_NOTIMP; + + x = iks_find(pres, "draw:page"); + if (!x) return IMP_NOTIMP; + i = 0; + for (; x; x = iks_next_tag(x)) { + if (strcmp(iks_name(x), "draw:page") == 0) { + page = iks_stack_alloc(doc->stack, sizeof(ImpPage)); + if (!page) return IMP_NOMEM; + memset(page, 0, sizeof(ImpPage)); + page->page = x; + page->nr = ++i; + page->name = iks_find_attrib(x, "draw:name"); + page->doc = doc; + if (!doc->pages) doc->pages = page; + page->prev = doc->last_page; + if (doc->last_page) doc->last_page->next = page; + doc->last_page = page; + } + } + doc->nr_pages = i; + doc->get_geometry = get_geometry; + doc->render_page = render_page; + + return 0; +} diff --git a/backend/impress/f_oo13.c b/backend/impress/f_oo13.c new file mode 100644 index 00000000..7bfeeb53 --- /dev/null +++ b/backend/impress/f_oo13.c @@ -0,0 +1,181 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +// { "draw:text-box", r_text }, +// { "draw:connector", r_line }, +// { "draw:polyline", r_polyline }, +// { "draw:polygon", r_polygon }, +// { "draw:path", r_path }, + +static void +render_object(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + char *tag, *t; + ImpColor fg; + + tag = iks_name(node); + if (strcmp(tag, "draw:g") == 0) { + iks *x; + for (x = iks_first_tag(node); x; x = iks_next_tag(x)) { + render_object(ctx, drw_data, x); + } + } else if (strcmp(tag, "draw:line") == 0) { + int x1, y1, x2, y2; + r_get_color(ctx, node, "svg:stroke-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + x1 = r_get_x(ctx, node, "svg:x1"); + y1 = r_get_y(ctx, node, "svg:y1"); + x2 = r_get_x(ctx, node, "svg:x2"); + y2 = r_get_y(ctx, node, "svg:y2"); + ctx->drw->draw_line(drw_data, x1, y1, x2, y2); + if (r_get_style(ctx, node, "draw:marker-start")) { + _imp_draw_line_end(ctx, drw_data, 0, 0, x2, y2, x1, y1); + } + if (r_get_style(ctx, node, "draw:marker-end")) { + _imp_draw_line_end(ctx, drw_data, 0, 0, x1, y1, x2, y2); + } + } else if (strcmp(tag, "draw:rect") == 0) { + int x, y, w, h, r = 0; + char *t; + x = r_get_x(ctx, node, "svg:x"); + y = r_get_y(ctx, node, "svg:y"); + w = r_get_x(ctx, node, "svg:width"); + h = r_get_y(ctx, node, "svg:height"); + t = r_get_style(ctx, node, "draw:corner-radius"); + if (t) r = atof(t) * ctx->fact_x; + t = r_get_style(ctx, node, "draw:fill"); + if (t && strcmp(t, "none") != 0) { + r_get_color(ctx, node, "draw:fill-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + _imp_draw_rect(ctx, drw_data, 1, x, y, w, h, r); + } + r_get_color(ctx, node, "svg:stroke-color", &fg); + ctx->drw->set_fg_color(drw_data, &fg); + _imp_draw_rect(ctx, drw_data, 0, x, y, w, h, r); + r_text(ctx, drw_data, node); + } else if (strcmp(tag, "draw:ellipse") == 0 || strcmp(tag, "draw:circle") == 0) { + int sa, ea, fill = 0; + r_get_color(ctx, node, "svg:stroke-color", &fg); + sa = r_get_angle(node, "draw:start-angle", 0); + ea = r_get_angle(node, "draw:end-angle", 360); + if (ea > sa) ea = ea - sa; else ea = 360 + ea - sa; + t = r_get_style(ctx, node, "draw:fill"); + if (t) fill = 1; + ctx->drw->set_fg_color(drw_data, &fg); + ctx->drw->draw_arc(drw_data, + fill, + r_get_x(ctx, node, "svg:x"), r_get_y(ctx, node, "svg:y"), + r_get_x(ctx, node, "svg:width"), r_get_y(ctx, node, "svg:height"), + sa, ea + ); + } else if (strcmp(tag, "draw:polygon") == 0) { + // FIXME: + r_polygon(ctx, drw_data, node); + } else if (strcmp(tag, "draw:text-box") == 0) { + // FIXME: + r_text(ctx, drw_data, node); + } else if (strcmp(tag, "draw:image") == 0) { + char *name; + + name = iks_find_attrib(node, "xlink:href"); + if (!name) return; + if (name[0] == '#') ++name; + + _imp_draw_image(ctx, drw_data, + name, + r_get_x(ctx, node, "svg:x"), + r_get_y(ctx, node, "svg:y"), + r_get_x(ctx, node, "svg:width"), + r_get_y(ctx, node, "svg:height") + ); + } else { + printf("Unknown element: %s\n", tag); + } +} + +static void +render_page(ImpRenderCtx *ctx, void *drw_data) +{ + iks *x; + char *element; + int i; + + i = _imp_fill_back(ctx, drw_data, ctx->page->page); + element = iks_find_attrib(ctx->page->page, "draw:master-page-name"); + if (element) { + x = iks_find_with_attrib( + iks_find(ctx->page->doc->styles, "office:master-styles"), + "style:master-page", "style:name", element + ); + if (x) { + if (i == 0) _imp_fill_back(ctx, drw_data, x); + for (x = iks_first_tag(x); x; x = iks_next_tag(x)) { + if (iks_find_attrib(x, "presentation:class")) + continue; + render_object(ctx, drw_data, x); + } + } + } + for (x = iks_first_tag(ctx->page->page); x; x = iks_next_tag(x)) { + render_object(ctx, drw_data, x); + } +} + +static void +get_geometry(ImpRenderCtx *ctx) +{ + char *tmp; + iks *x, *y; + + tmp = iks_find_attrib(ctx->page->page, "draw:master-page-name"); + x = iks_find(ctx->page->doc->styles, "office:master-styles"); + y = iks_find_with_attrib(x, "style:master-page", "style:name", tmp); + x = iks_find(ctx->page->doc->styles, "office:automatic-styles"); + y = iks_find_with_attrib(x, "style:page-master", "style:name", + iks_find_attrib(y, "style:page-master-name")); + ctx->cm_w = atof(iks_find_attrib(iks_find(y, "style:properties"), "fo:page-width")); + ctx->cm_h = atof(iks_find_attrib(iks_find(y, "style:properties"), "fo:page-height")); +} + +int +_imp_oo13_load(ImpDoc *doc) +{ + ImpPage *page; + char *class; + iks *x; + int i; + + class = iks_find_attrib(doc->content, "office:class"); + if (iks_strcmp(class, "presentation") != 0) return IMP_NOTIMP; + + x = iks_find(iks_find(doc->content, "office:body"), "draw:page"); + if (!x) return IMP_NOTIMP; + i = 0; + for (; x; x = iks_next_tag(x)) { + if (strcmp(iks_name(x), "draw:page") == 0) { + page = iks_stack_alloc(doc->stack, sizeof(ImpPage)); + if (!page) return IMP_NOMEM; + memset(page, 0, sizeof(ImpPage)); + page->page = x; + page->nr = ++i; + page->name = iks_find_attrib(x, "draw:name"); + page->doc = doc; + if (!doc->pages) doc->pages = page; + page->prev = doc->last_page; + if (doc->last_page) doc->last_page->next = page; + doc->last_page = page; + } + } + doc->nr_pages = i; + doc->get_geometry = get_geometry; + doc->render_page = render_page; + + return 0; +} diff --git a/backend/impress/iksemel.c b/backend/impress/iksemel.c new file mode 100644 index 00000000..9908e132 --- /dev/null +++ b/backend/impress/iksemel.c @@ -0,0 +1,1882 @@ +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2003 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +/* minimum sax buffer size */ +#define SAX_BUFFER_MIN_SIZE 128 + +/* sax parser structure plus extra data of dom parser */ +#define DEFAULT_DOM_CHUNK_SIZE 256 + +/* sax parser structure plus extra data of stream parser */ +#define DEFAULT_STREAM_CHUNK_SIZE 256 + +/* iks structure, its data, child iks structures, for stream parsing */ +#define DEFAULT_IKS_CHUNK_SIZE 1024 + +/* iks structure, its data, child iks structures, for file parsing */ +#define DEFAULT_DOM_IKS_CHUNK_SIZE 2048 + +/* rule structure and from/to/id/ns strings */ +#define DEFAULT_RULE_CHUNK_SIZE 128 + +/* file is read by blocks with this size */ +#define FILE_IO_BUF_SIZE 4096 + +/* network receive buffer */ +#define NET_IO_BUF_SIZE 4096 +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2003 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#include <config.h> +#include <errno.h> + +#include "common.h" +#include "iksemel.h" + +/***** malloc wrapper *****/ + +static void *(*my_malloc_func)(size_t size); +static void (*my_free_func)(void *ptr); + +void * +iks_malloc (size_t size) +{ + if (my_malloc_func) + return my_malloc_func (size); + else + return malloc (size); +} + +void +iks_free (void *ptr) +{ + if (my_free_func) + my_free_func (ptr); + else + free (ptr); +} + +void +iks_set_mem_funcs (void *(*malloc_func)(size_t size), void (*free_func)(void *ptr)) +{ + my_malloc_func = malloc_func; + my_free_func = free_func; +} + +/***** NULL-safe Functions *****/ + +char * +iks_strdup (const char *src) +{ + if (src) return strdup(src); + return NULL; +} + +char * +iks_strcat (char *dest, const char *src) +{ + size_t len; + + if (!src) return dest; + + len = strlen (src); + memcpy (dest, src, len); + dest[len] = '\0'; + return dest + len; +} + +int +iks_strcmp (const char *a, const char *b) +{ + if (!a || !b) return -1; + return strcmp (a, b); +} + +int +iks_strcasecmp (const char *a, const char *b) +{ + if (!a || !b) return -1; + return strcasecmp (a, b); +} + +int +iks_strncmp (const char *a, const char *b, size_t n) +{ + if (!a || !b) return -1; + return strncmp (a, b, n); +} + +int +iks_strncasecmp (const char *a, const char *b, size_t n) +{ + if (!a || !b) return -1; + return strncasecmp (a, b, n); +} + +size_t +iks_strlen (const char *src) +{ + if (!src) return 0; + return strlen (src); +} + +/***** XML Escaping *****/ + +char * +iks_escape (ikstack *s, char *src, size_t len) +{ + char *ret; + int i, j, nlen; + + if (!src || !s) return NULL; + if (len == -1) len = strlen (src); + + nlen = len; + for (i=0; i<len; i++) { + switch (src[i]) { + case '&': nlen += 4; break; + case '<': nlen += 3; break; + case '>': nlen += 3; break; + case '\'': nlen += 5; break; + case '"': nlen += 5; break; + } + } + if (len == nlen) return src; + + ret = iks_stack_alloc (s, nlen + 1); + if (!ret) return NULL; + + for (i=j=0; i<len; i++) { + switch (src[i]) { + case '&': memcpy (&ret[j], "&", 5); j += 5; break; + case '\'': memcpy (&ret[j], "'", 6); j += 6; break; + case '"': memcpy (&ret[j], """, 6); j += 6; break; + case '<': memcpy (&ret[j], "<", 4); j += 4; break; + case '>': memcpy (&ret[j], ">", 4); j += 4; break; + default: ret[j++] = src[i]; + } + } + ret[j] = '\0'; + + return ret; +} + +char * +iks_unescape (ikstack *s, char *src, size_t len) +{ + int i,j; + char *ret; + + if (!s || !src) return NULL; + if (!strchr (src, '&')) return src; + if (len == -1) len = strlen (src); + + ret = iks_stack_alloc (s, len + 1); + if (!ret) return NULL; + + for (i=j=0; i<len; i++) { + if (src[i] == '&') { + i++; + if (strncmp (&src[i], "amp;", 4) == 0) { + ret[j] = '&'; + i += 3; + } else if (strncmp (&src[i], "quot;", 5) == 0) { + ret[j] = '"'; + i += 4; + } else if (strncmp (&src[i], "apos;", 5) == 0) { + ret[j] = '\''; + i += 4; + } else if (strncmp (&src[i], "lt;", 3) == 0) { + ret[j] = '<'; + i += 2; + } else if (strncmp (&src[i], "gt;", 3) == 0) { + ret[j] = '>'; + i += 2; + } else { + ret[j] = src[--i]; + } + } else { + ret[j] = src[i]; + } + j++; + } + ret[j] = '\0'; + + return ret; +} +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2004 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#include "common.h" +#include "iksemel.h" + +struct align_test { char a; double b; }; +#define DEFAULT_ALIGNMENT ((size_t) ((char *) &((struct align_test *) 0)->b - (char *) 0)) +#define ALIGN_MASK ( DEFAULT_ALIGNMENT - 1 ) +#define MIN_CHUNK_SIZE ( DEFAULT_ALIGNMENT * 8 ) +#define MIN_ALLOC_SIZE DEFAULT_ALIGNMENT +#define ALIGN(x) ( (x) + (DEFAULT_ALIGNMENT - ( (x) & ALIGN_MASK)) ) + +typedef struct ikschunk_struct { + struct ikschunk_struct *next; + size_t size; + size_t used; + size_t last; + char data[4]; +} ikschunk; + +struct ikstack_struct { + size_t allocated; + ikschunk *meta; + ikschunk *data; +}; + +static ikschunk * +find_space (ikstack *s, ikschunk *c, size_t size) +{ + /* FIXME: dont use *2 after over allocated chunks */ + while (1) { + if (c->size - c->used >= size) return c; + if (!c->next) { + if ((c->size * 2) > size) size = c->size * 2; + c->next = iks_malloc (sizeof (ikschunk) + size); + if (!c->next) return NULL; + s->allocated += sizeof (ikschunk) + size; + c = c->next; + c->next = NULL; + c->size = size; + c->used = 0; + c->last = (size_t) -1; + return c; + } + c = c->next; + } + return NULL; +} + +ikstack * +iks_stack_new (size_t meta_chunk, size_t data_chunk) +{ + ikstack *s; + size_t len; + + if (meta_chunk < MIN_CHUNK_SIZE) meta_chunk = MIN_CHUNK_SIZE; + if (meta_chunk & ALIGN_MASK) meta_chunk = ALIGN (meta_chunk); + if (data_chunk < MIN_CHUNK_SIZE) data_chunk = MIN_CHUNK_SIZE; + if (data_chunk & ALIGN_MASK) data_chunk = ALIGN (data_chunk); + + len = sizeof (ikstack) + meta_chunk + data_chunk + (sizeof (ikschunk) * 2); + s = iks_malloc (len); + if (!s) return NULL; + s->allocated = len; + s->meta = (ikschunk *) ((char *) s + sizeof (ikstack)); + s->meta->next = NULL; + s->meta->size = meta_chunk; + s->meta->used = 0; + s->meta->last = (size_t) -1; + s->data = (ikschunk *) ((char *) s + sizeof (ikstack) + sizeof (ikschunk) + meta_chunk); + s->data->next = NULL; + s->data->size = data_chunk; + s->data->used = 0; + s->data->last = (size_t) -1; + return s; +} + +void * +iks_stack_alloc (ikstack *s, size_t size) +{ + ikschunk *c; + void *mem; + + if (size < MIN_ALLOC_SIZE) size = MIN_ALLOC_SIZE; + if (size & ALIGN_MASK) size = ALIGN (size); + + c = find_space (s, s->meta, size); + if (!c) return NULL; + mem = c->data + c->used; + c->used += size; + return mem; +} + +char * +iks_stack_strdup (ikstack *s, const char *src, size_t len) +{ + ikschunk *c; + char *dest; + + if (!src) return NULL; + if (0 == len) len = strlen (src); + + c = find_space (s, s->data, len + 1); + if (!c) return NULL; + dest = c->data + c->used; + c->last = c->used; + c->used += len + 1; + memcpy (dest, src, len); + dest[len] = '\0'; + return dest; +} + +char * +iks_stack_strcat (ikstack *s, char *old, size_t old_len, const char *src, size_t src_len) +{ + char *ret; + ikschunk *c; + + if (!old) { + return iks_stack_strdup (s, src, src_len); + } + if (0 == old_len) old_len = strlen (old); + if (0 == src_len) src_len = strlen (src); + + for (c = s->data; c; c = c->next) { + if (c->data + c->last == old) break; + } + if (!c) { + c = find_space (s, s->data, old_len + src_len + 1); + if (!c) return NULL; + ret = c->data + c->used; + c->last = c->used; + c->used += old_len + src_len + 1; + memcpy (ret, old, old_len); + memcpy (ret + old_len, src, src_len); + ret[old_len + src_len] = '\0'; + return ret; + } + + if (c->size - c->used > src_len) { + ret = c->data + c->last; + memcpy (ret + old_len, src, src_len); + c->used += src_len; + ret[old_len + src_len] = '\0'; + } else { + /* FIXME: decrease c->used before moving string to new place */ + c = find_space (s, s->data, old_len + src_len + 1); + if (!c) return NULL; + c->last = c->used; + ret = c->data + c->used; + memcpy (ret, old, old_len); + c->used += old_len; + memcpy (c->data + c->used, src, src_len); + c->used += src_len; + c->data[c->used] = '\0'; + c->used++; + } + return ret; +} + +void +iks_stack_stat (ikstack *s, size_t *allocated, size_t *used) +{ + ikschunk *c; + + if (allocated) { + *allocated = s->allocated; + } + if (used) { + *used = 0; + for (c = s->meta; c; c = c->next) { + (*used) += c->used; + } + for (c = s->data; c; c = c->next) { + (*used) += c->used; + } + } +} + +void +iks_stack_delete (ikstack *s) +{ + ikschunk *c, *tmp; + + c = s->meta->next; + while (c) { + tmp = c->next; + iks_free (c); + c = tmp; + } + c = s->data->next; + while (c) { + tmp = c->next; + iks_free (c); + c = tmp; + } + iks_free (s); +} +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2004 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#include "common.h" +#include "iksemel.h" + +enum cons_e { + C_CDATA = 0, + C_TAG_START, + C_TAG, + C_TAG_END, + C_ATTRIBUTE, + C_ATTRIBUTE_1, + C_ATTRIBUTE_2, + C_VALUE, + C_VALUE_APOS, + C_VALUE_QUOT, + C_WHITESPACE, + C_ENTITY, + C_COMMENT, + C_COMMENT_1, + C_COMMENT_2, + C_COMMENT_3, + C_MARKUP, + C_MARKUP_1, + C_SECT, + C_SECT_CDATA, + C_SECT_CDATA_1, + C_SECT_CDATA_2, + C_SECT_CDATA_3, + C_SECT_CDATA_4, + C_SECT_CDATA_C, + C_SECT_CDATA_E, + C_SECT_CDATA_E2, + C_PI +}; + +/* if you add a variable here, dont forget changing iks_parser_reset */ +struct iksparser_struct { + ikstack *s; + void *user_data; + iksTagHook *tagHook; + iksCDataHook *cdataHook; + iksDeleteHook *deleteHook; + /* parser context */ + char *stack; + size_t stack_pos; + size_t stack_max; + + enum cons_e context; + enum cons_e oldcontext; + + char *tag_name; + enum ikstagtype tagtype; + + unsigned int attmax; + unsigned int attcur; + int attflag; + char **atts; + int valflag; + + unsigned int entpos; + char entity[8]; + + unsigned long nr_bytes; + unsigned long nr_lines; + + int uni_max; + int uni_len; +}; + +iksparser * +iks_sax_new (void *user_data, iksTagHook *tagHook, iksCDataHook *cdataHook) +{ + iksparser *prs; + + prs = iks_malloc (sizeof (iksparser)); + if (NULL == prs) return NULL; + memset (prs, 0, sizeof (iksparser)); + prs->user_data = user_data; + prs->tagHook = tagHook; + prs->cdataHook = cdataHook; + return prs; +} + +iksparser * +iks_sax_extend (ikstack *s, void *user_data, iksTagHook *tagHook, iksCDataHook *cdataHook, iksDeleteHook *deleteHook) +{ + iksparser *prs; + + prs = iks_stack_alloc (s, sizeof (iksparser)); + if (NULL == prs) return NULL; + memset (prs, 0, sizeof (iksparser)); + prs->s = s; + prs->user_data = user_data; + prs->tagHook = tagHook; + prs->cdataHook = cdataHook; + prs->deleteHook = deleteHook; + return prs; +} + +ikstack * +iks_parser_stack (iksparser *prs) +{ + return prs->s; +} + +void * +iks_user_data (iksparser *prs) +{ + return prs->user_data; +} + +unsigned long +iks_nr_bytes (iksparser *prs) +{ + return prs->nr_bytes; +} + +unsigned long +iks_nr_lines (iksparser *prs) +{ + return prs->nr_lines; +} + +#define IS_WHITESPACE(x) ' ' == (x) || '\t' == (x) || '\r' == (x) || '\n' == (x) +#define NOT_WHITESPACE(x) ' ' != (x) && '\t' != (x) && '\r' != (x) && '\n' != (x) + +static int +stack_init (iksparser *prs) +{ + prs->stack = iks_malloc (128); + if (!prs->stack) return 0; + prs->stack_max = 128; + prs->stack_pos = 0; + return 1; +} + +static int +stack_expand (iksparser *prs, int len) +{ + size_t need; + off_t diff; + char *tmp; + need = len - (prs->stack_max - prs->stack_pos); + if (need < prs->stack_max) { + need = prs->stack_max * 2; + } else { + need = prs->stack_max + (need * 1.2); + } + tmp = iks_malloc (need); + if (!tmp) return 0; + diff = tmp - prs->stack; + memcpy (tmp, prs->stack, prs->stack_max); + iks_free (prs->stack); + prs->stack = tmp; + prs->stack_max = need; + prs->tag_name += diff; + if (prs->attflag != 0) { + int i = 0; + while (i < (prs->attmax * 2)) { + if (prs->atts[i]) prs->atts[i] += diff; + i++; + } + } + return 1; +} + +#define STACK_INIT \ + if (NULL == prs->stack && 0 == stack_init (prs)) return IKS_NOMEM + +#define STACK_PUSH_START (prs->stack + prs->stack_pos) + +#define STACK_PUSH(buf,len) \ +{ \ + char *sbuf = (buf); \ + size_t slen = (len); \ + if (prs->stack_max - prs->stack_pos <= slen) { \ + if (0 == stack_expand (prs, slen)) return IKS_NOMEM; \ + } \ + memcpy (prs->stack + prs->stack_pos, sbuf, slen); \ + prs->stack_pos += slen; \ +} + +#define STACK_PUSH_END \ +{ \ + if (prs->stack_pos >= prs->stack_max) { \ + if (0 == stack_expand (prs, 1)) return IKS_NOMEM; \ + } \ + prs->stack[prs->stack_pos] = '\0'; \ + prs->stack_pos++; \ +} + +static enum ikserror +sax_core (iksparser *prs, char *buf, int len) +{ + enum ikserror err; + int pos = 0, old = 0, re, stack_old = -1; + unsigned char c; + + while (pos < len) { + re = 0; + c = buf[pos]; + if (0 == c || 0xFE == c || 0xFF == c) return IKS_BADXML; + if (prs->uni_max) { + if ((c & 0xC0) != 0x80) return IKS_BADXML; + prs->uni_len++; + if (prs->uni_len == prs->uni_max) prs->uni_max = 0; + goto cont; + } else { + if (c & 0x80) { + unsigned char mask; + if ((c & 0x60) == 0x40) { + prs->uni_max = 2; + mask = 0x1F; + } else if ((c & 0x70) == 0x60) { + prs->uni_max = 3; + mask = 0x0F; + } else if ((c & 0x78) == 0x70) { + prs->uni_max = 4; + mask = 0x07; + } else if ((c & 0x7C) == 0x78) { + prs->uni_max = 5; + mask = 0x03; + } else if ((c & 0x7E) == 0x7C) { + prs->uni_max = 6; + mask = 0x01; + } else { + return IKS_BADXML; + } + if ((c & mask) == 0) return IKS_BADXML; + prs->uni_len = 1; + if (stack_old == -1) stack_old = pos; + goto cont; + } + } + + switch (prs->context) { + case C_CDATA: + if ('&' == c) { + if (old < pos && prs->cdataHook) { + err = prs->cdataHook (prs->user_data, &buf[old], pos - old); + if (IKS_OK != err) return err; + } + prs->context = C_ENTITY; + prs->entpos = 0; + break; + } + if ('<' == c) { + if (old < pos && prs->cdataHook) { + err = prs->cdataHook (prs->user_data, &buf[old], pos - old); + if (IKS_OK != err) return err; + } + STACK_INIT; + prs->tag_name = STACK_PUSH_START; + if (!prs->tag_name) return IKS_NOMEM; + prs->context = C_TAG_START; + } + break; + + case C_TAG_START: + prs->context = C_TAG; + if ('/' == c) { + prs->tagtype = IKS_CLOSE; + break; + } + if ('?' == c) { + prs->context = C_PI; + break; + } + if ('!' == c) { + prs->context = C_MARKUP; + break; + } + prs->tagtype = IKS_OPEN; + stack_old = pos; + break; + + case C_TAG: + if (IS_WHITESPACE(c)) { + if (IKS_CLOSE == prs->tagtype) + prs->oldcontext = C_TAG_END; + else + prs->oldcontext = C_ATTRIBUTE; + prs->context = C_WHITESPACE; + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + break; + } + if ('/' == c) { + if (IKS_CLOSE == prs->tagtype) return IKS_BADXML; + prs->tagtype = IKS_SINGLE; + prs->context = C_TAG_END; + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + break; + } + if ('>' == c) { + prs->context = C_TAG_END; + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + re = 1; + } + if (stack_old == -1) stack_old = pos; + break; + + case C_TAG_END: + if (c != '>') return IKS_BADXML; + if (prs->tagHook) { + char **tmp; + if (prs->attcur == 0) tmp = NULL; else tmp = prs->atts; + err = prs->tagHook (prs->user_data, prs->tag_name, tmp, prs->tagtype); + if (IKS_OK != err) return err; + } + prs->stack_pos = 0; + stack_old = -1; + prs->attcur = 0; + prs->attflag = 0; + prs->context = C_CDATA; + old = pos + 1; + break; + + case C_ATTRIBUTE: + if ('/' == c) { + prs->tagtype = IKS_SINGLE; + prs->context = C_TAG_END; + break; + } + if ('>' == c) { + prs->context = C_TAG_END; + re = 1; + break; + } + if (!prs->atts) { + prs->attmax = 12; + prs->atts = iks_malloc (sizeof(char *) * 2 * 12); + if (!prs->atts) return IKS_NOMEM; + memset (prs->atts, 0, sizeof(char *) * 2 * 12); + prs->attcur = 0; + } else { + if (prs->attcur >= (prs->attmax * 2)) { + void *tmp; + prs->attmax += 12; + tmp = iks_malloc (sizeof(char *) * (2 * prs->attmax + 1)); + if (!tmp) return IKS_NOMEM; + memset (tmp, 0, sizeof(char *) * (2 * prs->attmax + 1)); + memcpy (tmp, prs->atts, sizeof(char *) * prs->attcur); + iks_free (prs->atts); + prs->atts = tmp; + } + } + prs->attflag = 1; + prs->atts[prs->attcur] = STACK_PUSH_START; + stack_old = pos; + prs->context = C_ATTRIBUTE_1; + break; + + case C_ATTRIBUTE_1: + if ('=' == c) { + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + prs->context = C_VALUE; + break; + } + if (stack_old == -1) stack_old = pos; + break; + + case C_ATTRIBUTE_2: + if ('/' == c) { + prs->tagtype = IKS_SINGLE; + prs->atts[prs->attcur] = NULL; + prs->context = C_TAG_END; + break; + } + if ('>' == c) { + prs->atts[prs->attcur] = NULL; + prs->context = C_TAG_END; + re = 1; + break; + } + prs->context = C_ATTRIBUTE; + re = 1; + break; + + case C_VALUE: + prs->atts[prs->attcur + 1] = STACK_PUSH_START; + if ('\'' == c) { + prs->context = C_VALUE_APOS; + break; + } + if ('"' == c) { + prs->context = C_VALUE_QUOT; + break; + } + return IKS_BADXML; + + case C_VALUE_APOS: + if ('\'' == c) { + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + prs->oldcontext = C_ATTRIBUTE_2; + prs->context = C_WHITESPACE; + prs->attcur += 2; + } + if (stack_old == -1) stack_old = pos; + break; + + case C_VALUE_QUOT: + if ('"' == c) { + if (stack_old != -1) STACK_PUSH (buf + stack_old, pos - stack_old); + stack_old = -1; + STACK_PUSH_END; + prs->oldcontext = C_ATTRIBUTE_2; + prs->context = C_WHITESPACE; + prs->attcur += 2; + } + if (stack_old == -1) stack_old = pos; + break; + + case C_WHITESPACE: + if (NOT_WHITESPACE(c)) { + prs->context = prs->oldcontext; + re = 1; + } + break; + + case C_ENTITY: + if (';' == c) { + char hede[2]; + char t = '?'; + prs->entity[prs->entpos] = '\0'; + if (strcmp(prs->entity, "amp") == 0) + t = '&'; + else if (strcmp(prs->entity, "quot") == 0) + t = '"'; + else if (strcmp(prs->entity, "apos") == 0) + t = '\''; + else if (strcmp(prs->entity, "lt") == 0) + t = '<'; + else if (strcmp(prs->entity, "gt") == 0) + t = '>'; + old = pos + 1; + hede[0] = t; + if (prs->cdataHook) { + err = prs->cdataHook (prs->user_data, &hede[0], 1); + if (IKS_OK != err) return err; + } + prs->context = C_CDATA; + } else { + prs->entity[prs->entpos++] = buf[pos]; + if (prs->entpos > 7) return IKS_BADXML; + } + break; + + case C_COMMENT: + if ('-' != c) return IKS_BADXML; + prs->context = C_COMMENT_1; + break; + + case C_COMMENT_1: + if ('-' == c) prs->context = C_COMMENT_2; + break; + + case C_COMMENT_2: + if ('-' == c) + prs->context = C_COMMENT_3; + else + prs->context = C_COMMENT_1; + break; + + case C_COMMENT_3: + if ('>' != c) return IKS_BADXML; + prs->context = C_CDATA; + old = pos + 1; + break; + + case C_MARKUP: + if ('[' == c) { + prs->context = C_SECT; + break; + } + if ('-' == c) { + prs->context = C_COMMENT; + break; + } + prs->context = C_MARKUP_1; + + case C_MARKUP_1: + if ('>' == c) { + old = pos + 1; + prs->context = C_CDATA; + } + break; + + case C_SECT: + if ('C' == c) { + prs->context = C_SECT_CDATA; + break; + } + return IKS_BADXML; + + case C_SECT_CDATA: + if ('D' != c) return IKS_BADXML; + prs->context = C_SECT_CDATA_1; + break; + + case C_SECT_CDATA_1: + if ('A' != c) return IKS_BADXML; + prs->context = C_SECT_CDATA_2; + break; + + case C_SECT_CDATA_2: + if ('T' != c) return IKS_BADXML; + prs->context = C_SECT_CDATA_3; + break; + + case C_SECT_CDATA_3: + if ('A' != c) return IKS_BADXML; + prs->context = C_SECT_CDATA_4; + break; + + case C_SECT_CDATA_4: + if ('[' != c) return IKS_BADXML; + old = pos + 1; + prs->context = C_SECT_CDATA_C; + break; + + case C_SECT_CDATA_C: + if (']' == c) { + prs->context = C_SECT_CDATA_E; + if (prs->cdataHook && old < pos) { + err = prs->cdataHook (prs->user_data, &buf[old], pos - old); + if (IKS_OK != err) return err; + } + } + break; + + case C_SECT_CDATA_E: + if (']' == c) { + prs->context = C_SECT_CDATA_E2; + } else { + if (prs->cdataHook) { + err = prs->cdataHook (prs->user_data, "]", 1); + if (IKS_OK != err) return err; + } + old = pos; + prs->context = C_SECT_CDATA_C; + } + break; + + case C_SECT_CDATA_E2: + if ('>' == c) { + old = pos + 1; + prs->context = C_CDATA; + } else { + if (prs->cdataHook) { + err = prs->cdataHook (prs->user_data, "]]", 2); + if (IKS_OK != err) return err; + } + old = pos; + prs->context = C_SECT_CDATA_C; + } + break; + + case C_PI: + old = pos + 1; + if ('>' == c) prs->context = C_CDATA; + break; + } +cont: + if (0 == re) { + pos++; + prs->nr_bytes++; + if ('\n' == c) prs->nr_lines++; + } + } + + if (stack_old != -1) + STACK_PUSH (buf + stack_old, pos - stack_old); + + err = IKS_OK; + if (prs->cdataHook && (prs->context == C_CDATA || prs->context == C_SECT_CDATA_C) && old < pos) + err = prs->cdataHook (prs->user_data, &buf[old], pos - old); + return err; +} + +int +iks_parse (iksparser *prs, const char *data, size_t len, int finish) +{ + if (!data) return IKS_OK; + if (len == 0) len = strlen (data); + return sax_core (prs, (char *) data, len); +} + +void +iks_parser_reset (iksparser *prs) +{ + if (prs->deleteHook) prs->deleteHook (prs->user_data); + prs->stack_pos = 0; + prs->context = 0; + prs->oldcontext = 0; + prs->tagtype = 0; + prs->attcur = 0; + prs->attflag = 0; + prs->valflag = 0; + prs->entpos = 0; + prs->nr_bytes = 0; + prs->nr_lines = 0; + prs->uni_max = 0; + prs->uni_len = 0; +} + +void +iks_parser_delete (iksparser *prs) +{ + if (prs->deleteHook) prs->deleteHook (prs->user_data); + if (prs->stack) iks_free (prs->stack); + if (prs->atts) iks_free (prs->atts); + if (prs->s) iks_stack_delete (prs->s); else iks_free (prs); +} +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2004 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#include "common.h" +#include "iksemel.h" + +#define IKS_COMMON \ + struct iks_struct *next, *prev; \ + struct iks_struct *parent; \ + enum ikstype type; \ + ikstack *s + +struct iks_struct { + IKS_COMMON; +}; + +struct iks_tag { + IKS_COMMON; + struct iks_struct *children, *last_child; + struct iks_struct *attribs, *last_attrib; + char *name; +}; + +#define IKS_TAG_NAME(x) ((struct iks_tag *) (x) )->name +#define IKS_TAG_CHILDREN(x) ((struct iks_tag *) (x) )->children +#define IKS_TAG_LAST_CHILD(x) ((struct iks_tag *) (x) )->last_child +#define IKS_TAG_ATTRIBS(x) ((struct iks_tag *) (x) )->attribs +#define IKS_TAG_LAST_ATTRIB(x) ((struct iks_tag *) (x) )->last_attrib + +struct iks_cdata { + IKS_COMMON; + char *cdata; + size_t len; +}; + +#define IKS_CDATA_CDATA(x) ((struct iks_cdata *) (x) )->cdata +#define IKS_CDATA_LEN(x) ((struct iks_cdata *) (x) )->len + +struct iks_attrib { + IKS_COMMON; + char *name; + char *value; +}; + +#define IKS_ATTRIB_NAME(x) ((struct iks_attrib *) (x) )->name +#define IKS_ATTRIB_VALUE(x) ((struct iks_attrib *) (x) )->value + +/***** Node Creating & Deleting *****/ + +iks * +iks_new (const char *name) +{ + ikstack *s; + iks *x; + + s = iks_stack_new (sizeof (struct iks_tag) * 6, 256); + if (!s) return NULL; + x = iks_new_within (name, s); + if (!x) { + iks_stack_delete (s); + return NULL; + } + return x; +} + +iks * +iks_new_within (const char *name, ikstack *s) +{ + iks *x; + size_t len; + + if (name) len = sizeof (struct iks_tag); else len = sizeof (struct iks_cdata); + x = iks_stack_alloc (s, len); + if (!x) return NULL; + memset (x, 0, len); + x->s = s; + x->type = IKS_TAG; + if (name) { + IKS_TAG_NAME (x) = iks_stack_strdup (s, name, 0); + if (!IKS_TAG_NAME (x)) return NULL; + } + return x; +} + +iks * +iks_insert (iks *x, const char *name) +{ + iks *y; + + if (!x) return NULL; + + y = iks_new_within (name, x->s); + if (!y) return NULL; + y->parent = x; + if (!IKS_TAG_CHILDREN (x)) IKS_TAG_CHILDREN (x) = y; + if (IKS_TAG_LAST_CHILD (x)) { + IKS_TAG_LAST_CHILD (x)->next = y; + y->prev = IKS_TAG_LAST_CHILD (x); + } + IKS_TAG_LAST_CHILD (x) = y; + return y; +} + +iks * +iks_insert_cdata (iks *x, const char *data, size_t len) +{ + iks *y; + + if(!x || !data) return NULL; + if(len == 0) len = strlen (data); + + y = IKS_TAG_LAST_CHILD (x); + if (y && y->type == IKS_CDATA) { + IKS_CDATA_CDATA (y) = iks_stack_strcat (x->s, IKS_CDATA_CDATA (y), IKS_CDATA_LEN (y), data, len); + IKS_CDATA_LEN (y) += len; + } else { + y = iks_insert (x, NULL); + if (!y) return NULL; + y->type = IKS_CDATA; + IKS_CDATA_CDATA (y) = iks_stack_strdup (x->s, data, len); + if (!IKS_CDATA_CDATA (y)) return NULL; + IKS_CDATA_LEN (y) = len; + } + return y; +} + +iks * +iks_insert_attrib (iks *x, const char *name, const char *value) +{ + iks *y; + size_t len; + + if (!x) return NULL; + + y = IKS_TAG_ATTRIBS (x); + while (y) { + if (strcmp (name, IKS_ATTRIB_NAME (y)) == 0) break; + y = y->next; + } + if (NULL == y) { + if (!value) return NULL; + y = iks_stack_alloc (x->s, sizeof (struct iks_attrib)); + if (!y) return NULL; + memset (y, 0, sizeof (struct iks_attrib)); + y->type = IKS_ATTRIBUTE; + IKS_ATTRIB_NAME (y) = iks_stack_strdup (x->s, name, 0); + y->parent = x; + if (!IKS_TAG_ATTRIBS (x)) IKS_TAG_ATTRIBS (x) = y; + if (IKS_TAG_LAST_ATTRIB (x)) { + IKS_TAG_LAST_ATTRIB (x)->next = y; + y->prev = IKS_TAG_LAST_ATTRIB (x); + } + IKS_TAG_LAST_ATTRIB (x) = y; + } + + if (value) { + len = strlen (value); + IKS_ATTRIB_VALUE (y) = iks_stack_strdup (x->s, value, len); + if (!IKS_ATTRIB_VALUE (y)) return NULL; + } else { + if (y->next) y->next->prev = y->prev; + if (y->prev) y->prev->next = y->next; + if (IKS_TAG_ATTRIBS (x) == y) IKS_TAG_ATTRIBS (x) = y->next; + if (IKS_TAG_LAST_ATTRIB (x) == y) IKS_TAG_LAST_ATTRIB (x) = y->prev; + } + + return y; +} + +iks * +iks_insert_node (iks *x, iks *y) +{ + y->parent = x; + if (!IKS_TAG_CHILDREN (x)) IKS_TAG_CHILDREN (x) = y; + if (IKS_TAG_LAST_CHILD (x)) { + IKS_TAG_LAST_CHILD (x)->next = y; + y->prev = IKS_TAG_LAST_CHILD (x); + } + IKS_TAG_LAST_CHILD (x) = y; + return y; +} + +void +iks_hide (iks *x) +{ + iks *y; + + if (!x) return; + + if (x->prev) x->prev->next = x->next; + if (x->next) x->next->prev = x->prev; + y = x->parent; + if (y) { + if (IKS_TAG_CHILDREN (y) == x) IKS_TAG_CHILDREN (y) = x->next; + if (IKS_TAG_LAST_CHILD (y) == x) IKS_TAG_LAST_CHILD (y) = x->prev; + } +} + +void +iks_delete (iks *x) +{ + if (x) iks_stack_delete (x->s); +} + +/***** Node Traversing *****/ + +iks * +iks_next (iks *x) +{ + if (x) return x->next; + return NULL; +} + +iks * +iks_next_tag (iks *x) +{ + if (x) { + while (1) { + x = x->next; + if (NULL == x) break; + if (IKS_TAG == x->type) return x; + } + } + return NULL; +} + +iks * +iks_prev (iks *x) +{ + if (x) return x->prev; + return NULL; +} + +iks * +iks_prev_tag (iks *x) +{ + if (x) { + while (1) { + x = x->prev; + if (NULL == x) break; + if (IKS_TAG == x->type) return x; + } + } + return NULL; +} + +iks * +iks_parent (iks *x) +{ + if (x) return x->parent; + return NULL; +} + +iks * +iks_root (iks *x) +{ + if (x) { + while (x->parent) + x = x->parent; + } + return x; +} + +iks * +iks_child (iks *x) +{ + if (x) return IKS_TAG_CHILDREN (x); + return NULL; +} + +iks * +iks_first_tag (iks *x) +{ + if (x) { + x = IKS_TAG_CHILDREN (x); + while (x) { + if (IKS_TAG == x->type) return x; + x = x->next; + } + } + return NULL; +} + +iks * +iks_attrib (iks *x) +{ + if (x) return IKS_TAG_ATTRIBS (x); + return NULL; +} + +iks * +iks_find (iks *x, const char *name) +{ + iks *y; + + if (!x) return NULL; + y = IKS_TAG_CHILDREN (x); + while (y) { + if (IKS_TAG == y->type && IKS_TAG_NAME (y) && strcmp (IKS_TAG_NAME (y), name) == 0) return y; + y = y->next; + } + return NULL; +} + +char * +iks_find_cdata (iks *x, const char *name) +{ + iks *y; + + y = iks_find (x, name); + if (!y) return NULL; + y = IKS_TAG_CHILDREN (y); + if (!y || IKS_CDATA != y->type) return NULL; + return IKS_CDATA_CDATA (y); +} + +char * +iks_find_attrib (iks *x, const char *name) +{ + iks *y; + + if (!x) return NULL; + + y = IKS_TAG_ATTRIBS (x); + while (y) { + if (IKS_ATTRIB_NAME (y) && strcmp (IKS_ATTRIB_NAME (y), name) == 0) + return IKS_ATTRIB_VALUE (y); + y = y->next; + } + return NULL; +} + +iks * +iks_find_with_attrib (iks *x, const char *tagname, const char *attrname, const char *value) +{ + iks *y; + + if (NULL == x) return NULL; + + if (tagname) { + for (y = IKS_TAG_CHILDREN (x); y; y = y->next) { + if (IKS_TAG == y->type + && strcmp (IKS_TAG_NAME (y), tagname) == 0 + && iks_strcmp (iks_find_attrib (y, attrname), value) == 0) { + return y; + } + } + } else { + for (y = IKS_TAG_CHILDREN (x); y; y = y->next) { + if (IKS_TAG == y->type + && iks_strcmp (iks_find_attrib (y, attrname), value) == 0) { + return y; + } + } + } + return NULL; +} + +/***** Node Information *****/ + +ikstack * +iks_stack (iks *x) +{ + if (x) return x->s; + return NULL; +} + +enum ikstype +iks_type (iks *x) +{ + if (x) return x->type; + return IKS_NONE; +} + +char * +iks_name (iks *x) +{ + if (x) { + if (IKS_TAG == x->type) + return IKS_TAG_NAME (x); + else + return IKS_ATTRIB_NAME (x); + } + return NULL; +} + +char * +iks_cdata (iks *x) +{ + if (x) { + if (IKS_CDATA == x->type) + return IKS_CDATA_CDATA (x); + else + return IKS_ATTRIB_VALUE (x); + } + return NULL; +} + +size_t +iks_cdata_size (iks *x) +{ + if (x) return IKS_CDATA_LEN (x); + return 0; +} + +int +iks_has_children (iks *x) +{ + if (x && IKS_TAG == x->type && IKS_TAG_CHILDREN (x)) return 1; + return 0; +} + +int +iks_has_attribs (iks *x) +{ + if (x && IKS_TAG == x->type && IKS_TAG_ATTRIBS (x)) return 1; + return 0; +} + +/***** Serializing *****/ + +static size_t +escape_size (char *src, size_t len) +{ + size_t sz; + char c; + int i; + + sz = 0; + for (i = 0; i < len; i++) { + c = src[i]; + switch (c) { + case '&': sz += 5; break; + case '\'': sz += 6; break; + case '"': sz += 6; break; + case '<': sz += 4; break; + case '>': sz += 4; break; + default: sz++; break; + } + } + return sz; +} + +static char * +my_strcat (char *dest, char *src, size_t len) +{ + if (0 == len) len = strlen (src); + memcpy (dest, src, len); + return dest + len; +} + +static char * +escape (char *dest, char *src, size_t len) +{ + char c; + int i; + int j = 0; + + for (i = 0; i < len; i++) { + c = src[i]; + if ('&' == c || '<' == c || '>' == c || '\'' == c || '"' == c) { + if (i - j > 0) dest = my_strcat (dest, src + j, i - j); + j = i + 1; + switch (c) { + case '&': dest = my_strcat (dest, "&", 5); break; + case '\'': dest = my_strcat (dest, "'", 6); break; + case '"': dest = my_strcat (dest, """, 6); break; + case '<': dest = my_strcat (dest, "<", 4); break; + case '>': dest = my_strcat (dest, ">", 4); break; + } + } + } + if (i - j > 0) dest = my_strcat (dest, src + j, i - j); + return dest; +} + +char * +iks_string (ikstack *s, iks *x) +{ + size_t size; + int level, dir; + iks *y, *z; + char *ret, *t; + + if (!x) return NULL; + + if (x->type == IKS_CDATA) { + if (s) { + return iks_stack_strdup (s, IKS_CDATA_CDATA (x), IKS_CDATA_LEN (x)); + } else { + ret = iks_malloc (IKS_CDATA_LEN (x)); + memcpy (ret, IKS_CDATA_CDATA (x), IKS_CDATA_LEN (x)); + return ret; + } + } + + size = 0; + level = 0; + dir = 0; + y = x; + while (1) { + if (dir==0) { + if (y->type == IKS_TAG) { + size++; + size += strlen (IKS_TAG_NAME (y)); + for (z = IKS_TAG_ATTRIBS (y); z; z = z->next) { + size += 4 + strlen (IKS_ATTRIB_NAME (z)) + + escape_size (IKS_ATTRIB_VALUE (z), strlen (IKS_ATTRIB_VALUE (z))); + } + if (IKS_TAG_CHILDREN (y)) { + size++; + y = IKS_TAG_CHILDREN (y); + level++; + continue; + } else { + size += 2; + } + } else { + size += escape_size (IKS_CDATA_CDATA (y), IKS_CDATA_LEN (y)); + } + } + z = y->next; + if (z) { + if (0 == level) { + if (IKS_TAG_CHILDREN (y)) size += 3 + strlen (IKS_TAG_NAME (y)); + break; + } + y = z; + dir = 0; + } else { + y = y->parent; + level--; + if (level >= 0) size += 3 + strlen (IKS_TAG_NAME (y)); + if (level < 1) break; + dir = 1; + } + } + + if (s) ret = iks_stack_alloc (s, size + 1); + else ret = iks_malloc (size + 1); + + if (!ret) return NULL; + + t = ret; + level = 0; + dir = 0; + while (1) { + if (dir==0) { + if (x->type == IKS_TAG) { + *t++ = '<'; + t = my_strcat (t, IKS_TAG_NAME (x), 0); + y = IKS_TAG_ATTRIBS (x); + while (y) { + *t++ = ' '; + t = my_strcat (t, IKS_ATTRIB_NAME (y), 0); + *t++ = '='; + *t++ = '\''; + t = escape (t, IKS_ATTRIB_VALUE (y), strlen (IKS_ATTRIB_VALUE (y))); + *t++ = '\''; + y = y->next; + } + if (IKS_TAG_CHILDREN (x)) { + *t++ = '>'; + x = IKS_TAG_CHILDREN (x); + level++; + continue; + } else { + *t++ = '/'; + *t++ = '>'; + } + } else { + t = escape (t, IKS_CDATA_CDATA (x), IKS_CDATA_LEN (x)); + } + } + y = x->next; + if (y) { + if (0 == level) { + if (IKS_TAG_CHILDREN (x)) { + *t++ = '<'; + *t++ = '/'; + t = my_strcat (t, IKS_TAG_NAME (x), 0); + *t++ = '>'; + } + break; + } + x = y; + dir = 0; + } else { + x = x->parent; + level--; + if (level >= 0) { + *t++ = '<'; + *t++ = '/'; + t = my_strcat (t, IKS_TAG_NAME (x), 0); + *t++ = '>'; + } + if (level < 1) break; + dir = 1; + } + } + *t = '\0'; + + return ret; +} + +/***** Copying *****/ + +iks * +iks_copy_within (iks *x, ikstack *s) +{ + int level=0, dir=0; + iks *copy = NULL; + iks *cur = NULL; + iks *y; + + while (1) { + if (dir == 0) { + if (x->type == IKS_TAG) { + if (copy == NULL) { + copy = iks_new_within (IKS_TAG_NAME (x), s); + cur = copy; + } else { + cur = iks_insert (cur, IKS_TAG_NAME (x)); + } + for (y = IKS_TAG_ATTRIBS (x); y; y = y->next) { + iks_insert_attrib (cur, IKS_ATTRIB_NAME (y), IKS_ATTRIB_VALUE (y)); + } + if (IKS_TAG_CHILDREN (x)) { + x = IKS_TAG_CHILDREN (x); + level++; + continue; + } else { + cur = cur->parent; + } + } else { + iks_insert_cdata (cur, IKS_CDATA_CDATA (x), IKS_CDATA_LEN (x)); + } + } + y = x->next; + if (y) { + if (0 == level) break; + x = y; + dir = 0; + } else { + if (level < 2) break; + level--; + x = x->parent; + cur = cur->parent; + dir = 1; + } + } + return copy; +} + +iks * +iks_copy (iks *x) +{ + return iks_copy_within (x, iks_stack_new (sizeof (struct iks_tag) * 6, 256)); +} +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2003 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#include "common.h" +#include "iksemel.h" + +struct dom_data { + iks **iksptr; + iks *current; + size_t chunk_size; +}; + +static int +tagHook (struct dom_data *data, char *name, char **atts, int type) +{ + iks *x; + + if (IKS_OPEN == type || IKS_SINGLE == type) { + if (data->current) { + x = iks_insert (data->current, name); + } else { + ikstack *s; + s = iks_stack_new (data->chunk_size, data->chunk_size); + x = iks_new_within (name, s); + } + if (atts) { + int i=0; + while (atts[i]) { + iks_insert_attrib (x, atts[i], atts[i+1]); + i += 2; + } + } + data->current = x; + } + if (IKS_CLOSE == type || IKS_SINGLE == type) { + x = iks_parent (data->current); + if (x) + data->current = x; + else { + *(data->iksptr) = data->current; + data->current = NULL; + } + } + return IKS_OK; +} + +static int +cdataHook (struct dom_data *data, char *cdata, size_t len) +{ + if (data->current) iks_insert_cdata (data->current, cdata, len); + return IKS_OK; +} + +static void +deleteHook (struct dom_data *data) +{ + if (data->current) iks_delete (data->current); + data->current = NULL; +} + +iksparser * +iks_dom_new (iks **iksptr) +{ + ikstack *s; + struct dom_data *data; + + *iksptr = NULL; + s = iks_stack_new (DEFAULT_DOM_CHUNK_SIZE, 0); + if (!s) return NULL; + data = iks_stack_alloc (s, sizeof (struct dom_data)); + data->iksptr = iksptr; + data->current = NULL; + data->chunk_size = DEFAULT_DOM_IKS_CHUNK_SIZE; + return iks_sax_extend (s, data, (iksTagHook *) tagHook, (iksCDataHook *) cdataHook, (iksDeleteHook *) deleteHook); +} + +void +iks_set_size_hint (iksparser *prs, size_t approx_size) +{ + size_t cs; + struct dom_data *data = iks_user_data (prs); + + cs = approx_size / 10; + if (cs < DEFAULT_DOM_IKS_CHUNK_SIZE) cs = DEFAULT_DOM_IKS_CHUNK_SIZE; + data->chunk_size = cs; +} + +iks * +iks_tree (const char *xml_str, size_t len, int *err) +{ + iksparser *prs; + iks *x; + int e; + + if (0 == len) len = strlen (xml_str); + prs = iks_dom_new (&x); + if (!prs) { + if (err) *err = IKS_NOMEM; + return NULL; + } + e = iks_parse (prs, xml_str, len, 1); + if (err) *err = e; + iks_parser_delete (prs); + return x; +} + +int +iks_load (const char *fname, iks **xptr) +{ + iksparser *prs; + char *buf; + FILE *f; + int len, done = 0; + int ret; + + *xptr = NULL; + + buf = iks_malloc (FILE_IO_BUF_SIZE); + if (!buf) return IKS_NOMEM; + ret = IKS_NOMEM; + prs = iks_dom_new (xptr); + if (prs) { + f = fopen (fname, "r"); + if (f) { + while (0 == done) { + len = fread (buf, 1, FILE_IO_BUF_SIZE, f); + if (len < FILE_IO_BUF_SIZE) { + if (0 == feof (f)) { + ret = IKS_FILE_RWERR; + len = 0; + } + done = 1; + } + if (len > 0) { + int e; + e = iks_parse (prs, buf, len, done); + if (IKS_OK != e) { + ret = e; + break; + } + if (done) ret = IKS_OK; + } + } + fclose (f); + } else { + if (ENOENT == errno) ret = IKS_FILE_NOFILE; + else ret = IKS_FILE_NOACCESS; + } + iks_parser_delete (prs); + } + iks_free (buf); + return ret; +} + +int +iks_save (const char *fname, iks *x) +{ + FILE *f; + char *data; + int ret; + + ret = IKS_NOMEM; + data = iks_string (NULL, x); + if (data) { + ret = IKS_FILE_NOACCESS; + f = fopen (fname, "w"); + if (f) { + ret = IKS_FILE_RWERR; + if (fputs (data, f) >= 0) ret = IKS_OK; + fclose (f); + } + iks_free (data); + } + return ret; +} diff --git a/backend/impress/iksemel.h b/backend/impress/iksemel.h new file mode 100644 index 00000000..66c87d61 --- /dev/null +++ b/backend/impress/iksemel.h @@ -0,0 +1,402 @@ +/* iksemel (XML parser for Jabber) +** Copyright (C) 2000-2004 Gurer Ozen <madcat@e-kolay.net> +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU Lesser General Public License. +*/ + +#ifndef IKSEMEL_H +#define IKSEMEL_H 1 + +#ifdef __cplusplus +#include <cstddef> /* size_t for C++ */ +extern "C" { +#else +#include <stddef.h> /* size_t for C */ +#endif + +/***** object stack *****/ + +struct ikstack_struct; +typedef struct ikstack_struct ikstack; + +ikstack *iks_stack_new (size_t meta_chunk, size_t data_chunk); +void *iks_stack_alloc (ikstack *s, size_t size); +char *iks_stack_strdup (ikstack *s, const char *src, size_t len); +char *iks_stack_strcat (ikstack *s, char *old, size_t old_len, const char *src, size_t src_len); +void iks_stack_stat (ikstack *s, size_t *allocated, size_t *used); +void iks_stack_delete (ikstack *s); + +/***** utilities *****/ + +void *iks_malloc (size_t size); +void iks_free (void *ptr); +void iks_set_mem_funcs (void *(*malloc_func)(size_t size), void (*free_func)(void *ptr)); + +char *iks_strdup (const char *src); +char *iks_strcat (char *dest, const char *src); +int iks_strcmp (const char *a, const char *b); +int iks_strcasecmp (const char *a, const char *b); +int iks_strncmp (const char *a, const char *b, size_t n); +int iks_strncasecmp (const char *a, const char *b, size_t n); +size_t iks_strlen (const char *src); +char *iks_escape (ikstack *s, char *src, size_t len); +char *iks_unescape (ikstack *s, char *src, size_t len); + +/***** dom tree *****/ + +enum ikstype { + IKS_NONE = 0, + IKS_TAG, + IKS_ATTRIBUTE, + IKS_CDATA +}; + +struct iks_struct; +typedef struct iks_struct iks; + +iks *iks_new (const char *name); +iks *iks_new_within (const char *name, ikstack *s); +iks *iks_insert (iks *x, const char *name); +iks *iks_insert_cdata (iks *x, const char *data, size_t len); +iks *iks_insert_attrib (iks *x, const char *name, const char *value); +iks *iks_insert_node (iks *x, iks *y); +void iks_hide (iks *x); +void iks_delete (iks *x); +iks *iks_next (iks *x); +iks *iks_next_tag (iks *x); +iks *iks_prev (iks *x); +iks *iks_prev_tag (iks *x); +iks *iks_parent (iks *x); +iks *iks_root (iks *x); +iks *iks_child (iks *x); +iks *iks_first_tag (iks *x); +iks *iks_attrib (iks *x); +iks *iks_find (iks *x, const char *name); +char *iks_find_cdata (iks *x, const char *name); +char *iks_find_attrib (iks *x, const char *name); +iks *iks_find_with_attrib (iks *x, const char *tagname, const char *attrname, const char *value); +ikstack *iks_stack (iks *x); +enum ikstype iks_type (iks *x); +char *iks_name (iks *x); +char *iks_cdata (iks *x); +size_t iks_cdata_size (iks *x); +int iks_has_children (iks *x); +int iks_has_attribs (iks *x); +char *iks_string (ikstack *s, iks *x); +iks *iks_copy (iks *x); +iks *iks_copy_within (iks *x, ikstack *s); + +/***** sax parser *****/ + +enum ikserror { + IKS_OK = 0, + IKS_NOMEM, + IKS_BADXML, + IKS_HOOK +}; + +enum ikstagtype { + IKS_OPEN, + IKS_CLOSE, + IKS_SINGLE +}; + +typedef int (iksTagHook)(void *user_data, char *name, char **atts, int type); +typedef int (iksCDataHook)(void *user_data, char *data, size_t len); +typedef void (iksDeleteHook)(void *user_data); + +struct iksparser_struct; +typedef struct iksparser_struct iksparser; + +iksparser *iks_sax_new (void *user_data, iksTagHook *tagHook, iksCDataHook *cdataHook); +iksparser *iks_sax_extend (ikstack *s, void *user_data, iksTagHook *tagHook, iksCDataHook *cdataHook, iksDeleteHook *deleteHook); +ikstack *iks_parser_stack (iksparser *prs); +void *iks_user_data (iksparser *prs); +unsigned long iks_nr_bytes (iksparser *prs); +unsigned long iks_nr_lines (iksparser *prs); +int iks_parse (iksparser *prs, const char *data, size_t len, int finish); +void iks_parser_reset (iksparser *prs); +void iks_parser_delete (iksparser *prs); + +/***** dom parser *****/ + +enum iksfileerror { + IKS_FILE_NOFILE = 4, + IKS_FILE_NOACCESS, + IKS_FILE_RWERR +}; + +iksparser *iks_dom_new (iks **iksptr); +void iks_set_size_hint (iksparser *prs, size_t approx_size); +iks *iks_tree (const char *xml_str, size_t len, int *err); +int iks_load (const char *fname, iks **xptr); +int iks_save (const char *fname, iks *x); + +/***** transport layer *****/ + +typedef void (iksTClose)(void *socket); +typedef int (iksTConnect)(iksparser *prs, void **socketptr, const char *server, int port); +typedef int (iksTSend)(void *socket, const char *data, size_t len); +typedef int (iksTRecv)(void *socket, char *buffer, size_t buf_len, int timeout); +typedef int (iksTConnectFD)(iksparser *prs, void **socketptr, void *fd); +typedef void *(iksTGetFD)(void *socket); + +enum iksasyncevents { + IKS_ASYNC_RESOLVED, + IKS_ASYNC_CONNECTED, + IKS_ASYNC_WRITE, + IKS_ASYNC_WRITTEN, + IKS_ASYNC_READ, + IKS_ASYNC_CLOSED, + IKS_ASYNC_ERROR +}; + +typedef int (iksAsyncNotify)(void *user_data, int event, void *event_data); +typedef int (iksTConnectAsync)(iksparser *prs, void **socketptr, const char *server, int port, void *notify_data, iksAsyncNotify *notify_func); + +typedef struct ikstransport_struct { + /* basic api, connect can be NULL if one of the other connect funcs are used */ + iksTConnect *connect; + iksTSend *send; + iksTRecv *recv; + iksTClose *close; + /* optional fd api */ + iksTConnectFD *connect_fd; + iksTGetFD *get_fd; + /* optional async api */ + iksTConnectAsync *connect_async; +} ikstransport; + +extern ikstransport iks_default_transport; + +/***** stream parser *****/ + +enum iksneterror { + IKS_NET_NODNS = 4, + IKS_NET_NOSOCK, + IKS_NET_NOCONN, + IKS_NET_RWERR, + IKS_NET_NOTSUPP, + IKS_NET_TLSFAIL +}; + +enum iksnodetype { + IKS_NODE_START, + IKS_NODE_NORMAL, + IKS_NODE_ERROR, + IKS_NODE_STOP +}; + +enum ikssasltype { + IKS_SASL_PLAIN, + IKS_SASL_DIGEST_MD5 +}; + +#define IKS_JABBER_PORT 5222 + +typedef int (iksStreamHook)(void *user_data, int type, iks *node); +typedef void (iksLogHook)(void *user_data, const char *data, size_t size, int is_incoming); + +iksparser *iks_stream_new (char *name_space, void *user_data, iksStreamHook *streamHook); +void *iks_stream_user_data (iksparser *prs); +void iks_set_log_hook (iksparser *prs, iksLogHook *logHook); +int iks_connect_tcp (iksparser *prs, const char *server, int port); +int iks_connect_fd (iksparser *prs, int fd); +int iks_connect_via (iksparser *prs, const char *server, int port, const char *server_name); +int iks_connect_with (iksparser *prs, const char *server, int port, const char *server_name, ikstransport *trans); +int iks_connect_async (iksparser *prs, const char *server, int port, void *notify_data, iksAsyncNotify *notify_func); +int iks_connect_async_with (iksparser *prs, const char *server, int port, const char *server_name, ikstransport *trans, void *notify_data, iksAsyncNotify *notify_func); +int iks_fd (iksparser *prs); +int iks_recv (iksparser *prs, int timeout); +int iks_send_header (iksparser *prs, const char *to); +int iks_send (iksparser *prs, iks *x); +int iks_send_raw (iksparser *prs, const char *xmlstr); +void iks_disconnect (iksparser *prs); +int iks_has_tls (void); +int iks_is_secure (iksparser *prs); +int iks_start_tls (iksparser *prs); +int iks_start_sasl (iksparser *prs, enum ikssasltype type, char *username, char *pass); + +/***** jabber *****/ + +#define IKS_NS_CLIENT "jabber:client" +#define IKS_NS_SERVER "jabber:server" +#define IKS_NS_AUTH "jabber:iq:auth" +#define IKS_NS_AUTH_0K "jabber:iq:auth:0k" +#define IKS_NS_REGISTER "jabber:iq:register" +#define IKS_NS_ROSTER "jabber:iq:roster" +#define IKS_NS_XROSTER "jabber:x:roster" +#define IKS_NS_OFFLINE "jabber:x:offline" +#define IKS_NS_AGENT "jabber:iq:agent" +#define IKS_NS_AGENTS "jabber:iq:agents" +#define IKS_NS_BROWSE "jabber:iq:browse" +#define IKS_NS_CONFERENCE "jabber:iq:conference" +#define IKS_NS_DELAY "jabber:x:delay" +#define IKS_NS_VERSION "jabber:iq:version" +#define IKS_NS_TIME "jabber:iq:time" +#define IKS_NS_VCARD "vcard-temp" +#define IKS_NS_PRIVATE "jabber:iq:private" +#define IKS_NS_SEARCH "jabber:iq:search" +#define IKS_NS_OOB "jabber:iq:oob" +#define IKS_NS_XOOB "jabber:x:oob" +#define IKS_NS_ADMIN "jabber:iq:admin" +#define IKS_NS_FILTER "jabber:iq:filter" +#define IKS_NS_GATEWAY "jabber:iq:gateway" +#define IKS_NS_LAST "jabber:iq:last" +#define IKS_NS_SIGNED "jabber:x:signed" +#define IKS_NS_ENCRYPTED "jabber:x:encrypted" +#define IKS_NS_ENVELOPE "jabber:x:envelope" +#define IKS_NS_EVENT "jabber:x:event" +#define IKS_NS_EXPIRE "jabber:x:expire" +#define IKS_NS_XHTML "http://www.w3.org/1999/xhtml" +#define IKS_NS_XMPP_SASL "urn:ietf:params:xml:ns:xmpp-sasl" +#define IKS_NS_XMPP_BIND "urn:ietf:params:xml:ns:xmpp-bind" +#define IKS_NS_XMPP_SESSION "urn:ietf:params:xml:ns:xmpp-session" + +#define IKS_ID_USER 1 +#define IKS_ID_SERVER 2 +#define IKS_ID_RESOURCE 4 +#define IKS_ID_PARTIAL IKS_ID_USER | IKS_ID_SERVER +#define IKS_ID_FULL IKS_ID_USER | IKS_ID_SERVER | IKS_ID_RESOURCE + +#define IKS_STREAM_STARTTLS 1 +#define IKS_STREAM_SESSION 2 +#define IKS_STREAM_BIND 4 +#define IKS_STREAM_SASL_PLAIN 8 +#define IKS_STREAM_SASL_MD5 16 + +typedef struct iksid_struct { + char *user; + char *server; + char *resource; + char *partial; + char *full; +} iksid; + +iksid *iks_id_new (ikstack *s, const char *jid); +int iks_id_cmp (iksid *a, iksid *b, int parts); + +enum ikspaktype { + IKS_PAK_NONE = 0, + IKS_PAK_MESSAGE, + IKS_PAK_PRESENCE, + IKS_PAK_IQ, + IKS_PAK_S10N +}; + +enum iksubtype { + IKS_TYPE_NONE = 0, + IKS_TYPE_ERROR, + + IKS_TYPE_CHAT, + IKS_TYPE_GROUPCHAT, + IKS_TYPE_HEADLINE, + + IKS_TYPE_GET, + IKS_TYPE_SET, + IKS_TYPE_RESULT, + + IKS_TYPE_SUBSCRIBE, + IKS_TYPE_SUBSCRIBED, + IKS_TYPE_UNSUBSCRIBE, + IKS_TYPE_UNSUBSCRIBED, + IKS_TYPE_PROBE, + IKS_TYPE_AVAILABLE, + IKS_TYPE_UNAVAILABLE +}; + +enum ikshowtype { + IKS_SHOW_UNAVAILABLE = 0, + IKS_SHOW_AVAILABLE, + IKS_SHOW_CHAT, + IKS_SHOW_AWAY, + IKS_SHOW_XA, + IKS_SHOW_DND +}; + +typedef struct ikspak_struct { + iks *x; + iksid *from; + iks *query; + char *ns; + char *id; + enum ikspaktype type; + enum iksubtype subtype; + enum ikshowtype show; +} ikspak; + +ikspak *iks_packet (iks *x); + +iks *iks_make_auth (iksid *id, const char *pass, const char *sid); +iks *iks_make_msg (enum iksubtype type, const char *to, const char *body); +iks *iks_make_s10n (enum iksubtype type, const char *to, const char *msg); +iks *iks_make_pres (enum ikshowtype show, const char *status); +iks *iks_make_iq (enum iksubtype type, const char *xmlns); +iks *iks_make_resource_bind(iksid *id); +iks *iks_make_session(void); +int iks_stream_features(iks *x); + +/***** jabber packet filter *****/ + +#define IKS_RULE_DONE 0 +#define IKS_RULE_ID 1 +#define IKS_RULE_TYPE 2 +#define IKS_RULE_SUBTYPE 4 +#define IKS_RULE_FROM 8 +#define IKS_RULE_FROM_PARTIAL 16 +#define IKS_RULE_NS 32 + +enum iksfilterret { + IKS_FILTER_PASS, + IKS_FILTER_EAT +}; + +typedef int (iksFilterHook)(void *user_data, ikspak *pak); + +struct iksfilter_struct; +typedef struct iksfilter_struct iksfilter; +struct iksrule_struct; +typedef struct iksrule_struct iksrule; + +iksfilter *iks_filter_new (void); +iksrule *iks_filter_add_rule (iksfilter *f, iksFilterHook *filterHook, void *user_data, ...); +void iks_filter_remove_rule (iksfilter *f, iksrule *rule); +void iks_filter_remove_hook (iksfilter *f, iksFilterHook *filterHook); +void iks_filter_packet (iksfilter *f, ikspak *pak); +void iks_filter_delete (iksfilter *f); + +/***** sha1 *****/ + +struct iksha_struct; +typedef struct iksha_struct iksha; + +iksha *iks_sha_new (void); +void iks_sha_reset (iksha *sha); +void iks_sha_hash (iksha *sha, const unsigned char *data, size_t len, int finish); +void iks_sha_print (iksha *sha, char *hash); +void iks_sha_delete (iksha *sha); +void iks_sha (const char *data, char *hash); + +/***** md5 *****/ + +struct ikmd5_struct; +typedef struct iksmd5_struct iksmd5; + +iksmd5 *iks_md5_new(void); +void iks_md5_reset(iksmd5 *md5); +void iks_md5_hash(iksmd5 *md5, const unsigned char *data, size_t slen, int finish); +void iks_md5_delete(iksmd5 *md5); +void iks_md5_print(iksmd5 *md5, char *buf); +void iks_md5_digest(iksmd5 *md5, unsigned char *digest); +void iks_md5(const char *data, char *buf); + +/***** base64 *****/ + +char *iks_base64_decode(const char *buf); +char *iks_base64_encode(const char *buf, int len); + +#ifdef __cplusplus +} +#endif + +#endif /* IKSEMEL_H */ diff --git a/backend/impress/imposter.h b/backend/impress/imposter.h new file mode 100644 index 00000000..50c87f2c --- /dev/null +++ b/backend/impress/imposter.h @@ -0,0 +1,84 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#ifndef IMPOSTER_H +#define IMPOSTER_H + +#include <sys/types.h> + +enum { + IMP_OK = 0, + IMP_NOMEM, + IMP_NOTZIP, + IMP_BADZIP, + IMP_BADDOC, + IMP_NOTIMP +}; + +struct ImpDoc_struct; +typedef struct ImpDoc_struct ImpDoc; + +struct ImpPage_struct; +typedef struct ImpPage_struct ImpPage; + +typedef struct ImpPointStruct { + int x; + int y; +} ImpPoint; + +typedef struct ImpColorStruct { + int red; + int green; + int blue; +} ImpColor; + +#define IMP_NORMAL 0 +#define IMP_BOLD 1 +#define IMP_ITALIC 2 +#define IMP_UNDERLINE 4 + +typedef struct ImpDrawer_struct { + void (*get_size)(void *drw_data, int *w, int *h); + void (*set_fg_color)(void *drw_data, ImpColor *color); + void (*draw_line)(void *drw_data, int x1, int y1, int x2, int y2); + void (*draw_rect)(void *drw_data, int fill, int x, int y, int w, int h); + void (*draw_polygon)(void *drw_data, int fill, ImpPoint *pts, int nr_pts); + void (*draw_arc)(void *drw_data, int fill, int x, int y, int w, int h, int sa, int ea); + void (*draw_bezier)(void *drw_data, int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); + void *(*open_image)(void *drw_data, const unsigned char *pix, size_t size); + void (*get_image_size)(void *drw_data, void *img_data, int *w, int *h); + void *(*scale_image)(void *drw_data, void *img_data, int w, int h); + void (*draw_image)(void *drw_data, void *img_data, int x, int y, int w, int h); + void (*close_image)(void *drw_data, void *img_data); + void (*get_text_size)(void *drw_data, const char *text, size_t len, int size, int styles, int *w, int *h); + void (*draw_text)(void *drw_data, int x, int y, const char *text, size_t len, int size, int styles); +} ImpDrawer; + +struct ImpRenderCtx_struct; +typedef struct ImpRenderCtx_struct ImpRenderCtx; + +#define IMP_LAST_PAGE -1 + +ImpDoc *imp_open(const char *filename, int *err); +int imp_nr_pages(ImpDoc *doc); +ImpPage *imp_get_page(ImpDoc *doc, int page_no); +void imp_close(ImpDoc *doc); + +void *imp_get_xml(ImpDoc *doc, const char *filename); + +ImpPage *imp_next_page(ImpPage *page); +ImpPage *imp_prev_page(ImpPage *page); +int imp_get_page_no(ImpPage *page); +const char *imp_get_page_name(ImpPage *page); + +ImpRenderCtx *imp_create_context(const ImpDrawer *drw); +void imp_context_set_page(ImpRenderCtx *ctx, ImpPage *page); +void imp_context_set_step(ImpRenderCtx *ctx, int step); +void imp_render(ImpRenderCtx *ctx, void *drw_data); +void imp_delete_context(ImpRenderCtx *ctx); + + +#endif /* IMPOSTER_H */ diff --git a/backend/impress/impress-document.c b/backend/impress/impress-document.c new file mode 100644 index 00000000..5254a881 --- /dev/null +++ b/backend/impress/impress-document.c @@ -0,0 +1,548 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Jonathan Blandford <jrb@gnome.org> + * Copyright (C) 2005, Bastien Nocera <hadess@hadess.net> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> + +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> + +#include "imposter.h" +#include "impress-document.h" + +#include "ev-document-misc.h" +#include "ev-document-thumbnails.h" + +struct _ImpressDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _ImpressDocument +{ + EvDocument parent_instance; + + ImpDoc *imp; + ImpRenderCtx *ctx; + + GMutex *mutex; + GdkPixmap *pixmap; + GdkGC *gc; + PangoContext *pango_ctx; + + /* Only used while rendering inside the mainloop */ + int pagenum; + GdkPixbuf *pixbuf; + GCond *cond; +}; + +#define PAGE_WIDTH 1024 +#define PAGE_HEIGHT 768 + +typedef struct _ImpressDocumentClass ImpressDocumentClass; + +static void impress_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); + +EV_BACKEND_REGISTER_WITH_CODE (ImpressDocument, impress_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + impress_document_document_thumbnails_iface_init); + }); + +/* Renderer */ +static void +imp_render_draw_bezier_real (GdkDrawable *d, GdkGC *gc, int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) +{ + int x, y, nx, ny; + int ax, bx, cx, ay, by, cy; + double t, t2, t3; + + x = x0; + y = y0; + + cx = 3 * (x1 - x0); + bx = 3 * (x2 - x1) - cx; + ax = x3 - x0 - cx - bx; + cy = 3 * (y1 - y0); + by = 3 * (y2 - y1) - cy; + ay = y3 - y0 - cy - by; + + for (t = 0; t < 1; t += 0.01) { + t2 = t * t; + t3 = t2 * t; + nx = ax * t3 + bx * t2 + cx * t + x0; + ny = ay * t3 + by * t2 + cy * t + y0; + gdk_draw_line (d, gc, x, y, nx, ny); + x = nx; + y = ny; + } +} + +static void +imp_render_get_size(void *drw_data, int *w, int *h) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + #if GTK_CHECK_VERSION(3, 0, 0) + *w = gdk_window_get_width(impress_document->pixmap); + *h = gdk_window_get_height(impress_document->pixmap); + #else + gdk_drawable_get_size(impress_document->pixmap, w, h); + #endif +} + +static void +imp_render_set_fg_color(void *drw_data, ImpColor *color) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + GdkColor c; + + c.red = color->red; + c.green = color->green; + c.blue = color->blue; + gdk_gc_set_rgb_fg_color(impress_document->gc, &c); +} + +static void +imp_render_draw_line(void *drw_data, int x1, int y1, int x2, int y2) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + gdk_draw_line(impress_document->pixmap, impress_document->gc, x1, y1, x2, y2); +} + +static void +imp_render_draw_rect(void *drw_data, int fill, int x, int y, int w, int h) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + gdk_draw_rectangle(impress_document->pixmap, impress_document->gc, fill, x, y, w, h); +} + +static void +imp_render_draw_polygon(void *drw_data, int fill, ImpPoint *pts, int nr_pts) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + gdk_draw_polygon(impress_document->pixmap, impress_document->gc, fill, (GdkPoint *)pts, nr_pts); +} + +static void +imp_render_draw_arc(void *drw_data, int fill, int x, int y, int w, int h, int sa, int ea) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + gdk_draw_arc(impress_document->pixmap, impress_document->gc, fill, x, y, w, h, sa * 64, ea * 64); +} + +static void +imp_render_draw_bezier(void *drw_data, int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + + imp_render_draw_bezier_real (impress_document->pixmap, impress_document->gc, x0, y0, x1, y1, x2, y2, x3, y3); +} + +static void * +imp_render_open_image(void *drw_data, const unsigned char *pix, size_t size) +{ + GdkPixbufLoader *gpl; + GdkPixbuf *pb; + + gpl = gdk_pixbuf_loader_new(); + gdk_pixbuf_loader_write(gpl, pix, size, NULL); + gdk_pixbuf_loader_close(gpl, NULL); + pb = gdk_pixbuf_loader_get_pixbuf(gpl); + return pb; +} + +static void +imp_render_get_image_size(void *drw_data, void *img_data, int *w, int *h) +{ + GdkPixbuf *pb = (GdkPixbuf *) img_data; + + *w = gdk_pixbuf_get_width(pb); + *h = gdk_pixbuf_get_height(pb); +} + +static void * +imp_render_scale_image(void *drw_data, void *img_data, int w, int h) +{ + GdkPixbuf *pb = (GdkPixbuf *) img_data; + + return gdk_pixbuf_scale_simple(pb, w, h, GDK_INTERP_BILINEAR); +} + +static void +imp_render_draw_image(void *drw_data, void *img_data, int x, int y, int w, int h) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + GdkPixbuf *pb = (GdkPixbuf *) img_data; + + gdk_draw_pixbuf(impress_document->pixmap, impress_document->gc, pb, 0, 0, x, y, w, h, GDK_RGB_DITHER_NONE, 0, 0); +} + +static void +imp_render_close_image(void *drw_data, void *img_data) +{ + GdkPixbuf *pb = (GdkPixbuf *) img_data; + + g_object_unref(G_OBJECT(pb)); +} + +static char * +imp_render_markup(const char *text, size_t len, int styles, int size) +{ + double scr_mm, scr_px, dpi; + char *esc; + char *ret; + int sz; + + scr_mm = gdk_screen_get_height_mm(gdk_screen_get_default()); + scr_px = gdk_screen_get_height(gdk_screen_get_default()); + dpi = (scr_px / scr_mm) * 25.4; + sz = (int) ((double) size * 72.0 * PANGO_SCALE / dpi); + esc = g_markup_escape_text(text, len); + ret = g_strdup_printf("<span size ='%d'>%s</span>", sz, esc); + g_free(esc); + return ret; +} + +static void +imp_render_get_text_size(void *drw_data, const char *text, size_t len, int size, int styles, int *w, int *h) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + PangoLayout *lay; + int pw, ph; + char *m; + + g_return_if_fail (impress_document->pango_ctx != NULL); + + lay = pango_layout_new(impress_document->pango_ctx); + m = imp_render_markup(text, len, styles, size); + pango_layout_set_markup(lay, m, strlen(m)); + pango_layout_get_size(lay, &pw, &ph); + g_object_unref(lay); + g_free(m); + *w = pw / PANGO_SCALE; + *h = ph / PANGO_SCALE; +} + +static void +imp_render_draw_text(void *drw_data, int x, int y, const char *text, size_t len, int size, int styles) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (drw_data); + PangoLayout *lay; + char *m; + + g_return_if_fail (impress_document->pango_ctx != NULL); + + lay = pango_layout_new(impress_document->pango_ctx); + m = imp_render_markup(text, len, styles, size); + pango_layout_set_markup(lay, m, strlen(m)); + gdk_draw_layout(impress_document->pixmap, impress_document->gc, x, y, lay); + g_object_unref(lay); + g_free(m); +} + +static const ImpDrawer imp_render_functions = { + imp_render_get_size, + imp_render_set_fg_color, + imp_render_draw_line, + imp_render_draw_rect, + imp_render_draw_polygon, + imp_render_draw_arc, + imp_render_draw_bezier, + imp_render_open_image, + imp_render_get_image_size, + imp_render_scale_image, + imp_render_draw_image, + imp_render_close_image, + imp_render_get_text_size, + imp_render_draw_text +}; + +/* Document interface */ +static gboolean +impress_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (document); + gchar *filename; + ImpDoc *imp; + int err; + + /* FIXME: Could we actually load uris ? */ + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + imp = imp_open (filename, &err); + g_free (filename); + + if (!imp) + { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Invalid document")); + return FALSE; + } + impress_document->imp = imp; + + return TRUE; +} + +static gboolean +impress_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + "Not supported"); + return FALSE; +} + +static int +impress_document_get_n_pages (EvDocument *document) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (document); + + g_return_val_if_fail (IMPRESS_IS_DOCUMENT (document), 0); + g_return_val_if_fail (impress_document->imp != NULL, 0); + + return imp_nr_pages (impress_document->imp); +} + +static void +impress_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (document); + + g_return_if_fail (IMPRESS_IS_DOCUMENT (document)); + g_return_if_fail (impress_document->imp != NULL); + + //FIXME + *width = PAGE_WIDTH; + *height = PAGE_HEIGHT; +} + +static gboolean +imp_render_get_from_drawable (ImpressDocument *impress_document) +{ + ImpPage *page; + + page = imp_get_page (impress_document->imp, impress_document->pagenum); + + g_return_val_if_fail (page != NULL, FALSE); + + ev_document_doc_mutex_lock (); + imp_context_set_page (impress_document->ctx, page); + imp_render (impress_document->ctx, impress_document); + ev_document_doc_mutex_unlock (); + + impress_document->pixbuf = gdk_pixbuf_get_from_drawable (NULL, + GDK_DRAWABLE (impress_document->pixmap), + NULL, + 0, 0, + 0, 0, + PAGE_WIDTH, PAGE_HEIGHT); + + g_cond_broadcast (impress_document->cond); + return FALSE; +} + +static GdkPixbuf * +impress_document_render_pixbuf (EvDocument *document, + EvRenderContext *rc) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (document); + GdkPixbuf *pixbuf; + + g_return_val_if_fail (IMPRESS_IS_DOCUMENT (document), NULL); + g_return_val_if_fail (impress_document->imp != NULL, NULL); + + impress_document->pagenum = rc->page->index; + + g_mutex_lock (impress_document->mutex); + impress_document->cond = g_cond_new (); + + ev_document_fc_mutex_unlock (); + ev_document_doc_mutex_unlock (); + g_idle_add ((GSourceFunc) imp_render_get_from_drawable, impress_document); + g_cond_wait (impress_document->cond, impress_document->mutex); + g_cond_free (impress_document->cond); + ev_document_doc_mutex_lock (); + ev_document_fc_mutex_lock (); + + g_mutex_unlock (impress_document->mutex); + + pixbuf = impress_document->pixbuf; + impress_document->pixbuf = NULL; + + return pixbuf; +} + +static cairo_surface_t * +impress_document_render (EvDocument *document, + EvRenderContext *rc) +{ + GdkPixbuf *pixbuf; + cairo_surface_t *surface, *scaled_surface; + + pixbuf = impress_document_render_pixbuf (document, rc); + + /* FIXME: impress backend should be ported to cairo */ + surface = ev_document_misc_surface_from_pixbuf (pixbuf); + g_object_unref (pixbuf); + + scaled_surface = ev_document_misc_surface_rotate_and_scale (surface, + (PAGE_WIDTH * rc->scale) + 0.5, + (PAGE_HEIGHT * rc->scale) + 0.5, + rc->rotation); + cairo_surface_destroy (surface); + + return scaled_surface; +} + +static void +impress_document_finalize (GObject *object) +{ + ImpressDocument *impress_document = IMPRESS_DOCUMENT (object); + + if (impress_document->mutex) + g_mutex_free (impress_document->mutex); + + if (impress_document->imp) + imp_close (impress_document->imp); + + if (impress_document->ctx) + imp_delete_context (impress_document->ctx); + + if (impress_document->pango_ctx) + g_object_unref (impress_document->pango_ctx); + + if (impress_document->pixmap) + g_object_unref (G_OBJECT (impress_document->pixmap)); + + if (impress_document->gc) + g_object_unref (impress_document->gc); + + G_OBJECT_CLASS (impress_document_parent_class)->finalize (object); +} + +static void +impress_document_class_init (ImpressDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + gobject_class->finalize = impress_document_finalize; + + ev_document_class->load = impress_document_load; + ev_document_class->save = impress_document_save; + ev_document_class->get_n_pages = impress_document_get_n_pages; + ev_document_class->get_page_size = impress_document_get_page_size; + ev_document_class->render = impress_document_render; +} + +static GdkPixbuf * +impress_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + GdkPixbuf *pixbuf; + GdkPixbuf *scaled_pixbuf; + + pixbuf = impress_document_render_pixbuf (EV_DOCUMENT (document), rc); + scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf, + (PAGE_WIDTH * rc->scale), + (PAGE_HEIGHT * rc->scale), + GDK_INTERP_BILINEAR); + g_object_unref (pixbuf); + + if (border) + { + GdkPixbuf *tmp_pixbuf = scaled_pixbuf; + + scaled_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } + + return scaled_pixbuf; +} + +static void +impress_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + gdouble page_width, page_height; + + impress_document_get_page_size (EV_DOCUMENT (document), + rc->page, + &page_width, &page_height); + + if (rc->rotation == 90 || rc->rotation == 270) + { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } + else + { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static void +impress_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = impress_document_thumbnails_get_thumbnail; + iface->get_dimensions = impress_document_thumbnails_get_dimensions; +} + +static void +impress_document_init (ImpressDocument *impress_document) +{ + GdkWindow *window; + + impress_document->mutex = g_mutex_new (); + impress_document->ctx = imp_create_context(&imp_render_functions); + + window = gdk_screen_get_root_window (gdk_screen_get_default ()); + + impress_document->pixmap = gdk_pixmap_new (window, + PAGE_WIDTH, PAGE_HEIGHT, -1); + impress_document->gc = gdk_gc_new (impress_document->pixmap); + impress_document->pango_ctx = gdk_pango_context_get_for_screen (gdk_screen_get_default ()); +} + +/* + * vim: sw=2 ts=8 cindent noai bs=2 + */ diff --git a/backend/impress/impress-document.h b/backend/impress/impress-document.h new file mode 100644 index 00000000..17a3c19a --- /dev/null +++ b/backend/impress/impress-document.h @@ -0,0 +1,39 @@ + +/* pdfdocument.h: Implementation of EvDocument for impresss + * Copyright (C) 2005, Jonathan Blandford <jrb@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __IMPRESS_DOCUMENT_H__ +#define __IMPRESS_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define IMPRESS_TYPE_DOCUMENT (impress_document_get_type ()) +#define IMPRESS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPRESS_TYPE_DOCUMENT, ImpressDocument)) +#define IMPRESS_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPRESS_TYPE_DOCUMENT)) + +typedef struct _ImpressDocument ImpressDocument; + +GType impress_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __IMPRESS_DOCUMENT_H__ */ diff --git a/backend/impress/impressdocument.evince-backend.in b/backend/impress/impressdocument.evince-backend.in new file mode 100644 index 00000000..61de77ab --- /dev/null +++ b/backend/impress/impressdocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=impressdocument +_TypeDescription=Impress Slides +MimeType=application/vnd.sun.xml.impress;application/vnd.oasis.opendocument.presentation; diff --git a/backend/impress/internal.h b/backend/impress/internal.h new file mode 100644 index 00000000..eb99c3ec --- /dev/null +++ b/backend/impress/internal.h @@ -0,0 +1,85 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include "zip.h" + +#ifndef INTERNAL_H +#define INTERNAL_H + +struct ImpDoc_struct { + ikstack *stack; + zip *zfile; + iks *content; + iks *styles; + iks *meta; + ImpPage *pages; + ImpPage *last_page; + int nr_pages; + void (*get_geometry)(ImpRenderCtx *ctx); + void (*render_page)(ImpRenderCtx *ctx, void *drw_data); +}; + +struct ImpPage_struct { + struct ImpPage_struct *next; + struct ImpPage_struct *prev; + ImpDoc *doc; + iks *page; + const char *name; + int nr; +}; + +struct ImpRenderCtx_struct { + const ImpDrawer *drw; + ImpPage *page; + iks *content; + iks *styles; + iks *last_element; + int step; + int pix_w, pix_h; + double cm_w, cm_h; + double fact_x, fact_y; +}; + +char *r_get_style (ImpRenderCtx *ctx, iks *node, char *attr); +int r_get_color(ImpRenderCtx *ctx, iks *node, char *name, ImpColor *ic); +void r_parse_color(const char *color, ImpColor *ic); +int r_get_x (ImpRenderCtx *ctx, iks *node, char *name); +int r_get_y (ImpRenderCtx *ctx, iks *node, char *name); +int r_get_angle (iks *node, char *name, int def); + +enum { + IMP_LE_NONE = 0, + IMP_LE_ARROW, + IMP_LE_SQUARE, + IMP_LE_DIMENSION, + IMP_LE_DOUBLE_ARROW, + IMP_LE_SMALL_ARROW, + IMP_LE_ROUND_ARROW, + IMP_LE_SYM_ARROW, + IMP_LE_LINE_ARROW, + IMP_LE_ROUND_LARGE_ARROW, + IMP_LE_CIRCLE, + IMP_LE_SQUARE_45, + IMP_LE_CONCAVE_ARROW +}; + +void _imp_draw_rect(ImpRenderCtx *ctx, void *drw_data, int fill, int x, int y, int w, int h, int round); +void _imp_draw_line_end(ImpRenderCtx *ctx, void *drw_data, int type, int size, int x, int y, int x2, int y2); +void _imp_draw_image(ImpRenderCtx *ctx, void *drw_data, const char *name, int x, int y, int w, int h); +void _imp_tile_image(ImpRenderCtx *ctx, void *drw_data, const char *name, int x, int y, int w, int h); + +int _imp_fill_back(ImpRenderCtx *ctx, void *drw_data, iks *node); +void r_text(ImpRenderCtx *ctx, void *drw_data, iks *node); +void r_polygon(ImpRenderCtx *ctx, void *drw_data, iks *node); +void r_circle(ImpRenderCtx *ctx, void *drw_data, iks *node); +void r_polyline(ImpRenderCtx *ctx, void *drw_data, iks *node); +void r_draw_gradient (ImpRenderCtx *ctx, void *drw_data, iks *node); + +int _imp_oo13_load(ImpDoc *doc); +int _imp_oasis_load(ImpDoc *doc); + + +#endif /* INTERNAL_H */ diff --git a/backend/impress/r_back.c b/backend/impress/r_back.c new file mode 100644 index 00000000..3f050d9e --- /dev/null +++ b/backend/impress/r_back.c @@ -0,0 +1,46 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +int +_imp_fill_back(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + ImpColor col; + char *type; + char *stil, *gfx; + iks *x; + + type = r_get_style(ctx, node, "draw:fill"); + if (type == 0) return 0; + + if (strcmp(type, "solid") == 0) { + if (r_get_color(ctx, node, "draw:fill-color", &col)) { + ctx->drw->set_fg_color(drw_data, &col); + } + ctx->drw->draw_rect(drw_data, 1, 0, 0, ctx->pix_w, ctx->pix_h); + } else if (strcmp (type, "bitmap") == 0) { + stil = r_get_style(ctx, node, "draw:fill-image-name"); + x = iks_find_with_attrib(iks_find(ctx->styles, "office:styles"), + "draw:fill-image", "draw:name", stil + ); + gfx = iks_find_attrib(x, "xlink:href"); + if (gfx) { + if (iks_strcmp(r_get_style(ctx, node, "style:repeat"), "stretch") == 0) { + _imp_draw_image(ctx, drw_data, gfx, 0, 0, ctx->pix_w, ctx->pix_h); + } else { + _imp_tile_image(ctx, drw_data, gfx, 0, 0, ctx->pix_w, ctx->pix_h); + } + } + } else if (strcmp(type, "gradient") == 0) { + r_draw_gradient(ctx, drw_data, node); + } else { + return 0; + } + return 1; +} diff --git a/backend/impress/r_draw.c b/backend/impress/r_draw.c new file mode 100644 index 00000000..aad1655e --- /dev/null +++ b/backend/impress/r_draw.c @@ -0,0 +1,120 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" +#include <math.h> + +void +_imp_draw_rect(ImpRenderCtx *ctx, void *drw_data, int fill, int x, int y, int w, int h, int round) +{ + int a; + + if (0 == round) { + ctx->drw->draw_rect(drw_data, fill, x, y, w, h); + return; + } + + ctx->drw->draw_arc(drw_data, fill, + x, y, round, round, 90, 90); + ctx->drw->draw_arc(drw_data, fill, + x + w - round, y, round, round, 0, 90); + ctx->drw->draw_arc(drw_data, fill, + x + w - round, y + h - round, round, round, 270, 90); + ctx->drw->draw_arc(drw_data, fill, + x, y + h - round, round, round, 180, 90); + + a = round / 2; + if (fill) { + ctx->drw->draw_rect(drw_data, 1, x + a, y, w - a - a, h); + ctx->drw->draw_rect(drw_data, 1, x, y + a, w, h - a - a); + return; + } + ctx->drw->draw_line(drw_data, x + a, y, x + w - a, y); + ctx->drw->draw_line(drw_data, x + a, y + h, x + w - a, y + h); + ctx->drw->draw_line(drw_data, x, y + a, x, y + h - a); + ctx->drw->draw_line(drw_data, x + w, y + a, x + w, y + h - a); +} + +void +_imp_draw_line_end(ImpRenderCtx *ctx, void *drw_data, int type, int size, int x, int y, int x2, int y2) +{ + ImpPoint pts[4]; + double ia, a; + + // FIXME: different types and sizes + + pts[0].x = x2; + pts[0].y = y2; + + ia = 20 * 3.14 * 2 / 360; + + if (x2-x == 0) { + if (y < y2) a = 3.14 + (3.14 / 2); else a = (3.14 / 2); + } else if (y2-y == 0) { + if (x < x2) a = 3.14; else a = 0; + } else + a = atan ((y2-y) / (x2-x)) - 3.14; + + pts[1].x = x2 + 0.3 * ctx->fact_x * cos (a - ia); + pts[1].y = y2 + 0.3 * ctx->fact_y * sin (a - ia); + + pts[2].x = x2 + 0.3 * ctx->fact_x * cos (a + ia); + pts[2].y = y2 + 0.3 * ctx->fact_y * sin (a + ia); + + ctx->drw->draw_polygon(drw_data, 1, pts, 3); +} + +void +_imp_draw_image(ImpRenderCtx *ctx, void *drw_data, const char *name, int x, int y, int w, int h) +{ + void *img1, *img2; + char *pix; + size_t len; + + len = zip_get_size(ctx->page->doc->zfile, name); + pix = malloc(len); + if (!pix) return; + zip_load(ctx->page->doc->zfile, name, pix); + + img1 = ctx->drw->open_image(drw_data, pix, len); + free(pix); + if (!img1) return; + img2 = ctx->drw->scale_image(drw_data, img1, w, h); + if (img2) { + ctx->drw->draw_image(drw_data, img2, x, y, w, h); + ctx->drw->close_image(drw_data, img2); + } + ctx->drw->close_image(drw_data, img1); +} + +void +_imp_tile_image(ImpRenderCtx *ctx, void *drw_data, const char *name, int x, int y, int w, int h) +{ + void *img1; + char *pix; + size_t len; + int gx, gy, gw, gh; + + len = zip_get_size(ctx->page->doc->zfile, name); + pix = malloc(len); + if (!pix) return; + zip_load(ctx->page->doc->zfile, name, pix); + + img1 = ctx->drw->open_image(drw_data, pix, len); + free(pix); + if (!img1) return; + + ctx->drw->get_image_size(drw_data, img1, &gw, &gh); + for (gx = x; gx < w; gx += gw) { + for (gy = y; gy < h; gy += gh) { + ctx->drw->draw_image(drw_data, img1, gx, gy, gw, gh); + } + } + + ctx->drw->close_image(drw_data, img1); +} diff --git a/backend/impress/r_geometry.c b/backend/impress/r_geometry.c new file mode 100644 index 00000000..4819821a --- /dev/null +++ b/backend/impress/r_geometry.c @@ -0,0 +1,208 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" +#include <math.h> + +void +r_parse_color(const char *color, ImpColor *ic) +{ + unsigned int cval; + + if (1 != sscanf(color, "#%X", &cval)) return; + + ic->red = (cval & 0xFF0000) >> 8; + ic->green = cval & 0x00FF00; + ic->blue = (cval & 0xFF) << 8; +} + +int +r_get_color(ImpRenderCtx *ctx, iks *node, char *name, ImpColor *ic) +{ + char *color; + + color = r_get_style(ctx, node, name); + if (!color) return 0; + r_parse_color(color, ic); + + return 1; +} + +static void +fg_color(ImpRenderCtx *ctx, void *drw_data, iks *node, char *name) +{ + ImpColor ic; + + if (r_get_color(ctx, node, name, &ic)) { + ctx->drw->set_fg_color(drw_data, &ic); + } +} + +int +r_get_x (ImpRenderCtx *ctx, iks *node, char *name) +{ + char *val; + + val = iks_find_attrib (node, name); + if (!val) return 0; + return atof (val) * ctx->fact_x; +} + +int +r_get_y (ImpRenderCtx *ctx, iks *node, char *name) +{ + char *val; + + val = iks_find_attrib (node, name); + if (!val) return 0; + return atof (val) * ctx->fact_y; +} + +int +r_get_angle (iks *node, char *name, int def) +{ + char *tmp; + + tmp = iks_find_attrib (node, name); + if (!tmp) return def; + return atof (tmp); +} + +static int x, y, w, h; +static int px, py, pw, ph; + +static void +r_get_viewbox (iks *node) +{ + char *tmp; + + tmp = iks_find_attrib (node, "svg:viewBox"); + if (!tmp) return; + sscanf (tmp, "%d %d %d %d", &px, &py, &pw, &ph); +} + +void +r_polygon(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + char *data; + ImpPoint *points; + int i, cnt, j; + int num; + int fill = 1; + + data = r_get_style (ctx, node, "draw:fill"); + if (!data || strcmp (data, "solid") != 0) fill = 0; + + x = r_get_x (ctx, node, "svg:x"); + y = r_get_y (ctx, node, "svg:y"); + w = r_get_x (ctx, node, "svg:width"); + h = r_get_y (ctx, node, "svg:height"); + r_get_viewbox (node); + + data = iks_find_attrib (node, "draw:points"); + points = malloc (sizeof (ImpPoint) * strlen (data) / 4); + + cnt = 0; + j = 0; + num = -1; + for (i = 0; data[i]; i++) { + if (data[i] >= '0' && data[i] <= '9') { + if (num == -1) num = i; + } else { + if (num != -1) { + if (j == 0) { + points[cnt].x = atoi (data + num); + j = 1; + } else { + points[cnt++].y = atoi (data + num); + j = 0; + } + num = -1; + } + } + } + if (num != -1) { + if (j == 0) { + points[cnt].x = atoi (data + num); + } else { + points[cnt++].y = atoi (data + num); + } + } + for (i = 0; i < cnt; i++) { + points[i].x = x + points[i].x * w / pw; + points[i].y = y + points[i].y * h / ph; + } + + if (fill) { + fg_color(ctx, drw_data, node, "draw:fill-color"); + ctx->drw->draw_polygon(drw_data, 1, points, cnt); + } + fg_color(ctx, drw_data, node, "svg:stroke-color"); + ctx->drw->draw_polygon(drw_data, 0, points, cnt); + + free (points); +} + +void +r_polyline(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + char *data; + ImpPoint *points; + int i, cnt, j; + int num; + int pen_x, pen_y; + + x = r_get_x (ctx, node, "svg:x"); + y = r_get_y (ctx, node, "svg:y"); + w = r_get_x (ctx, node, "svg:width"); + h = r_get_y (ctx, node, "svg:height"); + r_get_viewbox (node); + + data = iks_find_attrib (node, "draw:points"); + points = malloc (sizeof (ImpPoint) * strlen (data) / 4); + + cnt = 0; + j = 0; + num = -1; + for (i = 0; data[i]; i++) { + if (data[i] >= '0' && data[i] <= '9') { + if (num == -1) num = i; + } else { + if (num != -1) { + if (j == 0) { + points[cnt].x = atoi (data + num); + j = 1; + } else { + points[cnt++].y = atoi (data + num); + j = 0; + } + num = -1; + } + } + } + if (num != -1) { + if (j == 0) { + points[cnt].x = atoi (data + num); + } else { + points[cnt++].y = atoi (data + num); + } + } + + pen_x = x + points[0].x * w /pw; + pen_y = y + points[0].y * h / ph; + fg_color(ctx, drw_data, node, "svg:stroke-color"); + for (i = 1; i < cnt; i++) { + int tx, ty; + tx = x + points[i].x * w / pw; + ty = y + points[i].y * h / ph; + ctx->drw->draw_line(drw_data, pen_x, pen_y, tx, ty); + pen_x = tx; + pen_y = ty; + } + free (points); +} diff --git a/backend/impress/r_gradient.c b/backend/impress/r_gradient.c new file mode 100644 index 00000000..79636fe2 --- /dev/null +++ b/backend/impress/r_gradient.c @@ -0,0 +1,387 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" +#include <math.h> + +#define GRAD_LINEAR 0 +#define GRAD_AXIAL 1 +#define GRAD_SQUARE 2 +#define GRAD_RECTANGULAR 3 +#define GRAD_RADIAL 4 +#define GRAD_ELLIPTICAL 5 + +typedef struct Gradient_s { + int type; + ImpColor start; + int start_intensity; + ImpColor end; + int end_intensity; + int angle; + int border; + int steps; + int offset_x; + int offset_y; +} Gradient; + +typedef struct Rectangle_s { + int Left; + int Top; + int Right; + int Bottom; +} Rectangle; + +static void +poly_rotate (ImpPoint *poly, int n, int cx, int cy, double fAngle) +{ + int i; + long nX, nY; + + for (i = 0; i < n; i++) { + nX = poly->x - cx; + nY = poly->y - cy; + poly->x = (cos(fAngle) * nX + sin(fAngle) * nY) + cx; + poly->y = - (sin(fAngle)* nX - cos(fAngle) * nY) + cy; + poly++; + } +} + +static void +r_draw_gradient_simple (ImpRenderCtx *ctx, void *drw_data, Gradient *grad) +{ + Rectangle rRect = { 0, 0, ctx->pix_w - 1, ctx->pix_h - 1 }; + Rectangle aRect, aFullRect; + ImpPoint poly[4], tempoly[2]; + ImpColor gcol; + double fW, fH, fDX, fDY, fAngle; + double fScanLine, fScanInc; + long redSteps, greenSteps, blueSteps; + long nBorder; + int i, nSteps, nSteps2; + int cx, cy; + + cx = rRect.Left + (rRect.Right - rRect.Left) / 2; + cy = rRect.Top + (rRect.Bottom - rRect.Top) / 2; + + aRect = rRect; + aRect.Top--; aRect.Left--; aRect.Bottom++; aRect.Right++; + fW = rRect.Right - rRect.Left; + fH = rRect.Bottom - rRect.Top; + fAngle = (((double) grad->angle) * 3.14 / 1800.0); + fDX = fW * fabs (cos (fAngle)) + fH * fabs (sin (fAngle)); + fDY = fH * fabs (cos (fAngle)) + fW * fabs (sin (fAngle)); + fDX = (fDX - fW) * 0.5 - 0.5; + fDY = (fDY - fH) * 0.5 - 0.5; + aRect.Left -= fDX; + aRect.Right += fDX; + aRect.Top -= fDY; + aRect.Bottom += fDY; + aFullRect = aRect; + + nBorder = grad->border * (aRect.Bottom - aRect.Top) / 100; + if (grad->type == GRAD_LINEAR) { + aRect.Top += nBorder; + } else { + nBorder >>= 1; + aRect.Top += nBorder; + aRect.Bottom -= nBorder; + } + + if (aRect.Top > (aRect.Bottom - 1)) + aRect.Top = aRect.Bottom - 1; + + poly[0].x = aFullRect.Left; + poly[0].y = aFullRect.Top; + poly[1].x = aFullRect.Right; + poly[1].y = aFullRect.Top; + poly[2].x = aRect.Right; + poly[2].y = aRect.Top; + poly[3].x = aRect.Left; + poly[3].y = aRect.Top; + poly_rotate (&poly[0], 4, cx, cy, fAngle); + + redSteps = grad->end.red - grad->start.red; + greenSteps = grad->end.green - grad->start.green; + blueSteps = grad->end.blue - grad->start.blue; + nSteps = grad->steps; + if (nSteps == 0) { + long mr; + mr = aRect.Bottom - aRect.Top; + if (mr < 50) + nSteps = mr / 2; + else + nSteps = mr / 4; + mr = abs(redSteps); + if (abs(greenSteps) > mr) mr = abs(greenSteps); + if (abs(blueSteps) > mr) mr = abs(blueSteps); + if (mr < nSteps) nSteps = mr; + } + + if (grad->type == GRAD_AXIAL) { + if (nSteps & 1) nSteps++; + nSteps2 = nSteps + 2; + gcol = grad->end; + redSteps <<= 1; + greenSteps <<= 1; + blueSteps <<= 1; + } else { + nSteps2 = nSteps + 1; + gcol = grad->start; + } + + fScanLine = aRect.Top; + fScanInc = (double)(aRect.Bottom - aRect.Top) / (double)nSteps; + + for (i = 0; i < nSteps2; i++) { + // draw polygon + ctx->drw->set_fg_color(drw_data, &gcol); + ctx->drw->draw_polygon(drw_data, 1, &poly[0], 4); + // calc next polygon + aRect.Top = (long)(fScanLine += fScanInc); + if (i == nSteps) { + tempoly[0].x = aFullRect.Left; + tempoly[0].y = aFullRect.Bottom; + tempoly[1].x = aFullRect.Right; + tempoly[1].y = aFullRect.Bottom; + } else { + tempoly[0].x = aRect.Left; + tempoly[0].y = aRect.Top; + tempoly[1].x = aRect.Right; + tempoly[1].y = aRect.Top; + } + poly_rotate (&tempoly[0], 2, cx, cy, fAngle); + poly[0] = poly[3]; + poly[1] = poly[2]; + poly[2] = tempoly[1]; + poly[3] = tempoly[0]; + // calc next color + if (grad->type == GRAD_LINEAR) { + gcol.red = grad->start.red + ((redSteps * i) / nSteps2); + gcol.green = grad->start.green + ((greenSteps * i) / nSteps2); + gcol.blue = grad->start.blue + ((blueSteps * i) / nSteps2); + } else { + if (i >= nSteps) { + gcol.red = grad->end.red; + gcol.green = grad->end.green; + gcol.blue = grad->end.blue; + } else { + if (i <= (nSteps / 2)) { + gcol.red = grad->end.red - ((redSteps * i) / nSteps2); + gcol.green = grad->end.green - ((greenSteps * i) / nSteps2); + gcol.blue = grad->end.blue - ((blueSteps * i) / nSteps2); + } else { + int i2 = i - nSteps / 2; + gcol.red = grad->start.red + ((redSteps * i2) / nSteps2); + gcol.green = grad->start.green + ((greenSteps * i2) / nSteps2); + gcol.blue = grad->start.blue + ((blueSteps * i2) / nSteps2); + } + } + } + } +} + +static void +r_draw_gradient_complex (ImpRenderCtx *ctx, void *drw_data, Gradient *grad) +{ + Rectangle rRect = { 0, 0, ctx->pix_w - 1, ctx->pix_h - 1 }; + Rectangle aRect = rRect; + ImpColor gcol; + ImpPoint poly[4]; + double fAngle = (((double) grad->angle) * 3.14 / 1800.0); + long redSteps, greenSteps, blueSteps; + long nZW, nZH; + long bX, bY; + long sW, sH; + long cx, cy; + int i; + long nSteps; + double sTop, sLeft, sRight, sBottom, sInc; + int minRect; + + redSteps = grad->end.red - grad->start.red; + greenSteps = grad->end.green - grad->start.green; + blueSteps = grad->end.blue - grad->start.blue; + + if (grad->type == GRAD_SQUARE || grad->type == GRAD_RECTANGULAR) { + double fW = aRect.Right - aRect.Left; + double fH = aRect.Bottom - aRect.Top; + double fDX = fW * fabs (cos (fAngle)) + fH * fabs (sin (fAngle)); + double fDY = fH * fabs (cos (fAngle)) + fW * fabs (sin (fAngle)); + fDX = (fDX - fW) * 0.5 - 0.5; + fDY = (fDY - fH) * 0.5 - 0.5; + aRect.Left -= fDX; + aRect.Right += fDX; + aRect.Top -= fDY; + aRect.Bottom += fDY; + } + + sW = aRect.Right - aRect.Left; + sH = aRect.Bottom - aRect.Top; + + if (grad->type == GRAD_SQUARE) { + if (sW > sH) sH = sW; else sW = sH; + } else if (grad->type == GRAD_RADIAL) { + sW = 0.5 + sqrt ((double)sW*(double)sW + (double)sH*(double)sH); + sH = sW; + } else if (grad->type == GRAD_ELLIPTICAL) { + sW = 0.5 + (double)sW * 1.4142; + sH = 0.5 + (double)sH * 1.4142; + } + + nZW = (aRect.Right - aRect.Left) * grad->offset_x / 100; + nZH = (aRect.Bottom - aRect.Top) * grad->offset_y / 100; + bX = grad->border * sW / 100; + bY = grad->border * sH / 100; + cx = aRect.Left + nZW; + cy = aRect.Top + nZH; + + sW -= bX; + sH -= bY; + + aRect.Left = cx - ((aRect.Right - aRect.Left) >> 1); + aRect.Top = cy - ((aRect.Bottom - aRect.Top) >> 1); + + nSteps = grad->steps; + minRect = aRect.Right - aRect.Left; + if (aRect.Bottom - aRect.Top < minRect) minRect = aRect.Bottom - aRect.Top; + if (nSteps == 0) { + long mr; + if (minRect < 50) + nSteps = minRect / 2; + else + nSteps = minRect / 4; + mr = abs(redSteps); + if (abs(greenSteps) > mr) mr = abs(greenSteps); + if (abs(blueSteps) > mr) mr = abs(blueSteps); + if (mr < nSteps) nSteps = mr; + } + + sLeft = aRect.Left; + sTop = aRect.Top; + sRight = aRect.Right; + sBottom = aRect.Bottom; + sInc = (double) minRect / (double) nSteps * 0.5; + + gcol = grad->start; + poly[0].x = rRect.Left; + poly[0].y = rRect.Top; + poly[1].x = rRect.Right; + poly[1].y = rRect.Top; + poly[2].x = rRect.Right; + poly[2].y = rRect.Bottom; + poly[3].x = rRect.Left; + poly[3].y = rRect.Bottom; + ctx->drw->set_fg_color(drw_data, &gcol); + ctx->drw->draw_polygon(drw_data, 1, &poly[0], 4); + + for (i = 0; i < nSteps; i++) { + aRect.Left = (long) (sLeft += sInc); + aRect.Top = (long) (sTop += sInc); + aRect.Right = (long) (sRight -= sInc); + aRect.Bottom = (long) (sBottom -= sInc); + if (aRect.Bottom - aRect.Top < 2 || aRect.Right - aRect.Left < 2) + break; + + gcol.red = grad->start.red + (redSteps * (i+1) / nSteps); + gcol.green = grad->start.green + (greenSteps * (i+1) / nSteps); + gcol.blue = grad->start.blue + (blueSteps * (i+1) / nSteps); + ctx->drw->set_fg_color(drw_data, &gcol); + + if (grad->type == GRAD_RADIAL || grad->type == GRAD_ELLIPTICAL) { + ctx->drw->draw_arc(drw_data, 1, aRect.Left, aRect.Top, + aRect.Right - aRect.Left, aRect.Bottom - aRect.Top, + 0, 360); + } else { + poly[0].x = aRect.Left; + poly[0].y = aRect.Top; + poly[1].x = aRect.Right; + poly[1].y = aRect.Top; + poly[2].x = aRect.Right; + poly[2].y = aRect.Bottom; + poly[3].x = aRect.Left; + poly[3].y = aRect.Bottom; + poly_rotate (&poly[0], 4, cx, cy, fAngle); + ctx->drw->draw_polygon(drw_data, 1, &poly[0], 4); + } + } +} + +void +r_draw_gradient (ImpRenderCtx *ctx, void *drw_data, iks *node) +{ +// GdkGC *gc; + Gradient grad; + char *stil, *tmp; + iks *x; + + stil = r_get_style (ctx, node, "draw:fill-gradient-name"); + x = iks_find_with_attrib (iks_find (ctx->styles, "office:styles"), + "draw:gradient", "draw:name", stil); + if (x) { + memset (&grad, 0, sizeof (Gradient)); + grad.type = -1; + grad.offset_x = 50; + grad.offset_y = 50; + + tmp = iks_find_attrib (x, "draw:start-color"); + if (tmp) r_parse_color (tmp, &grad.start); + tmp = iks_find_attrib (x, "draw:start-intensity"); + if (tmp) { + int val = atoi (tmp); + grad.start.red = grad.start.red * val / 100; + grad.start.green = grad.start.green * val / 100; + grad.start.blue = grad.start.blue * val / 100; + } + tmp = iks_find_attrib (x, "draw:end-color"); + if (tmp) r_parse_color (tmp, &grad.end); + tmp = iks_find_attrib (x, "draw:end-intensity"); + if (tmp) { + int val = atoi (tmp); + grad.end.red = grad.end.red * val / 100; + grad.end.green = grad.end.green * val / 100; + grad.end.blue = grad.end.blue * val / 100; + } + tmp = iks_find_attrib (x, "draw:angle"); + if (tmp) grad.angle = atoi(tmp) % 3600; + tmp = iks_find_attrib (x, "draw:border"); + if (tmp) grad.border = atoi(tmp); + tmp = r_get_style (ctx, node, "draw:gradient-step-count"); + if (tmp) grad.steps = atoi (tmp); + tmp = iks_find_attrib (x, "draw:cx"); + if (tmp) grad.offset_x = atoi (tmp); + tmp = iks_find_attrib (x, "draw:cy"); + if (tmp) grad.offset_y = atoi (tmp); + tmp = iks_find_attrib (x, "draw:style"); + if (iks_strcmp (tmp, "linear") == 0) + grad.type = GRAD_LINEAR; + else if (iks_strcmp (tmp, "axial") == 0) + grad.type = GRAD_AXIAL; + else if (iks_strcmp (tmp, "radial") == 0) + grad.type = GRAD_RADIAL; + else if (iks_strcmp (tmp, "rectangular") == 0) + grad.type = GRAD_RECTANGULAR; + else if (iks_strcmp (tmp, "ellipsoid") == 0) + grad.type = GRAD_ELLIPTICAL; + else if (iks_strcmp (tmp, "square") == 0) + grad.type = GRAD_SQUARE; + + if (grad.type == -1) return; + +// gc = ctx->gc; +// ctx->gc = gdk_gc_new (ctx->d); +// gdk_gc_copy (ctx->gc, gc); + + if (grad.type == GRAD_LINEAR || grad.type == GRAD_AXIAL) + r_draw_gradient_simple (ctx, drw_data, &grad); + else + r_draw_gradient_complex (ctx, drw_data, &grad); + +// g_object_unref (ctx->gc); +// ctx->gc = gc; + } +} diff --git a/backend/impress/r_style.c b/backend/impress/r_style.c new file mode 100644 index 00000000..39ee9c62 --- /dev/null +++ b/backend/impress/r_style.c @@ -0,0 +1,111 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +static char * +get_style(ImpRenderCtx *ctx, iks *node, char *style, char *attr) +{ + char *ret; + iks *x; + + if (!style) return NULL; + + if (iks_root (node) == ctx->content) { + x = iks_find_with_attrib (iks_find (ctx->content, "office:automatic-styles"), + "style:style", "style:name", style); + } else { + x = iks_find_with_attrib (iks_find (ctx->styles, "office:automatic-styles"), + "style:style", "style:name", style); + } + if (!x) return NULL; + + while (x) { + ret = iks_find_attrib (iks_find (x, "style:properties"), attr); + if (ret) return ret; + ret = iks_find_attrib (iks_find (x, "style:text-properties"), attr); + if (ret) return ret; + ret = iks_find_attrib (iks_find (x, "style:paragraph-properties"), attr); + if (ret) return ret; + ret = iks_find_attrib (iks_find (x, "style:graphic-properties"), attr); + if (ret) return ret; + ret = iks_find_attrib (iks_find (x, "style:drawing-page-properties"), attr); + if (ret) return ret; + + style = iks_find_attrib (x, "style:parent-style-name"); + if (!style) return NULL; + + x = iks_find_with_attrib (iks_find (ctx->styles, "office:styles"), + "style:style", "style:name", style); + + } + return NULL; +} + +char * +r_get_style (ImpRenderCtx *ctx, iks *node, char *attr) +{ + char *ret, *s; + iks *x; + + ret = iks_find_attrib (node, attr); + if (ret) return ret; + + for (x = node; x; x = iks_parent (x)) { + s = iks_find_attrib (x, "text:style-name"); + ret = get_style (ctx, node, s, attr); + if (ret) return ret; + s = iks_find_attrib (x, "presentation:style-name"); + ret = get_style (ctx, node, s, attr); + if (ret) return ret; + s = iks_find_attrib (x, "draw:style-name"); + ret = get_style (ctx, node, s, attr); + if (ret) return ret; + } + return NULL; +} + +#if 0 +static iks * +get_style_x (ImpRenderCtx *ctx, iks *node, char *style, char *attr) +{ + iks *x; + + if (!style) return NULL; + + if (iks_root (node) == ctx->content) { + x = iks_find_with_attrib (iks_find (ctx->content, "office:automatic-styles"), + "text:list-style", "style:name", style); + } else { + x = iks_find_with_attrib (iks_find (ctx->styles, "office:automatic-styles"), + "text:list-style", "style:name", style); + } + return x; +} + +static iks * +r_get_bullet (ImpRenderCtx *ctx, iks *node, char *attr) +{ + iks *ret; + char *s; + iks *x; + + for (x = node; x; x = iks_parent (x)) { + s = iks_find_attrib (x, "text:style-name"); + ret = get_style_x (ctx, node, s, attr); + if (ret) return ret; + s = iks_find_attrib (x, "presentation:style-name"); + ret = get_style_x (ctx, node, s, attr); + if (ret) return ret; + s = iks_find_attrib (x, "draw:style-name"); + ret = get_style_x (ctx, node, s, attr); + if (ret) return ret; + } + return NULL; +} +#endif diff --git a/backend/impress/r_text.c b/backend/impress/r_text.c new file mode 100644 index 00000000..4b89bcad --- /dev/null +++ b/backend/impress/r_text.c @@ -0,0 +1,386 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +struct Span { + struct Span *next; + int x, y; + int w, h; + char *text; + int len; + int size; + int styles; + ImpColor fg; +}; + +struct Line { + struct Line *next; + struct Span *spans; + struct Span *last_span; + int x, y; + int w, h; +}; + +struct Layout { + ikstack *s; + int x, y, w, h; + int tw, th; + struct Line *lines; + struct Line *last_line; + char spaces[128]; +}; + +static struct Line * +add_line(struct Layout *lay) +{ + struct Line *line; + + line = iks_stack_alloc(lay->s, sizeof(struct Line)); + memset(line, 0, sizeof(struct Line)); + + if (!lay->lines) lay->lines = line; + if (lay->last_line) lay->last_line->next = line; + lay->last_line = line; + + return line; +} + +static struct Span * +add_span(struct Layout *lay, char *text, int len, int size, int styles) +{ + struct Line *line; + struct Span *span; + + span = iks_stack_alloc(lay->s, sizeof(struct Span)); + memset(span, 0, sizeof(struct Span)); + span->text = text; + span->len = len; + span->size = size; + span->styles = styles; + + line = lay->last_line; + if (!line) line = add_line(lay); + if (line->spans) { + span->x = line->last_span->x + line->last_span->w; + span->y = line->last_span->y; + } else { + span->x = line->x; + span->y = line->y; + } + + if (!line->spans) line->spans = span; + if (line->last_span) line->last_span->next = span; + line->last_span = span; + + return span; +} + +static void +calc_sizes(ImpRenderCtx *ctx, void *drw_data, struct Layout *lay) +{ + struct Line *line; + struct Span *span; + + for (line = lay->lines; line; line = line->next) { + for (span = line->spans; span; span = span->next) { + ctx->drw->get_text_size(drw_data, + span->text, span->len, + span->size, span->styles, + &span->w, &span->h + ); + line->w += span->w; + if (span->h > line->h) line->h = span->h; + } + if (line->w > lay->tw) lay->tw = line->w; + lay->th += line->h; + } +} + +static void +calc_pos(ImpRenderCtx *ctx, struct Layout *lay) +{ + struct Line *line; + struct Span *span; + int x, y, x2; + + x = lay->x; + y = lay->y; + for (line = lay->lines; line; line = line->next) { + line->x = x; + line->y = y; + y += line->h; + x2 = x; + for (span = line->spans; span; span = span->next) { + span->x = x2; + span->y = y; + x2 += span->w; + } + } +} + +static void +_imp_draw_layout(ImpRenderCtx *ctx, void *drw_data, struct Layout *lay) +{ + struct Line *line; + struct Span *span; + + for (line = lay->lines; line; line = line->next) { + for (span = line->spans; span; span = span->next) { + ctx->drw->set_fg_color(drw_data, &span->fg); + ctx->drw->draw_text(drw_data, + span->x, span->y, + span->text, span->len, + span->size, + span->styles + ); + } + } +} + +static void +text_span(ImpRenderCtx *ctx, struct Layout *lay, iks *node, char *text, size_t len) +{ + struct Span *span; + double cm; + char *attr, *t, *s; + int px = 0, cont = 1; + int styles = IMP_NORMAL; + + attr = r_get_style(ctx, node, "fo:font-size"); + if (attr) { + cm = atof(attr); + if (strstr(attr, "pt")) cm = cm * 2.54 / 102; + px = cm * ctx->fact_y; + } + attr = r_get_style(ctx, node, "fo:font-weight"); + if (attr && strcmp(attr, "bold") == 0) styles |= IMP_BOLD; + attr = r_get_style(ctx, node, "style:text-underline"); + if (attr && strcmp(attr, "single") == 0) styles |= IMP_UNDERLINE; + attr = r_get_style(ctx, node, "fo:font-style"); + if (attr && strcmp(attr, "italic") == 0) styles |= IMP_ITALIC; + + t = text; + while (cont) { + s = strchr(t, '\n'); + if (s) { + int len2 = s - t; + span = add_span(lay, t, len2, px, styles); + t = s + 1; + len -= len2; + add_line(lay); + } else { + span = add_span(lay, text, len, px, styles); + cont = 0; + } + r_get_color(ctx, node, "fo:color", &span->fg); + } +} + +static void +text_p(ImpRenderCtx *ctx, struct Layout *lay, iks *node) +{ + iks *n, *n2; + + add_line(lay); + for (n = iks_child(node); n; n = iks_next(n)) { + if (iks_type(n) == IKS_CDATA) { + text_span(ctx, lay, node, iks_cdata(n), iks_cdata_size(n)); + } else if (iks_strcmp(iks_name(n), "text:span") == 0) { + for (n2 = iks_child(n); n2; n2 = iks_next(n2)) { + if (iks_type(n2) == IKS_CDATA) { + text_span(ctx, lay, n2, iks_cdata(n2), iks_cdata_size(n2)); + } else if (iks_strcmp(iks_name(n2), "text:s") == 0) { + char *attr; + int c = 1; + attr = iks_find_attrib(n2, "text:c"); + if (attr) c = atoi(attr); + if (c > 127) { + c = 127; + puts("bork bork"); + } + text_span(ctx, lay, n, lay->spaces, c); + } else if (iks_strcmp(iks_name(n2), "text:a") == 0) { + text_span(ctx, lay, n, iks_cdata(iks_child(n2)), iks_cdata_size(iks_child(n2))); + } else if (iks_strcmp(iks_name(n2), "text:tab-stop") == 0) { + text_span(ctx, lay, n, "\t", 1); + } else if (iks_strcmp(iks_name(n2), "text:page-number") == 0) { + char buf[8]; + sprintf(buf, "%d", ctx->page->nr); + text_span(ctx, lay, n, iks_stack_strdup(lay->s, buf, 0), strlen(buf)); + } + } + } else if (iks_strcmp(iks_name(n), "text:line-break") == 0) { + add_line(lay); + } else if (iks_strcmp(iks_name(n), "text:a") == 0) { + text_span(ctx, lay, n, iks_cdata(iks_child(n)), iks_cdata_size(iks_child(n))); + } else if (iks_strcmp(iks_name(n), "text:page-number") == 0) { + char buf[8]; + sprintf(buf, "%d", ctx->page->nr); + text_span(ctx, lay, n, iks_stack_strdup(lay->s, buf, 0), strlen(buf)); + } + } +} + +static void +text_list(ImpRenderCtx *ctx, struct Layout *lay, iks *node) +{ + iks *n, *n2; + + for (n = iks_first_tag(node); n; n = iks_next_tag(n)) { + for (n2 = iks_first_tag(n); n2; n2 = iks_next_tag(n2)) { + if (strcmp(iks_name(n2), "text:p") == 0) { + text_p(ctx, lay, n2); + } else if (strcmp(iks_name(n2), "text:ordered-list") == 0) { + text_list(ctx, lay, n2); + } else if (strcmp(iks_name(n2), "text:unordered-list") == 0) { + text_list(ctx, lay, n2); + } else if (strcmp(iks_name(n2), "text:list") == 0) { + text_list(ctx, lay, n2); + } + } + } +} + +void +r_text(ImpRenderCtx *ctx, void *drw_data, iks *node) +{ + struct Layout lay; + iks *n; + + memset(&lay, 0, sizeof(struct Layout)); + memset(&lay.spaces, ' ', 128); + lay.s = iks_stack_new(sizeof(struct Span) * 16, 0); + lay.x = r_get_x(ctx, node, "svg:x"); + lay.y = r_get_y(ctx, node, "svg:y"); + lay.w = r_get_y(ctx, node, "svg:width"); + lay.h = r_get_y(ctx, node, "svg:height"); + + for (n = iks_first_tag(node); n; n = iks_next_tag(n)) { + if (strcmp(iks_name(n), "text:p") == 0) { + text_p(ctx, &lay, n); + } else if (strcmp(iks_name(n), "text:ordered-list") == 0) { + text_list(ctx, &lay, n); + } else if (strcmp(iks_name(n), "text:unordered-list") == 0) { + text_list(ctx, &lay, n); + } else if (strcmp(iks_name(n), "text:list") == 0) { + text_list(ctx, &lay, n); + } + } + + calc_sizes(ctx, drw_data, &lay); + calc_pos(ctx, &lay); + _imp_draw_layout(ctx, drw_data, &lay); + + iks_stack_delete(lay.s); +} +/* +static void +text_span (render_ctx *ctx, text_ctx *tc, struct layout_s *lout, iks *node, char *text, int len) +{ + if (tc->bullet_flag && tc->bullet_sz) size = tc->bullet_sz; else size = r_get_font_size (ctx, tc, node); +} + +static int +is_animated (render_ctx *ctx, text_ctx *tc, iks *node) +{ + if (!ctx->step_mode) return 0; + if (!tc->id) return 0; + while (strcmp (iks_name (node), "draw:page") != 0 + && strcmp (iks_name (node), "style:master-page") != 0) + node = iks_parent (node); + node = iks_find (node, "presentation:animations"); + if (!node) return 0; + if (iks_find_with_attrib (node, "presentation:show-text", "draw:shape-id", tc->id)) return 1; + return 0; +} + +static void +text_p (render_ctx *ctx, text_ctx *tc, iks *node) +{ + if (is_animated (ctx, tc, node) && ctx->step_cnt >= ctx->step) lout->flag = 0; + ctx->step_cnt++; + + attr = r_get_style (ctx, node, "text:enable-numbering"); + if (attr && strcmp (attr, "true") == 0) { + if (iks_child (node) && tc->bullet) { + tc->bullet_flag = 1; + text_span (ctx, tc, lout, node, tc->bullet, strlen (tc->bullet)); + text_span (ctx, tc, lout, node, " ", 1); + tc->bullet_flag = 0; + } + } + + if (!lout->text) { +lout->h = 0; +attr = r_get_style (ctx, node, "fo:line-height"); +if (attr) { + int ratio = atoi (attr); + lout->lh = ratio; +} else { + lout->lh = 100; +} +tc->layouts = g_list_append (tc->layouts, lout); +// g_object_unref (lout->play); +// iks_stack_delete (s); + return; + } + + attr = r_get_style (ctx, node, "fo:text-align"); + if (attr) { + if (strcmp (attr, "center") == 0) + pango_layout_set_alignment (lout->play, PANGO_ALIGN_CENTER); + else if (strcmp (attr, "end") == 0) + pango_layout_set_alignment (lout->play, PANGO_ALIGN_RIGHT); + } + pango_layout_set_width (lout->play, tc->w * PANGO_SCALE); + pango_layout_set_markup (lout->play, lout->text, lout->text_len); + pango_layout_get_pixel_size (lout->play, &lout->w, &lout->h); + attr = r_get_style (ctx, node, "fo:line-height"); + if (attr) { + int ratio = atoi (attr); + lout->lh = ratio; + } else { + lout->lh = 100; + } + tc->layouts = g_list_append (tc->layouts, lout); +} + +static void +find_bullet (render_ctx *ctx, text_ctx *tc, iks *node) +{ + iks *x; + char *t; + x = r_get_bullet (ctx, node, "text:list-level-style-bullet"); + x = iks_find (x, "text:list-level-style-bullet"); + t = iks_find_attrib (x, "text:bullet-char"); + if (t) tc->bullet = t; else tc->bullet = "*"; + x = iks_find (x, "style:properties"); + t = iks_find_attrib (x, "fo:font-size"); + if (t) tc->bullet_sz = tc->last_sz * atoi (t) / 100; + else tc->bullet_sz = 0; +} + +void +r_text (render_ctx *ctx, iks *node) +{ + tc.id = iks_find_attrib (node, "draw:id"); + ctx->step_cnt = 0; + for (n = iks_first_tag (node); n; n = iks_next_tag (n)) { + if (strcmp (iks_name (n), "text:p") == 0) { + text_p (ctx, &tc, n); + } else if (strcmp (iks_name (n), "text:ordered-list") == 0) { + text_list (ctx, &tc, n); + } else if (strcmp (iks_name (n), "text:unordered-list") == 0) { + find_bullet (ctx, &tc, n); + text_list (ctx, &tc, n); + tc.bullet = 0; + } + } + +*/ diff --git a/backend/impress/render.c b/backend/impress/render.c new file mode 100644 index 00000000..67b80756 --- /dev/null +++ b/backend/impress/render.c @@ -0,0 +1,54 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "internal.h" + +ImpRenderCtx * +imp_create_context(const ImpDrawer *drw) +{ + ImpRenderCtx *ctx; + + ctx = calloc(1, sizeof(ImpRenderCtx)); + if (!ctx) return NULL; + ctx->drw = drw; + return ctx; +} + +void +imp_context_set_page(ImpRenderCtx *ctx, ImpPage *page) +{ + ctx->page = page; + ctx->content = page->doc->content; + ctx->styles = page->doc->styles; +} + +void +imp_context_set_step(ImpRenderCtx *ctx, int step) +{ + ctx->step = step; +} + +void +imp_render(ImpRenderCtx *ctx, void *drw_data) +{ + // find drawing area size + ctx->drw->get_size(drw_data, &ctx->pix_w, &ctx->pix_h); + // find page size + ctx->page->doc->get_geometry(ctx); + // calculate ratio + ctx->fact_x = ctx->pix_w / ctx->cm_w; + ctx->fact_y = ctx->pix_h / ctx->cm_h; + // call renderer + ctx->page->doc->render_page(ctx, drw_data); +} + +void +imp_delete_context(ImpRenderCtx *ctx) +{ + free(ctx); +} diff --git a/backend/impress/zip.c b/backend/impress/zip.c new file mode 100644 index 00000000..b1f25c8c --- /dev/null +++ b/backend/impress/zip.c @@ -0,0 +1,349 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +#include <config.h> +#include "common.h" +#include "zip.h" +#include <zlib.h> +#define _(x) x + +typedef unsigned long ulong; + +enum { + ZIP_OK = 0, + ZIP_NOMEM, + ZIP_NOSIG, + ZIP_BADZIP, + ZIP_NOMULTI, + ZIP_EOPEN, + ZIP_EREAD, + ZIP_NOFILE +}; + +struct zipfile { + struct zipfile *next; + char *name; + ulong crc; + ulong zip_size; + ulong real_size; + ulong pos; +}; + +struct zip_struct { + FILE *f; + struct zipfile *files; + ulong cd_pos; + ulong cd_size; + ulong cd_offset; + ulong head_size; + ulong rem_size; + ulong nr_files; +}; + +char * +zip_error (int err) +{ + char *ret; + + switch (err) { + case ZIP_OK: + ret = _("No error"); + break; + case ZIP_NOMEM: + ret = _("Not enough memory"); + break; + case ZIP_NOSIG: + ret = _("Cannot find ZIP signature"); + break; + case ZIP_BADZIP: + ret = _("Invalid ZIP file"); + break; + case ZIP_NOMULTI: + ret = _("Multi file ZIPs are not supported"); + break; + case ZIP_EOPEN: + ret = _("Cannot open the file"); + break; + case ZIP_EREAD: + ret = _("Cannot read data from file"); + break; + case ZIP_NOFILE: + ret = _("Cannot find file in the ZIP archive"); + break; + default: + ret = _("Unknown error"); + break; + } + return ret; +} + +static int +find_cd (zip *z) +{ + FILE *f; + char *buf; + ulong size, pos, i, flag; + + f = z->f; + if (fseek (f, 0, SEEK_END) != 0) return 1; + size = ftell (f); + if (size < 0xffff) pos = 0; else pos = size - 0xffff; + buf = malloc (size - pos + 1); + if (!buf) return 1; + if (fseek (f, pos, SEEK_SET) != 0) { + free (buf); + return 1; + } + if (fread (buf, size - pos, 1, f) != 1) { + free (buf); + return 1; + } + flag = 0; + for (i = size - pos - 3; i > 0; i--) { + if (buf[i] == 0x50 && buf[i+1] == 0x4b && buf[i+2] == 0x05 && buf[i+3] == 0x06) { + z->cd_pos = i + pos; + flag = 1; + break; + } + } + free (buf); + if (flag != 1) return 1; + return 0; +} + +static unsigned long +get_long (unsigned char *buf) +{ + return buf[0] + (buf[1] << 8) + (buf[2] << 16) + (buf[3] << 24); +} + +static unsigned long +get_word (unsigned char *buf) +{ + return buf[0] + (buf[1] << 8); +} + +static int +list_files (zip *z) +{ + unsigned char buf[46]; + struct zipfile *zfile; + ulong pat, fn_size; + int nr = 0; + + pat = z->cd_offset; + while (nr < z->nr_files) { + fseek (z->f, pat + z->head_size, SEEK_SET); + + if (fread (buf, 46, 1, z->f) != 1) return ZIP_EREAD; + if (get_long (buf) != 0x02014b50) return ZIP_BADZIP; + + zfile = malloc (sizeof (struct zipfile)); + if (!zfile) return ZIP_NOMEM; + memset (zfile, 0, sizeof (struct zipfile)); + + zfile->crc = get_long (buf + 16); + zfile->zip_size = get_long (buf + 20); + zfile->real_size = get_long (buf + 24); + fn_size = get_word (buf + 28); + zfile->pos = get_long (buf + 42); + + zfile->name = malloc (fn_size + 1); + if (!zfile->name) { + free (zfile); + return ZIP_NOMEM; + } + fread (zfile->name, fn_size, 1, z->f); + zfile->name[fn_size] = '\0'; + + zfile->next = z->files; + z->files = zfile; + + pat += 0x2e + fn_size + get_word (buf + 30) + get_word (buf + 32); + nr++; + } + return ZIP_OK; +} + +zip * +zip_open (const char *fname, int *err) +{ + unsigned char buf[22]; + zip *z; + FILE *f; + + f = fopen (fname, "rb"); + if (NULL == f) { + *err = ZIP_EOPEN; + return NULL; + } + + z = malloc (sizeof (zip)); + memset (z, 0, sizeof (zip)); + z->f = f; + + if (find_cd (z)) { + zip_close (z); + *err = ZIP_NOSIG; + return NULL; + } + + fseek (f, z->cd_pos, SEEK_SET); + if (fread (buf, 22, 1, f) != 1) { + zip_close (z); + *err = ZIP_EREAD; + return NULL; + } + z->nr_files = get_word (buf + 10); + if (get_word (buf + 8) != z->nr_files) { + zip_close (z); + *err = ZIP_NOMULTI; + return NULL; + } + z->cd_size = get_long (buf + 12); + z->cd_offset = get_long (buf + 16); + z->rem_size = get_word (buf + 20); + z->head_size = z->cd_pos - (z->cd_offset + z->cd_size); + + *err = list_files (z); + if (*err != ZIP_OK) { + zip_close (z); + return NULL; + } + + *err = ZIP_OK; + return z; +} + +void +zip_close (zip *z) +{ + struct zipfile *zfile, *tmp; + + zfile = z->files; + while (zfile) { + tmp = zfile->next; + if (zfile->name) free (zfile->name); + free (zfile); + zfile = tmp; + } + z->files = NULL; + if (z->f) fclose (z->f); + z->f = NULL; +} + +static struct zipfile * +find_file (zip *z, const char *name) +{ + struct zipfile *zfile; + + zfile = z->files; + while (zfile) { + if (strcmp (zfile->name, name) == 0) return zfile; + zfile = zfile->next; + } + return NULL; +} + +static int +seek_file (zip *z, struct zipfile *zfile) +{ + unsigned char buf[30]; + + fseek (z->f, zfile->pos + z->head_size, SEEK_SET); + if (fread (buf, 30, 1, z->f) != 1) return ZIP_EREAD; + if (get_long (buf) != 0x04034b50) return ZIP_BADZIP; + fseek (z->f, get_word (buf + 26) + get_word (buf + 28), SEEK_CUR); + return ZIP_OK; +} + +iks * +zip_load_xml (zip *z, const char *name, int *err) +{ + iksparser *prs; + char *real_buf; + iks *x; + struct zipfile *zfile; + + *err = ZIP_OK; + + zfile = find_file (z, name); + if (!zfile) { + *err = ZIP_NOFILE; + return NULL; + } + + seek_file (z, zfile); + + real_buf = malloc (zfile->real_size + 1); + if (zfile->zip_size < zfile->real_size) { + char *zip_buf; + z_stream zs; + zs.zalloc = NULL; + zs.zfree = NULL; + zs.opaque = NULL; + zip_buf = malloc (zfile->zip_size); + fread (zip_buf, zfile->zip_size, 1, z->f); + zs.next_in = zip_buf; + zs.avail_in = zfile->zip_size; + zs.next_out = real_buf; + zs.avail_out = zfile->real_size; + inflateInit2 (&zs, -MAX_WBITS); + inflate (&zs, Z_FINISH); + inflateEnd (&zs); + free (zip_buf); + } else { + fread (real_buf, zfile->real_size, 1, z->f); + } + + real_buf[zfile->real_size] = '\0'; + prs = iks_dom_new (&x); + iks_parse (prs, real_buf, zfile->real_size, 1); + iks_parser_delete (prs); + free (real_buf); + return x; +} + +unsigned long zip_get_size (zip *z, const char *name) +{ + struct zipfile *zf; + + zf = find_file (z, name); + if (!zf) return 0; + return zf->real_size; +} + +int zip_load (zip *z, const char *name, char *buf) +{ + struct zipfile *zfile; + + zfile = find_file (z, name); + if (!zfile) return ZIP_NOFILE; + + seek_file (z, zfile); + + if (zfile->zip_size < zfile->real_size) { + char *zip_buf; + z_stream zs; + zs.zalloc = NULL; + zs.zfree = NULL; + zs.opaque = NULL; + zip_buf = malloc (zfile->zip_size); + fread (zip_buf, zfile->zip_size, 1, z->f); + zs.next_in = zip_buf; + zs.avail_in = zfile->zip_size; + zs.next_out = buf; + zs.avail_out = zfile->real_size; + inflateInit2 (&zs, -MAX_WBITS); + inflate (&zs, Z_FINISH); + inflateEnd (&zs); + free (zip_buf); + } else { + fread (buf, zfile->real_size, 1, z->f); + } + + return ZIP_OK; +} diff --git a/backend/impress/zip.h b/backend/impress/zip.h new file mode 100644 index 00000000..23ff3631 --- /dev/null +++ b/backend/impress/zip.h @@ -0,0 +1,18 @@ +/* imposter (OO.org Impress viewer) +** Copyright (C) 2003-2005 Gurer Ozen +** This code is free software; you can redistribute it and/or +** modify it under the terms of GNU General Public License. +*/ + +struct zip_struct; +typedef struct zip_struct zip; + +char *zip_error (int err); + +zip *zip_open (const char *fname, int *err); +void zip_close (zip *z); + +iks *zip_load_xml (zip *z, const char *name, int *err); + +unsigned long zip_get_size (zip *z, const char *name); +int zip_load (zip *z, const char *name, char *buf); diff --git a/backend/pdf/Makefile.am b/backend/pdf/Makefile.am new file mode 100644 index 00000000..725a512c --- /dev/null +++ b/backend/pdf/Makefile.am @@ -0,0 +1,34 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(POPPLER_CFLAGS) \ + $(WARN_CXXFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libpdfdocument.la + +libpdfdocument_la_SOURCES = \ + ev-poppler.cc \ + ev-poppler.h + +libpdfdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libpdfdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + $(POPPLER_LIBS) \ + $(CAIRO_PDF_LIBS) \ + $(CAIRO_PS_LIBS) + +backend_in_files = pdfdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc new file mode 100644 index 00000000..e2abb55d --- /dev/null +++ b/backend/pdf/ev-poppler.cc @@ -0,0 +1,3290 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009, Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (C) 2004, Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <math.h> +#include <string.h> +#include <gtk/gtk.h> +#include <poppler.h> +#include <poppler-document.h> +#include <poppler-page.h> +#ifdef HAVE_CAIRO_PDF +#include <cairo-pdf.h> +#endif +#ifdef HAVE_CAIRO_PS +#include <cairo-ps.h> +#endif +#include <glib/gi18n-lib.h> + +#include "ev-poppler.h" +#include "ev-file-exporter.h" +#include "ev-document-find.h" +#include "ev-document-misc.h" +#include "ev-document-links.h" +#include "ev-document-images.h" +#include "ev-document-fonts.h" +#include "ev-document-security.h" +#include "ev-document-thumbnails.h" +#include "ev-document-transition.h" +#include "ev-document-forms.h" +#include "ev-document-layers.h" +#include "ev-document-print.h" +#include "ev-document-annotations.h" +#include "ev-document-attachments.h" +#include "ev-document-text.h" +#include "ev-selection.h" +#include "ev-transition-effect.h" +#include "ev-attachment.h" +#include "ev-image.h" + +#include <libxml/tree.h> +#include <libxml/parser.h> +#include <libxml/xpath.h> +#include <libxml/xpathInternals.h> + +#if (defined (HAVE_CAIRO_PDF) || defined (HAVE_CAIRO_PS)) +#define HAVE_CAIRO_PRINT +#endif + +/* fields from the XMP Rights Management Schema, XMP Specification Sept 2005, pag. 45 */ +#define LICENSE_MARKED "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:Marked" +#define LICENSE_TEXT "/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]" +#define LICENSE_WEB_STATEMENT "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:WebStatement" +/* license field from Creative Commons schema, http://creativecommons.org/ns */ +#define LICENSE_URI "/x:xmpmeta/rdf:RDF/rdf:Description/cc:license/@rdf:resource" + +typedef struct { + EvFileExporterFormat format; + + /* Pages per sheet */ + gint pages_per_sheet; + gint pages_printed; + gint pages_x; + gint pages_y; + gdouble paper_width; + gdouble paper_height; + +#ifdef HAVE_CAIRO_PRINT + cairo_t *cr; +#else + PopplerPSFile *ps_file; +#endif +} PdfPrintContext; + +struct _PdfDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _PdfDocument +{ + EvDocument parent_instance; + + PopplerDocument *document; + gchar *password; + gboolean forms_modified; + gboolean annots_modified; + + PopplerFontInfo *font_info; + PopplerFontsIter *fonts_iter; + int fonts_scanned_pages; + + PdfPrintContext *print_ctx; + + GList *layers; + GHashTable *annots; +}; + +static void pdf_document_security_iface_init (EvDocumentSecurityInterface *iface); +static void pdf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); +static void pdf_document_document_links_iface_init (EvDocumentLinksInterface *iface); +static void pdf_document_document_images_iface_init (EvDocumentImagesInterface *iface); +static void pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface); +static void pdf_document_document_fonts_iface_init (EvDocumentFontsInterface *iface); +static void pdf_document_document_layers_iface_init (EvDocumentLayersInterface *iface); +static void pdf_document_document_print_iface_init (EvDocumentPrintInterface *iface); +static void pdf_document_document_annotations_iface_init (EvDocumentAnnotationsInterface *iface); +static void pdf_document_document_attachments_iface_init (EvDocumentAttachmentsInterface *iface); +static void pdf_document_find_iface_init (EvDocumentFindInterface *iface); +static void pdf_document_file_exporter_iface_init (EvFileExporterInterface *iface); +static void pdf_selection_iface_init (EvSelectionInterface *iface); +static void pdf_document_page_transition_iface_init (EvDocumentTransitionInterface *iface); +static void pdf_document_text_iface_init (EvDocumentTextInterface *iface); +static void pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails, + EvRenderContext *rc, + gint *width, + gint *height); +static int pdf_document_get_n_pages (EvDocument *document); + +static EvLinkDest *ev_link_dest_from_dest (PdfDocument *pdf_document, + PopplerDest *dest); +static EvLink *ev_link_from_action (PdfDocument *pdf_document, + PopplerAction *action); +static void pdf_print_context_free (PdfPrintContext *ctx); +static gboolean attachment_save_to_buffer (PopplerAttachment *attachment, + gchar **buffer, + gsize *buffer_size, + GError **error); + +EV_BACKEND_REGISTER_WITH_CODE (PdfDocument, pdf_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_SECURITY, + pdf_document_security_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + pdf_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS, + pdf_document_document_links_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_IMAGES, + pdf_document_document_images_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FORMS, + pdf_document_document_forms_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FONTS, + pdf_document_document_fonts_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LAYERS, + pdf_document_document_layers_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_PRINT, + pdf_document_document_print_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_ANNOTATIONS, + pdf_document_document_annotations_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_ATTACHMENTS, + pdf_document_document_attachments_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND, + pdf_document_find_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, + pdf_document_file_exporter_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_SELECTION, + pdf_selection_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TRANSITION, + pdf_document_page_transition_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TEXT, + pdf_document_text_iface_init); + }); + +static void +pdf_document_dispose (GObject *object) +{ + PdfDocument *pdf_document = PDF_DOCUMENT(object); + + if (pdf_document->print_ctx) { + pdf_print_context_free (pdf_document->print_ctx); + pdf_document->print_ctx = NULL; + } + + if (pdf_document->annots) { + g_hash_table_destroy (pdf_document->annots); + pdf_document->annots = NULL; + } + + if (pdf_document->document) { + g_object_unref (pdf_document->document); + } + + if (pdf_document->font_info) { + poppler_font_info_free (pdf_document->font_info); + } + + if (pdf_document->fonts_iter) { + poppler_fonts_iter_free (pdf_document->fonts_iter); + } + + if (pdf_document->layers) { + g_list_foreach (pdf_document->layers, (GFunc)g_object_unref, NULL); + g_list_free (pdf_document->layers); + } + + G_OBJECT_CLASS (pdf_document_parent_class)->dispose (object); +} + +static void +pdf_document_init (PdfDocument *pdf_document) +{ + pdf_document->password = NULL; +} + +static void +convert_error (GError *poppler_error, + GError **error) +{ + if (poppler_error == NULL) + return; + + if (poppler_error->domain == POPPLER_ERROR) { + /* convert poppler errors into EvDocument errors */ + gint code = EV_DOCUMENT_ERROR_INVALID; + if (poppler_error->code == POPPLER_ERROR_INVALID) + code = EV_DOCUMENT_ERROR_INVALID; + else if (poppler_error->code == POPPLER_ERROR_ENCRYPTED) + code = EV_DOCUMENT_ERROR_ENCRYPTED; + + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + code, + poppler_error->message); + + g_error_free (poppler_error); + } else { + g_propagate_error (error, poppler_error); + } +} + + +/* EvDocument */ +static gboolean +pdf_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + gboolean retval; + GError *poppler_error = NULL; + + if (pdf_document->forms_modified || pdf_document->annots_modified) { + retval = poppler_document_save (pdf_document->document, + uri, &poppler_error); + if (retval) { + pdf_document->forms_modified = FALSE; + pdf_document->annots_modified = FALSE; + } + } else { + retval = poppler_document_save_a_copy (pdf_document->document, + uri, &poppler_error); + } + + if (! retval) + convert_error (poppler_error, error); + + return retval; +} + +static gboolean +pdf_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + GError *poppler_error = NULL; + PdfDocument *pdf_document = PDF_DOCUMENT (document); + + pdf_document->document = + poppler_document_new_from_file (uri, pdf_document->password, &poppler_error); + + if (pdf_document->document == NULL) { + convert_error (poppler_error, error); + return FALSE; + } + + return TRUE; +} + +static int +pdf_document_get_n_pages (EvDocument *document) +{ + return poppler_document_get_n_pages (PDF_DOCUMENT (document)->document); +} + +static EvPage * +pdf_document_get_page (EvDocument *document, + gint index) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + PopplerPage *poppler_page; + EvPage *page; + + poppler_page = poppler_document_get_page (pdf_document->document, index); + page = ev_page_new (index); + page->backend_page = (EvBackendPage)g_object_ref (poppler_page); + page->backend_destroy_func = (EvBackendPageDestroyFunc)g_object_unref; + g_object_unref (poppler_page); + + return page; +} + +static void +pdf_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + g_return_if_fail (POPPLER_IS_PAGE (page->backend_page)); + + poppler_page_get_size (POPPLER_PAGE (page->backend_page), width, height); +} + +static char * +pdf_document_get_page_label (EvDocument *document, + EvPage *page) +{ + char *label = NULL; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + g_object_get (G_OBJECT (page->backend_page), + "label", &label, + NULL); + return label; +} + +static cairo_surface_t * +pdf_page_render (PopplerPage *page, + gint width, + gint height, + EvRenderContext *rc) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + width, height); + cr = cairo_create (surface); + + switch (rc->rotation) { + case 90: + cairo_translate (cr, width, 0); + break; + case 180: + cairo_translate (cr, width, height); + break; + case 270: + cairo_translate (cr, 0, height); + break; + default: + cairo_translate (cr, 0, 0); + } + cairo_scale (cr, rc->scale, rc->scale); + cairo_rotate (cr, rc->rotation * G_PI / 180.0); + poppler_page_render (page, cr); + + cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_destroy (cr); + + return surface; +} + +static cairo_surface_t * +pdf_document_render (EvDocument *document, + EvRenderContext *rc) +{ + PdfDocument *pdf_document; + PopplerPage *poppler_page; + double width_points, height_points; + gint width, height; + + poppler_page = POPPLER_PAGE (rc->page->backend_page); + + poppler_page_get_size (poppler_page, + &width_points, &height_points); + + if (rc->rotation == 90 || rc->rotation == 270) { + width = (int) ((height_points * rc->scale) + 0.5); + height = (int) ((width_points * rc->scale) + 0.5); + } else { + width = (int) ((width_points * rc->scale) + 0.5); + height = (int) ((height_points * rc->scale) + 0.5); + } + + return pdf_page_render (poppler_page, + width, height, rc); +} + +/* reference: +http://www.pdfa.org/lib/exe/fetch.php?id=pdfa%3Aen%3Atechdoc&cache=cache&media=pdfa:techdoc:tn0001_pdfa-1_and_namespaces_2008-03-18.pdf */ +static char * +pdf_document_get_format_from_metadata (xmlDocPtr doc, + xmlXPathContextPtr xpathCtx) +{ + xmlXPathObjectPtr xpathObj; + xmlChar *part = NULL; + xmlChar *conf = NULL; + char *result = NULL; + int i; + + /* add pdf/a namespaces */ + xmlXPathRegisterNs (xpathCtx, BAD_CAST "x", BAD_CAST "adobe:ns:meta/"); + xmlXPathRegisterNs (xpathCtx, BAD_CAST "rdf", BAD_CAST "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); + xmlXPathRegisterNs (xpathCtx, BAD_CAST "pdfaid", BAD_CAST "http://www.aiim.org/pdfa/ns/id/"); + + /* reads pdf/a part */ + /* first syntax: child node */ + xpathObj = xmlXPathEvalExpression (BAD_CAST "/x:xmpmeta/rdf:RDF/rdf:Description/pdfaid:part", xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0) + part = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + + xmlXPathFreeObject (xpathObj); + } + if (part == NULL) { + /* second syntax: attribute */ + xpathObj = xmlXPathEvalExpression (BAD_CAST "/x:xmpmeta/rdf:RDF/rdf:Description/@pdfaid:part", xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0) + part = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + + xmlXPathFreeObject (xpathObj); + } + } + + /* reads pdf/a conformance */ + /* first syntax: child node */ + xpathObj = xmlXPathEvalExpression (BAD_CAST "/x:xmpmeta/rdf:RDF/rdf:Description/pdfaid:conformance", xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0) + conf = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + + xmlXPathFreeObject (xpathObj); + } + if (conf == NULL) { + /* second syntax: attribute */ + xpathObj = xmlXPathEvalExpression (BAD_CAST "/x:xmpmeta/rdf:RDF/rdf:Description/@pdfaid:conformance", xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0) + conf = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + + xmlXPathFreeObject (xpathObj); + } + } + + if (part != NULL && conf != NULL) { + /* makes conf lowercase */ + for (i = 0; conf[i]; i++) + conf[i] = g_ascii_tolower (conf[i]); + + /* return buffer */ + result = g_strdup_printf ("PDF/A - %s%s", part, conf); + } + + /* Cleanup */ + xmlFree (part); + xmlFree (conf); + + return result; +} + +static EvDocumentLicense * +pdf_document_get_license_from_metadata (xmlDocPtr doc, + xmlXPathContextPtr xpathCtx) +{ + xmlXPathObjectPtr xpathObj; + xmlChar *marked = NULL; + const char *language_string; + char *aux; + gchar **tags; + gchar *tag, *tag_aux; + int i, j; + EvDocumentLicense *license; + + /* register namespaces */ + xmlXPathRegisterNs (xpathCtx, BAD_CAST "x", BAD_CAST "adobe:ns:meta/"); + xmlXPathRegisterNs (xpathCtx, BAD_CAST "rdf", BAD_CAST "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); + xmlXPathRegisterNs (xpathCtx, BAD_CAST "dc", BAD_CAST "http://purl.org/dc/elements/1.1/"); + /* XMP Rights Management Schema */ + xmlXPathRegisterNs (xpathCtx, BAD_CAST "xmpRights", BAD_CAST "http://ns.adobe.com/xap/1.0/rights/"); + /* Creative Commons Schema */ + xmlXPathRegisterNs (xpathCtx, BAD_CAST "cc", BAD_CAST "http://creativecommons.org/ns#"); + + /* checking if the document has been marked as defined on the XMP Rights + * Management Schema */ + xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_MARKED, xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && + xpathObj->nodesetval->nodeNr != 0) + marked = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + xmlXPathFreeObject (xpathObj); + } + + /* a) Not marked => No XMP Rights information */ + if (!marked) { + xmlFree (marked); + return NULL; + } + + license = ev_document_license_new (); + + /* b) Marked False => Public Domain, no copyrighted material and no + * license needed */ + if (g_strrstr ((char *) marked, "False") != NULL) { + license->text = g_strdup (_("This work is in the Public Domain")); + /* c) Marked True => Copyrighted material */ + } else { + /* Checking usage terms as defined by the XMP Rights Management + * Schema. This field is recomended to be checked by Creative + * Commons */ + /* 1) checking for a suitable localized string */ + language_string = pango_language_to_string (gtk_get_default_language ()); + tags = g_strsplit (language_string, "-", -1); + i = g_strv_length (tags); + while (i-- && !license->text) { + tag = g_strdup (tags[0]); + for (j = 1; j <= i; j++) { + tag_aux = g_strdup_printf ("%s-%s", tag, tags[j]); + g_free (tag); + tag = tag_aux; + } + aux = g_strdup_printf (LICENSE_TEXT, tag); + xpathObj = xmlXPathEvalExpression (BAD_CAST aux, xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && + xpathObj->nodesetval->nodeNr != 0) + license->text = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + xmlXPathFreeObject (xpathObj); + } + g_free (tag); + g_free (aux); + } + g_strfreev(tags); + + /* 2) if not, use the default string */ + if (!license->text) { + aux = g_strdup_printf (LICENSE_TEXT, "x-default"); + xpathObj = xmlXPathEvalExpression (BAD_CAST aux, xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && + xpathObj->nodesetval->nodeNr != 0) + license->text = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + xmlXPathFreeObject (xpathObj); + } + g_free (aux); + } + + /* Checking the license URI as defined by the Creative Commons + * Schema. This field is recomended to be checked by Creative + * Commons */ + xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_URI, xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && + xpathObj->nodesetval->nodeNr != 0) + license->uri = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + xmlXPathFreeObject (xpathObj); + } + + /* Checking the web statement as defined by the XMP Rights + * Management Schema. Checking it out is a sort of above-and-beyond + * the basic recommendations by Creative Commons. It can be + * considered as a "reinforcement" approach to add certainty. */ + xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_WEB_STATEMENT, xpathCtx); + if (xpathObj != NULL) { + if (xpathObj->nodesetval != NULL && + xpathObj->nodesetval->nodeNr != 0) + license->web_statement = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); + xmlXPathFreeObject (xpathObj); + } + } + xmlFree (marked); + + if (!license->text && !license->uri && !license->web_statement) { + ev_document_license_free (license); + return NULL; + } + + return license; +} + +static void +pdf_document_parse_metadata (const gchar *metadata, + EvDocumentInfo *info) +{ + xmlDocPtr doc; + xmlXPathContextPtr xpathCtx; + gchar *fmt; + + doc = xmlParseMemory (metadata, strlen (metadata)); + if (doc == NULL) + return; /* invalid xml metadata */ + + xpathCtx = xmlXPathNewContext (doc); + if (xpathCtx == NULL) { + xmlFreeDoc (doc); + return; /* invalid xpath context */ + } + + fmt = pdf_document_get_format_from_metadata (doc, xpathCtx); + if (fmt != NULL) { + g_free (info->format); + info->format = fmt; + } + + info->license = pdf_document_get_license_from_metadata (doc, xpathCtx); + + xmlXPathFreeContext (xpathCtx); + xmlFreeDoc (doc); +} + + +static EvDocumentInfo * +pdf_document_get_info (EvDocument *document) +{ + EvDocumentInfo *info; + PopplerPageLayout layout; + PopplerPageMode mode; + PopplerViewerPreferences view_prefs; + PopplerPermissions permissions; + EvPage *page; + char *metadata; + + info = g_new0 (EvDocumentInfo, 1); + + info->fields_mask = EV_DOCUMENT_INFO_TITLE | + EV_DOCUMENT_INFO_FORMAT | + EV_DOCUMENT_INFO_AUTHOR | + EV_DOCUMENT_INFO_SUBJECT | + EV_DOCUMENT_INFO_KEYWORDS | + EV_DOCUMENT_INFO_LAYOUT | + EV_DOCUMENT_INFO_START_MODE | + EV_DOCUMENT_INFO_PERMISSIONS | + EV_DOCUMENT_INFO_UI_HINTS | + EV_DOCUMENT_INFO_CREATOR | + EV_DOCUMENT_INFO_PRODUCER | + EV_DOCUMENT_INFO_CREATION_DATE | + EV_DOCUMENT_INFO_MOD_DATE | + EV_DOCUMENT_INFO_LINEARIZED | + EV_DOCUMENT_INFO_N_PAGES | + EV_DOCUMENT_INFO_SECURITY | + EV_DOCUMENT_INFO_PAPER_SIZE | + EV_DOCUMENT_INFO_LICENSE; + + g_object_get (PDF_DOCUMENT (document)->document, + "title", &(info->title), + "format", &(info->format), + "author", &(info->author), + "subject", &(info->subject), + "keywords", &(info->keywords), + "page-mode", &mode, + "page-layout", &layout, + "viewer-preferences", &view_prefs, + "permissions", &permissions, + "creator", &(info->creator), + "producer", &(info->producer), + "creation-date", &(info->creation_date), + "mod-date", &(info->modified_date), + "linearized", &(info->linearized), + "metadata", &metadata, + NULL); + + if (metadata != NULL) { + pdf_document_parse_metadata (metadata, info); + g_free (metadata); + } + + info->n_pages = ev_document_get_n_pages (document); + + if (info->n_pages > 0) { + ev_document_get_page_size (document, 0, + &(info->paper_width), + &(info->paper_height)); + // Convert to mm. + info->paper_width = info->paper_width / 72.0f * 25.4f; + info->paper_height = info->paper_height / 72.0f * 25.4f; + } + + switch (layout) { + case POPPLER_PAGE_LAYOUT_SINGLE_PAGE: + info->layout = EV_DOCUMENT_LAYOUT_SINGLE_PAGE; + break; + case POPPLER_PAGE_LAYOUT_ONE_COLUMN: + info->layout = EV_DOCUMENT_LAYOUT_ONE_COLUMN; + break; + case POPPLER_PAGE_LAYOUT_TWO_COLUMN_LEFT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT; + break; + case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT; + case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT; + break; + case POPPLER_PAGE_LAYOUT_TWO_PAGE_RIGHT: + info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT; + break; + default: + break; + } + + switch (mode) { + case POPPLER_PAGE_MODE_NONE: + info->mode = EV_DOCUMENT_MODE_NONE; + break; + case POPPLER_PAGE_MODE_USE_THUMBS: + info->mode = EV_DOCUMENT_MODE_USE_THUMBS; + break; + case POPPLER_PAGE_MODE_USE_OC: + info->mode = EV_DOCUMENT_MODE_USE_OC; + break; + case POPPLER_PAGE_MODE_FULL_SCREEN: + info->mode = EV_DOCUMENT_MODE_FULL_SCREEN; + break; + case POPPLER_PAGE_MODE_USE_ATTACHMENTS: + info->mode = EV_DOCUMENT_MODE_USE_ATTACHMENTS; + default: + break; + } + + info->ui_hints = 0; + if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_TOOLBAR) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_MENUBAR) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_MENUBAR; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_WINDOWUI) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_FIT_WINDOW) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_FIT_WINDOW; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_CENTER_WINDOW) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_CENTER_WINDOW; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_DISPLAY_DOC_TITLE) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE; + } + if (view_prefs & POPPLER_VIEWER_PREFERENCES_DIRECTION_RTL) { + info->ui_hints |= EV_DOCUMENT_UI_HINT_DIRECTION_RTL; + } + + info->permissions = 0; + if (permissions & POPPLER_PERMISSIONS_OK_TO_PRINT) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_MODIFY) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_COPY) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_COPY; + } + if (permissions & POPPLER_PERMISSIONS_OK_TO_ADD_NOTES) { + info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES; + } + + if (ev_document_security_has_document_security (EV_DOCUMENT_SECURITY (document))) { + /* translators: this is the document security state */ + info->security = g_strdup (_("Yes")); + } else { + /* translators: this is the document security state */ + info->security = g_strdup (_("No")); + } + + return info; +} + +static gboolean +pdf_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info) +{ + PopplerBackend backend; + + backend = poppler_get_backend (); + switch (backend) { + case POPPLER_BACKEND_CAIRO: + info->name = "poppler/cairo"; + break; + case POPPLER_BACKEND_SPLASH: + info->name = "poppler/splash"; + break; + default: + info->name = "poppler/unknown"; + break; + } + + info->version = poppler_get_version (); + + return TRUE; +} + +static gboolean +pdf_document_support_synctex (EvDocument *document) +{ + return TRUE; +} + +static void +pdf_document_class_init (PdfDocumentClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + g_object_class->dispose = pdf_document_dispose; + + ev_document_class->save = pdf_document_save; + ev_document_class->load = pdf_document_load; + ev_document_class->get_n_pages = pdf_document_get_n_pages; + ev_document_class->get_page = pdf_document_get_page; + ev_document_class->get_page_size = pdf_document_get_page_size; + ev_document_class->get_page_label = pdf_document_get_page_label; + ev_document_class->render = pdf_document_render; + ev_document_class->get_info = pdf_document_get_info; + ev_document_class->get_backend_info = pdf_document_get_backend_info; + ev_document_class->support_synctex = pdf_document_support_synctex; +} + +/* EvDocumentSecurity */ +static gboolean +pdf_document_has_document_security (EvDocumentSecurity *document_security) +{ + /* FIXME: do we really need to have this? */ + return FALSE; +} + +static void +pdf_document_set_password (EvDocumentSecurity *document_security, + const char *password) +{ + PdfDocument *document = PDF_DOCUMENT (document_security); + + if (document->password) + g_free (document->password); + + document->password = g_strdup (password); +} + +static void +pdf_document_security_iface_init (EvDocumentSecurityInterface *iface) +{ + iface->has_document_security = pdf_document_has_document_security; + iface->set_password = pdf_document_set_password; +} + +static gdouble +pdf_document_fonts_get_progress (EvDocumentFonts *document_fonts) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts); + int n_pages; + + n_pages = pdf_document_get_n_pages (EV_DOCUMENT (pdf_document)); + + return (double)pdf_document->fonts_scanned_pages / (double)n_pages; +} + +static gboolean +pdf_document_fonts_scan (EvDocumentFonts *document_fonts, + int n_pages) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts); + gboolean result; + + g_return_val_if_fail (PDF_IS_DOCUMENT (document_fonts), FALSE); + + if (pdf_document->font_info == NULL) { + pdf_document->font_info = poppler_font_info_new (pdf_document->document); + } + + if (pdf_document->fonts_iter) { + poppler_fonts_iter_free (pdf_document->fonts_iter); + } + + pdf_document->fonts_scanned_pages += n_pages; + + result = poppler_font_info_scan (pdf_document->font_info, n_pages, + &pdf_document->fonts_iter); + if (!result) { + pdf_document->fonts_scanned_pages = 0; + poppler_font_info_free (pdf_document->font_info); + pdf_document->font_info = NULL; + } + + return result; +} + +static const char * +font_type_to_string (PopplerFontType type) +{ + switch (type) { + case POPPLER_FONT_TYPE_TYPE1: + return _("Type 1"); + case POPPLER_FONT_TYPE_TYPE1C: + return _("Type 1C"); + case POPPLER_FONT_TYPE_TYPE3: + return _("Type 3"); + case POPPLER_FONT_TYPE_TRUETYPE: + return _("TrueType"); + case POPPLER_FONT_TYPE_CID_TYPE0: + return _("Type 1 (CID)"); + case POPPLER_FONT_TYPE_CID_TYPE0C: + return _("Type 1C (CID)"); + case POPPLER_FONT_TYPE_CID_TYPE2: + return _("TrueType (CID)"); + default: + return _("Unknown font type"); + } +} + +static void +pdf_document_fonts_fill_model (EvDocumentFonts *document_fonts, + GtkTreeModel *model) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts); + PopplerFontsIter *iter = pdf_document->fonts_iter; + + g_return_if_fail (PDF_IS_DOCUMENT (document_fonts)); + + if (!iter) + return; + + do { + GtkTreeIter list_iter; + const char *name; + const char *type; + const char *embedded; + char *details; + + name = poppler_fonts_iter_get_name (iter); + + if (name == NULL) { + name = _("No name"); + } + + type = font_type_to_string ( + poppler_fonts_iter_get_font_type (iter)); + + if (poppler_fonts_iter_is_embedded (iter)) { + if (poppler_fonts_iter_is_subset (iter)) + embedded = _("Embedded subset"); + else + embedded = _("Embedded"); + } else { + embedded = _("Not embedded"); + } + + details = g_markup_printf_escaped ("%s\n%s", type, embedded); + + gtk_list_store_append (GTK_LIST_STORE (model), &list_iter); + gtk_list_store_set (GTK_LIST_STORE (model), &list_iter, + EV_DOCUMENT_FONTS_COLUMN_NAME, name, + EV_DOCUMENT_FONTS_COLUMN_DETAILS, details, + -1); + + g_free (details); + } while (poppler_fonts_iter_next (iter)); +} + +static void +pdf_document_document_fonts_iface_init (EvDocumentFontsInterface *iface) +{ + iface->fill_model = pdf_document_fonts_fill_model; + iface->scan = pdf_document_fonts_scan; + iface->get_progress = pdf_document_fonts_get_progress; +} + +static gboolean +pdf_document_links_has_document_links (EvDocumentLinks *document_links) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_links); + PopplerIndexIter *iter; + + g_return_val_if_fail (PDF_IS_DOCUMENT (document_links), FALSE); + + iter = poppler_index_iter_new (pdf_document->document); + if (iter == NULL) + return FALSE; + poppler_index_iter_free (iter); + + return TRUE; +} + +static EvLinkDest * +ev_link_dest_from_dest (PdfDocument *pdf_document, + PopplerDest *dest) +{ + EvLinkDest *ev_dest = NULL; + const char *unimplemented_dest = NULL; + + g_assert (dest != NULL); + + switch (dest->type) { + case POPPLER_DEST_XYZ: { + PopplerPage *poppler_page; + double height; + + poppler_page = poppler_document_get_page (pdf_document->document, + MAX (0, dest->page_num - 1)); + poppler_page_get_size (poppler_page, NULL, &height); + ev_dest = ev_link_dest_new_xyz (dest->page_num - 1, + dest->left, + height - MIN (height, dest->top), + dest->zoom, + dest->change_left, + dest->change_top, + dest->change_zoom); + g_object_unref (poppler_page); + } + break; + case POPPLER_DEST_FITB: + case POPPLER_DEST_FIT: + ev_dest = ev_link_dest_new_fit (dest->page_num - 1); + break; + case POPPLER_DEST_FITBH: + case POPPLER_DEST_FITH: { + PopplerPage *poppler_page; + double height; + + poppler_page = poppler_document_get_page (pdf_document->document, + MAX (0, dest->page_num - 1)); + poppler_page_get_size (poppler_page, NULL, &height); + ev_dest = ev_link_dest_new_fith (dest->page_num - 1, + height - MIN (height, dest->top), + dest->change_top); + g_object_unref (poppler_page); + } + break; + case POPPLER_DEST_FITBV: + case POPPLER_DEST_FITV: + ev_dest = ev_link_dest_new_fitv (dest->page_num - 1, + dest->left, + dest->change_left); + break; + case POPPLER_DEST_FITR: { + PopplerPage *poppler_page; + double height; + + poppler_page = poppler_document_get_page (pdf_document->document, + MAX (0, dest->page_num - 1)); + poppler_page_get_size (poppler_page, NULL, &height); + ev_dest = ev_link_dest_new_fitr (dest->page_num - 1, + dest->left, + height - MIN (height, dest->bottom), + dest->right, + height - MIN (height, dest->top)); + g_object_unref (poppler_page); + } + break; + case POPPLER_DEST_NAMED: + ev_dest = ev_link_dest_new_named (dest->named_dest); + break; + case POPPLER_DEST_UNKNOWN: + unimplemented_dest = "POPPLER_DEST_UNKNOWN"; + break; + } + + if (unimplemented_dest) { + g_warning ("Unimplemented destination: %s, please post a " + "bug report in Evince bugzilla " + "(http://bugzilla.mate.org) with a testcase.", + unimplemented_dest); + } + + if (!ev_dest) + ev_dest = ev_link_dest_new_page (dest->page_num - 1); + + return ev_dest; +} + +static EvLink * +ev_link_from_action (PdfDocument *pdf_document, + PopplerAction *action) +{ + EvLink *link = NULL; + EvLinkAction *ev_action = NULL; + const char *unimplemented_action = NULL; + + switch (action->type) { + case POPPLER_ACTION_NONE: + break; + case POPPLER_ACTION_GOTO_DEST: { + EvLinkDest *dest; + + dest = ev_link_dest_from_dest (pdf_document, action->goto_dest.dest); + ev_action = ev_link_action_new_dest (dest); + } + break; + case POPPLER_ACTION_GOTO_REMOTE: { + EvLinkDest *dest; + + dest = ev_link_dest_from_dest (pdf_document, action->goto_remote.dest); + ev_action = ev_link_action_new_remote (dest, + action->goto_remote.file_name); + + } + break; + case POPPLER_ACTION_LAUNCH: + ev_action = ev_link_action_new_launch (action->launch.file_name, + action->launch.params); + break; + case POPPLER_ACTION_URI: + ev_action = ev_link_action_new_external_uri (action->uri.uri); + break; + case POPPLER_ACTION_NAMED: + ev_action = ev_link_action_new_named (action->named.named_dest); + break; + case POPPLER_ACTION_MOVIE: + unimplemented_action = "POPPLER_ACTION_MOVIE"; + break; +#if POPPLER_CHECK_VERSION (0, 13, 2) + case POPPLER_ACTION_RENDITION: + unimplemented_action = "POPPLER_ACTION_RENDITION"; + break; + case POPPLER_ACTION_OCG_STATE: + unimplemented_action = "POPPLER_ACTION_OCG_STATE"; + break; +#endif + case POPPLER_ACTION_UNKNOWN: + unimplemented_action = "POPPLER_ACTION_UNKNOWN"; + } + + if (unimplemented_action) { + g_warning ("Unimplemented action: %s, please post a bug report " + "in Evince bugzilla (http://bugzilla.mate.org) " + "with a testcase.", unimplemented_action); + } + + link = ev_link_new (action->any.title, ev_action); + + return link; +} + +static void +build_tree (PdfDocument *pdf_document, + GtkTreeModel *model, + GtkTreeIter *parent, + PopplerIndexIter *iter) +{ + + do { + GtkTreeIter tree_iter; + PopplerIndexIter *child; + PopplerAction *action; + EvLink *link = NULL; + gboolean expand; + char *title_markup; + + action = poppler_index_iter_get_action (iter); + expand = poppler_index_iter_is_open (iter); + + if (!action) + continue; + + switch (action->type) { + case POPPLER_ACTION_GOTO_DEST: { + /* For bookmarks, solve named destinations */ + if (action->goto_dest.dest->type == POPPLER_DEST_NAMED) { + PopplerDest *dest; + EvLinkDest *ev_dest = NULL; + EvLinkAction *ev_action; + + dest = poppler_document_find_dest (pdf_document->document, + action->goto_dest.dest->named_dest); + if (!dest) { + link = ev_link_from_action (pdf_document, action); + break; + } + + ev_dest = ev_link_dest_from_dest (pdf_document, dest); + poppler_dest_free (dest); + + ev_action = ev_link_action_new_dest (ev_dest); + link = ev_link_new (action->any.title, ev_action); + } else { + link = ev_link_from_action (pdf_document, action); + } + } + break; + default: + link = ev_link_from_action (pdf_document, action); + break; + } + + if (!link || strlen (ev_link_get_title (link)) <= 0) { + poppler_action_free (action); + if (link) + g_object_unref (link); + + continue; + } + + gtk_tree_store_append (GTK_TREE_STORE (model), &tree_iter, parent); + title_markup = g_markup_escape_text (ev_link_get_title (link), -1); + + gtk_tree_store_set (GTK_TREE_STORE (model), &tree_iter, + EV_DOCUMENT_LINKS_COLUMN_MARKUP, title_markup, + EV_DOCUMENT_LINKS_COLUMN_LINK, link, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, expand, + -1); + + g_free (title_markup); + g_object_unref (link); + + child = poppler_index_iter_get_child (iter); + if (child) + build_tree (pdf_document, model, &tree_iter, child); + poppler_index_iter_free (child); + poppler_action_free (action); + + } while (poppler_index_iter_next (iter)); +} + +static GtkTreeModel * +pdf_document_links_get_links_model (EvDocumentLinks *document_links) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_links); + GtkTreeModel *model = NULL; + PopplerIndexIter *iter; + + g_return_val_if_fail (PDF_IS_DOCUMENT (document_links), NULL); + + iter = poppler_index_iter_new (pdf_document->document); + /* Create the model if we have items*/ + if (iter != NULL) { + model = (GtkTreeModel *) gtk_tree_store_new (EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS, + G_TYPE_STRING, + G_TYPE_OBJECT, + G_TYPE_BOOLEAN, + G_TYPE_STRING); + build_tree (pdf_document, model, NULL, iter); + poppler_index_iter_free (iter); + } + + return model; +} + +static EvMappingList * +pdf_document_links_get_links (EvDocumentLinks *document_links, + EvPage *page) +{ + PdfDocument *pdf_document; + PopplerPage *poppler_page; + GList *retval = NULL; + GList *mapping_list; + GList *list; + double height; + + pdf_document = PDF_DOCUMENT (document_links); + poppler_page = POPPLER_PAGE (page->backend_page); + mapping_list = poppler_page_get_link_mapping (poppler_page); + poppler_page_get_size (poppler_page, NULL, &height); + + for (list = mapping_list; list; list = list->next) { + PopplerLinkMapping *link_mapping; + EvMapping *ev_link_mapping; + + link_mapping = (PopplerLinkMapping *)list->data; + ev_link_mapping = g_new (EvMapping, 1); + ev_link_mapping->data = ev_link_from_action (pdf_document, + link_mapping->action); + ev_link_mapping->area.x1 = link_mapping->area.x1; + ev_link_mapping->area.x2 = link_mapping->area.x2; + /* Invert this for X-style coordinates */ + ev_link_mapping->area.y1 = height - link_mapping->area.y2; + ev_link_mapping->area.y2 = height - link_mapping->area.y1; + + retval = g_list_prepend (retval, ev_link_mapping); + } + + poppler_page_free_link_mapping (mapping_list); + + return ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); +} + +static EvLinkDest * +pdf_document_links_find_link_dest (EvDocumentLinks *document_links, + const gchar *link_name) +{ + PdfDocument *pdf_document; + PopplerDest *dest; + EvLinkDest *ev_dest = NULL; + + pdf_document = PDF_DOCUMENT (document_links); + dest = poppler_document_find_dest (pdf_document->document, + link_name); + if (dest) { + ev_dest = ev_link_dest_from_dest (pdf_document, dest); + poppler_dest_free (dest); + } + + return ev_dest; +} + +static void +pdf_document_document_links_iface_init (EvDocumentLinksInterface *iface) +{ + iface->has_document_links = pdf_document_links_has_document_links; + iface->get_links_model = pdf_document_links_get_links_model; + iface->get_links = pdf_document_links_get_links; + iface->find_link_dest = pdf_document_links_find_link_dest; +} + +static EvMappingList * +pdf_document_images_get_image_mapping (EvDocumentImages *document_images, + EvPage *page) +{ + GList *retval = NULL; + PdfDocument *pdf_document; + PopplerPage *poppler_page; + GList *mapping_list; + GList *list; + + pdf_document = PDF_DOCUMENT (document_images); + poppler_page = POPPLER_PAGE (page->backend_page); + mapping_list = poppler_page_get_image_mapping (poppler_page); + + for (list = mapping_list; list; list = list->next) { + PopplerImageMapping *image_mapping; + EvMapping *ev_image_mapping; + + image_mapping = (PopplerImageMapping *)list->data; + + ev_image_mapping = g_new (EvMapping, 1); + + ev_image_mapping->data = ev_image_new (page->index, image_mapping->image_id); + ev_image_mapping->area.x1 = image_mapping->area.x1; + ev_image_mapping->area.y1 = image_mapping->area.y1; + ev_image_mapping->area.x2 = image_mapping->area.x2; + ev_image_mapping->area.y2 = image_mapping->area.y2; + + retval = g_list_prepend (retval, ev_image_mapping); + } + + poppler_page_free_image_mapping (mapping_list); + + return ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); +} + +GdkPixbuf * +pdf_document_images_get_image (EvDocumentImages *document_images, + EvImage *image) +{ + GdkPixbuf *retval = NULL; + PdfDocument *pdf_document; + PopplerPage *poppler_page; + cairo_surface_t *surface; + + pdf_document = PDF_DOCUMENT (document_images); + poppler_page = poppler_document_get_page (pdf_document->document, + ev_image_get_page (image)); + + surface = poppler_page_get_image (poppler_page, ev_image_get_id (image)); + if (surface) { + retval = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); + } + + g_object_unref (poppler_page); + + return retval; +} + +static void +pdf_document_document_images_iface_init (EvDocumentImagesInterface *iface) +{ + iface->get_image_mapping = pdf_document_images_get_image_mapping; + iface->get_image = pdf_document_images_get_image; +} + +static GdkPixbuf * +make_thumbnail_for_page (PopplerPage *poppler_page, + EvRenderContext *rc, + gint width, + gint height) +{ + GdkPixbuf *pixbuf; + +#ifdef POPPLER_WITH_GDK + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, + width, height); + gdk_pixbuf_fill (pixbuf, 0xffffffff); + + ev_document_fc_mutex_lock (); + poppler_page_render_to_pixbuf (poppler_page, 0, 0, + width, height, + rc->scale, rc->rotation, pixbuf); + ev_document_fc_mutex_unlock (); +#else + cairo_surface_t *surface; + + ev_document_fc_mutex_lock (); + surface = pdf_page_render (poppler_page, width, height, rc); + ev_document_fc_mutex_unlock (); + + pixbuf = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); +#endif /* POPPLER_WITH_GDK */ + + return pixbuf; +} + +static GdkPixbuf * +pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails, + EvRenderContext *rc, + gboolean border) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document_thumbnails); + PopplerPage *poppler_page; + GdkPixbuf *pixbuf = NULL; + GdkPixbuf *border_pixbuf; + gint width, height; + + poppler_page = POPPLER_PAGE (rc->page->backend_page); + + pdf_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (pdf_document), + rc, &width, &height); + +#ifdef POPPLER_WITH_GDK + pixbuf = poppler_page_get_thumbnail_pixbuf (poppler_page); +#else + cairo_surface_t *surface; + + surface = poppler_page_get_thumbnail (poppler_page); + if (surface) { + pixbuf = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); + } +#endif /* POPPLER_WITH_GDK */ + + if (pixbuf != NULL) { + int thumb_width = (rc->rotation == 90 || rc->rotation == 270) ? + gdk_pixbuf_get_height (pixbuf) : + gdk_pixbuf_get_width (pixbuf); + + if (thumb_width == width) { + GdkPixbuf *rotated_pixbuf; + + rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, + (GdkPixbufRotation) (360 - rc->rotation)); + g_object_unref (pixbuf); + pixbuf = rotated_pixbuf; + } else { + /* The provided thumbnail has a different size */ + g_object_unref (pixbuf); + pixbuf = make_thumbnail_for_page (poppler_page, rc, width, height); + } + } else { + /* There is no provided thumbnail. We need to make one. */ + pixbuf = make_thumbnail_for_page (poppler_page, rc, width, height); + } + + if (border && pixbuf) { + border_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, pixbuf); + g_object_unref (pixbuf); + pixbuf = border_pixbuf; + } + + return pixbuf; +} + +static void +pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails, + EvRenderContext *rc, + gint *width, + gint *height) +{ + double page_width, page_height; + + poppler_page_get_size (POPPLER_PAGE (rc->page->backend_page), + &page_width, &page_height); + + *width = MAX ((gint)(page_width * rc->scale + 0.5), 1); + *height = MAX ((gint)(page_height * rc->scale + 0.5), 1); + + if (rc->rotation == 90 || rc->rotation == 270) { + gint temp; + + temp = *width; + *width = *height; + *height = temp; + } +} + +static void +pdf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = pdf_document_thumbnails_get_thumbnail; + iface->get_dimensions = pdf_document_thumbnails_get_dimensions; +} + + +static GList * +pdf_document_find_find_text (EvDocumentFind *document_find, + EvPage *page, + const gchar *text, + gboolean case_sensitive) +{ + GList *matches, *l; + PopplerPage *poppler_page; + gdouble height; + GList *retval = NULL; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + g_return_val_if_fail (text != NULL, NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + + matches = poppler_page_find_text (poppler_page, text); + if (!matches) + return NULL; + + poppler_page_get_size (poppler_page, NULL, &height); + for (l = matches; l && l->data; l = g_list_next (l)) { + PopplerRectangle *rect = (PopplerRectangle *)l->data; + EvRectangle *ev_rect; + + ev_rect = ev_rectangle_new (); + ev_rect->x1 = rect->x1; + ev_rect->x2 = rect->x2; + /* Invert this for X-style coordinates */ + ev_rect->y1 = height - rect->y2; + ev_rect->y2 = height - rect->y1; + + retval = g_list_prepend (retval, ev_rect); + } + + g_list_foreach (matches, (GFunc)poppler_rectangle_free, NULL); + g_list_free (matches); + + return g_list_reverse (retval); +} + +static void +pdf_document_find_iface_init (EvDocumentFindInterface *iface) +{ + iface->find_text = pdf_document_find_find_text; +} + +static void +pdf_print_context_free (PdfPrintContext *ctx) +{ + if (!ctx) + return; + +#ifdef HAVE_CAIRO_PRINT + if (ctx->cr) { + cairo_destroy (ctx->cr); + ctx->cr = NULL; + } +#else + if (ctx->ps_file) { + poppler_ps_file_free (ctx->ps_file); + ctx->ps_file = NULL; + } +#endif + g_free (ctx); +} + +static void +pdf_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (exporter); + PdfPrintContext *ctx; +#ifdef HAVE_CAIRO_PRINT + gdouble width, height; + cairo_surface_t *surface = NULL; +#endif + + if (pdf_document->print_ctx) + pdf_print_context_free (pdf_document->print_ctx); + pdf_document->print_ctx = g_new0 (PdfPrintContext, 1); + ctx = pdf_document->print_ctx; + ctx->format = fc->format; + +#ifdef HAVE_CAIRO_PRINT + ctx->pages_per_sheet = CLAMP (fc->pages_per_sheet, 1, 16); + + ctx->paper_width = fc->paper_width; + ctx->paper_height = fc->paper_height; + + switch (fc->pages_per_sheet) { + default: + case 1: + ctx->pages_x = 1; + ctx->pages_y = 1; + break; + case 2: + ctx->pages_x = 1; + ctx->pages_y = 2; + break; + case 4: + ctx->pages_x = 2; + ctx->pages_y = 2; + break; + case 6: + ctx->pages_x = 2; + ctx->pages_y = 3; + break; + case 9: + ctx->pages_x = 3; + ctx->pages_y = 3; + break; + case 16: + ctx->pages_x = 4; + ctx->pages_y = 4; + break; + } + + ctx->pages_printed = 0; + + switch (fc->format) { + case EV_FILE_FORMAT_PS: +#ifdef HAVE_CAIRO_PS + surface = cairo_ps_surface_create (fc->filename, fc->paper_width, fc->paper_height); +#endif + break; + case EV_FILE_FORMAT_PDF: +#ifdef HAVE_CAIRO_PDF + surface = cairo_pdf_surface_create (fc->filename, fc->paper_width, fc->paper_height); +#endif + break; + default: + g_assert_not_reached (); + } + + ctx->cr = cairo_create (surface); + cairo_surface_destroy (surface); + +#else /* HAVE_CAIRO_PRINT */ + if (ctx->format == EV_FILE_FORMAT_PS) { + ctx->ps_file = poppler_ps_file_new (pdf_document->document, + fc->filename, fc->first_page, + fc->last_page - fc->first_page + 1); + poppler_ps_file_set_paper_size (ctx->ps_file, fc->paper_width, fc->paper_height); + poppler_ps_file_set_duplex (ctx->ps_file, fc->duplex); + } +#endif /* HAVE_CAIRO_PRINT */ +} + +static void +pdf_document_file_exporter_begin_page (EvFileExporter *exporter) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (exporter); + PdfPrintContext *ctx = pdf_document->print_ctx; + + g_return_if_fail (pdf_document->print_ctx != NULL); + + ctx->pages_printed = 0; + +#ifdef HAVE_CAIRO_PRINT + if (ctx->paper_width > ctx->paper_height) { + if (ctx->format == EV_FILE_FORMAT_PS) { + cairo_ps_surface_set_size (cairo_get_target (ctx->cr), + ctx->paper_height, + ctx->paper_width); + } else if (ctx->format == EV_FILE_FORMAT_PDF) { + cairo_pdf_surface_set_size (cairo_get_target (ctx->cr), + ctx->paper_height, + ctx->paper_width); + } + } +#endif /* HAVE_CAIRO_PRINT */ +} + +static void +pdf_document_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (exporter); + PdfPrintContext *ctx = pdf_document->print_ctx; + PopplerPage *poppler_page; +#ifdef HAVE_CAIRO_PRINT + gdouble page_width, page_height; + gint x, y; + gboolean rotate; + gdouble width, height; + gdouble pwidth, pheight; + gdouble xscale, yscale; +#endif + + g_return_if_fail (pdf_document->print_ctx != NULL); + + poppler_page = POPPLER_PAGE (rc->page->backend_page); + +#ifdef HAVE_CAIRO_PRINT + x = (ctx->pages_printed % ctx->pages_per_sheet) % ctx->pages_x; + y = (ctx->pages_printed % ctx->pages_per_sheet) / ctx->pages_x; + poppler_page_get_size (poppler_page, &page_width, &page_height); + + if (page_width > page_height && page_width > ctx->paper_width) { + rotate = TRUE; + } else { + rotate = FALSE; + } + + /* Use always portrait mode and rotate when necessary */ + if (ctx->paper_width > ctx->paper_height) { + width = ctx->paper_height; + height = ctx->paper_width; + rotate = !rotate; + } else { + width = ctx->paper_width; + height = ctx->paper_height; + } + + if (ctx->pages_per_sheet == 2 || ctx->pages_per_sheet == 6) { + rotate = !rotate; + } + + if (rotate) { + gint tmp1; + gdouble tmp2; + + tmp1 = x; + x = y; + y = tmp1; + + tmp2 = page_width; + page_width = page_height; + page_height = tmp2; + } + + pwidth = width / ctx->pages_x; + pheight = height / ctx->pages_y; + + if ((page_width > pwidth || page_height > pheight) || + (page_width < pwidth && page_height < pheight)) { + xscale = pwidth / page_width; + yscale = pheight / page_height; + + if (yscale < xscale) { + xscale = yscale; + } else { + yscale = xscale; + } + + } else { + xscale = yscale = 1; + } + + /* TODO: center */ + + cairo_save (ctx->cr); + if (rotate) { + cairo_matrix_t matrix; + + cairo_translate (ctx->cr, (2 * y + 1) * pwidth, 0); + cairo_matrix_init (&matrix, + 0, 1, + -1, 0, + 0, 0); + cairo_transform (ctx->cr, &matrix); + } + + cairo_translate (ctx->cr, + x * (rotate ? pheight : pwidth), + y * (rotate ? pwidth : pheight)); + cairo_scale (ctx->cr, xscale, yscale); + + poppler_page_render_for_printing (poppler_page, ctx->cr); + + ctx->pages_printed++; + + cairo_restore (ctx->cr); +#else /* HAVE_CAIRO_PRINT */ + if (ctx->format == EV_FILE_FORMAT_PS) + poppler_page_render_to_ps (poppler_page, ctx->ps_file); +#endif /* HAVE_CAIRO_PRINT */ +} + +static void +pdf_document_file_exporter_end_page (EvFileExporter *exporter) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (exporter); + PdfPrintContext *ctx = pdf_document->print_ctx; + + g_return_if_fail (pdf_document->print_ctx != NULL); + +#ifdef HAVE_CAIRO_PRINT + cairo_show_page (ctx->cr); +#endif +} + +static void +pdf_document_file_exporter_end (EvFileExporter *exporter) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (exporter); + + pdf_print_context_free (pdf_document->print_ctx); + pdf_document->print_ctx = NULL; +} + +static EvFileExporterCapabilities +pdf_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return (EvFileExporterCapabilities) ( + EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_COPIES | + EV_FILE_EXPORTER_CAN_COLLATE | + EV_FILE_EXPORTER_CAN_REVERSE | + EV_FILE_EXPORTER_CAN_SCALE | +#ifdef HAVE_CAIRO_PRINT + EV_FILE_EXPORTER_CAN_NUMBER_UP | +#endif + +#ifdef HAVE_CAIRO_PDF + EV_FILE_EXPORTER_CAN_GENERATE_PDF | +#endif + EV_FILE_EXPORTER_CAN_GENERATE_PS); +} + +static void +pdf_document_file_exporter_iface_init (EvFileExporterInterface *iface) +{ + iface->begin = pdf_document_file_exporter_begin; + iface->begin_page = pdf_document_file_exporter_begin_page; + iface->do_page = pdf_document_file_exporter_do_page; + iface->end_page = pdf_document_file_exporter_end_page; + iface->end = pdf_document_file_exporter_end; + iface->get_capabilities = pdf_document_file_exporter_get_capabilities; +} + +/* EvDocumentPrint */ +static void +pdf_document_print_print_page (EvDocumentPrint *document, + EvPage *page, + cairo_t *cr) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + + poppler_page_render_for_printing (POPPLER_PAGE (page->backend_page), cr); +} + +static void +pdf_document_document_print_iface_init (EvDocumentPrintInterface *iface) +{ + iface->print_page = pdf_document_print_print_page; +} + +static void +pdf_selection_render_selection (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base) +{ + PopplerPage *poppler_page; + cairo_t *cr; + PopplerColor text_color, base_color; + double width_points, height_points; + gint width, height; + + poppler_page = POPPLER_PAGE (rc->page->backend_page); + + poppler_page_get_size (poppler_page, + &width_points, &height_points); + width = (int) ((width_points * rc->scale) + 0.5); + height = (int) ((height_points * rc->scale) + 0.5); + + text_color.red = text->red; + text_color.green = text->green; + text_color.blue = text->blue; + + base_color.red = base->red; + base_color.green = base->green; + base_color.blue = base->blue; + + if (*surface == NULL) { + *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + width, height); + + } + + cr = cairo_create (*surface); + cairo_scale (cr, rc->scale, rc->scale); + cairo_surface_set_device_offset (*surface, 0, 0); + memset (cairo_image_surface_get_data (*surface), 0x00, + cairo_image_surface_get_height (*surface) * + cairo_image_surface_get_stride (*surface)); + poppler_page_render_selection (poppler_page, + cr, + (PopplerRectangle *)points, + (PopplerRectangle *)old_points, + (PopplerSelectionStyle)style, + &text_color, + &base_color); + cairo_destroy (cr); +} + +static gchar * +pdf_selection_get_selected_text (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points) +{ + PopplerPage *poppler_page; + char *retval; + + poppler_page = POPPLER_PAGE (page->backend_page); + +#ifdef HAVE_POPPLER_PAGE_GET_SELECTED_TEXT + retval = poppler_page_get_selected_text (poppler_page, + (PopplerSelectionStyle)style, + (PopplerRectangle *)points); +#else + PopplerRectangle r; + double height; + + poppler_page_get_size (poppler_page, NULL, &height); + r.x1 = points->x1; + r.y1 = height - points->y2; + r.x2 = points->x2; + r.y2 = height - points->y1; + + retval = poppler_page_get_text (poppler_page, + (PopplerSelectionStyle)style, + &r); +#endif /* HAVE_POPPLER_PAGE_GET_SELECTED_TEXT */ + + return retval; +} + +static cairo_region_t * +create_region_from_poppler_region (GList *region, gdouble scale) +{ + GList *l; + cairo_region_t *retval; + + retval = cairo_region_create (); + + for (l = region; l; l = g_list_next (l)) { + PopplerRectangle *rectangle; + cairo_rectangle_int_t rect; + + rectangle = (PopplerRectangle *)l->data; + + rect.x = (gint) ((rectangle->x1 * scale) + 0.5); + rect.y = (gint) ((rectangle->y1 * scale) + 0.5); + rect.width = (gint) (((rectangle->x2 - rectangle->x1) * scale) + 0.5); + rect.height = (gint) (((rectangle->y2 - rectangle->y1) * scale) + 0.5); + cairo_region_union_rectangle (retval, &rect); + + poppler_rectangle_free (rectangle); + } + + return retval; +} + +static cairo_region_t * +pdf_selection_get_selection_region (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points) +{ + PopplerPage *poppler_page; + cairo_region_t *retval; + GList *region; + + poppler_page = POPPLER_PAGE (rc->page->backend_page); + region = poppler_page_get_selection_region (poppler_page, + 1.0, + (PopplerSelectionStyle)style, + (PopplerRectangle *) points); + retval = create_region_from_poppler_region (region, rc->scale); + g_list_free (region); + + return retval; +} + +static void +pdf_selection_iface_init (EvSelectionInterface *iface) +{ + iface->render_selection = pdf_selection_render_selection; + iface->get_selected_text = pdf_selection_get_selected_text; + iface->get_selection_region = pdf_selection_get_selection_region; +} + + +/* EvDocumentText */ +static cairo_region_t * +pdf_document_text_get_text_mapping (EvDocumentText *document_text, + EvPage *page) +{ + PopplerPage *poppler_page; + PopplerRectangle points; + GList *region; + cairo_region_t *retval; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + + points.x1 = 0.0; + points.y1 = 0.0; + poppler_page_get_size (poppler_page, &(points.x2), &(points.y2)); + + region = poppler_page_get_selection_region (poppler_page, 1.0, + POPPLER_SELECTION_GLYPH, + &points); + retval = create_region_from_poppler_region (region, 1.0); + g_list_free (region); + + return retval; +} + +#ifdef HAVE_POPPLER_PAGE_GET_SELECTED_TEXT +static gchar * +pdf_document_text_get_text (EvDocumentText *selection, + EvPage *page) +{ + PopplerPage *poppler_page; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + + return poppler_page_get_text (poppler_page); +} +#else +static gchar * +pdf_document_text_get_text (EvDocumentText *selection, + EvPage *page) +{ + PopplerPage *poppler_page; + PopplerRectangle r; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + + r.x1 = 0; + r.y1 = 0; + poppler_page_get_size (poppler_page, &(r.x2), &(r.y2)); + + return poppler_page_get_text (poppler_page, + POPPLER_SELECTION_WORD, + &r); +} +#endif /* HAVE_POPPLER_PAGE_GET_SELECTED_TEXT */ + +#ifdef HAVE_POPPLER_PAGE_GET_TEXT_LAYOUT +static gboolean +pdf_document_text_get_text_layout (EvDocumentText *selection, + EvPage *page, + EvRectangle **areas, + guint *n_areas) +{ + PopplerPage *poppler_page; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + + return poppler_page_get_text_layout (poppler_page, (PopplerRectangle **)areas, n_areas); +} +#endif + +static void +pdf_document_text_iface_init (EvDocumentTextInterface *iface) +{ + iface->get_text_mapping = pdf_document_text_get_text_mapping; + iface->get_text = pdf_document_text_get_text; +#ifdef HAVE_POPPLER_PAGE_GET_TEXT_LAYOUT + iface->get_text_layout = pdf_document_text_get_text_layout; +#endif +} + +/* Page Transitions */ +static gdouble +pdf_document_get_page_duration (EvDocumentTransition *trans, + gint page) +{ + PdfDocument *pdf_document; + PopplerPage *poppler_page; + gdouble duration = -1; + + pdf_document = PDF_DOCUMENT (trans); + poppler_page = poppler_document_get_page (pdf_document->document, page); + if (!poppler_page) + return -1; + + duration = poppler_page_get_duration (poppler_page); + g_object_unref (poppler_page); + + return duration; +} + +static EvTransitionEffect * +pdf_document_get_effect (EvDocumentTransition *trans, + gint page) +{ + PdfDocument *pdf_document; + PopplerPage *poppler_page; + PopplerPageTransition *page_transition; + EvTransitionEffect *effect; + + pdf_document = PDF_DOCUMENT (trans); + poppler_page = poppler_document_get_page (pdf_document->document, page); + + if (!poppler_page) + return NULL; + + page_transition = poppler_page_get_transition (poppler_page); + + if (!page_transition) { + g_object_unref (poppler_page); + return NULL; + } + + /* enums in PopplerPageTransition match the EvTransitionEffect ones */ + effect = ev_transition_effect_new ((EvTransitionEffectType) page_transition->type, + "alignment", page_transition->alignment, + "direction", page_transition->direction, + "duration", page_transition->duration, + "angle", page_transition->angle, + "scale", page_transition->scale, + "rectangular", page_transition->rectangular, + NULL); + + poppler_page_transition_free (page_transition); + g_object_unref (poppler_page); + + return effect; +} + +static void +pdf_document_page_transition_iface_init (EvDocumentTransitionInterface *iface) +{ + iface->get_page_duration = pdf_document_get_page_duration; + iface->get_effect = pdf_document_get_effect; +} + +/* Forms */ +static void +pdf_document_get_crop_box (EvDocument *document, + int page, + EvRectangle *rect) +{ + PdfDocument *pdf_document; + PopplerPage *poppler_page; + PopplerRectangle poppler_rect; + + pdf_document = PDF_DOCUMENT (document); + poppler_page = poppler_document_get_page (pdf_document->document, page); + poppler_page_get_crop_box (poppler_page, &poppler_rect); + rect->x1 = poppler_rect.x1; + rect->x2 = poppler_rect.x2; + rect->y1 = poppler_rect.y1; + rect->y2 = poppler_rect.y2; +} + +static EvFormField * +ev_form_field_from_poppler_field (PopplerFormField *poppler_field) +{ + EvFormField *ev_field = NULL; + gint id; + gdouble font_size; + gboolean is_read_only; + + id = poppler_form_field_get_id (poppler_field); + font_size = poppler_form_field_get_font_size (poppler_field); + is_read_only = poppler_form_field_is_read_only (poppler_field); + + switch (poppler_form_field_get_field_type (poppler_field)) { + case POPPLER_FORM_FIELD_TEXT: { + EvFormFieldText *field_text; + EvFormFieldTextType ev_text_type = EV_FORM_FIELD_TEXT_NORMAL; + + switch (poppler_form_field_text_get_text_type (poppler_field)) { + case POPPLER_FORM_TEXT_NORMAL: + ev_text_type = EV_FORM_FIELD_TEXT_NORMAL; + break; + case POPPLER_FORM_TEXT_MULTILINE: + ev_text_type = EV_FORM_FIELD_TEXT_MULTILINE; + break; + case POPPLER_FORM_TEXT_FILE_SELECT: + ev_text_type = EV_FORM_FIELD_TEXT_FILE_SELECT; + break; + } + + ev_field = ev_form_field_text_new (id, ev_text_type); + field_text = EV_FORM_FIELD_TEXT (ev_field); + + field_text->do_spell_check = poppler_form_field_text_do_spell_check (poppler_field); + field_text->do_scroll = poppler_form_field_text_do_scroll (poppler_field); + field_text->is_rich_text = poppler_form_field_text_is_rich_text (poppler_field); + field_text->is_password = poppler_form_field_text_is_password (poppler_field); + field_text->max_len = poppler_form_field_text_get_max_len (poppler_field); + field_text->text = poppler_form_field_text_get_text (poppler_field); + + } + break; + case POPPLER_FORM_FIELD_BUTTON: { + EvFormFieldButton *field_button; + EvFormFieldButtonType ev_button_type = EV_FORM_FIELD_BUTTON_PUSH; + + switch (poppler_form_field_button_get_button_type (poppler_field)) { + case POPPLER_FORM_BUTTON_PUSH: + ev_button_type = EV_FORM_FIELD_BUTTON_PUSH; + break; + case POPPLER_FORM_BUTTON_CHECK: + ev_button_type = EV_FORM_FIELD_BUTTON_CHECK; + break; + case POPPLER_FORM_BUTTON_RADIO: + ev_button_type = EV_FORM_FIELD_BUTTON_RADIO; + break; + } + + ev_field = ev_form_field_button_new (id, ev_button_type); + field_button = EV_FORM_FIELD_BUTTON (ev_field); + + field_button->state = poppler_form_field_button_get_state (poppler_field); + } + break; + case POPPLER_FORM_FIELD_CHOICE: { + EvFormFieldChoice *field_choice; + EvFormFieldChoiceType ev_choice_type = EV_FORM_FIELD_CHOICE_COMBO; + + switch (poppler_form_field_choice_get_choice_type (poppler_field)) { + case POPPLER_FORM_CHOICE_COMBO: + ev_choice_type = EV_FORM_FIELD_CHOICE_COMBO; + break; + case EV_FORM_FIELD_CHOICE_LIST: + ev_choice_type = EV_FORM_FIELD_CHOICE_LIST; + break; + } + + ev_field = ev_form_field_choice_new (id, ev_choice_type); + field_choice = EV_FORM_FIELD_CHOICE (ev_field); + + field_choice->is_editable = poppler_form_field_choice_is_editable (poppler_field); + field_choice->multi_select = poppler_form_field_choice_can_select_multiple (poppler_field); + field_choice->do_spell_check = poppler_form_field_choice_do_spell_check (poppler_field); + field_choice->commit_on_sel_change = poppler_form_field_choice_commit_on_change (poppler_field); + + /* TODO: we need poppler_form_field_choice_get_selected_items in poppler + field_choice->selected_items = poppler_form_field_choice_get_selected_items (poppler_field);*/ + if (field_choice->is_editable) + field_choice->text = poppler_form_field_choice_get_text (poppler_field); + } + break; + case POPPLER_FORM_FIELD_SIGNATURE: + /* TODO */ + ev_field = ev_form_field_signature_new (id); + break; + case POPPLER_FORM_FIELD_UNKNOWN: + return NULL; + } + + ev_field->font_size = font_size; + ev_field->is_read_only = is_read_only; + + return ev_field; +} + +static EvMappingList * +pdf_document_forms_get_form_fields (EvDocumentForms *document, + EvPage *page) +{ + PopplerPage *poppler_page; + GList *retval = NULL; + GList *fields; + GList *list; + double height; + + g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL); + + poppler_page = POPPLER_PAGE (page->backend_page); + fields = poppler_page_get_form_field_mapping (poppler_page); + poppler_page_get_size (poppler_page, NULL, &height); + + for (list = fields; list; list = list->next) { + PopplerFormFieldMapping *mapping; + EvMapping *field_mapping; + EvFormField *ev_field; + + mapping = (PopplerFormFieldMapping *)list->data; + + ev_field = ev_form_field_from_poppler_field (mapping->field); + if (!ev_field) + continue; + + field_mapping = g_new0 (EvMapping, 1); + field_mapping->area.x1 = mapping->area.x1; + field_mapping->area.x2 = mapping->area.x2; + field_mapping->area.y1 = height - mapping->area.y2; + field_mapping->area.y2 = height - mapping->area.y1; + field_mapping->data = ev_field; + ev_field->page = EV_PAGE (g_object_ref (page)); + + g_object_set_data_full (G_OBJECT (ev_field), + "poppler-field", + g_object_ref (mapping->field), + (GDestroyNotify) g_object_unref); + + retval = g_list_prepend (retval, field_mapping); + } + + poppler_page_free_form_field_mapping (fields); + + return retval ? ev_mapping_list_new (page->index, + g_list_reverse (retval), + (GDestroyNotify)g_object_unref) : NULL; +} + +static gboolean +pdf_document_forms_document_is_modified (EvDocumentForms *document) +{ + return PDF_DOCUMENT (document)->forms_modified; +} + +static gchar * +pdf_document_forms_form_field_text_get_text (EvDocumentForms *document, + EvFormField *field) + +{ + PopplerFormField *poppler_field; + gchar *text; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return NULL; + + text = poppler_form_field_text_get_text (poppler_field); + + return text; +} + +static void +pdf_document_forms_form_field_text_set_text (EvDocumentForms *document, + EvFormField *field, + const gchar *text) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_text_set_text (poppler_field, text); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static void +pdf_document_forms_form_field_button_set_state (EvDocumentForms *document, + EvFormField *field, + gboolean state) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_button_set_state (poppler_field, state); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static gboolean +pdf_document_forms_form_field_button_get_state (EvDocumentForms *document, + EvFormField *field) +{ + PopplerFormField *poppler_field; + gboolean state; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return FALSE; + + state = poppler_form_field_button_get_state (poppler_field); + + return state; +} + +static gchar * +pdf_document_forms_form_field_choice_get_item (EvDocumentForms *document, + EvFormField *field, + gint index) +{ + PopplerFormField *poppler_field; + gchar *text; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return NULL; + + text = poppler_form_field_choice_get_item (poppler_field, index); + + return text; +} + +static int +pdf_document_forms_form_field_choice_get_n_items (EvDocumentForms *document, + EvFormField *field) +{ + PopplerFormField *poppler_field; + gint n_items; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return -1; + + n_items = poppler_form_field_choice_get_n_items (poppler_field); + + return n_items; +} + +static gboolean +pdf_document_forms_form_field_choice_is_item_selected (EvDocumentForms *document, + EvFormField *field, + gint index) +{ + PopplerFormField *poppler_field; + gboolean selected; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return FALSE; + + selected = poppler_form_field_choice_is_item_selected (poppler_field, index); + + return selected; +} + +static void +pdf_document_forms_form_field_choice_select_item (EvDocumentForms *document, + EvFormField *field, + gint index) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_choice_select_item (poppler_field, index); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static void +pdf_document_forms_form_field_choice_toggle_item (EvDocumentForms *document, + EvFormField *field, + gint index) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_choice_toggle_item (poppler_field, index); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static void +pdf_document_forms_form_field_choice_unselect_all (EvDocumentForms *document, + EvFormField *field) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_choice_unselect_all (poppler_field); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static void +pdf_document_forms_form_field_choice_set_text (EvDocumentForms *document, + EvFormField *field, + const gchar *text) +{ + PopplerFormField *poppler_field; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return; + + poppler_form_field_choice_set_text (poppler_field, text); + PDF_DOCUMENT (document)->forms_modified = TRUE; +} + +static gchar * +pdf_document_forms_form_field_choice_get_text (EvDocumentForms *document, + EvFormField *field) +{ + PopplerFormField *poppler_field; + gchar *text; + + poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field")); + if (!poppler_field) + return NULL; + + text = poppler_form_field_choice_get_text (poppler_field); + + return text; +} + +static void +pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface) +{ + iface->get_form_fields = pdf_document_forms_get_form_fields; + iface->document_is_modified = pdf_document_forms_document_is_modified; + iface->form_field_text_get_text = pdf_document_forms_form_field_text_get_text; + iface->form_field_text_set_text = pdf_document_forms_form_field_text_set_text; + iface->form_field_button_set_state = pdf_document_forms_form_field_button_set_state; + iface->form_field_button_get_state = pdf_document_forms_form_field_button_get_state; + iface->form_field_choice_get_item = pdf_document_forms_form_field_choice_get_item; + iface->form_field_choice_get_n_items = pdf_document_forms_form_field_choice_get_n_items; + iface->form_field_choice_is_item_selected = pdf_document_forms_form_field_choice_is_item_selected; + iface->form_field_choice_select_item = pdf_document_forms_form_field_choice_select_item; + iface->form_field_choice_toggle_item = pdf_document_forms_form_field_choice_toggle_item; + iface->form_field_choice_unselect_all = pdf_document_forms_form_field_choice_unselect_all; + iface->form_field_choice_set_text = pdf_document_forms_form_field_choice_set_text; + iface->form_field_choice_get_text = pdf_document_forms_form_field_choice_get_text; +} + +/* Annotations */ +static void +poppler_annot_color_to_gdk_color (PopplerAnnot *poppler_annot, + GdkColor *color) +{ + PopplerColor *poppler_color; + + poppler_color = poppler_annot_get_color (poppler_annot); + if (poppler_color) { + color->red = poppler_color->red; + color->green = poppler_color->green; + color->blue = poppler_color->blue; + + g_free (poppler_color); + } /* TODO: else use a default color */ +} + +static EvAnnotationTextIcon +get_annot_text_icon (PopplerAnnotText *poppler_annot) +{ +#ifdef HAVE_POPPLER_PAGE_ADD_ANNOT + gchar *icon = poppler_annot_text_get_icon (poppler_annot); + EvAnnotationTextIcon retval; + + if (!icon) + return EV_ANNOTATION_TEXT_ICON_UNKNOWN; + + if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_NOTE) == 0) + retval = EV_ANNOTATION_TEXT_ICON_NOTE; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_COMMENT) == 0) + retval = EV_ANNOTATION_TEXT_ICON_COMMENT; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_KEY) == 0) + retval = EV_ANNOTATION_TEXT_ICON_KEY; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_HELP) == 0) + retval = EV_ANNOTATION_TEXT_ICON_HELP; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_NEW_PARAGRAPH) == 0) + retval = EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_PARAGRAPH) == 0) + retval = EV_ANNOTATION_TEXT_ICON_PARAGRAPH; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_INSERT) == 0) + retval = EV_ANNOTATION_TEXT_ICON_INSERT; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_CROSS) == 0) + retval = EV_ANNOTATION_TEXT_ICON_CROSS; + else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_CIRCLE) == 0) + retval = EV_ANNOTATION_TEXT_ICON_CIRCLE; + else + retval = EV_ANNOTATION_TEXT_ICON_UNKNOWN; + + g_free (icon); + + return retval; +#else + return EV_ANNOTATION_TEXT_ICON_UNKNOWN; +#endif +} + +static const gchar * +get_poppler_annot_text_icon (EvAnnotationTextIcon icon) +{ +#ifdef HAVE_POPPLER_PAGE_ADD_ANNOT + switch (icon) { + case EV_ANNOTATION_TEXT_ICON_NOTE: + return POPPLER_ANNOT_TEXT_ICON_NOTE; + case EV_ANNOTATION_TEXT_ICON_COMMENT: + return POPPLER_ANNOT_TEXT_ICON_COMMENT; + case EV_ANNOTATION_TEXT_ICON_KEY: + return POPPLER_ANNOT_TEXT_ICON_KEY; + case EV_ANNOTATION_TEXT_ICON_HELP: + return POPPLER_ANNOT_TEXT_ICON_HELP; + case EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH: + return POPPLER_ANNOT_TEXT_ICON_NEW_PARAGRAPH; + case EV_ANNOTATION_TEXT_ICON_PARAGRAPH: + return POPPLER_ANNOT_TEXT_ICON_PARAGRAPH; + case EV_ANNOTATION_TEXT_ICON_INSERT: + return POPPLER_ANNOT_TEXT_ICON_INSERT; + case EV_ANNOTATION_TEXT_ICON_CROSS: + return POPPLER_ANNOT_TEXT_ICON_CROSS; + case EV_ANNOTATION_TEXT_ICON_CIRCLE: + return POPPLER_ANNOT_TEXT_ICON_CIRCLE; + case EV_ANNOTATION_TEXT_ICON_UNKNOWN: + default: + return POPPLER_ANNOT_TEXT_ICON_NOTE; + } +#else + return "Note"; +#endif +} + +static EvAnnotation * +ev_annot_from_poppler_annot (PopplerAnnot *poppler_annot, + EvPage *page) +{ + EvAnnotation *ev_annot = NULL; + const gchar *unimplemented_annot = NULL; + + switch (poppler_annot_get_annot_type (poppler_annot)) { + case POPPLER_ANNOT_TEXT: { + PopplerAnnotText *poppler_text; + EvAnnotationText *ev_annot_text; + + poppler_text = POPPLER_ANNOT_TEXT (poppler_annot); + + ev_annot = ev_annotation_text_new (page); + + ev_annot_text = EV_ANNOTATION_TEXT (ev_annot); + ev_annotation_text_set_is_open (ev_annot_text, + poppler_annot_text_get_is_open (poppler_text)); + ev_annotation_text_set_icon (ev_annot_text, get_annot_text_icon (poppler_text)); + } + break; + case POPPLER_ANNOT_FILE_ATTACHMENT: { + PopplerAnnotFileAttachment *poppler_annot_attachment; + EvAnnotationAttachment *ev_annot_attachment; + PopplerAttachment *poppler_attachment; + gchar *data = NULL; + gsize size; + GError *error = NULL; + + poppler_annot_attachment = POPPLER_ANNOT_FILE_ATTACHMENT (poppler_annot); + poppler_attachment = poppler_annot_file_attachment_get_attachment (poppler_annot_attachment); + + if (poppler_attachment && + attachment_save_to_buffer (poppler_attachment, &data, &size, &error)) { + EvAttachment *ev_attachment; + + ev_attachment = ev_attachment_new (poppler_attachment->name, + poppler_attachment->description, + poppler_attachment->mtime, + poppler_attachment->ctime, + size, data); + ev_annot = ev_annotation_attachment_new (page, ev_attachment); + g_object_unref (ev_attachment); + } else if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } + + if (poppler_attachment) + g_object_unref (poppler_attachment); + } + break; + case POPPLER_ANNOT_LINK: + case POPPLER_ANNOT_WIDGET: + /* Ignore link and widgets annots since they are already handled */ + break; + default: { + GEnumValue *enum_value; + + enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_ANNOT_TYPE), + poppler_annot_get_annot_type (poppler_annot)); + unimplemented_annot = enum_value ? enum_value->value_name : "Unknown annotation"; + } + } + + if (unimplemented_annot) { + g_warning ("Unimplemented annotation: %s, please post a " + "bug report in Evince bugzilla " + "(http://bugzilla.mate.org) with a testcase.", + unimplemented_annot); + } + + if (ev_annot) { + time_t utime; + gchar *modified; + gchar *contents; + gchar *name; + GdkColor color; + + contents = poppler_annot_get_contents (poppler_annot); + if (contents) { + ev_annotation_set_contents (ev_annot, contents); + g_free (contents); + } + + name = poppler_annot_get_name (poppler_annot); + if (name) { + ev_annotation_set_name (ev_annot, name); + g_free (name); + } + + modified = poppler_annot_get_modified (poppler_annot); + if (poppler_date_parse (modified, &utime)) { + ev_annotation_set_modified_from_time (ev_annot, utime); + } else { + ev_annotation_set_modified (ev_annot, modified); + } + g_free (modified); + + poppler_annot_color_to_gdk_color (poppler_annot, &color); + ev_annotation_set_color (ev_annot, &color); + + if (POPPLER_IS_ANNOT_MARKUP (poppler_annot)) { + PopplerAnnotMarkup *markup; + gchar *label; + gdouble opacity; + PopplerRectangle poppler_rect; + + markup = POPPLER_ANNOT_MARKUP (poppler_annot); + + if (poppler_annot_markup_get_popup_rectangle (markup, &poppler_rect)) { + EvRectangle ev_rect; + gboolean is_open; + gdouble height; + + poppler_page_get_size (POPPLER_PAGE (page->backend_page), + NULL, &height); + ev_rect.x1 = poppler_rect.x1; + ev_rect.x2 = poppler_rect.x2; + ev_rect.y1 = height - poppler_rect.y2; + ev_rect.y2 = height - poppler_rect.y1; + + is_open = poppler_annot_markup_get_popup_is_open (markup); + + g_object_set (ev_annot, + "rectangle", &ev_rect, + "popup_is_open", is_open, + "has_popup", TRUE, + NULL); + } else { + g_object_set (ev_annot, + "has_popup", FALSE, + NULL); + } + + label = poppler_annot_markup_get_label (markup); + opacity = poppler_annot_markup_get_opacity (markup); + + g_object_set (ev_annot, + "label", label, + "opacity", opacity, + NULL); + + g_free (label); + } + } + + return ev_annot; +} + +static EvMappingList * +pdf_document_annotations_get_annotations (EvDocumentAnnotations *document_annotations, + EvPage *page) +{ + GList *retval = NULL; + PdfDocument *pdf_document; + PopplerPage *poppler_page; + EvMappingList *mapping_list; + GList *annots; + GList *list; + gdouble height; + gint i = 0; + + pdf_document = PDF_DOCUMENT (document_annotations); + poppler_page = POPPLER_PAGE (page->backend_page); + + if (pdf_document->annots) { + mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots, + GINT_TO_POINTER (page->index)); + if (mapping_list) + return ev_mapping_list_ref (mapping_list); + } + + annots = poppler_page_get_annot_mapping (poppler_page); + poppler_page_get_size (poppler_page, NULL, &height); + + for (list = annots; list; list = list->next) { + PopplerAnnotMapping *mapping; + EvMapping *annot_mapping; + EvAnnotation *ev_annot; + + mapping = (PopplerAnnotMapping *)list->data; + + ev_annot = ev_annot_from_poppler_annot (mapping->annot, page); + if (!ev_annot) + continue; + + i++; + + /* Make sure annot has a unique name */ + if (!ev_annotation_get_name (ev_annot)) { + gchar *name = g_strdup_printf ("annot-%d-%d", page->index, i); + + ev_annotation_set_name (ev_annot, name); + g_free (name); + } + + annot_mapping = g_new (EvMapping, 1); + annot_mapping->area.x1 = mapping->area.x1; + annot_mapping->area.x2 = mapping->area.x2; + annot_mapping->area.y1 = height - mapping->area.y2; + annot_mapping->area.y2 = height - mapping->area.y1; + annot_mapping->data = ev_annot; + + g_object_set_data_full (G_OBJECT (ev_annot), + "poppler-annot", + g_object_ref (mapping->annot), + (GDestroyNotify) g_object_unref); + + retval = g_list_prepend (retval, annot_mapping); + } + + poppler_page_free_annot_mapping (annots); + + if (!retval) + return NULL; + + if (!pdf_document->annots) { + pdf_document->annots = g_hash_table_new_full (g_direct_hash, + g_direct_equal, + (GDestroyNotify)NULL, + (GDestroyNotify)ev_mapping_list_unref); + } + + mapping_list = ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); + g_hash_table_insert (pdf_document->annots, + GINT_TO_POINTER (page->index), + ev_mapping_list_ref (mapping_list)); + + return mapping_list; +} + +static gboolean +pdf_document_annotations_document_is_modified (EvDocumentAnnotations *document_annotations) +{ + return PDF_DOCUMENT (document_annotations)->annots_modified; +} + +#ifdef HAVE_POPPLER_PAGE_ADD_ANNOT +static void +pdf_document_annotations_add_annotation (EvDocumentAnnotations *document_annotations, + EvAnnotation *annot, + EvRectangle *rect) +{ + PopplerAnnot *poppler_annot; + PdfDocument *pdf_document; + EvPage *page; + PopplerPage *poppler_page; + GList *list = NULL; + EvMappingList *mapping_list; + EvMapping *annot_mapping; + PopplerRectangle poppler_rect; + gdouble height; + PopplerColor poppler_color; + GdkColor color; + time_t utime; + gchar *modified; + gchar *name; + + pdf_document = PDF_DOCUMENT (document_annotations); + page = ev_annotation_get_page (annot); + poppler_page = POPPLER_PAGE (page->backend_page); + + poppler_page_get_size (poppler_page, NULL, &height); + poppler_rect.x1 = rect->x1; + poppler_rect.x2 = rect->x2; + poppler_rect.y1 = height - rect->y2; + poppler_rect.y2 = height - rect->y1; + poppler_annot = poppler_annot_text_new (pdf_document->document, &poppler_rect); + + ev_annotation_get_color (annot, &color); + poppler_color.red = color.red; + poppler_color.green = color.green; + poppler_color.blue = color.blue; + poppler_annot_set_color (poppler_annot, &poppler_color); + + if (EV_IS_ANNOTATION_MARKUP (annot)) { + EvAnnotationMarkup *markup = EV_ANNOTATION_MARKUP (annot); + const gchar *label; + + if (ev_annotation_markup_has_popup (markup)) { + EvRectangle popup_rect; + + ev_annotation_markup_get_rectangle (markup, &popup_rect); + poppler_rect.x1 = popup_rect.x1; + poppler_rect.x2 = popup_rect.x2; + poppler_rect.y1 = height - popup_rect.y2; + poppler_rect.y2 = height - popup_rect.y1; + poppler_annot_markup_set_popup (POPPLER_ANNOT_MARKUP (poppler_annot), &poppler_rect); + poppler_annot_markup_set_popup_is_open (POPPLER_ANNOT_MARKUP (poppler_annot), + ev_annotation_markup_get_popup_is_open (markup)); + } + + label = ev_annotation_markup_get_label (markup); + if (label) + poppler_annot_markup_set_label (POPPLER_ANNOT_MARKUP (poppler_annot), label); + } + + if (EV_IS_ANNOTATION_TEXT (annot)) { + EvAnnotationText *text = EV_ANNOTATION_TEXT (annot); + EvAnnotationTextIcon icon; + + icon = ev_annotation_text_get_icon (text); + poppler_annot_text_set_icon (POPPLER_ANNOT_TEXT (poppler_annot), + get_poppler_annot_text_icon (icon)); + } + poppler_page_add_annot (poppler_page, poppler_annot); + + annot_mapping = g_new (EvMapping, 1); + annot_mapping->area = *rect; + annot_mapping->data = annot; + g_object_set_data_full (G_OBJECT (annot), + "poppler-annot", + g_object_ref (poppler_annot), + (GDestroyNotify) g_object_unref); + + if (pdf_document->annots) { + mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots, + GINT_TO_POINTER (page->index)); + list = ev_mapping_list_get_list (mapping_list); + name = g_strdup_printf ("annot-%d-%d", page->index, g_list_length (list) + 1); + ev_annotation_set_name (annot, name); + g_free (name); + list = g_list_append (list, annot_mapping); + } else { + pdf_document->annots = g_hash_table_new_full (g_direct_hash, + g_direct_equal, + (GDestroyNotify)NULL, + (GDestroyNotify)ev_mapping_list_unref); + name = g_strdup_printf ("annot-%d-0", page->index); + ev_annotation_set_name (annot, name); + g_free (name); + list = g_list_append (list, annot_mapping); + mapping_list = ev_mapping_list_new (page->index, list, (GDestroyNotify)g_object_unref); + g_hash_table_insert (pdf_document->annots, + GINT_TO_POINTER (page->index), + ev_mapping_list_ref (mapping_list)); + } + + pdf_document->annots_modified = TRUE; +} +#endif /* HAVE_POPPLER_PAGE_ADD_ANNOT */ + +static void +pdf_document_annotations_save_annotation (EvDocumentAnnotations *document_annotations, + EvAnnotation *annot, + EvAnnotationsSaveMask mask) +{ + PopplerAnnot *poppler_annot; + + poppler_annot = POPPLER_ANNOT (g_object_get_data (G_OBJECT (annot), "poppler-annot")); + if (!poppler_annot) + return; + + if (mask & EV_ANNOTATIONS_SAVE_CONTENTS) + poppler_annot_set_contents (poppler_annot, + ev_annotation_get_contents (annot)); + +#ifdef HAVE_POPPLER_PAGE_ADD_ANNOT + if (mask & EV_ANNOTATIONS_SAVE_COLOR) { + PopplerColor color; + GdkColor ev_color; + + ev_annotation_get_color (annot, &ev_color); + color.red = ev_color.red; + color.green = ev_color.green; + color.blue = ev_color.blue; + poppler_annot_set_color (poppler_annot, &color); + } + + if (EV_IS_ANNOTATION_MARKUP (annot)) { + EvAnnotationMarkup *ev_markup = EV_ANNOTATION_MARKUP (annot); + PopplerAnnotMarkup *markup = POPPLER_ANNOT_MARKUP (poppler_annot); + + if (mask & EV_ANNOTATIONS_SAVE_LABEL) + poppler_annot_markup_set_label (markup, ev_annotation_markup_get_label (ev_markup)); + if (mask & EV_ANNOTATIONS_SAVE_OPACITY) + poppler_annot_markup_set_opacity (markup, ev_annotation_markup_get_opacity (ev_markup)); + if (mask & EV_ANNOTATIONS_SAVE_POPUP_IS_OPEN) + poppler_annot_markup_set_popup_is_open (markup, ev_annotation_markup_get_popup_is_open (ev_markup)); + } + + if (EV_IS_ANNOTATION_TEXT (annot)) { + EvAnnotationText *ev_text = EV_ANNOTATION_TEXT (annot); + PopplerAnnotText *text = POPPLER_ANNOT_TEXT (poppler_annot); + + if (mask & EV_ANNOTATIONS_SAVE_TEXT_IS_OPEN) { + poppler_annot_text_set_is_open (text, + ev_annotation_text_get_is_open (ev_text)); + } + if (mask & EV_ANNOTATIONS_SAVE_TEXT_ICON) { + EvAnnotationTextIcon icon; + + icon = ev_annotation_text_get_icon (ev_text); + poppler_annot_text_set_icon (text, get_poppler_annot_text_icon (icon)); + } + } +#endif /* HAVE_POPPLER_PAGE_ADD_ANNOT */ + PDF_DOCUMENT (document_annotations)->annots_modified = TRUE; +} + +static void +pdf_document_document_annotations_iface_init (EvDocumentAnnotationsInterface *iface) +{ + iface->get_annotations = pdf_document_annotations_get_annotations; + iface->document_is_modified = pdf_document_annotations_document_is_modified; +#ifdef HAVE_POPPLER_PAGE_ADD_ANNOT + iface->add_annotation = pdf_document_annotations_add_annotation; +#endif + iface->save_annotation = pdf_document_annotations_save_annotation; +} + +/* Attachments */ +struct SaveToBufferData { + gchar *buffer; + gsize len, max; +}; + +static gboolean +attachment_save_to_buffer_callback (const gchar *buf, + gsize count, + gpointer user_data, + GError **error) +{ + struct SaveToBufferData *sdata = (SaveToBufferData *)user_data; + gchar *new_buffer; + gsize new_max; + + if (sdata->len + count > sdata->max) { + new_max = MAX (sdata->max * 2, sdata->len + count); + new_buffer = (gchar *)g_realloc (sdata->buffer, new_max); + + sdata->buffer = new_buffer; + sdata->max = new_max; + } + + memcpy (sdata->buffer + sdata->len, buf, count); + sdata->len += count; + + return TRUE; +} + +static gboolean +attachment_save_to_buffer (PopplerAttachment *attachment, + gchar **buffer, + gsize *buffer_size, + GError **error) +{ + static const gint initial_max = 1024; + struct SaveToBufferData sdata; + + *buffer = NULL; + *buffer_size = 0; + + sdata.buffer = (gchar *) g_malloc (initial_max); + sdata.max = initial_max; + sdata.len = 0; + + if (! poppler_attachment_save_to_callback (attachment, + attachment_save_to_buffer_callback, + &sdata, + error)) { + g_free (sdata.buffer); + return FALSE; + } + + *buffer = sdata.buffer; + *buffer_size = sdata.len; + + return TRUE; +} + +static GList * +pdf_document_attachments_get_attachments (EvDocumentAttachments *document) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + GList *attachments; + GList *list; + GList *retval = NULL; + + attachments = poppler_document_get_attachments (pdf_document->document); + + for (list = attachments; list; list = list->next) { + PopplerAttachment *attachment; + EvAttachment *ev_attachment; + gchar *data = NULL; + gsize size; + GError *error = NULL; + + attachment = (PopplerAttachment *) list->data; + + if (attachment_save_to_buffer (attachment, &data, &size, &error)) { + ev_attachment = ev_attachment_new (attachment->name, + attachment->description, + attachment->mtime, + attachment->ctime, + size, data); + + retval = g_list_prepend (retval, ev_attachment); + } else { + if (error) { + g_warning ("%s", error->message); + g_error_free (error); + + g_free (data); + } + } + + g_object_unref (attachment); + } + + return g_list_reverse (retval); +} + +static gboolean +pdf_document_attachments_has_attachments (EvDocumentAttachments *document) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + + return poppler_document_has_attachments (pdf_document->document); +} + +static void +pdf_document_document_attachments_iface_init (EvDocumentAttachmentsInterface *iface) +{ + iface->has_attachments = pdf_document_attachments_has_attachments; + iface->get_attachments = pdf_document_attachments_get_attachments; +} + +/* Layers */ +static gboolean +pdf_document_layers_has_layers (EvDocumentLayers *document) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + PopplerLayersIter *iter; + + iter = poppler_layers_iter_new (pdf_document->document); + if (!iter) + return FALSE; + poppler_layers_iter_free (iter); + + return TRUE; +} + +static void +build_layers_tree (PdfDocument *pdf_document, + GtkTreeModel *model, + GtkTreeIter *parent, + PopplerLayersIter *iter) +{ + do { + GtkTreeIter tree_iter; + PopplerLayersIter *child; + PopplerLayer *layer; + EvLayer *ev_layer = NULL; + gboolean visible; + gchar *markup; + gint rb_group = 0; + + layer = poppler_layers_iter_get_layer (iter); + if (layer) { + markup = g_markup_escape_text (poppler_layer_get_title (layer), -1); + visible = poppler_layer_is_visible (layer); + rb_group = poppler_layer_get_radio_button_group_id (layer); + pdf_document->layers = g_list_append (pdf_document->layers, + g_object_ref (layer)); + ev_layer = ev_layer_new (g_list_length (pdf_document->layers) - 1, + poppler_layer_is_parent (layer), + rb_group); + } else { + gchar *title; + + title = poppler_layers_iter_get_title (iter); + markup = g_markup_escape_text (title, -1); + g_free (title); + + visible = FALSE; + layer = NULL; + } + + gtk_tree_store_append (GTK_TREE_STORE (model), &tree_iter, parent); + gtk_tree_store_set (GTK_TREE_STORE (model), &tree_iter, + EV_DOCUMENT_LAYERS_COLUMN_TITLE, markup, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, visible, + EV_DOCUMENT_LAYERS_COLUMN_ENABLED, TRUE, /* FIXME */ + EV_DOCUMENT_LAYERS_COLUMN_SHOWTOGGLE, (layer != NULL), + EV_DOCUMENT_LAYERS_COLUMN_RBGROUP, rb_group, + EV_DOCUMENT_LAYERS_COLUMN_LAYER, ev_layer, + -1); + if (ev_layer) + g_object_unref (ev_layer); + g_free (markup); + + child = poppler_layers_iter_get_child (iter); + if (child) + build_layers_tree (pdf_document, model, &tree_iter, child); + poppler_layers_iter_free (child); + } while (poppler_layers_iter_next (iter)); +} + +static GtkTreeModel * +pdf_document_layers_get_layers (EvDocumentLayers *document) +{ + GtkTreeModel *model = NULL; + PdfDocument *pdf_document = PDF_DOCUMENT (document); + PopplerLayersIter *iter; + + iter = poppler_layers_iter_new (pdf_document->document); + if (iter) { + model = (GtkTreeModel *) gtk_tree_store_new (EV_DOCUMENT_LAYERS_N_COLUMNS, + G_TYPE_STRING, /* TITLE */ + G_TYPE_OBJECT, /* LAYER */ + G_TYPE_BOOLEAN, /* VISIBLE */ + G_TYPE_BOOLEAN, /* ENABLED */ + G_TYPE_BOOLEAN, /* SHOWTOGGLE */ + G_TYPE_INT); /* RBGROUP */ + build_layers_tree (pdf_document, model, NULL, iter); + poppler_layers_iter_free (iter); + } + return model; +} + +static void +pdf_document_layers_show_layer (EvDocumentLayers *document, + EvLayer *layer) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + guint layer_id = ev_layer_get_id (layer); + + poppler_layer_show (POPPLER_LAYER (g_list_nth_data (pdf_document->layers, layer_id))); +} + +static void +pdf_document_layers_hide_layer (EvDocumentLayers *document, + EvLayer *layer) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + guint layer_id = ev_layer_get_id (layer); + + poppler_layer_hide (POPPLER_LAYER (g_list_nth_data (pdf_document->layers, layer_id))); +} + +static gboolean +pdf_document_layers_layer_is_visible (EvDocumentLayers *document, + EvLayer *layer) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + guint layer_id = ev_layer_get_id (layer); + + return poppler_layer_is_visible (POPPLER_LAYER (g_list_nth_data (pdf_document->layers, layer_id))); +} + +static void +pdf_document_document_layers_iface_init (EvDocumentLayersInterface *iface) +{ + iface->has_layers = pdf_document_layers_has_layers; + iface->get_layers = pdf_document_layers_get_layers; + iface->show_layer = pdf_document_layers_show_layer; + iface->hide_layer = pdf_document_layers_hide_layer; + iface->layer_is_visible = pdf_document_layers_layer_is_visible; +} diff --git a/backend/pdf/ev-poppler.h b/backend/pdf/ev-poppler.h new file mode 100644 index 00000000..f37f2268 --- /dev/null +++ b/backend/pdf/ev-poppler.h @@ -0,0 +1,40 @@ +/* pdfdocument.h: Implementation of EvDocument for PDF + * Copyright (C) 2004, Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __PDF_DOCUMENT_H__ +#define __PDF_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define PDF_TYPE_DOCUMENT (pdf_document_get_type ()) +#define PDF_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PDF_TYPE_DOCUMENT, PdfDocument)) +#define PDF_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PDF_TYPE_DOCUMENT)) + +typedef struct _PdfDocument PdfDocument; +typedef struct _PdfDocumentClass PdfDocumentClass; + +GType pdf_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + + +G_END_DECLS + +#endif /* __PDF_DOCUMENT_H__ */ diff --git a/backend/pdf/pdfdocument.evince-backend.in b/backend/pdf/pdfdocument.evince-backend.in new file mode 100644 index 00000000..d2b55ddc --- /dev/null +++ b/backend/pdf/pdfdocument.evince-backend.in @@ -0,0 +1,6 @@ +[Evince Backend] +Module=pdfdocument +Resident=true +_TypeDescription=PDF Documents +MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;application/x-ext-pdf + diff --git a/backend/pixbuf/Makefile.am b/backend/pixbuf/Makefile.am new file mode 100644 index 00000000..7a28e05b --- /dev/null +++ b/backend/pixbuf/Makefile.am @@ -0,0 +1,30 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libpixbufdocument.la + +libpixbufdocument_la_SOURCES = \ + pixbuf-document.c \ + pixbuf-document.h + +libpixbufdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libpixbufdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) + +backend_in_files = pixbufdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/pixbuf/pixbuf-document.c b/backend/pixbuf/pixbuf-document.c new file mode 100644 index 00000000..065fe498 --- /dev/null +++ b/backend/pixbuf/pixbuf-document.c @@ -0,0 +1,208 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004, Anders Carlsson <andersca@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <glib/gi18n-lib.h> + +#include "pixbuf-document.h" +#include "ev-document-thumbnails.h" +#include "ev-document-misc.h" +#include "ev-file-helpers.h" + +struct _PixbufDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _PixbufDocument +{ + EvDocument parent_instance; + + GdkPixbuf *pixbuf; + + gchar *uri; +}; + +typedef struct _PixbufDocumentClass PixbufDocumentClass; + +static void pixbuf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); + +EV_BACKEND_REGISTER_WITH_CODE (PixbufDocument, pixbuf_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + pixbuf_document_document_thumbnails_iface_init) + }); + +static gboolean +pixbuf_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + + gchar *filename; + GdkPixbuf *pixbuf; + + /* FIXME: We could actually load uris */ + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + pixbuf = gdk_pixbuf_new_from_file (filename, error); + + if (!pixbuf) + return FALSE; + + pixbuf_document->pixbuf = pixbuf; + g_free (pixbuf_document->uri); + pixbuf_document->uri = g_strdup (uri); + + return TRUE; +} + +static gboolean +pixbuf_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + + return ev_xfer_uri_simple (pixbuf_document->uri, uri, error); +} + +static int +pixbuf_document_get_n_pages (EvDocument *document) +{ + return 1; +} + +static void +pixbuf_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + + *width = gdk_pixbuf_get_width (pixbuf_document->pixbuf); + *height = gdk_pixbuf_get_height (pixbuf_document->pixbuf); +} + +static cairo_surface_t * +pixbuf_document_render (EvDocument *document, + EvRenderContext *rc) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + GdkPixbuf *scaled_pixbuf, *rotated_pixbuf; + cairo_surface_t *surface; + + scaled_pixbuf = gdk_pixbuf_scale_simple ( + pixbuf_document->pixbuf, + (gdk_pixbuf_get_width (pixbuf_document->pixbuf) * rc->scale) + 0.5, + (gdk_pixbuf_get_height (pixbuf_document->pixbuf) * rc->scale) + 0.5, + GDK_INTERP_BILINEAR); + + rotated_pixbuf = gdk_pixbuf_rotate_simple (scaled_pixbuf, 360 - rc->rotation); + g_object_unref (scaled_pixbuf); + + surface = ev_document_misc_surface_from_pixbuf (rotated_pixbuf); + g_object_unref (rotated_pixbuf); + + return surface; +} + +static void +pixbuf_document_finalize (GObject *object) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (object); + + g_object_unref (pixbuf_document->pixbuf); + g_free (pixbuf_document->uri); + + G_OBJECT_CLASS (pixbuf_document_parent_class)->finalize (object); +} + +static void +pixbuf_document_class_init (PixbufDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + gobject_class->finalize = pixbuf_document_finalize; + + ev_document_class->load = pixbuf_document_load; + ev_document_class->save = pixbuf_document_save; + ev_document_class->get_n_pages = pixbuf_document_get_n_pages; + ev_document_class->get_page_size = pixbuf_document_get_page_size; + ev_document_class->render = pixbuf_document_render; +} + +static GdkPixbuf * +pixbuf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + GdkPixbuf *pixbuf, *rotated_pixbuf; + gint width, height; + + width = (gint) (gdk_pixbuf_get_width (pixbuf_document->pixbuf) * rc->scale); + height = (gint) (gdk_pixbuf_get_height (pixbuf_document->pixbuf) * rc->scale); + + pixbuf = gdk_pixbuf_scale_simple (pixbuf_document->pixbuf, + width, height, + GDK_INTERP_BILINEAR); + + rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, 360 - rc->rotation); + g_object_unref (pixbuf); + + return rotated_pixbuf; +} + +static void +pixbuf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document); + gint p_width = gdk_pixbuf_get_width (pixbuf_document->pixbuf); + gint p_height = gdk_pixbuf_get_height (pixbuf_document->pixbuf); + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (p_height * rc->scale); + *height = (gint) (p_width * rc->scale); + } else { + *width = (gint) (p_width * rc->scale); + *height = (gint) (p_height * rc->scale); + } +} + +static void +pixbuf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = pixbuf_document_thumbnails_get_thumbnail; + iface->get_dimensions = pixbuf_document_thumbnails_get_dimensions; +} + + +static void +pixbuf_document_init (PixbufDocument *pixbuf_document) +{ +} diff --git a/backend/pixbuf/pixbuf-document.h b/backend/pixbuf/pixbuf-document.h new file mode 100644 index 00000000..6f34372d --- /dev/null +++ b/backend/pixbuf/pixbuf-document.h @@ -0,0 +1,38 @@ +/* pdfdocument.h: Implementation of EvDocument for pixbufs + * Copyright (C) 2004, Anders Carlsson <andersca@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __PIXBUF_DOCUMENT_H__ +#define __PIXBUF_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define PIXBUF_TYPE_DOCUMENT (pixbuf_document_get_type ()) +#define PIXBUF_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_TYPE_DOCUMENT, PixbufDocument)) +#define PIXBUF_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_TYPE_DOCUMENT)) + +typedef struct _PixbufDocument PixbufDocument; + +GType pixbuf_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __PIXBUF_DOCUMENT_H__ */ diff --git a/backend/pixbuf/pixbufdocument.evince-backend.in b/backend/pixbuf/pixbufdocument.evince-backend.in new file mode 100644 index 00000000..9beb526b --- /dev/null +++ b/backend/pixbuf/pixbufdocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=pixbufdocument +_TypeDescription=Images +MimeType=image/*; diff --git a/backend/ps/Makefile.am b/backend/ps/Makefile.am new file mode 100644 index 00000000..3f059de1 --- /dev/null +++ b/backend/ps/Makefile.am @@ -0,0 +1,32 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(SPECTRE_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libpsdocument.la + +libpsdocument_la_SOURCES = \ + ev-spectre.c \ + ev-spectre.h + +libpsdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libpsdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + $(SPECTRE_LIBS) + +backend_in_files = psdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/ps/ev-spectre.c b/backend/ps/ev-spectre.c new file mode 100644 index 00000000..e1877a7b --- /dev/null +++ b/backend/ps/ev-spectre.c @@ -0,0 +1,473 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <config.h> +#include <glib/gi18n-lib.h> +#include <stdlib.h> +#include <libspectre/spectre.h> + +#include "ev-spectre.h" + +#include "ev-file-exporter.h" +#include "ev-document-thumbnails.h" +#include "ev-document-misc.h" + +struct _PSDocument { + EvDocument object; + + SpectreDocument *doc; + SpectreExporter *exporter; +}; + +struct _PSDocumentClass { + EvDocumentClass parent_class; +}; + +static void ps_document_file_exporter_iface_init (EvFileExporterInterface *iface); +static void ps_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); + +EV_BACKEND_REGISTER_WITH_CODE (PSDocument, ps_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + ps_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, + ps_document_file_exporter_iface_init); + }); + +/* PSDocument */ +static void +ps_document_init (PSDocument *ps_document) +{ +} + +static void +ps_document_dispose (GObject *object) +{ + PSDocument *ps = PS_DOCUMENT (object); + + if (ps->doc) { + spectre_document_free (ps->doc); + ps->doc = NULL; + } + + if (ps->exporter) { + spectre_exporter_free (ps->exporter); + ps->exporter = NULL; + } + + G_OBJECT_CLASS (ps_document_parent_class)->dispose (object); +} + +/* EvDocumentIface */ +static gboolean +ps_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + PSDocument *ps = PS_DOCUMENT (document); + gchar *filename; + + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + ps->doc = spectre_document_new (); + + spectre_document_load (ps->doc, filename); + if (spectre_document_status (ps->doc)) { + gchar *filename_dsp; + + filename_dsp = g_filename_display_name (filename); + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_FAILED, + _("Failed to load document ā%sā"), + filename_dsp); + g_free (filename_dsp); + g_free (filename); + + return FALSE; + } + + g_free (filename); + + return TRUE; +} + +static gboolean +ps_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + PSDocument *ps = PS_DOCUMENT (document); + gchar *filename; + + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + spectre_document_save (ps->doc, filename); + if (spectre_document_status (ps->doc)) { + gchar *filename_dsp; + + filename_dsp = g_filename_display_name (filename); + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_FAILED, + _("Failed to save document ā%sā"), + filename_dsp); + g_free (filename_dsp); + g_free (filename); + + return FALSE; + } + + g_free (filename); + + return TRUE; +} + +static int +ps_document_get_n_pages (EvDocument *document) +{ + PSDocument *ps = PS_DOCUMENT (document); + + return spectre_document_get_n_pages (ps->doc); +} + +static EvPage * +ps_document_get_page (EvDocument *document, + gint index) +{ + PSDocument *ps = PS_DOCUMENT (document); + SpectrePage *ps_page; + EvPage *page; + + ps_page = spectre_document_get_page (ps->doc, index); + page = ev_page_new (index); + page->backend_page = (EvBackendPage)ps_page; + page->backend_destroy_func = (EvBackendPageDestroyFunc)spectre_page_free; + + return page; +} + +static gint +get_page_rotation (SpectrePage *page) +{ + switch (spectre_page_get_orientation (page)) { + default: + case SPECTRE_ORIENTATION_PORTRAIT: + return 0; + case SPECTRE_ORIENTATION_LANDSCAPE: + return 90; + case SPECTRE_ORIENTATION_REVERSE_PORTRAIT: + return 180; + case SPECTRE_ORIENTATION_REVERSE_LANDSCAPE: + return 270; + } + + return 0; +} + +static void +ps_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + SpectrePage *ps_page; + gdouble page_width, page_height; + gint pwidth, pheight; + gint rotate; + + ps_page = (SpectrePage *)page->backend_page; + + spectre_page_get_size (ps_page, &pwidth, &pheight); + + rotate = get_page_rotation (ps_page); + if (rotate == 90 || rotate == 270) { + page_height = pwidth; + page_width = pheight; + } else { + page_width = pwidth; + page_height = pheight; + } + + if (width) { + *width = page_width; + } + + if (height) { + *height = page_height; + } +} + +static char * +ps_document_get_page_label (EvDocument *document, + EvPage *page) +{ + return g_strdup (spectre_page_get_label ((SpectrePage *)page->backend_page)); +} + +static EvDocumentInfo * +ps_document_get_info (EvDocument *document) +{ + PSDocument *ps = PS_DOCUMENT (document); + EvDocumentInfo *info; + const gchar *creator; + SpectrePage *ps_page; + gint width, height; + + info = g_new0 (EvDocumentInfo, 1); + info->fields_mask = EV_DOCUMENT_INFO_TITLE | + EV_DOCUMENT_INFO_FORMAT | + EV_DOCUMENT_INFO_CREATOR | + EV_DOCUMENT_INFO_N_PAGES | + EV_DOCUMENT_INFO_PAPER_SIZE; + + creator = spectre_document_get_creator (ps->doc); + + ps_page = spectre_document_get_page (ps->doc, 0); + spectre_page_get_size (ps_page, &width, &height); + spectre_page_free (ps_page); + + info->title = g_strdup (spectre_document_get_title (ps->doc)); + info->format = g_strdup (spectre_document_get_format (ps->doc)); + info->creator = g_strdup (creator ? creator : spectre_document_get_for (ps->doc)); + info->n_pages = spectre_document_get_n_pages (ps->doc); + info->paper_width = width / 72.0f * 25.4f; + info->paper_height = height / 72.0f * 25.4f; + + return info; +} + +static gboolean +ps_document_get_backend_info (EvDocument *document, + EvDocumentBackendInfo *info) +{ + info->name = "libspectre"; + info->version = SPECTRE_VERSION_STRING; + + return TRUE; +} + +static cairo_surface_t * +ps_document_render (EvDocument *document, + EvRenderContext *rc) +{ + SpectrePage *ps_page; + SpectreRenderContext *src; + gint width_points; + gint height_points; + gint width, height; + gint swidth, sheight; + guchar *data = NULL; + gint stride; + gint rotation; + cairo_surface_t *surface; + static const cairo_user_data_key_t key; + + ps_page = (SpectrePage *)rc->page->backend_page; + + spectre_page_get_size (ps_page, &width_points, &height_points); + + width = (gint) ((width_points * rc->scale) + 0.5); + height = (gint) ((height_points * rc->scale) + 0.5); + rotation = (rc->rotation + get_page_rotation (ps_page)) % 360; + + src = spectre_render_context_new (); + spectre_render_context_set_scale (src, + (gdouble)width / width_points, + (gdouble)height / height_points); + spectre_render_context_set_rotation (src, rotation); + spectre_page_render (ps_page, src, &data, &stride); + spectre_render_context_free (src); + + if (!data) { + return NULL; + } + + if (spectre_page_status (ps_page)) { + g_warning ("%s", spectre_status_to_string (spectre_page_status (ps_page))); + g_free (data); + + return NULL; + } + + if (rotation == 90 || rotation == 270) { + swidth = height; + sheight = width; + } else { + swidth = width; + sheight = height; + } + + surface = cairo_image_surface_create_for_data (data, + CAIRO_FORMAT_RGB24, + swidth, sheight, + stride); + cairo_surface_set_user_data (surface, &key, + data, (cairo_destroy_func_t)g_free); + return surface; +} + +static void +ps_document_class_init (PSDocumentClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + object_class->dispose = ps_document_dispose; + + ev_document_class->load = ps_document_load; + ev_document_class->save = ps_document_save; + ev_document_class->get_n_pages = ps_document_get_n_pages; + ev_document_class->get_page = ps_document_get_page; + ev_document_class->get_page_size = ps_document_get_page_size; + ev_document_class->get_page_label = ps_document_get_page_label; + ev_document_class->get_info = ps_document_get_info; + ev_document_class->get_backend_info = ps_document_get_backend_info; + ev_document_class->render = ps_document_render; +} + +/* EvDocumentThumbnailsIface */ +static GdkPixbuf * +ps_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails, + EvRenderContext *rc, + gboolean border) +{ + PSDocument *ps = PS_DOCUMENT (document_thumbnails); + cairo_surface_t *surface; + GdkPixbuf *pixbuf = NULL; + + surface = ps_document_render (EV_DOCUMENT (ps), rc); + if (!surface) { + g_warning ("Error rendering thumbnail"); + return NULL; + } + + pixbuf = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); + + if (border) { + GdkPixbuf *border_pixbuf; + + border_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, pixbuf); + g_object_unref (pixbuf); + pixbuf = border_pixbuf; + } + + return pixbuf; +} + +static void +ps_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails, + EvRenderContext *rc, + gint *width, + gint *height) +{ + PSDocument *ps = PS_DOCUMENT (document_thumbnails); + gdouble page_width, page_height; + + ps_document_get_page_size (EV_DOCUMENT (ps), + rc->page, + &page_width, &page_height); + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } else { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static void +ps_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = ps_document_thumbnails_get_thumbnail; + iface->get_dimensions = ps_document_thumbnails_get_dimensions; +} + +/* EvFileExporterIface */ +static void +ps_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + PSDocument *ps = PS_DOCUMENT (exporter); + + if (ps->exporter) + spectre_exporter_free (ps->exporter); + + switch (fc->format) { + case EV_FILE_FORMAT_PS: + ps->exporter = + spectre_exporter_new (ps->doc, + SPECTRE_EXPORTER_FORMAT_PS); + break; + case EV_FILE_FORMAT_PDF: + ps->exporter = + spectre_exporter_new (ps->doc, + SPECTRE_EXPORTER_FORMAT_PDF); + break; + default: + g_assert_not_reached (); + } + + spectre_exporter_begin (ps->exporter, fc->filename); +} + +static void +ps_document_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) +{ + PSDocument *ps = PS_DOCUMENT (exporter); + + spectre_exporter_do_page (ps->exporter, rc->page->index); +} + +static void +ps_document_file_exporter_end (EvFileExporter *exporter) +{ + PSDocument *ps = PS_DOCUMENT (exporter); + + spectre_exporter_end (ps->exporter); +} + +static EvFileExporterCapabilities +ps_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_COPIES | + EV_FILE_EXPORTER_CAN_COLLATE | + EV_FILE_EXPORTER_CAN_REVERSE | + EV_FILE_EXPORTER_CAN_GENERATE_PS | + EV_FILE_EXPORTER_CAN_GENERATE_PDF; +} + +static void +ps_document_file_exporter_iface_init (EvFileExporterInterface *iface) +{ + iface->begin = ps_document_file_exporter_begin; + iface->do_page = ps_document_file_exporter_do_page; + iface->end = ps_document_file_exporter_end; + iface->get_capabilities = ps_document_file_exporter_get_capabilities; +} diff --git a/backend/ps/ev-spectre.h b/backend/ps/ev-spectre.h new file mode 100644 index 00000000..17b18db0 --- /dev/null +++ b/backend/ps/ev-spectre.h @@ -0,0 +1,48 @@ +/* + * Ghostscript widget for GTK/MATE + * + * Copyright 1998 - 2005 The Free Software Foundation + * + * Authors: Jaka Mocnik, Federico Mena (Quartic), Szekeres Istvan (Pista) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __PS_DOCUMENT_H__ +#define __PS_DOCUMENT_H__ + +#include <glib-object.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define PS_TYPE_DOCUMENT (ps_document_get_type()) +#define PS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PS_TYPE_DOCUMENT, PSDocument)) +#define PS_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PS_TYPE_DOCUMENT, PSDocumentClass)) +#define PS_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PS_TYPE_DOCUMENT)) +#define PS_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PS_TYPE_DOCUMENT, PSDocumentClass)) + +typedef struct _PSDocument PSDocument; +typedef struct _PSDocumentClass PSDocumentClass; + +GType ps_document_get_type (void) G_GNUC_CONST; + +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __PS_DOCUMENT_H__ */ diff --git a/backend/ps/psdocument.evince-backend.in b/backend/ps/psdocument.evince-backend.in new file mode 100644 index 00000000..af24be61 --- /dev/null +++ b/backend/ps/psdocument.evince-backend.in @@ -0,0 +1,5 @@ +[Evince Backend] +Module=psdocument +Resident=true +_TypeDescription=PostScript Documents +MimeType=application/postscript;application/x-bzpostscript;application/x-gzpostscript;image/x-eps;image/x-bzeps;image/x-gzeps diff --git a/backend/tiff/Makefile.am b/backend/tiff/Makefile.am new file mode 100644 index 00000000..9f1a00e6 --- /dev/null +++ b/backend/tiff/Makefile.am @@ -0,0 +1,33 @@ +INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + $(BACKEND_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +backend_LTLIBRARIES = libtiffdocument.la + +libtiffdocument_la_SOURCES = \ + tiff-document.c \ + tiff-document.h \ + tiff2ps.c \ + tiff2ps.h + +libtiffdocument_la_LDFLAGS = $(BACKEND_LIBTOOL_FLAGS) +libtiffdocument_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(BACKEND_LIBS) \ + -ltiff + +backend_in_files = tiffdocument.evince-backend.in +backend_DATA = $(backend_in_files:.evince-backend.in=.evince-backend) + +EXTRA_DIST = $(backend_in_files) + +CLEANFILES = $(backend_DATA) + +@EV_INTLTOOL_EVINCE_BACKEND_RULE@ + +-include $(top_srcdir)/git.mk diff --git a/backend/tiff/tiff-document.c b/backend/tiff/tiff-document.c new file mode 100644 index 00000000..9c113b49 --- /dev/null +++ b/backend/tiff/tiff-document.c @@ -0,0 +1,533 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Jonathan Blandford <jrb@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* FIXME: Should probably buffer calls to libtiff with TIFFSetWarningHandler + */ + +#include "config.h" + +#include <config.h> +#include <stdio.h> +#include <glib.h> +#include <glib/gi18n-lib.h> + +#include "tiffio.h" +#include "tiff2ps.h" +#include "tiff-document.h" +#include "ev-document-misc.h" +#include "ev-document-thumbnails.h" +#include "ev-file-exporter.h" +#include "ev-file-helpers.h" + +struct _TiffDocumentClass +{ + EvDocumentClass parent_class; +}; + +struct _TiffDocument +{ + EvDocument parent_instance; + + TIFF *tiff; + gint n_pages; + TIFF2PSContext *ps_export_ctx; + + gchar *uri; +}; + +typedef struct _TiffDocumentClass TiffDocumentClass; + +static void tiff_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); +static void tiff_document_document_file_exporter_iface_init (EvFileExporterInterface *iface); + +EV_BACKEND_REGISTER_WITH_CODE (TiffDocument, tiff_document, + { + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + tiff_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, + tiff_document_document_file_exporter_iface_init); + }); + +static TIFFErrorHandler orig_error_handler = NULL; +static TIFFErrorHandler orig_warning_handler = NULL; + +static void +push_handlers (void) +{ + orig_error_handler = TIFFSetErrorHandler (NULL); + orig_warning_handler = TIFFSetWarningHandler (NULL); +} + +static void +pop_handlers (void) +{ + TIFFSetErrorHandler (orig_error_handler); + TIFFSetWarningHandler (orig_warning_handler); +} + +static gboolean +tiff_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + gchar *filename; + TIFF *tiff; + + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) + return FALSE; + + push_handlers (); + tiff = TIFFOpen (filename, "r"); + if (tiff) { + guint32 w, h; + + /* FIXME: unused data? why bother here */ + TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &h); + } + + if (!tiff) { + pop_handlers (); + + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Invalid document")); + + g_free (filename); + return FALSE; + } + + tiff_document->tiff = tiff; + g_free (tiff_document->uri); + g_free (filename); + tiff_document->uri = g_strdup (uri); + + pop_handlers (); + return TRUE; +} + +static gboolean +tiff_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + + return ev_xfer_uri_simple (tiff_document->uri, uri, error); +} + +static int +tiff_document_get_n_pages (EvDocument *document) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + + g_return_val_if_fail (TIFF_IS_DOCUMENT (document), 0); + g_return_val_if_fail (tiff_document->tiff != NULL, 0); + + if (tiff_document->n_pages == -1) { + push_handlers (); + tiff_document->n_pages = 0; + + do { + tiff_document->n_pages ++; + } + while (TIFFReadDirectory (tiff_document->tiff)); + pop_handlers (); + } + + return tiff_document->n_pages; +} + +static void +tiff_document_get_resolution (TiffDocument *tiff_document, + gfloat *x_res, + gfloat *y_res) +{ + gfloat x = 72.0, y = 72.0; + gushort unit; + + if (TIFFGetField (tiff_document->tiff, TIFFTAG_XRESOLUTION, &x) && + TIFFGetField (tiff_document->tiff, TIFFTAG_YRESOLUTION, &y)) { + if (TIFFGetFieldDefaulted (tiff_document->tiff, TIFFTAG_RESOLUTIONUNIT, &unit)) { + if (unit == RESUNIT_CENTIMETER) { + x *= 2.54; + y *= 2.54; + } + } + } + + *x_res = x; + *y_res = y; +} + +static void +tiff_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + guint32 w, h; + gfloat x_res, y_res; + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + + g_return_if_fail (TIFF_IS_DOCUMENT (document)); + g_return_if_fail (tiff_document->tiff != NULL); + + push_handlers (); + if (TIFFSetDirectory (tiff_document->tiff, page->index) != 1) { + pop_handlers (); + return; + } + + TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGELENGTH, &h); + tiff_document_get_resolution (tiff_document, &x_res, &y_res); + h = h * (x_res / y_res); + + *width = w; + *height = h; + + pop_handlers (); +} + +static cairo_surface_t * +tiff_document_render (EvDocument *document, + EvRenderContext *rc) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + int width, height; + float x_res, y_res; + gint rowstride, bytes; + guchar *pixels = NULL; + guchar *p; + int orientation; + cairo_surface_t *surface; + cairo_surface_t *rotated_surface; + static const cairo_user_data_key_t key; + + g_return_val_if_fail (TIFF_IS_DOCUMENT (document), NULL); + g_return_val_if_fail (tiff_document->tiff != NULL, NULL); + + push_handlers (); + if (TIFFSetDirectory (tiff_document->tiff, rc->page->index) != 1) { + pop_handlers (); + return NULL; + } + + if (!TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGEWIDTH, &width)) { + pop_handlers (); + return NULL; + } + + if (! TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGELENGTH, &height)) { + pop_handlers (); + return NULL; + } + + if (! TIFFGetField (tiff_document->tiff, TIFFTAG_ORIENTATION, &orientation)) { + orientation = ORIENTATION_TOPLEFT; + } + + tiff_document_get_resolution (tiff_document, &x_res, &y_res); + + pop_handlers (); + + /* Sanity check the doc */ + if (width <= 0 || height <= 0) + return NULL; + +#ifdef HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH + rowstride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, width); +#else + rowstride = width * 4; +#endif + if (rowstride / 4 != width) + /* overflow, or cairo was changed in an unsupported way */ + return NULL; + + bytes = height * rowstride; + if (bytes / rowstride != height) + /* overflow */ + return NULL; + + pixels = g_try_malloc (bytes); + if (!pixels) + return NULL; + + surface = cairo_image_surface_create_for_data (pixels, + CAIRO_FORMAT_RGB24, + width, height, + rowstride); + cairo_surface_set_user_data (surface, &key, + pixels, (cairo_destroy_func_t)g_free); + + TIFFReadRGBAImageOriented (tiff_document->tiff, + width, height, + (uint32 *)pixels, + orientation, 1); + pop_handlers (); + + /* Convert the format returned by libtiff to + * what cairo expects + */ + p = pixels; + while (p < pixels + bytes) { + guint32 *pixel = (guint32*)p; + guint8 r = TIFFGetR(*pixel); + guint8 g = TIFFGetG(*pixel); + guint8 b = TIFFGetB(*pixel); + guint8 a = TIFFGetA(*pixel); + + *pixel = (a << 24) | (r << 16) | (g << 8) | b; + + p += 4; + } + + rotated_surface = ev_document_misc_surface_rotate_and_scale (surface, + (width * rc->scale) + 0.5, + (height * rc->scale * (x_res / y_res)) + 0.5, + rc->rotation); + cairo_surface_destroy (surface); + + return rotated_surface; +} + +static GdkPixbuf * +tiff_document_render_pixbuf (EvDocument *document, + EvRenderContext *rc) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + int width, height; + float x_res, y_res; + gint rowstride, bytes; + guchar *pixels = NULL; + GdkPixbuf *pixbuf; + GdkPixbuf *scaled_pixbuf; + GdkPixbuf *rotated_pixbuf; + + push_handlers (); + if (TIFFSetDirectory (tiff_document->tiff, rc->page->index) != 1) { + pop_handlers (); + return NULL; + } + + if (!TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGEWIDTH, &width)) { + pop_handlers (); + return NULL; + } + + if (! TIFFGetField (tiff_document->tiff, TIFFTAG_IMAGELENGTH, &height)) { + pop_handlers (); + return NULL; + } + + tiff_document_get_resolution (tiff_document, &x_res, &y_res); + + pop_handlers (); + + /* Sanity check the doc */ + if (width <= 0 || height <= 0) + return NULL; + + rowstride = width * 4; + if (rowstride / 4 != width) + /* overflow */ + return NULL; + + bytes = height * rowstride; + if (bytes / rowstride != height) + /* overflow */ + return NULL; + + pixels = g_try_malloc (bytes); + if (!pixels) + return NULL; + + pixbuf = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE, 8, + width, height, rowstride, + (GdkPixbufDestroyNotify) g_free, NULL); + TIFFReadRGBAImageOriented (tiff_document->tiff, + width, height, + (uint32 *)pixels, + ORIENTATION_TOPLEFT, 1); + pop_handlers (); + + scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf, + width * rc->scale, + height * rc->scale * (x_res / y_res), + GDK_INTERP_BILINEAR); + g_object_unref (pixbuf); + + rotated_pixbuf = gdk_pixbuf_rotate_simple (scaled_pixbuf, 360 - rc->rotation); + g_object_unref (scaled_pixbuf); + + return rotated_pixbuf; +} + +static gchar * +tiff_document_get_page_label (EvDocument *document, + EvPage *page) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (document); + static gchar *label; + + if (TIFFGetField (tiff_document->tiff, TIFFTAG_PAGENAME, &label) && + g_utf8_validate (label, -1, NULL)) { + return g_strdup (label); + } + + return NULL; +} + +static void +tiff_document_finalize (GObject *object) +{ + TiffDocument *tiff_document = TIFF_DOCUMENT (object); + + if (tiff_document->tiff) + TIFFClose (tiff_document->tiff); + if (tiff_document->uri) + g_free (tiff_document->uri); + + G_OBJECT_CLASS (tiff_document_parent_class)->finalize (object); +} + +static void +tiff_document_class_init (TiffDocumentClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); + + gobject_class->finalize = tiff_document_finalize; + + ev_document_class->load = tiff_document_load; + ev_document_class->save = tiff_document_save; + ev_document_class->get_n_pages = tiff_document_get_n_pages; + ev_document_class->get_page_size = tiff_document_get_page_size; + ev_document_class->render = tiff_document_render; + ev_document_class->get_page_label = tiff_document_get_page_label; +} + +static GdkPixbuf * +tiff_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + GdkPixbuf *pixbuf; + + pixbuf = tiff_document_render_pixbuf (EV_DOCUMENT (document), rc); + + if (border) { + GdkPixbuf *tmp_pixbuf = pixbuf; + + pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } + + return pixbuf; +} + +static void +tiff_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + gdouble page_width, page_height; + + tiff_document_get_page_size (EV_DOCUMENT (document), + rc->page, + &page_width, &page_height); + + if (rc->rotation == 90 || rc->rotation == 270) { + *width = (gint) (page_height * rc->scale); + *height = (gint) (page_width * rc->scale); + } else { + *width = (gint) (page_width * rc->scale); + *height = (gint) (page_height * rc->scale); + } +} + +static void +tiff_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) +{ + iface->get_thumbnail = tiff_document_thumbnails_get_thumbnail; + iface->get_dimensions = tiff_document_thumbnails_get_dimensions; +} + +/* postscript exporter implementation */ +static void +tiff_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + TiffDocument *document = TIFF_DOCUMENT (exporter); + + document->ps_export_ctx = tiff2ps_context_new(fc->filename); +} + +static void +tiff_document_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc) +{ + TiffDocument *document = TIFF_DOCUMENT (exporter); + + if (document->ps_export_ctx == NULL) + return; + if (TIFFSetDirectory (document->tiff, rc->page->index) != 1) + return; + tiff2ps_process_page (document->ps_export_ctx, document->tiff, + 0, 0, 0, 0, 0); +} + +static void +tiff_document_file_exporter_end (EvFileExporter *exporter) +{ + TiffDocument *document = TIFF_DOCUMENT (exporter); + + if (document->ps_export_ctx == NULL) + return; + tiff2ps_context_finalize(document->ps_export_ctx); +} + +static EvFileExporterCapabilities +tiff_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_COPIES | + EV_FILE_EXPORTER_CAN_COLLATE | + EV_FILE_EXPORTER_CAN_REVERSE | + EV_FILE_EXPORTER_CAN_GENERATE_PS; +} + +static void +tiff_document_document_file_exporter_iface_init (EvFileExporterInterface *iface) +{ + iface->begin = tiff_document_file_exporter_begin; + iface->do_page = tiff_document_file_exporter_do_page; + iface->end = tiff_document_file_exporter_end; + iface->get_capabilities = tiff_document_file_exporter_get_capabilities; +} + +static void +tiff_document_init (TiffDocument *tiff_document) +{ + tiff_document->n_pages = -1; +} diff --git a/backend/tiff/tiff-document.h b/backend/tiff/tiff-document.h new file mode 100644 index 00000000..a188f143 --- /dev/null +++ b/backend/tiff/tiff-document.h @@ -0,0 +1,38 @@ + +/* pdfdocument.h: Implementation of EvDocument for tiffs + * Copyright (C) 2005, Jonathan Blandford <jrb@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __TIFF_DOCUMENT_H__ +#define __TIFF_DOCUMENT_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define TIFF_TYPE_DOCUMENT (tiff_document_get_type ()) +#define TIFF_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TIFF_TYPE_DOCUMENT, TiffDocument)) +#define TIFF_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TIFF_TYPE_DOCUMENT)) + +typedef struct _TiffDocument TiffDocument; + +GType tiff_document_get_type (void) G_GNUC_CONST; +G_MODULE_EXPORT GType register_evince_backend (GTypeModule *module); + +G_END_DECLS + +#endif /* __TIFF_DOCUMENT_H__ */ diff --git a/backend/tiff/tiff2ps.c b/backend/tiff/tiff2ps.c new file mode 100644 index 00000000..43a6cb32 --- /dev/null +++ b/backend/tiff/tiff2ps.c @@ -0,0 +1,1872 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* $Id$ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Modified for use as Evince TIFF ps exporter by + * Matthew S. Wilson <msw@rpath.com> + * Modifications Copyright (C) 2005 rpath, Inc. + * + */ + +#include <config.h> +#include <stdio.h> +#include <stdlib.h> /* for atof */ +#include <math.h> +#include <time.h> +#include <string.h> +#include <unistd.h> + +#include <glib.h> +#include <glib/gstdio.h> + +#include "tiff2ps.h" + +/* + * Revision history + * + * 2001-Mar-21 + * I (Bruce A. Mallett) added this revision history comment ;) + * + * Fixed PS_Lvl2page() code which outputs non-ASCII85 raw + * data. Moved test for when to output a line break to + * *after* the output of a character. This just serves + * to fix an eye-nuisance where the first line of raw + * data was one character shorter than subsequent lines. + * + * Added an experimental ASCII85 encoder which can be used + * only when there is a single buffer of bytes to be encoded. + * This version is much faster at encoding a straight-line + * buffer of data because it can avoid alot of the loop + * overhead of the byte-by-bye version. To use this version + * you need to define EXP_ASCII85ENCODER (experimental ...). + * + * Added bug fix given by Michael Schmidt to PS_Lvl2page() + * in which an end-of-data marker ('>') was not being output + * when producing non-ASCII85 encoded PostScript Level 2 + * data. + * + * Fixed PS_Lvl2colorspace() so that it no longer assumes that + * a TIFF having more than 2 planes is a CMYK. This routine + * no longer looks at the samples per pixel but instead looks + * at the "photometric" value. This change allows support of + * CMYK TIFFs. + * + * Modified the PostScript L2 imaging loop so as to test if + * the input stream is still open before attempting to do a + * flushfile on it. This was done because some RIPs close + * the stream after doing the image operation. + * + * Got rid of the realloc() being done inside a loop in the + * PSRawDataBW() routine. The code now walks through the + * byte-size array outside the loop to determine the largest + * size memory block that will be needed. + * + * Added "-m" switch to ask tiff2ps to, where possible, use the + * "imagemask" operator instead of the "image" operator. + * + * Added the "-i #" switch to allow interpolation to be disabled. + * + * Unrolled a loop or two to improve performance. + */ + +/* + * Define EXP_ASCII85ENCODER if you want to use an experimental + * version of the ASCII85 encoding routine. The advantage of + * using this routine is that tiff2ps will convert to ASCII85 + * encoding at between 3 and 4 times the speed as compared to + * using the old (non-experimental) encoder. The disadvantage + * is that you will be using a new (and unproven) encoding + * routine. So user beware, you have been warned! + */ + +#define EXP_ASCII85ENCODER + +/* + * NB: this code assumes uint32 works with printf's %l[ud]. + */ + +struct _TIFF2PSContext +{ + char *filename; /* input filename */ + FILE *fd; /* output file stream */ + int ascii85; /* use ASCII85 encoding */ + int interpolate; /* interpolate level2 image */ + int level2; /* generate PostScript level 2 */ + int level3; /* generate PostScript level 3 */ + int generateEPSF; /* generate Encapsulated PostScript */ + int PSduplex; /* enable duplex printing */ + int PStumble; /* enable top edge binding */ + int PSavoiddeadzone; /* enable avoiding printer deadzone */ + double maxPageHeight; /* maximum size to fit on page */ + double splitOverlap; /* amount for split pages to overlag */ + int rotate; /* rotate image by 180 degrees */ + int useImagemask; /* Use imagemask instead of image operator */ + uint16 res_unit; /* Resolution units: 2 - inches, 3 - cm */ + int npages; /* number of pages processed */ + + tsize_t tf_bytesperrow; + tsize_t ps_bytesperrow; + tsize_t tf_rowsperstrip; + tsize_t tf_numberstrips; + + /* + * ASCII85 Encoding Support. + */ + unsigned char ascii85buf[10]; + int ascii85count; + int ascii85breaklen; + uint16 samplesperpixel; + uint16 bitspersample; + uint16 planarconfiguration; + uint16 photometric; + uint16 compression; + uint16 extrasamples; + int alpha; +}; + +static void PSpage(TIFF2PSContext*, TIFF*, uint32, uint32); +static void PSColorContigPreamble(TIFF2PSContext*, uint32, uint32, int); +static void PSColorSeparatePreamble(TIFF2PSContext*, uint32, uint32, int); +static void PSDataColorContig(TIFF2PSContext*, TIFF*, uint32, uint32, int); +static void PSDataColorSeparate(TIFF2PSContext*, TIFF*, uint32, uint32, int); +static void PSDataPalette(TIFF2PSContext*, TIFF*, uint32, uint32); +static void PSDataBW(TIFF2PSContext*, TIFF*, uint32, uint32); +static void Ascii85Init(TIFF2PSContext*); +static void Ascii85Put(TIFF2PSContext*, unsigned char); +static void Ascii85Flush(TIFF2PSContext*); +static void PSHead(TIFF2PSContext*, TIFF*, uint32, uint32, + double, double, double, double); +static void PSTail(TIFF2PSContext*); + +#if defined( EXP_ASCII85ENCODER ) +static int Ascii85EncodeBlock(TIFF2PSContext*, uint8 * ascii85_p, + unsigned f_eod, const uint8 * raw_p, int raw_l); +#endif + +TIFF2PSContext* tiff2ps_context_new(const gchar *filename) { + TIFF2PSContext* ctx; + + ctx = g_new0(TIFF2PSContext, 1); + ctx->filename = g_strdup(filename); + ctx->fd = g_fopen(ctx->filename, "w"); + if (ctx->fd == NULL) { + g_free (ctx->filename); + g_free (ctx); + return NULL; + } + ctx->interpolate = TRUE; /* interpolate level2 image */ + ctx->PSavoiddeadzone = TRUE; /* enable avoiding printer deadzone */ + return ctx; +} + +void tiff2ps_context_finalize(TIFF2PSContext *ctx) { + PSTail(ctx); + fclose(ctx->fd); + g_free(ctx->filename); + g_free(ctx); +} + +static int +checkImage(TIFF2PSContext *ctx, TIFF* tif) +{ + switch (ctx->photometric) { + case PHOTOMETRIC_YCBCR: + if ((ctx->compression == COMPRESSION_JPEG + || ctx->compression == COMPRESSION_OJPEG) + && ctx->planarconfiguration == PLANARCONFIG_CONTIG) { + /* can rely on libjpeg to convert to RGB */ + TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, + JPEGCOLORMODE_RGB); + ctx->photometric = PHOTOMETRIC_RGB; + } else { + if (ctx->level2 || ctx->level3) + break; + TIFFError(ctx->filename, "Can not handle image with %s", + "Ctx->PhotometricInterpretation=YCbCr"); + return (0); + } + /* fall thru... */ + case PHOTOMETRIC_RGB: + if (ctx->alpha && ctx->bitspersample != 8) { + TIFFError(ctx->filename, + "Can not handle %d-bit/sample RGB image with ctx->alpha", + ctx->bitspersample); + return (0); + } + /* fall thru... */ + case PHOTOMETRIC_SEPARATED: + case PHOTOMETRIC_PALETTE: + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: + break; + case PHOTOMETRIC_LOGL: + case PHOTOMETRIC_LOGLUV: + if (ctx->compression != COMPRESSION_SGILOG && + ctx->compression != COMPRESSION_SGILOG24) { + TIFFError(ctx->filename, + "Can not handle %s data with ctx->compression other than SGILog", + (ctx->photometric == PHOTOMETRIC_LOGL) ? + "LogL" : "LogLuv" + ); + return (0); + } + /* rely on library to convert to RGB/greyscale */ + TIFFSetField(tif, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_8BIT); + ctx->photometric = (ctx->photometric == PHOTOMETRIC_LOGL) ? + PHOTOMETRIC_MINISBLACK : PHOTOMETRIC_RGB; + ctx->bitspersample = 8; + break; + case PHOTOMETRIC_CIELAB: + /* fall thru... */ + default: + TIFFError(ctx->filename, + "Can not handle image with Ctx->PhotometricInterpretation=%d", + ctx->photometric); + return (0); + } + switch (ctx->bitspersample) { + case 1: case 2: + case 4: case 8: + break; + default: + TIFFError(ctx->filename, "Can not handle %d-bit/sample image", + ctx->bitspersample); + return (0); + } + if (ctx->planarconfiguration == PLANARCONFIG_SEPARATE && + ctx->extrasamples > 0) + TIFFWarning(ctx->filename, "Ignoring extra samples"); + return (1); +} + +#define PS_UNIT_SIZE 72.0F +#define PSUNITS(npix,res) ((npix) * (PS_UNIT_SIZE / (res))) + +static char RGBcolorimage[] = "\ +/bwproc {\n\ + rgbproc\n\ + dup length 3 idiv string 0 3 0\n\ + 5 -1 roll {\n\ + add 2 1 roll 1 sub dup 0 eq {\n\ + pop 3 idiv\n\ + 3 -1 roll\n\ + dup 4 -1 roll\n\ + dup 3 1 roll\n\ + 5 -1 roll put\n\ + 1 add 3 0\n\ + } { 2 1 roll } ifelse\n\ + } forall\n\ + pop pop pop\n\ +} def\n\ +/colorimage where {pop} {\n\ + /colorimage {pop pop /rgbproc exch def {bwproc} image} bind def\n\ +} ifelse\n\ +"; + +/* + * Adobe Photoshop requires a comment line of the form: + * + * %ImageData: <cols> <rows> <depth> <main channels> <pad channels> + * <block size> <1 for binary|2 for hex> "data start" + * + * It is claimed to be part of some future revision of the EPS spec. + */ +static void +PhotoshopBanner(TIFF2PSContext* ctx, uint32 w, uint32 h, int bs, int nc, + char* startline) +{ + fprintf(ctx->fd, "%%ImageData: %ld %ld %d %d 0 %d 2 \"", + (long) w, (long) h, ctx->bitspersample, nc, bs); + fprintf(ctx->fd, startline, nc); + fprintf(ctx->fd, "\"\n"); +} + +/* + * pw : image width in pixels + * ph : image height in pixels + * pprw : image width in PS units (72 dpi) + * pprh : image height in PS units (72 dpi) + */ +static void +setupPageState(TIFF2PSContext *ctx, TIFF* tif, uint32* pw, uint32* ph, + double* pprw, double* pprh) +{ + float xres = 0.0F, yres = 0.0F; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, pw); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, ph); + if (ctx->res_unit == 0) + TIFFGetFieldDefaulted(tif, TIFFTAG_RESOLUTIONUNIT, &ctx->res_unit); + /* + * Calculate printable area. + */ + if (!TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres) + || fabs(xres) < 0.0000001) + xres = PS_UNIT_SIZE; + if (!TIFFGetField(tif, TIFFTAG_YRESOLUTION, &yres) + || fabs(yres) < 0.0000001) + yres = PS_UNIT_SIZE; + switch (ctx->res_unit) { + case RESUNIT_CENTIMETER: + xres *= 2.54F, yres *= 2.54F; + break; + case RESUNIT_INCH: + break; + case RESUNIT_NONE: + default: + xres *= PS_UNIT_SIZE, yres *= PS_UNIT_SIZE; + break; + } + *pprh = PSUNITS(*ph, yres); + *pprw = PSUNITS(*pw, xres); +} + +static int +isCCITTCompression(TIFF* tif) +{ + uint16 compress; + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compress); + return (compress == COMPRESSION_CCITTFAX3 || + compress == COMPRESSION_CCITTFAX4 || + compress == COMPRESSION_CCITTRLE || + compress == COMPRESSION_CCITTRLEW); +} + +static char *hex = "0123456789abcdef"; + +/* + * imagewidth & imageheight are 1/72 inches + * pagewidth & pageheight are inches + */ +static int +PlaceImage(TIFF2PSContext *ctx, double pagewidth, double pageheight, + double imagewidth, double imageheight, int splitpage, + double lm, double bm, int cnt) +{ + double xtran = 0; + double ytran = 0; + double xscale = 1; + double yscale = 1; + double left_offset = lm * PS_UNIT_SIZE; + double bottom_offset = bm * PS_UNIT_SIZE; + double subimageheight; + double splitheight; + double overlap; + /* buffers for locale-insitive number formatting */ + gchar buf[2][G_ASCII_DTOSTR_BUF_SIZE]; + + pagewidth *= PS_UNIT_SIZE; + pageheight *= PS_UNIT_SIZE; + + if (ctx->maxPageHeight==0) + splitheight = 0; + else + splitheight = ctx->maxPageHeight * PS_UNIT_SIZE; + overlap = ctx->splitOverlap * PS_UNIT_SIZE; + + /* + * WIDTH: + * if too wide, scrunch to fit + * else leave it alone + */ + if (imagewidth <= pagewidth) { + xscale = imagewidth; + } else { + xscale = pagewidth; + } + + /* HEIGHT: + * if too long, scrunch to fit + * if too short, move to top of page + */ + if (imageheight <= pageheight) { + yscale = imageheight; + ytran = pageheight - imageheight; + } else if (imageheight > pageheight && + (splitheight == 0 || imageheight <= splitheight)) { + yscale = pageheight; + } else /* imageheight > splitheight */ { + subimageheight = imageheight - (pageheight-overlap)*splitpage; + if (subimageheight <= pageheight) { + yscale = imageheight; + ytran = pageheight - subimageheight; + splitpage = 0; + } else if ( subimageheight > pageheight && subimageheight <= splitheight) { + yscale = imageheight * pageheight / subimageheight; + ytran = 0; + splitpage = 0; + } else /* sumimageheight > splitheight */ { + yscale = imageheight; + ytran = pageheight - subimageheight; + splitpage++; + } + } + + bottom_offset += ytran / (cnt?2:1); + if (cnt) + left_offset += xtran / 2; + + fprintf(ctx->fd, "%s %s translate\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), left_offset), + g_ascii_dtostr(buf[1], sizeof(buf[1]), bottom_offset)); + fprintf(ctx->fd, "%s %s scale\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), xscale), + g_ascii_dtostr(buf[1], sizeof(buf[1]), yscale)); + if (ctx->rotate) + fputs ("1 1 translate 180 ctx->rotate\n", ctx->fd); + + return splitpage; +} + + +void +tiff2ps_process_page(TIFF2PSContext* ctx, TIFF* tif, double pw, double ph, + double lm, double bm, gboolean cnt) +{ + uint32 w, h; + float ox, oy; + double prw, prh; + double scale = 1.0; + double left_offset = lm * PS_UNIT_SIZE; + double bottom_offset = bm * PS_UNIT_SIZE; + uint16* sampleinfo; + int split; + /* buffers for locale-insitive number formatting */ + gchar buf[2][G_ASCII_DTOSTR_BUF_SIZE]; + + if (!TIFFGetField(tif, TIFFTAG_XPOSITION, &ox)) + ox = 0; + if (!TIFFGetField(tif, TIFFTAG_YPOSITION, &oy)) + oy = 0; + setupPageState(ctx, tif, &w, &h, &prw, &prh); + + ctx->tf_numberstrips = TIFFNumberOfStrips(tif); + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, + &ctx->tf_rowsperstrip); + setupPageState(ctx, tif, &w, &h, &prw, &prh); + if (!ctx->npages) + PSHead(ctx, tif, w, h, prw, prh, ox, oy); + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, + &ctx->bitspersample); + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, + &ctx->samplesperpixel); + TIFFGetFieldDefaulted(tif, TIFFTAG_PLANARCONFIG, + &ctx->planarconfiguration); + TIFFGetField(tif, TIFFTAG_COMPRESSION, &ctx->compression); + TIFFGetFieldDefaulted(tif, TIFFTAG_EXTRASAMPLES, + &ctx->extrasamples, &sampleinfo); + ctx->alpha = (ctx->extrasamples == 1 && + sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA); + if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &ctx->photometric)) { + switch (ctx->samplesperpixel - ctx->extrasamples) { + case 1: + if (isCCITTCompression(tif)) + ctx->photometric = PHOTOMETRIC_MINISWHITE; + else + ctx->photometric = PHOTOMETRIC_MINISBLACK; + break; + case 3: + ctx->photometric = PHOTOMETRIC_RGB; + break; + case 4: + ctx->photometric = PHOTOMETRIC_SEPARATED; + break; + } + } + if (checkImage(ctx, tif)) { + ctx->tf_bytesperrow = TIFFScanlineSize(tif); + ctx->npages++; + fprintf(ctx->fd, "%%%%Page: %d %d\n", ctx->npages, + ctx->npages); + if (!ctx->generateEPSF && ( ctx->level2 || ctx->level3 )) { + double psw = 0.0, psh = 0.0; + if (psw != 0.0) { + psw = pw * PS_UNIT_SIZE; + if (ctx->res_unit == RESUNIT_CENTIMETER) + psw *= 2.54F; + } else + psw=ctx->rotate ? prh:prw; + if (psh != 0.0) { + psh = ph * PS_UNIT_SIZE; + if (ctx->res_unit == RESUNIT_CENTIMETER) + psh *= 2.54F; + } else + psh=ctx->rotate ? prw:prh; + fprintf(ctx->fd, + "1 dict begin /PageSize [ %s %s ] def currentdict end setpagedevice\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), psw), + g_ascii_dtostr(buf[1], sizeof(buf[1]), psh)); + fputs( + "<<\n /Policies <<\n /PageSize 3\n >>\n>> setpagedevice\n", + ctx->fd); + } + fprintf(ctx->fd, "gsave\n"); + fprintf(ctx->fd, "100 dict begin\n"); + if (pw != 0 || ph != 0) { + if (!pw) + pw = prw; + if (!ph) + ph = prh; + if (ctx->maxPageHeight) { /* used -H option */ + split = PlaceImage(ctx,pw,ph,prw,prh, + 0,lm,bm,cnt); + while( split ) { + PSpage(ctx, tif, w, h); + fprintf(ctx->fd, "end\n"); + fprintf(ctx->fd, "grestore\n"); + fprintf(ctx->fd, "showpage\n"); + ctx->npages++; + fprintf(ctx->fd, "%%%%Page: %d %d\n", + ctx->npages, ctx->npages); + fprintf(ctx->fd, "gsave\n"); + fprintf(ctx->fd, "100 dict begin\n"); + split = PlaceImage(ctx,pw,ph,prw,prh, + split,lm,bm,cnt); + } + } else { + pw *= PS_UNIT_SIZE; + ph *= PS_UNIT_SIZE; + + /* NB: maintain image aspect ratio */ + scale = pw/prw < ph/prh ? + pw/prw : ph/prh; + if (scale > 1.0) + scale = 1.0; + if (cnt) { + bottom_offset += + (ph - prh * scale) / 2; + left_offset += + (pw - prw * scale) / 2; + } + fprintf(ctx->fd, "%s %s translate\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), left_offset), + g_ascii_dtostr(buf[1], sizeof(buf[1]), bottom_offset)); + fprintf(ctx->fd, "%s %s scale\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), prw * scale), + g_ascii_dtostr(buf[1], sizeof(buf[1]), prh * scale)); + if (ctx->rotate) + fputs ("1 1 translate 180 ctx->rotate\n", ctx->fd); + } + } else { + fprintf(ctx->fd, "%s %s scale\n", + g_ascii_dtostr(buf[0], sizeof(buf[0]), prw), + g_ascii_dtostr(buf[1], sizeof(buf[1]), prh)); + if (ctx->rotate) + fputs ("1 1 translate 180 ctx->rotate\n", ctx->fd); + } + PSpage(ctx, tif, w, h); + fprintf(ctx->fd, "end\n"); + fprintf(ctx->fd, "grestore\n"); + fprintf(ctx->fd, "showpage\n"); + } +} + + +static char DuplexPreamble[] = "\ +%%BeginFeature: *Duplex True\n\ +systemdict begin\n\ + /languagelevel where { pop languagelevel } { 1 } ifelse\n\ + 2 ge { 1 dict dup /Duplex true put setpagedevice }\n\ + { statusdict /setduplex known { statusdict begin setduplex true end } if\n\ + } ifelse\n\ +end\n\ +%%EndFeature\n\ +"; + +static char TumblePreamble[] = "\ +%%BeginFeature: *Tumble True\n\ +systemdict begin\n\ + /languagelevel where { pop languagelevel } { 1 } ifelse\n\ + 2 ge { 1 dict dup /Tumble true put setpagedevice }\n\ + { statusdict /settumble known { statusdict begin true settumble end } if\n\ + } ifelse\n\ +end\n\ +%%EndFeature\n\ +"; + +static char AvoidDeadZonePreamble[] = "\ +gsave newpath clippath pathbbox grestore\n\ + 4 2 roll 2 copy translate\n\ + exch 3 1 roll sub 3 1 roll sub exch\n\ + currentpagedevice /PageSize get aload pop\n\ + exch 3 1 roll div 3 1 roll div abs exch abs\n\ + 2 copy gt { exch } if pop\n\ + dup 1 lt { dup scale } { pop } ifelse\n\ +"; + +void +PSHead(TIFF2PSContext *ctx, TIFF *tif, uint32 w, uint32 h, + double pw, double ph, double ox, double oy) +{ + time_t t; + + (void) tif; (void) w; (void) h; + t = time(0); + fprintf(ctx->fd, "%%!PS-Adobe-3.0%s\n", + ctx->generateEPSF ? " EPSF-3.0" : ""); + fprintf(ctx->fd, "%%%%Creator: Evince\n"); + fprintf(ctx->fd, "%%%%CreationDate: %s", ctime(&t)); + fprintf(ctx->fd, "%%%%DocumentData: Clean7Bit\n"); + fprintf(ctx->fd, "%%%%Origin: %ld %ld\n", (long) ox, (long) oy); + /* NB: should use PageBoundingBox */ + fprintf(ctx->fd, "%%%%BoundingBox: 0 0 %ld %ld\n", + (long) ceil(pw), (long) ceil(ph)); + fprintf(ctx->fd, "%%%%LanguageLevel: %d\n", + (ctx->level3 ? 3 : (ctx->level2 ? 2 : 1))); + fprintf(ctx->fd, "%%%%Pages: (atend)\n"); + fprintf(ctx->fd, "%%%%EndComments\n"); + fprintf(ctx->fd, "%%%%BeginSetup\n"); + if (ctx->PSduplex) + fprintf(ctx->fd, "%s", DuplexPreamble); + if (ctx->PStumble) + fprintf(ctx->fd, "%s", TumblePreamble); + if (ctx->PSavoiddeadzone && (ctx->level2 || ctx->level3)) + fprintf(ctx->fd, "%s", AvoidDeadZonePreamble); + fprintf(ctx->fd, "%%%%EndSetup\n"); +} + +static void +PSTail(TIFF2PSContext *ctx) +{ + if (!ctx->npages) + return; + fprintf(ctx->fd, "%%%%Trailer\n"); + fprintf(ctx->fd, "%%%%Pages: %d\n", ctx->npages); + fprintf(ctx->fd, "%%%%EOF\n"); +} + +static int +checkcmap(TIFF2PSContext* ctx, TIFF* tif, int n, + uint16* r, uint16* g, uint16* b) +{ + (void) tif; + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + TIFFWarning(ctx->filename, "Assuming 8-bit colormap"); + return (8); +} + +static void +PS_Lvl2colorspace(TIFF2PSContext* ctx, TIFF* tif) +{ + uint16 *rmap, *gmap, *bmap; + int i, num_colors; + const char * colorspace_p; + + switch ( ctx->photometric ) + { + case PHOTOMETRIC_SEPARATED: + colorspace_p = "CMYK"; + break; + + case PHOTOMETRIC_RGB: + colorspace_p = "RGB"; + break; + + default: + colorspace_p = "Gray"; + } + + /* + * Set up PostScript Level 2 colorspace according to + * section 4.8 in the PostScript refenence manual. + */ + fputs("% PostScript Level 2 only.\n", ctx->fd); + if (ctx->photometric != PHOTOMETRIC_PALETTE) { + if (ctx->photometric == PHOTOMETRIC_YCBCR) { + /* MORE CODE HERE */ + } + fprintf(ctx->fd, "/Device%s setcolorspace\n", colorspace_p ); + return; + } + + /* + * Set up an indexed/palette colorspace + */ + num_colors = (1 << ctx->bitspersample); + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) { + TIFFError(ctx->filename, + "Palette image w/o \"Colormap\" tag"); + return; + } + if (checkcmap(ctx, tif, num_colors, rmap, gmap, bmap) == 16) { + /* + * Convert colormap to 8-bits values. + */ +#define CVT(x) (((x) * 255) / ((1L<<16)-1)) + for (i = 0; i < num_colors; i++) { + rmap[i] = CVT(rmap[i]); + gmap[i] = CVT(gmap[i]); + bmap[i] = CVT(bmap[i]); + } +#undef CVT + } + fprintf(ctx->fd, "[ /Indexed /DeviceRGB %d", num_colors - 1); + if (ctx->ascii85) { + Ascii85Init(ctx); + fputs("\n<~", ctx->fd); + ctx->ascii85breaklen -= 2; + } else + fputs(" <", ctx->fd); + for (i = 0; i < num_colors; i++) { + if (ctx->ascii85) { + Ascii85Put(ctx, (unsigned char)rmap[i]); + Ascii85Put(ctx, (unsigned char)gmap[i]); + Ascii85Put(ctx, (unsigned char)bmap[i]); + } else { + fputs((i % 8) ? " " : "\n ", ctx->fd); + fprintf(ctx->fd, "%02x%02x%02x", + rmap[i], gmap[i], bmap[i]); + } + } + if (ctx->ascii85) + Ascii85Flush(ctx); + else + fputs(">\n", ctx->fd); + fputs("] setcolorspace\n", ctx->fd); +} + +static int +PS_Lvl2ImageDict(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) +{ + int use_rawdata; + uint32 tile_width, tile_height; + uint16 predictor, minsamplevalue, maxsamplevalue; + int repeat_count; + char im_h[64], im_x[64], im_y[64]; + char * imageOp = "image"; + + if ( ctx->useImagemask && (ctx->bitspersample == 1) ) + imageOp = "imagemask"; + + (void)strcpy(im_x, "0"); + (void)sprintf(im_y, "%lu", (long) h); + (void)sprintf(im_h, "%lu", (long) h); + tile_width = w; + tile_height = h; + if (TIFFIsTiled(tif)) { + repeat_count = TIFFNumberOfTiles(tif); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tile_width); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &tile_height); + if (tile_width > w || tile_height > h || + (w % tile_width) != 0 || (h % tile_height != 0)) { + /* + * The tiles does not fit image width and height. + * Set up a clip rectangle for the image unit square. + */ + fputs("0 0 1 1 rectclip\n", ctx->fd); + } + if (tile_width < w) { + fputs("/im_x 0 def\n", ctx->fd); + (void)strcpy(im_x, "im_x neg"); + } + if (tile_height < h) { + fputs("/im_y 0 def\n", ctx->fd); + (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); + } + } else { + repeat_count = ctx->tf_numberstrips; + tile_height = ctx->tf_rowsperstrip; + if (tile_height > h) + tile_height = h; + if (repeat_count > 1) { + fputs("/im_y 0 def\n", ctx->fd); + fprintf(ctx->fd, "/im_h %lu def\n", + (unsigned long) tile_height); + (void)strcpy(im_h, "im_h"); + (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); + } + } + + /* + * Output start of exec block + */ + fputs("{ % exec\n", ctx->fd); + + if (repeat_count > 1) + fprintf(ctx->fd, "%d { %% repeat\n", repeat_count); + + /* + * Output filter options and image dictionary. + */ + if (ctx->ascii85) + fputs(" /im_stream currentfile /ASCII85Decode filter def\n", + ctx->fd); + fputs(" <<\n", ctx->fd); + fputs(" /ImageType 1\n", ctx->fd); + fprintf(ctx->fd, " /Width %lu\n", (unsigned long) tile_width); + /* + * Workaround for some software that may crash when last strip + * of image contains fewer number of scanlines than specified + * by the `/Height' variable. So for stripped images with multiple + * strips we will set `/Height' as `im_h', because one is + * recalculated for each strip - including the (smaller) final strip. + * For tiled images and images with only one strip `/Height' will + * contain number of scanlines in tile (or image height in case of + * one-stripped image). + */ + if (TIFFIsTiled(tif) || ctx->tf_numberstrips == 1) + fprintf(ctx->fd, " /Height %lu\n", (unsigned long) tile_height); + else + fprintf(ctx->fd, " /Height im_h\n"); + + if (ctx->planarconfiguration == PLANARCONFIG_SEPARATE && ctx->samplesperpixel > 1) + fputs(" /MultipleDataSources true\n", ctx->fd); + fprintf(ctx->fd, " /ImageMatrix [ %lu 0 0 %ld %s %s ]\n", + (unsigned long) w, - (long)h, im_x, im_y); + fprintf(ctx->fd, " /BitsPerComponent %d\n", ctx->bitspersample); + fprintf(ctx->fd, " /Ctx->Interpolate %s\n", ctx->interpolate ? "true" : "false"); + + switch (ctx->samplesperpixel - ctx->extrasamples) { + case 1: + switch (ctx->photometric) { + case PHOTOMETRIC_MINISBLACK: + fputs(" /Decode [0 1]\n", ctx->fd); + break; + case PHOTOMETRIC_MINISWHITE: + switch (ctx->compression) { + case COMPRESSION_CCITTRLE: + case COMPRESSION_CCITTRLEW: + case COMPRESSION_CCITTFAX3: + case COMPRESSION_CCITTFAX4: + /* + * Manage inverting with /Blackis1 flag + * since there migth be uncompressed parts + */ + fputs(" /Decode [0 1]\n", ctx->fd); + break; + default: + /* + * ERROR... + */ + fputs(" /Decode [1 0]\n", ctx->fd); + break; + } + break; + case PHOTOMETRIC_PALETTE: + TIFFGetFieldDefaulted(tif, TIFFTAG_MINSAMPLEVALUE, + &minsamplevalue); + TIFFGetFieldDefaulted(tif, TIFFTAG_MAXSAMPLEVALUE, + &maxsamplevalue); + fprintf(ctx->fd, " /Decode [%u %u]\n", + minsamplevalue, maxsamplevalue); + break; + default: + /* + * ERROR ? + */ + fputs(" /Decode [0 1]\n", ctx->fd); + break; + } + break; + case 3: + switch (ctx->photometric) { + case PHOTOMETRIC_RGB: + fputs(" /Decode [0 1 0 1 0 1]\n", ctx->fd); + break; + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + default: + /* + * ERROR?? + */ + fputs(" /Decode [0 1 0 1 0 1]\n", ctx->fd); + break; + } + break; + case 4: + /* + * ERROR?? + */ + fputs(" /Decode [0 1 0 1 0 1 0 1]\n", ctx->fd); + break; + } + fputs(" /DataSource", ctx->fd); + if (ctx->planarconfiguration == PLANARCONFIG_SEPARATE && + ctx->samplesperpixel > 1) + fputs(" [", ctx->fd); + if (ctx->ascii85) + fputs(" im_stream", ctx->fd); + else + fputs(" currentfile /ASCIIHexDecode filter", ctx->fd); + + use_rawdata = TRUE; + switch (ctx->compression) { + case COMPRESSION_NONE: /* 1: uncompressed */ + break; + case COMPRESSION_CCITTRLE: /* 2: CCITT modified Huffman RLE */ + case COMPRESSION_CCITTRLEW: /* 32771: #1 w/ word alignment */ + case COMPRESSION_CCITTFAX3: /* 3: CCITT Group 3 fax encoding */ + case COMPRESSION_CCITTFAX4: /* 4: CCITT Group 4 fax encoding */ + fputs("\n\t<<\n", ctx->fd); + if (ctx->compression == COMPRESSION_CCITTFAX3) { + uint32 g3_options; + + fputs("\t /EndOfLine true\n", ctx->fd); + fputs("\t /EndOfBlock false\n", ctx->fd); + if (!TIFFGetField(tif, TIFFTAG_GROUP3OPTIONS, + &g3_options)) + g3_options = 0; + if (g3_options & GROUP3OPT_2DENCODING) + fprintf(ctx->fd, "\t /K %s\n", im_h); + if (g3_options & GROUP3OPT_UNCOMPRESSED) + fputs("\t /Uncompressed true\n", ctx->fd); + if (g3_options & GROUP3OPT_FILLBITS) + fputs("\t /EncodedByteAlign true\n", ctx->fd); + } + if (ctx->compression == COMPRESSION_CCITTFAX4) { + uint32 g4_options; + + fputs("\t /K -1\n", ctx->fd); + TIFFGetFieldDefaulted(tif, TIFFTAG_GROUP4OPTIONS, + &g4_options); + if (g4_options & GROUP4OPT_UNCOMPRESSED) + fputs("\t /Uncompressed true\n", ctx->fd); + } + if (!(tile_width == w && w == 1728U)) + fprintf(ctx->fd, "\t /Columns %lu\n", + (unsigned long) tile_width); + fprintf(ctx->fd, "\t /Rows %s\n", im_h); + if (ctx->compression == COMPRESSION_CCITTRLE || + ctx->compression == COMPRESSION_CCITTRLEW) { + fputs("\t /EncodedByteAlign true\n", ctx->fd); + fputs("\t /EndOfBlock false\n", ctx->fd); + } + if (ctx->photometric == PHOTOMETRIC_MINISBLACK) + fputs("\t /BlackIs1 true\n", ctx->fd); + fprintf(ctx->fd, "\t>> /CCITTFaxDecode filter"); + break; + case COMPRESSION_LZW: /* 5: Lempel-Ziv & Welch */ + TIFFGetFieldDefaulted(tif, TIFFTAG_PREDICTOR, &predictor); + if (predictor == 2) { + fputs("\n\t<<\n", ctx->fd); + fprintf(ctx->fd, "\t /Predictor %u\n", predictor); + fprintf(ctx->fd, "\t /Columns %lu\n", + (unsigned long) tile_width); + fprintf(ctx->fd, "\t /Colors %u\n", ctx->samplesperpixel); + fprintf(ctx->fd, "\t /BitsPerComponent %u\n", + ctx->bitspersample); + fputs("\t>>", ctx->fd); + } + fputs(" /LZWDecode filter", ctx->fd); + break; + case COMPRESSION_DEFLATE: /* 5: ZIP */ + case COMPRESSION_ADOBE_DEFLATE: + if ( ctx->level3 ) { + TIFFGetFieldDefaulted(tif, TIFFTAG_PREDICTOR, &predictor); + if (predictor > 1) { + fprintf(ctx->fd, "\t %% PostScript Level 3 only."); + fputs("\n\t<<\n", ctx->fd); + fprintf(ctx->fd, "\t /Predictor %u\n", predictor); + fprintf(ctx->fd, "\t /Columns %lu\n", + (unsigned long) tile_width); + fprintf(ctx->fd, "\t /Colors %u\n", ctx->samplesperpixel); + fprintf(ctx->fd, "\t /BitsPerComponent %u\n", + ctx->bitspersample); + fputs("\t>>", ctx->fd); + } + fputs(" /FlateDecode filter", ctx->fd); + } else { + use_rawdata = FALSE ; + } + break; + case COMPRESSION_PACKBITS: /* 32773: Macintosh RLE */ + fputs(" /RunLengthDecode filter", ctx->fd); + use_rawdata = TRUE; + break; + case COMPRESSION_OJPEG: /* 6: !6.0 JPEG */ + case COMPRESSION_JPEG: /* 7: %JPEG DCT ctx->compression */ +#ifdef notdef + /* + * Code not tested yet + */ + fputs(" /DCTDecode filter", ctx->fd); + use_rawdata = TRUE; +#else + use_rawdata = FALSE; +#endif + break; + case COMPRESSION_NEXT: /* 32766: NeXT 2-bit RLE */ + case COMPRESSION_THUNDERSCAN: /* 32809: ThunderScan RLE */ + case COMPRESSION_PIXARFILM: /* 32908: Pixar companded 10bit LZW */ + case COMPRESSION_JBIG: /* 34661: ISO JBIG */ + use_rawdata = FALSE; + break; + case COMPRESSION_SGILOG: /* 34676: SGI LogL or LogLuv */ + case COMPRESSION_SGILOG24: /* 34677: SGI 24-bit LogLuv */ + use_rawdata = FALSE; + break; + default: + /* + * ERROR... + */ + use_rawdata = FALSE; + break; + } + if (ctx->planarconfiguration == PLANARCONFIG_SEPARATE && + ctx->samplesperpixel > 1) { + uint16 i; + + /* + * NOTE: This code does not work yet... + */ + for (i = 1; i < ctx->samplesperpixel; i++) + fputs(" dup", ctx->fd); + fputs(" ]", ctx->fd); + } + + fprintf( ctx->fd, "\n >> %s\n", imageOp ); + if (ctx->ascii85) + fputs(" im_stream status { im_stream flushfile } if\n", ctx->fd); + if (repeat_count > 1) { + if (tile_width < w) { + fprintf(ctx->fd, " /im_x im_x %lu add def\n", + (unsigned long) tile_width); + if (tile_height < h) { + fprintf(ctx->fd, " im_x %lu ge {\n", + (unsigned long) w); + fputs(" /im_x 0 def\n", ctx->fd); + fprintf(ctx->fd, " /im_y im_y %lu add def\n", + (unsigned long) tile_height); + fputs(" } if\n", ctx->fd); + } + } + if (tile_height < h) { + if (tile_width >= w) { + fprintf(ctx->fd, " /im_y im_y %lu add def\n", + (unsigned long) tile_height); + if (!TIFFIsTiled(tif)) { + fprintf(ctx->fd, " /im_h %lu im_y sub", + (unsigned long) h); + fprintf(ctx->fd, " dup %lu gt { pop", + (unsigned long) tile_height); + fprintf(ctx->fd, " %lu } if def\n", + (unsigned long) tile_height); + } + } + } + fputs("} repeat\n", ctx->fd); + } + /* + * End of exec function + */ + fputs("}\n", ctx->fd); + + return(use_rawdata); +} + +#define MAXLINE 36 + +static int +PS_Lvl2page(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) +{ + uint16 fillorder; + int use_rawdata, tiled_image, breaklen = MAXLINE; + uint32 chunk_no, num_chunks, *bc; + unsigned char *buf_data, *cp; + tsize_t chunk_size, byte_count; + +#if defined( EXP_ASCII85ENCODER ) + int ascii85_l; /* Length, in bytes, of ascii85_p[] data */ + uint8 * ascii85_p = 0; /* Holds ASCII85 encoded data */ +#endif + + PS_Lvl2colorspace(ctx, tif); + use_rawdata = PS_Lvl2ImageDict(ctx, tif, w, h); + +/* See http://bugzilla.remotesensing.org/show_bug.cgi?id=80 */ +#ifdef ENABLE_BROKEN_BEGINENDDATA + fputs("%%BeginData:\n", ctx->fd); +#endif + fputs("exec\n", ctx->fd); + + tiled_image = TIFFIsTiled(tif); + if (tiled_image) { + num_chunks = TIFFNumberOfTiles(tif); + TIFFGetField(tif, TIFFTAG_TILEBYTECOUNTS, &bc); + } else { + num_chunks = TIFFNumberOfStrips(tif); + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &bc); + } + + if (use_rawdata) { + chunk_size = (tsize_t) bc[0]; + for (chunk_no = 1; chunk_no < num_chunks; chunk_no++) + if ((tsize_t) bc[chunk_no] > chunk_size) + chunk_size = (tsize_t) bc[chunk_no]; + } else { + if (tiled_image) + chunk_size = TIFFTileSize(tif); + else + chunk_size = TIFFStripSize(tif); + } + buf_data = (unsigned char *)_TIFFmalloc(chunk_size); + if (!buf_data) { + TIFFError(ctx->filename, "Can't alloc %u bytes for %s.", + chunk_size, tiled_image ? "tiles" : "strips"); + return(FALSE); + } + +#if defined( EXP_ASCII85ENCODER ) + if ( ctx->ascii85 ) { + /* + * Allocate a buffer to hold the ASCII85 encoded data. Note + * that it is allocated with sufficient room to hold the + * encoded data (5*chunk_size/4) plus the EOD marker (+8) + * and formatting line breaks. The line breaks are more + * than taken care of by using 6*chunk_size/4 rather than + * 5*chunk_size/4. + */ + + ascii85_p = _TIFFmalloc( (chunk_size+(chunk_size/2)) + 8 ); + + if ( !ascii85_p ) { + _TIFFfree( buf_data ); + + TIFFError( ctx->filename, + "Cannot allocate ASCII85 encoding buffer." ); + return ( FALSE ); + } + } +#endif + + TIFFGetFieldDefaulted(tif, TIFFTAG_FILLORDER, &fillorder); + for (chunk_no = 0; chunk_no < num_chunks; chunk_no++) { + if (ctx->ascii85) + Ascii85Init(ctx); + else + breaklen = MAXLINE; + if (use_rawdata) { + if (tiled_image) + byte_count = TIFFReadRawTile(tif, chunk_no, + buf_data, chunk_size); + else + byte_count = TIFFReadRawStrip(tif, chunk_no, + buf_data, chunk_size); + if (fillorder == FILLORDER_LSB2MSB) + TIFFReverseBits(buf_data, byte_count); + } else { + if (tiled_image) + byte_count = TIFFReadEncodedTile(tif, + chunk_no, buf_data, + chunk_size); + else + byte_count = TIFFReadEncodedStrip(tif, + chunk_no, buf_data, + chunk_size); + } + if (byte_count < 0) { + TIFFError(ctx->filename, "Can't read %s %d.", + tiled_image ? "tile" : "strip", chunk_no); + if (ctx->ascii85) + Ascii85Put(ctx, '\0'); + } + /* + * For images with ctx->alpha, matte against a white background; + * i.e. Cback * (1 - Aimage) where Cback = 1. We will fill the + * lower part of the buffer with the modified values. + * + * XXX: needs better solution + */ + if (ctx->alpha) { + int adjust, i, j = 0; + int ncomps = ctx->samplesperpixel - ctx->extrasamples; + for (i = 0; i < byte_count; i+=ctx->samplesperpixel) { + adjust = 255 - buf_data[i + ncomps]; + switch (ncomps) { + case 1: + buf_data[j++] = buf_data[i] + adjust; + break; + case 2: + buf_data[j++] = buf_data[i] + adjust; + buf_data[j++] = buf_data[i+1] + adjust; + break; + case 3: + buf_data[j++] = buf_data[i] + adjust; + buf_data[j++] = buf_data[i+1] + adjust; + buf_data[j++] = buf_data[i+2] + adjust; + break; + } + } + byte_count -= j; + } + + if (ctx->ascii85) { +#if defined( EXP_ASCII85ENCODER ) + ascii85_l = Ascii85EncodeBlock(ctx, ascii85_p, 1, + buf_data, byte_count); + + if ( ascii85_l > 0 ) + fwrite( ascii85_p, ascii85_l, 1, ctx->fd ); +#else + for (cp = buf_data; byte_count > 0; byte_count--) + Ascii85Put(ctx, *cp++); +#endif + } + else + { + for (cp = buf_data; byte_count > 0; byte_count--) { + putc(hex[((*cp)>>4)&0xf], ctx->fd); + putc(hex[(*cp)&0xf], ctx->fd); + cp++; + + if (--breaklen <= 0) { + putc('\n', ctx->fd); + breaklen = MAXLINE; + } + } + } + + if ( !ctx->ascii85 ) { + if ( ctx->level2 || ctx->level3 ) + putc( '>', ctx->fd ); + putc('\n', ctx->fd); + } +#if !defined( EXP_ASCII85ENCODER ) + else + Ascii85Flush(ctx); +#endif + } + +#if defined( EXP_ASCII85ENCODER ) + if ( ascii85_p ) + _TIFFfree( ascii85_p ); +#endif + _TIFFfree(buf_data); +#ifdef ENABLE_BROKEN_BEGINENDDATA + fputs("%%EndData\n", ctx->fd); +#endif + return(TRUE); +} + +void +PSpage(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) +{ + char *imageOp = "image"; + + if ( ctx->useImagemask && (ctx->bitspersample == 1) ) + imageOp = "imagemask"; + + if ((ctx->level2 || ctx->level3) && PS_Lvl2page(ctx, tif, w, h)) + return; + ctx->ps_bytesperrow = ctx->tf_bytesperrow - (ctx->extrasamples * ctx->bitspersample / 8)*w; + switch (ctx->photometric) { + case PHOTOMETRIC_RGB: + if (ctx->planarconfiguration == PLANARCONFIG_CONTIG) { + fprintf(ctx->fd, "%s", RGBcolorimage); + PSColorContigPreamble(ctx, w, h, 3); + PSDataColorContig(ctx, tif, w, h, 3); + } else { + PSColorSeparatePreamble(ctx, w, h, 3); + PSDataColorSeparate(ctx, tif, w, h, 3); + } + break; + case PHOTOMETRIC_SEPARATED: + /* XXX should emit CMYKcolorimage */ + if (ctx->planarconfiguration == PLANARCONFIG_CONTIG) { + PSColorContigPreamble(ctx, w, h, 4); + PSDataColorContig(ctx, tif, w, h, 4); + } else { + PSColorSeparatePreamble(ctx, w, h, 4); + PSDataColorSeparate(ctx, tif, w, h, 4); + } + break; + case PHOTOMETRIC_PALETTE: + fprintf(ctx->fd, "%s", RGBcolorimage); + PhotoshopBanner(ctx, w, h, 1, 3, "false 3 colorimage"); + fprintf(ctx->fd, "/scanLine %ld string def\n", + (long) ctx->ps_bytesperrow * 3L); + fprintf(ctx->fd, "%lu %lu 8\n", + (unsigned long) w, (unsigned long) h); + fprintf(ctx->fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, + (unsigned long) h); + fprintf(ctx->fd, + "{currentfile scanLine readhexstring pop} bind\n"); + fprintf(ctx->fd, "false 3 colorimage\n"); + PSDataPalette(ctx, tif, w, h); + break; + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: + PhotoshopBanner(ctx, w, h, 1, 1, imageOp); + fprintf(ctx->fd, "/scanLine %ld string def\n", + (long) ctx->ps_bytesperrow); + fprintf(ctx->fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, ctx->bitspersample); + fprintf(ctx->fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + fprintf(ctx->fd, + "{currentfile scanLine readhexstring pop} bind\n"); + fprintf(ctx->fd, "%s\n", imageOp); + PSDataBW(ctx, tif, w, h); + break; + } + putc('\n', ctx->fd); +} + +void +PSColorContigPreamble(TIFF2PSContext* ctx, uint32 w, uint32 h, int nc) +{ + ctx->ps_bytesperrow = nc * (ctx->tf_bytesperrow / ctx->samplesperpixel); + PhotoshopBanner(ctx, w, h, 1, nc, "false %d colorimage"); + fprintf(ctx->fd, "/line %ld string def\n", (long) ctx->ps_bytesperrow); + fprintf(ctx->fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, ctx->bitspersample); + fprintf(ctx->fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + fprintf(ctx->fd, "{currentfile line readhexstring pop} bind\n"); + fprintf(ctx->fd, "false %d colorimage\n", nc); +} + +void +PSColorSeparatePreamble(TIFF2PSContext* ctx, uint32 w, uint32 h, int nc) +{ + int i; + + PhotoshopBanner(ctx, w, h, ctx->ps_bytesperrow, nc, "true %d colorimage"); + for (i = 0; i < nc; i++) + fprintf(ctx->fd, "/line%d %ld string def\n", + i, (long) ctx->ps_bytesperrow); + fprintf(ctx->fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, ctx->bitspersample); + fprintf(ctx->fd, "[%lu 0 0 -%lu 0 %lu] \n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + for (i = 0; i < nc; i++) + fprintf(ctx->fd, "{currentfile line%d readhexstring pop}bind\n", i); + fprintf(ctx->fd, "true %d colorimage\n", nc); +} + +#define DOBREAK(len, howmany, fd) \ + if (((len) -= (howmany)) <= 0) { \ + putc('\n', fd); \ + (len) = MAXLINE-(howmany); \ + } +#define PUTHEX(c,fd) putc(hex[((c)>>4)&0xf],fd); putc(hex[(c)&0xf],fd) + +void +PSDataColorContig(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h, int nc) +{ + uint32 row; + int breaklen = MAXLINE, cc, es = ctx->samplesperpixel - nc; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + tf_buf = (unsigned char *) _TIFFmalloc(ctx->tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(ctx->filename, "No space for scanline buffer"); + return; + } + for (row = 0; row < h; row++) { + if (TIFFReadScanline(tif, tf_buf, row, 0) < 0) + break; + cp = tf_buf; + if (ctx->alpha) { + int adjust; + cc = 0; + for (; cc < ctx->tf_bytesperrow; cc += ctx->samplesperpixel) { + DOBREAK(breaklen, nc, ctx->fd); + /* + * For images with ctx->alpha, matte against + * a white background; i.e. + * Cback * (1 - Aimage) + * where Cback = 1. + */ + adjust = 255 - cp[nc]; + switch (nc) { + case 4: c = *cp++ + adjust; PUTHEX(c,ctx->fd); + case 3: c = *cp++ + adjust; PUTHEX(c,ctx->fd); + case 2: c = *cp++ + adjust; PUTHEX(c,ctx->fd); + case 1: c = *cp++ + adjust; PUTHEX(c,ctx->fd); + } + cp += es; + } + } else { + cc = 0; + for (; cc < ctx->tf_bytesperrow; cc += ctx->samplesperpixel) { + DOBREAK(breaklen, nc, ctx->fd); + switch (nc) { + case 4: c = *cp++; PUTHEX(c,ctx->fd); + case 3: c = *cp++; PUTHEX(c,ctx->fd); + case 2: c = *cp++; PUTHEX(c,ctx->fd); + case 1: c = *cp++; PUTHEX(c,ctx->fd); + } + cp += es; + } + } + } + _TIFFfree((char *) tf_buf); +} + +void +PSDataColorSeparate(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h, int nc) +{ + uint32 row; + int breaklen = MAXLINE, cc; + tsample_t s, maxs; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + tf_buf = (unsigned char *) _TIFFmalloc(ctx->tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(ctx->filename, "No space for scanline buffer"); + return; + } + maxs = (ctx->samplesperpixel > nc ? nc : ctx->samplesperpixel); + for (row = 0; row < h; row++) { + for (s = 0; s < maxs; s++) { + if (TIFFReadScanline(tif, tf_buf, row, s) < 0) + break; + for (cp = tf_buf, cc = 0; cc < ctx->tf_bytesperrow; cc++) { + DOBREAK(breaklen, 1, ctx->fd); + c = *cp++; + PUTHEX(c,ctx->fd); + } + } + } + _TIFFfree((char *) tf_buf); +} + +#define PUTRGBHEX(c,fd) \ + PUTHEX(rmap[c],fd); PUTHEX(gmap[c],fd); PUTHEX(bmap[c],fd) + +void +PSDataPalette(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) +{ + uint16 *rmap, *gmap, *bmap; + uint32 row; + int breaklen = MAXLINE, cc, nc; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) { + TIFFError(ctx->filename, "Palette image w/o \"Colormap\" tag"); + return; + } + switch (ctx->bitspersample) { + case 8: case 4: case 2: case 1: + break; + default: + TIFFError(ctx->filename, "Depth %d not supported", ctx->bitspersample); + return; + } + nc = 3 * (8 / ctx->bitspersample); + tf_buf = (unsigned char *) _TIFFmalloc(ctx->tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(ctx->filename, "No space for scanline buffer"); + return; + } + if (checkcmap(ctx, tif, 1<<ctx->bitspersample, rmap, gmap, bmap) == 16) { + int i; +#define CVT(x) ((unsigned short) (((x) * 255) / ((1U<<16)-1))) + for (i = (1<<ctx->bitspersample)-1; i >= 0; i--) { + rmap[i] = CVT(rmap[i]); + gmap[i] = CVT(gmap[i]); + bmap[i] = CVT(bmap[i]); + } +#undef CVT + } + for (row = 0; row < h; row++) { + if (TIFFReadScanline(tif, tf_buf, row, 0) < 0) + break; + for (cp = tf_buf, cc = 0; cc < ctx->tf_bytesperrow; cc++) { + DOBREAK(breaklen, nc, ctx->fd); + switch (ctx->bitspersample) { + case 8: + c = *cp++; PUTRGBHEX(c, ctx->fd); + break; + case 4: + c = *cp++; PUTRGBHEX(c&0xf, ctx->fd); + c >>= 4; PUTRGBHEX(c, ctx->fd); + break; + case 2: + c = *cp++; PUTRGBHEX(c&0x3, ctx->fd); + c >>= 2; PUTRGBHEX(c&0x3, ctx->fd); + c >>= 2; PUTRGBHEX(c&0x3, ctx->fd); + c >>= 2; PUTRGBHEX(c, ctx->fd); + break; + case 1: + c = *cp++; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c&0x1, ctx->fd); + c >>= 1; PUTRGBHEX(c, ctx->fd); + break; + } + } + } + _TIFFfree((char *) tf_buf); +} + +void +PSDataBW(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) +{ + int breaklen = MAXLINE; + unsigned char* tf_buf; + unsigned char* cp; + tsize_t stripsize = TIFFStripSize(tif); + tstrip_t s; + +#if defined( EXP_ASCII85ENCODER ) + int ascii85_l; /* Length, in bytes, of ascii85_p[] data */ + uint8 *ascii85_p = 0; /* Holds ASCII85 encoded data */ +#endif + + (void) w; (void) h; + tf_buf = (unsigned char *) _TIFFmalloc(stripsize); + memset(tf_buf, 0, stripsize); + if (tf_buf == NULL) { + TIFFError(ctx->filename, "No space for scanline buffer"); + return; + } + +#if defined( EXP_ASCII85ENCODER ) + if ( ctx->ascii85 ) { + /* + * Allocate a buffer to hold the ASCII85 encoded data. Note + * that it is allocated with sufficient room to hold the + * encoded data (5*stripsize/4) plus the EOD marker (+8) + * and formatting line breaks. The line breaks are more + * than taken care of by using 6*stripsize/4 rather than + * 5*stripsize/4. + */ + + ascii85_p = _TIFFmalloc( (stripsize+(stripsize/2)) + 8 ); + + if ( !ascii85_p ) { + _TIFFfree( tf_buf ); + + TIFFError( ctx->filename, + "Cannot allocate ASCII85 encoding buffer." ); + return; + } + } +#endif + + if (ctx->ascii85) + Ascii85Init(ctx); + + for (s = 0; s < TIFFNumberOfStrips(tif); s++) { + int cc = TIFFReadEncodedStrip(tif, s, tf_buf, stripsize); + if (cc < 0) { + TIFFError(ctx->filename, "Can't read strip"); + break; + } + cp = tf_buf; + if (ctx->photometric == PHOTOMETRIC_MINISWHITE) { + for (cp += cc; --cp >= tf_buf;) + *cp = ~*cp; + cp++; + } + if (ctx->ascii85) { +#if defined( EXP_ASCII85ENCODER ) + if (ctx->alpha) { + int adjust, i; + for (i = 0; i < cc; i+=2) { + adjust = 255 - cp[i + 1]; + cp[i / 2] = cp[i] + adjust; + } + cc /= 2; + } + + ascii85_l = Ascii85EncodeBlock(ctx, ascii85_p, 1, cp, + cc); + + if ( ascii85_l > 0 ) + fwrite( ascii85_p, ascii85_l, 1, ctx->fd ); +#else + while (cc-- > 0) + Ascii85Put(ctx, *cp++); +#endif /* EXP_ASCII85_ENCODER */ + } else { + unsigned char c; + + if (ctx->alpha) { + int adjust; + while (cc-- > 0) { + DOBREAK(breaklen, 1, ctx->fd); + /* + * For images with ctx->alpha, matte against + * a white background; i.e. + * Cback * (1 - Aimage) + * where Cback = 1. + */ + adjust = 255 - cp[1]; + c = *cp++ + adjust; PUTHEX(c,ctx->fd); + cp++, cc--; + } + } else { + while (cc-- > 0) { + c = *cp++; + DOBREAK(breaklen, 1, ctx->fd); + PUTHEX(c, ctx->fd); + } + } + } + } + + if ( !ctx->ascii85 ) + { + if ( ctx->level2 || ctx->level3) + fputs(">\n", ctx->fd); + } +#if !defined( EXP_ASCII85ENCODER ) + else + Ascii85Flush(ctx); +#else + if ( ascii85_p ) + _TIFFfree( ascii85_p ); +#endif + + _TIFFfree(tf_buf); +} + +static void +Ascii85Init(TIFF2PSContext *ctx) +{ + ctx->ascii85breaklen = 2*MAXLINE; + ctx->ascii85count = 0; +} + +static void +Ascii85Encode(unsigned char* raw, char *buf) +{ + uint32 word; + + word = (((raw[0]<<8)+raw[1])<<16) + (raw[2]<<8) + raw[3]; + if (word != 0L) { + uint32 q; + uint16 w1; + + q = word / (85L*85*85*85); /* actually only a byte */ + buf[0] = (char) (q + '!'); + + word -= q * (85L*85*85*85); q = word / (85L*85*85); + buf[1] = (char) (q + '!'); + + word -= q * (85L*85*85); q = word / (85*85); + buf[2] = (char) (q + '!'); + + w1 = (uint16) (word - q*(85L*85)); + buf[3] = (char) ((w1 / 85) + '!'); + buf[4] = (char) ((w1 % 85) + '!'); + buf[5] = '\0'; + } else + buf[0] = 'z', buf[1] = '\0'; +} + +void +Ascii85Put(TIFF2PSContext *ctx, unsigned char code) +{ + ctx->ascii85buf[ctx->ascii85count++] = code; + if (ctx->ascii85count >= 4) { + unsigned char* p; + int n; + char buf[6]; + + for (n = ctx->ascii85count, p = ctx->ascii85buf; + n >= 4; n -= 4, p += 4) { + char* cp; + Ascii85Encode(p, buf); + for (cp = buf; *cp; cp++) { + putc(*cp, ctx->fd); + if (--ctx->ascii85breaklen == 0) { + putc('\n', ctx->fd); + ctx->ascii85breaklen = 2*MAXLINE; + } + } + } + _TIFFmemcpy(ctx->ascii85buf, p, n); + ctx->ascii85count = n; + } +} + +void +Ascii85Flush(TIFF2PSContext* ctx) +{ + if (ctx->ascii85count > 0) { + char res[6]; + _TIFFmemset(&ctx->ascii85buf[ctx->ascii85count], 0, 3); + Ascii85Encode(ctx->ascii85buf, res); + fwrite(res[0] == 'z' ? "!!!!" : res, ctx->ascii85count + 1, 1, ctx->fd); + } + fputs("~>\n", ctx->fd); +} +#if defined( EXP_ASCII85ENCODER) + +#define A85BREAKCNTR ctx->ascii85breaklen +#define A85BREAKLEN (2*MAXLINE) + +/***************************************************************************** +* +* Name: Ascii85EncodeBlock( ascii85_p, f_eod, raw_p, raw_l ) +* +* Description: This routine will encode the raw data in the buffer described +* by raw_p and raw_l into ASCII85 format and store the encoding +* in the buffer given by ascii85_p. +* +* Parameters: ctx - TIFF2PS context +* ascii85_p - A buffer supplied by the caller which will +* contain the encoded ASCII85 data. +* f_eod - Flag: Nz means to end the encoded buffer with +* an End-Of-Data marker. +* raw_p - Pointer to the buffer of data to be encoded +* raw_l - Number of bytes in raw_p[] to be encoded +* +* Returns: (int) < 0 Error, see errno +* >= 0 Number of bytes written to ascii85_p[]. +* +* Notes: An external variable given by A85BREAKCNTR is used to +* determine when to insert newline characters into the +* encoded data. As each byte is placed into ascii85_p this +* external is decremented. If the variable is decrement to +* or past zero then a newline is inserted into ascii85_p +* and the A85BREAKCNTR is then reset to A85BREAKLEN. +* Note: for efficiency reasons the A85BREAKCNTR variable +* is not actually checked on *every* character +* placed into ascii85_p but often only for every +* 5 characters. +* +* THE CALLER IS RESPONSIBLE FOR ENSURING THAT ASCII85_P[] IS +* SUFFICIENTLY LARGE TO THE ENCODED DATA! +* You will need at least 5 * (raw_l/4) bytes plus space for +* newline characters and space for an EOD marker (if +* requested). A safe calculation is to use 6*(raw_l/4) + 8 +* to size ascii85_p. +* +*****************************************************************************/ + +int Ascii85EncodeBlock( TIFF2PSContext *ctx, uint8 * ascii85_p, + unsigned f_eod, const uint8 * raw_p, int raw_l ) + +{ + char ascii85[5]; /* Encoded 5 tuple */ + int ascii85_l; /* Number of bytes written to ascii85_p[] */ + int rc; /* Return code */ + uint32 val32; /* Unencoded 4 tuple */ + + ascii85_l = 0; /* Nothing written yet */ + + if ( raw_p ) + { + --raw_p; /* Prepare for pre-increment fetches */ + + for ( ; raw_l > 3; raw_l -= 4 ) + { + val32 = *(++raw_p) << 24; + val32 += *(++raw_p) << 16; + val32 += *(++raw_p) << 8; + val32 += *(++raw_p); + + if ( val32 == 0 ) /* Special case */ + { + ascii85_p[ascii85_l] = 'z'; + rc = 1; + } + + else + { + ascii85[4] = (char) ((val32 % 85) + 33); + val32 /= 85; + + ascii85[3] = (char) ((val32 % 85) + 33); + val32 /= 85; + + ascii85[2] = (char) ((val32 % 85) + 33); + val32 /= 85; + + ascii85[1] = (char) ((val32 % 85) + 33); + ascii85[0] = (char) ((val32 / 85) + 33); + + _TIFFmemcpy( &ascii85_p[ascii85_l], ascii85, sizeof(ascii85) ); + rc = sizeof(ascii85); + } + + ascii85_l += rc; + + if ( (A85BREAKCNTR -= rc) <= 0 ) + { + ascii85_p[ascii85_l] = '\n'; + ++ascii85_l; + A85BREAKCNTR = A85BREAKLEN; + } + } + + /* + * Output any straggler bytes: + */ + + if ( raw_l > 0 ) + { + int len; /* Output this many bytes */ + + len = raw_l + 1; + val32 = *++raw_p << 24; /* Prime the pump */ + + if ( --raw_l > 0 ) val32 += *(++raw_p) << 16; + if ( --raw_l > 0 ) val32 += *(++raw_p) << 8; + + val32 /= 85; + + ascii85[3] = (char) ((val32 % 85) + 33); + val32 /= 85; + + ascii85[2] = (char) ((val32 % 85) + 33); + val32 /= 85; + + ascii85[1] = (char) ((val32 % 85) + 33); + ascii85[0] = (char) ((val32 / 85) + 33); + + _TIFFmemcpy( &ascii85_p[ascii85_l], ascii85, len ); + ascii85_l += len; + } + } + + /* + * If requested add an ASCII85 End Of Data marker: + */ + + if ( f_eod ) + { + ascii85_p[ascii85_l++] = '~'; + ascii85_p[ascii85_l++] = '>'; + ascii85_p[ascii85_l++] = '\n'; + } + + return ( ascii85_l ); + +} /* Ascii85EncodeBlock() */ + +#endif /* EXP_ASCII85ENCODER */ + +/* vim: set ts=8 sts=8 sw=8 noet: */ diff --git a/backend/tiff/tiff2ps.h b/backend/tiff/tiff2ps.h new file mode 100644 index 00000000..575b881b --- /dev/null +++ b/backend/tiff/tiff2ps.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2005 rpath, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <glib.h> +#include <stdio.h> +#include "tiffio.h" + +typedef struct _TIFF2PSContext TIFF2PSContext; + +TIFF2PSContext *tiff2ps_context_new(const gchar *filename); +void tiff2ps_process_page(TIFF2PSContext* ctx, TIFF* tif, + double pagewidth, double pageheight, + double leftmargin, double bottommargin, + gboolean center); +void tiff2ps_context_finalize(TIFF2PSContext* ctx); diff --git a/backend/tiff/tiffdocument.evince-backend.in b/backend/tiff/tiffdocument.evince-backend.in new file mode 100644 index 00000000..daaa7fd9 --- /dev/null +++ b/backend/tiff/tiffdocument.evince-backend.in @@ -0,0 +1,4 @@ +[Evince Backend] +Module=tiffdocument +_TypeDescription=Tiff Documents +MimeType=image/tiff diff --git a/config.h.in~ b/config.h.in~ new file mode 100644 index 00000000..c0f17b0f --- /dev/null +++ b/config.h.in~ @@ -0,0 +1,191 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Enable support for comics. */ +#undef ENABLE_COMICS + +/* Define if DBUS support is enabled */ +#undef ENABLE_DBUS + +/* Enable djvu viewer support. */ +#undef ENABLE_DJVU + +/* Enable dvi viewer support. */ +#undef ENABLE_DVI + +/* Enable support for impress. */ +#undef ENABLE_IMPRESS + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* Enable pixbuf support. */ +#undef ENABLE_PIXBUF + +/* Enable support for PostScript files. */ +#undef ENABLE_PS + +/* Enable multipage tiff support. */ +#undef ENABLE_TIFF + +/* Gettext package */ +#undef GETTEXT_PACKAGE + +/* Define if gtk+-unix-print is enabled. */ +#undef GTKUNIXPRINT_ENABLED + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define to 1 if you have the `cairo_format_stride_for_width' function. */ +#undef HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH + +/* defined if cairo-pdf is available */ +#undef HAVE_CAIRO_PDF + +/* defined if cairo-ps is available */ +#undef HAVE_CAIRO_PS + +/* defined if you build the caja plugin */ +#undef HAVE_CAJA + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <execinfo.h> header file. */ +#undef HAVE_EXECINFO_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define if your <locale.h> file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 if you have the <locale.h> header file. */ +#undef HAVE_LOCALE_H + +/* Defines if localtime_r is available on your system */ +#undef HAVE_LOCALTIME_R + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `poppler_page_add_annot' function. */ +#undef HAVE_POPPLER_PAGE_ADD_ANNOT + +/* Define to 1 if you have the `poppler_page_get_selected_text' function. */ +#undef HAVE_POPPLER_PAGE_GET_SELECTED_TEXT + +/* Define to 1 if you have the `poppler_page_get_text_layout' function. */ +#undef HAVE_POPPLER_PAGE_GET_TEXT_LAYOUT + +/* Have libspectre */ +#undef HAVE_SPECTRE + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <tiff.h> header file. */ +#undef HAVE_TIFF_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define if _NL_MEASUREMENT_MEASUREMENT is available */ +#undef HAVE__NL_MEASUREMENT_MEASUREMENT + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Enable offline help */ +#undef OFFLINE_HELP_ENABLED + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define if building for the hildon platform */ +#undef PLATFORM_HILDON + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `void *', as computed by sizeof. */ +#undef SIZEOF_VOID_P + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define if MateConf support is enabled */ +#undef WITH_MATECONF + +/* Define if KEYRING support is enabled */ +#undef WITH_KEYRING + +/* Define if smclient is enabled */ +#undef WITH_SMCLIENT + +/* Enable t1lib support in dvi. */ +#undef WITH_TYPE1_FONTS + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..a209b5ce --- /dev/null +++ b/configure.ac @@ -0,0 +1,884 @@ +# ***************************************************************************** +# Versioning +# ***************************************************************************** + +m4_define([ev_major_version],[2]) +m4_define([ev_minor_version],[32]) +m4_define([ev_micro_version],[0]) +m4_define([ev_extra_version],[]) +m4_define([ev_version],[ev_major_version.ev_minor_version.ev_micro_version()ev_extra_version]) + +# The evince API version +m4_define([ev_api_version], [2.32]) + +# Libtool versioning. The backend and view libraries have separate versions. +# Before making a release, the libtool version should be modified. +# The string is of the form C:R:A. +# - If interfaces have been changed or added, but binary compatibility has +# been preserved, change to C+1:0:A+1 +# - If binary compatibility has been broken (eg removed or changed interfaces) +# change to C+1:0:0 +# - If the interface is the same as the previous version, change to C:R+1:A + +# Libtool version of the backend library +m4_define([ev_document_lt_current],[3]) +m4_define([ev_document_lt_revision],[0]) +m4_define([ev_document_lt_age],[0]) +m4_define([ev_document_lt_version_info],[ev_document_lt_current:ev_document_lt_revision:ev_document_lt_age]) +m4_define([ev_document_lt_current_minus_age],[m4_eval(ev_document_lt_current - ev_document_lt_age)]) + +# Libtool version of the view library +m4_define([ev_view_lt_current],[3]) +m4_define([ev_view_lt_revision],[0]) +m4_define([ev_view_lt_age],[0]) +m4_define([ev_view_lt_version_info],[ev_view_lt_current:ev_view_lt_revision:ev_view_lt_age]) +m4_define([ev_view_lt_current_minus_age],[m4_eval(ev_view_lt_current - ev_view_lt_age)]) + +# Binary version for the document backends +m4_define([ev_binary_version],[ev_document_lt_current]) + +# ***************************************************************************** + +AC_PREREQ([2.57]) +AC_INIT([Evince],[ev_version],[http://bugzilla.mate.org/enter_bug.cgi?product=evince],[evince]) +AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2 no-dist-gzip]) + +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +if test -z "$enable_maintainer_mode"; then + enable_maintainer_mode=yes +fi +AM_MAINTAINER_MODE([enable]) + +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +AM_PROG_LIBTOOL + +AC_ISC_POSIX +AC_PROG_CC +AM_PROG_CC_STDC +AM_PROG_CC_C_O +AC_PROG_CXX +AC_STDC_HEADERS + +AC_PROG_SED +AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) +AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums]) + +MATE_MAINTAINER_MODE_DEFINES +MATE_COMPILE_WARNINGS +MATE_CXX_WARNINGS + +dnl FIXME: remove this when required gtk+ >= 2.19.7 +DISABLE_DEPRECATED= +AC_SUBST([DISABLE_DEPRECATED]) + +IT_PROG_INTLTOOL([0.35.0]) + +GETTEXT_PACKAGE=evince +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package]) +AM_GLIB_GNU_GETTEXT + +m4_pattern_allow([AM_V_GEN])dnl Make autoconf not complain about the rule below +EV_INTLTOOL_EVINCE_BACKEND_RULE='%.evince-backend: %.evince-backend.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(AM_V_GEN) LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +AC_SUBST([EV_INTLTOOL_EVINCE_BACKEND_RULE]) + +GLIB_GSETTINGS + +# Check which platform to use + +AC_MSG_CHECKING([for which platform to build]) +AC_ARG_WITH([platform], + [AS_HELP_STRING([--with-platform=mate|win32|hildon], + [Setting platform (default: mate)])], + [case "$withval" in + mate|win32|hildon) ;; + *) AC_MSG_ERROR([invalid argument "$withval" for --with-platform]) ;; + esac], + [case "$host" in + *-*-mingw*|*-*-cygwin*) with_platform="win32" ;; + *) with_platform=mate ;; + esac]) + +AC_MSG_RESULT([$with_platform]) + +if test "$with_platform" = "win32"; then + AC_CHECK_TOOL([WINDRES],[windres]) + AC_MSG_CHECKING([for native Win32]) + case "$host" in + *-*-mingw*) + os_win32=yes + ;; + *) + os_win32=no + ;; + esac + AC_MSG_RESULT([$os_win32]) +fi + +AM_CONDITIONAL([PLATFORM_HILDON],[test "$with_platform" = "hildon"]) +AM_CONDITIONAL([PLATFORM_WIN32],[test "$with_platform" = "win32"]) + +AC_MSG_CHECKING([which gtk+ version to compile against]) +AC_ARG_WITH([gtk], + [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 2.0)])], + [case "$with_gtk" in + 2.0|3.0) ;; + *) AC_MSG_ERROR([invalid gtk version specified]) ;; + esac], + [with_gtk=2.0]) +AC_MSG_RESULT([$with_gtk]) + +dnl Specify required versions of dependencies +CAIRO_REQUIRED=1.9.10 +GLIB_REQUIRED=2.25.11 +KEYRING_REQUIRED=2.22.0 + +case "$with_gtk" in + 2.0) GTK_API_VERSION=2.0 + GAIL_API_VERSION= + GTK_REQUIRED=2.21.5 + ;; + 3.0) GTK_API_VERSION=3.0 + GAIL_API_VERSION=-3.0 + GTK_REQUIRED=2.90.5 + ;; +esac + +AC_SUBST([GLIB_REQUIRED]) +AC_SUBST([GTK_REQUIRED]) +AC_SUBST([GTK_API_VERSION]) + +MATE_ICON_THEME_REQUIRED=2.17.1 +LIBXML_REQUIRED=2.5.0 + +dnl Check dependencies + +# LIB_CFLAGS for helpers and generic widgets. (libdocument, cut-and-paste) +# BACKEND_CFLAGS for backend implementations. +# FRONTEND_CFLAGS for frontend implementations. (properties, thumbnailer) +# FRONTEND_LIBS +# SHELL_CFLAGS for shell implementation. +# SHELL_LIBS + + +PKG_CHECK_MODULES(LIBDOCUMENT, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED) +PKG_CHECK_MODULES(LIBVIEW, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gail$GAIL_API_VERSION >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED) +PKG_CHECK_MODULES(BACKEND, cairo >= $CAIRO_REQUIRED gtk+-$GTK_API_VERSION >= $GTK_REQUIRED) +PKG_CHECK_MODULES(FRONTEND_CORE, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED) + +SHELL_PLATFORM_PKGS= +case "$with_platform" in + hildon) AC_DEFINE([PLATFORM_HILDON],[1],[Define if building for the hildon platform]) + SHELL_PLATFORM_PKGS="hildon-1 hildon-fm-2 libosso" + ;; + mate) + # Evince has a rather soft run-time dependency on hicolor-icon-theme. + # If the hicolor theme is not available, Evince fails to display some + # icons. Because we cannot check for it at run-time, we instead + # would like to require the icon theme at compile-time. But, because + # the hicolor-icon-theme does not have a pkgconfig file, on mate we + # require the mate icon theme instead. + SHELL_PLATFORM_PKGS="mate-icon-theme >= $MATE_ICON_THEME_REQUIRED" + # The totem-screensaver and egg_smclient code use x11 directly. + SHELL_PLATFORM_PKGS="$SHELL_PLATFORM_PKGS x11" + ;; + *) + # On all other platforms we issue a warning about the runtime + # dependency. + AC_MSG_WARN([Evince has a soft run-time dependency on hicolor-icon-theme. You are advised to have this theme installed when running Evince.]); + SHELL_PLATFORM_PKGS="" + ;; +esac + +PKG_CHECK_MODULES([SHELL_CORE],[libxml-2.0 >= $LIBXML_REQUIRED gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED gthread-2.0 $SHELL_PLATFORM_PKGS]) + +# ********* +# SM client +# ********* + +GDK_TARGET="$($PKG_CONFIG --variable target gdk-$GTK_API_VERSION)" + +AC_MSG_CHECKING([which smclient backend to use]) +AC_ARG_WITH([smclient], + [AS_HELP_STRING([--with-smclient-backend=no|xsmp|win32|quartz], + [Setting smclient backend (default:auto)])], + [], + [case "$GDK_TARGET" in + x11) case "$with_platform" in + mate) with_smclient=xsmp ;; + *) with_smclient=no ;; + esac ;; + win32|quartz) with_smclient=$GDK_TARGET ;; + *) with_smclient=no ;; + esac]) + +AC_MSG_RESULT([$with_smclient]) + +if test "$with_smclient" != "no"; then + AC_DEFINE([WITH_SMCLIENT],[1],[Define if smclient is enabled]) + + case "$with_smclient" in + xsmp) SMCLIENT_PKGS="sm >= 1.0.0" ;; + *) SMCLIENT_PKGS="" ;; + esac + + PKG_CHECK_MODULES([SMCLIENT],[gtk+-$GTK_API_VERSION gthread-2.0 $SMCLIENT_PKGS]) + AC_SUBST([SMCLIENT_CFLAGS]) + AC_SUBST([SMCLIENT_LIBS]) +fi + +AM_CONDITIONAL([WITH_SMCLIENT],[test "$with_smclient" != "no"]) +AM_CONDITIONAL([WITH_SMCLIENT_XSMP],[test "$with_smclient" = "xsmp"]) +AM_CONDITIONAL([WITH_SMCLIENT_WIN32],[test "$with_smclient" = "win32"]) +AM_CONDITIONAL([WITH_SMCLIENT_QUARTZ],[test "$with_smclient" = "quartz"]) + +# *** + +BACKEND_LIBTOOL_FLAGS="-module -avoid-version -no-undefined -export-symbols \$(top_srcdir)/backend/backend.symbols" +AC_SUBST(BACKEND_LIBTOOL_FLAGS) + +dnl ===== Check special functions +evince_save_LIBS=$LIBS +LIBS="$LIBS $BACKEND_LIBS" +AC_CHECK_FUNCS(cairo_format_stride_for_width) +LIBS=$evince_save_LIBS + +# ****************** +# GKT+ Unix Printing +# ****************** + +AC_MSG_CHECKING([whether gtk+-unix-print support is requested]) +AC_ARG_WITH([gtk-unix-print], + [AS_HELP_STRING([--without-gtk-unix-print], + [Disable the use of gtk-unix-print])], + [],[case "$os_win32" in + yes) with_gtk_unix_print=no ;; + *) with_gtk_unix_print=yes ;; + esac]) + +AC_MSG_RESULT([$with_gtk_unix_print]) + +if test "$with_gtk_unix_print" = "yes"; then + PKG_CHECK_MODULES(GTKUNIXPRINT, [gtk+-unix-print-$GTK_API_VERSION >= $GTK_REQUIRED]) + AC_DEFINE([GTKUNIXPRINT_ENABLED], [1], [Define if gtk+-unix-print is enabled.]) +fi + +# ********************* +# MATE Keyring support +# ********************* + +AC_ARG_WITH(keyring, + [AS_HELP_STRING([--without-keyring], + [Disable the use of mate-keyring])], + [], + [case "$with_platform" in + mate) with_keyring=yes ;; + hildon|win32) with_keyring=no ;; + esac]) + +AM_CONDITIONAL([WITH_KEYRING],[test "$with_keyring" = "yes"]) + +if test "$with_keyring" = "yes"; then + PKG_CHECK_MODULES(KEYRING, mate-keyring-1 >= $KEYRING_REQUIRED) + AC_DEFINE([WITH_KEYRING],[1],[Define if KEYRING support is enabled]) +fi + +# **** +# DBUS +# **** + +AC_ARG_ENABLE([dbus], + [AS_HELP_STRING([--disable-dbus], [Disable support for dbus])], + [], + [case "$with_platform" in + mate) enable_dbus=yes ;; + hildon) enable_dbus=no ;; + esac]) + +if test "$enable_dbus" = "yes"; then + AC_DEFINE([ENABLE_DBUS],[1],[Define if DBUS support is enabled]) + + PKG_CHECK_MODULES([EV_DAEMON], [gio-2.0 >= $GLIB_REQUIRED]) +fi + +AM_CONDITIONAL([ENABLE_DBUS], [test "$enable_dbus" = "yes"]) + +dnl ========= Check for MateConf + +AC_MSG_CHECKING([whether MateConf support is requested]) +AC_ARG_WITH([mateconf], + [AS_HELP_STRING([--without-mateconf], + [Disable the use of mateconf])], + [], + [case "$os_win32" in + yes) with_mateconf=no ;; + *) with_mateconf=yes ;; + esac]) +AC_MSG_RESULT([$with_mateconf]) + +AM_CONDITIONAL([WITH_MATECONF],[test "$with_mateconf" = "yes"]) + +if test "$with_mateconf" = "yes"; then + PKG_CHECK_MODULES([MATECONF],[mateconf-2.0]) + AC_DEFINE([WITH_MATECONF],[1],[Define if MateConf support is enabled]) + + AM_MATECONF_SOURCE_2 + + AC_PATH_PROG([MATECONFTOOL], [mateconftool-2], [false]) + if test "$MATECONFTOOL" = "false"; then + AC_MSG_ERROR([mateconftool-2 executable not found in your path - should be installed with MateConf]) + fi +else + AM_CONDITIONAL([MATECONF_SCHEMAS_INSTALL],false) +fi + +dnl Debug mode + +AC_ARG_ENABLE([debug], + AS_HELP_STRING([--enable-debug], + [Turn on evince debug mode]), + [enable_debug=$enableval], + [enable_debug=no]) + +if test "x$enable_debug" = "xyes"; then + DEBUG_FLAGS="-DEV_ENABLE_DEBUG" +fi + +AC_ARG_ENABLE([tests], + AS_HELP_STRING([--enable-tests], [Enable the tests]), + [enable_tests=$enableval], + [enable_tests=yes]) + +AM_CONDITIONAL(ENABLE_TESTS, test x$enable_tests = xyes) + +LIBDOCUMENT_CFLAGS="$LIBDOCUMENT_CFLAGS $DEBUG_FLAGS" +LIBDOCUMENT_LIBS="$LIBDOCUMENT_LIBS" +AC_SUBST(LIBDOCUMENT_CFLAGS) +AC_SUBST(LIBDOCUMENT_LIBS) + +LIBVIEW_CFLAGS="$LIBVIEW_CFLAGS $GTKUNIXPRINT_CFLAGS $DEBUG_FLAGS" +LIBVIEW_LIBS="$LIBVIEW_LIBS $GTKUNIXPRINT_LIBS -lm" +AC_SUBST(LIBVIEW_CFLAGS) +AC_SUBST(LIBVIEW_LIBS) + +BACKEND_CFLAGS="$BACKEND_CFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE $DEBUG_FLAGS" +BACKEND_LIBS="$BACKEND_LIBS -lm" +AC_SUBST(BACKEND_CFLAGS) +AC_SUBST(BACKEND_LIBS) + +SHELL_CFLAGS="$SHELL_CORE_CFLAGS $KEYRING_CFLAGS $MATECONF_CFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE $DEBUG_FLAGS" +SHELL_LIBS="$SHELL_CORE_LIBS $KEYRING_LIBS $MATECONF_LIBS -lz -lm" +AC_SUBST(SHELL_CFLAGS) +AC_SUBST(SHELL_LIBS) + +FRONTEND_CFLAGS="$FRONTEND_CORE_CFLAGS $DEBUG_FLAGS" +FRONTEND_LIBS="$FRONTEND_CORE_LIBS -lz" +AC_SUBST(FRONTEND_CFLAGS) +AC_SUBST(FRONTEND_LIBS) + +EV_DAEMON_CFLAGS="$EV_DAEMON_CFLAGS $DEBUG_FLAGS" +AC_SUBST([EV_DAEMON_CFLAGS]) +AC_SUBST([EV_DAEMON_LIBS]) + +# Check for Caja property page build +AC_ARG_ENABLE([caja], + [AS_HELP_STRING([--disable-caja], + [Disable build of caja extensions])], + [], + [case "$with_platform" in + mate) enable_caja=yes ;; + *) enable_caja=no ;; + esac]) + +if test "$enable_caja" = "yes" ; then + PKG_CHECK_MODULES([CAJA],[gtk+-x11-$GTK_API_VERSION $MM gthread-2.0 libcaja-extension], + [],[AC_MSG_ERROR([libcaja-extension not found; use --disable-caja to disable the caja extensions])]) + CAJA_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir libcaja-extension` + AC_SUBST([cajaextensiondir],[$CAJA_EXTENSION_DIR]) + AC_SUBST(CAJA_CFLAGS) + AC_SUBST(CAJA_LIBS) + + AC_DEFINE([HAVE_CAJA],[1], [defined if you build the caja plugin]) +fi + +AM_CONDITIONAL([ENABLE_CAJA],[test "$enable_caja" = "yes"]) + +# Check for thumbnailer build + +AC_ARG_ENABLE([thumbnailer], + [AS_HELP_STRING([--disable-thumbnailer], + [Disable MATE thumbnailer])], + [], + [case "$with_platform" in + hildon) enable_thumbnailer=no ;; + *) enable_thumbnailer=yes ;; + esac]) + +AM_CONDITIONAL([ENABLE_THUMBNAILER],[test "$enable_thumbnailer" = "yes"]) + +# *************** +# Print Previewer +# *************** + +AC_ARG_ENABLE([previewer], + [AS_HELP_STRING([--disable-previewer], + [Disable the MATE Document Previewer])], + [], + [case "$with_platform" in + hildon) enable_previewer=no ;; + *) enable_previewer=yes ;; + esac]) + +if test x$enable_previewer = "xyes" ; then + PKG_CHECK_MODULES([PREVIEWER],[gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED]) +fi + +AM_CONDITIONAL([ENABLE_PREVIEWER],[test "$enable_previewer" = "yes"]) +PREVIEWER_CFLAGS="$PREVIEWER_CFLAGS $GTKUNIXPRINT_CFLAGS $DEBUG_FLAGS" +PREVIEWER_LIBS="$PREVIEWER_LIBS $GTKUNIXPRINT_LIBS -lz" +AC_SUBST(PREVIEWER_CFLAGS) +AC_SUBST(PREVIEWER_LIBS) + +# *** +# GIR +# *** + +AC_MSG_CHECKING([whether GObject introspection is requested]) +AC_ARG_ENABLE([introspection], + AS_HELP_STRING([--enable-introspection], + [Enable GObject introspection]), + [enable_introspection=$enableval], + [enable_introspection=no]) +AC_MSG_RESULT([$enable_introspection]) + +G_IR_SCANNER= +G_IR_COMPILER= +G_IR_GENERATE= +GIRDIR= +GIRTYPELIBDIR= + +if test "$enable_introspection" = "yes"; then + GOBJECT_INTROSPECTION_REQUIRED=0.6 + PKG_CHECK_MODULES([GOBJECT_INTROSPECTION],[gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_REQUIRED]) + + G_IR_SCANNER="$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)" + G_IR_COMPILER="$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)" + G_IR_GENERATE="$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)" + GIRDIR="$($PKG_CONFIG --variable=girdir gobject-introspection-1.0)" + GIRTYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +fi + +AC_SUBST([G_IR_SCANNER]) +AC_SUBST([G_IR_COMPILER]) +AC_SUBST([G_IR_GENERATE]) +AC_SUBST([GIRDIR]) +AC_SUBST([GIRTYPELIBDIR]) + +AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"]) + +dnl ================== portability checks =========================================== + +dnl for backtrace() +AC_CHECK_HEADERS([execinfo.h]) + +AC_CHECK_DECL([_NL_MEASUREMENT_MEASUREMENT],[ + AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT],[1],[Define if _NL_MEASUREMENT_MEASUREMENT is available]) + ],[],[#include <langinfo.h>]) + +dnl ================== pdf checks =================================================== +AC_ARG_ENABLE([pdf], + [AS_HELP_STRING([--disable-pdf], + [Disable the PDF support])], + [enable_pdf=$enableval], + [enable_pdf=yes]) + +if test "x$enable_pdf" = "xyes"; then + POPPLER_REQUIRED=0.14.0 + PKG_CHECK_MODULES(POPPLER, poppler-glib >= $POPPLER_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED,enable_pdf=yes,enable_pdf=no) + + if test "x$enable_pdf" = "xyes"; then + evince_save_LIBS=$LIBS + LIBS="$LIBS $POPPLER_LIBS" + AC_CHECK_FUNCS(poppler_page_get_text_layout) + AC_CHECK_FUNCS(poppler_page_get_selected_text) + AC_CHECK_FUNCS(poppler_page_add_annot) + LIBS=$evince_save_LIBS + PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no) + if test x$enable_cairo_pdf = xyes; then + AC_DEFINE([HAVE_CAIRO_PDF], [1], [defined if cairo-pdf is available]) + fi + + PKG_CHECK_MODULES(CAIRO_PS, cairo-ps, enable_cairo_ps=yes, enable_cairo_ps=no) + if test x$enable_cairo_ps = xyes; then + AC_DEFINE([HAVE_CAIRO_PS], [1], [defined if cairo-ps is available]) + fi + else + AC_MSG_ERROR("PDF support is disabled since poppler-glib library version $POPPLER_REQUIRED or newer not found") + fi +fi + +AM_CONDITIONAL(ENABLE_PDF, test x$enable_pdf = xyes) +dnl ================== end of pdf checks ============================================ + +dnl libspectre (used by ps and dvi backends) +SPECTRE_REQUIRED=0.2.0 +PKG_CHECK_MODULES(SPECTRE, libspectre >= $SPECTRE_REQUIRED,have_spectre=yes,have_spectre=no) +AM_CONDITIONAL(HAVE_SPECTRE, test x$have_spectre = xyes) +if test "x$have_spectre" = "xyes"; then + AC_DEFINE([HAVE_SPECTRE], [1], [Have libspectre]) +fi + +dnl ================== ps checks ==================================================== +AC_ARG_ENABLE(ps, + [AS_HELP_STRING([--disable-ps], + [Disable the PostScript backend])], + [enable_ps=$enableval], + [enable_ps=yes]) + +if test "x$enable_ps" = "xyes"; then + if test "x$have_spectre" = "xyes"; then + AC_DEFINE([ENABLE_PS], [1], [Enable support for PostScript files.]) + else + enable_ps="no" + AC_MSG_WARN([PS support is disabled since libspectre (version >= $SPECTRE_REQUIRED) is needed]) + fi +fi +AM_CONDITIONAL(ENABLE_PS, test x$enable_ps = xyes) +dnl ======================== End of ps checks =================================== + +dnl ================== tiff checks =================================================== +AC_ARG_ENABLE(tiff, + [AS_HELP_STRING([--disable-tiff], + [Disable the support of multipage tiff])], + [enable_tiff=$enableval], + [enable_tiff=yes]) + +if test "x$enable_tiff" = "xyes"; then + AC_CHECK_HEADERS([tiff.h],enable_tiff=yes,enable_tiff=no,) + if test "x$enable_tiff" = "xyes"; then + AC_CHECK_LIB([tiff],TIFFOpen,enable_tiff=yes,enable_tiff=no,"-lz") + AC_CHECK_LIB([tiff],TIFFReadRGBAImageOriented,enable_tiff=yes,enable_tiff=no,"-lz") + fi + if test "x$enable_tiff" = "xyes"; then + AC_DEFINE([ENABLE_TIFF], [1], [Enable multipage tiff support.]) + else + AC_MSG_WARN("Tiff support is disabled since tiff library version 3.6 or newer not found") + fi +fi + +AM_CONDITIONAL(ENABLE_TIFF, test x$enable_tiff = xyes) +dnl ================== end of tiff checks ============================================ + +dnl ================== djvu checks =================================================== + +AC_ARG_ENABLE(djvu, + [AS_HELP_STRING([--disable-djvu], + [Disable the support of djvu viewer])], + [enable_djvu=$enableval], + [enable_djvu=yes]) + +if test "x$enable_djvu" = "xyes"; then + DJVULIBRE_REQUIRED=3.5.17 + PKG_CHECK_MODULES(DJVU, ddjvuapi >= $DJVULIBRE_REQUIRED, enable_djvu=yes, enable_djvu=no) + + if test "x$enable_djvu" = "xyes"; then + AC_DEFINE([ENABLE_DJVU], [1], [Enable djvu viewer support.]) + else + AC_MSG_WARN([ +** Djvu support is disabled since a recent version of the djvulibre +** library was not found. You need at least djvulibre-3.5.17 which +** can be found on http://djvulibre.djvuzone.org +]) + fi +fi + +AM_CONDITIONAL(ENABLE_DJVU, test x$enable_djvu = xyes) + +dnl ================== End of djvu checks =================================================== + +dnl ================== dvi checks =================================================== + +AC_ARG_ENABLE(dvi, + [AS_HELP_STRING([--disable-dvi], + [Disable the support of dvi viewer])], + [enable_dvi=$enableval], + [enable_dvi=yes]) + +AC_ARG_ENABLE(t1lib, + [AS_HELP_STRING([--enable-t1lib], + [Compile with support of t1lib for type1 fonts in dvi])], + [enable_type1_fonts=$enableval], + [enable_type1_fonts=no]) + +if test "x$enable_dvi" = "xyes"; then + AC_C_CONST + AC_C_INLINE + AC_TYPE_SIZE_T + AC_CHECK_SIZEOF(long, 4) + AC_CHECK_SIZEOF(int, 4) + AC_CHECK_SIZEOF(short, 2) + AC_CHECK_SIZEOF(void *, 4) + AC_CHECK_LIB([kpathsea],[kpse_init_prog],[enable_dvi=yes],[enable_dvi=no]) + + if test "x$enable_dvi" = "xyes"; then + AC_DEFINE([ENABLE_DVI], [1], [Enable dvi viewer support.]) + else + AC_MSG_WARN("Dvi support is disabled since kpathsea library is not found. Check your TeX installation.") + fi +fi +AM_CONDITIONAL(ENABLE_DVI, test x$enable_dvi = xyes) + +if test "x$enable_dvi" = "xyes"; then + if test "x$enable_type1_fonts" = "xyes"; then + AC_CHECK_LIB([t1],T1_InitLib,enable_type1_fonts=yes,enable_type1_fonts=no,[-lm]) + fi + + if test "x$enable_type1_fonts" = xyes; then + AC_DEFINE([WITH_TYPE1_FONTS], [1], [Enable t1lib support in dvi.]) + fi +else + enable_type1_fonts=no +fi +AM_CONDITIONAL(WITH_TYPE1_FONTS, test x$enable_type1_fonts = xyes) + +dnl ================== End of dvi checks =================================================== + +dnl ================== pixbuf checks =================================================== + +AC_ARG_ENABLE(pixbuf, + [AS_HELP_STRING([--enable-pixbuf], + [Compile with support of pixbuf])], + [enable_pixbuf=$enableval], + [enable_pixbuf=no]) + +if test "x$enable_pixbuf" = "xyes"; then + AC_DEFINE([ENABLE_PIXBUF], [1], [Enable pixbuf support.]) +fi + +AM_CONDITIONAL(ENABLE_PIXBUF, test x$enable_pixbuf = xyes) + +dnl ================== End of pixbuf checks =================================================== + +dnl ================== comic book checks =================================================== + +AC_ARG_ENABLE(comics, + [AS_HELP_STRING([--enable-comics], + [Compile with support for comic book archives])], + [enable_comics=$enableval], + [enable_comics=yes]) + +if test "x$enable_comics" = "xyes"; then + AC_DEFINE([ENABLE_COMICS], [1], [Enable support for comics.]) +fi +AM_CONDITIONAL(ENABLE_COMICS, test x$enable_comics = xyes) + +dnl ================== End of comic book checks ============================================ + +dnl ================== impress book checks =================================================== + +AC_ARG_ENABLE(impress, + [AS_HELP_STRING([--enable-impress], + [Compile with support for impress presentations])], + [enable_impress=$enableval], + [enable_impress=no]) + +if test "x$enable_impress" = "xyes"; then + AC_DEFINE([ENABLE_IMPRESS], [1], [Enable support for impress.]) +fi +AM_CONDITIONAL(ENABLE_IMPRESS, test x$enable_impress = xyes) + +dnl ================== End of impress book checks ============================================ + +dnl =================== Mime types list ==================================================== + +if test "x$enable_pdf" = "xyes" ; then + EVINCE_MIME_TYPES="application/pdf;application/x-bzpdf;application/x-gzpdf;" +fi +if test "x$enable_ps" = "xyes" ; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}application/postscript;application/x-bzpostscript;application/x-gzpostscript;image/x-eps;image/x-bzeps;image/x-gzeps;" +fi +if test "x$enable_dvi" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}application/x-dvi;application/x-bzdvi;application/x-gzdvi;" +fi +if test "x$enable_djvu" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}image/vnd.djvu;" +fi +if test "x$enable_tiff" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}image/tiff;" +fi +if test "x$enable_comics" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}application/x-cbr;application/x-cbz;application/x-cb7;application/x-cbt;" +fi +if test "x$enable_pixbuf" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}image/*;" +fi +if test "x$enable_impress" = "xyes"; then + EVINCE_MIME_TYPES="${EVINCE_MIME_TYPES}application/vnd.sun.xml.impress;application/vnd.oasis.opendocument.presentation;" +fi +AC_SUBST(EVINCE_MIME_TYPES) + +AC_CHECK_FUNC(localtime_r, AC_DEFINE(HAVE_LOCALTIME_R, 1, [Defines if localtime_r is available on your system])) + +# ***************** +# Help files +# ***************** + +MATE_DOC_INIT([], mate_doc_utils=yes, mate_doc_utils=no) + +AC_ARG_ENABLE(help, + [AS_HELP_STRING([--disable-help], [Disable offline help files])], + [enable_help=$enableval], + [enable_help=yes]) + +if test "x$enable_help" = "xyes" && test "x$os_win32" = "xyes" ; then + AC_MSG_WARN([Offline help is disabled (not implemented on Windows).]) + enable_help=no +fi + +if test "x$enable_help" = "xyes" && test "x$mate_doc_utils" == "xno"; then + AC_MSG_ERROR( + [mate-doc-utils not found; use --disable-help to disable help files] + ) +fi + +if test "x$enable_help" = "xyes"; then + AC_DEFINE([OFFLINE_HELP_ENABLED], [1], [Enable offline help]) +fi + +AM_CONDITIONAL(ENABLE_HELP, test "x$enable_help" = "xyes") + +# ***************** +# API documentation +# ***************** + +GTK_DOC_CHECK([1.13],[--flavour no-tmpl]) + +AC_SUBST([GLIB_PREFIX],[$($PKG_CONFIG --variable=prefix glib-2.0)]) +AC_SUBST([GTK_PREFIX],[$($PKG_CONFIG --variable=prefix gtk+-$GTK_API_VERSION)]) + +# ****************** +# Backends directory +# ****************** + +AC_SUBST([backenddir],"\$(libdir)/evince/ev_binary_version/backends") +AC_SUBST([backend_binary_version],"ev_binary_version") + +# ********** +# Versioning +# ********** + +AC_SUBST([EV_MAJOR_VERSION],[ev_major_version]) +AC_SUBST([EV_MINOR_VERSION],[ev_minor_version]) +AC_SUBST([EV_MICRO_VERSION],[ev_micro_version]) + +AC_SUBST([EV_API_VERSION],[ev_api_version]) +AC_SUBST([EV_API_VERSION_U],[AS_TR_SH([ev_api_version])]) +AC_SUBST([EV_BINARY_VERSION],[ev_binary_version]) + +AC_SUBST([EV_DOCUMENT_LT_VERSION_INFO],[ev_document_lt_version_info]) +AC_SUBST([EV_DOCUMENT_LT_CURRENT_MINUS_AGE],[ev_document_lt_current_minus_age]) +AC_SUBST([EV_VIEW_LT_VERSION_INFO],[ev_view_lt_version_info]) +AC_SUBST([EV_VIEW_LT_CURRENT_MINUS_AGE],[ev_view_lt_current_minus_age]) + +# ***************************************************************************** +# ***************************************************************************** + +AC_CONFIG_FILES([ +backend/Makefile +backend/comics/Makefile +backend/djvu/Makefile +backend/dvi/Makefile +backend/dvi/mdvi-lib/Makefile +backend/impress/Makefile +backend/pdf/Makefile +backend/pixbuf/Makefile +backend/ps/Makefile +backend/tiff/Makefile +cut-n-paste/Makefile +cut-n-paste/gimpcellrenderertoggle/Makefile +cut-n-paste/smclient/Makefile +cut-n-paste/toolbar-editor/Makefile +cut-n-paste/zoom-control/Makefile +cut-n-paste/totem-screensaver/Makefile +cut-n-paste/synctex/Makefile +data/evince.desktop.in +data/Makefile +data/icons/Makefile +data/icons/16x16/Makefile +data/icons/16x16/apps/Makefile +data/icons/16x16/actions/Makefile +data/icons/16x16/mimetypes/Makefile +data/icons/22x22/Makefile +data/icons/22x22/apps/Makefile +data/icons/22x22/actions/Makefile +data/icons/22x22/mimetypes/Makefile +data/icons/24x24/Makefile +data/icons/24x24/apps/Makefile +data/icons/24x24/actions/Makefile +data/icons/24x24/mimetypes/Makefile +data/icons/32x32/Makefile +data/icons/32x32/actions/Makefile +data/icons/32x32/mimetypes/Makefile +data/icons/48x48/Makefile +data/icons/48x48/apps/Makefile +data/icons/48x48/actions/Makefile +data/icons/scalable/Makefile +data/icons/scalable/apps/Makefile +data/icons/scalable/actions/Makefile +data/icons/scalable/mimetypes/Makefile +help/Makefile +help/reference/Makefile +help/reference/libdocument/Makefile +help/reference/libdocument/version.xml +help/reference/libview/Makefile +help/reference/libview/version.xml +help/reference/shell/Makefile +help/reference/shell/version.xml +libdocument/Makefile +libdocument/ev-version.h +libmisc/Makefile +libview/Makefile +Makefile +po/Makefile.in +previewer/Makefile +properties/Makefile +shell/Makefile +test/Makefile +thumbnailer/Makefile +]) + +AC_CONFIG_FILES(evince-document-[]ev_api_version[].pc:evince-document.pc.in) +AC_CONFIG_FILES(evince-view-[]ev_api_version[].pc:evince-view.pc.in) + +AC_OUTPUT + +echo " +Configure summary: + Platform...........: $with_platform + GTK+ version.......: $with_gtk + MateConf Support......: $with_mateconf + GTK+ Unix Print....: $with_gtk_unix_print + Keyring Support....: $with_keyring + DBUS Support.......: $enable_dbus + SM client support..: $with_smclient + Help files.........: $enable_help + Caja Plugin....: $enable_caja + Thumbnailer........: $enable_thumbnailer + Previewer..........: $enable_previewer + Gtk-Doc Support....: $enable_gtk_doc + Debug mode.........: $enable_debug + GObj. Introspection: $enable_introspection + Tests..............: $enable_tests + + PDF Backend........: $enable_pdf + PostScript Backend.: $enable_ps + TIFF Backend.......: $enable_tiff + DJVU Backend.......: $enable_djvu + DVI Backend........: $enable_dvi + Pixbuf Backend.....: $enable_pixbuf + Comics Backend.....: $enable_comics + Impress Backend....: $enable_impress +" diff --git a/cut-n-paste/Makefile.am b/cut-n-paste/Makefile.am new file mode 100644 index 00000000..b53b9b9e --- /dev/null +++ b/cut-n-paste/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = zoom-control toolbar-editor totem-screensaver smclient gimpcellrenderertoggle synctex + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/gimpcellrenderertoggle/Makefile.am b/cut-n-paste/gimpcellrenderertoggle/Makefile.am new file mode 100644 index 00000000..fffeffa7 --- /dev/null +++ b/cut-n-paste/gimpcellrenderertoggle/Makefile.am @@ -0,0 +1,38 @@ +noinst_LTLIBRARIES = libgimpcellrenderertoggle.la + +libgimpcellrenderertoggle_la_sources = \ + gimpcellrenderertoggle.h \ + gimpcellrenderertoggle.c + +libgimpcellrenderertoggle_la_CFLAGS = \ + $(SHELL_CORE_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +libgimpcellrenderertoggle_la_built_sources = \ + gimpwidgetsmarshal.h \ + gimpwidgetsmarshal.c + +libgimpcellrenderertoggle_la_SOURCES = \ + $(libgimpcellrenderertoggle_la_built_sources) \ + $(libgimpcellrenderertoggle_la_sources) + +libgimpcellrenderertoggle_la_extra_sources = gimpwidgetsmarshal.list + +gimpwidgetsmarshal.h: $(srcdir)/gimpwidgetsmarshal.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=_gimp_widgets_marshal $(srcdir)/gimpwidgetsmarshal.list --header >> xgen-wmh \ + && (cmp -s xgen-wmh $(@F) || cp xgen-wmh $(@F)) \ + && rm -f xgen-wmh xgen-wmh~ + +gimpwidgetsmarshal.c: gimpwidgetsmarshal.h + $(AM_V_GEN)echo "#include \"gimpwidgetsmarshal.h\"" >> xgen-wmc \ + && $(GLIB_GENMARSHAL) --prefix=_gimp_widgets_marshal $(srcdir)/gimpwidgetsmarshal.list --body >> xgen-wmc \ + && cp xgen-wmc $(@F) \ + && rm -f xgen-wmc xgen-wmc~ + +gen_sources = xgen-wmh xgen-wmc $(libgimpcellrenderertoggle_la_built_sources) +CLEANFILES = $(gen_sources) + +EXTRA_DIST = $(libgimpcellrenderertoggle_la_extra_sources) + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c new file mode 100644 index 00000000..e9a25f15 --- /dev/null +++ b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c @@ -0,0 +1,492 @@ +/* LIBGIMP - The GIMP Library + * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball + * + * gimpcellrenderertoggle.c + * Copyright (C) 2003-2004 Sven Neumann <sven@gimp.org> + * + * 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 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "gimpwidgetsmarshal.h" +#include "gimpcellrenderertoggle.h" + + +#define DEFAULT_ICON_SIZE GTK_ICON_SIZE_BUTTON + + +enum +{ + CLICKED, + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_STOCK_ID, + PROP_STOCK_SIZE +}; + + +static void gimp_cell_renderer_toggle_finalize (GObject *object); +static void gimp_cell_renderer_toggle_get_property (GObject *object, + guint param_id, + GValue *value, + GParamSpec *pspec); +static void gimp_cell_renderer_toggle_set_property (GObject *object, + guint param_id, + const GValue *value, + GParamSpec *pspec); +static void gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell, + GtkWidget *widget, + GdkRectangle *rectangle, + gint *x_offset, + gint *y_offset, + gint *width, + gint *height); +static void gimp_cell_renderer_toggle_render (GtkCellRenderer *cell, + GdkWindow *window, + GtkWidget *widget, + GdkRectangle *background_area, + GdkRectangle *cell_area, + GdkRectangle *expose_area, + GtkCellRendererState flags); +static gboolean gimp_cell_renderer_toggle_activate (GtkCellRenderer *cell, + GdkEvent *event, + GtkWidget *widget, + const gchar *path, + GdkRectangle *background_area, + GdkRectangle *cell_area, + GtkCellRendererState flags); +static void gimp_cell_renderer_toggle_create_pixbuf (GimpCellRendererToggle *toggle, + GtkWidget *widget); + + +G_DEFINE_TYPE (GimpCellRendererToggle, gimp_cell_renderer_toggle, + GTK_TYPE_CELL_RENDERER_TOGGLE) + +#define parent_class gimp_cell_renderer_toggle_parent_class + +static guint toggle_cell_signals[LAST_SIGNAL] = { 0 }; + + +static void +gimp_cell_renderer_toggle_class_init (GimpCellRendererToggleClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass); + + toggle_cell_signals[CLICKED] = + g_signal_new ("clicked", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GimpCellRendererToggleClass, clicked), + NULL, NULL, + _gimp_widgets_marshal_VOID__STRING_FLAGS, + G_TYPE_NONE, 2, + G_TYPE_STRING, + GDK_TYPE_MODIFIER_TYPE); + + object_class->finalize = gimp_cell_renderer_toggle_finalize; + object_class->get_property = gimp_cell_renderer_toggle_get_property; + object_class->set_property = gimp_cell_renderer_toggle_set_property; + + cell_class->get_size = gimp_cell_renderer_toggle_get_size; + cell_class->render = gimp_cell_renderer_toggle_render; + cell_class->activate = gimp_cell_renderer_toggle_activate; + + g_object_class_install_property (object_class, + PROP_STOCK_ID, + g_param_spec_string ("stock-id", + NULL, NULL, + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + g_object_class_install_property (object_class, + PROP_STOCK_SIZE, + g_param_spec_int ("stock-size", + NULL, NULL, + 0, G_MAXINT, + DEFAULT_ICON_SIZE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); +} + +static void +gimp_cell_renderer_toggle_init (GimpCellRendererToggle *toggle) +{ +} + +static void +gimp_cell_renderer_toggle_finalize (GObject *object) +{ + GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (object); + + if (toggle->stock_id) + { + g_free (toggle->stock_id); + toggle->stock_id = NULL; + } + + if (toggle->pixbuf) + { + g_object_unref (toggle->pixbuf); + toggle->pixbuf = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gimp_cell_renderer_toggle_get_property (GObject *object, + guint param_id, + GValue *value, + GParamSpec *pspec) +{ + GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (object); + + switch (param_id) + { + case PROP_STOCK_ID: + g_value_set_string (value, toggle->stock_id); + break; + case PROP_STOCK_SIZE: + g_value_set_int (value, toggle->stock_size); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +gimp_cell_renderer_toggle_set_property (GObject *object, + guint param_id, + const GValue *value, + GParamSpec *pspec) +{ + GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (object); + + switch (param_id) + { + case PROP_STOCK_ID: + if (toggle->stock_id) + g_free (toggle->stock_id); + toggle->stock_id = g_value_dup_string (value); + break; + case PROP_STOCK_SIZE: + toggle->stock_size = g_value_get_int (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } + + if (toggle->pixbuf) + { + g_object_unref (toggle->pixbuf); + toggle->pixbuf = NULL; + } +} + +static void +gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell, + GtkWidget *widget, + GdkRectangle *cell_area, + gint *x_offset, + gint *y_offset, + gint *width, + gint *height) +{ + GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (cell); + GtkStyle *style = gtk_widget_get_style (widget); + gint calc_width; + gint calc_height; + gint pixbuf_width; + gint pixbuf_height; + gfloat xalign; + gfloat yalign; + gint xpad; + gint ypad; + + if (! toggle->stock_id) + { + GTK_CELL_RENDERER_CLASS (parent_class)->get_size (cell, + widget, + cell_area, + x_offset, y_offset, + width, height); + return; + } + + gtk_cell_renderer_get_alignment (cell, &xalign, &yalign); + gtk_cell_renderer_get_padding (cell, &xpad, &ypad); + + if (! toggle->pixbuf) + gimp_cell_renderer_toggle_create_pixbuf (toggle, widget); + + pixbuf_width = gdk_pixbuf_get_width (toggle->pixbuf); + pixbuf_height = gdk_pixbuf_get_height (toggle->pixbuf); + + calc_width = (pixbuf_width + + (gint) xpad * 2 + style->xthickness * 2); + calc_height = (pixbuf_height + + (gint) ypad * 2 + style->ythickness * 2); + + if (width) + *width = calc_width; + + if (height) + *height = calc_height; + + if (cell_area) + { + if (x_offset) + { + *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? + (1.0 - xalign) : xalign) * + (cell_area->width - calc_width)); + *x_offset = MAX (*x_offset, 0); + } + + if (y_offset) + { + *y_offset = yalign * (cell_area->height - calc_height); + *y_offset = MAX (*y_offset, 0); + } + } +} + +static void +gimp_cell_renderer_toggle_render (GtkCellRenderer *cell, + GdkWindow *window, + GtkWidget *widget, + GdkRectangle *background_area, + GdkRectangle *cell_area, + GdkRectangle *expose_area, + GtkCellRendererState flags) +{ + GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (cell); + GtkStyle *style = gtk_widget_get_style (widget); + GdkRectangle toggle_rect; + GdkRectangle draw_rect; + GtkStateType state; + gboolean active; + gint xpad; + gint ypad; + + if (! toggle->stock_id) + { + GTK_CELL_RENDERER_CLASS (parent_class)->render (cell, window, widget, + background_area, + cell_area, expose_area, + flags); + return; + } + + gimp_cell_renderer_toggle_get_size (cell, widget, cell_area, + &toggle_rect.x, + &toggle_rect.y, + &toggle_rect.width, + &toggle_rect.height); + + gtk_cell_renderer_get_padding (cell, &xpad, &ypad); + toggle_rect.x += cell_area->x + xpad; + toggle_rect.y += cell_area->y + ypad; + toggle_rect.width -= xpad * 2; + toggle_rect.height -= ypad * 2; + + if (toggle_rect.width <= 0 || toggle_rect.height <= 0) + return; + + active = + gtk_cell_renderer_toggle_get_active (GTK_CELL_RENDERER_TOGGLE (cell)); + + if (!gtk_cell_renderer_get_sensitive (cell)) + { + state = GTK_STATE_INSENSITIVE; + } + else if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED) + { + if (gtk_widget_has_focus (widget)) + state = GTK_STATE_SELECTED; + else + state = GTK_STATE_ACTIVE; + } + else + { + if (gtk_cell_renderer_toggle_get_activatable (GTK_CELL_RENDERER_TOGGLE (cell))) + state = GTK_STATE_NORMAL; + else + state = GTK_STATE_INSENSITIVE; + } + + if (gdk_rectangle_intersect (expose_area, cell_area, &draw_rect) && + (flags & GTK_CELL_RENDERER_PRELIT)) + gtk_paint_shadow (style, + window, + state, + active ? GTK_SHADOW_IN : GTK_SHADOW_OUT, + &draw_rect, + widget, NULL, + toggle_rect.x, toggle_rect.y, + toggle_rect.width, toggle_rect.height); + + if (active) + { + GdkPixbuf *insensitive = NULL; + GdkPixbuf *pixbuf = toggle->pixbuf; + + toggle_rect.x += style->xthickness; + toggle_rect.y += style->ythickness; + toggle_rect.width -= style->xthickness * 2; + toggle_rect.height -= style->ythickness * 2; + + if (state == GTK_STATE_INSENSITIVE) + { + GtkIconSource *source; + + source = gtk_icon_source_new (); + gtk_icon_source_set_pixbuf (source, pixbuf); + /* The size here is arbitrary; since size isn't + * wildcarded in the source, it isn't supposed to be + * scaled by the engine function + */ + gtk_icon_source_set_size (source, GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_icon_source_set_size_wildcarded (source, FALSE); + + insensitive = gtk_style_render_icon (gtk_widget_get_style (widget), + source, + gtk_widget_get_direction (widget), + GTK_STATE_INSENSITIVE, + /* arbitrary */ + (GtkIconSize)-1, + widget, + "gimpcellrenderertoggle"); + + gtk_icon_source_free (source); + + pixbuf = insensitive; + } + + if (gdk_rectangle_intersect (&draw_rect, &toggle_rect, &draw_rect)) + { + cairo_t *cr; + + cr = gdk_cairo_create (window); + + gdk_cairo_set_source_pixbuf (cr, pixbuf, toggle_rect.x, toggle_rect.y); + gdk_cairo_rectangle (cr, &draw_rect); + cairo_fill (cr); + + cairo_destroy (cr); + } + + if (insensitive) + g_object_unref (insensitive); + } +} + +static gboolean +gimp_cell_renderer_toggle_activate (GtkCellRenderer *cell, + GdkEvent *event, + GtkWidget *widget, + const gchar *path, + GdkRectangle *background_area, + GdkRectangle *cell_area, + GtkCellRendererState flags) +{ + GtkCellRendererToggle *toggle = GTK_CELL_RENDERER_TOGGLE (cell); + + if (gtk_cell_renderer_toggle_get_activatable (toggle)) + { + GdkModifierType state = 0; + + GTK_CELL_RENDERER_CLASS (parent_class)->activate (cell, event, widget, + path, background_area, + cell_area, flags); + + if (event && ((GdkEventAny *) event)->type == GDK_BUTTON_PRESS) + state = ((GdkEventButton *) event)->state; + + gimp_cell_renderer_toggle_clicked (GIMP_CELL_RENDERER_TOGGLE (cell), + path, state); + + return TRUE; + } + + return FALSE; +} + +static void +gimp_cell_renderer_toggle_create_pixbuf (GimpCellRendererToggle *toggle, + GtkWidget *widget) +{ + if (toggle->pixbuf) + g_object_unref (toggle->pixbuf); + + toggle->pixbuf = gtk_widget_render_icon (widget, + toggle->stock_id, + toggle->stock_size, NULL); +} + + +/** + * gimp_cell_renderer_toggle_new: + * @stock_id: the stock_id of the icon to use for the active state + * + * Creates a custom version of the #GtkCellRendererToggle. Instead of + * showing the standard toggle button, it shows a stock icon if the + * cell is active and no icon otherwise. This cell renderer is for + * example used in the Layers treeview to indicate and control the + * layer's visibility by showing %GIMP_STOCK_VISIBLE. + * + * Return value: a new #GimpCellRendererToggle + * + * Since: GIMP 2.2 + **/ +GtkCellRenderer * +gimp_cell_renderer_toggle_new (const gchar *stock_id) +{ + return g_object_new (GIMP_TYPE_CELL_RENDERER_TOGGLE, + "stock_id", stock_id, + NULL); +} + +/** + * gimp_cell_renderer_toggle_clicked: + * @cell: a #GimpCellRendererToggle + * @path: + * @state: + * + * Emits the "clicked" signal from a #GimpCellRendererToggle. + * + * Since: GIMP 2.2 + **/ +void +gimp_cell_renderer_toggle_clicked (GimpCellRendererToggle *cell, + const gchar *path, + GdkModifierType state) +{ + g_return_if_fail (GIMP_IS_CELL_RENDERER_TOGGLE (cell)); + g_return_if_fail (path != NULL); + + g_signal_emit (cell, toggle_cell_signals[CLICKED], 0, path, state); +} diff --git a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.h b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.h new file mode 100644 index 00000000..6d516d73 --- /dev/null +++ b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.h @@ -0,0 +1,77 @@ +/* LIBGIMP - The GIMP Library + * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball + * + * gimpcellrenderertoggle.h + * Copyright (C) 2003-2004 Sven Neumann <sven@gimp.org> + * + * 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 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GIMP_CELL_RENDERER_TOGGLE_H__ +#define __GIMP_CELL_RENDERER_TOGGLE_H__ + +#include <gtk/gtk.h> +#include <glib-object.h> + +G_BEGIN_DECLS + +#define GIMP_TYPE_CELL_RENDERER_TOGGLE (gimp_cell_renderer_toggle_get_type ()) +#define GIMP_CELL_RENDERER_TOGGLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_CELL_RENDERER_TOGGLE, GimpCellRendererToggle)) +#define GIMP_CELL_RENDERER_TOGGLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_CELL_RENDERER_TOGGLE, GimpCellRendererToggleClass)) +#define GIMP_IS_CELL_RENDERER_TOGGLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_CELL_RENDERER_TOGGLE)) +#define GIMP_IS_CELL_RENDERER_TOGGLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CELL_RENDERER_TOGGLE)) +#define GIMP_CELL_RENDERER_TOGGLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_CELL_RENDERER_TOGGLE, GimpCellRendererToggleClass)) + +typedef struct _GimpCellRendererToggle GimpCellRendererToggle; +typedef struct _GimpCellRendererToggleClass GimpCellRendererToggleClass; + +struct _GimpCellRendererToggle +{ + GtkCellRendererToggle parent_instance; + + gchar *stock_id; + GtkIconSize stock_size; + GdkPixbuf *pixbuf; +}; + +struct _GimpCellRendererToggleClass +{ + GtkCellRendererToggleClass parent_class; + + void (* clicked) (GimpCellRendererToggle *cell, + const gchar *path, + GdkModifierType state); + + /* Padding for future expansion */ + void (* _gimp_reserved1) (void); + void (* _gimp_reserved2) (void); + void (* _gimp_reserved3) (void); + void (* _gimp_reserved4) (void); +}; + + +GType gimp_cell_renderer_toggle_get_type (void) G_GNUC_CONST; + +GtkCellRenderer * gimp_cell_renderer_toggle_new (const gchar *stock_id); + +void gimp_cell_renderer_toggle_clicked (GimpCellRendererToggle *cell, + const gchar *path, + GdkModifierType state); + + +G_END_DECLS + +#endif /* __GIMP_CELL_RENDERER_TOGGLE_H__ */ diff --git a/cut-n-paste/gimpcellrenderertoggle/gimpwidgetsmarshal.list b/cut-n-paste/gimpcellrenderertoggle/gimpwidgetsmarshal.list new file mode 100644 index 00000000..f32f0f95 --- /dev/null +++ b/cut-n-paste/gimpcellrenderertoggle/gimpwidgetsmarshal.list @@ -0,0 +1,26 @@ +# see glib-genmarshal(1) for a detailed description of the file format, +# possible parameter types are: +# VOID indicates no return type, or no extra +# parameters. if VOID is used as the parameter +# list, no additional parameters may be present. +# BOOLEAN for boolean types (gboolean) +# CHAR for signed char types (gchar) +# UCHAR for unsigned char types (guchar) +# INT for signed integer types (gint) +# UINT for unsigned integer types (guint) +# LONG for signed long integer types (glong) +# ULONG for unsigned long integer types (gulong) +# ENUM for enumeration types (gint) +# FLAGS for flag enumeration types (guint) +# FLOAT for single-precision float types (gfloat) +# DOUBLE for double-precision float types (gdouble) +# STRING for string types (gchar*) +# BOXED for boxed (anonymous but reference counted) types (GBoxed*) +# POINTER for anonymous pointer types (gpointer) +# PARAM for GParamSpec or derived types (GParamSpec*) +# OBJECT for GObject or derived types (GObject*) +# NONE deprecated alias for VOID +# BOOL deprecated alias for BOOLEAN + +VOID: STRING, FLAGS + diff --git a/cut-n-paste/smclient/Makefile.am b/cut-n-paste/smclient/Makefile.am new file mode 100644 index 00000000..498ed756 --- /dev/null +++ b/cut-n-paste/smclient/Makefile.am @@ -0,0 +1,42 @@ +noinst_LTLIBRARIES = libsmclient.la + +NULL = + +if WITH_SMCLIENT +libsmclient_la_SOURCES = \ + eggsmclient.c \ + eggsmclient.h \ + eggsmclient-private.h \ + $(NULL) + +libsmclient_la_CPPFLAGS = \ + -DG_LOG_DOMAIN=\""EggSMClient"\" \ + $(DISABLE_DEPRECATED) \ + $(AM_CPPFLAGS) + +libsmclient_la_CFLAGS = \ + $(SMCLIENT_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(AM_CFLAGS) + +libsmclient_la_LIBADD = \ + $(SMCLIENT_LIBS) + +if WITH_SMCLIENT_XSMP +libsmclient_la_SOURCES += \ + eggdesktopfile.c \ + eggdesktopfile.h \ + eggsmclient-xsmp.c \ + $(NULL) +libsmclient_la_CPPFLAGS += -DEGG_SM_CLIENT_BACKEND_XSMP +endif +if WITH_SMCLIENT_WIN32 +libsmclient_la_SOURCES += eggsmclient-win32.c +endif +if WITH_SMCLIENT_QUARTZ +libsmclient_la_SOURCES += eggsmclient-osx.c +endif + +endif # WITH_SMCLIENT + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/smclient/eggdesktopfile.c b/cut-n-paste/smclient/eggdesktopfile.c new file mode 100644 index 00000000..1f432adc --- /dev/null +++ b/cut-n-paste/smclient/eggdesktopfile.c @@ -0,0 +1,1477 @@ +/* eggdesktopfile.c - Freedesktop.Org Desktop Files + * Copyright (C) 2007 Novell, Inc. + * + * Based on mate-desktop-item.c + * Copyright (C) 1999, 2000 Red Hat Inc. + * Copyright (C) 2001 George Lebl + * + * 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 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. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "eggdesktopfile.h" + +#include <string.h> +#include <unistd.h> + +#include <glib/gi18n.h> +#include <gdk/gdkx.h> +#include <gtk/gtk.h> + +struct EggDesktopFile { + GKeyFile *key_file; + char *source; + + char *name, *icon; + EggDesktopFileType type; + char document_code; +}; + +/** + * egg_desktop_file_new: + * @desktop_file_path: path to a Freedesktop-style Desktop file + * @error: error pointer + * + * Creates a new #EggDesktopFile for @desktop_file. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new (const char *desktop_file_path, GError **error) +{ + GKeyFile *key_file; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_file (key_file, desktop_file_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + return egg_desktop_file_new_from_key_file (key_file, desktop_file_path, + error); +} + +/** + * egg_desktop_file_new_from_data_dirs: + * @desktop_file_path: relative path to a Freedesktop-style Desktop file + * @error: error pointer + * + * Looks for @desktop_file_path in the paths returned from + * g_get_user_data_dir() and g_get_system_data_dirs(), and creates + * a new #EggDesktopFile from it. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_data_dirs (const char *desktop_file_path, + GError **error) +{ + EggDesktopFile *desktop_file; + GKeyFile *key_file; + char *full_path; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_data_dirs (key_file, desktop_file_path, + &full_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + desktop_file = egg_desktop_file_new_from_key_file (key_file, + full_path, + error); + g_free (full_path); + return desktop_file; +} + +/** + * egg_desktop_file_new_from_dirs: + * @desktop_file_path: relative path to a Freedesktop-style Desktop file + * @search_dirs: NULL-terminated array of directories to search + * @error: error pointer + * + * Looks for @desktop_file_path in the paths returned from + * g_get_user_data_dir() and g_get_system_data_dirs(), and creates + * a new #EggDesktopFile from it. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_dirs (const char *desktop_file_path, + const char **search_dirs, + GError **error) +{ + EggDesktopFile *desktop_file; + GKeyFile *key_file; + char *full_path; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_dirs (key_file, desktop_file_path, search_dirs, + &full_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + desktop_file = egg_desktop_file_new_from_key_file (key_file, + full_path, + error); + g_free (full_path); + return desktop_file; +} + +/** + * egg_desktop_file_new_from_key_file: + * @key_file: a #GKeyFile representing a desktop file + * @source: the path or URI that @key_file was loaded from, or %NULL + * @error: error pointer + * + * Creates a new #EggDesktopFile for @key_file. Assumes ownership of + * @key_file (on success or failure); you should consider @key_file to + * be freed after calling this function. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_key_file (GKeyFile *key_file, + const char *source, + GError **error) +{ + EggDesktopFile *desktop_file; + char *version, *type; + + if (!g_key_file_has_group (key_file, EGG_DESKTOP_FILE_GROUP)) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_INVALID, + _("File is not a valid .desktop file")); + g_key_file_free (key_file); + return NULL; + } + + version = g_key_file_get_value (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_VERSION, + NULL); + if (version) + { + double version_num; + char *end; + + version_num = g_ascii_strtod (version, &end); + if (*end) + { + g_warning ("Invalid Version string '%s' in %s", + version, source ? source : "(unknown)"); + } + else if (version_num > 1.0) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_INVALID, + _("Unrecognized desktop file Version '%s'"), version); + g_free (version); + g_key_file_free (key_file); + return NULL; + } + g_free (version); + } + + desktop_file = g_new0 (EggDesktopFile, 1); + desktop_file->key_file = key_file; + + if (g_path_is_absolute (source)) + desktop_file->source = g_filename_to_uri (source, NULL, NULL); + else + desktop_file->source = g_strdup (source); + + desktop_file->name = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NAME, error); + if (!desktop_file->name) + { + egg_desktop_file_free (desktop_file); + return NULL; + } + + type = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TYPE, error); + if (!type) + { + egg_desktop_file_free (desktop_file); + return NULL; + } + + if (!strcmp (type, "Application")) + { + char *exec, *p; + + desktop_file->type = EGG_DESKTOP_FILE_TYPE_APPLICATION; + + exec = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + error); + if (!exec) + { + egg_desktop_file_free (desktop_file); + g_free (type); + return NULL; + } + + /* See if it takes paths or URIs or neither */ + for (p = exec; *p; p++) + { + if (*p == '%') + { + if (p[1] == '\0' || strchr ("FfUu", p[1])) + { + desktop_file->document_code = p[1]; + break; + } + p++; + } + } + + g_free (exec); + } + else if (!strcmp (type, "Link")) + { + char *url; + + desktop_file->type = EGG_DESKTOP_FILE_TYPE_LINK; + + url = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_URL, + error); + if (!url) + { + egg_desktop_file_free (desktop_file); + g_free (type); + return NULL; + } + g_free (url); + } + else if (!strcmp (type, "Directory")) + desktop_file->type = EGG_DESKTOP_FILE_TYPE_DIRECTORY; + else + desktop_file->type = EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED; + + g_free (type); + + /* Check the Icon key */ + desktop_file->icon = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_ICON, + NULL); + if (desktop_file->icon && !g_path_is_absolute (desktop_file->icon)) + { + char *ext; + + /* Lots of .desktop files still get this wrong */ + ext = strrchr (desktop_file->icon, '.'); + if (ext && (!strcmp (ext, ".png") || + !strcmp (ext, ".xpm") || + !strcmp (ext, ".svg"))) + { + g_warning ("Desktop file '%s' has malformed Icon key '%s'" + "(should not include extension)", + source ? source : "(unknown)", + desktop_file->icon); + *ext = '\0'; + } + } + + return desktop_file; +} + +/** + * egg_desktop_file_free: + * @desktop_file: an #EggDesktopFile + * + * Frees @desktop_file. + **/ +void +egg_desktop_file_free (EggDesktopFile *desktop_file) +{ + g_key_file_free (desktop_file->key_file); + g_free (desktop_file->source); + g_free (desktop_file->name); + g_free (desktop_file->icon); + g_free (desktop_file); +} + +/** + * egg_desktop_file_get_source: + * @desktop_file: an #EggDesktopFile + * + * Gets the URI that @desktop_file was loaded from. + * + * Return value: @desktop_file's source URI + **/ +const char * +egg_desktop_file_get_source (EggDesktopFile *desktop_file) +{ + return desktop_file->source; +} + +/** + * egg_desktop_file_get_desktop_file_type: + * @desktop_file: an #EggDesktopFile + * + * Gets the desktop file type of @desktop_file. + * + * Return value: @desktop_file's type + **/ +EggDesktopFileType +egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file) +{ + return desktop_file->type; +} + +/** + * egg_desktop_file_get_name: + * @desktop_file: an #EggDesktopFile + * + * Gets the (localized) value of @desktop_file's "Name" key. + * + * Return value: the application/link name + **/ +const char * +egg_desktop_file_get_name (EggDesktopFile *desktop_file) +{ + return desktop_file->name; +} + +/** + * egg_desktop_file_get_icon: + * @desktop_file: an #EggDesktopFile + * + * Gets the value of @desktop_file's "Icon" key. + * + * If the icon string is a full path (that is, if g_path_is_absolute() + * returns %TRUE when called on it), it points to a file containing an + * unthemed icon. If the icon string is not a full path, it is the + * name of a themed icon, which can be looked up with %GtkIconTheme, + * or passed directly to a theme-aware widget like %GtkImage or + * %GtkCellRendererPixbuf. + * + * Return value: the icon path or name + **/ +const char * +egg_desktop_file_get_icon (EggDesktopFile *desktop_file) +{ + return desktop_file->icon; +} + +gboolean +egg_desktop_file_has_key (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char * +egg_desktop_file_get_string (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char * +egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + GError **error) +{ + return g_key_file_get_locale_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, locale, + error); +} + +gboolean +egg_desktop_file_get_boolean (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +double +egg_desktop_file_get_numeric (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_double (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char ** +egg_desktop_file_get_string_list (EggDesktopFile *desktop_file, + const char *key, + gsize *length, + GError **error) +{ + return g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, length, + error); +} + +char ** +egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + gsize *length, + GError **error) +{ + return g_key_file_get_locale_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + locale, length, + error); +} + +/** + * egg_desktop_file_can_launch: + * @desktop_file: an #EggDesktopFile + * @desktop_environment: the name of the running desktop environment, + * or %NULL + * + * Tests if @desktop_file can/should be launched in the current + * environment. If @desktop_environment is non-%NULL, @desktop_file's + * "OnlyShowIn" and "NotShowIn" keys are checked to make sure that + * this desktop_file is appropriate for the named environment. + * + * Furthermore, if @desktop_file has type + * %EGG_DESKTOP_FILE_TYPE_APPLICATION, its "TryExec" key (if any) is + * also checked, to make sure the binary it points to exists. + * + * egg_desktop_file_can_launch() does NOT check the value of the + * "Hidden" key. + * + * Return value: %TRUE if @desktop_file can be launched + **/ +gboolean +egg_desktop_file_can_launch (EggDesktopFile *desktop_file, + const char *desktop_environment) +{ + char *try_exec, *found_program; + char **only_show_in, **not_show_in; + gboolean found; + int i; + + if (desktop_file->type != EGG_DESKTOP_FILE_TYPE_APPLICATION && + desktop_file->type != EGG_DESKTOP_FILE_TYPE_LINK) + return FALSE; + + if (desktop_environment) + { + only_show_in = g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN, + NULL, NULL); + if (only_show_in) + { + for (i = 0, found = FALSE; only_show_in[i] && !found; i++) + { + if (!strcmp (only_show_in[i], desktop_environment)) + found = TRUE; + } + + g_strfreev (only_show_in); + + if (!found) + return FALSE; + } + + not_show_in = g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN, + NULL, NULL); + if (not_show_in) + { + for (i = 0, found = FALSE; not_show_in[i] && !found; i++) + { + if (!strcmp (not_show_in[i], desktop_environment)) + found = TRUE; + } + + g_strfreev (not_show_in); + + if (found) + return FALSE; + } + } + + if (desktop_file->type == EGG_DESKTOP_FILE_TYPE_APPLICATION) + { + try_exec = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TRY_EXEC, + NULL); + if (try_exec) + { + found_program = g_find_program_in_path (try_exec); + g_free (try_exec); + + if (!found_program) + return FALSE; + g_free (found_program); + } + } + + return TRUE; +} + +/** + * egg_desktop_file_accepts_documents: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file represents an application that can accept + * documents on the command line. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file) +{ + return desktop_file->document_code != 0; +} + +/** + * egg_desktop_file_accepts_multiple: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file can accept multiple documents at once. + * + * If this returns %FALSE, you can still pass multiple documents to + * egg_desktop_file_launch(), but that will result in multiple copies + * of the application being launched. See egg_desktop_file_launch() + * for more details. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file) +{ + return (desktop_file->document_code == 'F' || + desktop_file->document_code == 'U'); +} + +/** + * egg_desktop_file_accepts_uris: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file can accept (non-"file:") URIs as documents to + * open. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file) +{ + return (desktop_file->document_code == 'U' || + desktop_file->document_code == 'u'); +} + +static void +append_quoted_word (GString *str, + const char *s, + gboolean in_single_quotes, + gboolean in_double_quotes) +{ + const char *p; + + if (!in_single_quotes && !in_double_quotes) + g_string_append_c (str, '\''); + else if (!in_single_quotes && in_double_quotes) + g_string_append (str, "\"'"); + + if (!strchr (s, '\'')) + g_string_append (str, s); + else + { + for (p = s; *p != '\0'; p++) + { + if (*p == '\'') + g_string_append (str, "'\\''"); + else + g_string_append_c (str, *p); + } + } + + if (!in_single_quotes && !in_double_quotes) + g_string_append_c (str, '\''); + else if (!in_single_quotes && in_double_quotes) + g_string_append (str, "'\""); +} + +static void +do_percent_subst (EggDesktopFile *desktop_file, + char code, + GString *str, + GSList **documents, + gboolean in_single_quotes, + gboolean in_double_quotes) +{ + GSList *d; + char *doc; + + switch (code) + { + case '%': + g_string_append_c (str, '%'); + break; + + case 'F': + case 'U': + for (d = *documents; d; d = d->next) + { + doc = d->data; + g_string_append (str, " "); + append_quoted_word (str, doc, in_single_quotes, in_double_quotes); + } + *documents = NULL; + break; + + case 'f': + case 'u': + if (*documents) + { + doc = (*documents)->data; + g_string_append (str, " "); + append_quoted_word (str, doc, in_single_quotes, in_double_quotes); + *documents = (*documents)->next; + } + break; + + case 'i': + if (desktop_file->icon) + { + g_string_append (str, "--icon "); + append_quoted_word (str, desktop_file->icon, + in_single_quotes, in_double_quotes); + } + break; + + case 'c': + if (desktop_file->name) + { + append_quoted_word (str, desktop_file->name, + in_single_quotes, in_double_quotes); + } + break; + + case 'k': + if (desktop_file->source) + { + append_quoted_word (str, desktop_file->source, + in_single_quotes, in_double_quotes); + } + break; + + case 'D': + case 'N': + case 'd': + case 'n': + case 'v': + case 'm': + /* Deprecated; skip */ + break; + + default: + g_warning ("Unrecognized %%-code '%%%c' in Exec", code); + break; + } +} + +static char * +parse_exec (EggDesktopFile *desktop_file, + GSList **documents, + GError **error) +{ + char *exec, *p, *command; + gboolean escape, single_quot, double_quot; + GString *gs; + + exec = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + error); + if (!exec) + return NULL; + + /* Build the command */ + gs = g_string_new (NULL); + escape = single_quot = double_quot = FALSE; + + for (p = exec; *p != '\0'; p++) + { + if (escape) + { + escape = FALSE; + g_string_append_c (gs, *p); + } + else if (*p == '\\') + { + if (!single_quot) + escape = TRUE; + g_string_append_c (gs, *p); + } + else if (*p == '\'') + { + g_string_append_c (gs, *p); + if (!single_quot && !double_quot) + single_quot = TRUE; + else if (single_quot) + single_quot = FALSE; + } + else if (*p == '"') + { + g_string_append_c (gs, *p); + if (!single_quot && !double_quot) + double_quot = TRUE; + else if (double_quot) + double_quot = FALSE; + } + else if (*p == '%' && p[1]) + { + do_percent_subst (desktop_file, p[1], gs, documents, + single_quot, double_quot); + p++; + } + else + g_string_append_c (gs, *p); + } + + g_free (exec); + command = g_string_free (gs, FALSE); + + /* Prepend "xdg-terminal " if needed (FIXME: use gvfs) */ + if (g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TERMINAL, + NULL)) + { + GError *terminal_error = NULL; + gboolean use_terminal = + g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TERMINAL, + &terminal_error); + if (terminal_error) + { + g_free (command); + g_propagate_error (error, terminal_error); + return NULL; + } + + if (use_terminal) + { + gs = g_string_new ("xdg-terminal "); + append_quoted_word (gs, command, FALSE, FALSE); + g_free (command); + command = g_string_free (gs, FALSE); + } + } + + return command; +} + +static GSList * +translate_document_list (EggDesktopFile *desktop_file, GSList *documents) +{ + gboolean accepts_uris = egg_desktop_file_accepts_uris (desktop_file); + GSList *ret, *d; + + for (d = documents, ret = NULL; d; d = d->next) + { + const char *document = d->data; + gboolean is_uri = !g_path_is_absolute (document); + char *translated; + + if (accepts_uris) + { + if (is_uri) + translated = g_strdup (document); + else + translated = g_filename_to_uri (document, NULL, NULL); + } + else + { + if (is_uri) + translated = g_filename_from_uri (document, NULL, NULL); + else + translated = g_strdup (document); + } + + if (translated) + ret = g_slist_prepend (ret, translated); + } + + return g_slist_reverse (ret); +} + +static void +free_document_list (GSList *documents) +{ + GSList *d; + + for (d = documents; d; d = d->next) + g_free (d->data); + g_slist_free (documents); +} + +/** + * egg_desktop_file_parse_exec: + * @desktop_file: a #EggDesktopFile + * @documents: a list of document paths or URIs + * @error: error pointer + * + * Parses @desktop_file's Exec key, inserting @documents into it, and + * returns the result. + * + * If @documents contains non-file: URIs and @desktop_file does not + * accept URIs, those URIs will be ignored. Likewise, if @documents + * contains more elements than @desktop_file accepts, the extra + * documents will be ignored. + * + * Return value: the parsed Exec string + **/ +char * +egg_desktop_file_parse_exec (EggDesktopFile *desktop_file, + GSList *documents, + GError **error) +{ + GSList *translated, *docs; + char *command; + + docs = translated = translate_document_list (desktop_file, documents); + command = parse_exec (desktop_file, &docs, error); + free_document_list (translated); + + return command; +} + +static gboolean +parse_link (EggDesktopFile *desktop_file, + EggDesktopFile **app_desktop_file, + GSList **documents, + GError **error) +{ + char *url; + GKeyFile *key_file; + + url = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_URL, + error); + if (!url) + return FALSE; + *documents = g_slist_prepend (NULL, url); + + /* FIXME: use gvfs */ + key_file = g_key_file_new (); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NAME, + "xdg-open"); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TYPE, + "Application"); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + "xdg-open %u"); + *app_desktop_file = egg_desktop_file_new_from_key_file (key_file, NULL, NULL); + return TRUE; +} + +#if GTK_CHECK_VERSION (2, 12, 0) +static char * +start_startup_notification (GdkDisplay *display, + EggDesktopFile *desktop_file, + const char *argv0, + int screen, + int workspace, + guint32 launch_time) +{ + static int sequence = 0; + char *startup_id; + char *description, *wmclass; + char *screen_str, *workspace_str; + + if (g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY, + NULL)) + { + if (!g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY, + NULL)) + return NULL; + wmclass = NULL; + } + else + { + wmclass = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS, + NULL); + if (!wmclass) + return NULL; + } + + if (launch_time == (guint32)-1) + launch_time = gdk_x11_display_get_user_time (display); + startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu", + g_get_prgname (), + (unsigned long)getpid (), + g_get_host_name (), + argv0, + sequence++, + (unsigned long)launch_time); + + description = g_strdup_printf (_("Starting %s"), desktop_file->name); + screen_str = g_strdup_printf ("%d", screen); + workspace_str = workspace == -1 ? NULL : g_strdup_printf ("%d", workspace); + + gdk_x11_display_broadcast_startup_message (display, "new", + "ID", startup_id, + "NAME", desktop_file->name, + "SCREEN", screen_str, + "BIN", argv0, + "ICON", desktop_file->icon, + "DESKTOP", workspace_str, + "DESCRIPTION", description, + "WMCLASS", wmclass, + NULL); + + g_free (description); + g_free (wmclass); + g_free (screen_str); + g_free (workspace_str); + + return startup_id; +} + +static void +end_startup_notification (GdkDisplay *display, + const char *startup_id) +{ + gdk_x11_display_broadcast_startup_message (display, "remove", + "ID", startup_id, + NULL); +} + +#define EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH (30 /* seconds */) + +typedef struct { + GdkDisplay *display; + char *startup_id; +} StartupNotificationData; + +static gboolean +startup_notification_timeout (gpointer data) +{ + StartupNotificationData *sn_data = data; + + end_startup_notification (sn_data->display, sn_data->startup_id); + g_object_unref (sn_data->display); + g_free (sn_data->startup_id); + g_free (sn_data); + + return FALSE; +} + +static void +set_startup_notification_timeout (GdkDisplay *display, + const char *startup_id) +{ + StartupNotificationData *sn_data; + + sn_data = g_new (StartupNotificationData, 1); + sn_data->display = g_object_ref (display); + sn_data->startup_id = g_strdup (startup_id); + + g_timeout_add_seconds (EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH, + startup_notification_timeout, sn_data); +} +#endif /* GTK 2.12 */ + +static GPtrArray * +array_putenv (GPtrArray *env, char *variable) +{ + guint i, keylen; + + if (!env) + { + char **envp; + + env = g_ptr_array_new (); + + envp = g_listenv (); + for (i = 0; envp[i]; i++) + { + const char *value; + + value = g_getenv (envp[i]); + g_ptr_array_add (env, g_strdup_printf ("%s=%s", envp[i], + value ? value : "")); + } + g_strfreev (envp); + } + + keylen = strcspn (variable, "="); + + /* Remove old value of key */ + for (i = 0; i < env->len; i++) + { + char *envvar = env->pdata[i]; + + if (!strncmp (envvar, variable, keylen) && envvar[keylen] == '=') + { + g_free (envvar); + g_ptr_array_remove_index_fast (env, i); + break; + } + } + + /* Add new value */ + g_ptr_array_add (env, g_strdup (variable)); + + return env; +} + +static gboolean +egg_desktop_file_launchv (EggDesktopFile *desktop_file, + GSList *documents, va_list args, + GError **error) +{ + EggDesktopFileLaunchOption option; + GSList *translated_documents = NULL, *docs = NULL; + char *command, **argv; + int argc, i, screen_num; + gboolean success, current_success; + GdkDisplay *display; + char *startup_id; + + GPtrArray *env = NULL; + char **variables = NULL; + GdkScreen *screen = NULL; + int workspace = -1; + const char *directory = NULL; + guint32 launch_time = (guint32)-1; + GSpawnFlags flags = G_SPAWN_SEARCH_PATH; + GSpawnChildSetupFunc setup_func = NULL; + gpointer setup_data = NULL; + + GPid *ret_pid = NULL; + int *ret_stdin = NULL, *ret_stdout = NULL, *ret_stderr = NULL; + char **ret_startup_id = NULL; + + if (documents && desktop_file->document_code == 0) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + _("Application does not accept documents on command line")); + return FALSE; + } + + /* Read the options: technically it's incorrect for the caller to + * NULL-terminate the list of options (rather than 0-terminating + * it), but NULL-terminating lets us use G_GNUC_NULL_TERMINATED, + * it's more consistent with other glib/gtk methods, and it will + * work as long as sizeof (int) <= sizeof (NULL), and NULL is + * represented as 0. (Which is true everywhere we care about.) + */ + while ((option = va_arg (args, EggDesktopFileLaunchOption))) + { + switch (option) + { + case EGG_DESKTOP_FILE_LAUNCH_CLEARENV: + if (env) + g_ptr_array_free (env, TRUE); + env = g_ptr_array_new (); + break; + case EGG_DESKTOP_FILE_LAUNCH_PUTENV: + variables = va_arg (args, char **); + for (i = 0; variables[i]; i++) + env = array_putenv (env, variables[i]); + break; + + case EGG_DESKTOP_FILE_LAUNCH_SCREEN: + screen = va_arg (args, GdkScreen *); + break; + case EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: + workspace = va_arg (args, int); + break; + + case EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: + directory = va_arg (args, const char *); + break; + case EGG_DESKTOP_FILE_LAUNCH_TIME: + launch_time = va_arg (args, guint32); + break; + case EGG_DESKTOP_FILE_LAUNCH_FLAGS: + flags |= va_arg (args, GSpawnFlags); + /* Make sure they didn't set any flags that don't make sense. */ + flags &= ~G_SPAWN_FILE_AND_ARGV_ZERO; + break; + case EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC: + setup_func = va_arg (args, GSpawnChildSetupFunc); + setup_data = va_arg (args, gpointer); + break; + + case EGG_DESKTOP_FILE_LAUNCH_RETURN_PID: + ret_pid = va_arg (args, GPid *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE: + ret_stdin = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE: + ret_stdout = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE: + ret_stderr = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID: + ret_startup_id = va_arg (args, char **); + break; + + default: + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION, + _("Unrecognized launch option: %d"), + GPOINTER_TO_INT (option)); + success = FALSE; + goto out; + } + } + + if (screen) + { + char *display_name = gdk_screen_make_display_name (screen); + char *display_env = g_strdup_printf ("DISPLAY=%s", display_name); + env = array_putenv (env, display_env); + g_free (display_name); + g_free (display_env); + + display = gdk_screen_get_display (screen); + } + else + { + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (display); + } + screen_num = gdk_screen_get_number (screen); + + translated_documents = translate_document_list (desktop_file, documents); + docs = translated_documents; + + success = FALSE; + + do + { + command = parse_exec (desktop_file, &docs, error); + if (!command) + goto out; + + if (!g_shell_parse_argv (command, &argc, &argv, error)) + { + g_free (command); + goto out; + } + g_free (command); + +#if GTK_CHECK_VERSION (2, 12, 0) + startup_id = start_startup_notification (display, desktop_file, + argv[0], screen_num, + workspace, launch_time); + if (startup_id) + { + char *startup_id_env = g_strdup_printf ("DESKTOP_STARTUP_ID=%s", + startup_id); + env = array_putenv (env, startup_id_env); + g_free (startup_id_env); + } +#else + startup_id = NULL; +#endif /* GTK 2.12 */ + + if (env != NULL) + g_ptr_array_add (env, NULL); + + current_success = + g_spawn_async_with_pipes (directory, + argv, + env ? (char **)(env->pdata) : NULL, + flags, + setup_func, setup_data, + ret_pid, + ret_stdin, ret_stdout, ret_stderr, + error); + g_strfreev (argv); + + if (startup_id) + { +#if GTK_CHECK_VERSION (2, 12, 0) + if (current_success) + { + set_startup_notification_timeout (display, startup_id); + + if (ret_startup_id) + *ret_startup_id = startup_id; + else + g_free (startup_id); + } + else +#endif /* GTK 2.12 */ + g_free (startup_id); + } + else if (ret_startup_id) + *ret_startup_id = NULL; + + if (current_success) + { + /* If we successfully launch any instances of the app, make + * sure we return TRUE and don't set @error. + */ + success = TRUE; + error = NULL; + + /* Also, only set the output params on the first one */ + ret_pid = NULL; + ret_stdin = ret_stdout = ret_stderr = NULL; + ret_startup_id = NULL; + } + } + while (docs && current_success); + + out: + if (env) + { + g_strfreev ((char **)env->pdata); + g_ptr_array_free (env, FALSE); + } + free_document_list (translated_documents); + + return success; +} + +/** + * egg_desktop_file_launch: + * @desktop_file: an #EggDesktopFile + * @documents: a list of URIs or paths to documents to open + * @error: error pointer + * @...: additional options + * + * Launches @desktop_file with the given arguments. Additional options + * can be specified as follows: + * + * %EGG_DESKTOP_FILE_LAUNCH_CLEARENV: (no arguments) + * clears the environment in the child process + * %EGG_DESKTOP_FILE_LAUNCH_PUTENV: (char **variables) + * adds the NAME=VALUE strings in the given %NULL-terminated + * array to the child process's environment + * %EGG_DESKTOP_FILE_LAUNCH_SCREEN: (GdkScreen *screen) + * causes the application to be launched on the given screen + * %EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: (int workspace) + * causes the application to be launched on the given workspace + * %EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: (char *dir) + * causes the application to be launched in the given directory + * %EGG_DESKTOP_FILE_LAUNCH_TIME: (guint32 launch_time) + * sets the "launch time" for the application. If the user + * interacts with another window after @launch_time but before + * the launched application creates its first window, the window + * manager may choose to not give focus to the new application. + * Passing 0 for @launch_time will explicitly request that the + * application not receive focus. + * %EGG_DESKTOP_FILE_LAUNCH_FLAGS (GSpawnFlags flags) + * Sets additional #GSpawnFlags to use. See g_spawn_async() for + * more details. + * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC (GSpawnChildSetupFunc, gpointer) + * Sets the child setup callback and the data to pass to it. + * (See g_spawn_async() for more details.) + * + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID (GPid **pid) + * On a successful launch, sets *@pid to the PID of the launched + * application. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID (char **startup_id) + * On a successful launch, sets *@startup_id to the Startup + * Notification "startup id" of the launched application. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stdin. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stdout. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stderr. + * + * The options should be terminated with a single %NULL. + * + * If @documents contains multiple documents, but + * egg_desktop_file_accepts_multiple() returns %FALSE for + * @desktop_file, then egg_desktop_file_launch() will actually launch + * multiple instances of the application. In that case, the return + * value (as well as any values passed via + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, etc) will only reflect the + * first instance of the application that was launched (but the + * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC will be called for each + * instance). + * + * Return value: %TRUE if the application was successfully launched. + **/ +gboolean +egg_desktop_file_launch (EggDesktopFile *desktop_file, + GSList *documents, GError **error, + ...) +{ + va_list args; + gboolean success; + EggDesktopFile *app_desktop_file; + + switch (desktop_file->type) + { + case EGG_DESKTOP_FILE_TYPE_APPLICATION: + va_start (args, error); + success = egg_desktop_file_launchv (desktop_file, documents, + args, error); + va_end (args); + break; + + case EGG_DESKTOP_FILE_TYPE_LINK: + if (documents) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + _("Can't pass document URIs to a 'Type=Link' desktop entry")); + return FALSE; + } + + if (!parse_link (desktop_file, &app_desktop_file, &documents, error)) + return FALSE; + + va_start (args, error); + success = egg_desktop_file_launchv (app_desktop_file, documents, + args, error); + va_end (args); + + egg_desktop_file_free (app_desktop_file); + free_document_list (documents); + break; + + default: + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + _("Not a launchable item")); + success = FALSE; + break; + } + + return success; +} + + +GQuark +egg_desktop_file_error_quark (void) +{ + return g_quark_from_static_string ("egg-desktop_file-error-quark"); +} + + +G_LOCK_DEFINE_STATIC (egg_desktop_file); +static EggDesktopFile *egg_desktop_file; + +/** + * egg_set_desktop_file: + * @desktop_file_path: path to the application's desktop file + * + * Creates an #EggDesktopFile for the application from the data at + * @desktop_file_path. This will also call g_set_application_name() + * with the localized application name from the desktop file, and + * gtk_window_set_default_icon_name() or + * gtk_window_set_default_icon_from_file() with the application's + * icon. Other code may use additional information from the desktop + * file. + * + * Note that for thread safety reasons, this function can only + * be called once. + **/ +void +egg_set_desktop_file (const char *desktop_file_path) +{ + GError *error = NULL; + + G_LOCK (egg_desktop_file); + if (egg_desktop_file) + egg_desktop_file_free (egg_desktop_file); + + egg_desktop_file = egg_desktop_file_new (desktop_file_path, &error); + if (error) + { + g_warning ("Could not load desktop file '%s': %s", + desktop_file_path, error->message); + g_error_free (error); + } + + if (egg_desktop_file) { + /* Set localized application name and default window icon */ + if (egg_desktop_file->name) + g_set_application_name (egg_desktop_file->name); + if (egg_desktop_file->icon) + { + if (g_path_is_absolute (egg_desktop_file->icon)) + gtk_window_set_default_icon_from_file (egg_desktop_file->icon, NULL); + else + gtk_window_set_default_icon_name (egg_desktop_file->icon); + } + } + + G_UNLOCK (egg_desktop_file); +} + +/** + * egg_get_desktop_file: + * + * Gets the application's #EggDesktopFile, as set by + * egg_set_desktop_file(). + * + * Return value: the #EggDesktopFile, or %NULL if it hasn't been set. + **/ +EggDesktopFile * +egg_get_desktop_file (void) +{ + EggDesktopFile *retval; + + G_LOCK (egg_desktop_file); + retval = egg_desktop_file; + G_UNLOCK (egg_desktop_file); + + return retval; +} diff --git a/cut-n-paste/smclient/eggdesktopfile.h b/cut-n-paste/smclient/eggdesktopfile.h new file mode 100644 index 00000000..2be36210 --- /dev/null +++ b/cut-n-paste/smclient/eggdesktopfile.h @@ -0,0 +1,159 @@ +/* eggdesktopfile.h - Freedesktop.Org Desktop Files + * Copyright (C) 2007 Novell, Inc. + * + * 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 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. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EGG_DESKTOP_FILE_H__ +#define __EGG_DESKTOP_FILE_H__ + +#include <glib.h> + +G_BEGIN_DECLS + +typedef struct EggDesktopFile EggDesktopFile; + +typedef enum { + EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED, + + EGG_DESKTOP_FILE_TYPE_APPLICATION, + EGG_DESKTOP_FILE_TYPE_LINK, + EGG_DESKTOP_FILE_TYPE_DIRECTORY +} EggDesktopFileType; + +EggDesktopFile *egg_desktop_file_new (const char *desktop_file_path, + GError **error); + +EggDesktopFile *egg_desktop_file_new_from_data_dirs (const char *desktop_file_path, + GError **error); +EggDesktopFile *egg_desktop_file_new_from_dirs (const char *desktop_file_path, + const char **search_dirs, + GError **error); +EggDesktopFile *egg_desktop_file_new_from_key_file (GKeyFile *key_file, + const char *source, + GError **error); + +void egg_desktop_file_free (EggDesktopFile *desktop_file); + +const char *egg_desktop_file_get_source (EggDesktopFile *desktop_file); + +EggDesktopFileType egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file); + +const char *egg_desktop_file_get_name (EggDesktopFile *desktop_file); +const char *egg_desktop_file_get_icon (EggDesktopFile *desktop_file); + +gboolean egg_desktop_file_can_launch (EggDesktopFile *desktop_file, + const char *desktop_environment); + +gboolean egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file); +gboolean egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file); +gboolean egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file); + +char *egg_desktop_file_parse_exec (EggDesktopFile *desktop_file, + GSList *documents, + GError **error); + +gboolean egg_desktop_file_launch (EggDesktopFile *desktop_file, + GSList *documents, + GError **error, + ...) G_GNUC_NULL_TERMINATED; + +typedef enum { + EGG_DESKTOP_FILE_LAUNCH_CLEARENV = 1, + EGG_DESKTOP_FILE_LAUNCH_PUTENV, + EGG_DESKTOP_FILE_LAUNCH_SCREEN, + EGG_DESKTOP_FILE_LAUNCH_WORKSPACE, + EGG_DESKTOP_FILE_LAUNCH_DIRECTORY, + EGG_DESKTOP_FILE_LAUNCH_TIME, + EGG_DESKTOP_FILE_LAUNCH_FLAGS, + EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC, + EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID +} EggDesktopFileLaunchOption; + +/* Standard Keys */ +#define EGG_DESKTOP_FILE_GROUP "Desktop Entry" + +#define EGG_DESKTOP_FILE_KEY_TYPE "Type" +#define EGG_DESKTOP_FILE_KEY_VERSION "Version" +#define EGG_DESKTOP_FILE_KEY_NAME "Name" +#define EGG_DESKTOP_FILE_KEY_GENERIC_NAME "GenericName" +#define EGG_DESKTOP_FILE_KEY_NO_DISPLAY "NoDisplay" +#define EGG_DESKTOP_FILE_KEY_COMMENT "Comment" +#define EGG_DESKTOP_FILE_KEY_ICON "Icon" +#define EGG_DESKTOP_FILE_KEY_HIDDEN "Hidden" +#define EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN "OnlyShowIn" +#define EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN "NotShowIn" +#define EGG_DESKTOP_FILE_KEY_TRY_EXEC "TryExec" +#define EGG_DESKTOP_FILE_KEY_EXEC "Exec" +#define EGG_DESKTOP_FILE_KEY_PATH "Path" +#define EGG_DESKTOP_FILE_KEY_TERMINAL "Terminal" +#define EGG_DESKTOP_FILE_KEY_MIME_TYPE "MimeType" +#define EGG_DESKTOP_FILE_KEY_CATEGORIES "Categories" +#define EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY "StartupNotify" +#define EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS "StartupWMClass" +#define EGG_DESKTOP_FILE_KEY_URL "URL" + +/* Accessors */ +gboolean egg_desktop_file_has_key (EggDesktopFile *desktop_file, + const char *key, + GError **error); +char *egg_desktop_file_get_string (EggDesktopFile *desktop_file, + const char *key, + GError **error) G_GNUC_MALLOC; +char *egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + GError **error) G_GNUC_MALLOC; +gboolean egg_desktop_file_get_boolean (EggDesktopFile *desktop_file, + const char *key, + GError **error); +double egg_desktop_file_get_numeric (EggDesktopFile *desktop_file, + const char *key, + GError **error); +char **egg_desktop_file_get_string_list (EggDesktopFile *desktop_file, + const char *key, + gsize *length, + GError **error) G_GNUC_MALLOC; +char **egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + gsize *length, + GError **error) G_GNUC_MALLOC; + + +/* Errors */ +#define EGG_DESKTOP_FILE_ERROR egg_desktop_file_error_quark() + +GQuark egg_desktop_file_error_quark (void); + +typedef enum { + EGG_DESKTOP_FILE_ERROR_INVALID, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION +} EggDesktopFileError; + +/* Global application desktop file */ +void egg_set_desktop_file (const char *desktop_file_path); +EggDesktopFile *egg_get_desktop_file (void); + + +G_END_DECLS + +#endif /* __EGG_DESKTOP_FILE_H__ */ diff --git a/cut-n-paste/smclient/eggsmclient-osx.c b/cut-n-paste/smclient/eggsmclient-osx.c new file mode 100644 index 00000000..5428c09f --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient-osx.c @@ -0,0 +1,235 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * Copyright (C) 2008 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* EggSMClientOSX + * + * For details on the OS X logout process, see: + * http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/BootProcess.html#//apple_ref/doc/uid/20002130-114618 + * + * EggSMClientOSX registers for the kAEQuitApplication AppleEvent; the + * handler we register (quit_requested()) will be invoked from inside + * the quartz event-handling code (specifically, from inside + * [NSApplication nextEventMatchingMask]) when an AppleEvent arrives. + * We use AESuspendTheCurrentEvent() and AEResumeTheCurrentEvent() to + * allow asynchronous / non-main-loop-reentering processing of the + * quit request. (These are part of the Carbon framework; it doesn't + * seem to be possible to handle AppleEvents asynchronously from + * Cocoa.) + */ + +#include "config.h" + +#include "eggsmclient-private.h" +#include <gdk/gdkquartz.h> +#include <Carbon/Carbon.h> +#include <CoreServices/CoreServices.h> + +#define EGG_TYPE_SM_CLIENT_OSX (egg_sm_client_osx_get_type ()) +#define EGG_SM_CLIENT_OSX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_OSX, EggSMClientOSX)) +#define EGG_SM_CLIENT_OSX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_OSX, EggSMClientOSXClass)) +#define EGG_IS_SM_CLIENT_OSX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_OSX)) +#define EGG_IS_SM_CLIENT_OSX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_OSX)) +#define EGG_SM_CLIENT_OSX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_OSX, EggSMClientOSXClass)) + +typedef struct _EggSMClientOSX EggSMClientOSX; +typedef struct _EggSMClientOSXClass EggSMClientOSXClass; + +struct _EggSMClientOSX { + EggSMClient parent; + + AppleEvent quit_event, quit_reply; + gboolean quit_requested, quitting; +}; + +struct _EggSMClientOSXClass +{ + EggSMClientClass parent_class; + +}; + +static void sm_client_osx_startup (EggSMClient *client, + const char *client_id); +static void sm_client_osx_will_quit (EggSMClient *client, + gboolean will_quit); +static gboolean sm_client_osx_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + +static pascal OSErr quit_requested (const AppleEvent *, AppleEvent *, long); + +G_DEFINE_TYPE (EggSMClientOSX, egg_sm_client_osx, EGG_TYPE_SM_CLIENT) + +static void +egg_sm_client_osx_init (EggSMClientOSX *osx) +{ + ; +} + +static void +egg_sm_client_osx_class_init (EggSMClientOSXClass *klass) +{ + EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass); + + sm_client_class->startup = sm_client_osx_startup; + sm_client_class->will_quit = sm_client_osx_will_quit; + sm_client_class->end_session = sm_client_osx_end_session; +} + +EggSMClient * +egg_sm_client_osx_new (void) +{ + return g_object_new (EGG_TYPE_SM_CLIENT_OSX, NULL); +} + +static void +sm_client_osx_startup (EggSMClient *client, + const char *client_id) +{ + AEInstallEventHandler (kCoreEventClass, kAEQuitApplication, + NewAEEventHandlerUPP (quit_requested), + (long)GPOINTER_TO_SIZE (client), false); +} + +static gboolean +idle_quit_requested (gpointer client) +{ + egg_sm_client_quit_requested (client); + return FALSE; +} + +static pascal OSErr +quit_requested (const AppleEvent *aevt, AppleEvent *reply, long refcon) +{ + EggSMClient *client = GSIZE_TO_POINTER ((gsize)refcon); + EggSMClientOSX *osx = GSIZE_TO_POINTER ((gsize)refcon); + + g_return_val_if_fail (!osx->quit_requested, userCanceledErr); + + /* FIXME AEInteractWithUser? */ + + osx->quit_requested = TRUE; + AEDuplicateDesc (aevt, &osx->quit_event); + AEDuplicateDesc (reply, &osx->quit_reply); + AESuspendTheCurrentEvent (aevt); + + /* Don't emit the "quit_requested" signal immediately, since we're + * called from a weird point in the guts of gdkeventloop-quartz.c + */ + g_idle_add (idle_quit_requested, client); + return noErr; +} + +static pascal OSErr +quit_requested_resumed (const AppleEvent *aevt, AppleEvent *reply, long refcon) +{ + EggSMClientOSX *osx = GSIZE_TO_POINTER ((gsize)refcon); + + osx->quit_requested = FALSE; + return osx->quitting ? noErr : userCanceledErr; +} + +static gboolean +idle_will_quit (gpointer client) +{ + EggSMClientOSX *osx = (EggSMClientOSX *)client; + + /* Resume the event with a new handler that will return a value to + * the system. + */ + AEResumeTheCurrentEvent (&osx->quit_event, &osx->quit_reply, + NewAEEventHandlerUPP (quit_requested_resumed), + (long)GPOINTER_TO_SIZE (client)); + AEDisposeDesc (&osx->quit_event); + AEDisposeDesc (&osx->quit_reply); + + if (osx->quitting) + egg_sm_client_quit (client); + return FALSE; +} + +static void +sm_client_osx_will_quit (EggSMClient *client, + gboolean will_quit) +{ + EggSMClientOSX *osx = (EggSMClientOSX *)client; + + g_return_if_fail (osx->quit_requested); + + osx->quitting = will_quit; + + /* Finish in an idle handler since the caller might have called + * egg_sm_client_will_quit() from inside the "quit_requested" signal + * handler, but may not expect the "quit" signal to arrive during + * the _will_quit() call. + */ + g_idle_add (idle_will_quit, client); +} + +static gboolean +sm_client_osx_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation) +{ + static const ProcessSerialNumber loginwindow_psn = { 0, kSystemProcess }; + AppleEvent event = { typeNull, NULL }, reply = { typeNull, NULL }; + AEAddressDesc target; + AEEventID id; + OSErr err; + + switch (style) + { + case EGG_SM_CLIENT_END_SESSION_DEFAULT: + case EGG_SM_CLIENT_LOGOUT: + id = request_confirmation ? kAELogOut : kAEReallyLogOut; + break; + case EGG_SM_CLIENT_REBOOT: + id = request_confirmation ? kAEShowRestartDialog : kAERestart; + break; + case EGG_SM_CLIENT_SHUTDOWN: + id = request_confirmation ? kAEShowShutdownDialog : kAEShutDown; + break; + } + + err = AECreateDesc (typeProcessSerialNumber, &loginwindow_psn, + sizeof (loginwindow_psn), &target); + if (err != noErr) + { + g_warning ("Could not create descriptor for loginwindow: %d", err); + return FALSE; + } + + err = AECreateAppleEvent (kCoreEventClass, id, &target, + kAutoGenerateReturnID, kAnyTransactionID, + &event); + AEDisposeDesc (&target); + if (err != noErr) + { + g_warning ("Could not create logout AppleEvent: %d", err); + return FALSE; + } + + err = AESend (&event, &reply, kAENoReply, kAENormalPriority, + kAEDefaultTimeout, NULL, NULL); + AEDisposeDesc (&event); + if (err == noErr) + AEDisposeDesc (&reply); + + return err == noErr; +} diff --git a/cut-n-paste/smclient/eggsmclient-private.h b/cut-n-paste/smclient/eggsmclient-private.h new file mode 100644 index 00000000..fc3a0a2d --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient-private.h @@ -0,0 +1,53 @@ +/* eggsmclient-private.h + * Copyright (C) 2007 Novell, Inc. + * + * 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 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. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EGG_SM_CLIENT_PRIVATE_H__ +#define __EGG_SM_CLIENT_PRIVATE_H__ + +#include <gdkconfig.h> +#include "eggsmclient.h" + +G_BEGIN_DECLS + +GKeyFile *egg_sm_client_save_state (EggSMClient *client); +void egg_sm_client_quit_requested (EggSMClient *client); +void egg_sm_client_quit_cancelled (EggSMClient *client); +void egg_sm_client_quit (EggSMClient *client); + +#if defined (GDK_WINDOWING_X11) +# ifdef EGG_SM_CLIENT_BACKEND_XSMP +GType egg_sm_client_xsmp_get_type (void); +EggSMClient *egg_sm_client_xsmp_new (void); +# endif +# ifdef EGG_SM_CLIENT_BACKEND_DBUS +GType egg_sm_client_dbus_get_type (void); +EggSMClient *egg_sm_client_dbus_new (void); +# endif +#elif defined (GDK_WINDOWING_WIN32) +GType egg_sm_client_win32_get_type (void); +EggSMClient *egg_sm_client_win32_new (void); +#elif defined (GDK_WINDOWING_QUARTZ) +GType egg_sm_client_osx_get_type (void); +EggSMClient *egg_sm_client_osx_new (void); +#endif + +G_END_DECLS + + +#endif /* __EGG_SM_CLIENT_PRIVATE_H__ */ diff --git a/cut-n-paste/smclient/eggsmclient-win32.c b/cut-n-paste/smclient/eggsmclient-win32.c new file mode 100644 index 00000000..3fec775c --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient-win32.c @@ -0,0 +1,353 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* EggSMClientWin32 + * + * For details on the Windows XP logout process, see: + * http://msdn.microsoft.com/en-us/library/aa376876.aspx. + * + * Vista adds some new APIs which EggSMClient does not make use of; see + * http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx + * + * When shutting down, Windows sends every top-level window a + * WM_QUERYENDSESSION event, which the application must respond to + * synchronously, saying whether or not it will quit. To avoid main + * loop re-entrancy problems (and to avoid having to muck about too + * much with the guts of the gdk-win32 main loop), we watch for this + * event in a separate thread, which then signals the main thread and + * waits for the main thread to handle the event. Since we don't want + * to require g_thread_init() to be called, we do this all using + * Windows-specific thread methods. + * + * After the application handles the WM_QUERYENDSESSION event, + * Windows then sends it a WM_ENDSESSION event with a TRUE or FALSE + * parameter indicating whether the session is or is not actually + * going to end now. We handle this from the other thread as well. + * + * As mentioned above, Vista introduces several additional new APIs + * that don't fit into the (current) EggSMClient API. Windows also has + * an entirely separate shutdown-notification scheme for non-GUI apps, + * which we also don't handle here. + */ + +#include "config.h" + +#include "eggsmclient-private.h" +#include <gdk/gdk.h> + +#define WIN32_LEAN_AND_MEAN +#define UNICODE +#include <windows.h> +#include <process.h> + +#define EGG_TYPE_SM_CLIENT_WIN32 (egg_sm_client_win32_get_type ()) +#define EGG_SM_CLIENT_WIN32(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32)) +#define EGG_SM_CLIENT_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class)) +#define EGG_IS_SM_CLIENT_WIN32(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_WIN32)) +#define EGG_IS_SM_CLIENT_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_WIN32)) +#define EGG_SM_CLIENT_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class)) + +typedef struct _EggSMClientWin32 EggSMClientWin32; +typedef struct _EggSMClientWin32Class EggSMClientWin32Class; + +struct _EggSMClientWin32 { + EggSMClient parent; + + HANDLE message_event, response_event; + + volatile GSourceFunc event; + volatile gboolean will_quit; +}; + +struct _EggSMClientWin32Class +{ + EggSMClientClass parent_class; + +}; + +static void sm_client_win32_startup (EggSMClient *client, + const char *client_id); +static void sm_client_win32_will_quit (EggSMClient *client, + gboolean will_quit); +static gboolean sm_client_win32_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + +static GSource *g_win32_handle_source_add (HANDLE handle, GSourceFunc callback, + gpointer user_data); +static gboolean got_message (gpointer user_data); +static void sm_client_thread (gpointer data); + +G_DEFINE_TYPE (EggSMClientWin32, egg_sm_client_win32, EGG_TYPE_SM_CLIENT) + +static void +egg_sm_client_win32_init (EggSMClientWin32 *win32) +{ + ; +} + +static void +egg_sm_client_win32_class_init (EggSMClientWin32Class *klass) +{ + EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass); + + sm_client_class->startup = sm_client_win32_startup; + sm_client_class->will_quit = sm_client_win32_will_quit; + sm_client_class->end_session = sm_client_win32_end_session; +} + +EggSMClient * +egg_sm_client_win32_new (void) +{ + return g_object_new (EGG_TYPE_SM_CLIENT_WIN32, NULL); +} + +static void +sm_client_win32_startup (EggSMClient *client, + const char *client_id) +{ + EggSMClientWin32 *win32 = (EggSMClientWin32 *)client; + + win32->message_event = CreateEvent (NULL, FALSE, FALSE, NULL); + win32->response_event = CreateEvent (NULL, FALSE, FALSE, NULL); + g_win32_handle_source_add (win32->message_event, got_message, win32); + _beginthread (sm_client_thread, 0, client); +} + +static void +sm_client_win32_will_quit (EggSMClient *client, + gboolean will_quit) +{ + EggSMClientWin32 *win32 = (EggSMClientWin32 *)client; + + win32->will_quit = will_quit; + SetEvent (win32->response_event); +} + +static gboolean +sm_client_win32_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation) +{ + UINT uFlags = EWX_LOGOFF; + + switch (style) + { + case EGG_SM_CLIENT_END_SESSION_DEFAULT: + case EGG_SM_CLIENT_LOGOUT: + uFlags = EWX_LOGOFF; + break; + case EGG_SM_CLIENT_REBOOT: + uFlags = EWX_REBOOT; + break; + case EGG_SM_CLIENT_SHUTDOWN: + uFlags = EWX_POWEROFF; + break; + } + + /* There's no way to make ExitWindowsEx() show a logout dialog, so + * we ignore @request_confirmation. + */ + +#ifdef SHTDN_REASON_FLAG_PLANNED + ExitWindowsEx (uFlags, SHTDN_REASON_FLAG_PLANNED); +#else + ExitWindowsEx (uFlags, 0); +#endif + + return TRUE; +} + + +/* callbacks from logout-listener thread */ + +static gboolean +emit_quit_requested (gpointer smclient) +{ + gdk_threads_enter (); + egg_sm_client_quit_requested (smclient); + gdk_threads_leave (); + + return FALSE; +} + +static gboolean +emit_quit (gpointer smclient) +{ + EggSMClientWin32 *win32 = smclient; + + gdk_threads_enter (); + egg_sm_client_quit (smclient); + gdk_threads_leave (); + + SetEvent (win32->response_event); + return FALSE; +} + +static gboolean +emit_quit_cancelled (gpointer smclient) +{ + EggSMClientWin32 *win32 = smclient; + + gdk_threads_enter (); + egg_sm_client_quit_cancelled (smclient); + gdk_threads_leave (); + + SetEvent (win32->response_event); + return FALSE; +} + +static gboolean +got_message (gpointer smclient) +{ + EggSMClientWin32 *win32 = smclient; + + win32->event (win32); + return TRUE; +} + +/* Windows HANDLE GSource */ + +typedef struct { + GSource source; + GPollFD pollfd; +} GWin32HandleSource; + +static gboolean +g_win32_handle_source_prepare (GSource *source, gint *timeout) +{ + *timeout = -1; + return FALSE; +} + +static gboolean +g_win32_handle_source_check (GSource *source) +{ + GWin32HandleSource *hsource = (GWin32HandleSource *)source; + + return hsource->pollfd.revents; +} + +static gboolean +g_win32_handle_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) +{ + return (*callback) (user_data); +} + +static void +g_win32_handle_source_finalize (GSource *source) +{ + ; +} + +GSourceFuncs g_win32_handle_source_funcs = { + g_win32_handle_source_prepare, + g_win32_handle_source_check, + g_win32_handle_source_dispatch, + g_win32_handle_source_finalize +}; + +static GSource * +g_win32_handle_source_add (HANDLE handle, GSourceFunc callback, gpointer user_data) +{ + GWin32HandleSource *hsource; + GSource *source; + + source = g_source_new (&g_win32_handle_source_funcs, sizeof (GWin32HandleSource)); + hsource = (GWin32HandleSource *)source; + hsource->pollfd.fd = (int)handle; + hsource->pollfd.events = G_IO_IN; + hsource->pollfd.revents = 0; + g_source_add_poll (source, &hsource->pollfd); + + g_source_set_callback (source, callback, user_data, NULL); + g_source_attach (source, NULL); + return source; +} + +/* logout-listener thread */ + +LRESULT CALLBACK +sm_client_win32_window_procedure (HWND hwnd, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + EggSMClientWin32 *win32 = + (EggSMClientWin32 *)GetWindowLongPtr (hwnd, GWLP_USERDATA); + + switch (message) + { + case WM_QUERYENDSESSION: + win32->event = emit_quit_requested; + SetEvent (win32->message_event); + + WaitForSingleObject (win32->response_event, INFINITE); + return win32->will_quit; + + case WM_ENDSESSION: + if (wParam) + { + /* The session is ending */ + win32->event = emit_quit; + } + else + { + /* Nope, the session *isn't* ending */ + win32->event = emit_quit_cancelled; + } + + SetEvent (win32->message_event); + WaitForSingleObject (win32->response_event, INFINITE); + + return 0; + + default: + return DefWindowProc (hwnd, message, wParam, lParam); + } +} + +static void +sm_client_thread (gpointer smclient) +{ + HINSTANCE instance; + WNDCLASSEXW wcl; + ATOM klass; + HWND window; + MSG msg; + + instance = GetModuleHandle (NULL); + + memset (&wcl, 0, sizeof (WNDCLASSEX)); + wcl.cbSize = sizeof (WNDCLASSEX); + wcl.lpfnWndProc = sm_client_win32_window_procedure; + wcl.hInstance = instance; + wcl.lpszClassName = L"EggSmClientWindow"; + klass = RegisterClassEx (&wcl); + + window = CreateWindowEx (0, MAKEINTRESOURCE (klass), + L"EggSmClientWindow", 0, + 10, 10, 50, 50, GetDesktopWindow (), + NULL, instance, NULL); + SetWindowLongPtr (window, GWLP_USERDATA, (LONG_PTR)smclient); + + /* main loop */ + while (GetMessage (&msg, NULL, 0, 0)) + DispatchMessage (&msg); +} diff --git a/cut-n-paste/smclient/eggsmclient-xsmp.c b/cut-n-paste/smclient/eggsmclient-xsmp.c new file mode 100644 index 00000000..90f201d9 --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient-xsmp.c @@ -0,0 +1,1370 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * + * Inspired by various other pieces of code including GsmClient (C) + * 2001 Havoc Pennington, MateClient (C) 1998 Carsten Schaar, and twm + * session code (C) 1998 The Open Group. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "eggsmclient.h" +#include "eggsmclient-private.h" + +#include "eggdesktopfile.h" + +#include <errno.h> +#include <fcntl.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <X11/SM/SMlib.h> + +#include <gdk/gdk.h> + +#define EGG_TYPE_SM_CLIENT_XSMP (egg_sm_client_xsmp_get_type ()) +#define EGG_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP)) +#define EGG_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)) +#define EGG_IS_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP)) +#define EGG_IS_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP)) +#define EGG_SM_CLIENT_XSMP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)) + +typedef struct _EggSMClientXSMP EggSMClientXSMP; +typedef struct _EggSMClientXSMPClass EggSMClientXSMPClass; + +/* These mostly correspond to the similarly-named states in section + * 9.1 of the XSMP spec. Some of the states there aren't represented + * here, because we don't need them. SHUTDOWN_CANCELLED is slightly + * different from the spec; we use it when the client is IDLE after a + * ShutdownCancelled message, but the application is still interacting + * and doesn't know the shutdown has been cancelled yet. + */ +typedef enum +{ + XSMP_STATE_IDLE, + XSMP_STATE_SAVE_YOURSELF, + XSMP_STATE_INTERACT_REQUEST, + XSMP_STATE_INTERACT, + XSMP_STATE_SAVE_YOURSELF_DONE, + XSMP_STATE_SHUTDOWN_CANCELLED, + XSMP_STATE_CONNECTION_CLOSED +} EggSMClientXSMPState; + +static const char *state_names[] = { + "idle", + "save-yourself", + "interact-request", + "interact", + "save-yourself-done", + "shutdown-cancelled", + "connection-closed" +}; + +#define EGG_SM_CLIENT_XSMP_STATE(xsmp) (state_names[(xsmp)->state]) + +struct _EggSMClientXSMP +{ + EggSMClient parent; + + SmcConn connection; + char *client_id; + + EggSMClientXSMPState state; + char **restart_command; + gboolean set_restart_command; + int restart_style; + + guint idle; + + /* Current SaveYourself state */ + guint expecting_initial_save_yourself : 1; + guint need_save_state : 1; + guint need_quit_requested : 1; + guint interact_errors : 1; + guint shutting_down : 1; + + /* Todo list */ + guint waiting_to_set_initial_properties : 1; + guint waiting_to_emit_quit : 1; + guint waiting_to_emit_quit_cancelled : 1; + guint waiting_to_save_myself : 1; + +}; + +struct _EggSMClientXSMPClass +{ + EggSMClientClass parent_class; + +}; + +static void sm_client_xsmp_startup (EggSMClient *client, + const char *client_id); +static void sm_client_xsmp_set_restart_command (EggSMClient *client, + int argc, + const char **argv); +static void sm_client_xsmp_will_quit (EggSMClient *client, + gboolean will_quit); +static gboolean sm_client_xsmp_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + +static void xsmp_save_yourself (SmcConn smc_conn, + SmPointer client_data, + int save_style, + Bool shutdown, + int interact_style, + Bool fast); +static void xsmp_die (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_save_complete (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_shutdown_cancelled (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_interact (SmcConn smc_conn, + SmPointer client_data); + +static SmProp *array_prop (const char *name, + ...); +static SmProp *ptrarray_prop (const char *name, + GPtrArray *values); +static SmProp *string_prop (const char *name, + const char *value); +static SmProp *card8_prop (const char *name, + unsigned char value); + +static void set_properties (EggSMClientXSMP *xsmp, ...); +static void delete_properties (EggSMClientXSMP *xsmp, ...); + +static GPtrArray *generate_command (char **restart_command, + const char *client_id, + const char *state_file); + +static void save_state (EggSMClientXSMP *xsmp); +static void do_save_yourself (EggSMClientXSMP *xsmp); +static void update_pending_events (EggSMClientXSMP *xsmp); + +static void ice_init (void); +static gboolean process_ice_messages (IceConn ice_conn); +static void smc_error_handler (SmcConn smc_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + SmPointer values); + +G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT) + +static void +egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp) +{ + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + xsmp->connection = NULL; + xsmp->restart_style = SmRestartIfRunning; +} + +static void +egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass) +{ + EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass); + + sm_client_class->startup = sm_client_xsmp_startup; + sm_client_class->set_restart_command = sm_client_xsmp_set_restart_command; + sm_client_class->will_quit = sm_client_xsmp_will_quit; + sm_client_class->end_session = sm_client_xsmp_end_session; +} + +EggSMClient * +egg_sm_client_xsmp_new (void) +{ + if (!g_getenv ("SESSION_MANAGER")) + return NULL; + + return g_object_new (EGG_TYPE_SM_CLIENT_XSMP, NULL); +} + +static gboolean +sm_client_xsmp_set_initial_properties (gpointer user_data) +{ + EggSMClientXSMP *xsmp = user_data; + EggDesktopFile *desktop_file; + GPtrArray *clone, *restart; + char pid_str[64]; + + if (xsmp->idle) + { + g_source_remove (xsmp->idle); + xsmp->idle = 0; + } + xsmp->waiting_to_set_initial_properties = FALSE; + + if (egg_sm_client_get_mode () == EGG_SM_CLIENT_MODE_NO_RESTART) + xsmp->restart_style = SmRestartNever; + + /* Parse info out of desktop file */ + desktop_file = egg_get_desktop_file (); + if (desktop_file) + { + GError *err = NULL; + char *cmdline, **argv; + int argc; + + if (xsmp->restart_style == SmRestartIfRunning) + { + if (egg_desktop_file_get_boolean (desktop_file, + "X-MATE-AutoRestart", NULL)) + xsmp->restart_style = SmRestartImmediately; + } + + if (!xsmp->set_restart_command) + { + cmdline = egg_desktop_file_parse_exec (desktop_file, NULL, &err); + if (cmdline && g_shell_parse_argv (cmdline, &argc, &argv, &err)) + { + egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp), + argc, (const char **)argv); + g_strfreev (argv); + } + else + { + g_warning ("Could not parse Exec line in desktop file: %s", + err->message); + g_error_free (err); + } + g_free (cmdline); + } + } + + if (!xsmp->set_restart_command) + xsmp->restart_command = g_strsplit (g_get_prgname (), " ", -1); + + clone = generate_command (xsmp->restart_command, NULL, NULL); + restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL); + + g_debug ("Setting initial properties"); + + /* Program, CloneCommand, RestartCommand, and UserID are required. + * ProcessID isn't required, but the SM may be able to do something + * useful with it. + */ + g_snprintf (pid_str, sizeof (pid_str), "%lu", (gulong) getpid ()); + set_properties (xsmp, + string_prop (SmProgram, g_get_prgname ()), + ptrarray_prop (SmCloneCommand, clone), + ptrarray_prop (SmRestartCommand, restart), + string_prop (SmUserID, g_get_user_name ()), + string_prop (SmProcessID, pid_str), + card8_prop (SmRestartStyleHint, xsmp->restart_style), + NULL); + g_ptr_array_free (clone, TRUE); + g_ptr_array_free (restart, TRUE); + + if (desktop_file) + { + set_properties (xsmp, + string_prop ("_GSM_DesktopFile", egg_desktop_file_get_source (desktop_file)), + NULL); + } + + update_pending_events (xsmp); + return FALSE; +} + +/* This gets called from two different places: xsmp_die() (when the + * server asks us to disconnect) and process_ice_messages() (when the + * server disconnects unexpectedly). + */ +static void +sm_client_xsmp_disconnect (EggSMClientXSMP *xsmp) +{ + SmcConn connection; + + if (!xsmp->connection) + return; + + g_debug ("Disconnecting"); + + connection = xsmp->connection; + xsmp->connection = NULL; + SmcCloseConnection (connection, 0, NULL); + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); +} + +static void +sm_client_xsmp_startup (EggSMClient *client, + const char *client_id) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + SmcCallbacks callbacks; + char *ret_client_id; + char error_string_ret[256]; + + xsmp->client_id = g_strdup (client_id); + + ice_init (); + SmcSetErrorHandler (smc_error_handler); + + callbacks.save_yourself.callback = xsmp_save_yourself; + callbacks.die.callback = xsmp_die; + callbacks.save_complete.callback = xsmp_save_complete; + callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled; + + callbacks.save_yourself.client_data = xsmp; + callbacks.die.client_data = xsmp; + callbacks.save_complete.client_data = xsmp; + callbacks.shutdown_cancelled.client_data = xsmp; + + client_id = NULL; + error_string_ret[0] = '\0'; + xsmp->connection = + SmcOpenConnection (NULL, xsmp, SmProtoMajor, SmProtoMinor, + SmcSaveYourselfProcMask | SmcDieProcMask | + SmcSaveCompleteProcMask | + SmcShutdownCancelledProcMask, + &callbacks, + xsmp->client_id, &ret_client_id, + sizeof (error_string_ret), error_string_ret); + + if (!xsmp->connection) + { + g_warning ("Failed to connect to the session manager: %s\n", + error_string_ret[0] ? + error_string_ret : "no error message given"); + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + return; + } + + /* We expect a pointless initial SaveYourself if either (a) we + * didn't have an initial client ID, or (b) we DID have an initial + * client ID, but the server rejected it and gave us a new one. + */ + if (!xsmp->client_id || + (ret_client_id && strcmp (xsmp->client_id, ret_client_id) != 0)) + xsmp->expecting_initial_save_yourself = TRUE; + + if (ret_client_id) + { + g_free (xsmp->client_id); + xsmp->client_id = g_strdup (ret_client_id); + free (ret_client_id); + + gdk_threads_enter (); + gdk_set_sm_client_id (xsmp->client_id); + gdk_threads_leave (); + + g_debug ("Got client ID \"%s\"", xsmp->client_id); + } + + xsmp->state = XSMP_STATE_IDLE; + + /* Do not set the initial properties until we reach the main loop, + * so that the application has a chance to call + * egg_set_desktop_file(). (This may also help the session manager + * have a better idea of when the application is fully up and + * running.) + */ + xsmp->waiting_to_set_initial_properties = TRUE; + xsmp->idle = g_idle_add (sm_client_xsmp_set_initial_properties, client); +} + +static void +sm_client_xsmp_set_restart_command (EggSMClient *client, + int argc, + const char **argv) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + int i; + + g_strfreev (xsmp->restart_command); + + xsmp->restart_command = g_new (char *, argc + 1); + for (i = 0; i < argc; i++) + xsmp->restart_command[i] = g_strdup (argv[i]); + xsmp->restart_command[i] = NULL; + + xsmp->set_restart_command = TRUE; +} + +static void +sm_client_xsmp_will_quit (EggSMClient *client, + gboolean will_quit) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + + if (xsmp->state == XSMP_STATE_CONNECTION_CLOSED) + { + /* The session manager has already exited! Schedule a quit + * signal. + */ + xsmp->waiting_to_emit_quit = TRUE; + update_pending_events (xsmp); + return; + } + else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* We received a ShutdownCancelled message while the application + * was interacting; Schedule a quit_cancelled signal. + */ + xsmp->waiting_to_emit_quit_cancelled = TRUE; + update_pending_events (xsmp); + return; + } + + g_return_if_fail (xsmp->state == XSMP_STATE_INTERACT); + + g_debug ("Sending InteractDone(%s)", will_quit ? "False" : "True"); + SmcInteractDone (xsmp->connection, !will_quit); + + if (will_quit && xsmp->need_save_state) + save_state (xsmp); + + g_debug ("Sending SaveYourselfDone(%s)", will_quit ? "True" : "False"); + SmcSaveYourselfDone (xsmp->connection, will_quit); + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; +} + +static gboolean +sm_client_xsmp_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + int save_type; + + /* To end the session via XSMP, we have to send a + * SaveYourselfRequest. We aren't allowed to do that if anything + * else is going on, but we don't want to expose this fact to the + * application. So we do our best to patch things up here... + * + * In the worst case, this method might block for some length of + * time in process_ice_messages, but the only time that code path is + * honestly likely to get hit is if the application tries to end the + * session as the very first thing it does, in which case it + * probably won't actually block anyway. It's not worth gunking up + * the API to try to deal nicely with the other 0.01% of cases where + * this happens. + */ + + while (xsmp->state != XSMP_STATE_IDLE || + xsmp->expecting_initial_save_yourself) + { + /* If we're already shutting down, we don't need to do anything. */ + if (xsmp->shutting_down) + return TRUE; + + switch (xsmp->state) + { + case XSMP_STATE_CONNECTION_CLOSED: + return FALSE; + + case XSMP_STATE_SAVE_YOURSELF: + /* Trying to log out from the save_state callback? Whatever. + * Abort the save_state. + */ + SmcSaveYourselfDone (xsmp->connection, FALSE); + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; + break; + + case XSMP_STATE_INTERACT_REQUEST: + case XSMP_STATE_INTERACT: + case XSMP_STATE_SHUTDOWN_CANCELLED: + /* Already in a shutdown-related state, just ignore + * the new shutdown request... + */ + return TRUE; + + case XSMP_STATE_IDLE: + if (xsmp->waiting_to_set_initial_properties) + sm_client_xsmp_set_initial_properties (xsmp); + + if (!xsmp->expecting_initial_save_yourself) + break; + /* else fall through */ + + case XSMP_STATE_SAVE_YOURSELF_DONE: + /* We need to wait for some response from the server.*/ + process_ice_messages (SmcGetIceConnection (xsmp->connection)); + break; + + default: + /* Hm... shouldn't happen */ + return FALSE; + } + } + + /* xfce4-session will do the wrong thing if we pass SmSaveGlobal and + * the user chooses to save the session. But mate-session will do + * the wrong thing if we pass SmSaveBoth and the user chooses NOT to + * save the session... Sigh. + */ + if (!strcmp (SmcVendor (xsmp->connection), "xfce4-session")) + save_type = SmSaveBoth; + else + save_type = SmSaveGlobal; + + g_debug ("Sending SaveYourselfRequest(SmSaveGlobal, Shutdown, SmInteractStyleAny, %sFast)", request_confirmation ? "!" : ""); + SmcRequestSaveYourself (xsmp->connection, + save_type, + True, /* shutdown */ + SmInteractStyleAny, + !request_confirmation, /* fast */ + True /* global */); + return TRUE; +} + +static gboolean +idle_do_pending_events (gpointer data) +{ + EggSMClientXSMP *xsmp = data; + EggSMClient *client = data; + + gdk_threads_enter (); + + xsmp->idle = 0; + + if (xsmp->waiting_to_emit_quit) + { + xsmp->waiting_to_emit_quit = FALSE; + egg_sm_client_quit (client); + goto out; + } + + if (xsmp->waiting_to_emit_quit_cancelled) + { + xsmp->waiting_to_emit_quit_cancelled = FALSE; + egg_sm_client_quit_cancelled (client); + xsmp->state = XSMP_STATE_IDLE; + } + + if (xsmp->waiting_to_save_myself) + { + xsmp->waiting_to_save_myself = FALSE; + do_save_yourself (xsmp); + } + + out: + gdk_threads_leave (); + return FALSE; +} + +static void +update_pending_events (EggSMClientXSMP *xsmp) +{ + gboolean want_idle = + xsmp->waiting_to_emit_quit || + xsmp->waiting_to_emit_quit_cancelled || + xsmp->waiting_to_save_myself; + + if (want_idle) + { + if (xsmp->idle == 0) + xsmp->idle = g_idle_add (idle_do_pending_events, xsmp); + } + else + { + if (xsmp->idle != 0) + g_source_remove (xsmp->idle); + xsmp->idle = 0; + } +} + +static void +fix_broken_state (EggSMClientXSMP *xsmp, const char *message, + gboolean send_interact_done, + gboolean send_save_yourself_done) +{ + g_warning ("Received XSMP %s message in state %s: client or server error", + message, EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + /* Forget any pending SaveYourself plans we had */ + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); + + if (send_interact_done) + SmcInteractDone (xsmp->connection, False); + if (send_save_yourself_done) + SmcSaveYourselfDone (xsmp->connection, True); + + xsmp->state = send_save_yourself_done ? XSMP_STATE_SAVE_YOURSELF_DONE : XSMP_STATE_IDLE; +} + +/* SM callbacks */ + +static void +xsmp_save_yourself (SmcConn smc_conn, + SmPointer client_data, + int save_type, + Bool shutdown, + int interact_style, + Bool fast) +{ + EggSMClientXSMP *xsmp = client_data; + gboolean wants_quit_requested; + + g_debug ("Received SaveYourself(%s, %s, %s, %s) in state %s", + save_type == SmSaveLocal ? "SmSaveLocal" : + save_type == SmSaveGlobal ? "SmSaveGlobal" : "SmSaveBoth", + shutdown ? "Shutdown" : "!Shutdown", + interact_style == SmInteractStyleAny ? "SmInteractStyleAny" : + interact_style == SmInteractStyleErrors ? "SmInteractStyleErrors" : + "SmInteractStyleNone", fast ? "Fast" : "!Fast", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state != XSMP_STATE_IDLE && + xsmp->state != XSMP_STATE_SHUTDOWN_CANCELLED) + { + fix_broken_state (xsmp, "SaveYourself", FALSE, TRUE); + return; + } + + if (xsmp->waiting_to_set_initial_properties) + sm_client_xsmp_set_initial_properties (xsmp); + + /* If this is the initial SaveYourself, ignore it; we've already set + * properties and there's no reason to actually save state too. + */ + if (xsmp->expecting_initial_save_yourself) + { + xsmp->expecting_initial_save_yourself = FALSE; + + if (save_type == SmSaveLocal && + interact_style == SmInteractStyleNone && + !shutdown && !fast) + { + g_debug ("Sending SaveYourselfDone(True) for initial SaveYourself"); + SmcSaveYourselfDone (xsmp->connection, True); + /* As explained in the comment at the end of + * do_save_yourself(), SAVE_YOURSELF_DONE is the correct + * state here, not IDLE. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; + return; + } + else + g_warning ("First SaveYourself was not the expected one!"); + } + + /* Even ignoring the "fast" flag completely, there are still 18 + * different combinations of save_type, shutdown and interact_style. + * We interpret them as follows: + * + * Type Shutdown Interact Interpretation + * G F A/E/N do nothing (1) + * G T N do nothing (1)* + * G T A/E quit_requested (2) + * L/B F A/E/N save_state (3) + * L/B T N save_state (3)* + * L/B T A/E quit_requested, then save_state (4) + * + * 1. Do nothing, because the SM asked us to do something + * uninteresting (save open files, but then don't quit + * afterward) or rude (save open files without asking the user + * for confirmation). + * + * 2. Request interaction and then emit ::quit_requested. This + * perhaps isn't quite correct for the SmInteractStyleErrors + * case, but we don't care. + * + * 3. Emit ::save_state. The SmSaveBoth SaveYourselfs in these + * rows essentially get demoted to SmSaveLocal, because their + * Global halves correspond to "do nothing". + * + * 4. Request interaction, emit ::quit_requested, and then emit + * ::save_state after interacting. This is the SmSaveBoth + * equivalent of #2, but we also promote SmSaveLocal shutdown + * SaveYourselfs to SmSaveBoth here, because we want to give + * the user a chance to save open files before quitting. + * + * (* It would be nice if we could do something useful when the + * session manager sends a SaveYourself with shutdown True and + * SmInteractStyleNone. But we can't, so we just pretend it didn't + * even tell us it was shutting down. The docs for ::quit mention + * that it might not always be preceded by ::quit_requested.) + */ + + /* As an optimization, we don't actually request interaction and + * emit ::quit_requested if the application isn't listening to the + * signal. + */ + wants_quit_requested = g_signal_has_handler_pending (xsmp, g_signal_lookup ("quit_requested", EGG_TYPE_SM_CLIENT), 0, FALSE); + + xsmp->need_save_state = (save_type != SmSaveGlobal); + xsmp->need_quit_requested = (shutdown && wants_quit_requested && + interact_style != SmInteractStyleNone); + xsmp->interact_errors = (interact_style == SmInteractStyleErrors); + + xsmp->shutting_down = shutdown; + + do_save_yourself (xsmp); +} + +static void +do_save_yourself (EggSMClientXSMP *xsmp) +{ + if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* The SM cancelled a previous SaveYourself, but we haven't yet + * had a chance to tell the application, so we can't start + * processing this SaveYourself yet. + */ + xsmp->waiting_to_save_myself = TRUE; + update_pending_events (xsmp); + return; + } + + if (xsmp->need_quit_requested) + { + xsmp->state = XSMP_STATE_INTERACT_REQUEST; + + g_debug ("Sending InteractRequest(%s)", + xsmp->interact_errors ? "Error" : "Normal"); + SmcInteractRequest (xsmp->connection, + xsmp->interact_errors ? SmDialogError : SmDialogNormal, + xsmp_interact, + xsmp); + return; + } + + if (xsmp->need_save_state) + { + save_state (xsmp); + + /* Though unlikely, the client could have been disconnected + * while the application was saving its state. + */ + if (!xsmp->connection) + return; + } + + g_debug ("Sending SaveYourselfDone(True)"); + SmcSaveYourselfDone (xsmp->connection, True); + + /* The client state diagram in the XSMP spec says that after a + * non-shutdown SaveYourself, we go directly back to "idle". But + * everything else in both the XSMP spec and the libSM docs + * disagrees. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; +} + +static void +save_state (EggSMClientXSMP *xsmp) +{ + GKeyFile *state_file; + char *state_file_path, *data; + EggDesktopFile *desktop_file; + GPtrArray *restart; + int offset, fd; + + /* We set xsmp->state before emitting save_state, but our caller is + * responsible for setting it back afterward. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF; + + state_file = egg_sm_client_save_state ((EggSMClient *)xsmp); + if (!state_file) + { + restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL); + set_properties (xsmp, + ptrarray_prop (SmRestartCommand, restart), + NULL); + g_ptr_array_free (restart, TRUE); + delete_properties (xsmp, SmDiscardCommand, NULL); + return; + } + + desktop_file = egg_get_desktop_file (); + if (desktop_file) + { + GKeyFile *merged_file; + char *desktop_file_path; + + merged_file = g_key_file_new (); + desktop_file_path = + g_filename_from_uri (egg_desktop_file_get_source (desktop_file), + NULL, NULL); + if (desktop_file_path && + g_key_file_load_from_file (merged_file, desktop_file_path, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, NULL)) + { + guint g, k, i; + char **groups, **keys, *value, *exec; + + groups = g_key_file_get_groups (state_file, NULL); + for (g = 0; groups[g]; g++) + { + keys = g_key_file_get_keys (state_file, groups[g], NULL, NULL); + for (k = 0; keys[k]; k++) + { + value = g_key_file_get_value (state_file, groups[g], + keys[k], NULL); + if (value) + { + g_key_file_set_value (merged_file, groups[g], + keys[k], value); + g_free (value); + } + } + g_strfreev (keys); + } + g_strfreev (groups); + + g_key_file_free (state_file); + state_file = merged_file; + + /* Update Exec key using "--sm-client-state-file %k" */ + restart = generate_command (xsmp->restart_command, + NULL, "%k"); + for (i = 0; i < restart->len; i++) + restart->pdata[i] = g_shell_quote (restart->pdata[i]); + g_ptr_array_add (restart, NULL); + exec = g_strjoinv (" ", (char **)restart->pdata); + g_strfreev ((char **)restart->pdata); + g_ptr_array_free (restart, FALSE); + + g_key_file_set_string (state_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + exec); + g_free (exec); + } + else + desktop_file = NULL; + + g_free (desktop_file_path); + } + + /* Now write state_file to disk. (We can't use mktemp(), because + * that requires the filename to end with "XXXXXX", and we want + * it to end with ".desktop".) + */ + + data = g_key_file_to_data (state_file, NULL, NULL); + g_key_file_free (state_file); + + offset = 0; + while (1) + { + state_file_path = g_strdup_printf ("%s%csession-state%c%s-%ld.%s", + g_get_user_config_dir (), + G_DIR_SEPARATOR, G_DIR_SEPARATOR, + g_get_prgname (), + (long)time (NULL) + offset, + desktop_file ? "desktop" : "state"); + + fd = open (state_file_path, O_WRONLY | O_CREAT | O_EXCL, 0644); + if (fd == -1) + { + if (errno == EEXIST) + { + offset++; + g_free (state_file_path); + continue; + } + else if (errno == ENOTDIR || errno == ENOENT) + { + char *sep = strrchr (state_file_path, G_DIR_SEPARATOR); + + *sep = '\0'; + if (g_mkdir_with_parents (state_file_path, 0755) != 0) + { + g_warning ("Could not create directory '%s'", + state_file_path); + g_free (state_file_path); + state_file_path = NULL; + break; + } + + continue; + } + + g_warning ("Could not create file '%s': %s", + state_file_path, g_strerror (errno)); + g_free (state_file_path); + state_file_path = NULL; + break; + } + + close (fd); + g_file_set_contents (state_file_path, data, -1, NULL); + break; + } + g_free (data); + + restart = generate_command (xsmp->restart_command, xsmp->client_id, + state_file_path); + set_properties (xsmp, + ptrarray_prop (SmRestartCommand, restart), + NULL); + g_ptr_array_free (restart, TRUE); + + if (state_file_path) + { + set_properties (xsmp, + array_prop (SmDiscardCommand, + "/bin/rm", "-rf", state_file_path, + NULL), + NULL); + g_free (state_file_path); + } +} + +static void +xsmp_interact (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received Interact message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state != XSMP_STATE_INTERACT_REQUEST) + { + fix_broken_state (xsmp, "Interact", TRUE, TRUE); + return; + } + + xsmp->state = XSMP_STATE_INTERACT; + egg_sm_client_quit_requested (client); +} + +static void +xsmp_die (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received Die message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + sm_client_xsmp_disconnect (xsmp); + egg_sm_client_quit (client); +} + +static void +xsmp_save_complete (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + + g_debug ("Received SaveComplete message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE) + xsmp->state = XSMP_STATE_IDLE; + else + fix_broken_state (xsmp, "SaveComplete", FALSE, FALSE); +} + +static void +xsmp_shutdown_cancelled (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received ShutdownCancelled message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + xsmp->shutting_down = FALSE; + + if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE) + { + /* We've finished interacting and now the SM has agreed to + * cancel the shutdown. + */ + xsmp->state = XSMP_STATE_IDLE; + egg_sm_client_quit_cancelled (client); + } + else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* Hm... ok, so we got a shutdown SaveYourself, which got + * cancelled, but the application was still interacting, so we + * didn't tell it yet, and then *another* SaveYourself arrived, + * which we must still be waiting to tell the app about, except + * that now that SaveYourself has been cancelled too! Dizzy yet? + */ + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); + } + else + { + g_debug ("Sending SaveYourselfDone(False)"); + SmcSaveYourselfDone (xsmp->connection, False); + + if (xsmp->state == XSMP_STATE_INTERACT) + { + /* The application is currently interacting, so we can't + * tell it about the cancellation yet; we will wait until + * after it calls egg_sm_client_will_quit(). + */ + xsmp->state = XSMP_STATE_SHUTDOWN_CANCELLED; + } + else + { + /* The shutdown was cancelled before the application got a + * chance to interact. + */ + xsmp->state = XSMP_STATE_IDLE; + } + } +} + +/* Utilities */ + +/* Create a restart/clone/Exec command based on @restart_command. + * If @client_id is non-%NULL, add "--sm-client-id @client_id". + * If @state_file is non-%NULL, add "--sm-client-state-file @state_file". + * + * None of the input strings are g_strdup()ed; the caller must keep + * them around until it is done with the returned GPtrArray, and must + * then free the array, but not its contents. + */ +static GPtrArray * +generate_command (char **restart_command, const char *client_id, + const char *state_file) +{ + GPtrArray *cmd; + int i; + + cmd = g_ptr_array_new (); + g_ptr_array_add (cmd, restart_command[0]); + + if (client_id) + { + g_ptr_array_add (cmd, "--sm-client-id"); + g_ptr_array_add (cmd, (char *)client_id); + } + + if (state_file) + { + g_ptr_array_add (cmd, "--sm-client-state-file"); + g_ptr_array_add (cmd, (char *)state_file); + } + + for (i = 1; restart_command[i]; i++) + g_ptr_array_add (cmd, restart_command[i]); + + return cmd; +} + +/* Takes a NULL-terminated list of SmProp * values, created by + * array_prop, ptrarray_prop, string_prop, card8_prop, sets them, and + * frees them. + */ +static void +set_properties (EggSMClientXSMP *xsmp, ...) +{ + GPtrArray *props; + SmProp *prop; + va_list ap; + guint i; + + props = g_ptr_array_new (); + + va_start (ap, xsmp); + while ((prop = va_arg (ap, SmProp *))) + g_ptr_array_add (props, prop); + va_end (ap); + + if (xsmp->connection) + { + SmcSetProperties (xsmp->connection, props->len, + (SmProp **)props->pdata); + } + + for (i = 0; i < props->len; i++) + { + prop = props->pdata[i]; + g_free (prop->vals); + g_free (prop); + } + g_ptr_array_free (props, TRUE); +} + +/* Takes a NULL-terminated list of property names and deletes them. */ +static void +delete_properties (EggSMClientXSMP *xsmp, ...) +{ + GPtrArray *props; + char *prop; + va_list ap; + + if (!xsmp->connection) + return; + + props = g_ptr_array_new (); + + va_start (ap, xsmp); + while ((prop = va_arg (ap, char *))) + g_ptr_array_add (props, prop); + va_end (ap); + + SmcDeleteProperties (xsmp->connection, props->len, + (char **)props->pdata); + + g_ptr_array_free (props, TRUE); +} + +/* Takes an array of strings and creates a LISTofARRAY8 property. The + * strings are neither dupped nor freed; they need to remain valid + * until you're done with the SmProp. + */ +static SmProp * +array_prop (const char *name, ...) +{ + SmProp *prop; + SmPropValue pv; + GArray *vals; + char *value; + va_list ap; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = SmLISTofARRAY8; + + vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue)); + + va_start (ap, name); + while ((value = va_arg (ap, char *))) + { + pv.length = strlen (value); + pv.value = value; + g_array_append_val (vals, pv); + } + + prop->num_vals = vals->len; + prop->vals = (SmPropValue *)vals->data; + + g_array_free (vals, FALSE); + + return prop; +} + +/* Takes a GPtrArray of strings and creates a LISTofARRAY8 property. + * The array contents are neither dupped nor freed; they need to + * remain valid until you're done with the SmProp. + */ +static SmProp * +ptrarray_prop (const char *name, GPtrArray *values) +{ + SmProp *prop; + SmPropValue pv; + GArray *vals; + guint i; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = SmLISTofARRAY8; + + vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue)); + + for (i = 0; i < values->len; i++) + { + pv.length = strlen (values->pdata[i]); + pv.value = values->pdata[i]; + g_array_append_val (vals, pv); + } + + prop->num_vals = vals->len; + prop->vals = (SmPropValue *)vals->data; + + g_array_free (vals, FALSE); + + return prop; +} + +/* Takes a string and creates an ARRAY8 property. The string is + * neither dupped nor freed; it needs to remain valid until you're + * done with the SmProp. + */ +static SmProp * +string_prop (const char *name, const char *value) +{ + SmProp *prop; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = SmARRAY8; + + prop->num_vals = 1; + prop->vals = g_new (SmPropValue, 1); + + prop->vals[0].length = strlen (value); + prop->vals[0].value = (char *)value; + + return prop; +} + +/* Takes a char and creates a CARD8 property. */ +static SmProp * +card8_prop (const char *name, unsigned char value) +{ + SmProp *prop; + char *card8val; + + /* To avoid having to allocate and free prop->vals[0], we cheat and + * make vals a 2-element-long array and then use the second element + * to store value. + */ + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = SmCARD8; + + prop->num_vals = 1; + prop->vals = g_new (SmPropValue, 2); + card8val = (char *)(&prop->vals[1]); + card8val[0] = value; + + prop->vals[0].length = 1; + prop->vals[0].value = card8val; + + return prop; +} + +/* ICE code. This makes no effort to play nice with anyone else trying + * to use libICE. Fortunately, no one uses libICE for anything other + * than SM. (DCOP uses ICE, but it has its own private copy of + * libICE.) + * + * When this moves to gtk, it will need to be cleverer, to avoid + * tripping over old apps that use MateClient or that use libSM + * directly. + */ + +#include <X11/ICE/ICElib.h> +#include <fcntl.h> + +static void ice_error_handler (IceConn ice_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + IcePointer values); +static void ice_io_error_handler (IceConn ice_conn); +static void ice_connection_watch (IceConn ice_conn, + IcePointer client_data, + Bool opening, + IcePointer *watch_data); + +static void +ice_init (void) +{ + IceSetIOErrorHandler (ice_io_error_handler); + IceSetErrorHandler (ice_error_handler); + IceAddConnectionWatch (ice_connection_watch, NULL); +} + +static gboolean +process_ice_messages (IceConn ice_conn) +{ + IceProcessMessagesStatus status; + + gdk_threads_enter (); + status = IceProcessMessages (ice_conn, NULL, NULL); + gdk_threads_leave (); + + switch (status) + { + case IceProcessMessagesSuccess: + return TRUE; + + case IceProcessMessagesIOError: + sm_client_xsmp_disconnect (IceGetConnectionContext (ice_conn)); + return FALSE; + + case IceProcessMessagesConnectionClosed: + return FALSE; + + default: + g_assert_not_reached (); + } +} + +static gboolean +ice_iochannel_watch (GIOChannel *channel, + GIOCondition condition, + gpointer client_data) +{ + return process_ice_messages (client_data); +} + +static void +ice_connection_watch (IceConn ice_conn, + IcePointer client_data, + Bool opening, + IcePointer *watch_data) +{ + guint watch_id; + + if (opening) + { + GIOChannel *channel; + int fd = IceConnectionNumber (ice_conn); + + fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC); + channel = g_io_channel_unix_new (fd); + watch_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR, + ice_iochannel_watch, ice_conn); + g_io_channel_unref (channel); + + *watch_data = GUINT_TO_POINTER (watch_id); + } + else + { + watch_id = GPOINTER_TO_UINT (*watch_data); + g_source_remove (watch_id); + } +} + +static void +ice_error_handler (IceConn ice_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + IcePointer values) +{ + /* Do nothing */ +} + +static void +ice_io_error_handler (IceConn ice_conn) +{ + /* Do nothing */ +} + +static void +smc_error_handler (SmcConn smc_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + SmPointer values) +{ + /* Do nothing */ +} diff --git a/cut-n-paste/smclient/eggsmclient.c b/cut-n-paste/smclient/eggsmclient.c new file mode 100644 index 00000000..c568e9be --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient.c @@ -0,0 +1,589 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> +#include <glib/gi18n.h> + +#include "eggsmclient.h" +#include "eggsmclient-private.h" + +static void egg_sm_client_debug_handler (const char *log_domain, + GLogLevelFlags log_level, + const char *message, + gpointer user_data); + +enum { + SAVE_STATE, + QUIT_REQUESTED, + QUIT_CANCELLED, + QUIT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +struct _EggSMClientPrivate { + GKeyFile *state_file; +}; + +#define EGG_SM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_SM_CLIENT, EggSMClientPrivate)) + +G_DEFINE_TYPE (EggSMClient, egg_sm_client, G_TYPE_OBJECT) + +static EggSMClient *global_client; +static EggSMClientMode global_client_mode = EGG_SM_CLIENT_MODE_NORMAL; + +static void +egg_sm_client_init (EggSMClient *client) +{ + ; +} + +static void +egg_sm_client_class_init (EggSMClientClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (EggSMClientPrivate)); + + /** + * EggSMClient::save_state: + * @client: the client + * @state_file: a #GKeyFile to save state information into + * + * Emitted when the session manager has requested that the + * application save information about its current state. The + * application should save its state into @state_file, and then the + * session manager may then restart the application in a future + * session and tell it to initialize itself from that state. + * + * You should not save any data into @state_file's "start group" + * (ie, the %NULL group). Instead, applications should save their + * data into groups with names that start with the application name, + * and libraries that connect to this signal should save their data + * into groups with names that start with the library name. + * + * Alternatively, rather than (or in addition to) using @state_file, + * the application can save its state by calling + * egg_sm_client_set_restart_command() during the processing of this + * signal (eg, to include a list of files to open). + **/ + signals[SAVE_STATE] = + g_signal_new ("save_state", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, save_state), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, G_TYPE_POINTER); + + /** + * EggSMClient::quit_requested: + * @client: the client + * + * Emitted when the session manager requests that the application + * exit (generally because the user is logging out). The application + * should decide whether or not it is willing to quit (perhaps after + * asking the user what to do with documents that have unsaved + * changes) and then call egg_sm_client_will_quit(), passing %TRUE + * or %FALSE to give its answer to the session manager. (It does not + * need to give an answer before returning from the signal handler; + * it can interact with the user asynchronously and then give its + * answer later on.) If the application does not connect to this + * signal, then #EggSMClient will automatically return %TRUE on its + * behalf. + * + * The application should not save its session state as part of + * handling this signal; if the user has requested that the session + * be saved when logging out, then ::save_state will be emitted + * separately. + * + * If the application agrees to quit, it should then wait for either + * the ::quit_cancelled or ::quit signals to be emitted. + **/ + signals[QUIT_REQUESTED] = + g_signal_new ("quit_requested", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit_requested), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /** + * EggSMClient::quit_cancelled: + * @client: the client + * + * Emitted when the session manager decides to cancel a logout after + * the application has already agreed to quit. After receiving this + * signal, the application can go back to what it was doing before + * receiving the ::quit_requested signal. + **/ + signals[QUIT_CANCELLED] = + g_signal_new ("quit_cancelled", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit_cancelled), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /** + * EggSMClient::quit: + * @client: the client + * + * Emitted when the session manager wants the application to quit + * (generally because the user is logging out). The application + * should exit as soon as possible after receiving this signal; if + * it does not, the session manager may choose to forcibly kill it. + * + * Normally a GUI application would only be sent a ::quit if it + * agreed to quit in response to a ::quit_requested signal. However, + * this is not guaranteed; in some situations the session manager + * may decide to end the session without giving applications a + * chance to object. + **/ + signals[QUIT] = + g_signal_new ("quit", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); +} + +static gboolean sm_client_disable = FALSE; +static char *sm_client_state_file = NULL; +static char *sm_client_id = NULL; +static char *sm_config_prefix = NULL; + +static gboolean +sm_client_post_parse_func (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error) +{ + EggSMClient *client = egg_sm_client_get (); + + if (sm_client_id == NULL) + { + const gchar *desktop_autostart_id; + + desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID"); + + if (desktop_autostart_id != NULL) + sm_client_id = g_strdup (desktop_autostart_id); + } + + /* Unset DESKTOP_AUTOSTART_ID in order to avoid child processes to + * use the same client id. */ + g_unsetenv ("DESKTOP_AUTOSTART_ID"); + + if (EGG_SM_CLIENT_GET_CLASS (client)->startup) + EGG_SM_CLIENT_GET_CLASS (client)->startup (client, sm_client_id); + return TRUE; +} + +/** + * egg_sm_client_get_option_group: + * + * Creates a %GOptionGroup containing the session-management-related + * options. You should add this group to the application's + * %GOptionContext if you want to use #EggSMClient. + * + * Return value: the %GOptionGroup + **/ +GOptionGroup * +egg_sm_client_get_option_group (void) +{ + const GOptionEntry entries[] = { + { "sm-client-disable", 0, 0, + G_OPTION_ARG_NONE, &sm_client_disable, + N_("Disable connection to session manager"), NULL }, + { "sm-client-state-file", 0, 0, + G_OPTION_ARG_FILENAME, &sm_client_state_file, + N_("Specify file containing saved configuration"), N_("FILE") }, + { "sm-client-id", 0, 0, + G_OPTION_ARG_STRING, &sm_client_id, + N_("Specify session management ID"), N_("ID") }, + /* MateClient compatibility option */ + { "sm-disable", 0, G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_NONE, &sm_client_disable, + NULL, NULL }, + /* MateClient compatibility option. This is a dummy option that only + * exists so that sessions saved by apps with MateClient can be restored + * later when they've switched to EggSMClient. See bug #575308. + */ + { "sm-config-prefix", 0, G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_STRING, &sm_config_prefix, + NULL, NULL }, + { NULL } + }; + GOptionGroup *group; + + /* Use our own debug handler for the "EggSMClient" domain. */ + g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, + egg_sm_client_debug_handler, NULL); + + group = g_option_group_new ("sm-client", + _("Session management options:"), + _("Show session management options"), + NULL, NULL); + g_option_group_add_entries (group, entries); + g_option_group_set_parse_hooks (group, NULL, sm_client_post_parse_func); + + return group; +} + +/** + * egg_sm_client_set_mode: + * @mode: an #EggSMClient mode + * + * Sets the "mode" of #EggSMClient as follows: + * + * %EGG_SM_CLIENT_MODE_DISABLED: Session management is completely + * disabled. The application will not even connect to the session + * manager. (egg_sm_client_get() will still return an #EggSMClient, + * but it will just be a dummy object.) + * + * %EGG_SM_CLIENT_MODE_NO_RESTART: The application will connect to + * the session manager (and thus will receive notification when the + * user is logging out, etc), but will request to not be + * automatically restarted with saved state in future sessions. + * + * %EGG_SM_CLIENT_MODE_NORMAL: The default. #EggSMCLient will + * function normally. + * + * This must be called before the application's main loop begins. + **/ +void +egg_sm_client_set_mode (EggSMClientMode mode) +{ + global_client_mode = mode; +} + +/** + * egg_sm_client_get_mode: + * + * Gets the global #EggSMClientMode. See egg_sm_client_set_mode() + * for details. + * + * Return value: the global #EggSMClientMode + **/ +EggSMClientMode +egg_sm_client_get_mode (void) +{ + return global_client_mode; +} + +/** + * egg_sm_client_get: + * + * Returns the master #EggSMClient for the application. + * + * On platforms that support saved sessions (ie, POSIX/X11), the + * application will only request to be restarted by the session + * manager if you call egg_set_desktop_file() to set an application + * desktop file. In particular, if the desktop file contains the key + * "X + * + * Return value: the master #EggSMClient. + **/ +EggSMClient * +egg_sm_client_get (void) +{ + if (!global_client) + { + if (global_client_mode != EGG_SM_CLIENT_MODE_DISABLED && + !sm_client_disable) + { +#if defined (GDK_WINDOWING_WIN32) + global_client = egg_sm_client_win32_new (); +#elif defined (GDK_WINDOWING_QUARTZ) + global_client = egg_sm_client_osx_new (); +#else + /* If both D-Bus and XSMP are compiled in, try XSMP first + * (since it supports state saving) and fall back to D-Bus + * if XSMP isn't available. + */ +# ifdef EGG_SM_CLIENT_BACKEND_XSMP + global_client = egg_sm_client_xsmp_new (); +# endif +# ifdef EGG_SM_CLIENT_BACKEND_DBUS + if (!global_client) + global_client = egg_sm_client_dbus_new (); +# endif +#endif + } + + /* Fallback: create a dummy client, so that callers don't have + * to worry about a %NULL return value. + */ + if (!global_client) + global_client = g_object_new (EGG_TYPE_SM_CLIENT, NULL); + } + + return global_client; +} + +/** + * egg_sm_client_is_resumed: + * @client: the client + * + * Checks whether or not the current session has been resumed from + * a previous saved session. If so, the application should call + * egg_sm_client_get_state_file() and restore its state from the + * returned #GKeyFile. + * + * Return value: %TRUE if the session has been resumed + **/ +gboolean +egg_sm_client_is_resumed (EggSMClient *client) +{ + g_return_val_if_fail (client == global_client, FALSE); + + return sm_client_state_file != NULL; +} + +/** + * egg_sm_client_get_state_file: + * @client: the client + * + * If the application was resumed by the session manager, this will + * return the #GKeyFile containing its state from the previous + * session. + * + * Note that other libraries and #EggSMClient itself may also store + * state in the key file, so if you call egg_sm_client_get_groups(), + * on it, the return value will likely include groups that you did not + * put there yourself. (It is also not guaranteed that the first + * group created by the application will still be the "start group" + * when it is resumed.) + * + * Return value: the #GKeyFile containing the application's earlier + * state, or %NULL on error. You should not free this key file; it + * is owned by @client. + **/ +GKeyFile * +egg_sm_client_get_state_file (EggSMClient *client) +{ + EggSMClientPrivate *priv = EGG_SM_CLIENT_GET_PRIVATE (client); + char *state_file_path; + GError *err = NULL; + + g_return_val_if_fail (client == global_client, NULL); + + if (!sm_client_state_file) + return NULL; + if (priv->state_file) + return priv->state_file; + + if (!strncmp (sm_client_state_file, "file://", 7)) + state_file_path = g_filename_from_uri (sm_client_state_file, NULL, NULL); + else + state_file_path = g_strdup (sm_client_state_file); + + priv->state_file = g_key_file_new (); + if (!g_key_file_load_from_file (priv->state_file, state_file_path, 0, &err)) + { + g_warning ("Could not load SM state file '%s': %s", + sm_client_state_file, err->message); + g_clear_error (&err); + g_key_file_free (priv->state_file); + priv->state_file = NULL; + } + + g_free (state_file_path); + return priv->state_file; +} + +/** + * egg_sm_client_set_restart_command: + * @client: the client + * @argc: the length of @argv + * @argv: argument vector + * + * Sets the command used to restart @client if it does not have a + * .desktop file that can be used to find its restart command. + * + * This can also be used when handling the ::save_state signal, to + * save the current state via an updated command line. (Eg, providing + * a list of filenames to open when the application is resumed.) + **/ +void +egg_sm_client_set_restart_command (EggSMClient *client, + int argc, + const char **argv) +{ + g_return_if_fail (EGG_IS_SM_CLIENT (client)); + + if (EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command) + EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command (client, argc, argv); +} + +/** + * egg_sm_client_will_quit: + * @client: the client + * @will_quit: whether or not the application is willing to quit + * + * This MUST be called in response to the ::quit_requested signal, to + * indicate whether or not the application is willing to quit. The + * application may call it either directly from the signal handler, or + * at some later point (eg, after asynchronously interacting with the + * user). + * + * If the application does not connect to ::quit_requested, + * #EggSMClient will call this method on its behalf (passing %TRUE + * for @will_quit). + * + * After calling this method, the application should wait to receive + * either ::quit_cancelled or ::quit. + **/ +void +egg_sm_client_will_quit (EggSMClient *client, + gboolean will_quit) +{ + g_return_if_fail (EGG_IS_SM_CLIENT (client)); + + if (EGG_SM_CLIENT_GET_CLASS (client)->will_quit) + EGG_SM_CLIENT_GET_CLASS (client)->will_quit (client, will_quit); +} + +/** + * egg_sm_client_end_session: + * @style: a hint at how to end the session + * @request_confirmation: whether or not the user should get a chance + * to confirm the action + * + * Requests that the session manager end the current session. @style + * indicates how the session should be ended, and + * @request_confirmation indicates whether or not the user should be + * given a chance to confirm the logout/reboot/shutdown. Both of these + * flags are merely hints though; the session manager may choose to + * ignore them. + * + * Return value: %TRUE if the request was sent; %FALSE if it could not + * be (eg, because it could not connect to the session manager). + **/ +gboolean +egg_sm_client_end_session (EggSMClientEndStyle style, + gboolean request_confirmation) +{ + EggSMClient *client = egg_sm_client_get (); + + g_return_val_if_fail (EGG_IS_SM_CLIENT (client), FALSE); + + if (EGG_SM_CLIENT_GET_CLASS (client)->end_session) + { + return EGG_SM_CLIENT_GET_CLASS (client)->end_session (client, style, + request_confirmation); + } + else + return FALSE; +} + +/* Signal-emitting callbacks from platform-specific code */ + +GKeyFile * +egg_sm_client_save_state (EggSMClient *client) +{ + GKeyFile *state_file; + char *group; + + g_return_val_if_fail (client == global_client, NULL); + + state_file = g_key_file_new (); + + g_debug ("Emitting save_state"); + g_signal_emit (client, signals[SAVE_STATE], 0, state_file); + g_debug ("Done emitting save_state"); + + group = g_key_file_get_start_group (state_file); + if (group) + { + g_free (group); + return state_file; + } + else + { + g_key_file_free (state_file); + return NULL; + } +} + +void +egg_sm_client_quit_requested (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + if (!g_signal_has_handler_pending (client, signals[QUIT_REQUESTED], 0, FALSE)) + { + g_debug ("Not emitting quit_requested because no one is listening"); + egg_sm_client_will_quit (client, TRUE); + return; + } + + g_debug ("Emitting quit_requested"); + g_signal_emit (client, signals[QUIT_REQUESTED], 0); + g_debug ("Done emitting quit_requested"); +} + +void +egg_sm_client_quit_cancelled (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + g_debug ("Emitting quit_cancelled"); + g_signal_emit (client, signals[QUIT_CANCELLED], 0); + g_debug ("Done emitting quit_cancelled"); +} + +void +egg_sm_client_quit (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + g_debug ("Emitting quit"); + g_signal_emit (client, signals[QUIT], 0); + g_debug ("Done emitting quit"); + + /* FIXME: should we just call gtk_main_quit() here? */ +} + +static void +egg_sm_client_debug_handler (const char *log_domain, + GLogLevelFlags log_level, + const char *message, + gpointer user_data) +{ + static int debug = -1; + + if (debug < 0) + debug = (g_getenv ("EGG_SM_CLIENT_DEBUG") != NULL); + + if (debug) + g_log_default_handler (log_domain, log_level, message, NULL); +} diff --git a/cut-n-paste/smclient/eggsmclient.h b/cut-n-paste/smclient/eggsmclient.h new file mode 100644 index 00000000..65e258b3 --- /dev/null +++ b/cut-n-paste/smclient/eggsmclient.h @@ -0,0 +1,117 @@ +/* eggsmclient.h + * Copyright (C) 2007 Novell, Inc. + * + * 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 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. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EGG_SM_CLIENT_H__ +#define __EGG_SM_CLIENT_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_SM_CLIENT (egg_sm_client_get_type ()) +#define EGG_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT, EggSMClient)) +#define EGG_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT, EggSMClientClass)) +#define EGG_IS_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT)) +#define EGG_IS_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT)) +#define EGG_SM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT, EggSMClientClass)) + +typedef struct _EggSMClient EggSMClient; +typedef struct _EggSMClientClass EggSMClientClass; +typedef struct _EggSMClientPrivate EggSMClientPrivate; + +typedef enum { + EGG_SM_CLIENT_END_SESSION_DEFAULT, + EGG_SM_CLIENT_LOGOUT, + EGG_SM_CLIENT_REBOOT, + EGG_SM_CLIENT_SHUTDOWN +} EggSMClientEndStyle; + +typedef enum { + EGG_SM_CLIENT_MODE_DISABLED, + EGG_SM_CLIENT_MODE_NO_RESTART, + EGG_SM_CLIENT_MODE_NORMAL +} EggSMClientMode; + +struct _EggSMClient +{ + GObject parent; + +}; + +struct _EggSMClientClass +{ + GObjectClass parent_class; + + /* signals */ + void (*save_state) (EggSMClient *client, + GKeyFile *state_file); + + void (*quit_requested) (EggSMClient *client); + void (*quit_cancelled) (EggSMClient *client); + void (*quit) (EggSMClient *client); + + /* virtual methods */ + void (*startup) (EggSMClient *client, + const char *client_id); + void (*set_restart_command) (EggSMClient *client, + int argc, + const char **argv); + void (*will_quit) (EggSMClient *client, + gboolean will_quit); + gboolean (*end_session) (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + + /* Padding for future expansion */ + void (*_egg_reserved1) (void); + void (*_egg_reserved2) (void); + void (*_egg_reserved3) (void); + void (*_egg_reserved4) (void); +}; + +GType egg_sm_client_get_type (void) G_GNUC_CONST; + +GOptionGroup *egg_sm_client_get_option_group (void); + +/* Initialization */ +void egg_sm_client_set_mode (EggSMClientMode mode); +EggSMClientMode egg_sm_client_get_mode (void); +EggSMClient *egg_sm_client_get (void); + +/* Resuming a saved session */ +gboolean egg_sm_client_is_resumed (EggSMClient *client); +GKeyFile *egg_sm_client_get_state_file (EggSMClient *client); + +/* Alternate means of saving state */ +void egg_sm_client_set_restart_command (EggSMClient *client, + int argc, + const char **argv); + +/* Handling "quit_requested" signal */ +void egg_sm_client_will_quit (EggSMClient *client, + gboolean will_quit); + +/* Initiate a logout/reboot/shutdown */ +gboolean egg_sm_client_end_session (EggSMClientEndStyle style, + gboolean request_confirmation); + +G_END_DECLS + + +#endif /* __EGG_SM_CLIENT_H__ */ diff --git a/cut-n-paste/synctex/Makefile.am b/cut-n-paste/synctex/Makefile.am new file mode 100644 index 00000000..881ef4ab --- /dev/null +++ b/cut-n-paste/synctex/Makefile.am @@ -0,0 +1,14 @@ +noinst_LTLIBRARIES = libsynctex.la + +libsynctex_la_SOURCES = \ + synctex_parser.c \ + synctex_parser.h \ + synctex_parser_utils.h \ + synctex_parser_utils.c + +libsynctex_la_CFLAGS = \ + $(SHELL_CORE_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/synctex/synctex_parser.c b/cut-n-paste/synctex/synctex_parser.c new file mode 100644 index 00000000..060f32d1 --- /dev/null +++ b/cut-n-paste/synctex/synctex_parser.c @@ -0,0 +1,4171 @@ +/* +Copyright (c) 2008, 2009; 2010 jerome DOT laurens AT u-bourgogne DOT fr + +This file is part of the SyncTeX package. + +Version: 1.12 +See synctex_parser_readme.txt for more details + +Latest Revision: Mon Jul 19 21:50:36 UTC 2010 + +License: +-------- +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE + +Except as contained in this notice, the name of the copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from the copyright holder. + +Acknowledgments: +---------------- +The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh, +and significant help from XeTeX developer Jonathan Kew + +Nota Bene: +---------- +If you include or use a significant part of the synctex package into a software, +I would appreciate to be listed as contributor and see "SyncTeX" highlighted. + +Version 1 +Thu Jun 19 09:39:21 UTC 2008 + +*/ + +/* We assume that high level application like pdf viewers will want + * to embed this code as is. We assume that they also have locale.h and setlocale. + * For other tools such as TeXLive tools, you must define SYNCTEX_USE_LOCAL_HEADER, + * when building. You also have to create and customize synctex_parser_local.h to fit your system. + * In particular, the HAVE_LOCALE_H and HAVE_SETLOCALE macros should be properly defined. + * With this design, you should not need to edit this file. */ + +# if defined(SYNCTEX_USE_LOCAL_HEADER) +# include "synctex_parser_local.h" +# else +# define HAVE_LOCALE_H 1 +# define HAVE_SETLOCALE 1 +# if defined(_MSC_VER) +# define SYNCTEX_INLINE __inline +# else +# define SYNCTEX_INLINE inline +# endif +# endif + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <limits.h> + +#if defined(HAVE_LOCALE_H) +#include <locale.h> +#endif + +/* The data is organized in a graph with multiple entries. + * The root object is a scanner, it is created with the contents on a synctex file. + * Each leaf of the tree is a synctex_node_t object. + * There are 3 subtrees, two of them sharing the same leaves. + * The first tree is the list of input records, where input file names are associated with tags. + * The second tree is the box tree as given by TeX when shipping pages out. + * First level objects are sheets, containing boxes, glues, kerns... + * The third tree allows to browse leaves according to tag and line. + */ + +#include "synctex_parser.h" +#include <synctex_parser_utils.h> + +/* These are the possible extensions of the synctex file */ +const char * synctex_suffix = ".synctex"; +const char * synctex_suffix_gz = ".gz"; + +static const char * synctex_io_modes[synctex_io_mode_append+2] = {"r","rb","a","ab"}; + +/* each synctex node has a class */ +typedef struct __synctex_class_t _synctex_class_t; +typedef _synctex_class_t * synctex_class_t; + + +/* synctex_node_t is a pointer to a node + * _synctex_node is the target of the synctex_node_t pointer + * It is a pseudo object oriented program. + * class is a pointer to the class object the node belongs to. + * implementation is meant to contain the private data of the node + * basically, there are 2 kinds of information: navigation information and + * synctex information. Both will depend on the type of the node, + * thus different nodes will have different private data. + * There is no inheritancy overhead. + */ +typedef union _synctex_info_t { + int INT; + char * PTR; +} synctex_info_t; + +struct _synctex_node { + synctex_class_t class; + synctex_info_t * implementation; +}; + +/* Each node of the tree, except the scanner itself belongs to a class. + * The class object is just a struct declaring the owning scanner + * This is a pointer to the scanner as root of the tree. + * The type is used to identify the kind of node. + * The class declares pointers to a creator and a destructor method. + * The log and display fields are used to log and display the node. + * display will also display the child, sibling and parent sibling. + * parent, child and sibling are used to navigate the tree, + * from TeX box hierarchy point of view. + * The friend field points to a method which allows to navigate from friend to friend. + * A friend is a node with very close tag and line numbers. + * Finally, the info field point to a method giving the private node info offset. + */ + +typedef synctex_node_t *(*_synctex_node_getter_t)(synctex_node_t); +typedef synctex_info_t *(*_synctex_info_getter_t)(synctex_node_t); + +struct __synctex_class_t { + synctex_scanner_t scanner; + int type; + synctex_node_t (*new)(synctex_scanner_t scanner); + void (*free)(synctex_node_t); + void (*log)(synctex_node_t); + void (*display)(synctex_node_t); + _synctex_node_getter_t parent; + _synctex_node_getter_t child; + _synctex_node_getter_t sibling; + _synctex_node_getter_t friend; + _synctex_node_getter_t next_box; + _synctex_info_getter_t info; +}; + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Abstract OBJECTS and METHODS +# endif + +/* These macros are shortcuts + * This macro checks if a message can be sent. + */ +# define SYNCTEX_CAN_PERFORM(NODE,SELECTOR)\ + (NULL!=((((NODE)->class))->SELECTOR)) + +/* This macro is some kind of objc_msg_send. + * It takes care of sending the proper message if possible. + */ +# define SYNCTEX_MSG_SEND(NODE,SELECTOR) if(NODE && SYNCTEX_CAN_PERFORM(NODE,SELECTOR)) {\ + (*((((NODE)->class))->SELECTOR))(NODE);\ + } + +/* read only safe getter + */ +# define SYNCTEX_GET(NODE,SELECTOR)((NODE && SYNCTEX_CAN_PERFORM(NODE,SELECTOR))?SYNCTEX_GETTER(NODE,SELECTOR)[0]:(NULL)) + +/* read/write getter + */ +# define SYNCTEX_GETTER(NODE,SELECTOR)\ + ((synctex_node_t *)((*((((NODE)->class))->SELECTOR))(NODE))) + +# define SYNCTEX_FREE(NODE) SYNCTEX_MSG_SEND(NODE,free); + +/* Parent getter and setter + */ +# define SYNCTEX_PARENT(NODE) SYNCTEX_GET(NODE,parent) +# define SYNCTEX_SET_PARENT(NODE,NEW_PARENT) if(NODE && NEW_PARENT && SYNCTEX_CAN_PERFORM(NODE,parent)){\ + SYNCTEX_GETTER(NODE,parent)[0]=NEW_PARENT;\ + } + +/* Child getter and setter + */ +# define SYNCTEX_CHILD(NODE) SYNCTEX_GET(NODE,child) +# define SYNCTEX_SET_CHILD(NODE,NEW_CHILD) if(NODE && NEW_CHILD){\ + SYNCTEX_GETTER(NODE,child)[0]=NEW_CHILD;\ + SYNCTEX_GETTER(NEW_CHILD,parent)[0]=NODE;\ + } + +/* Sibling getter and setter + */ +# define SYNCTEX_SIBLING(NODE) SYNCTEX_GET(NODE,sibling) +# define SYNCTEX_SET_SIBLING(NODE,NEW_SIBLING) if(NODE && NEW_SIBLING) {\ + SYNCTEX_GETTER(NODE,sibling)[0]=NEW_SIBLING;\ + if(SYNCTEX_CAN_PERFORM(NEW_SIBLING,parent) && SYNCTEX_CAN_PERFORM(NODE,parent)) {\ + SYNCTEX_GETTER(NEW_SIBLING,parent)[0]=SYNCTEX_GETTER(NODE,parent)[0];\ + }\ + } +/* Friend getter and setter. A friend is a kern, math, glue or void box node which tag and line numbers are similar. + * This is a first filter on the nodes that avoids testing all of them. + * Friends are used mainly in forward synchronization aka from source to output. + */ +# define SYNCTEX_FRIEND(NODE) SYNCTEX_GET(NODE,friend) +# define SYNCTEX_SET_FRIEND(NODE,NEW_FRIEND) if(NODE && NEW_FRIEND){\ + SYNCTEX_GETTER(NODE,friend)[0]=NEW_FRIEND;\ + } + +/* Next box getter and setter. The box tree can be traversed from one horizontal box to the other. + * Navigation starts with the deeper boxes. + */ +# define SYNCTEX_NEXT_HORIZ_BOX(NODE) SYNCTEX_GET(NODE,next_box) +# define SYNCTEX_SET_NEXT_HORIZ_BOX(NODE,NEXT_BOX) if(NODE && NEXT_BOX){\ + SYNCTEX_GETTER(NODE,next_box)[0]=NEXT_BOX;\ + } + +void _synctex_free_node(synctex_node_t node); +void _synctex_free_leaf(synctex_node_t node); + +/* A node is meant to own its child and sibling. + * It is not owned by its parent, unless it is its first child. + * This destructor is for all nodes with children. + */ +void _synctex_free_node(synctex_node_t node) { + if(node) { + (*((node->class)->sibling))(node); + SYNCTEX_FREE(SYNCTEX_SIBLING(node)); + SYNCTEX_FREE(SYNCTEX_CHILD(node)); + free(node); + } + return; +} + +/* A node is meant to own its child and sibling. + * It is not owned by its parent, unless it is its first child. + * This destructor is for nodes with no child. + */ +void _synctex_free_leaf(synctex_node_t node) { + if(node) { + SYNCTEX_FREE(SYNCTEX_SIBLING(node)); + free(node); + } + return; +} +# ifdef __SYNCTEX_WORK__ +# include "/usr/include/zlib.h" +# else +# include <zlib.h> +# endif + +/* The synctex scanner is the root object. + * Is is initialized with the contents of a text file or a gzipped file. + * The buffer_? are first used to parse the text. + */ +struct __synctex_scanner_t { + gzFile file; /* The (possibly compressed) file */ + char * buffer_cur; /* current location in the buffer */ + char * buffer_start; /* start of the buffer */ + char * buffer_end; /* end of the buffer */ + char * output_fmt; /* dvi or pdf, not yet used */ + char * output; /* the output name used to create the scanner */ + char * synctex; /* the .synctex or .synctex.gz name used to create the scanner */ + int version; /* 1, not yet used */ + struct { + unsigned has_parsed:1; /* Whether the scanner has parsed its underlying synctex file. */ + unsigned reserved:sizeof(unsigned)-1; /* alignment */ + } flags; + int pre_magnification; /* magnification from the synctex preamble */ + int pre_unit; /* unit from the synctex preamble */ + int pre_x_offset; /* X offste from the synctex preamble */ + int pre_y_offset; /* Y offset from the synctex preamble */ + int count; /* Number of records, from the synctex postamble */ + float unit; /* real unit, from synctex preamble or post scriptum */ + float x_offset; /* X offset, from synctex preamble or post scriptum */ + float y_offset; /* Y Offset, from synctex preamble or post scriptum */ + synctex_node_t sheet; /* The first sheet node, its siblings are the other sheet nodes */ + synctex_node_t input; /* The first input node, its siblings are the other input nodes */ + int number_of_lists; /* The number of friend lists */ + synctex_node_t * lists_of_friends;/* The friend lists */ + _synctex_class_t class[synctex_node_number_of_types]; /* The classes of the nodes of the scanner */ +}; + +/* SYNCTEX_CUR, SYNCTEX_START and SYNCTEX_END are convenient shortcuts + */ +# define SYNCTEX_CUR (scanner->buffer_cur) +# define SYNCTEX_START (scanner->buffer_start) +# define SYNCTEX_END (scanner->buffer_end) + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark OBJECTS, their creators and destructors. +# endif + +/* Here, we define the indices for the different informations. + * They are used to declare the size of the implementation. + * For example, if one object uses SYNCTEX_HORIZ_IDX is its size, + * then its info will contain a tag, line, column, horiz but no width nor height nor depth + */ + +/* The sheet is a first level node. + * It has no parent (the parent is the scanner itself) + * Its sibling points to another sheet. + * Its child points to its first child, in general a box. + * A sheet node contains only one synctex information: the page. + * This is the 1 based page index as given by TeX. + */ +/* The next macros are used to access the node info + * SYNCTEX_INFO(node) points to the first synctex integer or pointer data of node + * SYNCTEX_INFO(node)[index] is the information at index + * for example, the page of a sheet is stored in SYNCTEX_INFO(sheet)[SYNCTEX_PAGE_IDX] + */ +# define SYNCTEX_INFO(NODE) ((*((((NODE)->class))->info))(NODE)) +# define SYNCTEX_PAGE_IDX 0 +# define SYNCTEX_PAGE(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_PAGE_IDX].INT + +/* This macro defines implementation offsets + * It is only used for pointer values + */ +# define SYNCTEX_MAKE_GET(SYNCTEX_GETTER,OFFSET)\ +synctex_node_t * SYNCTEX_GETTER (synctex_node_t node);\ +synctex_node_t * SYNCTEX_GETTER (synctex_node_t node) {\ + return node?(synctex_node_t *)((&((node)->implementation))+OFFSET):NULL;\ +} +SYNCTEX_MAKE_GET(_synctex_implementation_0,0) +SYNCTEX_MAKE_GET(_synctex_implementation_1,1) +SYNCTEX_MAKE_GET(_synctex_implementation_2,2) +SYNCTEX_MAKE_GET(_synctex_implementation_3,3) +SYNCTEX_MAKE_GET(_synctex_implementation_4,4) +SYNCTEX_MAKE_GET(_synctex_implementation_5,5) + +typedef struct { + synctex_class_t class; + synctex_info_t implementation[3+SYNCTEX_PAGE_IDX+1];/* child, sibling, next box, + * SYNCTEX_PAGE_IDX */ +} synctex_sheet_t; + +synctex_node_t _synctex_new_sheet(synctex_scanner_t scanner); +void _synctex_display_sheet(synctex_node_t sheet); +void _synctex_log_sheet(synctex_node_t sheet); + +static _synctex_class_t synctex_class_sheet = { + NULL, /* No scanner yet */ + synctex_node_type_sheet, /* Node type */ + &_synctex_new_sheet, /* creator */ + &_synctex_free_node, /* destructor */ + &_synctex_log_sheet, /* log */ + &_synctex_display_sheet, /* display */ + NULL, /* No parent */ + &_synctex_implementation_0, /* child */ + &_synctex_implementation_1, /* sibling */ + NULL, /* No friend */ + &_synctex_implementation_2, /* Next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 /* info */ +}; + +/* sheet node creator */ +synctex_node_t _synctex_new_sheet(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_sheet_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_sheet:(synctex_class_t)&synctex_class_sheet; + } + return node; +} + +/* A box node contains navigation and synctex information + * There are different kind of boxes. + * Only horizontal boxes are treated differently because of their visible size. + */ +# define SYNCTEX_TAG_IDX 0 +# define SYNCTEX_LINE_IDX (SYNCTEX_TAG_IDX+1) +# define SYNCTEX_COLUMN_IDX (SYNCTEX_LINE_IDX+1) +# define SYNCTEX_HORIZ_IDX (SYNCTEX_COLUMN_IDX+1) +# define SYNCTEX_VERT_IDX (SYNCTEX_HORIZ_IDX+1) +# define SYNCTEX_WIDTH_IDX (SYNCTEX_VERT_IDX+1) +# define SYNCTEX_HEIGHT_IDX (SYNCTEX_WIDTH_IDX+1) +# define SYNCTEX_DEPTH_IDX (SYNCTEX_HEIGHT_IDX+1) +/* the corresponding info accessors */ +# define SYNCTEX_TAG(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_TAG_IDX].INT +# define SYNCTEX_LINE(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_LINE_IDX].INT +# define SYNCTEX_COLUMN(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_COLUMN_IDX].INT +# define SYNCTEX_HORIZ(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HORIZ_IDX].INT +# define SYNCTEX_VERT(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_VERT_IDX].INT +# define SYNCTEX_WIDTH(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_WIDTH_IDX].INT +# define SYNCTEX_HEIGHT(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HEIGHT_IDX].INT +# define SYNCTEX_DEPTH(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_DEPTH_IDX].INT +# define SYNCTEX_ABS_WIDTH(NODE) ((SYNCTEX_WIDTH(NODE)>0?SYNCTEX_WIDTH(NODE):-SYNCTEX_WIDTH(NODE))) +# define SYNCTEX_ABS_HEIGHT(NODE) ((SYNCTEX_HEIGHT(NODE)>0?SYNCTEX_HEIGHT(NODE):-SYNCTEX_HEIGHT(NODE))) +# define SYNCTEX_ABS_DEPTH(NODE) ((SYNCTEX_DEPTH(NODE)>0?SYNCTEX_DEPTH(NODE):-SYNCTEX_DEPTH(NODE))) + +typedef struct { + synctex_class_t class; + synctex_info_t implementation[5+SYNCTEX_DEPTH_IDX+1]; /* parent,child,sibling,friend,next box, + * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, + * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH */ +} synctex_vert_box_node_t; + +synctex_node_t _synctex_new_vbox(synctex_scanner_t scanner); +void _synctex_log_box(synctex_node_t sheet); +void _synctex_display_vbox(synctex_node_t node); + +/* These are static class objects, each scanner will make a copy of them and setup the scanner field. + */ +static _synctex_class_t synctex_class_vbox = { + NULL, /* No scanner yet */ + synctex_node_type_vbox, /* Node type */ + &_synctex_new_vbox, /* creator */ + &_synctex_free_node, /* destructor */ + &_synctex_log_box, /* log */ + &_synctex_display_vbox, /* display */ + &_synctex_implementation_0, /* parent */ + &_synctex_implementation_1, /* child */ + &_synctex_implementation_2, /* sibling */ + &_synctex_implementation_3, /* friend */ + &_synctex_implementation_4, /* next box */ + (_synctex_info_getter_t)&_synctex_implementation_5 +}; + +/* vertical box node creator */ +synctex_node_t _synctex_new_vbox(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_vert_box_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_vbox:(synctex_class_t)&synctex_class_vbox; + } + return node; +} + +# define SYNCTEX_HORIZ_V_IDX (SYNCTEX_DEPTH_IDX+1) +# define SYNCTEX_VERT_V_IDX (SYNCTEX_HORIZ_V_IDX+1) +# define SYNCTEX_WIDTH_V_IDX (SYNCTEX_VERT_V_IDX+1) +# define SYNCTEX_HEIGHT_V_IDX (SYNCTEX_WIDTH_V_IDX+1) +# define SYNCTEX_DEPTH_V_IDX (SYNCTEX_HEIGHT_V_IDX+1) +/* the corresponding info accessors */ +# define SYNCTEX_HORIZ_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HORIZ_V_IDX].INT +# define SYNCTEX_VERT_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_VERT_V_IDX].INT +# define SYNCTEX_WIDTH_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_WIDTH_V_IDX].INT +# define SYNCTEX_HEIGHT_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_HEIGHT_V_IDX].INT +# define SYNCTEX_DEPTH_V(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_DEPTH_V_IDX].INT +# define SYNCTEX_ABS_WIDTH_V(NODE) ((SYNCTEX_WIDTH_V(NODE)>0?SYNCTEX_WIDTH_V(NODE):-SYNCTEX_WIDTH_V(NODE))) +# define SYNCTEX_ABS_HEIGHT_V(NODE) ((SYNCTEX_HEIGHT_V(NODE)>0?SYNCTEX_HEIGHT_V(NODE):-SYNCTEX_HEIGHT_V(NODE))) +# define SYNCTEX_ABS_DEPTH_V(NODE) ((SYNCTEX_DEPTH_V(NODE)>0?SYNCTEX_DEPTH_V(NODE):-SYNCTEX_DEPTH_V(NODE))) + +/* Horizontal boxes must contain visible size, because 0 width does not mean emptiness */ +typedef struct { + synctex_class_t class; + synctex_info_t implementation[5+SYNCTEX_DEPTH_V_IDX+1]; /*parent,child,sibling,friend,next box, + * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, + * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH, + * SYNCTEX_HORIZ_V,SYNCTEX_VERT_V,SYNCTEX_WIDTH_V,SYNCTEX_HEIGHT_V,SYNCTEX_DEPTH_V*/ +} synctex_horiz_box_node_t; + +synctex_node_t _synctex_new_hbox(synctex_scanner_t scanner); +void _synctex_display_hbox(synctex_node_t node); +void _synctex_log_horiz_box(synctex_node_t sheet); + + +static _synctex_class_t synctex_class_hbox = { + NULL, /* No scanner yet */ + synctex_node_type_hbox, /* Node type */ + &_synctex_new_hbox, /* creator */ + &_synctex_free_node, /* destructor */ + &_synctex_log_horiz_box, /* log */ + &_synctex_display_hbox, /* display */ + &_synctex_implementation_0, /* parent */ + &_synctex_implementation_1, /* child */ + &_synctex_implementation_2, /* sibling */ + &_synctex_implementation_3, /* friend */ + &_synctex_implementation_4, /* next box */ + (_synctex_info_getter_t)&_synctex_implementation_5 +}; + +/* horizontal box node creator */ +synctex_node_t _synctex_new_hbox(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_horiz_box_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_hbox:(synctex_class_t)&synctex_class_hbox; + } + return node; +} + +/* This void box node implementation is either horizontal or vertical + * It does not contain a child field. + */ +typedef struct { + synctex_class_t class; + synctex_info_t implementation[3+SYNCTEX_DEPTH_IDX+1]; /* parent,sibling,friend, + * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, + * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH,SYNCTEX_HEIGHT,SYNCTEX_DEPTH*/ +} synctex_void_box_node_t; + +synctex_node_t _synctex_new_void_vbox(synctex_scanner_t scanner); +void _synctex_log_void_box(synctex_node_t sheet); +void _synctex_display_void_vbox(synctex_node_t node); + +static _synctex_class_t synctex_class_void_vbox = { + NULL, /* No scanner yet */ + synctex_node_type_void_vbox,/* Node type */ + &_synctex_new_void_vbox, /* creator */ + &_synctex_free_node, /* destructor */ + &_synctex_log_void_box, /* log */ + &_synctex_display_void_vbox,/* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; + +/* vertical void box node creator */ +synctex_node_t _synctex_new_void_vbox(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_void_box_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_void_vbox:(synctex_class_t)&synctex_class_void_vbox; + } + return node; +} + +synctex_node_t _synctex_new_void_hbox(synctex_scanner_t scanner); +void _synctex_display_void_hbox(synctex_node_t node); + +static _synctex_class_t synctex_class_void_hbox = { + NULL, /* No scanner yet */ + synctex_node_type_void_hbox,/* Node type */ + &_synctex_new_void_hbox, /* creator */ + &_synctex_free_node, /* destructor */ + &_synctex_log_void_box, /* log */ + &_synctex_display_void_hbox,/* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; + +/* horizontal void box node creator */ +synctex_node_t _synctex_new_void_hbox(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_void_box_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_void_hbox:(synctex_class_t)&synctex_class_void_hbox; + } + return node; +} + +/* The medium nodes correspond to kern, glue, penalty and math nodes. */ +typedef struct { + synctex_class_t class; + synctex_info_t implementation[3+SYNCTEX_WIDTH_IDX+1]; /* parent,sibling,friend, + * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, + * SYNCTEX_HORIZ,SYNCTEX_VERT,SYNCTEX_WIDTH */ +} synctex_medium_node_t; + +#define SYNCTEX_IS_BOX(NODE)\ + ((NODE->class->type == synctex_node_type_vbox)\ + || (NODE->class->type == synctex_node_type_void_vbox)\ + || (NODE->class->type == synctex_node_type_hbox)\ + || (NODE->class->type == synctex_node_type_void_hbox)) + +#define SYNCTEX_HAS_CHILDREN(NODE) (NODE && SYNCTEX_CHILD(NODE)) + +void _synctex_log_medium_node(synctex_node_t node); + +/* math node creator */ +synctex_node_t _synctex_new_math(synctex_scanner_t scanner); +void _synctex_display_math(synctex_node_t node); + +static _synctex_class_t synctex_class_math = { + NULL, /* No scanner yet */ + synctex_node_type_math, /* Node type */ + &_synctex_new_math, /* creator */ + &_synctex_free_leaf, /* destructor */ + &_synctex_log_medium_node, /* log */ + &_synctex_display_math, /* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; + +synctex_node_t _synctex_new_math(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_math:(synctex_class_t)&synctex_class_math; + } + return node; +} + +/* kern node creator */ +synctex_node_t _synctex_new_kern(synctex_scanner_t scanner); +void _synctex_display_kern(synctex_node_t node); + +static _synctex_class_t synctex_class_kern = { + NULL, /* No scanner yet */ + synctex_node_type_kern, /* Node type */ + &_synctex_new_kern, /* creator */ + &_synctex_free_leaf, /* destructor */ + &_synctex_log_medium_node, /* log */ + &_synctex_display_kern, /* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; + +synctex_node_t _synctex_new_kern(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_kern:(synctex_class_t)&synctex_class_kern; + } + return node; +} + +/* The small nodes correspond to glue and boundary nodes. */ +typedef struct { + synctex_class_t class; + synctex_info_t implementation[3+SYNCTEX_VERT_IDX+1]; /* parent,sibling,friend, + * SYNCTEX_TAG,SYNCTEX_LINE,SYNCTEX_COLUMN, + * SYNCTEX_HORIZ,SYNCTEX_VERT */ +} synctex_small_node_t; + +void _synctex_log_small_node(synctex_node_t node); +/* glue node creator */ +synctex_node_t _synctex_new_glue(synctex_scanner_t scanner); +void _synctex_display_glue(synctex_node_t node); + +static _synctex_class_t synctex_class_glue = { + NULL, /* No scanner yet */ + synctex_node_type_glue, /* Node type */ + &_synctex_new_glue, /* creator */ + &_synctex_free_leaf, /* destructor */ + &_synctex_log_medium_node, /* log */ + &_synctex_display_glue, /* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; +synctex_node_t _synctex_new_glue(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_medium_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_glue:(synctex_class_t)&synctex_class_glue; + } + return node; +} + +/* boundary node creator */ +synctex_node_t _synctex_new_boundary(synctex_scanner_t scanner); +void _synctex_display_boundary(synctex_node_t node); + +static _synctex_class_t synctex_class_boundary = { + NULL, /* No scanner yet */ + synctex_node_type_boundary, /* Node type */ + &_synctex_new_boundary, /* creator */ + &_synctex_free_leaf, /* destructor */ + &_synctex_log_small_node, /* log */ + &_synctex_display_boundary, /* display */ + &_synctex_implementation_0, /* parent */ + NULL, /* No child */ + &_synctex_implementation_1, /* sibling */ + &_synctex_implementation_2, /* friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_3 +}; + +synctex_node_t _synctex_new_boundary(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_small_node_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_boundary:(synctex_class_t)&synctex_class_boundary; + } + return node; +} + +# define SYNCTEX_NAME_IDX (SYNCTEX_TAG_IDX+1) +# define SYNCTEX_NAME(NODE) SYNCTEX_INFO(NODE)[SYNCTEX_NAME_IDX].PTR + +/* Input nodes only know about their sibling, which is another input node. + * The synctex information is the SYNCTEX_TAG and SYNCTEX_NAME*/ +typedef struct { + synctex_class_t class; + synctex_info_t implementation[1+SYNCTEX_NAME_IDX+1]; /* sibling, + * SYNCTEX_TAG,SYNCTEX_NAME */ +} synctex_input_t; + +synctex_node_t _synctex_new_input(synctex_scanner_t scanner); +void _synctex_free_input(synctex_node_t node); +void _synctex_display_input(synctex_node_t node); +void _synctex_log_input(synctex_node_t sheet); + +static _synctex_class_t synctex_class_input = { + NULL, /* No scanner yet */ + synctex_node_type_input, /* Node type */ + &_synctex_new_input, /* creator */ + &_synctex_free_input, /* destructor */ + &_synctex_log_input, /* log */ + &_synctex_display_input, /* display */ + NULL, /* No parent */ + NULL, /* No child */ + &_synctex_implementation_0, /* sibling */ + NULL, /* No friend */ + NULL, /* No next box */ + (_synctex_info_getter_t)&_synctex_implementation_1 +}; + +synctex_node_t _synctex_new_input(synctex_scanner_t scanner) { + synctex_node_t node = _synctex_malloc(sizeof(synctex_input_t)); + if(node) { + node->class = scanner?scanner->class+synctex_node_type_input:(synctex_class_t)&synctex_class_input; + } + return node; +} +void _synctex_free_input(synctex_node_t node){ + if(node) { + SYNCTEX_FREE(SYNCTEX_SIBLING(node)); + free(SYNCTEX_NAME(node)); + free(node); + } +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Navigation +# endif +synctex_node_t synctex_node_parent(synctex_node_t node) +{ + return SYNCTEX_PARENT(node); +} +synctex_node_t synctex_node_sheet(synctex_node_t node) +{ + while(node && node->class->type != synctex_node_type_sheet) { + node = SYNCTEX_PARENT(node); + } + /* exit the while loop either when node is NULL or node is a sheet */ + return node; +} +synctex_node_t synctex_node_child(synctex_node_t node) +{ + return SYNCTEX_CHILD(node); +} +synctex_node_t synctex_node_sibling(synctex_node_t node) +{ + return SYNCTEX_SIBLING(node); +} +synctex_node_t synctex_node_next(synctex_node_t node) { + if(SYNCTEX_CHILD(node)) { + return SYNCTEX_CHILD(node); + } +sibling: + if(SYNCTEX_SIBLING(node)) { + return SYNCTEX_SIBLING(node); + } + if((node = SYNCTEX_PARENT(node))) { + if(node->class->type == synctex_node_type_sheet) {/* EXC_BAD_ACCESS? */ + return NULL; + } + goto sibling; + } + return NULL; +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark CLASS +# endif + +/* Public node accessor: the type */ +synctex_node_type_t synctex_node_type(synctex_node_t node) { + if(node) { + return (((node)->class))->type; + } + return synctex_node_type_error; +} + +/* Public node accessor: the human readable type */ +const char * synctex_node_isa(synctex_node_t node) { +static const char * isa[synctex_node_number_of_types] = + {"Not a node","input","sheet","vbox","void vbox","hbox","void hbox","kern","glue","math","boundary"}; + return isa[synctex_node_type(node)]; +} + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark SYNCTEX_LOG +# endif + +# define SYNCTEX_LOG(NODE) SYNCTEX_MSG_SEND(NODE,log) + +/* Public node logger */ +void synctex_node_log(synctex_node_t node) { + SYNCTEX_LOG(node); +} + +# define SYNCTEX_DISPLAY(NODE) SYNCTEX_MSG_SEND(NODE,display) + +void synctex_node_display(synctex_node_t node) { + SYNCTEX_DISPLAY(node); +} + +void _synctex_display_input(synctex_node_t node) { + printf("....Input:%i:%s\n", + SYNCTEX_TAG(node), + SYNCTEX_NAME(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_log_sheet(synctex_node_t sheet) { + if(sheet) { + printf("%s:%i\n",synctex_node_isa(sheet),SYNCTEX_PAGE(sheet)); + printf("SELF:%p",(void *)sheet); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(sheet)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(sheet)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(sheet)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(sheet)); + } +} + +void _synctex_log_small_node(synctex_node_t node) { + printf("%s:%i,%i:%i,%i\n", + synctex_node_isa(node), + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node)); + printf("SELF:%p",(void *)node); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); +} + +void _synctex_log_medium_node(synctex_node_t node) { + printf("%s:%i,%i:%i,%i:%i\n", + synctex_node_isa(node), + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node)); + printf("SELF:%p",(void *)node); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); +} + +void _synctex_log_void_box(synctex_node_t node) { + printf("%s",synctex_node_isa(node)); + printf(":%i",SYNCTEX_TAG(node)); + printf(",%i",SYNCTEX_LINE(node)); + printf(",%i",0); + printf(":%i",SYNCTEX_HORIZ(node)); + printf(",%i",SYNCTEX_VERT(node)); + printf(":%i",SYNCTEX_WIDTH(node)); + printf(",%i",SYNCTEX_HEIGHT(node)); + printf(",%i",SYNCTEX_DEPTH(node)); + printf("\nSELF:%p",(void *)node); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); +} + +void _synctex_log_box(synctex_node_t node) { + printf("%s",synctex_node_isa(node)); + printf(":%i",SYNCTEX_TAG(node)); + printf(",%i",SYNCTEX_LINE(node)); + printf(",%i",0); + printf(":%i",SYNCTEX_HORIZ(node)); + printf(",%i",SYNCTEX_VERT(node)); + printf(":%i",SYNCTEX_WIDTH(node)); + printf(",%i",SYNCTEX_HEIGHT(node)); + printf(",%i",SYNCTEX_DEPTH(node)); + printf("\nSELF:%p",(void *)node); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); +} + +void _synctex_log_horiz_box(synctex_node_t node) { + printf("%s",synctex_node_isa(node)); + printf(":%i",SYNCTEX_TAG(node)); + printf(",%i",SYNCTEX_LINE(node)); + printf(",%i",0); + printf(":%i",SYNCTEX_HORIZ(node)); + printf(",%i",SYNCTEX_VERT(node)); + printf(":%i",SYNCTEX_WIDTH(node)); + printf(",%i",SYNCTEX_HEIGHT(node)); + printf(",%i",SYNCTEX_DEPTH(node)); + printf("/%i",SYNCTEX_HORIZ_V(node)); + printf(",%i",SYNCTEX_VERT_V(node)); + printf(":%i",SYNCTEX_WIDTH_V(node)); + printf(",%i",SYNCTEX_HEIGHT_V(node)); + printf(",%i",SYNCTEX_DEPTH_V(node)); + printf("\nSELF:%p",(void *)node); + printf(" SYNCTEX_PARENT:%p",(void *)SYNCTEX_PARENT(node)); + printf(" SYNCTEX_CHILD:%p",(void *)SYNCTEX_CHILD(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); + printf(" SYNCTEX_FRIEND:%p\n",(void *)SYNCTEX_FRIEND(node)); +} + +void _synctex_log_input(synctex_node_t node) { + printf("%s",synctex_node_isa(node)); + printf(":%i",SYNCTEX_TAG(node)); + printf(",%s",SYNCTEX_NAME(node)); + printf(" SYNCTEX_SIBLING:%p",(void *)SYNCTEX_SIBLING(node)); +} + +void _synctex_display_sheet(synctex_node_t sheet) { + if(sheet) { + printf("....{%i\n",SYNCTEX_PAGE(sheet)); + SYNCTEX_DISPLAY(SYNCTEX_CHILD(sheet)); + printf("....}\n"); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(sheet)); + } +} + +void _synctex_display_vbox(synctex_node_t node) { + printf("....[%i,%i:%i,%i:%i,%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node), + SYNCTEX_HEIGHT(node), + SYNCTEX_DEPTH(node)); + SYNCTEX_DISPLAY(SYNCTEX_CHILD(node)); + printf("....]\n"); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_hbox(synctex_node_t node) { + printf("....(%i,%i:%i,%i:%i,%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node), + SYNCTEX_HEIGHT(node), + SYNCTEX_DEPTH(node)); + SYNCTEX_DISPLAY(SYNCTEX_CHILD(node)); + printf("....)\n"); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_void_vbox(synctex_node_t node) { + printf("....v%i,%i;%i,%i:%i,%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node), + SYNCTEX_HEIGHT(node), + SYNCTEX_DEPTH(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_void_hbox(synctex_node_t node) { + printf("....h%i,%i:%i,%i:%i,%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node), + SYNCTEX_HEIGHT(node), + SYNCTEX_DEPTH(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_glue(synctex_node_t node) { + printf("....glue:%i,%i:%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_math(synctex_node_t node) { + printf("....math:%i,%i:%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_kern(synctex_node_t node) { + printf("....kern:%i,%i:%i,%i:%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node), + SYNCTEX_WIDTH(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +void _synctex_display_boundary(synctex_node_t node) { + printf("....boundary:%i,%i:%i,%i\n", + SYNCTEX_TAG(node), + SYNCTEX_LINE(node), + SYNCTEX_HORIZ(node), + SYNCTEX_VERT(node)); + SYNCTEX_DISPLAY(SYNCTEX_SIBLING(node)); +} + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark SCANNER +# endif + +/* Here are gathered all the possible status that the next scanning functions will return. + * All these functions return a status, and pass their result through pointers. + * Negative values correspond to errors. + * The management of the buffer is causing some significant overhead. + * Every function that may access the buffer returns a status related to the buffer and file state. + * status >= SYNCTEX_STATUS_OK means the function worked as expected + * status < SYNCTEX_STATUS_OK means the function did not work as expected + * status == SYNCTEX_STATUS_NOT_OK means the function did not work as expected but there is still some material to parse. + * status == SYNCTEX_STATUS_EOF means the function did not work as expected and there is no more material. + * status<SYNCTEX_STATUS_EOF means an error + */ +typedef int synctex_status_t; +/* When the end of the synctex file has been reached: */ +# define SYNCTEX_STATUS_EOF 0 +/* When the function could not return the value it was asked for: */ +# define SYNCTEX_STATUS_NOT_OK (SYNCTEX_STATUS_EOF+1) +/* When the function returns the value it was asked for: */ +# define SYNCTEX_STATUS_OK (SYNCTEX_STATUS_NOT_OK+1) +/* Generic error: */ +# define SYNCTEX_STATUS_ERROR -1 +/* Parameter error: */ +# define SYNCTEX_STATUS_BAD_ARGUMENT -2 + +# define SYNCTEX_FILE (scanner->file) + +/* Actually, the minimum buffer size is driven by integer and float parsing. + * Ā¬Ā±0.123456789e123 + */ +# define SYNCTEX_BUFFER_MIN_SIZE 16 +# define SYNCTEX_BUFFER_SIZE 32768 + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Prototypes +# endif +void _synctex_log_void_box(synctex_node_t node); +void _synctex_log_box(synctex_node_t node); +void _synctex_log_horiz_box(synctex_node_t node); +void _synctex_log_input(synctex_node_t node); +synctex_status_t _synctex_buffer_get_available_size(synctex_scanner_t scanner, size_t * size_ptr); +synctex_status_t _synctex_next_line(synctex_scanner_t scanner); +synctex_status_t _synctex_match_string(synctex_scanner_t scanner, const char * the_string); +synctex_status_t _synctex_decode_int(synctex_scanner_t scanner, int* value_ref); +synctex_status_t _synctex_decode_string(synctex_scanner_t scanner, char ** value_ref); +synctex_status_t _synctex_scan_input(synctex_scanner_t scanner); +synctex_status_t _synctex_scan_preamble(synctex_scanner_t scanner); +synctex_status_t _synctex_scan_float_and_dimension(synctex_scanner_t scanner, float * value_ref); +synctex_status_t _synctex_scan_post_scriptum(synctex_scanner_t scanner); +int _synctex_scan_postamble(synctex_scanner_t scanner); +synctex_status_t _synctex_setup_visible_box(synctex_node_t box); +synctex_status_t _synctex_horiz_box_setup_visible(synctex_node_t node,int h, int v); +synctex_status_t _synctex_scan_sheet(synctex_scanner_t scanner, synctex_node_t parent); +synctex_status_t _synctex_scan_content(synctex_scanner_t scanner); +int synctex_scanner_pre_x_offset(synctex_scanner_t scanner); +int synctex_scanner_pre_y_offset(synctex_scanner_t scanner); +const char * synctex_scanner_get_output_fmt(synctex_scanner_t scanner); +int _synctex_node_is_box(synctex_node_t node); +int _synctex_bail(void); + +/* Try to ensure that the buffer contains at least size bytes. + * Passing a huge size argument means the whole buffer length. + * Passing a null size argument means return the available buffer length, without reading the file. + * In that case, the return status is always SYNCTEX_STATUS_OK unless the given scanner is NULL, + * in which case, SYNCTEX_STATUS_BAD_ARGUMENT is returned. + * The value returned in size_ptr is the number of bytes now available in the buffer. + * This is a nonnegative integer, it may take the value 0. + * It is the responsibility of the caller to test whether this size is conforming to its needs. + * Negative values may return in case of error, actually + * when there was an error reading the synctex file. */ +synctex_status_t _synctex_buffer_get_available_size(synctex_scanner_t scanner, size_t * size_ptr) { + size_t available = 0; + if(NULL == scanner || NULL == size_ptr) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } +# define size (* size_ptr) + if(size>SYNCTEX_BUFFER_SIZE){ + size = SYNCTEX_BUFFER_SIZE; + } + available = SYNCTEX_END - SYNCTEX_CUR; /* available is the number of unparsed chars in the buffer */ + if(size<=available) { + /* There are already sufficiently many characters in the buffer */ + size = available; + return SYNCTEX_STATUS_OK; + } + if(SYNCTEX_FILE) { + /* Copy the remaining part of the buffer to the beginning, + * then read the next part of the file */ + int already_read = 0; + if(available) { + memmove(SYNCTEX_START, SYNCTEX_CUR, available); + } + SYNCTEX_CUR = SYNCTEX_START + available; /* the next character after the move, will change. */ + /* Fill the buffer up to its end */ + already_read = gzread(SYNCTEX_FILE,(void *)SYNCTEX_CUR,SYNCTEX_BUFFER_SIZE - available); + if(already_read>0) { + /* We assume that 0<already_read<=SYNCTEX_BUFFER_SIZE - available, such that + * SYNCTEX_CUR + already_read = SYNCTEX_START + available + already_read <= SYNCTEX_START + SYNCTEX_BUFFER_SIZE */ + SYNCTEX_END = SYNCTEX_CUR + already_read; + /* If the end of the file was reached, all the required SYNCTEX_BUFFER_SIZE - available + * may not be filled with values from the file. + * In that case, the buffer should stop properly after already_read characters. */ + * SYNCTEX_END = '\0'; + SYNCTEX_CUR = SYNCTEX_START; + size = SYNCTEX_END - SYNCTEX_CUR; /* == old available + already_read*/ + return SYNCTEX_STATUS_OK; /* May be available is less than size, the caller will have to test. */ + } else if(0>already_read) { + /* There is an error in zlib */ + int errnum = 0; + const char * error_string = gzerror(SYNCTEX_FILE, &errnum); + if(Z_ERRNO == errnum) { + /* There is an error in zlib caused by the file system */ + _synctex_error("gzread error from the file system (%i)",errno); + } else { + _synctex_error("gzread error (%i:%i,%s)",already_read,errnum,error_string); + } + return SYNCTEX_STATUS_ERROR; + } else { + /* Nothing was read, we are at the end of the file. */ + gzclose(SYNCTEX_FILE); + SYNCTEX_FILE = NULL; + SYNCTEX_END = SYNCTEX_CUR; + SYNCTEX_CUR = SYNCTEX_START; + * SYNCTEX_END = '\0';/* Terminate the string properly.*/ + size = SYNCTEX_END - SYNCTEX_CUR; + return SYNCTEX_STATUS_EOF; /* there might be a bit of text left */ + } + /* At this point, the function has already returned from above */ + } + /* We cannot enlarge the buffer because the end of the file was reached. */ + size = available; + return SYNCTEX_STATUS_EOF; +# undef size +} + +/* Used when parsing the synctex file. + * Advance to the next character starting a line. + * Actually, only '\n' is recognized as end of line marker. + * On normal completion, the returned value is the number of unparsed characters available in the buffer. + * In general, it is a positive value, 0 meaning that the end of file was reached. + * -1 is returned in case of error, actually because there was an error while feeding the buffer. + * When the function returns with no error, SYNCTEX_CUR points to the first character of the next line, if any. + * J. Laurens: Sat May 10 07:52:31 UTC 2008 + */ +synctex_status_t _synctex_next_line(synctex_scanner_t scanner) { + synctex_status_t status = SYNCTEX_STATUS_OK; + size_t available = 0; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } +infinite_loop: + while(SYNCTEX_CUR<SYNCTEX_END) { + if(*SYNCTEX_CUR == '\n') { + ++SYNCTEX_CUR; + available = 1; + return _synctex_buffer_get_available_size(scanner, &available); + } + ++SYNCTEX_CUR; + } + /* Here, we have SYNCTEX_CUR == SYNCTEX_END, such that the next call to _synctex_buffer_get_available_size + * will read another bunch of synctex file. Little by little, we advance to the end of the file. */ + available = 1; + status = _synctex_buffer_get_available_size(scanner, &available); + if(status<=0) { + return status; + } + goto infinite_loop; +} + +/* Scan the given string. + * Both scanner and the_string must not be NULL, and the_string must not be 0 length. + * SYNCTEX_STATUS_OK is returned if the string is found, + * SYNCTEX_STATUS_EOF is returned when the EOF is reached, + * SYNCTEX_STATUS_NOT_OK is returned is the string is not found, + * an error status is returned otherwise. + * This is a critical method because buffering renders things more difficult. + * The given string might be as long as the maximum size_t value. + * As side effect, the buffer state may have changed if the given argument string can't fit into the buffer. + */ +synctex_status_t _synctex_match_string(synctex_scanner_t scanner, const char * the_string) { + size_t tested_len = 0; /* the number of characters at the beginning of the_string that match */ + size_t remaining_len = 0; /* the number of remaining characters of the_string that should match */ + size_t available = 0; + synctex_status_t status = 0; + if(NULL == scanner || NULL == the_string) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + remaining_len = strlen(the_string); /* All the_string should match */ + if(0 == remaining_len) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + /* How many characters available in the buffer? */ + available = remaining_len; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status<SYNCTEX_STATUS_EOF) { + return status; + } + /* Maybe we have less characters than expected because the buffer is too small. */ + if(available>=remaining_len) { + /* The buffer is sufficiently big to hold the expected number of characters. */ + if(strncmp((char *)SYNCTEX_CUR,the_string,remaining_len)) { + return SYNCTEX_STATUS_NOT_OK; + } +return_OK: + /* Advance SYNCTEX_CUR to the next character after the_string. */ + SYNCTEX_CUR += remaining_len; + return SYNCTEX_STATUS_OK; + } else if(strncmp((char *)SYNCTEX_CUR,the_string,available)) { + /* No need to goo further, this is not the expected string in the buffer. */ + return SYNCTEX_STATUS_NOT_OK; + } else if(SYNCTEX_FILE) { + /* The buffer was too small to contain remaining_len characters. + * We have to cut the string into pieces. */ + z_off_t offset = 0L; + /* the first part of the string is found, advance the_string to the next untested character. */ + the_string += available; + /* update the remaining length and the parsed length. */ + remaining_len -= available; + tested_len += available; + SYNCTEX_CUR += available; /* We validate the tested characters. */ + if(0 == remaining_len) { + /* Nothing left to test, we have found the given string, we return the length. */ + return tested_len; + } + /* We also have to record the current state of the file cursor because + * if the_string does not match, all this should be a totally blank operation, + * for which the file and buffer states should not be modified at all. + * In fact, the states of the buffer before and after this function are in general different + * but they are totally equivalent as long as the values of the buffer before SYNCTEX_CUR + * can be safely discarded. */ + offset = gztell(SYNCTEX_FILE); + /* offset now corresponds to the first character of the file that was not buffered. */ + available = SYNCTEX_CUR - SYNCTEX_START; /* available can be used as temporary placeholder. */ + /* available now corresponds to the number of chars that where already buffered and + * that match the head of the_string. If in fine the_string does not match, all these chars must be recovered + * because the buffer contents is completely replaced by _synctex_buffer_get_available_size. + * They were buffered from offset-len location in the file. */ + offset -= available; +more_characters: + /* There is still some work to be done, so read another bunch of file. + * This is the second call to _synctex_buffer_get_available_size, + * which means that the actual contents of the buffer will be discarded. + * We will definitely have to recover the previous state in case we do not find the expected string. */ + available = remaining_len; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status<SYNCTEX_STATUS_EOF) { + return status; /* This is an error, no need to go further. */ + } + if(available==0) { + /* Missing characters: recover the initial state of the file and return. */ +return_NOT_OK: + if(offset != gzseek(SYNCTEX_FILE,offset,SEEK_SET)) { + /* This is a critical error, we could not recover the previous state. */ + _synctex_error("can't seek file"); + return SYNCTEX_STATUS_ERROR; + } + /* Next time we are asked to fill the buffer, + * we will read a complete bunch of text from the file. */ + SYNCTEX_CUR = SYNCTEX_END; + return SYNCTEX_STATUS_NOT_OK; + } + if(available<remaining_len) { + /* We'll have to loop one more time. */ + if(strncmp((char *)SYNCTEX_CUR,the_string,available)) { + /* This is not the expected string, recover the previous state and return. */ + goto return_NOT_OK; + } + /* Advance the_string to the first untested character. */ + the_string += available; + /* update the remaining length and the parsed length. */ + remaining_len -= available; + tested_len += available; + SYNCTEX_CUR += available; /* We validate the tested characters. */ + if(0 == remaining_len) { + /* Nothing left to test, we have found the given string. */ + return SYNCTEX_STATUS_OK; + } + goto more_characters; + } + /* This is the last step. */ + if(strncmp((char *)SYNCTEX_CUR,the_string,remaining_len)) { + /* This is not the expected string, recover the previous state and return. */ + goto return_NOT_OK; + } + goto return_OK; + } else { + /* The buffer can't contain the given string argument, and the EOF was reached */ + return SYNCTEX_STATUS_EOF; + } +} + +/* Used when parsing the synctex file. + * Decode an integer. + * First, field separators, namely ':' and ',' characters are skipped + * The returned value is negative if there is an unrecoverable error. + * It is SYNCTEX_STATUS_NOT_OK if an integer could not be parsed, for example + * if the characters at the current cursor position are not digits or + * if the end of the file has been reached. + * It is SYNCTEX_STATUS_OK if an int has been successfully parsed. + * The given scanner argument must not be NULL, on the contrary, value_ref may be NULL. + */ +synctex_status_t _synctex_decode_int(synctex_scanner_t scanner, int* value_ref) { + char * ptr = NULL; + char * end = NULL; + int result = 0; + size_t available = 0; + synctex_status_t status = 0; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + available = SYNCTEX_BUFFER_MIN_SIZE; + status = _synctex_buffer_get_available_size(scanner, &available); + if(status<SYNCTEX_STATUS_EOF) { + return status;/* Forward error. */ + } + if(available==0) { + return SYNCTEX_STATUS_EOF;/* it is the end of file. */ + } + ptr = SYNCTEX_CUR; + if(*ptr==':' || *ptr==',') { + ++ptr; + --available; + if(available==0) { + return SYNCTEX_STATUS_NOT_OK;/* It is not possible to scan an int */ + } + } + result = (int)strtol(ptr, &end, 10); + if(end>ptr) { + SYNCTEX_CUR = end; + if(value_ref) { + * value_ref = result; + } + return SYNCTEX_STATUS_OK;/* Successfully scanned an int */ + } + return SYNCTEX_STATUS_NOT_OK;/* Could not scan an int */ +} + +/* The purpose of this function is to read a string. + * A string is an array of characters from the current parser location + * and before the next '\n' character. + * If a string was properly decoded, it is returned in value_ref and + * the cursor points to the new line marker. + * The returned string was alloced on the heap, the caller is the owner and + * is responsible to free it in due time. + * If no string is parsed, * value_ref is undefined. + * The maximum length of a string that a scanner can decode is platform dependent, namely UINT_MAX. + * If you just want to blindly parse the file up to the end of the current line, + * use _synctex_next_line instead. + * On return, the scanner cursor is unchanged if a string could not be scanned or + * points to the terminating '\n' character otherwise. As a consequence, + * _synctex_next_line is necessary after. + * If either scanner or value_ref is NULL, it is considered as an error and + * SYNCTEX_STATUS_BAD_ARGUMENT is returned. + */ +synctex_status_t _synctex_decode_string(synctex_scanner_t scanner, char ** value_ref) { + char * end = NULL; + size_t current_size = 0; + size_t new_size = 0; + size_t len = 0;/* The number of bytes to copy */ + size_t available = 0; + synctex_status_t status = 0; + if(NULL == scanner || NULL == value_ref) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + /* The buffer must at least contain one character: the '\n' end of line marker */ + if(SYNCTEX_CUR>=SYNCTEX_END) { + available = 1; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status < 0) { + return status; + } + if(0 == available) { + return SYNCTEX_STATUS_EOF; + } + } + /* Now we are sure that there is at least one available character, either because + * SYNCTEX_CUR was already < SYNCTEX_END, or because the buffer has been properly filled. */ + /* end will point to the next unparsed '\n' character in the file, when mapped to the buffer. */ + end = SYNCTEX_CUR; + * value_ref = NULL;/* Initialize, it will be realloc'ed */ + /* We scan all the characters up to the next '\n' */ +next_character: + if(end<SYNCTEX_END) { + if(*end == '\n') { + /* OK, we found where to stop */ + len = end - SYNCTEX_CUR; + if(current_size>UINT_MAX-len-1) { + /* But we have reached the limit: we do not have current_size+len+1>UINT_MAX. + * We return the missing amount of memory. + * This will never occur in practice. */ + return UINT_MAX-len-1 - current_size; + } + new_size = current_size+len; + /* We have current_size+len+1<=UINT_MAX + * or equivalently new_size<UINT_MAX, + * where we have assumed that len<UINT_MAX */ + if((* value_ref = realloc(* value_ref,new_size+1)) != NULL) { + if(memcpy((*value_ref)+current_size,SYNCTEX_CUR,len)) { + (* value_ref)[new_size]='\0'; /* Terminate the string */ + SYNCTEX_CUR += len;/* Advance to the terminating '\n' */ + return SYNCTEX_STATUS_OK; + } + free(* value_ref); + * value_ref = NULL; + _synctex_error("could not copy memory (1)."); + return SYNCTEX_STATUS_ERROR; + } + _synctex_error("could not allocate memory (1)."); + return SYNCTEX_STATUS_ERROR; + } else { + ++end; + goto next_character; + } + } else { + /* end == SYNCTEX_END */ + len = SYNCTEX_END - SYNCTEX_CUR; + if(current_size>UINT_MAX-len-1) { + /* We have reached the limit. */ + _synctex_error("limit reached (missing %i).",current_size-(UINT_MAX-len-1)); + return SYNCTEX_STATUS_ERROR; + } + new_size = current_size+len; + if((* value_ref = realloc(* value_ref,new_size+1)) != NULL) { + if(memcpy((*value_ref)+current_size,SYNCTEX_CUR,len)) { + (* value_ref)[new_size]='\0'; /* Terminate the string */ + SYNCTEX_CUR = SYNCTEX_END;/* Advance the cursor to the end of the bufer */ + return SYNCTEX_STATUS_OK; + } + free(* value_ref); + * value_ref = NULL; + _synctex_error("could not copy memory (2)."); + return SYNCTEX_STATUS_ERROR; + } + /* Huge memory problem */ + _synctex_error("could not allocate memory (2)."); + return SYNCTEX_STATUS_ERROR; + } +} + +/* Used when parsing the synctex file. + * Read an Input record. + */ +synctex_status_t _synctex_scan_input(synctex_scanner_t scanner) { + synctex_status_t status = 0; + size_t available = 0; + synctex_node_t input = NULL; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + status = _synctex_match_string(scanner,"Input:"); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + /* Create a node */ + input = _synctex_new_input(scanner); + if(NULL == input) { + _synctex_error("could not create an input node."); + return SYNCTEX_STATUS_ERROR; + } + /* Decode the synctag */ + status = _synctex_decode_int(scanner,&(SYNCTEX_TAG(input))); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("bad format of input node."); + SYNCTEX_FREE(input); + return status; + } + /* The next character is a field separator, we expect one character in the buffer. */ + available = 1; + status = _synctex_buffer_get_available_size(scanner, &available); + if(status<=SYNCTEX_STATUS_ERROR) { + return status; + } + if(0 == available) { + return SYNCTEX_STATUS_EOF; + } + /* We can now safely advance to the next character, stepping over the field separator. */ + ++SYNCTEX_CUR; + --available; + /* Then we scan the file name */ + status = _synctex_decode_string(scanner,&(SYNCTEX_NAME(input))); + if(status<SYNCTEX_STATUS_OK) { + SYNCTEX_FREE(input); + return status; + } + /* Prepend this input node to the input linked list of the scanner */ + SYNCTEX_SET_SIBLING(input,scanner->input); + scanner->input = input; + return _synctex_next_line(scanner);/* read the line termination character, if any */ + /* Now, set up the path */ +} + +typedef synctex_status_t (*synctex_decoder_t)(synctex_scanner_t,void *); + +synctex_status_t _synctex_scan_named(synctex_scanner_t scanner,const char * name,void * value_ref,synctex_decoder_t decoder); + +/* Used when parsing the synctex file. + * Read one of the settings. + * On normal completion, returns SYNCTEX_STATUS_OK. + * On error, returns SYNCTEX_STATUS_ERROR. + * Both arguments must not be NULL. + * On return, the scanner points to the next character after the decoded object whatever it is. + * It is the responsibility of the caller to prepare the scanner for the next line. + */ +synctex_status_t _synctex_scan_named(synctex_scanner_t scanner,const char * name,void * value_ref,synctex_decoder_t decoder) { + synctex_status_t status = 0; + if(NULL == scanner || NULL == name || NULL == value_ref || NULL == decoder) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } +not_found: + status = _synctex_match_string(scanner,name); + if(status<SYNCTEX_STATUS_NOT_OK) { + return status; + } else if(status == SYNCTEX_STATUS_NOT_OK) { + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + goto not_found; + } + /* A line is found, scan the value */ + return (*decoder)(scanner,value_ref); +} + +/* Used when parsing the synctex file. + * Read the preamble. + */ +synctex_status_t _synctex_scan_preamble(synctex_scanner_t scanner) { + synctex_status_t status = 0; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + status = _synctex_scan_named(scanner,"SyncTeX Version:",&(scanner->version),(synctex_decoder_t)&_synctex_decode_int); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + /* Read all the input records */ + do { + status = _synctex_scan_input(scanner); + if(status<SYNCTEX_STATUS_NOT_OK) { + return status; + } + } while(status == SYNCTEX_STATUS_OK); + /* the loop exits when status == SYNCTEX_STATUS_NOT_OK */ + /* Now read all the required settings. */ + status = _synctex_scan_named(scanner,"Output:",&(scanner->output_fmt),(synctex_decoder_t)&_synctex_decode_string); + if(status<SYNCTEX_STATUS_NOT_OK) { + return status; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_scan_named(scanner,"Magnification:",&(scanner->pre_magnification),(synctex_decoder_t)&_synctex_decode_int); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_scan_named(scanner,"Unit:",&(scanner->pre_unit),(synctex_decoder_t)&_synctex_decode_int); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_scan_named(scanner,"X Offset:",&(scanner->pre_x_offset),(synctex_decoder_t)&_synctex_decode_int); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_scan_named(scanner,"Y Offset:",&(scanner->pre_y_offset),(synctex_decoder_t)&_synctex_decode_int); + if(status<SYNCTEX_STATUS_OK) { + return status; + } + return _synctex_next_line(scanner); +} + +/* parse a float with a dimension */ +synctex_status_t _synctex_scan_float_and_dimension(synctex_scanner_t scanner, float * value_ref) { + synctex_status_t status = 0; + char * endptr = NULL; + float f = 0; +#ifdef HAVE_SETLOCALE + char * loc = setlocale(LC_NUMERIC, NULL); +#endif + size_t available = 0; + if(NULL == scanner || NULL == value_ref) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + available = SYNCTEX_BUFFER_MIN_SIZE; + status = _synctex_buffer_get_available_size(scanner, &available); + if(status<SYNCTEX_STATUS_EOF) { + _synctex_error("problem with float."); + return status; + } +#ifdef HAVE_SETLOCALE + setlocale(LC_NUMERIC, "C"); +#endif + f = strtod(SYNCTEX_CUR,&endptr); +#ifdef HAVE_SETLOCALE + setlocale(LC_NUMERIC, loc); +#endif + if(endptr == SYNCTEX_CUR) { + _synctex_error("a float was expected."); + return SYNCTEX_STATUS_ERROR; + } + SYNCTEX_CUR = endptr; + if((status = _synctex_match_string(scanner,"in")) >= SYNCTEX_STATUS_OK) { + f *= 72.27f*65536; + } else if(status<SYNCTEX_STATUS_EOF) { +report_unit_error: + _synctex_error("problem with unit."); + return status; + } else if((status = _synctex_match_string(scanner,"cm")) >= SYNCTEX_STATUS_OK) { + f *= 72.27f*65536/2.54f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"mm")) >= SYNCTEX_STATUS_OK) { + f *= 72.27f*65536/25.4f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"pt")) >= SYNCTEX_STATUS_OK) { + f *= 65536.0f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"bp")) >= SYNCTEX_STATUS_OK) { + f *= 72.27f/72*65536.0f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"pc")) >= SYNCTEX_STATUS_OK) { + f *= 12.0*65536.0f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"sp")) >= SYNCTEX_STATUS_OK) { + f *= 1.0f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"dd")) >= SYNCTEX_STATUS_OK) { + f *= 1238.0f/1157*65536.0f; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"cc")) >= SYNCTEX_STATUS_OK) { + f *= 14856.0f/1157*65536; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"nd")) >= SYNCTEX_STATUS_OK) { + f *= 685.0f/642*65536; + } else if(status<0) { + goto report_unit_error; + } else if((status = _synctex_match_string(scanner,"nc")) >= SYNCTEX_STATUS_OK) { + f *= 1370.0f/107*65536; + } else if(status<0) { + goto report_unit_error; + } + *value_ref = f; + return SYNCTEX_STATUS_OK; +} + +/* parse the post scriptum + * SYNCTEX_STATUS_OK is returned on completion + * a negative error is returned otherwise */ +synctex_status_t _synctex_scan_post_scriptum(synctex_scanner_t scanner) { + synctex_status_t status = 0; + char * endptr = NULL; +#ifdef HAVE_SETLOCALE + char * loc = setlocale(LC_NUMERIC, NULL); +#endif + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + /* Scan the file until a post scriptum line is found */ +post_scriptum_not_found: + status = _synctex_match_string(scanner,"Post scriptum:"); + if(status<SYNCTEX_STATUS_NOT_OK) { + return status; + } + if(status == SYNCTEX_STATUS_NOT_OK) { + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_EOF) { + return status; + } else if(status<SYNCTEX_STATUS_OK) { + return SYNCTEX_STATUS_OK;/* The EOF is found, we have properly scanned the file */ + } + goto post_scriptum_not_found; + } + /* We found the name, advance to the next line. */ +next_line: + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_EOF) { + return status; + } else if(status<SYNCTEX_STATUS_OK) { + return SYNCTEX_STATUS_OK;/* The EOF is found, we have properly scanned the file */ + } + /* Scanning the information */ + status = _synctex_match_string(scanner,"Magnification:"); + if(status == SYNCTEX_STATUS_OK ) { +#ifdef HAVE_SETLOCALE + setlocale(LC_NUMERIC, "C"); +#endif + scanner->unit = strtod(SYNCTEX_CUR,&endptr); +#ifdef HAVE_SETLOCALE + setlocale(LC_NUMERIC, loc); +#endif + if(endptr == SYNCTEX_CUR) { + _synctex_error("bad magnification in the post scriptum, a float was expected."); + return SYNCTEX_STATUS_ERROR; + } + if(scanner->unit<=0) { + _synctex_error("bad magnification in the post scriptum, a positive float was expected."); + return SYNCTEX_STATUS_ERROR; + } + SYNCTEX_CUR = endptr; + goto next_line; + } + if(status<SYNCTEX_STATUS_EOF){ +report_record_problem: + _synctex_error("Problem reading the Post Scriptum records"); + return status; /* echo the error. */ + } + status = _synctex_match_string(scanner,"X Offset:"); + if(status == SYNCTEX_STATUS_OK) { + status = _synctex_scan_float_and_dimension(scanner, &(scanner->x_offset)); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("problem with X offset in the Post Scriptum."); + return status; + } + goto next_line; + } else if(status<SYNCTEX_STATUS_EOF){ + goto report_record_problem; + } + status = _synctex_match_string(scanner,"Y Offset:"); + if(status==SYNCTEX_STATUS_OK) { + status = _synctex_scan_float_and_dimension(scanner, &(scanner->y_offset)); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("problem with Y offset in the Post Scriptum."); + return status; + } + goto next_line; + } else if(status<SYNCTEX_STATUS_EOF){ + goto report_record_problem; + } + goto next_line; +} + +/* SYNCTEX_STATUS_OK is returned if the postamble is read + * SYNCTEX_STATUS_NOT_OK is returned if the postamble is not at the current location + * a negative error otherwise + * The postamble comprises the post scriptum section. + */ +int _synctex_scan_postamble(synctex_scanner_t scanner) { + int status = 0; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + status = _synctex_match_string(scanner,"Postamble:"); + if(status < SYNCTEX_STATUS_OK) { + return status; + } +count_again: + status = _synctex_next_line(scanner); + if(status < SYNCTEX_STATUS_OK) { + return status; + } + status = _synctex_scan_named(scanner,"Count:",&(scanner->count),(synctex_decoder_t)&_synctex_decode_int); + if(status < SYNCTEX_STATUS_EOF) { + return status; /* forward the error */ + } else if(status < SYNCTEX_STATUS_OK) { /* No Count record found */ + status = _synctex_next_line(scanner); /* Advance one more line */ + if(status<SYNCTEX_STATUS_OK) { + return status; + } + goto count_again; + } + /* Now we scan the last part of the SyncTeX file: the Post Scriptum section. */ + return _synctex_scan_post_scriptum(scanner); +} + +/* Horizontal boxes also have visible size. + * Visible size are bigger than real size. + * For example 0 width boxes may contain text. + * At creation time, the visible size is set to the values of the real size. + */ +synctex_status_t _synctex_setup_visible_box(synctex_node_t box) { + if(box) { + switch(box->class->type) { + case synctex_node_type_hbox: + if(SYNCTEX_INFO(box) != NULL) { + SYNCTEX_HORIZ_V(box) = SYNCTEX_HORIZ(box); + SYNCTEX_VERT_V(box) = SYNCTEX_VERT(box); + SYNCTEX_WIDTH_V(box) = SYNCTEX_WIDTH(box); + SYNCTEX_HEIGHT_V(box) = SYNCTEX_HEIGHT(box); + SYNCTEX_DEPTH_V(box) = SYNCTEX_DEPTH(box); + return SYNCTEX_STATUS_OK; + } + return SYNCTEX_STATUS_ERROR; + } + } + return SYNCTEX_STATUS_BAD_ARGUMENT; +} + +/* This method is sent to an horizontal box to setup the visible size + * Some box have 0 width but do contain text material. + * With this method, one can enlarge the box to contain the given point (h,v). + */ +synctex_status_t _synctex_horiz_box_setup_visible(synctex_node_t node,int h, int v) { +# ifdef __DARWIN_UNIX03 +# pragma unused(v) +# endif + int itsBtm, itsTop; + if(NULL == node || node->class->type != synctex_node_type_hbox) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + if(SYNCTEX_WIDTH_V(node)<0) { + itsBtm = SYNCTEX_HORIZ_V(node); + itsTop = SYNCTEX_HORIZ_V(node)-SYNCTEX_WIDTH_V(node); + if(h<itsBtm) { + SYNCTEX_HORIZ_V(node) = h; + SYNCTEX_WIDTH_V(node) = SYNCTEX_HORIZ_V(node) - itsTop; + } else if(h>itsTop) { + SYNCTEX_WIDTH_V(node) = SYNCTEX_HORIZ_V(node) - h; + } + } else { + itsBtm = SYNCTEX_HORIZ_V(node); + itsTop = SYNCTEX_HORIZ_V(node)+SYNCTEX_WIDTH_V(node); + if(h<itsBtm) { + SYNCTEX_HORIZ_V(node) = h; + SYNCTEX_WIDTH_V(node) = itsTop - SYNCTEX_HORIZ_V(node); + } else if(h>itsTop) { + SYNCTEX_WIDTH_V(node) = h - SYNCTEX_HORIZ_V(node); + } + } + return SYNCTEX_STATUS_OK; +} + +/* Used when parsing the synctex file. + * The sheet argument is a newly created sheet node that will hold the contents. + * Something is returned in case of error. + */ +synctex_status_t _synctex_scan_sheet(synctex_scanner_t scanner, synctex_node_t sheet) { + synctex_node_t parent = sheet; + synctex_node_t child = NULL; + synctex_node_t sibling = NULL; + synctex_node_t box = sheet; + int friend_index = 0; + synctex_info_t * info = NULL; + synctex_status_t status = 0; + size_t available = 0; + if((NULL == scanner) || (NULL == sheet)) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + /* We MUST start with a box, so at this level, the unique possibility is '[', '(' or "}". */ +prepare_loop: + if(SYNCTEX_CUR<SYNCTEX_END) { + if(*SYNCTEX_CUR == '[') { +scan_vbox: + ++SYNCTEX_CUR; + if((child = _synctex_new_vbox(scanner)) && (info = SYNCTEX_INFO(child))) { +# define SYNCTEX_DECODE_FAILED(WHAT) \ + (_synctex_decode_int(scanner,&(info[WHAT].INT))<SYNCTEX_STATUS_OK) + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad vbox record."); + #define SYNCTEX_RETURN(STATUS) return STATUS; + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + parent = child; + child = NULL; + goto child_loop;/* next created node will be a child */ + } else { + _synctex_error("Can't create vbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '(') { +scan_hbox: + ++SYNCTEX_CUR; + if((child = _synctex_new_hbox(scanner)) && (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_setup_visible_box(child)<SYNCTEX_STATUS_OK + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad hbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)+SYNCTEX_ABS_WIDTH(child),SYNCTEX_VERT(child)); + SYNCTEX_SET_CHILD(parent,child); + parent = child; + child = NULL; + goto child_loop;/* next created node will be a child */ + } else { + _synctex_error("Can't create hbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '}') { +scan_teehs: + ++SYNCTEX_CUR; + if(NULL == parent || parent->class->type != synctex_node_type_sheet + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Unexpected end of sheet."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_RETURN(SYNCTEX_STATUS_OK); + } else if(*SYNCTEX_CUR == '!') { +scan_anchor: + ++SYNCTEX_CUR; + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Missing anchor."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto prepare_loop; + } else { + /* _synctex_error("Ignored record %c\n",*SYNCTEX_CUR); */ + ++SYNCTEX_CUR; + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Unexpected end."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto prepare_loop; + } + } else { + available = 1; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status<SYNCTEX_STATUS_OK && available>0){ + _synctex_error("Uncomplete sheet(0)"); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } else { + goto prepare_loop; + } + } + _synctex_bail(); +/* The child loop means that we go do one level, when we just created a box node, + * the next node created is a child of this box. */ +child_loop: + if(SYNCTEX_CUR<SYNCTEX_END) { + if(*SYNCTEX_CUR == '[') { + goto scan_vbox; + } else if(*SYNCTEX_CUR == ']') { +scan_xobv: + ++SYNCTEX_CUR; + if(NULL != parent && parent->class->type == synctex_node_type_vbox) { + #define SYNCTEX_UPDATE_BOX_FRIEND(NODE)\ + friend_index = ((SYNCTEX_INFO(NODE))[SYNCTEX_TAG_IDX].INT+(SYNCTEX_INFO(NODE))[SYNCTEX_LINE_IDX].INT)%(scanner->number_of_lists);\ + SYNCTEX_SET_FRIEND(NODE,(scanner->lists_of_friends)[friend_index]);\ + (scanner->lists_of_friends)[friend_index] = NODE; + if(NULL == SYNCTEX_CHILD(parent)) { + /* only void boxes are friends */ + SYNCTEX_UPDATE_BOX_FRIEND(parent); + } + child = parent; + parent = SYNCTEX_PARENT(child); + } else { + _synctex_error("Unexpected ']', ignored."); + } + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Uncomplete sheet."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto sibling_loop; + } else if(*SYNCTEX_CUR == '(') { + goto scan_hbox; + } else if(*SYNCTEX_CUR == ')') { +scan_xobh: + ++SYNCTEX_CUR; + if((parent) && parent->class->type == synctex_node_type_hbox) { + if(NULL == child) { + /* Only boxes with no children are friends, + * boxes with children are indirectly friends through one of their descendants. */ + SYNCTEX_UPDATE_BOX_FRIEND(parent); + } + /* setting the next horizontal box at the end ensures that a child is recorded before any of its ancestors. */ + SYNCTEX_SET_NEXT_HORIZ_BOX(box,parent); + box = parent; + child = parent; + parent = SYNCTEX_PARENT(child); + } else { + _synctex_error("Unexpected ')', ignored."); + } + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Uncomplete sheet."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto sibling_loop; + } else if(*SYNCTEX_CUR == 'v') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_void_vbox(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad void vbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + #define SYNCTEX_UPDATE_FRIEND(NODE)\ + friend_index = (info[SYNCTEX_TAG_IDX].INT+info[SYNCTEX_LINE_IDX].INT)%(scanner->number_of_lists);\ + SYNCTEX_SET_FRIEND(NODE,(scanner->lists_of_friends)[friend_index]);\ + (scanner->lists_of_friends)[friend_index] = NODE; + SYNCTEX_UPDATE_FRIEND(child); + goto sibling_loop; + } else { + _synctex_error("Can't create vbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'h') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_void_hbox(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad void hbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)+SYNCTEX_ABS_WIDTH(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create void hbox record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'k') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_kern(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad kern record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)-SYNCTEX_WIDTH(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create kern record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'g') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_glue(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad glue record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + SYNCTEX_UPDATE_FRIEND(child); + goto sibling_loop; + } else { + _synctex_error("Can't create glue record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '$') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_math(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad math record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + SYNCTEX_UPDATE_FRIEND(child); + goto sibling_loop; + } else { + _synctex_error("Can't create math record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'x') { + ++SYNCTEX_CUR; + if(NULL != (child = _synctex_new_boundary(scanner)) + && NULL != (info = SYNCTEX_INFO(child))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad boundary record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_CHILD(parent,child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + SYNCTEX_UPDATE_FRIEND(child); + goto sibling_loop; + } else { + _synctex_error("Can't create math record."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '}') { + goto scan_teehs; + } else if(*SYNCTEX_CUR == '!') { + goto scan_anchor; + } else { + /* _synctex_error("Ignored record %c\n",*SYNCTEX_CUR); */ + ++SYNCTEX_CUR; + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Unexpected end."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto child_loop; + } + } else { + available = 1; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status<SYNCTEX_STATUS_OK && available>0){ + _synctex_error("Uncomplete sheet(0)"); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } else { + goto child_loop; + } + } + _synctex_bail(); +/* The vertical loop means that we are on the same level, for example when we just ended a box. + * If a node is created now, it will be a sibling of the current node, sharing the same parent. */ +sibling_loop: + if(SYNCTEX_CUR<SYNCTEX_END) { + if(*SYNCTEX_CUR == '[') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_vbox(scanner)) + && NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad vbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + parent = sibling; + child = NULL; + goto child_loop; + } else { + _synctex_error("Can't create vbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == ']') { + goto scan_xobv; + } else if(*SYNCTEX_CUR == '(') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_hbox(scanner)) && + NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_setup_visible_box(sibling)<SYNCTEX_STATUS_OK + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad hbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)+SYNCTEX_ABS_WIDTH(child),SYNCTEX_VERT(child)); + parent = child; + child = NULL; + goto child_loop; + } else { + _synctex_error("Can't create hbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == ')') { + goto scan_xobh; + } else if(*SYNCTEX_CUR == 'v') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_void_vbox(scanner)) && + NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad void vbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + goto sibling_loop; + } else { + _synctex_error("can't create void vbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'h') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_void_hbox(scanner)) && + NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HEIGHT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_DEPTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad void hbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)+SYNCTEX_ABS_WIDTH(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("can't create void hbox record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'k') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_kern(scanner)) + && NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_WIDTH_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad kern record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child)-SYNCTEX_WIDTH(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create kern record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'g') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_glue(scanner)) + && NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad glue record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create glue record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '$') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_math(scanner)) + && NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad math record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create math record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == 'x') { + ++SYNCTEX_CUR; + if(NULL != (sibling = _synctex_new_boundary(scanner)) + && NULL != (info = SYNCTEX_INFO(sibling))) { + if(SYNCTEX_DECODE_FAILED(SYNCTEX_TAG_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_LINE_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_HORIZ_IDX) + || SYNCTEX_DECODE_FAILED(SYNCTEX_VERT_IDX) + || _synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Bad boundary record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + SYNCTEX_SET_SIBLING(child,sibling); + child = sibling; + SYNCTEX_UPDATE_FRIEND(child); + _synctex_horiz_box_setup_visible(parent,SYNCTEX_HORIZ(child),SYNCTEX_VERT(child)); + goto sibling_loop; + } else { + _synctex_error("Can't create boundary record (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } else if(*SYNCTEX_CUR == '}') { + goto scan_teehs; + } else if(*SYNCTEX_CUR == '!') { + ++SYNCTEX_CUR; + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Missing anchor (2)."); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto sibling_loop; + } else { + ++SYNCTEX_CUR; + /* _synctex_error("Ignored record %c(2)\n",*SYNCTEX_CUR); */ + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + goto sibling_loop; + } + } else { + available = 1; + status = _synctex_buffer_get_available_size(scanner,&available); + if(status<SYNCTEX_STATUS_OK && available>0){ + goto sibling_loop; + } else { + _synctex_error("Uncomplete sheet(2)"); + SYNCTEX_RETURN(SYNCTEX_STATUS_ERROR); + } + } +# undef SYNCTEX_DECODE_FAILED +} + +/* Used when parsing the synctex file + */ +synctex_status_t _synctex_scan_content(synctex_scanner_t scanner) { + synctex_node_t sheet = NULL; + synctex_status_t status = 0; + if(NULL == scanner) { + return SYNCTEX_STATUS_BAD_ARGUMENT; + } + /* set up the lists of friends */ + if(NULL == scanner->lists_of_friends) { + scanner->number_of_lists = 1024; + scanner->lists_of_friends = (synctex_node_t *)_synctex_malloc(scanner->number_of_lists*sizeof(synctex_node_t)); + if(NULL == scanner->lists_of_friends) { + _synctex_error("malloc:2"); + return SYNCTEX_STATUS_ERROR; + } + } + /* Find where this section starts */ +content_not_found: + status = _synctex_match_string(scanner,"Content:"); + if(status<SYNCTEX_STATUS_EOF) { + return status; + } + if(_synctex_next_line(scanner)<SYNCTEX_STATUS_OK) { + _synctex_error("Uncomplete Content."); + return SYNCTEX_STATUS_ERROR; + } + if(status == SYNCTEX_STATUS_NOT_OK) { + goto content_not_found; + } +next_sheet: + if(*SYNCTEX_CUR != '{') { + status = _synctex_scan_postamble(scanner); + if(status < SYNCTEX_STATUS_EOF) { + _synctex_error("Bad content."); + return status; + } + if(status<SYNCTEX_STATUS_OK) { + status = _synctex_next_line(scanner); + if(status < SYNCTEX_STATUS_OK) { + _synctex_error("Bad content."); + return status; + } + goto next_sheet; + } + return SYNCTEX_STATUS_OK; + } + ++SYNCTEX_CUR; + /* Create a new sheet node */ + sheet = _synctex_new_sheet(scanner); + status = _synctex_decode_int(scanner,&(SYNCTEX_PAGE(sheet))); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("Missing sheet number."); +bail: + SYNCTEX_FREE(sheet); + return SYNCTEX_STATUS_ERROR; + } + status = _synctex_next_line(scanner); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("Uncomplete file."); + goto bail; + } + status = _synctex_scan_sheet(scanner,sheet); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("Bad sheet content."); + goto bail; + } + SYNCTEX_SET_SIBLING(sheet,scanner->sheet); + scanner->sheet = sheet; + sheet = NULL; + /* Now read the list of Inputs between 2 sheets. */ + do { + status = _synctex_scan_input(scanner); + if(status<SYNCTEX_STATUS_EOF) { + _synctex_error("Bad input section."); + goto bail; + } + } + while(status >= SYNCTEX_STATUS_OK); + goto next_sheet; +} + +int _synctex_open(const char * output, const char * build_directory, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_modeRef); + +/* Where the synctex scanner is created. */ +synctex_scanner_t synctex_scanner_new_with_output_file(const char * output, const char * build_directory, int parse) { + gzFile file = NULL; + char * synctex = NULL; + synctex_scanner_t scanner = NULL; + synctex_io_mode_t io_mode = synctex_io_mode_read; + /* Here we assume that int are smaller than void * */ + if(sizeof(int)>sizeof(void*)) { + _synctex_error("INTERNAL INCONSISTENCY: int's are unexpectedly bigger than pointers, bailing out."); + return NULL; + } + /* We ensure that SYNCTEX_BUFFER_SIZE < UINT_MAX, I don't know if it makes sense... */ + if(SYNCTEX_BUFFER_SIZE >= UINT_MAX) { + _synctex_error("SyncTeX BUG: Internal inconsistency, bad SYNCTEX_BUFFER_SIZE (1)"); + return NULL; + } + /* for integers: */ + if(SYNCTEX_BUFFER_SIZE < SYNCTEX_BUFFER_MIN_SIZE) { + _synctex_error("SyncTeX BUG: Internal inconsistency, bad SYNCTEX_BUFFER_SIZE (2)"); + return NULL; + } + /* now open the synctex file */ + if(_synctex_open(output,build_directory,&synctex,&file,synctex_NO,&io_mode) || !file) { + if(_synctex_open(output,build_directory,&synctex,&file,synctex_YES,&io_mode) || !file) { + return NULL; + } + } + scanner = (synctex_scanner_t)_synctex_malloc(sizeof(_synctex_scanner_t)); + if(NULL == scanner) { + _synctex_error("SyncTeX: malloc problem"); + free(synctex); + gzclose(file); + return NULL; + } + /* make a private copy of output for the scanner */ + if(NULL == (scanner->output = (char *)malloc(strlen(output)+1))){ + _synctex_error("! synctex_scanner_new_with_output_file: Memory problem (2), scanner's output is not reliable."); + } else if(scanner->output != strcpy(scanner->output,output)) { + _synctex_error("! synctex_scanner_new_with_output_file: Copy problem, scanner's output is not reliable."); + } + scanner->synctex = synctex;/* Now the scanner owns synctex */ + SYNCTEX_FILE = file; + return parse? synctex_scanner_parse(scanner):scanner; +} + +int __synctex_open(const char * output, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_modeRef); + +/* This functions opens the file at the "output" given location. + * It manages the problem of quoted filenames that appear with pdftex an filenames containing the space character. + * In TeXLive 2008, the synctex file created with pdftex did contain unexpected quotes. + * This function will remove them if possible. + * 0 on success, non 0 on error. */ +int __synctex_open(const char * output, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_modeRef) { +# define synctex_name (*synctex_name_ref) +# define the_file (*file_ref) + if(synctex_name_ref && file_ref) { + char * quoteless = NULL; + synctex_io_mode_t io_mode = *io_modeRef; + const char * mode = synctex_io_modes[io_mode]; + size_t size = 0; + /* now create the synctex file name */ + size = strlen(output)+strlen(synctex_suffix)+strlen(synctex_suffix_gz)+1; + synctex_name = (char *)malloc(size); + if(NULL == synctex_name) { + _synctex_error("! __synctex_open: Memory problem (1)\n"); + return 1; + } + /* we have reserved for synctex enough memory to copy output, both suffices and 2 quotes, + * including the terminating character. size is free now. */ + if(synctex_name != strcpy(synctex_name,output)) { + _synctex_error("! __synctex_open: Copy problem\n"); +return_on_error: + free(synctex_name); + synctex_name = NULL;/* Don't forget to reinitialize. */ + the_file = NULL; /* Here as well */ + free(quoteless); + return 2; + } + /* remove the last path extension if any */ + _synctex_strip_last_path_extension(synctex_name); + if(!strlen(synctex_name)) { + goto return_on_error; + } + /* now insert quotes. */ + if(add_quotes) { + char * quoted = NULL; + if(_synctex_copy_with_quoting_last_path_component(synctex_name,"ed,size) || (NULL == quoted)) { + /* There was an error or quoting does not make sense: */ + goto return_on_error; + } + quoteless = synctex_name; + synctex_name = quoted; + } + /* Now add the first path extension. */ + if(synctex_name != strcat(synctex_name,synctex_suffix)){ + _synctex_error("! __synctex_open: Concatenation problem (can't add suffix '%s')\n",synctex_suffix); + goto return_on_error; + } + /* To quoteless as well. */ + if(quoteless && (quoteless != strcat(quoteless,synctex_suffix))){ + free(quoteless); + quoteless = NULL; + } + if(NULL == (the_file = gzopen(synctex_name,mode))) { + /* Could not open this file */ + if(errno != ENOENT) { + /* The file does exist, this is a lower lever error, I can't do anything. */ + _synctex_error("SyncTeX: could not open %s, error %i\n",synctex_name,errno); + goto return_on_error; + } + /* Try the compressed version */ + if(synctex_name != strcat(synctex_name,synctex_suffix_gz)){ + _synctex_error("! __synctex_open: Concatenation problem (can't add suffix '%s')\n",synctex_suffix_gz); + goto return_on_error; + } + ++io_mode; + mode = synctex_io_modes[io_mode]; /* the file is a compressed and is a binary file, this caused errors on Windows */ + /* To quoteless as well. */ + if(quoteless && (quoteless != strcat(quoteless,synctex_suffix_gz))){ + free(quoteless); + quoteless = NULL; + } + if(NULL == (the_file = gzopen(synctex_name,mode))) { + /* Could not open this file */ + if(errno != ENOENT) { + /* The file does exist, this is a lower lever error, I can't do anything. */ + _synctex_error("SyncTeX: could not open %s, error %i\n",synctex_name,errno); + } + goto return_on_error; + } + } + /* At this point, the file is properly open. + * If we are in the add_quotes mode, we change the file name by removing the quotes. */ + if(quoteless) { + gzclose(the_file); + if(rename(synctex_name,quoteless)) { + _synctex_error("SyncTeX: could not rename %s to %s, error %i\n",synctex_name,quoteless,errno); + /* Reopen the file. */ + if(NULL == (the_file = gzopen(synctex_name,mode))) { + /* Could not open this file */ + if(errno != ENOENT) { + /* The file does exist, this is a lower lever error, I can't do anything. */ + _synctex_error("SyncTeX: could not open again %s, error %i\n",synctex_name,errno); + } + goto return_on_error; + } + } else { + if(NULL == (the_file = gzopen(quoteless,mode))) { + /* Could not open this file */ + if(errno != ENOENT) { + /* The file does exist, this is a lower lever error, I can't do anything. */ + _synctex_error("SyncTeX: could not open renamed %s, error %i\n",quoteless,errno); + } + goto return_on_error; + } + /* The quote free file name should replace the old one:*/ + free(synctex_name); + synctex_name = quoteless; + quoteless = NULL; + } + } + /* We are returning properly so we can also return the proper io_mode */ + *io_modeRef = io_mode; + return 0; + } + return 3; /* Bad parameter. */ +# undef synctex_name +# undef the_file +} + +/* Opens the ouput file, taking into account the eventual build_directory. + * 0 on success, non 0 on error. */ +int _synctex_open(const char * output, const char * build_directory, char ** synctex_name_ref, gzFile * file_ref, synctex_bool_t add_quotes, synctex_io_mode_t * io_modeRef) { +# define synctex_name (*synctex_name_ref) +# define the_file (*file_ref) + int result = __synctex_open(output,synctex_name_ref,file_ref,add_quotes,io_modeRef); + if((result || !*file_ref) && build_directory && strlen(build_directory)) { + char * build_output; + const char * lpc; + size_t size; + synctex_bool_t is_absolute; + build_output = NULL; + lpc = _synctex_last_path_component(output); + size = strlen(build_directory)+strlen(lpc)+2; + is_absolute = _synctex_path_is_absolute(build_directory); + if(!is_absolute) { + size += strlen(output); + } + if((build_output = (char *)malloc(size))) { + if(is_absolute) { + build_output[0] = '\0'; + } else { + if(build_output != strcpy(build_output,output)) { + return -4; + } + build_output[lpc-output]='\0'; + } + if(build_output == strcat(build_output,build_directory)) { + /* Append a path separator if necessary. */ + if(!SYNCTEX_IS_PATH_SEPARATOR(build_output[strlen(build_directory)-1])) { + if(build_output != strcat(build_output,"/")) { + return -2; + } + } + /* Append the last path component of the output. */ + if(build_output != strcat(build_output,lpc)) { + return -3; + } + return __synctex_open(build_output,synctex_name_ref,file_ref,add_quotes,io_modeRef); + } + } + return -1; + } + return result; +# undef synctex_name +# undef the_file +} + +/* The scanner destructor + */ +void synctex_scanner_free(synctex_scanner_t scanner) { + if(NULL == scanner) { + return; + } + if(SYNCTEX_FILE) { + gzclose(SYNCTEX_FILE); + SYNCTEX_FILE = NULL; + } + SYNCTEX_FREE(scanner->sheet); + SYNCTEX_FREE(scanner->input); + free(SYNCTEX_START); + free(scanner->output_fmt); + free(scanner->output); + free(scanner->synctex); + free(scanner->lists_of_friends); + free(scanner); +} + +/* Where the synctex scanner parses the contents of the file. */ +synctex_scanner_t synctex_scanner_parse(synctex_scanner_t scanner) { + synctex_status_t status = 0; + if(!scanner || scanner->flags.has_parsed) { + return scanner; + } + scanner->flags.has_parsed=1; + scanner->pre_magnification = 1000; + scanner->pre_unit = 8192; + scanner->pre_x_offset = scanner->pre_y_offset = 578; + /* initialize the offset with a fake unprobable value, + * If there is a post scriptum section, this value will be overriden by the real life value */ + scanner->x_offset = scanner->y_offset = 6.027e23f; + scanner->class[synctex_node_type_sheet] = synctex_class_sheet; + scanner->class[synctex_node_type_input] = synctex_class_input; + (scanner->class[synctex_node_type_input]).scanner = scanner; + (scanner->class[synctex_node_type_sheet]).scanner = scanner; + scanner->class[synctex_node_type_vbox] = synctex_class_vbox; + (scanner->class[synctex_node_type_vbox]).scanner = scanner; + scanner->class[synctex_node_type_void_vbox] = synctex_class_void_vbox; + (scanner->class[synctex_node_type_void_vbox]).scanner = scanner; + scanner->class[synctex_node_type_hbox] = synctex_class_hbox; + (scanner->class[synctex_node_type_hbox]).scanner = scanner; + scanner->class[synctex_node_type_void_hbox] = synctex_class_void_hbox; + (scanner->class[synctex_node_type_void_hbox]).scanner = scanner; + scanner->class[synctex_node_type_kern] = synctex_class_kern; + (scanner->class[synctex_node_type_kern]).scanner = scanner; + scanner->class[synctex_node_type_glue] = synctex_class_glue; + (scanner->class[synctex_node_type_glue]).scanner = scanner; + scanner->class[synctex_node_type_math] = synctex_class_math; + (scanner->class[synctex_node_type_math]).scanner = scanner; + scanner->class[synctex_node_type_boundary] = synctex_class_boundary; + (scanner->class[synctex_node_type_boundary]).scanner = scanner; + SYNCTEX_START = (char *)malloc(SYNCTEX_BUFFER_SIZE+1); /* one more character for null termination */ + if(NULL == SYNCTEX_START) { + _synctex_error("SyncTeX: malloc error"); + synctex_scanner_free(scanner); + return NULL; + } + SYNCTEX_END = SYNCTEX_START+SYNCTEX_BUFFER_SIZE; + /* SYNCTEX_END always points to a null terminating character. + * Maybe there is another null terminating character between SYNCTEX_CUR and SYNCTEX_END-1. + * At least, we are sure that SYNCTEX_CUR points to a string covering a valid part of the memory. */ + *SYNCTEX_END = '\0'; + SYNCTEX_CUR = SYNCTEX_END; + status = _synctex_scan_preamble(scanner); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("SyncTeX Error: Bad preamble\n"); +bailey: + synctex_scanner_free(scanner); + return NULL; + } + status = _synctex_scan_content(scanner); + if(status<SYNCTEX_STATUS_OK) { + _synctex_error("SyncTeX Error: Bad content\n"); + goto bailey; + } + /* Everything is finished, free the buffer, close the file */ + free((void *)SYNCTEX_START); + SYNCTEX_START = SYNCTEX_CUR = SYNCTEX_END = NULL; + gzclose(SYNCTEX_FILE); + SYNCTEX_FILE = NULL; + /* Final tuning: set the default values for various parameters */ + /* 1 pre_unit = (scanner->pre_unit)/65536 pt = (scanner->pre_unit)/65781.76 bp + * 1 pt = 65536 sp */ + if(scanner->pre_unit<=0) { + scanner->pre_unit = 8192; + } + if(scanner->pre_magnification<=0) { + scanner->pre_magnification = 1000; + } + if(scanner->unit <= 0) { + /* no post magnification */ + scanner->unit = scanner->pre_unit / 65781.76;/* 65781.76 or 65536.0*/ + } else { + /* post magnification */ + scanner->unit *= scanner->pre_unit / 65781.76; + } + scanner->unit *= scanner->pre_magnification / 1000.0; + if(scanner->x_offset > 6e23) { + /* no post offset */ + scanner->x_offset = scanner->pre_x_offset * (scanner->pre_unit / 65781.76); + scanner->y_offset = scanner->pre_y_offset * (scanner->pre_unit / 65781.76); + } else { + /* post offset */ + scanner->x_offset /= 65781.76f; + scanner->y_offset /= 65781.76f; + } + return scanner; + #undef SYNCTEX_FILE +} + +/* Scanner accessors. + */ +int synctex_scanner_pre_x_offset(synctex_scanner_t scanner){ + return scanner?scanner->pre_x_offset:0; +} +int synctex_scanner_pre_y_offset(synctex_scanner_t scanner){ + return scanner?scanner->pre_y_offset:0; +} +int synctex_scanner_x_offset(synctex_scanner_t scanner){ + return scanner?scanner->x_offset:0; +} +int synctex_scanner_y_offset(synctex_scanner_t scanner){ + return scanner?scanner->y_offset:0; +} +float synctex_scanner_magnification(synctex_scanner_t scanner){ + return scanner?scanner->unit:1; +} +void synctex_scanner_display(synctex_scanner_t scanner) { + if(NULL == scanner) { + return; + } + printf("The scanner:\noutput:%s\noutput_fmt:%s\nversion:%i\n",scanner->output,scanner->output_fmt,scanner->version); + printf("pre_unit:%i\nx_offset:%i\ny_offset:%i\n",scanner->pre_unit,scanner->pre_x_offset,scanner->pre_y_offset); + printf("count:%i\npost_magnification:%f\npost_x_offset:%f\npost_y_offset:%f\n", + scanner->count,scanner->unit,scanner->x_offset,scanner->y_offset); + printf("The input:\n"); + SYNCTEX_DISPLAY(scanner->input); + if(scanner->count<1000) { + printf("The sheets:\n"); + SYNCTEX_DISPLAY(scanner->sheet); + printf("The friends:\n"); + if(scanner->lists_of_friends) { + int i = scanner->number_of_lists; + synctex_node_t node; + while(i--) { + printf("Friend index:%i\n",i); + node = (scanner->lists_of_friends)[i]; + while(node) { + printf("%s:%i,%i\n", + synctex_node_isa(node), + SYNCTEX_TAG(node), + SYNCTEX_LINE(node) + ); + node = SYNCTEX_FRIEND(node); + } + } + } + } else { + printf("SyncTeX Warning: Too many objects\n"); + } +} +/* Public*/ +const char * synctex_scanner_get_name(synctex_scanner_t scanner,int tag) { + synctex_node_t input = NULL; + if(NULL == scanner) { + return NULL; + } + input = scanner->input; + do { + if(tag == SYNCTEX_TAG(input)) { + return (SYNCTEX_NAME(input)); + } + } while((input = SYNCTEX_SIBLING(input)) != NULL); + return NULL; +} + +int _synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name); +int _synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name) { + synctex_node_t input = NULL; + if(NULL == scanner) { + return 0; + } + input = scanner->input; + do { + if(_synctex_is_equivalent_file_name(name,(SYNCTEX_NAME(input)))) { + return SYNCTEX_TAG(input); + } + } while((input = SYNCTEX_SIBLING(input)) != NULL); + return 0; +} + +int synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name) { + size_t char_index = strlen(name); + if((scanner = synctex_scanner_parse(scanner)) && (0 < char_index)) { + /* the name is not void */ + char_index -= 1; + if(!SYNCTEX_IS_PATH_SEPARATOR(name[char_index])) { + /* the last character of name is not a path separator */ + int result = _synctex_scanner_get_tag(scanner,name); + if(result) { + return result; + } else { + /* the given name was not the one known by TeX + * try a name relative to the enclosing directory of the scanner->output file */ + const char * relative = name; + const char * ptr = scanner->output; + while((strlen(relative) > 0) && (strlen(ptr) > 0) && (*relative == *ptr)) + { + relative += 1; + ptr += 1; + } + /* Find the last path separator before relative */ + while(relative > name) { + if(SYNCTEX_IS_PATH_SEPARATOR(*(relative-1))) { + break; + } + relative -= 1; + } + if((relative > name) && (result = _synctex_scanner_get_tag(scanner,relative))) { + return result; + } + if(SYNCTEX_IS_PATH_SEPARATOR(name[0])) { + /* No tag found for the given absolute name, + * Try each relative path starting from the shortest one */ + while(0<char_index) { + char_index -= 1; + if(SYNCTEX_IS_PATH_SEPARATOR(name[char_index]) + && (result = _synctex_scanner_get_tag(scanner,name+char_index+1))) { + return result; + } + } + } + } + return result; + } + } + return 0; +} +synctex_node_t synctex_scanner_input(synctex_scanner_t scanner) { + return scanner?scanner->input:NULL; +} +const char * synctex_scanner_get_output_fmt(synctex_scanner_t scanner) { + return NULL != scanner && scanner->output_fmt?scanner->output_fmt:""; +} +const char * synctex_scanner_get_output(synctex_scanner_t scanner) { + return NULL != scanner && scanner->output?scanner->output:""; +} +const char * synctex_scanner_get_synctex(synctex_scanner_t scanner) { + return NULL != scanner && scanner->synctex?scanner->synctex:""; +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Public node attributes +# endif +int synctex_node_h(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_HORIZ(node); +} +int synctex_node_v(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_VERT(node); +} +int synctex_node_width(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_WIDTH(node); +} +int synctex_node_box_h(synctex_node_t node){ + if(!node) { + return 0; + } + if(SYNCTEX_IS_BOX(node)) { +result: + return SYNCTEX_HORIZ(node); + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +int synctex_node_box_v(synctex_node_t node){ + if(!node) { + return 0; + } + if(SYNCTEX_IS_BOX(node)) { +result: + return SYNCTEX_VERT(node); + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +int synctex_node_box_width(synctex_node_t node){ + if(!node) { + return 0; + } + if(SYNCTEX_IS_BOX(node)) { +result: + return SYNCTEX_WIDTH(node); + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +int synctex_node_box_height(synctex_node_t node){ + if(!node) { + return 0; + } + if(SYNCTEX_IS_BOX(node)) { +result: + return SYNCTEX_HEIGHT(node); + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +int synctex_node_box_depth(synctex_node_t node){ + if(!node) { + return 0; + } + if(SYNCTEX_IS_BOX(node)) { +result: + return SYNCTEX_DEPTH(node); + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Public node visible attributes +# endif +float synctex_node_visible_h(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_HORIZ(node)*node->class->scanner->unit+node->class->scanner->x_offset; +} +float synctex_node_visible_v(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_VERT(node)*node->class->scanner->unit+node->class->scanner->y_offset; +} +float synctex_node_visible_width(synctex_node_t node){ + if(!node) { + return 0; + } + return SYNCTEX_WIDTH(node)*node->class->scanner->unit; +} +float synctex_node_box_visible_h(synctex_node_t node){ + if(!node) { + return 0; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + return SYNCTEX_HORIZ(node)*node->class->scanner->unit+node->class->scanner->x_offset; + case synctex_node_type_hbox: +result: + return SYNCTEX_HORIZ_V(node)*node->class->scanner->unit+node->class->scanner->x_offset; + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +float synctex_node_box_visible_v(synctex_node_t node){ + if(!node) { + return 0; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + return SYNCTEX_VERT(node)*node->class->scanner->unit+node->class->scanner->y_offset; + case synctex_node_type_hbox: +result: + return SYNCTEX_VERT_V(node)*node->class->scanner->unit+node->class->scanner->y_offset; + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +float synctex_node_box_visible_width(synctex_node_t node){ + if(!node) { + return 0; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + return SYNCTEX_WIDTH(node)*node->class->scanner->unit; + case synctex_node_type_hbox: +result: + return SYNCTEX_WIDTH_V(node)*node->class->scanner->unit; + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +float synctex_node_box_visible_height(synctex_node_t node){ + if(!node) { + return 0; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + return SYNCTEX_HEIGHT(node)*node->class->scanner->unit; + case synctex_node_type_hbox: +result: + return SYNCTEX_HEIGHT_V(node)*node->class->scanner->unit; + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +float synctex_node_box_visible_depth(synctex_node_t node){ + if(!node) { + return 0; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + return SYNCTEX_DEPTH(node)*node->class->scanner->unit; + case synctex_node_type_hbox: +result: + return SYNCTEX_DEPTH_V(node)*node->class->scanner->unit; + } + if((node = SYNCTEX_PARENT(node)) && (node->class->type != synctex_node_type_sheet)) { + goto result; + } + return 0; +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Other public node attributes +# endif + +int synctex_node_page(synctex_node_t node){ + synctex_node_t parent = NULL; + if(!node) { + return -1; + } + parent = SYNCTEX_PARENT(node); + while(parent) { + node = parent; + parent = SYNCTEX_PARENT(node); + } + if(node->class->type == synctex_node_type_sheet) { + return SYNCTEX_PAGE(node); + } + return -1; +} +int synctex_node_tag(synctex_node_t node) { + return node?SYNCTEX_TAG(node):-1; +} +int synctex_node_line(synctex_node_t node) { + return node?SYNCTEX_LINE(node):-1; +} +int synctex_node_column(synctex_node_t node) { +# ifdef __DARWIN_UNIX03 +# pragma unused(node) +# endif + return -1; +} +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Sheet +# endif + +synctex_node_t synctex_sheet_content(synctex_scanner_t scanner,int page) { + if(scanner) { + synctex_node_t sheet = scanner->sheet; + while(sheet) { + if(page == SYNCTEX_PAGE(sheet)) { + return SYNCTEX_CHILD(sheet); + } + sheet = SYNCTEX_SIBLING(sheet); + } + } + return NULL; +} + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Query +# endif + +int synctex_display_query(synctex_scanner_t scanner,const char * name,int line,int column) { +# ifdef __DARWIN_UNIX03 +# pragma unused(column) +# endif + int tag = synctex_scanner_get_tag(scanner,name); + size_t size = 0; + int friend_index = 0; + int max_line = 0; + synctex_node_t node = NULL; + if(tag == 0) { + printf("SyncTeX Warning: No tag for %s\n",name); + return -1; + } + free(SYNCTEX_START); + SYNCTEX_CUR = SYNCTEX_END = SYNCTEX_START = NULL; + max_line = line < INT_MAX-scanner->number_of_lists ? line+scanner->number_of_lists:INT_MAX; + while(line<max_line) { + /* This loop will only be performed once for advanced viewers */ + friend_index = (tag+line)%(scanner->number_of_lists); + if((node = (scanner->lists_of_friends)[friend_index])) { + do { + if((synctex_node_type(node)>=synctex_node_type_boundary) + && (tag == SYNCTEX_TAG(node)) + && (line == SYNCTEX_LINE(node))) { + if(SYNCTEX_CUR == SYNCTEX_END) { + size += 16; + SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); + SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; + SYNCTEX_START = SYNCTEX_END; + SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); + } + *(synctex_node_t *)SYNCTEX_CUR = node; + SYNCTEX_CUR += sizeof(synctex_node_t); + } + } while((node = SYNCTEX_FRIEND(node))); + if(SYNCTEX_START == NULL) { + /* We did not find any matching boundary, retry with glue or kern */ + node = (scanner->lists_of_friends)[friend_index];/* no need to test it again, already done */ + do { + if((synctex_node_type(node)>=synctex_node_type_kern) + && (tag == SYNCTEX_TAG(node)) + && (line == SYNCTEX_LINE(node))) { + if(SYNCTEX_CUR == SYNCTEX_END) { + size += 16; + SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); + SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; + SYNCTEX_START = SYNCTEX_END; + SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); + } + *(synctex_node_t *)SYNCTEX_CUR = node; + SYNCTEX_CUR += sizeof(synctex_node_t); + } + } while((node = SYNCTEX_FRIEND(node))); + if(SYNCTEX_START == NULL) { + /* We did not find any matching glue or kern, retry with boxes */ + node = (scanner->lists_of_friends)[friend_index];/* no need to test it again, already done */ + do { + if((tag == SYNCTEX_TAG(node)) + && (line == SYNCTEX_LINE(node))) { + if(SYNCTEX_CUR == SYNCTEX_END) { + size += 16; + SYNCTEX_END = realloc(SYNCTEX_START,size*sizeof(synctex_node_t *)); + SYNCTEX_CUR += SYNCTEX_END - SYNCTEX_START; + SYNCTEX_START = SYNCTEX_END; + SYNCTEX_END = SYNCTEX_START + size*sizeof(synctex_node_t *); + } + *(synctex_node_t *)SYNCTEX_CUR = node; + SYNCTEX_CUR += sizeof(synctex_node_t); + } + } while((node = SYNCTEX_FRIEND(node))); + } + } + SYNCTEX_END = SYNCTEX_CUR; + /* Now reverse the order to have nodes in display order, and keep just a few nodes */ + if((SYNCTEX_START) && (SYNCTEX_END)) + { + synctex_node_t * start_ref = (synctex_node_t *)SYNCTEX_START; + synctex_node_t * end_ref = (synctex_node_t *)SYNCTEX_END; + end_ref -= 1; + while(start_ref < end_ref) { + node = *start_ref; + *start_ref = *end_ref; + *end_ref = node; + start_ref += 1; + end_ref -= 1; + } + /* Basically, we keep the first node for each parent. + * More precisely, we keep only nodes that are not descendants of + * their predecessor's parent. */ + start_ref = (synctex_node_t *)SYNCTEX_START; + end_ref = (synctex_node_t *)SYNCTEX_START; + next_end: + end_ref += 1; /* we allways have start_ref<= end_ref*/ + if(end_ref < (synctex_node_t *)SYNCTEX_END) { + node = *end_ref; + while((node = SYNCTEX_PARENT(node))) { + if(SYNCTEX_PARENT(*start_ref) == node) { + goto next_end; + } + } + start_ref += 1; + *start_ref = *end_ref; + goto next_end; + } + start_ref += 1; + SYNCTEX_END = (char *)start_ref; + } + SYNCTEX_CUR = NULL; + return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); + } +# if defined(__SYNCTEX_STRONG_DISPLAY_QUERY__) + break; +# else + ++line; +# endif + } + return 0; +} + +synctex_node_t synctex_next_result(synctex_scanner_t scanner) { + if(NULL == SYNCTEX_CUR) { + SYNCTEX_CUR = SYNCTEX_START; + } else { + SYNCTEX_CUR+=sizeof(synctex_node_t); + } + if(SYNCTEX_CUR<SYNCTEX_END) { + return *(synctex_node_t*)SYNCTEX_CUR; + } else { + return NULL; + } +} + +/* This struct records a point in TeX coordinates.*/ +typedef struct { + int h; + int v; +} synctex_point_t; + +/* This struct records distances, the left one is positive or 0 and the right one is negative or 0. + * When comparing the locations of 2 different graphical objects on the page, we will have to also record the + * horizontal distance as signed to keep track of the typesetting order.*/ +typedef struct { + int left; + int right; +} synctex_distances_t; + +typedef struct { + synctex_point_t left; + synctex_point_t right; +} synctex_offsets_t; + + +typedef struct { + synctex_node_t left; + synctex_node_t right; +} synctex_node_set_t; + +/* The smallest container between two has the smallest width or height. + * This comparison is used when there are 2 overlapping boxes that contain the hit point. + * For ConTeXt, the problem appears at each page. + * The chosen box is the one with the smallest height, then the smallest width. */ +SYNCTEX_INLINE static synctex_node_t _synctex_smallest_container(synctex_node_t node, synctex_node_t other_node); + +/* Returns the distance between the hit point hitPoint=(H,V) and the given node. */ +synctex_bool_t _synctex_point_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible); +int _synctex_node_distance_to_point(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible); + +/* The best container is the deeper box that contains the hit point (H,V). + * _synctex_eq_deepest_container starts with node whereas + * _synctex_box_child_deepest starts with node's children, if any + * if node is not a box, or a void box, NULL is returned. + * We traverse the node tree in a deep first manner and stop as soon as a result is found. */ +static synctex_node_t _synctex_eq_deepest_container(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible); + +/* Once a best container is found, the closest children are the closest nodes to the left or right of the hit point. + * Only horizontal and vertical offsets are used to compare the positions of the nodes. */ +SYNCTEX_INLINE static int _synctex_eq_get_closest_children_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef, synctex_bool_t visible); + +/* The closest container is the box that is the one closest to the given point. + * The "visible" version takes into account the visible dimensions instead of the real ones given by TeX. */ +SYNCTEX_INLINE static synctex_node_t _synctex_eq_closest_child(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible); + +#define SYNCTEX_MASK_LEFT 1 +#define SYNCTEX_MASK_RIGHT 2 + +int synctex_edit_query(synctex_scanner_t scanner,int page,float h,float v) { + synctex_node_t sheet = NULL; + synctex_node_t node = NULL; /* placeholder */ + synctex_node_t other_node = NULL; /* placeholder */ + synctex_point_t hitPoint = {0,0}; /* placeholder */ + synctex_node_set_t bestNodes = {NULL,NULL}; /* holds the best node */ + synctex_distances_t bestDistances = {INT_MAX,INT_MAX}; /* holds the best distances for the best node */ + synctex_node_t bestContainer = NULL; /* placeholder */ + if(NULL == (scanner = synctex_scanner_parse(scanner)) || 0 >= scanner->unit) {/* scanner->unit must be >0 */ + return 0; + } + /* Convert the given point to scanner integer coordinates */ + hitPoint.h = (h-scanner->x_offset)/scanner->unit; + hitPoint.v = (v-scanner->y_offset)/scanner->unit; + /* We will store in the scanner's buffer the result of the query. */ + free(SYNCTEX_START); + SYNCTEX_START = SYNCTEX_END = SYNCTEX_CUR = NULL; + /* Find the proper sheet */ + sheet = scanner->sheet; + while((sheet) && SYNCTEX_PAGE(sheet) != page) { + sheet = SYNCTEX_SIBLING(sheet); + } + if(NULL == sheet) { + return -1; + } + /* Now sheet points to the sheet node with proper page number */ + /* Here is how we work: + * At first we do not consider the visible box dimensions. This will cover the most frequent cases. + * Then we try with the visible box dimensions. + * We try to find a non void box containing the hit point. + * We browse all the horizontal boxes until we find one containing the hit point. */ + if((node = SYNCTEX_NEXT_HORIZ_BOX(sheet))) { + do { + if(_synctex_point_in_box(hitPoint,node,synctex_YES)) { + /* Maybe the hitPoint belongs to a contained vertical box. */ +end: + /* This trick is for catching overlapping boxes */ + if((other_node = SYNCTEX_NEXT_HORIZ_BOX(node))) { + do { + if(_synctex_point_in_box(hitPoint,other_node,synctex_YES)) { + node = _synctex_smallest_container(other_node,node); + } + } while((other_node = SYNCTEX_NEXT_HORIZ_BOX(other_node))); + } + /* node is the smallest horizontal box that contains hitPoint. */ + if((bestContainer = _synctex_eq_deepest_container(hitPoint,node,synctex_YES))) { + node = bestContainer; + } + _synctex_eq_get_closest_children_in_box(hitPoint,node,&bestNodes,&bestDistances,synctex_YES); + if(bestNodes.right && bestNodes.left) { + if((SYNCTEX_TAG(bestNodes.right)!=SYNCTEX_TAG(bestNodes.left)) + || (SYNCTEX_LINE(bestNodes.right)!=SYNCTEX_LINE(bestNodes.left)) + || (SYNCTEX_COLUMN(bestNodes.right)!=SYNCTEX_COLUMN(bestNodes.left))) { + if((SYNCTEX_START = malloc(2*sizeof(synctex_node_t)))) { + if(bestDistances.left>bestDistances.right) { + ((synctex_node_t *)SYNCTEX_START)[0] = bestNodes.right; + ((synctex_node_t *)SYNCTEX_START)[1] = bestNodes.left; + } else { + ((synctex_node_t *)SYNCTEX_START)[0] = bestNodes.left; + ((synctex_node_t *)SYNCTEX_START)[1] = bestNodes.right; + } + SYNCTEX_END = SYNCTEX_START + 2*sizeof(synctex_node_t); + SYNCTEX_CUR = NULL; + return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); + } + return SYNCTEX_STATUS_ERROR; + } + /* both nodes have the same input coordinates + * We choose the one closest to the hit point */ + if(bestDistances.left>bestDistances.right) { + bestNodes.left = bestNodes.right; + } + bestNodes.right = NULL; + } else if(bestNodes.right) { + bestNodes.left = bestNodes.right; + } else if(!bestNodes.left){ + bestNodes.left = node; + } + if((SYNCTEX_START = malloc(sizeof(synctex_node_t)))) { + * (synctex_node_t *)SYNCTEX_START = bestNodes.left; + SYNCTEX_END = SYNCTEX_START + sizeof(synctex_node_t); + SYNCTEX_CUR = NULL; + return (SYNCTEX_END-SYNCTEX_START)/sizeof(synctex_node_t); + } + return SYNCTEX_STATUS_ERROR; + } + } while ((node = SYNCTEX_NEXT_HORIZ_BOX(node))); + /* All the horizontal boxes have been tested, + * None of them contains the hit point. + */ + } + /* We are not lucky */ + if((node = SYNCTEX_CHILD(sheet))) { + goto end; + } + return 0; +} + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Utilities +# endif + +int _synctex_bail(void) { + _synctex_error("SyncTeX ERROR\n"); + return -1; +} +/* Rougly speaking, this is: + * node's h coordinate - hitPoint's h coordinate. + * If node is to the right of the hit point, then this distance is positive, + * if node is to the left of the hit point, this distance is negative.*/ +int _synctex_point_h_distance(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible); +int _synctex_point_h_distance(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { + if(node) { + int min,med,max; + switch(node->class->type) { + /* The distance between a point and a box is special. + * It is not the euclidian distance, nor something similar. + * We have to take into account the particular layout, + * and the box hierarchy. + * Given a box, there are 9 regions delimited by the lines of the edges of the box. + * The origin being at the top left corner of the page, + * we also give names to the vertices of the box. + * + * 1 | 2 | 3 + * ---A---B---> + * 4 | 5 | 6 + * ---C---D---> + * 7 | 8 | 9 + * v v + */ + case synctex_node_type_hbox: + /* getting the box bounds, taking into account negative width, height and depth. */ + min = visible?SYNCTEX_HORIZ_V(node):SYNCTEX_HORIZ(node); + max = min + (visible?SYNCTEX_ABS_WIDTH_V(node):SYNCTEX_ABS_WIDTH(node)); + /* We allways have min <= max */ + if(hitPoint.h<min) { + return min - hitPoint.h; /* regions 1+4+7, result is > 0 */ + } else if (hitPoint.h>max) { + return max - hitPoint.h; /* regions 3+6+9, result is < 0 */ + } else { + return 0; /* regions 2+5+8, inside the box, except for vertical coordinates */ + } + break; + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + /* getting the box bounds, taking into account negative width, height and depth. + * For these boxes, no visible dimension available */ + min = SYNCTEX_HORIZ(node); + max = min + SYNCTEX_ABS_WIDTH(node); + /* We allways have min <= max */ + if(hitPoint.h<min) { + return min - hitPoint.h; /* regions 1+4+7, result is > 0 */ + } else if (hitPoint.h>max) { + return max - hitPoint.h; /* regions 3+6+9, result is < 0 */ + } else { + return 0; /* regions 2+5+8, inside the box, except for vertical coordinates */ + } + break; + case synctex_node_type_kern: + /* IMPORTANT NOTICE: the location of the kern is recorded AFTER the move. + * The distance to the kern is very special, + * in general, there is no text material in the kern, + * this is why we compute the offset relative to the closest edge of the kern.*/ + max = SYNCTEX_WIDTH(node); + if(max<0) { + min = SYNCTEX_HORIZ(node); + max = min - max; + } else { + min = -max; + max = SYNCTEX_HORIZ(node); + min += max; + } + med = (min+max)/2; + /* positive kern: '.' means text, '>' means kern offset + * ............. + * min>>>>med>>>>max + * ............... + * negative kern: '.' means text, '<' means kern offset + * ............................ + * min<<<<med<<<<max + * ................................. + * Actually, we do not take into account negative widths. + * There is a problem for such situation when there is efectively overlapping text. + * But this should be extremely rare. I guess that in that case, many different choices + * could be made, one being in contradiction of the other. + * It means that the best choice should be made according to the situation that occurs + * most frequently. + */ + if(hitPoint.h<min) { + return min - hitPoint.h + 1; /* penalty to ensure other nodes are chosen first in case of overlapping ones */ + } else if (hitPoint.h>max) { + return max - hitPoint.h - 1; /* same kind of penalty */ + } else if (hitPoint.h>med) { + /* do things like if the node had 0 width and was placed at the max edge + 1*/ + return max - hitPoint.h + 1; /* positive, the kern is to the right of the hitPoint */ + } else { + return min - hitPoint.h - 1; /* negative, the kern is to the left of the hitPoint */ + } + case synctex_node_type_glue: + case synctex_node_type_math: + return SYNCTEX_HORIZ(node) - hitPoint.h; + } + } + return INT_MAX;/* We always assume that the node is faraway to the right*/ +} +/* Rougly speaking, this is: + * node's v coordinate - hitPoint's v coordinate. + * If node is at the top of the hit point, then this distance is positive, + * if node is at the bottom of the hit point, this distance is negative.*/ +int _synctex_point_v_distance(synctex_point_t hitPoint, synctex_node_t node,synctex_bool_t visible); +int _synctex_point_v_distance(synctex_point_t hitPoint, synctex_node_t node,synctex_bool_t visible) { +# ifdef __DARWIN_UNIX03 +# pragma unused(visible) +# endif + if(node) { + int min,max; + switch(node->class->type) { + /* The distance between a point and a box is special. + * It is not the euclidian distance, nor something similar. + * We have to take into account the particular layout, + * and the box hierarchy. + * Given a box, there are 9 regions delimited by the lines of the edges of the box. + * The origin being at the top left corner of the page, + * we also give names to the vertices of the box. + * + * 1 | 2 | 3 + * ---A---B---> + * 4 | 5 | 6 + * ---C---D---> + * 7 | 8 | 9 + * v v + */ + case synctex_node_type_hbox: + /* getting the box bounds, taking into account negative width, height and depth. */ + min = SYNCTEX_VERT_V(node); + max = min + SYNCTEX_ABS_DEPTH_V(node); + min -= SYNCTEX_ABS_HEIGHT_V(node); + /* We allways have min <= max */ + if(hitPoint.v<min) { + return min - hitPoint.v; /* regions 1+2+3, result is > 0 */ + } else if (hitPoint.v>max) { + return max - hitPoint.v; /* regions 7+8+9, result is < 0 */ + } else { + return 0; /* regions 4.5.6, inside the box, except for horizontal coordinates */ + } + break; + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_void_hbox: + /* getting the box bounds, taking into account negative width, height and depth. */ + min = SYNCTEX_VERT(node); + max = min + SYNCTEX_ABS_DEPTH(node); + min -= SYNCTEX_ABS_HEIGHT(node); + /* We allways have min <= max */ + if(hitPoint.v<min) { + return min - hitPoint.v; /* regions 1+2+3, result is > 0 */ + } else if (hitPoint.v>max) { + return max - hitPoint.v; /* regions 7+8+9, result is < 0 */ + } else { + return 0; /* regions 4.5.6, inside the box, except for horizontal coordinates */ + } + break; + case synctex_node_type_kern: + case synctex_node_type_glue: + case synctex_node_type_math: + return SYNCTEX_VERT(node) - hitPoint.v; + } + } + return INT_MAX;/* We always assume that the node is faraway to the top*/ +} + +SYNCTEX_INLINE static synctex_node_t _synctex_smallest_container(synctex_node_t node, synctex_node_t other_node) { + float height, other_height; + if(SYNCTEX_ABS_WIDTH(node)<SYNCTEX_ABS_WIDTH(other_node)) { + return node; + } + if(SYNCTEX_ABS_WIDTH(node)>SYNCTEX_ABS_WIDTH(other_node)) { + return other_node; + } + height = SYNCTEX_ABS_DEPTH(node) + SYNCTEX_ABS_HEIGHT(node); + other_height = SYNCTEX_ABS_DEPTH(other_node) + SYNCTEX_ABS_HEIGHT(other_node); + if(height<other_height) { + return node; + } + if(height>other_height) { + return other_node; + } + return node; +} + +synctex_bool_t _synctex_point_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { + if(node) { + if(0 == _synctex_point_h_distance(hitPoint,node,visible) + && 0 == _synctex_point_v_distance(hitPoint,node,visible)) { + return synctex_YES; + } + } + return synctex_NO; +} + +int _synctex_node_distance_to_point(synctex_point_t hitPoint, synctex_node_t node, synctex_bool_t visible) { +# ifdef __DARWIN_UNIX03 +# pragma unused(visible) +# endif + int result = INT_MAX; /* when the distance is meaning less (sheet, input...) */ + if(node) { + int minH,maxH,minV,maxV; + switch(node->class->type) { + /* The distance between a point and a box is special. + * It is not the euclidian distance, nor something similar. + * We have to take into account the particular layout, + * and the box hierarchy. + * Given a box, there are 9 regions delimited by the lines of the edges of the box. + * The origin being at the top left corner of the page, + * we also give names to the vertices of the box. + * + * 1 | 2 | 3 + * ---A---B---> + * 4 | 5 | 6 + * ---C---D---> + * 7 | 8 | 9 + * v v + * In each region, there is a different formula. + * In the end we have a continuous distance which may not be a mathematical distance but who cares. */ + case synctex_node_type_vbox: + case synctex_node_type_void_vbox: + case synctex_node_type_hbox: + case synctex_node_type_void_hbox: + /* getting the box bounds, taking into account negative widths. */ + minH = SYNCTEX_HORIZ(node); + maxH = minH + SYNCTEX_ABS_WIDTH(node); + minV = SYNCTEX_VERT(node); + maxV = minV + SYNCTEX_ABS_DEPTH(node); + minV -= SYNCTEX_ABS_HEIGHT(node); + /* In what region is the point hitPoint=(H,V) ? */ + if(hitPoint.v<minV) { + if(hitPoint.h<minH) { + /* This is region 1. The distance to the box is the L1 distance PA. */ + result = minV - hitPoint.v + minH - hitPoint.h;/* Integer overflow? probability epsilon */ + } else if(hitPoint.h<=maxH) { + /* This is region 2. The distance to the box is the geometrical distance to the top edge. */ + result = minV - hitPoint.v; + } else { + /* This is region 3. The distance to the box is the L1 distance PB. */ + result = minV - hitPoint.v + hitPoint.h - maxH; + } + } else if(hitPoint.v<=maxV) { + if(hitPoint.h<minH) { + /* This is region 4. The distance to the box is the geometrical distance to the left edge. */ + result = minH - hitPoint.h; + } else if(hitPoint.h<=maxH) { + /* This is region 4. We are inside the box. */ + result = 0; + } else { + /* This is region 6. The distance to the box is the geometrical distance to the right edge. */ + result = hitPoint.h - maxH; + } + } else { + if(hitPoint.h<minH) { + /* This is region 7. The distance to the box is the L1 distance PC. */ + result = hitPoint.v - maxV + minH - hitPoint.h; + } else if(hitPoint.h<=maxH) { + /* This is region 8. The distance to the box is the geometrical distance to the top edge. */ + result = hitPoint.v - maxV; + } else { + /* This is region 9. The distance to the box is the L1 distance PD. */ + result = hitPoint.v - maxV + hitPoint.h - maxH; + } + } + break; + case synctex_node_type_kern: + maxH = SYNCTEX_WIDTH(node); + if(maxH<0) { + minH = SYNCTEX_HORIZ(node); + maxH = minH - maxH; + } else { + minH = -maxH; + maxH = SYNCTEX_HORIZ(node); + minH += maxH; + } + minV = SYNCTEX_VERT(node); + if(hitPoint.h<minH) { + if(hitPoint.v>minV) { + result = hitPoint.v - minV + minH - hitPoint.h; + } else { + result = minV - hitPoint.v + minH - hitPoint.h; + } + } else if (hitPoint.h>maxH) { + if(hitPoint.v>minV) { + result = hitPoint.v - minV + hitPoint.h - maxH; + } else { + result = minV - hitPoint.v + hitPoint.h - maxH; + } + } else if(hitPoint.v>minV) { + result = hitPoint.v - minV; + } else { + result = minV - hitPoint.v; + } + break; + case synctex_node_type_glue: + case synctex_node_type_math: + minH = SYNCTEX_HORIZ(node); + minV = SYNCTEX_VERT(node); + if(hitPoint.h<minH) { + if(hitPoint.v>minV) { + result = hitPoint.v - minV + minH - hitPoint.h; + } else { + result = minV - hitPoint.v + minH - hitPoint.h; + } + } else if(hitPoint.v>minV) { + result = hitPoint.v - minV + hitPoint.h - minH; + } else { + result = minV - hitPoint.v + hitPoint.h - minH; + } + break; + } + } + return result; +} + +static synctex_node_t _synctex_eq_deepest_container(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible) { + if(node) { + synctex_node_t result = NULL; + synctex_node_t child = NULL; + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_hbox: + /* test the deep nodes first */ + if((child = SYNCTEX_CHILD(node))) { + do { + if((result = _synctex_eq_deepest_container(hitPoint,child,visible))) { + return result; + } + } while((child = SYNCTEX_SIBLING(child))); + } + /* is the hit point inside the box? */ + if(_synctex_point_in_box(hitPoint,node,visible)) { + /* for vboxes we try to use some node inside. + * Walk through the list of siblings until we find the closest one. + * Only consider siblings with children. */ + if((node->class->type == synctex_node_type_vbox) && (child = SYNCTEX_CHILD(node))) { + int bestDistance = INT_MAX; + do { + if(SYNCTEX_CHILD(child)) { + int distance = _synctex_node_distance_to_point(hitPoint,child,visible); + if(distance < bestDistance) { + bestDistance = distance; + node = child; + } + } + } while((child = SYNCTEX_SIBLING(child))); + } + return node; + } + } + } + return NULL; +} + +/* Compares the locations of the hitPoint with the locations of the various nodes contained in the box. + * As it is an horizontal box, we only compare horizontal coordinates. */ +SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_hbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef, synctex_bool_t visible); +SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_hbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef, synctex_bool_t visible) { + int result = 0; + if((node = SYNCTEX_CHILD(node))) { + do { + int off7 = _synctex_point_h_distance(hitPoint,node,visible); + if(off7 > 0) { + /* node is to the right of the hit point. + * We compare node and the previously recorded one, through the recorded distance. + * If the nodes have the same tag, prefer the one with the smallest line number, + * if the nodes also have the same line number, prefer the one with the smallest column. */ + if(bestDistancesRef->right > off7) { + bestDistancesRef->right = off7; + bestNodesRef->right = node; + result |= SYNCTEX_MASK_RIGHT; + } else if(bestDistancesRef->right == off7 && bestNodesRef->right) { + if(SYNCTEX_TAG(bestNodesRef->right) == SYNCTEX_TAG(node) + && (SYNCTEX_LINE(bestNodesRef->right) > SYNCTEX_LINE(node) + || (SYNCTEX_LINE(bestNodesRef->right) == SYNCTEX_LINE(node) + && SYNCTEX_COLUMN(bestNodesRef->right) > SYNCTEX_COLUMN(node)))) { + bestNodesRef->right = node; + result |= SYNCTEX_MASK_RIGHT; + } + } + } else if(off7 == 0) { + /* hitPoint is inside node. */ + bestDistancesRef->left = bestDistancesRef->right = 0; + bestNodesRef->left = node; + bestNodesRef->right = NULL; + result |= SYNCTEX_MASK_LEFT; + } else { /* here off7 < 0, hitPoint is to the right of node */ + off7 = -off7; + if(bestDistancesRef->left > off7) { + bestDistancesRef->left = off7; + bestNodesRef->left = node; + result |= SYNCTEX_MASK_LEFT; + } else if(bestDistancesRef->left == off7 && bestNodesRef->left) { + if(SYNCTEX_TAG(bestNodesRef->left) == SYNCTEX_TAG(node) + && (SYNCTEX_LINE(bestNodesRef->left) > SYNCTEX_LINE(node) + || (SYNCTEX_LINE(bestNodesRef->left) == SYNCTEX_LINE(node) + && SYNCTEX_COLUMN(bestNodesRef->left) > SYNCTEX_COLUMN(node)))) { + bestNodesRef->left = node; + result |= SYNCTEX_MASK_LEFT; + } + } + } + } while((node = SYNCTEX_SIBLING(node))); + if(result & SYNCTEX_MASK_LEFT) { + /* the left node is new, try to narrow the result */ + if((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->left,visible))) { + bestNodesRef->left = node; + } + if((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->left,visible))) { + bestNodesRef->left = node; + } + } + if(result & SYNCTEX_MASK_RIGHT) { + /* the right node is new, try to narrow the result */ + if((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->right,visible))) { + bestNodesRef->right = node; + } + if((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->right,visible))) { + bestNodesRef->right = node; + } + } + } + return result; +} +SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_vbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible); +SYNCTEX_INLINE static int __synctex_eq_get_closest_children_in_vbox(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible) { + int result = 0; + if((node = SYNCTEX_CHILD(node))) { + do { + int off7 = _synctex_point_v_distance(hitPoint,node,visible);/* this is what makes the difference with the h version above */ + if(off7 > 0) { + /* node is to the top of the hit point (below because TeX is oriented from top to bottom. + * We compare node and the previously recorded one, through the recorded distance. + * If the nodes have the same tag, prefer the one with the smallest line number, + * if the nodes also have the same line number, prefer the one with the smallest column. */ + if(bestDistancesRef->right > off7) { + bestDistancesRef->right = off7; + bestNodesRef->right = node; + result |= SYNCTEX_MASK_RIGHT; + } else if(bestDistancesRef->right == off7 && bestNodesRef->right) { + if(SYNCTEX_TAG(bestNodesRef->right) == SYNCTEX_TAG(node) + && (SYNCTEX_LINE(bestNodesRef->right) > SYNCTEX_LINE(node) + || (SYNCTEX_LINE(bestNodesRef->right) == SYNCTEX_LINE(node) + && SYNCTEX_COLUMN(bestNodesRef->right) > SYNCTEX_COLUMN(node)))) { + bestNodesRef->right = node; + result |= SYNCTEX_MASK_RIGHT; + } + } + } else if(off7 == 0) { + bestDistancesRef->left = bestDistancesRef->right = 0; + bestNodesRef->left = node; + bestNodesRef->right = NULL; + result |= SYNCTEX_MASK_LEFT; + } else { /* here off7 < 0 */ + off7 = -off7; + if(bestDistancesRef->left > off7) { + bestDistancesRef->left = off7; + bestNodesRef->left = node; + result |= SYNCTEX_MASK_LEFT; + } else if(bestDistancesRef->left == off7 && bestNodesRef->left) { + if(SYNCTEX_TAG(bestNodesRef->left) == SYNCTEX_TAG(node) + && (SYNCTEX_LINE(bestNodesRef->left) > SYNCTEX_LINE(node) + || (SYNCTEX_LINE(bestNodesRef->left) == SYNCTEX_LINE(node) + && SYNCTEX_COLUMN(bestNodesRef->left) > SYNCTEX_COLUMN(node)))) { + bestNodesRef->left = node; + result |= SYNCTEX_MASK_LEFT; + } + } + } + } while((node = SYNCTEX_SIBLING(node))); + if(result & SYNCTEX_MASK_LEFT) { + /* the left node is new, try to narrow the result */ + if((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->left,visible))) { + bestNodesRef->left = node; + } + if((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->left,visible))) { + bestNodesRef->left = node; + } + } + if(result & SYNCTEX_MASK_RIGHT) { + /* the right node is new, try to narrow the result */ + if((node = _synctex_eq_deepest_container(hitPoint,bestNodesRef->right,visible))) { + bestNodesRef->right = node; + } + if((node = _synctex_eq_closest_child(hitPoint,bestNodesRef->right,visible))) { + bestNodesRef->right = node; + } + } + } + return result; +} +SYNCTEX_INLINE static int _synctex_eq_get_closest_children_in_box(synctex_point_t hitPoint, synctex_node_t node, synctex_node_set_t* bestNodesRef,synctex_distances_t* bestDistancesRef,synctex_bool_t visible) { + if(node) { + switch(node->class->type) { + case synctex_node_type_hbox: + return __synctex_eq_get_closest_children_in_hbox(hitPoint, node, bestNodesRef, bestDistancesRef,visible); + case synctex_node_type_vbox: + return __synctex_eq_get_closest_children_in_vbox(hitPoint, node, bestNodesRef, bestDistancesRef,visible); + } + } + return 0; +} + +SYNCTEX_INLINE static synctex_node_t __synctex_eq_closest_child(synctex_point_t hitPoint, synctex_node_t node,int* distanceRef, synctex_bool_t visible); +SYNCTEX_INLINE static synctex_node_t __synctex_eq_closest_child(synctex_point_t hitPoint, synctex_node_t node,int* distanceRef, synctex_bool_t visible) { + synctex_node_t best_node = NULL; + if((node = SYNCTEX_CHILD(node))) { + do { + int distance = _synctex_node_distance_to_point(hitPoint,node,visible); + synctex_node_t candidate = NULL; + if(distance<=*distanceRef) { + *distanceRef = distance; + best_node = node; + } + switch(node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_hbox: + if((candidate = __synctex_eq_closest_child(hitPoint,node,distanceRef,visible))) { + best_node = candidate; + } + } + } while((node = SYNCTEX_SIBLING(node))); + } + return best_node; +} +SYNCTEX_INLINE static synctex_node_t _synctex_eq_closest_child(synctex_point_t hitPoint,synctex_node_t node, synctex_bool_t visible) { + if(node) { + switch(node->class->type) { + case synctex_node_type_hbox: + case synctex_node_type_vbox: + { + int best_distance = INT_MAX; + synctex_node_t best_node = __synctex_eq_closest_child(hitPoint,node,&best_distance,visible); + if((best_node)) { + synctex_node_t child = NULL; + switch(best_node->class->type) { + case synctex_node_type_vbox: + case synctex_node_type_hbox: + if((child = SYNCTEX_CHILD(best_node))) { + best_distance = _synctex_node_distance_to_point(hitPoint,child,visible); + while((child = SYNCTEX_SIBLING(child))) { + int distance = _synctex_node_distance_to_point(hitPoint,child,visible); + if(distance<=best_distance) { + best_distance = distance; + best_node = child; + } + } + } + } + } + return best_node; + } + } + } + return NULL; +} + +# ifdef SYNCTEX_NOTHING +# pragma mark - +# pragma mark Updater +# endif + +typedef int (*synctex_fprintf_t)(void *, const char * , ...); /* print formatted to either FILE * or gzFile */ + +# define SYNCTEX_BITS_PER_BYTE 8 + +struct __synctex_updater_t { + void *file; /* the foo.synctex or foo.synctex.gz I/O identifier */ + synctex_fprintf_t fprintf; /* either fprintf or gzprintf */ + int length; /* the number of chars appended */ + struct _flags { + unsigned int no_gz:1; /* Whether zlib is used or not */ + unsigned int reserved:SYNCTEX_BITS_PER_BYTE*sizeof(int)-1; /* Align */ + } flags; +}; +# define SYNCTEX_FILE updater->file +# define SYNCTEX_NO_GZ ((updater->flags).no_gz) +# define SYNCTEX_fprintf (*(updater->fprintf)) + +synctex_updater_t synctex_updater_new_with_output_file(const char * output, const char * build_directory) { + synctex_updater_t updater = NULL; + char * synctex = NULL; + synctex_io_mode_t io_mode = synctex_io_mode_read; + const char * mode; + /* prepare the updater */ + updater = (synctex_updater_t)_synctex_malloc(sizeof(synctex_updater_t)); + if(NULL == updater) { + _synctex_error("! synctex_updater_new_with_file: malloc problem"); + return NULL; + } + if(_synctex_open(output,build_directory,&synctex,&SYNCTEX_FILE,synctex_NO,&io_mode) + && _synctex_open(output,build_directory,&synctex,&SYNCTEX_FILE,synctex_YES,&io_mode)) { +return_on_error: + free(updater); + return NULL; + } + /* OK, the file exists */ + gzclose(SYNCTEX_FILE); + SYNCTEX_FILE = NULL; + SYNCTEX_NO_GZ = io_mode%2?synctex_NO:synctex_YES; + mode = synctex_io_modes[io_mode+synctex_io_mode_append];/* either "a" or "ab", depending on the file extension */ + if(SYNCTEX_NO_GZ) { + if(NULL == (SYNCTEX_FILE = (void *)fopen(synctex,mode))) { +no_write_error: + _synctex_error("! synctex_updater_new_with_file: Can't append to %s",synctex); + free(synctex); + goto return_on_error; + } + updater->fprintf = (synctex_fprintf_t)(&fprintf); + } else { + if(NULL == (SYNCTEX_FILE = (void *)gzopen(synctex,mode))) { + goto no_write_error; + } + updater->fprintf = (synctex_fprintf_t)(&gzprintf); + } + printf("SyncTeX: updating %s...",synctex); + free(synctex); + return updater; +} + + +void synctex_updater_append_magnification(synctex_updater_t updater, char * magnification){ + if(NULL==updater) { + return; + } + if(magnification && strlen(magnification)) { + updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"Magnification:%s\n",magnification); + } +} + +void synctex_updater_append_x_offset(synctex_updater_t updater, char * x_offset){ + if(NULL==updater) { + return; + } + if(x_offset && strlen(x_offset)) { + updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"X Offset:%s\n",x_offset); + } +} + +void synctex_updater_append_y_offset(synctex_updater_t updater, char * y_offset){ + if(NULL==updater) { + return; + } + if(y_offset && strlen(y_offset)) { + updater->length += SYNCTEX_fprintf(SYNCTEX_FILE,"Y Offset:%s\n",y_offset); + } +} + +void synctex_updater_free(synctex_updater_t updater){ + if(NULL==updater) { + return; + } + if(updater->length>0) { + SYNCTEX_fprintf(SYNCTEX_FILE,"!%i\n",updater->length); + } + if (SYNCTEX_NO_GZ) { + fclose((FILE *)SYNCTEX_FILE); + } else { + gzclose((gzFile)SYNCTEX_FILE); + } + free(updater); + printf("... done.\n"); + return; +} diff --git a/cut-n-paste/synctex/synctex_parser.h b/cut-n-paste/synctex/synctex_parser.h new file mode 100644 index 00000000..b164b7fb --- /dev/null +++ b/cut-n-paste/synctex/synctex_parser.h @@ -0,0 +1,345 @@ +/* +Copyright (c) 2008, 2009, 2010 jerome DOT laurens AT u-bourgogne DOT fr + +This file is part of the SyncTeX package. + +Latest Revision: Wed Jul 1 11:16:51 UTC 2009 + +Version: 1.12 +See synctex_parser_readme.txt for more details + +License: +-------- +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE + +Except as contained in this notice, the name of the copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from the copyright holder. + +Acknowledgments: +---------------- +The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh, +and significant help from XeTeX developer Jonathan Kew + +Nota Bene: +---------- +If you include or use a significant part of the synctex package into a software, +I would appreciate to be listed as contributor and see "SyncTeX" highlighted. + +Version 1 +Thu Jun 19 09:39:21 UTC 2008 + +*/ + +#ifndef __SYNCTEX_PARSER__ +# define __SYNCTEX_PARSER__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* synctex_node_t is the type for all synctex nodes. + * The synctex file is parsed into a tree of nodes, either sheet, boxes, math nodes... */ +typedef struct _synctex_node * synctex_node_t; + +/* The main synctex object is a scanner + * Its implementation is considered private. + * The basic workflow is + * - create a "synctex scanner" with the contents of a file + * - perform actions on that scanner like display or edit queries + * - free the scanner when the work is done + */ +typedef struct __synctex_scanner_t _synctex_scanner_t; +typedef _synctex_scanner_t * synctex_scanner_t; + +/* This is the designated method to create a new synctex scanner object. + * output is the pdf/dvi/xdv file associated to the synctex file. + * If necessary, it can be the tex file that originated the synctex file + * but this might cause problems if the \jobname has a custom value. + * Despite this method can accept a relative path in practice, + * you should only pass a full path name. + * The path should be encoded by the underlying file system, + * assuming that it is based on 8 bits characters, including UTF8, + * not 16 bits nor 32 bits. + * The last file extension is removed and replaced by the proper extension. + * Then the private method _synctex_scanner_new_with_contents_of_file is called. + * NULL is returned in case of an error or non existent file. + * Once you have a scanner, use the synctex_display_query and synctex_edit_query below. + * The new "build_directory" argument is available since version 1.5. + * It is the directory where all the auxiliary stuff is created. + * Sometimes, the synctex output file and the pdf, dvi or xdv files are not created in the same directory. + * This is the case in MikTeX (I will include this into TeX Live). + * This directory path can be nil, it will be ignored. + * It can be either absolute or relative to the directory of the output pdf (dvi or xdv) file. + * If no synctex file is found in the same directory as the output file, then we try to find one in the build directory. + * Please note that this new "build_directory" is provided as a convenient argument but should not be used. + * In fact, this is implempented as a work around of a bug in MikTeX where the synctex file does not follow the pdf file. + * The new "parse" argument is available since version 1.5. In general, use 1. + * Use 0 only if you do not want to parse the content but just check the existence. + */ +synctex_scanner_t synctex_scanner_new_with_output_file(const char * output, const char * build_directory, int parse); + +/* This is the designated method to delete a synctex scanner object. + * Frees all the memory, you must call it when you are finished with the scanner. + */ +void synctex_scanner_free(synctex_scanner_t scanner); + +/* Send this message to force the scanner to parse the contents of the synctex output file. + * Nothing is performed if the file was already parsed. + * In each query below, this message is sent, but if you need to access information more directly, + * you must be sure that the parsing did occur. + * Usage: + * if((my_scanner = synctex_scanner_parse(my_scanner))) { + * continue with my_scanner... + * } else { + * there was a problem + * } + */ +synctex_scanner_t synctex_scanner_parse(synctex_scanner_t scanner); + +/* The main entry points. + * Given the file name, a line and a column number, synctex_display_query returns the number of nodes + * satisfying the contrain. Use code like + * + * if(synctex_display_query(scanner,name,line,column)>0) { + * synctex_node_t node; + * while((node = synctex_next_result(scanner))) { + * // do something with node + * ... + * } + * } + * + * For example, one can + * - highlight each resulting node in the output, using synctex_node_h and synctex_node_v + * - highlight all the rectangles enclosing those nodes, using synctex_box_... functions + * - highlight just the character using that information + * + * Given the page and the position in the page, synctex_edit_query returns the number of nodes + * satisfying the contrain. Use code like + * + * if(synctex_edit_query(scanner,page,h,v)>0) { + * synctex_node_t node; + * while(node = synctex_next_result(scanner)) { + * // do something with node + * ... + * } + * } + * + * For example, one can + * - highlight each resulting line in the input, + * - highlight just the character using that information + * + * page is 1 based + * h and v are coordinates in 72 dpi unit, relative to the top left corner of the page. + * If you make a new query, the result of the previous one is discarded. + * If one of this function returns a non positive integer, + * it means that an error occurred. + * + * Both methods are conservative, in the sense that matching is weak. + * If the exact column number is not found, there will be an answer with the whole line. + * + * Sumatra-PDF, Skim, iTeXMac2 and Texworks are examples of open source software that use this library. + * You can browse their code for a concrete implementation. + */ +int synctex_display_query(synctex_scanner_t scanner,const char * name,int line,int column); +int synctex_edit_query(synctex_scanner_t scanner,int page,float h,float v); +synctex_node_t synctex_next_result(synctex_scanner_t scanner); + +/* Display all the information contained in the scanner object. + * If the records are too numerous, only the first ones are displayed. + * This is mainly for informatinal purpose to help developers. + */ +void synctex_scanner_display(synctex_scanner_t scanner); + +/* The x and y offset of the origin in TeX coordinates. The magnification + These are used by pdf viewers that want to display the real box size. + For example, getting the horizontal coordinates of a node would require + synctex_node_box_h(node)*synctex_scanner_magnification(scanner)+synctex_scanner_x_offset(scanner) + Getting its TeX width would simply require + synctex_node_box_width(node)*synctex_scanner_magnification(scanner) + but direct methods are available for that below. + */ +int synctex_scanner_x_offset(synctex_scanner_t scanner); +int synctex_scanner_y_offset(synctex_scanner_t scanner); +float synctex_scanner_magnification(synctex_scanner_t scanner); + +/* Managing the input file names. + * Given a tag, synctex_scanner_get_name will return the corresponding file name. + * Conversely, given a file name, synctex_scanner_get_tag will retur, the corresponding tag. + * The file name must be the very same as understood by TeX. + * For example, if you \input myDir/foo.tex, the file name is myDir/foo.tex. + * No automatic path expansion is performed. + * Finally, synctex_scanner_input is the first input node of the scanner. + * To browse all the input node, use a loop like + * + * if((input_node = synctex_scanner_input(scanner))){ + * do { + * blah + * } while((input_node=synctex_node_sibling(input_node))); + * } + * + * The output is the name that was used to create the scanner. + * The synctex is the real name of the synctex file, + * it was obtained from output by setting the proper file extension. + */ +const char * synctex_scanner_get_name(synctex_scanner_t scanner,int tag); +int synctex_scanner_get_tag(synctex_scanner_t scanner,const char * name); +synctex_node_t synctex_scanner_input(synctex_scanner_t scanner); +const char * synctex_scanner_get_output(synctex_scanner_t scanner); +const char * synctex_scanner_get_synctex(synctex_scanner_t scanner); + +/* Browsing the nodes + * parent, child and sibling are standard names for tree nodes. + * The parent is one level higher, the child is one level deeper, + * and the sibling is at the same level. + * The sheet of a node is the first ancestor, it is of type sheet. + * A node and its sibling have the same parent. + * A node is the parent of its child. + * A node is either the child of its parent, + * or belongs to the sibling chain of its parent's child. + * The next node is either the child, the sibling or the parent's sibling, + * unless the parent is a sheet. + * This allows to navigate through all the nodes of a given sheet node: + * + * synctex_node_t node = sheet; + * while((node = synctex_node_next(node))) { + * // do something with node + * } + * + * With synctex_sheet_content, you can retrieve the sheet node given the page. + * The page is 1 based, according to TeX standards. + * Conversely synctex_node_sheet allows to retrieve the sheet containing a given node. + */ +synctex_node_t synctex_node_parent(synctex_node_t node); +synctex_node_t synctex_node_sheet(synctex_node_t node); +synctex_node_t synctex_node_child(synctex_node_t node); +synctex_node_t synctex_node_sibling(synctex_node_t node); +synctex_node_t synctex_node_next(synctex_node_t node); +synctex_node_t synctex_sheet_content(synctex_scanner_t scanner,int page); + +/* These are the types of the synctex nodes */ +typedef enum { + synctex_node_type_error = 0, + synctex_node_type_input, + synctex_node_type_sheet, + synctex_node_type_vbox, + synctex_node_type_void_vbox, + synctex_node_type_hbox, + synctex_node_type_void_hbox, + synctex_node_type_kern, + synctex_node_type_glue, + synctex_node_type_math, + synctex_node_type_boundary, + synctex_node_number_of_types +} synctex_node_type_t; + +/* synctex_node_type gives the type of a given node, + * synctex_node_isa gives the same information as a human readable text. */ +synctex_node_type_t synctex_node_type(synctex_node_t node); +const char * synctex_node_isa(synctex_node_t node); + +/* This is primarily used for debugging purpose. + * The second one logs information for the node and recursively displays information for its next node */ +void synctex_node_log(synctex_node_t node); +void synctex_node_display(synctex_node_t node); + +/* Given a node, access to its tag, line and column. + * The line and column numbers are 1 based. + * The latter is not yet fully supported in TeX, the default implementation returns 0 which means the whole line. + * When the tag is known, the scanner of the node will give the corresponding file name. + * When the tag is known, the scanner of the node will give the name. + */ +int synctex_node_tag(synctex_node_t node); +int synctex_node_line(synctex_node_t node); +int synctex_node_column(synctex_node_t node); + +/* This is the page where the node appears. + * This is a 1 based index as given by TeX. + */ +int synctex_node_page(synctex_node_t node); + +/* For quite all nodes, horizontal, vertical coordinates, and width. + * These are expressed in TeX small points coordinates, with origin at the top left corner. + */ +int synctex_node_h(synctex_node_t node); +int synctex_node_v(synctex_node_t node); +int synctex_node_width(synctex_node_t node); + +/* For all nodes, dimensions of the enclosing box. + * These are expressed in TeX small points coordinates, with origin at the top left corner. + * A box is enclosing itself. + */ +int synctex_node_box_h(synctex_node_t node); +int synctex_node_box_v(synctex_node_t node); +int synctex_node_box_width(synctex_node_t node); +int synctex_node_box_height(synctex_node_t node); +int synctex_node_box_depth(synctex_node_t node); + +/* For quite all nodes, horizontal, vertical coordinates, and width. + * The visible dimensions are bigger than real ones to compensate 0 width boxes + * that do contain nodes. + * These are expressed in page coordinates, with origin at the top left corner. + * A box is enclosing itself. + */ +float synctex_node_visible_h(synctex_node_t node); +float synctex_node_visible_v(synctex_node_t node); +float synctex_node_visible_width(synctex_node_t node); +/* For all nodes, visible dimensions of the enclosing box. + * A box is enclosing itself. + * The visible dimensions are bigger than real ones to compensate 0 width boxes + * that do contain nodes. + */ +float synctex_node_box_visible_h(synctex_node_t node); +float synctex_node_box_visible_v(synctex_node_t node); +float synctex_node_box_visible_width(synctex_node_t node); +float synctex_node_box_visible_height(synctex_node_t node); +float synctex_node_box_visible_depth(synctex_node_t node); + +/* The main synctex updater object. + * This object is used to append information to the synctex file. + * Its implementation is considered private. + * It is used by the synctex command line tool to take into account modifications + * that could occur while postprocessing files by dvipdf like filters. + */ +typedef struct __synctex_updater_t _synctex_updater_t; +typedef _synctex_updater_t * synctex_updater_t; + +/* Designated initializer. + * Once you are done with your whole job, + * free the updater */ +synctex_updater_t synctex_updater_new_with_output_file(const char * output, const char * directory); + +/* Use the next functions to append records to the synctex file, + * no consistency tests made on the arguments */ +void synctex_updater_append_magnification(synctex_updater_t updater, char * magnification); +void synctex_updater_append_x_offset(synctex_updater_t updater, char * x_offset); +void synctex_updater_append_y_offset(synctex_updater_t updater, char * y_offset); + +/* You MUST free the updater, once everything is properly appended */ +void synctex_updater_free(synctex_updater_t updater); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c new file mode 100644 index 00000000..0aef5777 --- /dev/null +++ b/cut-n-paste/synctex/synctex_parser_utils.c @@ -0,0 +1,462 @@ +/* +Copyright (c) 2008, 2009 jerome DOT laurens AT u-bourgogne DOT fr + +This file is part of the SyncTeX package. + +Latest Revision: Wed Nov 4 11:52:35 UTC 2009 + +Version: 1.9 +See synctex_parser_readme.txt for more details + +License: +-------- +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE + +Except as contained in this notice, the name of the copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from the copyright holder. + +*/ + +/* In this file, we find all the functions that may depend on the operating system. */ + +#include <synctex_parser_utils.h> +#include <stdlib.h> +#include <string.h> +#include <stdarg.h> +#include <stdio.h> + +#include <limits.h> +#include <ctype.h> +#include <string.h> + +#include <sys/stat.h> + +#if defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) +#define SYNCTEX_WINDOWS 1 +#endif + +#ifdef _WIN32_WINNT_WINXP +#define SYNCTEX_RECENT_WINDOWS 1 +#endif + +#ifdef SYNCTEX_WINDOWS +#include <windows.h> +#endif + +void *_synctex_malloc(size_t size) { + void * ptr = malloc(size); + if(ptr) { +/* There used to be a switch to use bzero because it is more secure. JL */ + memset(ptr,0, size); + } + return (void *)ptr; +} + +int _synctex_error(const char * reason,...) { + va_list arg; + int result; + va_start (arg, reason); +# ifdef SYNCTEX_RECENT_WINDOWS + {/* This code is contributed by William Blum. + As it does not work on some older computers, + the _WIN32 conditional here is replaced with a SYNCTEX_RECENT_WINDOWS one. + According to http://msdn.microsoft.com/en-us/library/aa363362(VS.85).aspx + Minimum supported client Windows 2000 Professional + Minimum supported server Windows 2000 Server + People running Windows 2K standard edition will not have OutputDebugStringA. + JL.*/ + char *buff; + size_t len; + OutputDebugStringA("SyncTeX ERROR: "); + len = _vscprintf(reason, arg) + 1; + buff = (char*)malloc( len * sizeof(char) ); + result = vsprintf(buff, reason, arg) +strlen("SyncTeX ERROR: "); + OutputDebugStringA(buff); + OutputDebugStringA("\n"); + free(buff); + } +# else + result = fprintf(stderr,"SyncTeX ERROR: "); + result += vfprintf(stderr, reason, arg); + result += fprintf(stderr,"\n"); +# endif + va_end (arg); + return result; +} + +/* strip the last extension of the given string, this string is modified! */ +void _synctex_strip_last_path_extension(char * string) { + if(NULL != string){ + char * last_component = NULL; + char * last_extension = NULL; + char * next = NULL; + /* first we find the last path component */ + if(NULL == (last_component = strstr(string,"/"))){ + last_component = string; + } else { + ++last_component; + while((next = strstr(last_component,"/"))){ + last_component = next+1; + } + } +# ifdef SYNCTEX_WINDOWS + /* On Windows, the '\' is also a path separator. */ + while((next = strstr(last_component,"\\"))){ + last_component = next+1; + } +# endif + /* then we find the last path extension */ + if((last_extension = strstr(last_component,"."))){ + ++last_extension; + while((next = strstr(last_extension,"."))){ + last_extension = next+1; + } + --last_extension;/* back to the "." */ + if(last_extension>last_component){/* filter out paths like ....my/dir/.hidden"*/ + last_extension[0] = '\0'; + } + } + } +} + +/* Compare two file names, windows is sometimes case insensitive... */ +synctex_bool_t _synctex_is_equivalent_file_name(const char *lhs, const char *rhs) { +# if SYNCTEX_WINDOWS + /* On Windows, filename should be compared case insensitive. + * The characters '/' and '\' are both valid path separators. + * There will be a very serious problem concerning UTF8 because + * not all the characters must be toupper... + * I would like to have URL's instead of filenames. */ +next_character: + if(SYNCTEX_IS_PATH_SEPARATOR(*lhs)) {/* lhs points to a path separator */ + if(!SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* but not rhs */ + return synctex_NO; + } + } else if(SYNCTEX_IS_PATH_SEPARATOR(*rhs)) {/* rhs points to a path separator but not lhs */ + return synctex_NO; + } else if(toupper(*lhs) != toupper(*rhs)){/* uppercase do not match */ + return synctex_NO; + } else if (!*lhs) {/* lhs is at the end of the string */ + return *rhs ? synctex_NO : synctex_YES; + } else if(!*rhs) {/* rhs is at the end of the string but not lhs */ + return synctex_NO; + } + ++lhs; + ++rhs; + goto next_character; +# else + return 0 == strcmp(lhs,rhs)?synctex_YES:synctex_NO; +# endif +} + +synctex_bool_t _synctex_path_is_absolute(const char * name) { + if(!strlen(name)) { + return synctex_NO; + } +# if SYNCTEX_WINDOWS + if(strlen(name)>2) { + return (name[1]==':' && SYNCTEX_IS_PATH_SEPARATOR(name[2]))?synctex_YES:synctex_NO; + } + return synctex_NO; +# else + return SYNCTEX_IS_PATH_SEPARATOR(name[0])?synctex_YES:synctex_NO; +# endif +} + +/* We do not take care of UTF-8 */ +const char * _synctex_last_path_component(const char * name) { + const char * c = name+strlen(name); + if(c>name) { + if(!SYNCTEX_IS_PATH_SEPARATOR(*c)) { + do { + --c; + if(SYNCTEX_IS_PATH_SEPARATOR(*c)) { + return c+1; + } + } while(c>name); + } + return c;/* the last path component is the void string*/ + } + return c; +} + +int _synctex_copy_with_quoting_last_path_component(const char * src, char ** dest_ref, size_t size) { + const char * lpc; + if(src && dest_ref) { +# define dest (*dest_ref) + dest = NULL; /* Default behavior: no change and sucess. */ + lpc = _synctex_last_path_component(src); + if(strlen(lpc)) { + if(strchr(lpc,' ') && lpc[0]!='"' && lpc[strlen(lpc)-1]!='"') { + /* We are in the situation where adding the quotes is allowed. */ + /* Time to add the quotes. */ + /* Consistency test: we must have dest+size>dest+strlen(dest)+2 + * or equivalently: strlen(dest)+2<size (see below) */ + if(strlen(src)<size) { + if((dest = (char *)malloc(size+2))) { + char * dpc = dest + (lpc-src); /* dpc is the last path component of dest. */ + if(dest != strncpy(dest,src,size)) { + _synctex_error("! _synctex_copy_with_quoting_last_path_component: Copy problem"); + free(dest); + dest = NULL;/* Don't forget to reinitialize. */ + return -2; + } + memmove(dpc+1,dpc,strlen(dpc)+1); /* Also move the null terminating character. */ + dpc[0]='"'; + dpc[strlen(dpc)+1]='\0';/* Consistency test */ + dpc[strlen(dpc)]='"'; + return 0; /* Success. */ + } + return -1; /* Memory allocation error. */ + } + _synctex_error("! _synctex_copy_with_quoting_last_path_component: Internal inconsistency"); + return -3; + } + return 0; /* Success. */ + } + return 0; /* No last path component. */ +# undef dest + } + return 1; /* Bad parameter, this value is subject to changes. */ +} + +/* The client is responsible of the management of the returned string, if any. */ +char * _synctex_merge_strings(const char * first,...); + +char * _synctex_merge_strings(const char * first,...) { + va_list arg; + size_t size = 0; + const char * temp; + /* First retrieve the size necessary to store the merged string */ + va_start (arg, first); + temp = first; + do { + size_t len = strlen(temp); + if(UINT_MAX-len<size) { + _synctex_error("! _synctex_merge_strings: Capacity exceeded."); + return NULL; + } + size+=len; + } while( (temp = va_arg(arg, const char *)) != NULL); + va_end(arg); + if(size>0) { + char * result = NULL; + ++size; + /* Create the memory storage */ + if(NULL!=(result = (char *)malloc(size))) { + char * dest = result; + va_start (arg, first); + temp = first; + do { + if((size = strlen(temp))>0) { + /* There is something to merge */ + if(dest != strncpy(dest,temp,size)) { + _synctex_error("! _synctex_merge_strings: Copy problem"); + free(result); + result = NULL; + return NULL; + } + dest += size; + } + } while( (temp = va_arg(arg, const char *)) != NULL); + va_end(arg); + dest[0]='\0';/* Terminate the merged string */ + return result; + } + _synctex_error("! _synctex_merge_strings: Memory problem"); + return NULL; + } + return NULL; +} + +/* The purpose of _synctex_get_name is to find the name of the synctex file. + * There is a list of possible filenames from which we return the most recent one and try to remove all the others. + * With two runs of pdftex or xetex we are sure the the synctex file is really the most appropriate. + */ +int _synctex_get_name(const char * output, const char * build_directory, char ** synctex_name_ref, synctex_compress_mode_t * compress_mode_ref) +{ + if(output && synctex_name_ref && compress_mode_ref) { +# define synctex_name (*synctex_name_ref) +# define compress_mode (*compress_mode_ref) + /* If output is already absolute, we just have to manage the quotes and the compress mode */ + const char * basename = NULL; /* base name of output*/ + size_t size = 0; + /* Initialize the return values. */ + synctex_name = NULL; + compress_mode = synctex_compress_mode_none; + basename = _synctex_last_path_component(output); /* do not free, output is the owner. */ + /* Do we have a real base name ? */ + if((size = strlen(basename))>0) { + /* Yes, we do. */ + const char * temp = NULL; + char * corename = NULL; /* base name of output without path extension. */ + char * dirname = NULL; /* dir name of output */ + char * quoted_corename = NULL; + char * none = NULL; + char * gz = NULL; + char * quoted = NULL; + char * quoted_gz = NULL; + char * build = NULL; + char * build_gz = NULL; + char * build_quoted = NULL; + char * build_quoted_gz = NULL; + struct stat buf; + time_t time = 0; + /* Create corename: let temp point to the dot before the path extension of basename; + * We start form the \0 terminating character and scan the string upward until we find a dot. + * The first dot is not accepted. */ + temp = strrchr(basename,'.'); + size = temp - basename; + if(size>0) { + /* dot properly found, now create corename */ + if(NULL == (corename = (char *)malloc(size+1))) { + _synctex_error("! _synctex_get_name: Memory problem 1"); + return -1; + } + if(corename != strncpy(corename,basename,size)) { + _synctex_error("! _synctex_get_name: Copy problem 1"); + free(corename); + dirname = NULL; + return -2; + } + corename[size] = '\0'; + } else { + /* There is no path extension, + * Just make a copy of basename */ + corename = _synctex_merge_strings(basename); + } + /* corename is properly set up, owned by "self". */ + /* creating dirname. */ + size = strlen(output)-strlen(basename); + if(size>0) { + /* output contains more than one path component */ + if(NULL == (dirname = (char *)malloc(size+1))) { + _synctex_error("! _synctex_get_name: Memory problem"); + free(corename); + dirname = NULL; + return -1; + } + if(dirname != strncpy(dirname,output,size)) { + _synctex_error("! _synctex_get_name: Copy problem"); + free(dirname); + dirname = NULL; + free(corename); + dirname = NULL; + return -2; + } + dirname[size] = '\0'; + } + /* dirname is properly set up. It ends with a path separator, if non void. */ + /* creating quoted_corename. */ + if(strchr(corename,' ')) { + quoted_corename = _synctex_merge_strings("\"",corename,"\""); + } + /* quoted_corename is properly set up. */ + if(dirname &&strlen(dirname)>0) { + none = _synctex_merge_strings(dirname,corename,synctex_suffix,NULL); + if(quoted_corename && strlen(quoted_corename)>0) { + quoted = _synctex_merge_strings(dirname,quoted_corename,synctex_suffix,NULL); + } + } else { + none = _synctex_merge_strings(corename,synctex_suffix,NULL); + if(quoted_corename && strlen(quoted_corename)>0) { + quoted = _synctex_merge_strings(quoted_corename,synctex_suffix,NULL); + } + } + if(!_synctex_path_is_absolute(output) && build_directory && (size = strlen(build_directory))) { + temp = build_directory + size - 1; + if(_synctex_path_is_absolute(temp)) { + build = _synctex_merge_strings(build_directory,none,NULL); + if(quoted_corename && strlen(quoted_corename)>0) { + build_quoted = _synctex_merge_strings(build_directory,quoted,NULL); + } + } else { + build = _synctex_merge_strings(build_directory,"/",none,NULL); + if(quoted_corename && strlen(quoted_corename)>0) { + build_quoted = _synctex_merge_strings(build_directory,"/",quoted,NULL); + } + } + } + if(none) { + gz = _synctex_merge_strings(none,synctex_suffix_gz,NULL); + } + if(quoted) { + quoted_gz = _synctex_merge_strings(quoted,synctex_suffix_gz,NULL); + } + if(build) { + build_gz = _synctex_merge_strings(build,synctex_suffix_gz,NULL); + } + if(build_quoted) { + build_quoted_gz = _synctex_merge_strings(build_quoted,synctex_suffix_gz,NULL); + } + /* All the others names are properly set up... */ + /* retain the most recently modified file */ +# define TEST(FILENAME,COMPRESS_MODE) \ + if(FILENAME) {\ + if (stat(FILENAME, &buf)) { \ + free(FILENAME);\ + FILENAME = NULL;\ + } else { \ + if(buf.st_mtime>time) { \ + time=buf.st_mtime; \ + synctex_name = FILENAME; \ + compress_mode = COMPRESS_MODE; \ + } \ + } \ + } + TEST(none,synctex_compress_mode_none); + TEST(gz,synctex_compress_mode_gz); + TEST(quoted,synctex_compress_mode_none); + TEST(quoted_gz,synctex_compress_mode_gz); + TEST(build,synctex_compress_mode_none); + TEST(build_gz,synctex_compress_mode_gz); + TEST(build_quoted,synctex_compress_mode_none); + TEST(build_quoted_gz,synctex_compress_mode_gz); +# undef TEST + /* Free all the intermediate filenames, except the one that will be used as returned value. */ +# define CLEAN_AND_REMOVE(FILENAME) \ + if(FILENAME && (FILENAME!=synctex_name)) {\ + remove(FILENAME);\ + printf("synctex tool info: %s removed\n",FILENAME);\ + free(FILENAME);\ + FILENAME = NULL;\ + } + CLEAN_AND_REMOVE(none); + CLEAN_AND_REMOVE(gz); + CLEAN_AND_REMOVE(quoted); + CLEAN_AND_REMOVE(quoted_gz); + CLEAN_AND_REMOVE(build); + CLEAN_AND_REMOVE(build_gz); + CLEAN_AND_REMOVE(build_quoted); + CLEAN_AND_REMOVE(build_quoted_gz); +# undef CLEAN_AND_REMOVE + return 0; + } + return -1;/* bad argument */ +# undef synctex_name +# undef compress_mode + } + return -2; +} + diff --git a/cut-n-paste/synctex/synctex_parser_utils.h b/cut-n-paste/synctex/synctex_parser_utils.h new file mode 100644 index 00000000..e28ff58a --- /dev/null +++ b/cut-n-paste/synctex/synctex_parser_utils.h @@ -0,0 +1,123 @@ +/* +Copyright (c) 2008, 2009 jerome DOT laurens AT u-bourgogne DOT fr + +This file is part of the SyncTeX package. + +Version: 1.8 +Latest Revision: Wed Jul 1 11:16:01 UTC 2009 +See synctex_parser_readme.txt for more details + +License: +-------- +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE + +Except as contained in this notice, the name of the copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from the copyright holder. + +*/ + +/* The utilities declared here are subject to conditional implementation. + * All the operating system special stuff goes here. + * The problem mainly comes from file name management: path separator, encoding... + */ + +# define synctex_bool_t int +# define synctex_YES -1 +# define synctex_NO 0 + +#ifndef __SYNCTEX_PARSER_UTILS__ +# define __SYNCTEX_PARSER_UTILS__ + +#include <stdlib.h> + +#ifdef __cplusplus +extern "C" { +#endif + +# if _WIN32 +# define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c || '\\' == c) +# else +# define SYNCTEX_IS_PATH_SEPARATOR(c) ('/' == c) +# endif + +/* This custom malloc functions initializes to 0 the newly allocated memory. + * There is no bzero function on windows. */ +void *_synctex_malloc(size_t size); + +/* This is used to log some informational message to the standard error stream. + * On Windows, the stderr stream is not exposed and another method is used. + * The return value is the number of characters printed. */ +int _synctex_error(const char * reason,...); + +/* strip the last extension of the given string, this string is modified! + * This function depends on the OS because the path separator may differ. + * This should be discussed more precisely. */ +void _synctex_strip_last_path_extension(char * string); + +/* Compare two file names, windows is sometimes case insensitive... + * The given strings may differ stricto sensu, but represent the same file name. + * It might not be the real way of doing things. + * The return value is an undefined non 0 value when the two file names are equivalent. + * It is 0 otherwise. */ +synctex_bool_t _synctex_is_equivalent_file_name(const char *lhs, const char *rhs); + +/* Description forthcoming.*/ +synctex_bool_t _synctex_path_is_absolute(const char * name); + +/* Description forthcoming...*/ +const char * _synctex_last_path_component(const char * name); + +/* If the core of the last path component of src is not already enclosed with double quotes ('"') + * and contains a space character (' '), then a new buffer is created, the src is copied and quotes are added. + * In all other cases, no destination buffer is created and the src is not copied. + * 0 on success, which means no error, something non 0 means error, mainly due to memory allocation failure, or bad parameter. + * This is used to fix a bug in the first version of pdftex with synctex (1.40.9) for which names with spaces + * were not managed in a standard way. + * On success, the caller owns the buffer pointed to by dest_ref (is any) and + * is responsible of freeing the memory when done. + * The size argument is the size of the src buffer. On return the dest_ref points to a buffer sized size+2.*/ +int _synctex_copy_with_quoting_last_path_component(const char * src, char ** dest_ref, size_t size); + +/* These are the possible extensions of the synctex file */ +extern const char * synctex_suffix; +extern const char * synctex_suffix_gz; + +typedef enum { + synctex_io_mode_read = 0, + synctex_io_mode_append = 2 +} synctex_io_mode_t; + +typedef enum { + synctex_compress_mode_none = 0, + synctex_compress_mode_gz = 1 +} synctex_compress_mode_t; + +int _synctex_get_name(const char * output, const char * build_directory, char ** synctex_name_ref, synctex_compress_mode_t * compress_mode_ref); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cut-n-paste/toolbar-editor/Makefile.am b/cut-n-paste/toolbar-editor/Makefile.am new file mode 100644 index 00000000..b3e843ec --- /dev/null +++ b/cut-n-paste/toolbar-editor/Makefile.am @@ -0,0 +1,108 @@ +EGGSOURCES = \ + egg-editable-toolbar.c \ + egg-toolbars-model.c \ + egg-toolbar-editor.c + +EGGHEADERS = \ + egg-editable-toolbar.h \ + egg-toolbars-model.h \ + egg-toolbar-editor.h + +noinst_HEADERS = \ + $(EGGHEADERS) \ + eggmarshalers.h + +noinst_LTLIBRARIES = libtoolbareditor.la + +libtoolbareditor_la_SOURCES = \ + $(BUILT_SOURCES) \ + $(EGGSOURCES) \ + $(EGGHEADERS) + +libtoolbareditor_la_CPPFLAGS = \ + $(AM_CPPFLAGS) + +libtoolbareditor_la_CFLAGS = \ + $(SHELL_CORE_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -DCURSOR_DIR=\"$(pkgdatadir)\" \ + $(AM_CFLAGS) + +BUILT_SOURCES = \ + eggmarshalers.c \ + eggmarshalers.h \ + eggtypebuiltins.c \ + eggtypebuiltins.h + +stamp_files = \ + stamp-eggmarshalers.c \ + stamp-eggmarshalers.h \ + stamp-eggtypebuiltins.c \ + stamp-eggtypebuiltins.h + +eggmarshalers.h: stamp-eggmarshalers.h + @true +stamp-eggmarshalers.h: eggmarshalers.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=_egg_marshal $(srcdir)/eggmarshalers.list --header > eggmarshalers.h \ + && echo timestamp > $(@F) + +eggmarshalers.c: stamp-eggmarshalers.c + @true +stamp-eggmarshalers.c: eggmarshalers.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=_egg_marshal $(srcdir)/eggmarshalers.list --header --body > eggmarshalers.c \ + && echo timestamp > $(@F) + +eggtypebuiltins.c: stamp-eggtypebuiltins.c + @true +stamp-eggtypebuiltins.c: $(EGGHEADERS) + $(AM_V_GEN)( cd $(srcdir) && $(GLIB_MKENUMS) \ + --fhead "#include <config.h>\n\n" \ + --fhead "#include \"eggtypebuiltins.h\"\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --fprod "\n#include \"@filename@\"" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType\n@enum_name@_get_type (void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (G_UNLIKELY (type == 0))\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + $(^F) ) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) + +eggtypebuiltins.h: stamp-eggtypebuiltins.h + @true +stamp-eggtypebuiltins.h: $(EGGHEADERS) + $(AM_V_GEN)( cd $(srcdir) && $(GLIB_MKENUMS) \ + --fhead "#ifndef __EGGTYPEBUILTINS_H__\n" \ + --fhead "#define __EGGTYPEBUILTINS_H__ 1\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* __EGGTYPEBUILTINS_H__ */\n" \ + --fprod "\n/* --- @filename@ --- */" \ + --eprod "#define EGG_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \ + --eprod "GType @enum_name@_get_type (void);\n" \ + $(^F) ) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) + +EXTRA_DIST = \ + eggmarshalers.list + +EGGFILES=$(EGGSOURCES) $(EGGHEADERS) +EGGDIR=$(srcdir)/../../../libegg/libegg + +regenerate-built-sources: + EGGFILES="$(EGGFILES) eggmarshalers.list" EGGDIR="$(EGGDIR)" $(top_srcdir)/cut-n-paste/update-from-egg.sh + +CLEANFILES = $(stamp_files) $(BUILT_SOURCES) +DISTCLEANFILES = $(stamp_files) $(BUILT_SOURCES) +MAINTAINERCLEANFILES = $(stamp_files) $(BUILT_SOURCES) + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/toolbar-editor/egg-editable-toolbar.c b/cut-n-paste/toolbar-editor/egg-editable-toolbar.c new file mode 100644 index 00000000..9193120a --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-editable-toolbar.c @@ -0,0 +1,1828 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004, 2005 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "egg-editable-toolbar.h" +#include "egg-toolbars-model.h" +#include "egg-toolbar-editor.h" + +#include <gtk/gtk.h> +#include <glib/gi18n.h> +#include <string.h> + +static GdkPixbuf * new_separator_pixbuf (void); + +#define MIN_TOOLBAR_HEIGHT 20 +#define EGG_ITEM_NAME "egg-item-name" +#define STOCK_DRAG_MODE "stock_drag-mode" + +static const GtkTargetEntry dest_drag_types[] = { + {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0}, +}; + +enum +{ + PROP_0, + PROP_TOOLBARS_MODEL, + PROP_UI_MANAGER, + PROP_POPUP_PATH, + PROP_SELECTED, + PROP_EDIT_MODE +}; + +enum +{ + ACTION_REQUEST, + LAST_SIGNAL +}; + +static guint egg_editable_toolbar_signals[LAST_SIGNAL] = { 0 }; + +#define EGG_EDITABLE_TOOLBAR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarPrivate)) + +struct _EggEditableToolbarPrivate +{ + GtkUIManager *manager; + EggToolbarsModel *model; + guint edit_mode; + gboolean save_hidden; + GtkWidget *fixed_toolbar; + + GtkWidget *selected; + GtkActionGroup *actions; + + guint visibility_id; + GList *visibility_paths; + GPtrArray *visibility_actions; + + char *popup_path; + + guint dnd_pending; + GtkToolbar *dnd_toolbar; + GtkToolItem *dnd_toolitem; +}; + +G_DEFINE_TYPE (EggEditableToolbar, egg_editable_toolbar, GTK_TYPE_VBOX); + +static int +get_dock_position (EggEditableToolbar *etoolbar, + GtkWidget *dock) +{ + GList *l; + int result; + + l = gtk_container_get_children (GTK_CONTAINER (etoolbar)); + result = g_list_index (l, dock); + g_list_free (l); + + return result; +} + +static int +get_toolbar_position (EggEditableToolbar *etoolbar, GtkWidget *toolbar) +{ + return get_dock_position (etoolbar, gtk_widget_get_parent (toolbar)); +} + +static int +get_n_toolbars (EggEditableToolbar *etoolbar) +{ + GList *l; + int result; + + l = gtk_container_get_children (GTK_CONTAINER (etoolbar)); + result = g_list_length (l); + g_list_free (l); + + return result; +} + +static GtkWidget * +get_dock_nth (EggEditableToolbar *etoolbar, + int position) +{ + GList *l; + GtkWidget *result; + + l = gtk_container_get_children (GTK_CONTAINER (etoolbar)); + result = g_list_nth_data (l, position); + g_list_free (l); + + return result; +} + +static GtkWidget * +get_toolbar_nth (EggEditableToolbar *etoolbar, + int position) +{ + GList *l; + GtkWidget *dock; + GtkWidget *result; + + dock = get_dock_nth (etoolbar, position); + g_return_val_if_fail (dock != NULL, NULL); + + l = gtk_container_get_children (GTK_CONTAINER (dock)); + result = GTK_WIDGET (l->data); + g_list_free (l); + + return result; +} + +static GtkAction * +find_action (EggEditableToolbar *etoolbar, + const char *name) +{ + GList *l; + GtkAction *action = NULL; + + l = gtk_ui_manager_get_action_groups (etoolbar->priv->manager); + + g_return_val_if_fail (name != NULL, NULL); + + for (; l != NULL; l = l->next) + { + GtkAction *tmp; + + tmp = gtk_action_group_get_action (GTK_ACTION_GROUP (l->data), name); + if (tmp) + action = tmp; + } + + return action; +} + +static void +drag_data_delete_cb (GtkWidget *widget, + GdkDragContext *context, + EggEditableToolbar *etoolbar) +{ + int pos, toolbar_pos; + GtkWidget *parent; + + widget = gtk_widget_get_ancestor (widget, GTK_TYPE_TOOL_ITEM); + g_return_if_fail (widget != NULL); + g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (etoolbar)); + + parent = gtk_widget_get_parent (widget); + pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (parent), + GTK_TOOL_ITEM (widget)); + toolbar_pos = get_toolbar_position (etoolbar, parent); + + egg_toolbars_model_remove_item (etoolbar->priv->model, + toolbar_pos, pos); +} + +static void +drag_begin_cb (GtkWidget *widget, + GdkDragContext *context, + EggEditableToolbar *etoolbar) +{ + GtkAction *action; + gint flags; + + gtk_widget_hide (widget); + +#if GTK_CHECK_VERSION (2, 16, 0) + action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget)); +#else + action = gtk_widget_get_action (widget); +#endif + + if (action == NULL) return; + + flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model, + gtk_action_get_name (action)); + if (!(flags & EGG_TB_MODEL_NAME_INFINITE)) + { + flags &= ~EGG_TB_MODEL_NAME_USED; + egg_toolbars_model_set_name_flags (etoolbar->priv->model, + gtk_action_get_name (action), + flags); + } +} + +static void +drag_end_cb (GtkWidget *widget, + GdkDragContext *context, + EggEditableToolbar *etoolbar) +{ + GtkAction *action; + gint flags; + + if (gtk_widget_get_parent (widget) != NULL) + { + gtk_widget_show (widget); + +#if GTK_CHECK_VERSION (2, 16, 0) + action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget)); +#else + action = gtk_widget_get_action (widget); +#endif + + if (action == NULL) return; + + flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model, + gtk_action_get_name (action)); + if (!(flags & EGG_TB_MODEL_NAME_INFINITE)) + { + flags |= EGG_TB_MODEL_NAME_USED; + egg_toolbars_model_set_name_flags (etoolbar->priv->model, + gtk_action_get_name (action), + flags); + } + } +} + +static void +drag_data_get_cb (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint32 time, + EggEditableToolbar *etoolbar) +{ + EggToolbarsModel *model; + const char *name; + char *data; + GdkAtom target; + + g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (etoolbar)); + model = egg_editable_toolbar_get_model (etoolbar); + + name = g_object_get_data (G_OBJECT (widget), EGG_ITEM_NAME); + if (name == NULL) + { + name = g_object_get_data (G_OBJECT (gtk_widget_get_parent (widget)), EGG_ITEM_NAME); + g_return_if_fail (name != NULL); + } + + target = gtk_selection_data_get_target (selection_data); + data = egg_toolbars_model_get_data (model, target, name); + if (data != NULL) + { + gtk_selection_data_set (selection_data, target, 8, (unsigned char *)data, strlen (data)); + g_free (data); + } +} + +static void +move_item_cb (GtkAction *action, + EggEditableToolbar *etoolbar) +{ + GtkWidget *toolitem = gtk_widget_get_ancestor (egg_editable_toolbar_get_selected (etoolbar), GTK_TYPE_TOOL_ITEM); + GtkTargetList *list = gtk_target_list_new (dest_drag_types, G_N_ELEMENTS (dest_drag_types)); + + GdkEvent *realevent = gtk_get_current_event(); + GdkEventMotion event; + event.type = GDK_MOTION_NOTIFY; + event.window = realevent->any.window; + event.send_event = FALSE; + event.axes = NULL; + event.time = gdk_event_get_time (realevent); + gdk_event_get_state (realevent, &event.state); + gdk_event_get_coords (realevent, &event.x, &event.y); + gdk_event_get_root_coords (realevent, &event.x_root, &event.y_root); + + gtk_drag_begin (toolitem, list, GDK_ACTION_MOVE, 1, (GdkEvent *)&event); + gtk_target_list_unref (list); +} + +static void +remove_item_cb (GtkAction *action, + EggEditableToolbar *etoolbar) +{ + GtkWidget *toolitem = gtk_widget_get_ancestor (egg_editable_toolbar_get_selected (etoolbar), GTK_TYPE_TOOL_ITEM); + GtkWidget *parent = gtk_widget_get_parent (toolitem); + int pos, toolbar_pos; + + toolbar_pos = get_toolbar_position (etoolbar, parent); + pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (parent), + GTK_TOOL_ITEM (toolitem)); + + egg_toolbars_model_remove_item (etoolbar->priv->model, + toolbar_pos, pos); + + if (egg_toolbars_model_n_items (etoolbar->priv->model, toolbar_pos) == 0) + { + egg_toolbars_model_remove_toolbar (etoolbar->priv->model, toolbar_pos); + } +} + +static void +remove_toolbar_cb (GtkAction *action, + EggEditableToolbar *etoolbar) +{ + GtkWidget *selected = egg_editable_toolbar_get_selected (etoolbar); + GtkWidget *toolbar = gtk_widget_get_ancestor (selected, GTK_TYPE_TOOLBAR); + int toolbar_pos; + + toolbar_pos = get_toolbar_position (etoolbar, toolbar); + egg_toolbars_model_remove_toolbar (etoolbar->priv->model, toolbar_pos); +} + +static void +popup_context_deactivate (GtkMenuShell *menu, + EggEditableToolbar *etoolbar) +{ + egg_editable_toolbar_set_selected (etoolbar, NULL); + g_object_notify (G_OBJECT (etoolbar), "selected"); +} + +static void +popup_context_menu_cb (GtkWidget *toolbar, + gint x, + gint y, + gint button_number, + EggEditableToolbar *etoolbar) +{ + if (etoolbar->priv->popup_path != NULL) + { + GtkMenu *menu; + + egg_editable_toolbar_set_selected (etoolbar, toolbar); + g_object_notify (G_OBJECT (etoolbar), "selected"); + + menu = GTK_MENU (gtk_ui_manager_get_widget (etoolbar->priv->manager, + etoolbar->priv->popup_path)); + g_return_if_fail (menu != NULL); + gtk_menu_popup (menu, NULL, NULL, NULL, NULL, button_number, gtk_get_current_event_time ()); + g_signal_connect_object (menu, "selection-done", + G_CALLBACK (popup_context_deactivate), + etoolbar, 0); + } +} + +static gboolean +button_press_event_cb (GtkWidget *widget, + GdkEventButton *event, + EggEditableToolbar *etoolbar) +{ + if (event->button == 3 && etoolbar->priv->popup_path != NULL) + { + GtkMenu *menu; + + egg_editable_toolbar_set_selected (etoolbar, widget); + g_object_notify (G_OBJECT (etoolbar), "selected"); + + menu = GTK_MENU (gtk_ui_manager_get_widget (etoolbar->priv->manager, + etoolbar->priv->popup_path)); + g_return_val_if_fail (menu != NULL, FALSE); + gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time); + g_signal_connect_object (menu, "selection-done", + G_CALLBACK (popup_context_deactivate), + etoolbar, 0); + + return TRUE; + } + + return FALSE; +} + +static void +configure_item_sensitivity (GtkToolItem *item, EggEditableToolbar *etoolbar) +{ + GtkAction *action; + char *name; + + name = g_object_get_data (G_OBJECT (item), EGG_ITEM_NAME); + action = name ? find_action (etoolbar, name) : NULL; + + if (action) + { + g_object_notify (G_OBJECT (action), "sensitive"); + } + + gtk_tool_item_set_use_drag_window (item, + (etoolbar->priv->edit_mode > 0) || + GTK_IS_SEPARATOR_TOOL_ITEM (item)); + +} + +static void +configure_item_cursor (GtkToolItem *item, + EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + GtkWidget *widget = GTK_WIDGET (item); + GdkWindow *window = gtk_widget_get_window (widget); + + if (window != NULL) + { + if (priv->edit_mode > 0) + { + GdkCursor *cursor; + GdkScreen *screen; + GdkPixbuf *pixbuf = NULL; + + screen = gtk_widget_get_screen (GTK_WIDGET (etoolbar)); + + cursor = gdk_cursor_new_for_display (gdk_screen_get_display (screen), + GDK_HAND2); + gdk_window_set_cursor (window, cursor); + gdk_cursor_unref (cursor); + + gtk_drag_source_set (widget, GDK_BUTTON1_MASK, dest_drag_types, + G_N_ELEMENTS (dest_drag_types), GDK_ACTION_MOVE); + if (GTK_IS_SEPARATOR_TOOL_ITEM (item)) + { + pixbuf = new_separator_pixbuf (); + } + else + { + char *icon_name=NULL; + char *stock_id=NULL; + GtkAction *action; + char *name; + + name = g_object_get_data (G_OBJECT (widget), EGG_ITEM_NAME); + action = name ? find_action (etoolbar, name) : NULL; + + if (action) + { + g_object_get (action, + "icon-name", &icon_name, + "stock-id", &stock_id, + NULL); + } + if (icon_name) + { + GdkScreen *screen; + GtkIconTheme *icon_theme; + GtkSettings *settings; + gint width, height; + + screen = gtk_widget_get_screen (widget); + icon_theme = gtk_icon_theme_get_for_screen (screen); + settings = gtk_settings_get_for_screen (screen); + + if (!gtk_icon_size_lookup_for_settings (settings, + GTK_ICON_SIZE_LARGE_TOOLBAR, + &width, &height)) + { + width = height = 24; + } + + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, + MIN (width, height), 0, NULL); + } + else if (stock_id) + { + pixbuf = gtk_widget_render_icon (widget, stock_id, + GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + } + g_free (icon_name); + g_free (stock_id); + } + + if (G_UNLIKELY (!pixbuf)) + { + return; + } + gtk_drag_source_set_icon_pixbuf (widget, pixbuf); + g_object_unref (pixbuf); + + } + else + { + gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET(item)), NULL); + } + } +} + + +static void +configure_item_tooltip (GtkToolItem *item) +{ + GtkAction *action; + +#if GTK_CHECK_VERSION (2, 16, 0) + action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (item)); +#else + action = gtk_widget_get_action (GTK_WIDGET (item)); +#endif + + if (action != NULL) + { + g_object_notify (G_OBJECT (action), "tooltip"); + } +} + + +static void +connect_widget_signals (GtkWidget *proxy, EggEditableToolbar *etoolbar) +{ + if (GTK_IS_CONTAINER (proxy)) + { + gtk_container_forall (GTK_CONTAINER (proxy), + (GtkCallback) connect_widget_signals, + (gpointer) etoolbar); + } + + if (GTK_IS_TOOL_ITEM (proxy)) + { + g_signal_connect_object (proxy, "drag_begin", + G_CALLBACK (drag_begin_cb), + etoolbar, 0); + g_signal_connect_object (proxy, "drag_end", + G_CALLBACK (drag_end_cb), + etoolbar, 0); + g_signal_connect_object (proxy, "drag_data_get", + G_CALLBACK (drag_data_get_cb), + etoolbar, 0); + g_signal_connect_object (proxy, "drag_data_delete", + G_CALLBACK (drag_data_delete_cb), + etoolbar, 0); + } + + if (GTK_IS_BUTTON (proxy) || GTK_IS_TOOL_ITEM (proxy)) + { + g_signal_connect_object (proxy, "button-press-event", + G_CALLBACK (button_press_event_cb), + etoolbar, 0); + } +} + +static void +action_sensitive_cb (GtkAction *action, + GParamSpec *pspec, + GtkToolItem *item) +{ + EggEditableToolbar *etoolbar = EGG_EDITABLE_TOOLBAR + (gtk_widget_get_ancestor (GTK_WIDGET (item), EGG_TYPE_EDITABLE_TOOLBAR)); + + if (etoolbar->priv->edit_mode > 0) + { + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + } +} + +static GtkToolItem * +create_item_from_action (EggEditableToolbar *etoolbar, + const char *name) +{ + GtkToolItem *item; + + g_return_val_if_fail (name != NULL, NULL); + + if (strcmp (name, "_separator") == 0) + { + item = gtk_separator_tool_item_new (); + } + else + { + GtkAction *action = find_action (etoolbar, name); + if (action == NULL) return NULL; + + item = GTK_TOOL_ITEM (gtk_action_create_tool_item (action)); + + /* Normally done on-demand by the GtkUIManager, but no + * such demand may have been made yet, so do it ourselves. + */ + gtk_action_set_accel_group + (action, gtk_ui_manager_get_accel_group(etoolbar->priv->manager)); + + g_signal_connect_object (action, "notify::sensitive", + G_CALLBACK (action_sensitive_cb), item, 0); + } + + gtk_widget_show (GTK_WIDGET (item)); + + g_object_set_data_full (G_OBJECT (item), EGG_ITEM_NAME, + g_strdup (name), g_free); + + return item; +} + +static GtkToolItem * +create_item_from_position (EggEditableToolbar *etoolbar, + int toolbar_position, + int position) +{ + GtkToolItem *item; + const char *name; + + name = egg_toolbars_model_item_nth (etoolbar->priv->model, toolbar_position, position); + item = create_item_from_action (etoolbar, name); + + return item; +} + +static void +toolbar_drag_data_received_cb (GtkToolbar *toolbar, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time, + EggEditableToolbar *etoolbar) +{ + /* This function can be called for two reasons + * + * (1) drag_motion() needs an item to pass to + * gtk_toolbar_set_drop_highlight_item(). We can + * recognize this case by etoolbar->priv->pending being TRUE + * We should just create an item and return. + * + * (2) The drag has finished, and drag_drop() wants us to + * actually add a new item to the toolbar. + */ + + GdkAtom type = gtk_selection_data_get_data_type (selection_data); + const char *data = (char *)gtk_selection_data_get_data (selection_data); + + int ipos = -1; + char *name = NULL; + gboolean used = FALSE; + + /* Find out where the drop is occuring, and the name of what is being dropped. */ + if (gtk_selection_data_get_length (selection_data) >= 0) + { + ipos = gtk_toolbar_get_drop_index (toolbar, x, y); + name = egg_toolbars_model_get_name (etoolbar->priv->model, type, data, FALSE); + if (name != NULL) + { + used = ((egg_toolbars_model_get_name_flags (etoolbar->priv->model, name) & EGG_TB_MODEL_NAME_USED) != 0); + } + } + + /* If we just want a highlight item, then . */ + if (etoolbar->priv->dnd_pending > 0) + { + etoolbar->priv->dnd_pending--; + + if (name != NULL && etoolbar->priv->dnd_toolbar == toolbar && !used) + { + etoolbar->priv->dnd_toolitem = create_item_from_action (etoolbar, name); + gtk_toolbar_set_drop_highlight_item (etoolbar->priv->dnd_toolbar, + etoolbar->priv->dnd_toolitem, ipos); + } + } + else + { + gtk_toolbar_set_drop_highlight_item (toolbar, NULL, 0); + etoolbar->priv->dnd_toolbar = NULL; + etoolbar->priv->dnd_toolitem = NULL; + + /* If we don't have a name to use yet, try to create one. */ + if (name == NULL && gtk_selection_data_get_length (selection_data) >= 0) + { + name = egg_toolbars_model_get_name (etoolbar->priv->model, type, data, TRUE); + } + + if (name != NULL && !used) + { + gint tpos = get_toolbar_position (etoolbar, GTK_WIDGET (toolbar)); + egg_toolbars_model_add_item (etoolbar->priv->model, tpos, ipos, name); + gtk_drag_finish (context, TRUE, + gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE, time); + } + else + { + gtk_drag_finish (context, FALSE, + gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE, time); + } + } + + g_free (name); +} + +static gboolean +toolbar_drag_drop_cb (GtkToolbar *toolbar, + GdkDragContext *context, + gint x, + gint y, + guint time, + EggEditableToolbar *etoolbar) +{ + GdkAtom target; + + target = gtk_drag_dest_find_target (GTK_WIDGET (toolbar), context, NULL); + if (target != GDK_NONE) + { + gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time); + return TRUE; + } + + return FALSE; +} + +static gboolean +toolbar_drag_motion_cb (GtkToolbar *toolbar, + GdkDragContext *context, + gint x, + gint y, + guint time, + EggEditableToolbar *etoolbar) +{ + GdkAtom target = gtk_drag_dest_find_target (GTK_WIDGET (toolbar), context, NULL); + if (target == GDK_NONE) + { + gdk_drag_status (context, 0, time); + return FALSE; + } + + /* Make ourselves the current dnd toolbar, and request a highlight item. */ + if (etoolbar->priv->dnd_toolbar != toolbar) + { + etoolbar->priv->dnd_toolbar = toolbar; + etoolbar->priv->dnd_toolitem = NULL; + etoolbar->priv->dnd_pending++; + gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time); + } + + /* If a highlight item is available, use it. */ + else if (etoolbar->priv->dnd_toolitem) + { + gint ipos = gtk_toolbar_get_drop_index (etoolbar->priv->dnd_toolbar, x, y); + gtk_toolbar_set_drop_highlight_item (etoolbar->priv->dnd_toolbar, + etoolbar->priv->dnd_toolitem, ipos); + } + + gdk_drag_status (context, gdk_drag_context_get_suggested_action (context), time); + + return TRUE; +} + +static void +toolbar_drag_leave_cb (GtkToolbar *toolbar, + GdkDragContext *context, + guint time, + EggEditableToolbar *etoolbar) +{ + gtk_toolbar_set_drop_highlight_item (toolbar, NULL, 0); + + /* If we were the current dnd toolbar target, remove the item. */ + if (etoolbar->priv->dnd_toolbar == toolbar) + { + etoolbar->priv->dnd_toolbar = NULL; + etoolbar->priv->dnd_toolitem = NULL; + } +} + +static void +configure_drag_dest (EggEditableToolbar *etoolbar, + GtkToolbar *toolbar) +{ + EggToolbarsItemType *type; + GtkTargetList *targets; + GList *list; + + /* Make every toolbar able to receive drag-drops. */ + gtk_drag_dest_set (GTK_WIDGET (toolbar), 0, + dest_drag_types, G_N_ELEMENTS (dest_drag_types), + GDK_ACTION_MOVE | GDK_ACTION_COPY); + + /* Add any specialist drag-drop abilities. */ + targets = gtk_drag_dest_get_target_list (GTK_WIDGET (toolbar)); + list = egg_toolbars_model_get_types (etoolbar->priv->model); + while (list) + { + type = list->data; + if (type->new_name != NULL || type->get_name != NULL) + gtk_target_list_add (targets, type->type, 0, 0); + list = list->next; + } +} + +static void +toggled_visibility_cb (GtkToggleAction *action, + EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + GtkWidget *dock; + EggTbModelFlags flags; + gboolean visible; + gint i; + + visible = gtk_toggle_action_get_active (action); + for (i = 0; i < priv->visibility_actions->len; i++) + if (g_ptr_array_index (priv->visibility_actions, i) == action) + break; + + g_return_if_fail (i < priv->visibility_actions->len); + + dock = get_dock_nth (etoolbar, i); + if (visible) + { + gtk_widget_show (dock); + } + else + { + gtk_widget_hide (dock); + } + + if (priv->save_hidden) + { + flags = egg_toolbars_model_get_flags (priv->model, i); + + if (visible) + { + flags &= ~(EGG_TB_MODEL_HIDDEN); + } + else + { + flags |= (EGG_TB_MODEL_HIDDEN); + } + + egg_toolbars_model_set_flags (priv->model, i, flags); + } +} + +static void +toolbar_visibility_refresh (EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + gint n_toolbars, n_items, i, j, k; + GtkToggleAction *action; + GList *list; + GString *string; + gboolean showing; + char action_name[40]; + char *action_label; + char *tmp; + + if (priv == NULL || priv->model == NULL || priv->manager == NULL || + priv->visibility_paths == NULL || priv->actions == NULL) + { + return; + } + + if (priv->visibility_actions == NULL) + { + priv->visibility_actions = g_ptr_array_new (); + } + + if (priv->visibility_id != 0) + { + gtk_ui_manager_remove_ui (priv->manager, priv->visibility_id); + } + + priv->visibility_id = gtk_ui_manager_new_merge_id (priv->manager); + +#if GTK_CHECK_VERSION(2,20,0) + showing = gtk_widget_get_visible (GTK_WIDGET (etoolbar)); +#else + showing = GTK_WIDGET_VISIBLE (etoolbar); +#endif + + n_toolbars = egg_toolbars_model_n_toolbars (priv->model); + for (i = 0; i < n_toolbars; i++) + { + string = g_string_sized_new (0); + n_items = egg_toolbars_model_n_items (priv->model, i); + for (k = 0, j = 0; j < n_items; j++) + { + GValue value = { 0, }; + GtkAction *action; + const char *name; + + name = egg_toolbars_model_item_nth (priv->model, i, j); + if (name == NULL) continue; + action = find_action (etoolbar, name); + if (action == NULL) continue; + + g_value_init (&value, G_TYPE_STRING); + g_object_get_property (G_OBJECT (action), "label", &value); + name = g_value_get_string (&value); + if (name == NULL) + { + g_value_unset (&value); + continue; + } + k += g_utf8_strlen (name, -1) + 2; + if (j > 0) + { + g_string_append (string, ", "); + if (j > 1 && k > 25) + { + g_value_unset (&value); + break; + } + } + g_string_append (string, name); + g_value_unset (&value); + } + if (j < n_items) + { + g_string_append (string, " ..."); + } + + tmp = g_string_free (string, FALSE); + for (j = 0, k = 0; tmp[j]; j++) + { + if (tmp[j] == '_') continue; + tmp[k] = tmp[j]; + k++; + } + tmp[k] = 0; + /* Translaters: This string is for a toggle to display a toolbar. + * The name of the toolbar is automatically computed from the widgets + * on the toolbar, and is placed at the %s. Note the _ before the %s + * which is used to add mnemonics. We know that this is likely to + * produce duplicates, but don't worry about it. If your language + * normally has a mnemonic at the start, please use the _. If not, + * please remove. */ + action_label = g_strdup_printf (_("Show ā_%sā"), tmp); + g_free (tmp); + + sprintf(action_name, "ToolbarToggle%d", i); + + if (i >= priv->visibility_actions->len) + { + action = gtk_toggle_action_new (action_name, action_label, NULL, NULL); + g_ptr_array_add (priv->visibility_actions, action); + g_signal_connect_object (action, "toggled", + G_CALLBACK (toggled_visibility_cb), + etoolbar, 0); + gtk_action_group_add_action (priv->actions, GTK_ACTION (action)); + } + else + { + action = g_ptr_array_index (priv->visibility_actions, i); + g_object_set (action, "label", action_label, NULL); + } + + gtk_action_set_visible (GTK_ACTION (action), (egg_toolbars_model_get_flags (priv->model, i) + & EGG_TB_MODEL_NOT_REMOVABLE) == 0); + gtk_action_set_sensitive (GTK_ACTION (action), showing); +#if GTK_CHECK_VERSION(2,20,0) + gtk_toggle_action_set_active (action, gtk_widget_get_visible + (get_dock_nth (etoolbar, i))); +#else + gtk_toggle_action_set_active (action, GTK_WIDGET_VISIBLE + (get_dock_nth (etoolbar, i))); +#endif + + for (list = priv->visibility_paths; list != NULL; list = g_list_next (list)) + { + gtk_ui_manager_add_ui (priv->manager, priv->visibility_id, + (const char *)list->data, action_name, action_name, + GTK_UI_MANAGER_MENUITEM, FALSE); + } + + g_free (action_label); + } + + gtk_ui_manager_ensure_update (priv->manager); + + while (i < priv->visibility_actions->len) + { + action = g_ptr_array_index (priv->visibility_actions, i); + g_ptr_array_remove_index_fast (priv->visibility_actions, i); + gtk_action_group_remove_action (priv->actions, GTK_ACTION (action)); + i++; + } +} + +static GtkWidget * +create_dock (EggEditableToolbar *etoolbar) +{ + GtkWidget *toolbar, *hbox; + + hbox = gtk_hbox_new (0, FALSE); + + toolbar = gtk_toolbar_new (); + gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar), TRUE); + gtk_widget_show (toolbar); + gtk_box_pack_start (GTK_BOX (hbox), toolbar, TRUE, TRUE, 0); + + g_signal_connect (toolbar, "drag_drop", + G_CALLBACK (toolbar_drag_drop_cb), etoolbar); + g_signal_connect (toolbar, "drag_motion", + G_CALLBACK (toolbar_drag_motion_cb), etoolbar); + g_signal_connect (toolbar, "drag_leave", + G_CALLBACK (toolbar_drag_leave_cb), etoolbar); + + g_signal_connect (toolbar, "drag_data_received", + G_CALLBACK (toolbar_drag_data_received_cb), etoolbar); + g_signal_connect (toolbar, "popup_context_menu", + G_CALLBACK (popup_context_menu_cb), etoolbar); + + configure_drag_dest (etoolbar, GTK_TOOLBAR (toolbar)); + + return hbox; +} + +static void +set_fixed_style (EggEditableToolbar *t, GtkToolbarStyle style) +{ + g_return_if_fail (GTK_IS_TOOLBAR (t->priv->fixed_toolbar)); + gtk_toolbar_set_style (GTK_TOOLBAR (t->priv->fixed_toolbar), + style == GTK_TOOLBAR_ICONS ? GTK_TOOLBAR_BOTH_HORIZ : style); +} + +static void +unset_fixed_style (EggEditableToolbar *t) +{ + g_return_if_fail (GTK_IS_TOOLBAR (t->priv->fixed_toolbar)); + gtk_toolbar_unset_style (GTK_TOOLBAR (t->priv->fixed_toolbar)); +} + +static void +toolbar_changed_cb (EggToolbarsModel *model, + int position, + EggEditableToolbar *etoolbar) +{ + GtkWidget *toolbar; + EggTbModelFlags flags; + GtkToolbarStyle style; + + flags = egg_toolbars_model_get_flags (model, position); + toolbar = get_toolbar_nth (etoolbar, position); + + if (flags & EGG_TB_MODEL_ICONS) + { + style = GTK_TOOLBAR_ICONS; + } + else if (flags & EGG_TB_MODEL_TEXT) + { + style = GTK_TOOLBAR_TEXT; + } + else if (flags & EGG_TB_MODEL_BOTH) + { + style = GTK_TOOLBAR_BOTH; + } + else if (flags & EGG_TB_MODEL_BOTH_HORIZ) + { + style = GTK_TOOLBAR_BOTH_HORIZ; + } + else + { + gtk_toolbar_unset_style (GTK_TOOLBAR (toolbar)); + if (position == 0 && etoolbar->priv->fixed_toolbar) + { + unset_fixed_style (etoolbar); + } + return; + } + + gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), style); + if (position == 0 && etoolbar->priv->fixed_toolbar) + { + set_fixed_style (etoolbar, style); + } + + toolbar_visibility_refresh (etoolbar); +} + +static void +unparent_fixed (EggEditableToolbar *etoolbar) +{ + GtkWidget *toolbar, *dock; + g_return_if_fail (GTK_IS_TOOLBAR (etoolbar->priv->fixed_toolbar)); + + toolbar = etoolbar->priv->fixed_toolbar; + dock = get_dock_nth (etoolbar, 0); + + if (dock && gtk_widget_get_parent (toolbar) != NULL) + { + gtk_container_remove (GTK_CONTAINER (dock), toolbar); + } +} + +static void +update_fixed (EggEditableToolbar *etoolbar) +{ + GtkWidget *toolbar, *dock; + if (!etoolbar->priv->fixed_toolbar) return; + + toolbar = etoolbar->priv->fixed_toolbar; + dock = get_dock_nth (etoolbar, 0); + + if (dock && toolbar && gtk_widget_get_parent (toolbar) == NULL) + { + gtk_box_pack_end (GTK_BOX (dock), toolbar, FALSE, TRUE, 0); + + gtk_widget_show (toolbar); + + gtk_widget_set_size_request (dock, -1, -1); + gtk_widget_queue_resize_no_redraw (dock); + } +} + +static void +toolbar_added_cb (EggToolbarsModel *model, + int position, + EggEditableToolbar *etoolbar) +{ + GtkWidget *dock; + + dock = create_dock (etoolbar); + if ((egg_toolbars_model_get_flags (model, position) & EGG_TB_MODEL_HIDDEN) == 0) + gtk_widget_show (dock); + + gtk_widget_set_size_request (dock, -1, MIN_TOOLBAR_HEIGHT); + + gtk_box_pack_start (GTK_BOX (etoolbar), dock, TRUE, TRUE, 0); + + gtk_box_reorder_child (GTK_BOX (etoolbar), dock, position); + + gtk_widget_show_all (dock); + + update_fixed (etoolbar); + + toolbar_visibility_refresh (etoolbar); +} + +static void +toolbar_removed_cb (EggToolbarsModel *model, + int position, + EggEditableToolbar *etoolbar) +{ + GtkWidget *dock; + + if (position == 0 && etoolbar->priv->fixed_toolbar != NULL) + { + unparent_fixed (etoolbar); + } + + dock = get_dock_nth (etoolbar, position); + gtk_widget_destroy (dock); + + update_fixed (etoolbar); + + toolbar_visibility_refresh (etoolbar); +} + +static void +item_added_cb (EggToolbarsModel *model, + int tpos, + int ipos, + EggEditableToolbar *etoolbar) +{ + GtkWidget *dock; + GtkWidget *toolbar; + GtkToolItem *item; + + toolbar = get_toolbar_nth (etoolbar, tpos); + item = create_item_from_position (etoolbar, tpos, ipos); + if (item == NULL) return; + + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, ipos); + + connect_widget_signals (GTK_WIDGET (item), etoolbar); + configure_item_tooltip (item); + configure_item_cursor (item, etoolbar); + configure_item_sensitivity (item, etoolbar); + + dock = get_dock_nth (etoolbar, tpos); + gtk_widget_set_size_request (dock, -1, -1); + gtk_widget_queue_resize_no_redraw (dock); + + toolbar_visibility_refresh (etoolbar); +} + +static void +item_removed_cb (EggToolbarsModel *model, + int toolbar_position, + int position, + EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + + GtkWidget *toolbar; + GtkWidget *item; + + toolbar = get_toolbar_nth (etoolbar, toolbar_position); + item = GTK_WIDGET (gtk_toolbar_get_nth_item + (GTK_TOOLBAR (toolbar), position)); + g_return_if_fail (item != NULL); + + if (item == priv->selected) + { + /* FIXME */ + } + + gtk_container_remove (GTK_CONTAINER (toolbar), item); + + toolbar_visibility_refresh (etoolbar); +} + +static void +egg_editable_toolbar_build (EggEditableToolbar *etoolbar) +{ + int i, l, n_items, n_toolbars; + EggToolbarsModel *model = etoolbar->priv->model; + + g_return_if_fail (model != NULL); + g_return_if_fail (etoolbar->priv->manager != NULL); + + n_toolbars = egg_toolbars_model_n_toolbars (model); + + for (i = 0; i < n_toolbars; i++) + { + GtkWidget *toolbar, *dock; + + dock = create_dock (etoolbar); + if ((egg_toolbars_model_get_flags (model, i) & EGG_TB_MODEL_HIDDEN) == 0) + gtk_widget_show (dock); + gtk_box_pack_start (GTK_BOX (etoolbar), dock, TRUE, TRUE, 0); + toolbar = get_toolbar_nth (etoolbar, i); + + n_items = egg_toolbars_model_n_items (model, i); + for (l = 0; l < n_items; l++) + { + GtkToolItem *item; + + item = create_item_from_position (etoolbar, i, l); + if (item) + { + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, l); + + connect_widget_signals (GTK_WIDGET (item), etoolbar); + configure_item_tooltip (item); + configure_item_sensitivity (item, etoolbar); + } + else + { + egg_toolbars_model_remove_item (model, i, l); + l--; + n_items--; + } + } + + if (n_items == 0) + { + gtk_widget_set_size_request (dock, -1, MIN_TOOLBAR_HEIGHT); + } + } + + update_fixed (etoolbar); + + /* apply styles */ + for (i = 0; i < n_toolbars; i ++) + { + toolbar_changed_cb (model, i, etoolbar); + } +} + +static void +egg_editable_toolbar_disconnect_model (EggEditableToolbar *toolbar) +{ + EggToolbarsModel *model = toolbar->priv->model; + + g_signal_handlers_disconnect_by_func + (model, G_CALLBACK (item_added_cb), toolbar); + g_signal_handlers_disconnect_by_func + (model, G_CALLBACK (item_removed_cb), toolbar); + g_signal_handlers_disconnect_by_func + (model, G_CALLBACK (toolbar_added_cb), toolbar); + g_signal_handlers_disconnect_by_func + (model, G_CALLBACK (toolbar_removed_cb), toolbar); + g_signal_handlers_disconnect_by_func + (model, G_CALLBACK (toolbar_changed_cb), toolbar); +} + +static void +egg_editable_toolbar_deconstruct (EggEditableToolbar *toolbar) +{ + EggToolbarsModel *model = toolbar->priv->model; + GList *children; + + g_return_if_fail (model != NULL); + + if (toolbar->priv->fixed_toolbar) + { + unset_fixed_style (toolbar); + unparent_fixed (toolbar); + } + + children = gtk_container_get_children (GTK_CONTAINER (toolbar)); + g_list_foreach (children, (GFunc) gtk_widget_destroy, NULL); + g_list_free (children); +} + +void +egg_editable_toolbar_set_model (EggEditableToolbar *etoolbar, + EggToolbarsModel *model) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + + if (priv->model == model) return; + + if (priv->model) + { + egg_editable_toolbar_disconnect_model (etoolbar); + egg_editable_toolbar_deconstruct (etoolbar); + + g_object_unref (priv->model); + } + + priv->model = g_object_ref (model); + + egg_editable_toolbar_build (etoolbar); + + toolbar_visibility_refresh (etoolbar); + + g_signal_connect (model, "item_added", + G_CALLBACK (item_added_cb), etoolbar); + g_signal_connect (model, "item_removed", + G_CALLBACK (item_removed_cb), etoolbar); + g_signal_connect (model, "toolbar_added", + G_CALLBACK (toolbar_added_cb), etoolbar); + g_signal_connect (model, "toolbar_removed", + G_CALLBACK (toolbar_removed_cb), etoolbar); + g_signal_connect (model, "toolbar_changed", + G_CALLBACK (toolbar_changed_cb), etoolbar); +} + +static void +egg_editable_toolbar_init (EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv; + + priv = etoolbar->priv = EGG_EDITABLE_TOOLBAR_GET_PRIVATE (etoolbar); + + priv->save_hidden = TRUE; + + g_signal_connect (etoolbar, "notify::visible", + G_CALLBACK (toolbar_visibility_refresh), NULL); +} + +static void +egg_editable_toolbar_dispose (GObject *object) +{ + EggEditableToolbar *etoolbar = EGG_EDITABLE_TOOLBAR (object); + EggEditableToolbarPrivate *priv = etoolbar->priv; + GList *children; + + if (priv->fixed_toolbar != NULL) + { + g_object_unref (priv->fixed_toolbar); + priv->fixed_toolbar = NULL; + } + + if (priv->visibility_paths) + { + children = priv->visibility_paths; + g_list_foreach (children, (GFunc) g_free, NULL); + g_list_free (children); + priv->visibility_paths = NULL; + } + + g_free (priv->popup_path); + priv->popup_path = NULL; + + if (priv->manager != NULL) + { + if (priv->visibility_id) + { + gtk_ui_manager_remove_ui (priv->manager, priv->visibility_id); + priv->visibility_id = 0; + } + + g_object_unref (priv->manager); + priv->manager = NULL; + } + + if (priv->model) + { + egg_editable_toolbar_disconnect_model (etoolbar); + g_object_unref (priv->model); + priv->model = NULL; + } + + G_OBJECT_CLASS (egg_editable_toolbar_parent_class)->dispose (object); +} + +static void +egg_editable_toolbar_set_ui_manager (EggEditableToolbar *etoolbar, + GtkUIManager *manager) +{ + static const GtkActionEntry actions[] = { + { "MoveToolItem", STOCK_DRAG_MODE, N_("_Move on Toolbar"), NULL, + N_("Move the selected item on the toolbar"), G_CALLBACK (move_item_cb) }, + { "RemoveToolItem", GTK_STOCK_REMOVE, N_("_Remove from Toolbar"), NULL, + N_("Remove the selected item from the toolbar"), G_CALLBACK (remove_item_cb) }, + { "RemoveToolbar", GTK_STOCK_DELETE, N_("_Delete Toolbar"), NULL, + N_("Remove the selected toolbar"), G_CALLBACK (remove_toolbar_cb) }, + }; + + etoolbar->priv->manager = g_object_ref (manager); + + etoolbar->priv->actions = gtk_action_group_new ("ToolbarActions"); + gtk_action_group_set_translation_domain (etoolbar->priv->actions, GETTEXT_PACKAGE); + gtk_action_group_add_actions (etoolbar->priv->actions, actions, + G_N_ELEMENTS (actions), etoolbar); + gtk_ui_manager_insert_action_group (manager, etoolbar->priv->actions, -1); + g_object_unref (etoolbar->priv->actions); + + toolbar_visibility_refresh (etoolbar); +} + +GtkWidget * egg_editable_toolbar_get_selected (EggEditableToolbar *etoolbar) +{ + return etoolbar->priv->selected; +} + +void +egg_editable_toolbar_set_selected (EggEditableToolbar *etoolbar, + GtkWidget *widget) +{ + GtkWidget *toolbar, *toolitem; + gboolean editable; + + etoolbar->priv->selected = widget; + + toolbar = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOLBAR) : NULL; + toolitem = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOL_ITEM) : NULL; + + if(toolbar != NULL) + { + gint tpos = get_toolbar_position (etoolbar, toolbar); + editable = ((egg_toolbars_model_get_flags (etoolbar->priv->model, tpos) & EGG_TB_MODEL_NOT_EDITABLE) == 0); + } + else + { + editable = FALSE; + } + + gtk_action_set_visible (find_action (etoolbar, "RemoveToolbar"), (toolbar != NULL) && (etoolbar->priv->edit_mode > 0)); + gtk_action_set_visible (find_action (etoolbar, "RemoveToolItem"), (toolitem != NULL) && editable); + gtk_action_set_visible (find_action (etoolbar, "MoveToolItem"), (toolitem != NULL) && editable); +} + +static void +set_edit_mode (EggEditableToolbar *etoolbar, + gboolean mode) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + int i, l, n_items; + + i = priv->edit_mode; + if (mode) + { + priv->edit_mode++; + } + else + { + g_return_if_fail (priv->edit_mode > 0); + priv->edit_mode--; + } + i *= priv->edit_mode; + + if (i == 0) + { + for (i = get_n_toolbars (etoolbar)-1; i >= 0; i--) + { + GtkWidget *toolbar; + + toolbar = get_toolbar_nth (etoolbar, i); + n_items = gtk_toolbar_get_n_items (GTK_TOOLBAR (toolbar)); + + if (n_items == 0 && priv->edit_mode == 0) + { + egg_toolbars_model_remove_toolbar (priv->model, i); + } + else + { + for (l = 0; l < n_items; l++) + { + GtkToolItem *item; + + item = gtk_toolbar_get_nth_item (GTK_TOOLBAR (toolbar), l); + + configure_item_cursor (item, etoolbar); + configure_item_sensitivity (item, etoolbar); + } + } + } + } +} + +static void +egg_editable_toolbar_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EggEditableToolbar *etoolbar = EGG_EDITABLE_TOOLBAR (object); + + switch (prop_id) + { + case PROP_UI_MANAGER: + egg_editable_toolbar_set_ui_manager (etoolbar, g_value_get_object (value)); + break; + case PROP_TOOLBARS_MODEL: + egg_editable_toolbar_set_model (etoolbar, g_value_get_object (value)); + break; + case PROP_SELECTED: + egg_editable_toolbar_set_selected (etoolbar, g_value_get_object (value)); + break; + case PROP_POPUP_PATH: + etoolbar->priv->popup_path = g_strdup (g_value_get_string (value)); + break; + case PROP_EDIT_MODE: + set_edit_mode (etoolbar, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +egg_editable_toolbar_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EggEditableToolbar *etoolbar = EGG_EDITABLE_TOOLBAR (object); + + switch (prop_id) + { + case PROP_UI_MANAGER: + g_value_set_object (value, etoolbar->priv->manager); + break; + case PROP_TOOLBARS_MODEL: + g_value_set_object (value, etoolbar->priv->model); + break; + case PROP_SELECTED: + g_value_set_object (value, etoolbar->priv->selected); + break; + case PROP_EDIT_MODE: + g_value_set_boolean (value, etoolbar->priv->edit_mode>0); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +egg_editable_toolbar_class_init (EggEditableToolbarClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = egg_editable_toolbar_dispose; + object_class->set_property = egg_editable_toolbar_set_property; + object_class->get_property = egg_editable_toolbar_get_property; + + egg_editable_toolbar_signals[ACTION_REQUEST] = + g_signal_new ("action_request", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggEditableToolbarClass, action_request), + NULL, NULL, g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, G_TYPE_STRING); + + g_object_class_install_property (object_class, + PROP_UI_MANAGER, + g_param_spec_object ("ui-manager", + "UI-Mmanager", + "UI Manager", + GTK_TYPE_UI_MANAGER, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + g_object_class_install_property (object_class, + PROP_TOOLBARS_MODEL, + g_param_spec_object ("model", + "Model", + "Toolbars Model", + EGG_TYPE_TOOLBARS_MODEL, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + g_object_class_install_property (object_class, + PROP_SELECTED, + g_param_spec_object ("selected", + "Selected", + "Selected toolitem", + GTK_TYPE_TOOL_ITEM, + G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (object_class, + PROP_POPUP_PATH, + g_param_spec_string ("popup-path", + "popup-path", + "popup-path", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (object_class, + PROP_EDIT_MODE, + g_param_spec_boolean ("edit-mode", + "Edit-Mode", + "Edit Mode", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + + g_type_class_add_private (object_class, sizeof (EggEditableToolbarPrivate)); +} + +GtkWidget * +egg_editable_toolbar_new (GtkUIManager *manager, + const char *popup_path) +{ + return GTK_WIDGET (g_object_new (EGG_TYPE_EDITABLE_TOOLBAR, + "ui-manager", manager, + "popup-path", popup_path, + NULL)); +} + +GtkWidget * +egg_editable_toolbar_new_with_model (GtkUIManager *manager, + EggToolbarsModel *model, + const char *popup_path) +{ + return GTK_WIDGET (g_object_new (EGG_TYPE_EDITABLE_TOOLBAR, + "ui-manager", manager, + "model", model, + "popup-path", popup_path, + NULL)); +} + +gboolean +egg_editable_toolbar_get_edit_mode (EggEditableToolbar *etoolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + + return priv->edit_mode > 0; +} + +void +egg_editable_toolbar_set_edit_mode (EggEditableToolbar *etoolbar, + gboolean mode) +{ + set_edit_mode (etoolbar, mode); + g_object_notify (G_OBJECT (etoolbar), "edit-mode"); +} + +void +egg_editable_toolbar_add_visibility (EggEditableToolbar *etoolbar, + const char *path) +{ + etoolbar->priv->visibility_paths = g_list_prepend + (etoolbar->priv->visibility_paths, g_strdup (path)); +} + +void +egg_editable_toolbar_show (EggEditableToolbar *etoolbar, + const char *name) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + EggToolbarsModel *model = priv->model; + int i, n_toolbars; + + n_toolbars = egg_toolbars_model_n_toolbars (model); + for (i = 0; i < n_toolbars; i++) + { + const char *toolbar_name; + + toolbar_name = egg_toolbars_model_toolbar_nth (model, i); + if (strcmp (toolbar_name, name) == 0) + { + gtk_widget_show (get_dock_nth (etoolbar, i)); + } + } +} + +void +egg_editable_toolbar_hide (EggEditableToolbar *etoolbar, + const char *name) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + EggToolbarsModel *model = priv->model; + int i, n_toolbars; + + n_toolbars = egg_toolbars_model_n_toolbars (model); + for (i = 0; i < n_toolbars; i++) + { + const char *toolbar_name; + + toolbar_name = egg_toolbars_model_toolbar_nth (model, i); + if (strcmp (toolbar_name, name) == 0) + { + gtk_widget_hide (get_dock_nth (etoolbar, i)); + } + } +} + +void +egg_editable_toolbar_set_fixed (EggEditableToolbar *etoolbar, + GtkToolbar *toolbar) +{ + EggEditableToolbarPrivate *priv = etoolbar->priv; + + g_return_if_fail (!toolbar || GTK_IS_TOOLBAR (toolbar)); + + if (priv->fixed_toolbar) + { + unparent_fixed (etoolbar); + g_object_unref (priv->fixed_toolbar); + priv->fixed_toolbar = NULL; + } + + if (toolbar) + { + priv->fixed_toolbar = GTK_WIDGET (toolbar); + gtk_toolbar_set_show_arrow (toolbar, FALSE); + g_object_ref_sink (toolbar); + } + + update_fixed (etoolbar); +} + +#define DEFAULT_ICON_HEIGHT 20 + +/* We should probably experiment some more with this. + * Right now the rendered icon is pretty good for most + * themes. However, the icon is slightly large for themes + * with large toolbar icons. + */ +static GdkPixbuf * +new_pixbuf_from_widget (GtkWidget *widget) +{ + GtkWidget *window; + GdkPixbuf *pixbuf; + gint icon_height; + GdkScreen *screen; + + screen = gtk_widget_get_screen (widget); + + if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen), + GTK_ICON_SIZE_LARGE_TOOLBAR, + NULL, + &icon_height)) + { + icon_height = DEFAULT_ICON_HEIGHT; + } + + window = gtk_offscreen_window_new (); + /* Set the width to -1 as we want the separator to be as thin as possible. */ + gtk_widget_set_size_request (widget, -1, icon_height); + + gtk_container_add (GTK_CONTAINER (window), widget); + gtk_widget_show_all (window); + + /* Process the waiting events to have the widget actually drawn */ + gdk_window_process_updates (gtk_widget_get_window (window), TRUE); + pixbuf = gtk_offscreen_window_get_pixbuf (GTK_OFFSCREEN_WINDOW (window)); + gtk_widget_destroy (window); + + return pixbuf; +} + +static GdkPixbuf * +new_separator_pixbuf (void) +{ + GtkWidget *separator; + GdkPixbuf *pixbuf; + + separator = gtk_vseparator_new (); + pixbuf = new_pixbuf_from_widget (separator); + return pixbuf; +} + +static void +update_separator_image (GtkImage *image) +{ + GdkPixbuf *pixbuf = new_separator_pixbuf (); + gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); + g_object_unref (pixbuf); +} + +static gboolean +style_set_cb (GtkWidget *widget, + GtkStyle *previous_style, + GtkImage *image) +{ + + update_separator_image (image); + return FALSE; +} + +GtkWidget * +_egg_editable_toolbar_new_separator_image (void) +{ + GtkWidget *image = gtk_image_new (); + update_separator_image (GTK_IMAGE (image)); + g_signal_connect (G_OBJECT (image), "style_set", + G_CALLBACK (style_set_cb), GTK_IMAGE (image)); + + return image; +} + +EggToolbarsModel * +egg_editable_toolbar_get_model (EggEditableToolbar *etoolbar) +{ + return etoolbar->priv->model; +} diff --git a/cut-n-paste/toolbar-editor/egg-editable-toolbar.h b/cut-n-paste/toolbar-editor/egg-editable-toolbar.h new file mode 100644 index 00000000..669af415 --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-editable-toolbar.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004, 2005 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EGG_EDITABLE_TOOLBAR_H +#define EGG_EDITABLE_TOOLBAR_H + +#include "egg-toolbars-model.h" + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_EDITABLE_TOOLBAR (egg_editable_toolbar_get_type ()) +#define EGG_EDITABLE_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbar)) +#define EGG_EDITABLE_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass)) +#define EGG_IS_EDITABLE_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_EDITABLE_TOOLBAR)) +#define EGG_IS_EDITABLE_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_EDITABLE_TOOLBAR)) +#define EGG_EDITABLE_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass)) + +typedef struct _EggEditableToolbar EggEditableToolbar; +typedef struct _EggEditableToolbarPrivate EggEditableToolbarPrivate; +typedef struct _EggEditableToolbarClass EggEditableToolbarClass; + +struct _EggEditableToolbar +{ + GtkVBox parent_object; + + /*< private >*/ + EggEditableToolbarPrivate *priv; +}; + +struct _EggEditableToolbarClass +{ + GtkVBoxClass parent_class; + + void (* action_request) (EggEditableToolbar *etoolbar, + const char *action_name); +}; + +GType egg_editable_toolbar_get_type (void); +GtkWidget *egg_editable_toolbar_new (GtkUIManager *manager, + const char *visibility_path); +GtkWidget *egg_editable_toolbar_new_with_model (GtkUIManager *manager, + EggToolbarsModel *model, + const char *visibility_path); +void egg_editable_toolbar_set_model (EggEditableToolbar *etoolbar, + EggToolbarsModel *model); +EggToolbarsModel *egg_editable_toolbar_get_model (EggEditableToolbar *etoolbar); +GtkUIManager *egg_editable_toolbar_get_manager (EggEditableToolbar *etoolbar); +void egg_editable_toolbar_set_edit_mode (EggEditableToolbar *etoolbar, + gboolean mode); +gboolean egg_editable_toolbar_get_edit_mode (EggEditableToolbar *etoolbar); +void egg_editable_toolbar_show (EggEditableToolbar *etoolbar, + const char *name); +void egg_editable_toolbar_hide (EggEditableToolbar *etoolbar, + const char *name); +void egg_editable_toolbar_set_fixed (EggEditableToolbar *etoolbar, + GtkToolbar *fixed_toolbar); + +GtkWidget * egg_editable_toolbar_get_selected (EggEditableToolbar *etoolbar); +void egg_editable_toolbar_set_selected (EggEditableToolbar *etoolbar, + GtkWidget *widget); + +void egg_editable_toolbar_add_visibility (EggEditableToolbar *etoolbar, + const char *path); + +/* Private Functions */ + +GtkWidget *_egg_editable_toolbar_new_separator_image (void); + +G_END_DECLS + +#endif diff --git a/cut-n-paste/toolbar-editor/egg-toolbar-editor.c b/cut-n-paste/toolbar-editor/egg-toolbar-editor.c new file mode 100644 index 00000000..5e75ba82 --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-toolbar-editor.c @@ -0,0 +1,672 @@ +/* + * Copyright (C) 2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "egg-toolbar-editor.h" +#include "egg-editable-toolbar.h" + +#include <string.h> +#include <libxml/tree.h> +#include <gtk/gtk.h> +#include <glib/gi18n.h> + +static const GtkTargetEntry dest_drag_types[] = { + {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0}, +}; + +static const GtkTargetEntry source_drag_types[] = { + {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0}, +}; + + +static void egg_toolbar_editor_finalize (GObject *object); +static void update_editor_sheet (EggToolbarEditor *editor); + +enum +{ + PROP_0, + PROP_UI_MANAGER, + PROP_TOOLBARS_MODEL +}; + +enum +{ + SIGNAL_HANDLER_ITEM_ADDED, + SIGNAL_HANDLER_ITEM_REMOVED, + SIGNAL_HANDLER_TOOLBAR_REMOVED, + SIGNAL_HANDLER_LIST_SIZE /* Array size */ +}; + +#define EGG_TOOLBAR_EDITOR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_TOOLBAR_EDITOR, EggToolbarEditorPrivate)) + +struct EggToolbarEditorPrivate +{ + GtkUIManager *manager; + EggToolbarsModel *model; + + GtkWidget *table; + GtkWidget *scrolled_window; + GList *actions_list; + GList *factory_list; + + /* These handlers need to be sanely disconnected when switching models */ + gulong sig_handlers[SIGNAL_HANDLER_LIST_SIZE]; +}; + +G_DEFINE_TYPE (EggToolbarEditor, egg_toolbar_editor, GTK_TYPE_VBOX); + +static gint +compare_items (gconstpointer a, + gconstpointer b) +{ + const GtkWidget *item1 = a; + const GtkWidget *item2 = b; + + char *key1 = g_object_get_data (G_OBJECT (item1), + "egg-collate-key"); + char *key2 = g_object_get_data (G_OBJECT (item2), + "egg-collate-key"); + + return strcmp (key1, key2); +} + +static GtkAction * +find_action (EggToolbarEditor *t, + const char *name) +{ + GList *l; + GtkAction *action = NULL; + + l = gtk_ui_manager_get_action_groups (t->priv->manager); + + g_return_val_if_fail (EGG_IS_TOOLBAR_EDITOR (t), NULL); + g_return_val_if_fail (name != NULL, NULL); + + for (; l != NULL; l = l->next) + { + GtkAction *tmp; + + tmp = gtk_action_group_get_action (GTK_ACTION_GROUP (l->data), name); + if (tmp) + action = tmp; + } + + return action; +} + +static void +egg_toolbar_editor_set_ui_manager (EggToolbarEditor *t, + GtkUIManager *manager) +{ + g_return_if_fail (GTK_IS_UI_MANAGER (manager)); + + t->priv->manager = g_object_ref (manager); +} + +static void +item_added_or_removed_cb (EggToolbarsModel *model, + int tpos, + int ipos, + EggToolbarEditor *editor) +{ + update_editor_sheet (editor); +} + +static void +toolbar_removed_cb (EggToolbarsModel *model, + int position, + EggToolbarEditor *editor) +{ + update_editor_sheet (editor); +} + +static void +egg_toolbar_editor_disconnect_model (EggToolbarEditor *t) +{ + EggToolbarEditorPrivate *priv = t->priv; + EggToolbarsModel *model = priv->model; + gulong handler; + int i; + + for (i = 0; i < SIGNAL_HANDLER_LIST_SIZE; i++) + { + handler = priv->sig_handlers[i]; + + if (handler != 0) + { + if (g_signal_handler_is_connected (model, handler)) + { + g_signal_handler_disconnect (model, handler); + } + + priv->sig_handlers[i] = 0; + } + } +} + +void +egg_toolbar_editor_set_model (EggToolbarEditor *t, + EggToolbarsModel *model) +{ + EggToolbarEditorPrivate *priv; + + g_return_if_fail (EGG_IS_TOOLBAR_EDITOR (t)); + g_return_if_fail (model != NULL); + + priv = t->priv; + + if (priv->model) + { + if (G_UNLIKELY (priv->model == model)) return; + + egg_toolbar_editor_disconnect_model (t); + g_object_unref (priv->model); + } + + priv->model = g_object_ref (model); + + update_editor_sheet (t); + + priv->sig_handlers[SIGNAL_HANDLER_ITEM_ADDED] = + g_signal_connect_object (model, "item_added", + G_CALLBACK (item_added_or_removed_cb), t, 0); + priv->sig_handlers[SIGNAL_HANDLER_ITEM_REMOVED] = + g_signal_connect_object (model, "item_removed", + G_CALLBACK (item_added_or_removed_cb), t, 0); + priv->sig_handlers[SIGNAL_HANDLER_TOOLBAR_REMOVED] = + g_signal_connect_object (model, "toolbar_removed", + G_CALLBACK (toolbar_removed_cb), t, 0); +} + +static void +egg_toolbar_editor_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EggToolbarEditor *t = EGG_TOOLBAR_EDITOR (object); + + switch (prop_id) + { + case PROP_UI_MANAGER: + egg_toolbar_editor_set_ui_manager (t, g_value_get_object (value)); + break; + case PROP_TOOLBARS_MODEL: + egg_toolbar_editor_set_model (t, g_value_get_object (value)); + break; + } +} + +static void +egg_toolbar_editor_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EggToolbarEditor *t = EGG_TOOLBAR_EDITOR (object); + + switch (prop_id) + { + case PROP_UI_MANAGER: + g_value_set_object (value, t->priv->manager); + break; + case PROP_TOOLBARS_MODEL: + g_value_set_object (value, t->priv->model); + break; + } +} + +static void +egg_toolbar_editor_class_init (EggToolbarEditorClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = egg_toolbar_editor_finalize; + object_class->set_property = egg_toolbar_editor_set_property; + object_class->get_property = egg_toolbar_editor_get_property; + + g_object_class_install_property (object_class, + PROP_UI_MANAGER, + g_param_spec_object ("ui-manager", + "UI-Manager", + "UI Manager", + GTK_TYPE_UI_MANAGER, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (object_class, + PROP_TOOLBARS_MODEL, + g_param_spec_object ("model", + "Model", + "Toolbars Model", + EGG_TYPE_TOOLBARS_MODEL, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | + G_PARAM_CONSTRUCT)); + + g_type_class_add_private (object_class, sizeof (EggToolbarEditorPrivate)); +} + +static void +egg_toolbar_editor_finalize (GObject *object) +{ + EggToolbarEditor *editor = EGG_TOOLBAR_EDITOR (object); + + if (editor->priv->manager) + { + g_object_unref (editor->priv->manager); + } + + if (editor->priv->model) + { + egg_toolbar_editor_disconnect_model (editor); + g_object_unref (editor->priv->model); + } + + g_list_free (editor->priv->actions_list); + g_list_free (editor->priv->factory_list); + + G_OBJECT_CLASS (egg_toolbar_editor_parent_class)->finalize (object); +} + +GtkWidget * +egg_toolbar_editor_new (GtkUIManager *manager, + EggToolbarsModel *model) +{ + return GTK_WIDGET (g_object_new (EGG_TYPE_TOOLBAR_EDITOR, + "ui-manager", manager, + "model", model, + NULL)); +} + +static void +drag_begin_cb (GtkWidget *widget, + GdkDragContext *context) +{ + gtk_widget_hide (widget); +} + +static void +drag_end_cb (GtkWidget *widget, + GdkDragContext *context) +{ + gtk_widget_show (widget); +} + +static void +drag_data_get_cb (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint32 time, + EggToolbarEditor *editor) +{ + const char *target; + + target = g_object_get_data (G_OBJECT (widget), "egg-item-name"); + g_return_if_fail (target != NULL); + + gtk_selection_data_set (selection_data, + gtk_selection_data_get_target (selection_data), 8, + (const guchar *) target, strlen (target)); +} + +static gchar * +elide_underscores (const gchar *original) +{ + gchar *q, *result; + const gchar *p; + gboolean last_underscore; + + q = result = g_malloc (strlen (original) + 1); + last_underscore = FALSE; + + for (p = original; *p; p++) + { + if (!last_underscore && *p == '_') + last_underscore = TRUE; + else + { + last_underscore = FALSE; + *q++ = *p; + } + } + + *q = '\0'; + + return result; +} + +static void +set_drag_cursor (GtkWidget *widget) +{ + GdkCursor *cursor; + GdkScreen *screen; + + screen = gtk_widget_get_screen (widget); + + cursor = gdk_cursor_new_for_display (gdk_screen_get_display (screen), + GDK_HAND2); + gdk_window_set_cursor (gtk_widget_get_window (widget), cursor); + gdk_cursor_unref (cursor); +} + +static void +event_box_realize_cb (GtkWidget *widget, GtkImage *icon) +{ + GtkImageType type; + + set_drag_cursor (widget); + + type = gtk_image_get_storage_type (icon); + if (type == GTK_IMAGE_STOCK) + { + gchar *stock_id; + GdkPixbuf *pixbuf; + + gtk_image_get_stock (icon, &stock_id, NULL); + pixbuf = gtk_widget_render_icon (widget, stock_id, + GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + gtk_drag_source_set_icon_pixbuf (widget, pixbuf); + g_object_unref (pixbuf); + } + else if (type == GTK_IMAGE_ICON_NAME) + { + const gchar *icon_name; + GdkScreen *screen; + GtkIconTheme *icon_theme; + GtkSettings *settings; + gint width, height; + GdkPixbuf *pixbuf; + + gtk_image_get_icon_name (icon, &icon_name, NULL); + screen = gtk_widget_get_screen (widget); + icon_theme = gtk_icon_theme_get_for_screen (screen); + settings = gtk_settings_get_for_screen (screen); + + if (!gtk_icon_size_lookup_for_settings (settings, + GTK_ICON_SIZE_LARGE_TOOLBAR, + &width, &height)) + { + width = height = 24; + } + + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, + MIN (width, height), 0, NULL); + if (G_UNLIKELY (!pixbuf)) + return; + + gtk_drag_source_set_icon_pixbuf (widget, pixbuf); + g_object_unref (pixbuf); + + } + else if (type == GTK_IMAGE_PIXBUF) + { + GdkPixbuf *pixbuf = gtk_image_get_pixbuf (icon); + gtk_drag_source_set_icon_pixbuf (widget, pixbuf); + } +} + +static GtkWidget * +editor_create_item (EggToolbarEditor *editor, + GtkImage *icon, + const char *label_text, + GdkDragAction action) +{ + GtkWidget *event_box; + GtkWidget *vbox; + GtkWidget *label; + gchar *label_no_mnemonic = NULL; + + event_box = gtk_event_box_new (); + gtk_event_box_set_visible_window (GTK_EVENT_BOX (event_box), FALSE); + gtk_widget_show (event_box); + gtk_drag_source_set (event_box, + GDK_BUTTON1_MASK, + source_drag_types, G_N_ELEMENTS (source_drag_types), action); + g_signal_connect (event_box, "drag_data_get", + G_CALLBACK (drag_data_get_cb), editor); + g_signal_connect_after (event_box, "realize", + G_CALLBACK (event_box_realize_cb), icon); + + if (action == GDK_ACTION_MOVE) + { + g_signal_connect (event_box, "drag_begin", + G_CALLBACK (drag_begin_cb), NULL); + g_signal_connect (event_box, "drag_end", + G_CALLBACK (drag_end_cb), NULL); + } + + vbox = gtk_vbox_new (0, FALSE); + gtk_widget_show (vbox); + gtk_container_add (GTK_CONTAINER (event_box), vbox); + + gtk_widget_show (GTK_WIDGET (icon)); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (icon), FALSE, TRUE, 0); + label_no_mnemonic = elide_underscores (label_text); + label = gtk_label_new (label_no_mnemonic); + g_free (label_no_mnemonic); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); + + return event_box; +} + +static GtkWidget * +editor_create_item_from_name (EggToolbarEditor *editor, + const char * name, + GdkDragAction drag_action) +{ + GtkWidget *item; + const char *item_name; + char *short_label; + const char *collate_key; + + if (strcmp (name, "_separator") == 0) + { + GtkWidget *icon; + + icon = _egg_editable_toolbar_new_separator_image (); + short_label = _("Separator"); + item_name = g_strdup (name); + collate_key = g_utf8_collate_key (short_label, -1); + item = editor_create_item (editor, GTK_IMAGE (icon), + short_label, drag_action); + } + else + { + GtkAction *action; + GtkWidget *icon; + char *stock_id, *icon_name = NULL; + + action = find_action (editor, name); + g_return_val_if_fail (action != NULL, NULL); + + g_object_get (action, + "icon-name", &icon_name, + "stock-id", &stock_id, + "short-label", &short_label, + NULL); + + /* This is a workaround to catch named icons. */ + if (icon_name) + icon = gtk_image_new_from_icon_name (icon_name, + GTK_ICON_SIZE_LARGE_TOOLBAR); + else + icon = gtk_image_new_from_stock (stock_id ? stock_id : GTK_STOCK_DND, + GTK_ICON_SIZE_LARGE_TOOLBAR); + + item_name = g_strdup (name); + collate_key = g_utf8_collate_key (short_label, -1); + item = editor_create_item (editor, GTK_IMAGE (icon), + short_label, drag_action); + + g_free (short_label); + g_free (stock_id); + g_free (icon_name); + } + + g_object_set_data_full (G_OBJECT (item), "egg-collate-key", + (gpointer) collate_key, g_free); + g_object_set_data_full (G_OBJECT (item), "egg-item-name", + (gpointer) item_name, g_free); + + return item; +} + +static gint +append_table (GtkTable *table, GList *items, gint y, gint width) +{ + if (items != NULL) + { + gint x = 0, height; + GtkWidget *alignment; + GtkWidget *item; + + height = g_list_length (items) / width + 1; + gtk_table_resize (table, height, width); + + if (y > 0) + { + item = gtk_hseparator_new (); + alignment = gtk_alignment_new (0.5, 0.5, 1.0, 0.0); + gtk_container_add (GTK_CONTAINER (alignment), item); + gtk_widget_show (alignment); + gtk_widget_show (item); + + gtk_table_attach_defaults (table, alignment, 0, width, y-1, y+1); + } + + for (; items != NULL; items = items->next) + { + item = items->data; + alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + gtk_container_add (GTK_CONTAINER (alignment), item); + gtk_widget_show (alignment); + gtk_widget_show (item); + + if (x >= width) + { + x = 0; + y++; + } + gtk_table_attach_defaults (table, alignment, x, x+1, y, y+1); + x++; + } + + y++; + } + return y; +} + +static void +update_editor_sheet (EggToolbarEditor *editor) +{ + gint y; + GPtrArray *items; + GList *to_move = NULL, *to_copy = NULL; + GtkWidget *table; + GtkWidget *viewport; + + g_return_if_fail (EGG_IS_TOOLBAR_EDITOR (editor)); + + /* Create new table. */ + table = gtk_table_new (0, 0, TRUE); + editor->priv->table = table; + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + gtk_table_set_row_spacings (GTK_TABLE (table), 24); + gtk_widget_show (table); + gtk_drag_dest_set (table, GTK_DEST_DEFAULT_ALL, + dest_drag_types, G_N_ELEMENTS (dest_drag_types), + GDK_ACTION_MOVE | GDK_ACTION_COPY); + + /* Build two lists of items (one for copying, one for moving). */ + items = egg_toolbars_model_get_name_avail (editor->priv->model); + while (items->len > 0) + { + GtkWidget *item; + const char *name; + gint flags; + + name = g_ptr_array_index (items, 0); + g_ptr_array_remove_index_fast (items, 0); + + flags = egg_toolbars_model_get_name_flags (editor->priv->model, name); + if ((flags & EGG_TB_MODEL_NAME_INFINITE) == 0) + { + item = editor_create_item_from_name (editor, name, GDK_ACTION_MOVE); + if (item != NULL) + to_move = g_list_insert_sorted (to_move, item, compare_items); + } + else + { + item = editor_create_item_from_name (editor, name, GDK_ACTION_COPY); + if (item != NULL) + to_copy = g_list_insert_sorted (to_copy, item, compare_items); + } + } + + /* Add them to the sheet. */ + y = 0; + y = append_table (GTK_TABLE (table), to_move, y, 4); + y = append_table (GTK_TABLE (table), to_copy, y, 4); + + g_list_free (to_move); + g_list_free (to_copy); + g_ptr_array_free (items, TRUE); + + /* Delete old table. */ + viewport = gtk_bin_get_child (GTK_BIN (editor->priv->scrolled_window)); + if (viewport) + { + gtk_container_remove (GTK_CONTAINER (viewport), + gtk_bin_get_child (GTK_BIN (viewport))); + } + + /* Add table to window. */ + gtk_scrolled_window_add_with_viewport + (GTK_SCROLLED_WINDOW (editor->priv->scrolled_window), table); + +} + +static void +setup_editor (EggToolbarEditor *editor) +{ + GtkWidget *scrolled_window; + + gtk_container_set_border_width (GTK_CONTAINER (editor), 12); + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + editor->priv->scrolled_window = scrolled_window; + gtk_widget_show (scrolled_window); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_box_pack_start (GTK_BOX (editor), scrolled_window, TRUE, TRUE, 0); +} + +static void +egg_toolbar_editor_init (EggToolbarEditor *t) +{ + t->priv = EGG_TOOLBAR_EDITOR_GET_PRIVATE (t); + + t->priv->manager = NULL; + t->priv->actions_list = NULL; + + setup_editor (t); +} + diff --git a/cut-n-paste/toolbar-editor/egg-toolbar-editor.h b/cut-n-paste/toolbar-editor/egg-toolbar-editor.h new file mode 100644 index 00000000..3b897c50 --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-toolbar-editor.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EGG_TOOLBAR_EDITOR_H +#define EGG_TOOLBAR_EDITOR_H + +#include <gtk/gtk.h> + +#include "egg-toolbars-model.h" + +G_BEGIN_DECLS + +typedef struct EggToolbarEditorClass EggToolbarEditorClass; + +#define EGG_TYPE_TOOLBAR_EDITOR (egg_toolbar_editor_get_type ()) +#define EGG_TOOLBAR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TOOLBAR_EDITOR, EggToolbarEditor)) +#define EGG_TOOLBAR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TOOLBAR_EDITOR, EggToolbarEditorClass)) +#define EGG_IS_TOOLBAR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TOOLBAR_EDITOR)) +#define EGG_IS_TOOLBAR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TOOLBAR_EDITOR)) +#define EGG_TOOLBAR_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TOOLBAR_EDITOR, EggToolbarEditorClass)) + + +typedef struct EggToolbarEditor EggToolbarEditor; +typedef struct EggToolbarEditorPrivate EggToolbarEditorPrivate; + +struct EggToolbarEditor +{ + GtkVBox parent_object; + + /*< private >*/ + EggToolbarEditorPrivate *priv; +}; + +struct EggToolbarEditorClass +{ + GtkVBoxClass parent_class; +}; + + +GType egg_toolbar_editor_get_type (void); +GtkWidget *egg_toolbar_editor_new (GtkUIManager *manager, + EggToolbarsModel *model); +void egg_toolbar_editor_set_model (EggToolbarEditor *t, + EggToolbarsModel *model); + +G_END_DECLS + +#endif diff --git a/cut-n-paste/toolbar-editor/egg-toolbars-model.c b/cut-n-paste/toolbar-editor/egg-toolbars-model.c new file mode 100644 index 00000000..27dbedf6 --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-toolbars-model.c @@ -0,0 +1,987 @@ +/* + * Copyright (C) 2002-2004 Marco Pesenti Gritti + * Copyright (C) 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "egg-toolbars-model.h" +#include "eggtypebuiltins.h" +#include "eggmarshalers.h" + +#include <unistd.h> +#include <string.h> +#include <libxml/tree.h> +#include <gdk/gdk.h> + +static void egg_toolbars_model_finalize (GObject *object); + +enum +{ + ITEM_ADDED, + ITEM_REMOVED, + TOOLBAR_ADDED, + TOOLBAR_CHANGED, + TOOLBAR_REMOVED, + LAST_SIGNAL +}; + +typedef struct +{ + char *name; + EggTbModelFlags flags; +} EggToolbarsToolbar; + +typedef struct +{ + char *name; +} EggToolbarsItem; + +static guint signals[LAST_SIGNAL] = { 0 }; + +#define EGG_TOOLBARS_MODEL_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelPrivate)) + +struct EggToolbarsModelPrivate +{ + GNode *toolbars; + GList *types; + GHashTable *flags; +}; + +G_DEFINE_TYPE (EggToolbarsModel, egg_toolbars_model, G_TYPE_OBJECT) + +static xmlDocPtr +egg_toolbars_model_to_xml (EggToolbarsModel *model) +{ + GNode *l1, *l2, *tl; + GList *l3; + xmlDocPtr doc; + + g_return_val_if_fail (EGG_IS_TOOLBARS_MODEL (model), NULL); + + tl = model->priv->toolbars; + + xmlIndentTreeOutput = TRUE; + doc = xmlNewDoc ((const xmlChar*) "1.0"); + doc->children = xmlNewDocNode (doc, NULL, (const xmlChar*) "toolbars", NULL); + + for (l1 = tl->children; l1 != NULL; l1 = l1->next) + { + xmlNodePtr tnode; + EggToolbarsToolbar *toolbar = l1->data; + + tnode = xmlNewChild (doc->children, NULL, (const xmlChar*) "toolbar", NULL); + xmlSetProp (tnode, (const xmlChar*) "name", (const xmlChar*) toolbar->name); + xmlSetProp (tnode, (const xmlChar*) "hidden", + (toolbar->flags&EGG_TB_MODEL_HIDDEN) ? (const xmlChar*) "true" : (const xmlChar*) "false"); + xmlSetProp (tnode, (const xmlChar*) "editable", + (toolbar->flags&EGG_TB_MODEL_NOT_EDITABLE) ? (const xmlChar*) "false" : (const xmlChar*) "true"); + + for (l2 = l1->children; l2 != NULL; l2 = l2->next) + { + xmlNodePtr node; + EggToolbarsItem *item = l2->data; + + if (strcmp (item->name, "_separator") == 0) + { + node = xmlNewChild (tnode, NULL, (const xmlChar*) "separator", NULL); + continue; + } + + node = xmlNewChild (tnode, NULL, (const xmlChar*) "toolitem", NULL); + xmlSetProp (node, (const xmlChar*) "name", (const xmlChar*) item->name); + + /* Add 'data' nodes for each data type which can be written out for this + * item. Only write types which can be used to restore the data. */ + for (l3 = model->priv->types; l3 != NULL; l3 = l3->next) + { + EggToolbarsItemType *type = l3->data; + if (type->get_name != NULL && type->get_data != NULL) + { + xmlNodePtr dnode; + char *tmp; + + tmp = type->get_data (type, item->name); + if (tmp != NULL) + { + dnode = xmlNewTextChild (node, NULL, (const xmlChar*) "data", (const xmlChar*) tmp); + g_free (tmp); + + tmp = gdk_atom_name (type->type); + xmlSetProp (dnode, (const xmlChar*) "type", (const xmlChar*) tmp); + g_free (tmp); + } + } + } + } + } + + return doc; +} + +static gboolean +safe_save_xml (const char *xml_file, xmlDocPtr doc) +{ + char *tmp_file; + char *old_file; + gboolean old_exist; + gboolean retval = TRUE; + + tmp_file = g_strconcat (xml_file, ".tmp", NULL); + old_file = g_strconcat (xml_file, ".old", NULL); + + if (xmlSaveFormatFile (tmp_file, doc, 1) <= 0) + { + g_warning ("Failed to write XML data to %s", tmp_file); + goto failed; + } + + old_exist = g_file_test (xml_file, G_FILE_TEST_EXISTS); + + if (old_exist) + { + if (rename (xml_file, old_file) < 0) + { + g_warning ("Failed to rename %s to %s", xml_file, old_file); + retval = FALSE; + goto failed; + } + } + + if (rename (tmp_file, xml_file) < 0) + { + g_warning ("Failed to rename %s to %s", tmp_file, xml_file); + + if (rename (old_file, xml_file) < 0) + { + g_warning ("Failed to restore %s from %s", xml_file, tmp_file); + } + retval = FALSE; + goto failed; + } + + if (old_exist) + { + if (unlink (old_file) < 0) + { + g_warning ("Failed to delete old file %s", old_file); + } + } + + failed: + g_free (old_file); + g_free (tmp_file); + + return retval; +} + +void +egg_toolbars_model_save_toolbars (EggToolbarsModel *model, + const char *xml_file, + const char *version) +{ + xmlDocPtr doc; + xmlNodePtr root; + + g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model)); + + doc = egg_toolbars_model_to_xml (model); + root = xmlDocGetRootElement (doc); + xmlSetProp (root, (const xmlChar*) "version", (const xmlChar*) version); + safe_save_xml (xml_file, doc); + xmlFreeDoc (doc); +} + +static gboolean +is_unique (EggToolbarsModel *model, + EggToolbarsItem *idata) +{ + EggToolbarsItem *idata2; + GNode *toolbar, *item; + + + for(toolbar = g_node_first_child (model->priv->toolbars); + toolbar != NULL; toolbar = g_node_next_sibling (toolbar)) + { + for(item = g_node_first_child (toolbar); + item != NULL; item = g_node_next_sibling (item)) + { + idata2 = item->data; + + if (idata != idata2 && strcmp (idata->name, idata2->name) == 0) + { + return FALSE; + } + } + } + + return TRUE; +} + +static GNode * +toolbar_node_new (const char *name) +{ + EggToolbarsToolbar *toolbar; + + toolbar = g_new (EggToolbarsToolbar, 1); + toolbar->name = g_strdup (name); + toolbar->flags = 0; + + return g_node_new (toolbar); +} + +static GNode * +item_node_new (const char *name, EggToolbarsModel *model) +{ + EggToolbarsItem *item; + int flags; + + g_return_val_if_fail (name != NULL, NULL); + + item = g_new (EggToolbarsItem, 1); + item->name = g_strdup (name); + + flags = GPOINTER_TO_INT (g_hash_table_lookup (model->priv->flags, item->name)); + if ((flags & EGG_TB_MODEL_NAME_INFINITE) == 0) + g_hash_table_insert (model->priv->flags, + g_strdup (item->name), + GINT_TO_POINTER (flags | EGG_TB_MODEL_NAME_USED)); + + return g_node_new (item); +} + +static void +item_node_free (GNode *item_node, EggToolbarsModel *model) +{ + EggToolbarsItem *item = item_node->data; + int flags; + + flags = GPOINTER_TO_INT (g_hash_table_lookup (model->priv->flags, item->name)); + if ((flags & EGG_TB_MODEL_NAME_INFINITE) == 0 && is_unique (model, item)) + g_hash_table_insert (model->priv->flags, + g_strdup (item->name), + GINT_TO_POINTER (flags & ~EGG_TB_MODEL_NAME_USED)); + + g_free (item->name); + g_free (item); + + g_node_destroy (item_node); +} + +static void +toolbar_node_free (GNode *toolbar_node, EggToolbarsModel *model) +{ + EggToolbarsToolbar *toolbar = toolbar_node->data; + + g_node_children_foreach (toolbar_node, G_TRAVERSE_ALL, + (GNodeForeachFunc) item_node_free, model); + + g_free (toolbar->name); + g_free (toolbar); + + g_node_destroy (toolbar_node); +} + +EggTbModelFlags +egg_toolbars_model_get_flags (EggToolbarsModel *model, + int toolbar_position) +{ + GNode *toolbar_node; + EggToolbarsToolbar *toolbar; + + toolbar_node = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_val_if_fail (toolbar_node != NULL, 0); + + toolbar = toolbar_node->data; + + return toolbar->flags; +} + +void +egg_toolbars_model_set_flags (EggToolbarsModel *model, + int toolbar_position, + EggTbModelFlags flags) +{ + GNode *toolbar_node; + EggToolbarsToolbar *toolbar; + + toolbar_node = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_if_fail (toolbar_node != NULL); + + toolbar = toolbar_node->data; + + toolbar->flags = flags; + + g_signal_emit (G_OBJECT (model), signals[TOOLBAR_CHANGED], + 0, toolbar_position); +} + + +char * +egg_toolbars_model_get_data (EggToolbarsModel *model, + GdkAtom type, + const char *name) +{ + EggToolbarsItemType *t; + char *data = NULL; + GList *l; + + if (type == GDK_NONE || type == gdk_atom_intern (EGG_TOOLBAR_ITEM_TYPE, FALSE)) + { + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (*name != 0, NULL); + return strdup (name); + } + + for (l = model->priv->types; l != NULL; l = l->next) + { + t = l->data; + if (t->type == type && t->get_data != NULL) + { + data = t->get_data (t, name); + if (data != NULL) break; + } + } + + return data; +} + +char * +egg_toolbars_model_get_name (EggToolbarsModel *model, + GdkAtom type, + const char *data, + gboolean create) +{ + EggToolbarsItemType *t; + char *name = NULL; + GList *l; + + if (type == GDK_NONE || type == gdk_atom_intern (EGG_TOOLBAR_ITEM_TYPE, FALSE)) + { + g_return_val_if_fail (data, NULL); + g_return_val_if_fail (*data, NULL); + return strdup (data); + } + + if (create) + { + for (l = model->priv->types; name == NULL && l != NULL; l = l->next) + { + t = l->data; + if (t->type == type && t->new_name != NULL) + name = t->new_name (t, data); + } + + return name; + } + else + { + for (l = model->priv->types; name == NULL && l != NULL; l = l->next) + { + t = l->data; + if (t->type == type && t->get_name != NULL) + name = t->get_name (t, data); + } + + return name; + } +} + +static gboolean +impl_add_item (EggToolbarsModel *model, + int toolbar_position, + int position, + const char *name) +{ + GNode *parent_node; + GNode *child_node; + int real_position; + + g_return_val_if_fail (EGG_IS_TOOLBARS_MODEL (model), FALSE); + g_return_val_if_fail (name != NULL, FALSE); + + parent_node = g_node_nth_child (model->priv->toolbars, toolbar_position); + child_node = item_node_new (name, model); + g_node_insert (parent_node, position, child_node); + + real_position = g_node_child_position (parent_node, child_node); + + g_signal_emit (G_OBJECT (model), signals[ITEM_ADDED], 0, + toolbar_position, real_position); + + return TRUE; +} + +gboolean +egg_toolbars_model_add_item (EggToolbarsModel *model, + int toolbar_position, + int position, + const char *name) +{ + EggToolbarsModelClass *klass = EGG_TOOLBARS_MODEL_GET_CLASS (model); + return klass->add_item (model, toolbar_position, position, name); +} + +int +egg_toolbars_model_add_toolbar (EggToolbarsModel *model, + int position, + const char *name) +{ + GNode *node; + int real_position; + + g_return_val_if_fail (EGG_IS_TOOLBARS_MODEL (model), -1); + + node = toolbar_node_new (name); + g_node_insert (model->priv->toolbars, position, node); + + real_position = g_node_child_position (model->priv->toolbars, node); + + g_signal_emit (G_OBJECT (model), signals[TOOLBAR_ADDED], + 0, real_position); + + return g_node_child_position (model->priv->toolbars, node); +} + +static char * +parse_data_list (EggToolbarsModel *model, + xmlNodePtr child, + gboolean create) +{ + char *name = NULL; + while (child && name == NULL) + { + if (xmlStrEqual (child->name, (const xmlChar*) "data")) + { + xmlChar *type = xmlGetProp (child, (const xmlChar*) "type"); + xmlChar *data = xmlNodeGetContent (child); + + if (type != NULL) + { + GdkAtom atom = gdk_atom_intern ((const char*) type, TRUE); + name = egg_toolbars_model_get_name (model, atom, (const char*) data, create); + } + + xmlFree (type); + xmlFree (data); + } + + child = child->next; + } + + return name; +} + +static void +parse_item_list (EggToolbarsModel *model, + xmlNodePtr child, + int position) +{ + while (child) + { + if (xmlStrEqual (child->name, (const xmlChar*) "toolitem")) + { + char *name; + + /* Try to get the name using the data elements first, + as they are more 'portable' or 'persistent'. */ + name = parse_data_list (model, child->children, FALSE); + if (name == NULL) + { + name = parse_data_list (model, child->children, TRUE); + } + + /* If that fails, try to use the name. */ + if (name == NULL) + { + xmlChar *type = xmlGetProp (child, (const xmlChar*) "type"); + xmlChar *data = xmlGetProp (child, (const xmlChar*) "name"); + GdkAtom atom = type ? gdk_atom_intern ((const char*) type, TRUE) : GDK_NONE; + + /* If an old format, try to use it. */ + name = egg_toolbars_model_get_name (model, atom, (const char*) data, FALSE); + if (name == NULL) + { + name = egg_toolbars_model_get_name (model, atom, (const char*) data, TRUE); + } + + xmlFree (type); + xmlFree (data); + } + + if (name != NULL) + { + egg_toolbars_model_add_item (model, position, -1, name); + g_free (name); + } + } + else if (xmlStrEqual (child->name, (const xmlChar*) "separator")) + { + egg_toolbars_model_add_item (model, position, -1, "_separator"); + } + + child = child->next; + } +} + +static void +parse_toolbars (EggToolbarsModel *model, + xmlNodePtr child) +{ + while (child) + { + if (xmlStrEqual (child->name, (const xmlChar*) "toolbar")) + { + xmlChar *string; + int position; + EggTbModelFlags flags; + + string = xmlGetProp (child, (const xmlChar*) "name"); + position = egg_toolbars_model_add_toolbar (model, -1, (const char*) string); + flags = egg_toolbars_model_get_flags (model, position); + xmlFree (string); + + string = xmlGetProp (child, (const xmlChar*) "editable"); + if (string && xmlStrEqual (string, (const xmlChar*) "false")) + flags |= EGG_TB_MODEL_NOT_EDITABLE; + xmlFree (string); + + string = xmlGetProp (child, (const xmlChar*) "hidden"); + if (string && xmlStrEqual (string, (const xmlChar*) "true")) + flags |= EGG_TB_MODEL_HIDDEN; + xmlFree (string); + + string = xmlGetProp (child, (const xmlChar*) "style"); + if (string && xmlStrEqual (string, (const xmlChar*) "icons-only")) + flags |= EGG_TB_MODEL_ICONS; + xmlFree (string); + + egg_toolbars_model_set_flags (model, position, flags); + + parse_item_list (model, child->children, position); + } + + child = child->next; + } +} + +gboolean +egg_toolbars_model_load_toolbars (EggToolbarsModel *model, + const char *xml_file) +{ + xmlDocPtr doc; + xmlNodePtr root; + + g_return_val_if_fail (EGG_IS_TOOLBARS_MODEL (model), FALSE); + + if (!xml_file || !g_file_test (xml_file, G_FILE_TEST_EXISTS)) return FALSE; + + doc = xmlParseFile (xml_file); + if (doc == NULL) + { + g_warning ("Failed to load XML data from %s", xml_file); + return FALSE; + } + root = xmlDocGetRootElement (doc); + + parse_toolbars (model, root->children); + + xmlFreeDoc (doc); + + return TRUE; +} + +static void +parse_available_list (EggToolbarsModel *model, + xmlNodePtr child) +{ + gint flags; + + while (child) + { + if (xmlStrEqual (child->name, (const xmlChar*) "toolitem")) + { + xmlChar *name; + + name = xmlGetProp (child, (const xmlChar*) "name"); + flags = egg_toolbars_model_get_name_flags + (model, (const char*)name); + egg_toolbars_model_set_name_flags + (model, (const char*)name, flags | EGG_TB_MODEL_NAME_KNOWN); + xmlFree (name); + } + child = child->next; + } +} + +static void +parse_names (EggToolbarsModel *model, + xmlNodePtr child) +{ + while (child) + { + if (xmlStrEqual (child->name, (const xmlChar*) "available")) + { + parse_available_list (model, child->children); + } + + child = child->next; + } +} + +gboolean +egg_toolbars_model_load_names (EggToolbarsModel *model, + const char *xml_file) +{ + xmlDocPtr doc; + xmlNodePtr root; + + g_return_val_if_fail (EGG_IS_TOOLBARS_MODEL (model), FALSE); + + if (!xml_file || !g_file_test (xml_file, G_FILE_TEST_EXISTS)) return FALSE; + + doc = xmlParseFile (xml_file); + if (doc == NULL) + { + g_warning ("Failed to load XML data from %s", xml_file); + return FALSE; + } + root = xmlDocGetRootElement (doc); + + parse_names (model, root->children); + + xmlFreeDoc (doc); + + return TRUE; +} + +static void +egg_toolbars_model_class_init (EggToolbarsModelClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + volatile GType flags_type; /* work around gcc's optimiser */ + + /* make sure the flags type is known */ + flags_type = EGG_TYPE_TB_MODEL_FLAGS; + + object_class->finalize = egg_toolbars_model_finalize; + + klass->add_item = impl_add_item; + + signals[ITEM_ADDED] = + g_signal_new ("item_added", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggToolbarsModelClass, item_added), + NULL, NULL, _egg_marshal_VOID__INT_INT, + G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); + signals[TOOLBAR_ADDED] = + g_signal_new ("toolbar_added", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggToolbarsModelClass, toolbar_added), + NULL, NULL, g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, G_TYPE_INT); + signals[ITEM_REMOVED] = + g_signal_new ("item_removed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggToolbarsModelClass, item_removed), + NULL, NULL, _egg_marshal_VOID__INT_INT, + G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); + signals[TOOLBAR_REMOVED] = + g_signal_new ("toolbar_removed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggToolbarsModelClass, toolbar_removed), + NULL, NULL, g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, G_TYPE_INT); + signals[TOOLBAR_CHANGED] = + g_signal_new ("toolbar_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggToolbarsModelClass, toolbar_changed), + NULL, NULL, g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, G_TYPE_INT); + + g_type_class_add_private (object_class, sizeof (EggToolbarsModelPrivate)); +} + +static void +egg_toolbars_model_init (EggToolbarsModel *model) +{ + model->priv =EGG_TOOLBARS_MODEL_GET_PRIVATE (model); + + model->priv->toolbars = g_node_new (NULL); + model->priv->flags = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + egg_toolbars_model_set_name_flags (model, "_separator", + EGG_TB_MODEL_NAME_KNOWN | + EGG_TB_MODEL_NAME_INFINITE); +} + +static void +egg_toolbars_model_finalize (GObject *object) +{ + EggToolbarsModel *model = EGG_TOOLBARS_MODEL (object); + + g_node_children_foreach (model->priv->toolbars, G_TRAVERSE_ALL, + (GNodeForeachFunc) toolbar_node_free, model); + g_node_destroy (model->priv->toolbars); + g_hash_table_destroy (model->priv->flags); + + G_OBJECT_CLASS (egg_toolbars_model_parent_class)->finalize (object); +} + +EggToolbarsModel * +egg_toolbars_model_new (void) +{ + return EGG_TOOLBARS_MODEL (g_object_new (EGG_TYPE_TOOLBARS_MODEL, NULL)); +} + +void +egg_toolbars_model_remove_toolbar (EggToolbarsModel *model, + int position) +{ + GNode *node; + EggTbModelFlags flags; + + g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model)); + + flags = egg_toolbars_model_get_flags (model, position); + + if (!(flags & EGG_TB_MODEL_NOT_REMOVABLE)) + { + node = g_node_nth_child (model->priv->toolbars, position); + g_return_if_fail (node != NULL); + + toolbar_node_free (node, model); + + g_signal_emit (G_OBJECT (model), signals[TOOLBAR_REMOVED], + 0, position); + } +} + +void +egg_toolbars_model_remove_item (EggToolbarsModel *model, + int toolbar_position, + int position) +{ + GNode *node, *toolbar; + + g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model)); + + toolbar = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_if_fail (toolbar != NULL); + + node = g_node_nth_child (toolbar, position); + g_return_if_fail (node != NULL); + + item_node_free (node, model); + + g_signal_emit (G_OBJECT (model), signals[ITEM_REMOVED], 0, + toolbar_position, position); +} + +void +egg_toolbars_model_move_item (EggToolbarsModel *model, + int toolbar_position, + int position, + int new_toolbar_position, + int new_position) +{ + GNode *node, *toolbar, *new_toolbar; + + g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model)); + + toolbar = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_if_fail (toolbar != NULL); + + new_toolbar = g_node_nth_child (model->priv->toolbars, new_toolbar_position); + g_return_if_fail (new_toolbar != NULL); + + node = g_node_nth_child (toolbar, position); + g_return_if_fail (node != NULL); + + g_node_unlink (node); + + g_signal_emit (G_OBJECT (model), signals[ITEM_REMOVED], 0, + toolbar_position, position); + + g_node_insert (new_toolbar, new_position, node); + + g_signal_emit (G_OBJECT (model), signals[ITEM_ADDED], 0, + new_toolbar_position, new_position); +} + +void +egg_toolbars_model_delete_item (EggToolbarsModel *model, + const char *name) +{ + EggToolbarsItem *idata; + EggToolbarsToolbar *tdata; + GNode *toolbar, *item, *next; + int tpos, ipos; + + g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model)); + + toolbar = g_node_first_child (model->priv->toolbars); + tpos = 0; + + while (toolbar != NULL) + { + item = g_node_first_child (toolbar); + ipos = 0; + + /* Don't delete toolbars that were already empty */ + if (item == NULL) + { + toolbar = g_node_next_sibling (toolbar); + continue; + } + + while (item != NULL) + { + next = g_node_next_sibling (item); + idata = item->data; + if (strcmp (idata->name, name) == 0) + { + item_node_free (item, model); + g_signal_emit (G_OBJECT (model), + signals[ITEM_REMOVED], + 0, tpos, ipos); + } + else + { + ipos++; + } + + item = next; + } + + next = g_node_next_sibling (toolbar); + tdata = toolbar->data; + if (!(tdata->flags & EGG_TB_MODEL_NOT_REMOVABLE) && + g_node_first_child (toolbar) == NULL) + { + toolbar_node_free (toolbar, model); + + g_signal_emit (G_OBJECT (model), + signals[TOOLBAR_REMOVED], + 0, tpos); + } + else + { + tpos++; + } + + toolbar = next; + } +} + +int +egg_toolbars_model_n_items (EggToolbarsModel *model, + int toolbar_position) +{ + GNode *toolbar; + + toolbar = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_val_if_fail (toolbar != NULL, -1); + + return g_node_n_children (toolbar); +} + +const char * +egg_toolbars_model_item_nth (EggToolbarsModel *model, + int toolbar_position, + int position) +{ + GNode *toolbar; + GNode *item; + EggToolbarsItem *idata; + + toolbar = g_node_nth_child (model->priv->toolbars, toolbar_position); + g_return_val_if_fail (toolbar != NULL, NULL); + + item = g_node_nth_child (toolbar, position); + g_return_val_if_fail (item != NULL, NULL); + + idata = item->data; + return idata->name; +} + +int +egg_toolbars_model_n_toolbars (EggToolbarsModel *model) +{ + return g_node_n_children (model->priv->toolbars); +} + +const char * +egg_toolbars_model_toolbar_nth (EggToolbarsModel *model, + int position) +{ + GNode *toolbar; + EggToolbarsToolbar *tdata; + + toolbar = g_node_nth_child (model->priv->toolbars, position); + g_return_val_if_fail (toolbar != NULL, NULL); + + tdata = toolbar->data; + + return tdata->name; +} + +GList * +egg_toolbars_model_get_types (EggToolbarsModel *model) +{ + return model->priv->types; +} + +void +egg_toolbars_model_set_types (EggToolbarsModel *model, GList *types) +{ + model->priv->types = types; +} + +static void +fill_avail_array (gpointer key, gpointer value, GPtrArray *array) +{ + int flags = GPOINTER_TO_INT (value); + if ((flags & EGG_TB_MODEL_NAME_KNOWN) && !(flags & EGG_TB_MODEL_NAME_USED)) + g_ptr_array_add (array, key); +} + +GPtrArray * +egg_toolbars_model_get_name_avail (EggToolbarsModel *model) +{ + GPtrArray *array = g_ptr_array_new (); + g_hash_table_foreach (model->priv->flags, (GHFunc) fill_avail_array, array); + return array; +} + +gint +egg_toolbars_model_get_name_flags (EggToolbarsModel *model, const char *name) +{ + return GPOINTER_TO_INT (g_hash_table_lookup (model->priv->flags, name)); +} + +void +egg_toolbars_model_set_name_flags (EggToolbarsModel *model, const char *name, gint flags) +{ + g_hash_table_insert (model->priv->flags, g_strdup (name), GINT_TO_POINTER (flags)); +} diff --git a/cut-n-paste/toolbar-editor/egg-toolbars-model.h b/cut-n-paste/toolbar-editor/egg-toolbars-model.h new file mode 100644 index 00000000..5d9841f8 --- /dev/null +++ b/cut-n-paste/toolbar-editor/egg-toolbars-model.h @@ -0,0 +1,190 @@ +/* + * Copyright (C) 2003-2004 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EGG_TOOLBARS_MODEL_H +#define EGG_TOOLBARS_MODEL_H + +#include <glib.h> +#include <glib-object.h> +#include <gdk/gdk.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_TOOLBARS_MODEL (egg_toolbars_model_get_type ()) +#define EGG_TOOLBARS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModel)) +#define EGG_TOOLBARS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelClass)) +#define EGG_IS_TOOLBARS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TOOLBARS_MODEL)) +#define EGG_IS_TOOLBARS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TOOLBARS_MODEL)) +#define EGG_TOOLBARS_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelClass)) + +typedef struct EggToolbarsModel EggToolbarsModel; +typedef struct EggToolbarsModelPrivate EggToolbarsModelPrivate; +typedef struct EggToolbarsModelClass EggToolbarsModelClass; + +#define EGG_TOOLBAR_ITEM_TYPE "application/x-toolbar-item" + +typedef enum +{ + EGG_TB_MODEL_NOT_REMOVABLE = 1 << 0, + EGG_TB_MODEL_NOT_EDITABLE = 1 << 1, + EGG_TB_MODEL_BOTH = 1 << 2, + EGG_TB_MODEL_BOTH_HORIZ = 1 << 3, + EGG_TB_MODEL_ICONS = 1 << 4, + EGG_TB_MODEL_TEXT = 1 << 5, + EGG_TB_MODEL_STYLES_MASK = 0x3C, + EGG_TB_MODEL_ACCEPT_ITEMS_ONLY = 1 << 6, + EGG_TB_MODEL_HIDDEN = 1 << 7 +} EggTbModelFlags; + +typedef enum +{ + EGG_TB_MODEL_NAME_USED = 1 << 0, + EGG_TB_MODEL_NAME_INFINITE = 1 << 1, + EGG_TB_MODEL_NAME_KNOWN = 1 << 2 +} EggTbModelNameFlags; + +struct EggToolbarsModel +{ + GObject parent_object; + + /*< private >*/ + EggToolbarsModelPrivate *priv; +}; + +struct EggToolbarsModelClass +{ + GObjectClass parent_class; + + /* Signals */ + void (* item_added) (EggToolbarsModel *model, + int toolbar_position, + int position); + void (* item_removed) (EggToolbarsModel *model, + int toolbar_position, + int position); + void (* toolbar_added) (EggToolbarsModel *model, + int position); + void (* toolbar_changed) (EggToolbarsModel *model, + int position); + void (* toolbar_removed) (EggToolbarsModel *model, + int position); + + /* Virtual Table */ + gboolean (* add_item) (EggToolbarsModel *t, + int toolbar_position, + int position, + const char *name); +}; + +typedef struct EggToolbarsItemType EggToolbarsItemType; + +struct EggToolbarsItemType +{ + GdkAtom type; + + gboolean (* has_data) (EggToolbarsItemType *type, + const char *name); + char * (* get_data) (EggToolbarsItemType *type, + const char *name); + + char * (* new_name) (EggToolbarsItemType *type, + const char *data); + char * (* get_name) (EggToolbarsItemType *type, + const char *data); +}; + +GType egg_tb_model_flags_get_type (void); +GType egg_toolbars_model_get_type (void); +EggToolbarsModel *egg_toolbars_model_new (void); +gboolean egg_toolbars_model_load_names (EggToolbarsModel *model, + const char *xml_file); +gboolean egg_toolbars_model_load_toolbars (EggToolbarsModel *model, + const char *xml_file); +void egg_toolbars_model_save_toolbars (EggToolbarsModel *model, + const char *xml_file, + const char *version); + +/* Functions for manipulating the types of portable data this toolbar understands. */ +GList * egg_toolbars_model_get_types (EggToolbarsModel *model); +void egg_toolbars_model_set_types (EggToolbarsModel *model, + GList *types); + +/* Functions for converting between name and portable data. */ +char * egg_toolbars_model_get_name (EggToolbarsModel *model, + GdkAtom type, + const char *data, + gboolean create); +char * egg_toolbars_model_get_data (EggToolbarsModel *model, + GdkAtom type, + const char *name); + +/* Functions for retrieving what items are available for adding to the toolbars. */ +GPtrArray * egg_toolbars_model_get_name_avail (EggToolbarsModel *model); +gint egg_toolbars_model_get_name_flags (EggToolbarsModel *model, + const char *name); +void egg_toolbars_model_set_name_flags (EggToolbarsModel *model, + const char *name, + gint flags); + +/* Functions for manipulating flags on individual toolbars. */ +EggTbModelFlags egg_toolbars_model_get_flags (EggToolbarsModel *model, + int toolbar_position); +void egg_toolbars_model_set_flags (EggToolbarsModel *model, + int toolbar_position, + EggTbModelFlags flags); + +/* Functions for adding and removing toolbars. */ +int egg_toolbars_model_add_toolbar (EggToolbarsModel *model, + int position, + const char *name); +void egg_toolbars_model_remove_toolbar (EggToolbarsModel *model, + int position); + +/* Functions for adding, removing and moving items. */ +gboolean egg_toolbars_model_add_item (EggToolbarsModel *model, + int toolbar_position, + int position, + const char *name); +void egg_toolbars_model_remove_item (EggToolbarsModel *model, + int toolbar_position, + int position); +void egg_toolbars_model_move_item (EggToolbarsModel *model, + int toolbar_position, + int position, + int new_toolbar_position, + int new_position); +void egg_toolbars_model_delete_item (EggToolbarsModel *model, + const char *name); + +/* Functions for accessing the names of items. */ +int egg_toolbars_model_n_items (EggToolbarsModel *model, + int toolbar_position); +const char * egg_toolbars_model_item_nth (EggToolbarsModel *model, + int toolbar_position, + int position); + +/* Functions for accessing the names of toolbars. */ +int egg_toolbars_model_n_toolbars (EggToolbarsModel *model); +const char *egg_toolbars_model_toolbar_nth (EggToolbarsModel *model, + int position); + +G_END_DECLS + +#endif diff --git a/cut-n-paste/toolbar-editor/eggmarshalers.list b/cut-n-paste/toolbar-editor/eggmarshalers.list new file mode 100644 index 00000000..1f953ddf --- /dev/null +++ b/cut-n-paste/toolbar-editor/eggmarshalers.list @@ -0,0 +1 @@ +VOID:INT,INT diff --git a/cut-n-paste/totem-screensaver/Makefile.am b/cut-n-paste/totem-screensaver/Makefile.am new file mode 100644 index 00000000..1304c8d4 --- /dev/null +++ b/cut-n-paste/totem-screensaver/Makefile.am @@ -0,0 +1,16 @@ +noinst_LTLIBRARIES = libtotemscrsaver.la +libtotemscrsaver_la_SOURCES = \ + totem-scrsaver.h \ + totem-scrsaver.c + +libtotemscrsaver_la_CPPFLAGS = \ + $(AM_CPPFLAGS) + +libtotemscrsaver_la_CFLAGS = \ + $(SHELL_CORE_CFLAGS) \ + $(DBUS_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(AM_CFLAGS) + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/totem-screensaver/README b/cut-n-paste/totem-screensaver/README new file mode 100644 index 00000000..a5be11b2 --- /dev/null +++ b/cut-n-paste/totem-screensaver/README @@ -0,0 +1,3 @@ +The sources for the screensaver enabling/disabling code are copied from Totem. +A simple replacement (s/WITH_DBUS/ENABLE_DBUS/g) was needed. The hardcoded +"reason for inhibiting" string was also modified. diff --git a/cut-n-paste/totem-screensaver/totem-scrsaver.c b/cut-n-paste/totem-screensaver/totem-scrsaver.c new file mode 100644 index 00000000..f30f533e --- /dev/null +++ b/cut-n-paste/totem-screensaver/totem-scrsaver.c @@ -0,0 +1,554 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + + Copyright (C) 2004-2006 Bastien Nocera <hadess@hadess.net> + Copyright Ā© 2010 Christian Persch + Copyright Ā© 2010 Carlos Garcia Campos + + The Mate Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The Mate 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the Mate Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301 USA. + + Authors: Bastien Nocera <hadess@hadess.net> + Christian Persch + Carlos Garcia Campos + */ + +#include "config.h" + +#include <gdk/gdk.h> + +#ifdef GDK_WINDOWING_X11 +#include <gdk/gdkx.h> +#include <X11/keysym.h> + +#ifdef HAVE_XTEST +#include <X11/extensions/XTest.h> +#endif /* HAVE_XTEST */ +#endif /* GDK_WINDOWING_X11 */ + +#include "totem-scrsaver.h" + +#define GS_SERVICE "org.mate.ScreenSaver" +#define GS_PATH "/org/mate/ScreenSaver" +#define GS_INTERFACE "org.mate.ScreenSaver" + +#define XSCREENSAVER_MIN_TIMEOUT 60 + +enum { + PROP_0, + PROP_REASON +}; + +static void totem_scrsaver_finalize (GObject *object); + +struct TotemScrsaverPrivate { + /* Whether the screensaver is disabled */ + gboolean disabled; + /* The reason for the inhibition */ + char *reason; + + GDBusProxy *gs_proxy; + gboolean have_screensaver_dbus; + guint32 cookie; + gboolean old_dbus_api; + + /* To save the screensaver info */ + int timeout; + int interval; + int prefer_blanking; + int allow_exposures; + + /* For use with XTest */ + int keycode1, keycode2; + int *keycode; + gboolean have_xtest; +}; + +G_DEFINE_TYPE(TotemScrsaver, totem_scrsaver, G_TYPE_OBJECT) + +static gboolean +screensaver_is_running_dbus (TotemScrsaver *scr) +{ + return scr->priv->have_screensaver_dbus; +} + +static void +on_inhibit_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GDBusProxy *proxy = G_DBUS_PROXY (source_object); + TotemScrsaver *scr = TOTEM_SCRSAVER (user_data); + GVariant *value; + GError *error = NULL; + + value = g_dbus_proxy_call_finish (proxy, res, &error); + if (!value) { + if (!scr->priv->old_dbus_api && + g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD)) { + g_return_if_fail (scr->priv->reason != NULL); + /* try the old API */ + scr->priv->old_dbus_api = TRUE; + g_dbus_proxy_call (proxy, + "InhibitActivation", + g_variant_new ("(s)", + scr->priv->reason), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + on_inhibit_cb, + scr); + } else { + g_warning ("Problem inhibiting the screensaver: %s", error->message); + } + g_error_free (error); + + return; + } + + /* save the cookie */ + if (g_variant_is_of_type (value, G_VARIANT_TYPE ("(u)"))) + g_variant_get (value, "(u)", &scr->priv->cookie); + else + scr->priv->cookie = 0; + g_variant_unref (value); +} + +static void +on_uninhibit_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GDBusProxy *proxy = G_DBUS_PROXY (source_object); + TotemScrsaver *scr = TOTEM_SCRSAVER (user_data); + GVariant *value; + GError *error = NULL; + + value = g_dbus_proxy_call_finish (proxy, res, &error); + if (!value) { + if (!scr->priv->old_dbus_api && + g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD)) { + /* try the old API */ + scr->priv->old_dbus_api = TRUE; + g_dbus_proxy_call (proxy, + "AllowActivation", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + on_uninhibit_cb, + scr); + } else { + g_warning ("Problem uninhibiting the screensaver: %s", error->message); + } + g_error_free (error); + + return; + } + + /* clear the cookie */ + scr->priv->cookie = 0; + g_variant_unref (value); +} + +static void +screensaver_inhibit_dbus (TotemScrsaver *scr, + gboolean inhibit) +{ + TotemScrsaverPrivate *priv = scr->priv; + + if (!priv->have_screensaver_dbus) + return; + + scr->priv->old_dbus_api = FALSE; + + if (inhibit) { + g_return_if_fail (scr->priv->reason != NULL); + g_dbus_proxy_call (priv->gs_proxy, + "Inhibit", + g_variant_new ("(ss)", + g_get_application_name (), + scr->priv->reason), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + on_inhibit_cb, + scr); + } else { + g_dbus_proxy_call (priv->gs_proxy, + "UnInhibit", + g_variant_new ("(u)", priv->cookie), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + on_uninhibit_cb, + scr); + } +} + +static void +screensaver_enable_dbus (TotemScrsaver *scr) +{ + screensaver_inhibit_dbus (scr, FALSE); +} + +static void +screensaver_disable_dbus (TotemScrsaver *scr) +{ + screensaver_inhibit_dbus (scr, TRUE); +} + +static void +screensaver_update_dbus_presence (TotemScrsaver *scr) +{ + TotemScrsaverPrivate *priv = scr->priv; + gchar *name_owner; + + name_owner = g_dbus_proxy_get_name_owner (priv->gs_proxy); + if (name_owner) { + priv->have_screensaver_dbus = TRUE; + g_free (name_owner); + } else { + priv->have_screensaver_dbus = FALSE; + } +} + +static void +screensaver_dbus_owner_changed_cb (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ + TotemScrsaver *scr = TOTEM_SCRSAVER (user_data); + + screensaver_update_dbus_presence (scr); +} + +static void +screensaver_dbus_proxy_new_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TotemScrsaver *scr = TOTEM_SCRSAVER (user_data); + TotemScrsaverPrivate *priv = scr->priv; + + priv->gs_proxy = g_dbus_proxy_new_for_bus_finish (result, NULL); + if (!priv->gs_proxy) + return; + + screensaver_update_dbus_presence (scr); + + g_signal_connect (priv->gs_proxy, "notify::g-name-owner", + G_CALLBACK (screensaver_dbus_owner_changed_cb), + scr); +} + +static void +screensaver_init_dbus (TotemScrsaver *scr) +{ + g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, + GS_SERVICE, + GS_PATH, + GS_INTERFACE, + NULL, + screensaver_dbus_proxy_new_cb, + scr); +} + +static void +screensaver_finalize_dbus (TotemScrsaver *scr) +{ + if (scr->priv->gs_proxy) { + g_object_unref (scr->priv->gs_proxy); + } +} + +#ifdef GDK_WINDOWING_X11 +static void +screensaver_enable_x11 (TotemScrsaver *scr) +{ + +#ifdef HAVE_XTEST + if (scr->priv->have_xtest != FALSE) + { + g_source_remove_by_user_data (scr); + return; + } +#endif /* HAVE_XTEST */ + + XLockDisplay (GDK_DISPLAY()); + XSetScreenSaver (GDK_DISPLAY(), + scr->priv->timeout, + scr->priv->interval, + scr->priv->prefer_blanking, + scr->priv->allow_exposures); + XUnlockDisplay (GDK_DISPLAY()); +} + +#ifdef HAVE_XTEST +static gboolean +fake_event (TotemScrsaver *scr) +{ + if (scr->priv->disabled) + { + XLockDisplay (GDK_DISPLAY()); + XTestFakeKeyEvent (GDK_DISPLAY(), *scr->priv->keycode, + True, CurrentTime); + XTestFakeKeyEvent (GDK_DISPLAY(), *scr->priv->keycode, + False, CurrentTime); + XUnlockDisplay (GDK_DISPLAY()); + /* Swap the keycode */ + if (scr->priv->keycode == &scr->priv->keycode1) + scr->priv->keycode = &scr->priv->keycode2; + else + scr->priv->keycode = &scr->priv->keycode1; + } + + return TRUE; +} +#endif /* HAVE_XTEST */ + +static void +screensaver_disable_x11 (TotemScrsaver *scr) +{ + +#ifdef HAVE_XTEST + if (scr->priv->have_xtest != FALSE) + { + XLockDisplay (GDK_DISPLAY()); + XGetScreenSaver(GDK_DISPLAY(), &scr->priv->timeout, + &scr->priv->interval, + &scr->priv->prefer_blanking, + &scr->priv->allow_exposures); + XUnlockDisplay (GDK_DISPLAY()); + + if (scr->priv->timeout != 0) { + g_timeout_add_seconds (scr->priv->timeout / 2, + (GSourceFunc) fake_event, scr); + } else { + g_timeout_add_seconds (XSCREENSAVER_MIN_TIMEOUT / 2, + (GSourceFunc) fake_event, scr); + } + + return; + } +#endif /* HAVE_XTEST */ + + XLockDisplay (GDK_DISPLAY()); + XGetScreenSaver(GDK_DISPLAY(), &scr->priv->timeout, + &scr->priv->interval, + &scr->priv->prefer_blanking, + &scr->priv->allow_exposures); + XSetScreenSaver(GDK_DISPLAY(), 0, 0, + DontPreferBlanking, DontAllowExposures); + XUnlockDisplay (GDK_DISPLAY()); +} + +static void +screensaver_init_x11 (TotemScrsaver *scr) +{ +#ifdef HAVE_XTEST + int a, b, c, d; + + XLockDisplay (GDK_DISPLAY()); + scr->priv->have_xtest = (XTestQueryExtension (GDK_DISPLAY(), &a, &b, &c, &d) == True); + if (scr->priv->have_xtest != FALSE) + { + scr->priv->keycode1 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L); + if (scr->priv->keycode1 == 0) { + g_warning ("scr->priv->keycode1 not existant"); + } + scr->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_R); + if (scr->priv->keycode2 == 0) { + scr->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L); + if (scr->priv->keycode2 == 0) { + g_warning ("scr->priv->keycode2 not existant"); + } + } + scr->priv->keycode = &scr->priv->keycode1; + } + XUnlockDisplay (GDK_DISPLAY()); +#endif /* HAVE_XTEST */ +} + +static void +screensaver_finalize_x11 (TotemScrsaver *scr) +{ + g_source_remove_by_user_data (scr); +} +#endif + +static void +totem_scrsaver_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + TotemScrsaver *scr; + + scr = TOTEM_SCRSAVER (object); + + switch (property_id) + { + case PROP_REASON: + g_value_set_string (value, scr->priv->reason); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +totem_scrsaver_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + TotemScrsaver *scr; + + scr = TOTEM_SCRSAVER (object); + + switch (property_id) + { + case PROP_REASON: + g_free (scr->priv->reason); + scr->priv->reason = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +totem_scrsaver_class_init (TotemScrsaverClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (TotemScrsaverPrivate)); + + object_class->set_property = totem_scrsaver_set_property; + object_class->get_property = totem_scrsaver_get_property; + object_class->finalize = totem_scrsaver_finalize; + + g_object_class_install_property (object_class, PROP_REASON, + g_param_spec_string ("reason", NULL, NULL, + NULL, G_PARAM_READWRITE)); + +} + +/** + * totem_scrsaver_new: + * + * Creates a #TotemScrsaver object. + * If the MATE screen saver is running, it uses its DBUS interface to + * inhibit the screensaver; otherwise it falls back to using the X + * screensaver functionality for this. + * + * Returns: a newly created #TotemScrsaver + */ +TotemScrsaver * +totem_scrsaver_new (void) +{ + return TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL)); +} + +static void +totem_scrsaver_init (TotemScrsaver *scr) +{ + scr->priv = G_TYPE_INSTANCE_GET_PRIVATE (scr, + TOTEM_TYPE_SCRSAVER, + TotemScrsaverPrivate); + + screensaver_init_dbus (scr); +#ifdef GDK_WINDOWING_X11 + screensaver_init_x11 (scr); +#else +#warning Unimplemented +#endif +} + +void +totem_scrsaver_disable (TotemScrsaver *scr) +{ + g_return_if_fail (TOTEM_SCRSAVER (scr)); + + if (scr->priv->disabled != FALSE) + return; + + scr->priv->disabled = TRUE; + + if (screensaver_is_running_dbus (scr) != FALSE) + screensaver_disable_dbus (scr); + else +#ifdef GDK_WINDOWING_X11 + screensaver_disable_x11 (scr); +#else +#warning Unimplemented + {} +#endif +} + +void +totem_scrsaver_enable (TotemScrsaver *scr) +{ + g_return_if_fail (TOTEM_SCRSAVER (scr)); + + if (scr->priv->disabled == FALSE) + return; + + scr->priv->disabled = FALSE; + + if (screensaver_is_running_dbus (scr) != FALSE) + screensaver_enable_dbus (scr); + else +#ifdef GDK_WINDOWING_X11 + screensaver_enable_x11 (scr); +#else +#warning Unimplemented + {} +#endif +} + +void +totem_scrsaver_set_state (TotemScrsaver *scr, gboolean enable) +{ + g_return_if_fail (TOTEM_SCRSAVER (scr)); + + if (scr->priv->disabled == !enable) + return; + + if (enable == FALSE) + totem_scrsaver_disable (scr); + else + totem_scrsaver_enable (scr); +} + +static void +totem_scrsaver_finalize (GObject *object) +{ + TotemScrsaver *scr = TOTEM_SCRSAVER (object); + + g_free (scr->priv->reason); + + screensaver_finalize_dbus (scr); +#ifdef GDK_WINDOWING_X11 + screensaver_finalize_x11 (scr); +#else +#warning Unimplemented + {} +#endif + + G_OBJECT_CLASS (totem_scrsaver_parent_class)->finalize (object); +} diff --git a/cut-n-paste/totem-screensaver/totem-scrsaver.h b/cut-n-paste/totem-screensaver/totem-scrsaver.h new file mode 100644 index 00000000..bb95174d --- /dev/null +++ b/cut-n-paste/totem-screensaver/totem-scrsaver.h @@ -0,0 +1,57 @@ +/* + Copyright (C) 2004, Bastien Nocera <hadess@hadess.net> + + The Mate Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The Mate 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the Mate Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301 USA. + + Author: Bastien Nocera <hadess@hadess.net> + */ + +#ifndef TOTEM_SCRSAVER_H +#define TOTEM_SCRSAVER_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define TOTEM_TYPE_SCRSAVER (totem_scrsaver_get_type ()) +#define TOTEM_SCRSAVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOTEM_TYPE_SCRSAVER, TotemScrsaver)) +#define TOTEM_SCRSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TOTEM_TYPE_SCRSAVER, TotemScrsaverClass)) +#define TOTEM_IS_SCRSAVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TOTEM_TYPE_SCRSAVER)) +#define TOTEM_IS_SCRSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TOTEM_TYPE_SCRSAVER)) + +typedef struct TotemScrsaver TotemScrsaver; +typedef struct TotemScrsaverClass TotemScrsaverClass; +typedef struct TotemScrsaverPrivate TotemScrsaverPrivate; + +struct TotemScrsaver { + GObject parent; + TotemScrsaverPrivate *priv; +}; + +struct TotemScrsaverClass { + GObjectClass parent_class; +}; + +GType totem_scrsaver_get_type (void) G_GNUC_CONST; +TotemScrsaver *totem_scrsaver_new (void); +void totem_scrsaver_enable (TotemScrsaver *scr); +void totem_scrsaver_disable (TotemScrsaver *scr); +void totem_scrsaver_set_state (TotemScrsaver *scr, + gboolean enable); + +G_END_DECLS + +#endif /* !TOTEM_SCRSAVER_H */ diff --git a/cut-n-paste/zoom-control/Makefile.am b/cut-n-paste/zoom-control/Makefile.am new file mode 100644 index 00000000..af8bd48e --- /dev/null +++ b/cut-n-paste/zoom-control/Makefile.am @@ -0,0 +1,16 @@ +noinst_LTLIBRARIES = libephyzoom.la + +libephyzoom_la_SOURCES = \ + ephy-zoom-action.h \ + ephy-zoom-action.c \ + ephy-zoom-control.c \ + ephy-zoom-control.h \ + ephy-zoom.c \ + ephy-zoom.h + +libephyzoom_la_CFLAGS = \ + $(SHELL_CORE_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +-include $(top_srcdir)/git.mk diff --git a/cut-n-paste/zoom-control/ephy-zoom-action.c b/cut-n-paste/zoom-control/ephy-zoom-action.c new file mode 100644 index 00000000..b6250c8b --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom-action.c @@ -0,0 +1,336 @@ +/* + * Copyright (C) 2003 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * Modified 2005 by James Bowes for use in evince. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "ephy-zoom-action.h" +#include "ephy-zoom-control.h" +#include "ephy-zoom.h" + +#include <glib-object.h> +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#define EPHY_ZOOM_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_ZOOM_ACTION, EphyZoomActionPrivate)) + +struct _EphyZoomActionPrivate +{ + float zoom; + float min_zoom; + float max_zoom; +}; + +enum +{ + PROP_0, + PROP_ZOOM, + PROP_MIN_ZOOM, + PROP_MAX_ZOOM +}; + + +static void ephy_zoom_action_init (EphyZoomAction *action); +static void ephy_zoom_action_class_init (EphyZoomActionClass *class); + +enum +{ + ZOOM_TO_LEVEL_SIGNAL, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE (EphyZoomAction, ephy_zoom_action, GTK_TYPE_ACTION) + +static void +zoom_to_level_cb (EphyZoomControl *control, + float zoom, + EphyZoomAction *action) +{ + g_signal_emit (action, signals[ZOOM_TO_LEVEL_SIGNAL], 0, zoom); +} + +static void +sync_zoom_cb (GtkAction *action, GParamSpec *pspec, GtkWidget *proxy) +{ + EphyZoomAction *zoom_action = EPHY_ZOOM_ACTION (action); + + g_object_set (G_OBJECT (proxy), "zoom", zoom_action->priv->zoom, NULL); +} + +static void +sync_min_zoom_cb (GtkAction *action, GParamSpec *pspec, GtkWidget *proxy) +{ + EphyZoomAction *zoom_action = EPHY_ZOOM_ACTION (action); + + g_object_set (G_OBJECT (proxy), "min-zoom", zoom_action->priv->min_zoom, NULL); +} + +static void +sync_max_zoom_cb (GtkAction *action, GParamSpec *pspec, GtkWidget *proxy) +{ + EphyZoomAction *zoom_action = EPHY_ZOOM_ACTION (action); + + g_object_set (G_OBJECT (proxy), "max-zoom", zoom_action->priv->max_zoom, NULL); +} + +static void +connect_proxy (GtkAction *action, GtkWidget *proxy) +{ + if (EPHY_IS_ZOOM_CONTROL (proxy)) + { + g_signal_connect_object (action, "notify::zoom", + G_CALLBACK (sync_zoom_cb), proxy, 0); + g_signal_connect_object (action, "notify::min-zoom", + G_CALLBACK (sync_min_zoom_cb), proxy, 0); + g_signal_connect_object (action, "notify::max-zoom", + G_CALLBACK (sync_max_zoom_cb), proxy, 0); + g_signal_connect (proxy, "zoom_to_level", + G_CALLBACK (zoom_to_level_cb), action); + } + + GTK_ACTION_CLASS (ephy_zoom_action_parent_class)->connect_proxy (action, proxy); +} + +static void +proxy_menu_activate_cb (GtkMenuItem *menu_item, EphyZoomAction *action) +{ + gint index; + float zoom; + + /* menu item was toggled OFF */ + if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menu_item))) return; + + index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "zoom-level")); + zoom = zoom_levels[index].level; + + if (zoom != action->priv->zoom) + { + g_signal_emit (action, signals[ZOOM_TO_LEVEL_SIGNAL], 0, zoom); + } +} + +static GtkWidget * +create_menu_item (GtkAction *action) +{ + EphyZoomActionPrivate *p = EPHY_ZOOM_ACTION (action)->priv; + GtkWidget *menu, *menu_item; + GSList *group = NULL; + int i; + + menu = gtk_menu_new (); + + for (i = 0; i < n_zoom_levels; i++) + { + if (zoom_levels[i].level == EPHY_ZOOM_SEPARATOR) + { + menu_item = gtk_separator_menu_item_new (); + } + else + { + menu_item = gtk_radio_menu_item_new_with_label (group, + _(zoom_levels[i].name)); + group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item)); + + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), + p->zoom == zoom_levels[i].level); + + g_object_set_data (G_OBJECT (menu_item), "zoom-level", GINT_TO_POINTER (i)); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (proxy_menu_activate_cb), action, 0); + } + + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + } + + gtk_widget_show (menu); + + menu_item = GTK_ACTION_CLASS (ephy_zoom_action_parent_class)->create_menu_item (action); + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); + + gtk_widget_show (menu_item); + + return menu_item; +} + +static void +ephy_zoom_action_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EphyZoomAction *action; + + action = EPHY_ZOOM_ACTION (object); + + switch (prop_id) + { + case PROP_ZOOM: + action->priv->zoom = g_value_get_float (value); + break; + case PROP_MIN_ZOOM: + action->priv->min_zoom = g_value_get_float (value); + break; + case PROP_MAX_ZOOM: + action->priv->max_zoom = g_value_get_float (value); + break; + } +} + +static void +ephy_zoom_action_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EphyZoomAction *action; + + action = EPHY_ZOOM_ACTION (object); + + switch (prop_id) + { + case PROP_ZOOM: + g_value_set_float (value, action->priv->zoom); + break; + case PROP_MIN_ZOOM: + g_value_set_float (value, action->priv->min_zoom); + break; + case PROP_MAX_ZOOM: + g_value_set_float (value, action->priv->max_zoom); + break; + } +} + +static void +ephy_zoom_action_class_init (EphyZoomActionClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkActionClass *action_class = GTK_ACTION_CLASS (class); + + object_class->set_property = ephy_zoom_action_set_property; + object_class->get_property = ephy_zoom_action_get_property; + + action_class->toolbar_item_type = EPHY_TYPE_ZOOM_CONTROL; + action_class->connect_proxy = connect_proxy; + action_class->create_menu_item = create_menu_item; + + g_object_class_install_property (object_class, + PROP_ZOOM, + g_param_spec_float ("zoom", + "Zoom", + "Zoom", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + 1.0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MIN_ZOOM, + g_param_spec_float ("min-zoom", + "MinZoom", + "The minimum zoom", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + ZOOM_MINIMAL, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MAX_ZOOM, + g_param_spec_float ("max-zoom", + "MaxZoom", + "The maximum zoom", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + ZOOM_MAXIMAL, + G_PARAM_READWRITE)); + + signals[ZOOM_TO_LEVEL_SIGNAL] = + g_signal_new ("zoom_to_level", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EphyZoomActionClass, zoom_to_level), + NULL, NULL, + g_cclosure_marshal_VOID__FLOAT, + G_TYPE_NONE, + 1, + G_TYPE_FLOAT); + + g_type_class_add_private (object_class, sizeof (EphyZoomActionPrivate)); +} + +static void +ephy_zoom_action_init (EphyZoomAction *action) +{ + action->priv = EPHY_ZOOM_ACTION_GET_PRIVATE (action); + + action->priv->zoom = 1.0; +} + +void +ephy_zoom_action_set_zoom_level (EphyZoomAction *action, float zoom) +{ + g_return_if_fail (EPHY_IS_ZOOM_ACTION (action)); + + if (zoom < ZOOM_MINIMAL || zoom > ZOOM_MAXIMAL) return; + + action->priv->zoom = zoom; + g_object_notify (G_OBJECT (action), "zoom"); +} + +float +ephy_zoom_action_get_zoom_level (EphyZoomAction *action) +{ + g_return_val_if_fail (EPHY_IS_ZOOM_ACTION (action), 1.0); + + return action->priv->zoom; +} + +void +ephy_zoom_action_set_min_zoom_level (EphyZoomAction *action, + float zoom) +{ + g_return_if_fail (EPHY_IS_ZOOM_ACTION (action)); + + if (zoom < ZOOM_MINIMAL || zoom > ZOOM_MAXIMAL) return; + + action->priv->min_zoom = zoom; + if (action->priv->zoom > 0 && action->priv->zoom < zoom) + ephy_zoom_action_set_zoom_level (action, zoom); + + g_object_notify (G_OBJECT (action), "min-zoom"); +} + +void +ephy_zoom_action_set_max_zoom_level (EphyZoomAction *action, + float zoom) +{ + g_return_if_fail (EPHY_IS_ZOOM_ACTION (action)); + + if (zoom < ZOOM_MINIMAL || zoom > ZOOM_MAXIMAL) return; + + action->priv->max_zoom = zoom; + if (action->priv->zoom > 0 && action->priv->zoom > zoom) + ephy_zoom_action_set_zoom_level (action, zoom); + + g_object_notify (G_OBJECT (action), "max-zoom"); +} diff --git a/cut-n-paste/zoom-control/ephy-zoom-action.h b/cut-n-paste/zoom-control/ephy-zoom-action.h new file mode 100644 index 00000000..cf9f6feb --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom-action.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2003 Marco Pesenti Gritti + * Copyright (C) 2003 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EPHY_ZOOM_ACTION_H +#define EPHY_ZOOM_ACTION_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EPHY_TYPE_ZOOM_ACTION (ephy_zoom_action_get_type ()) +#define EPHY_ZOOM_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EPHY_TYPE_ZOOM_ACTION, EphyZoomAction)) +#define EPHY_ZOOM_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EPHY_TYPE_ZOOM_ACTION, EphyZoomActionClass)) +#define EPHY_IS_ZOOM_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EPHY_TYPE_ZOOM_ACTION)) +#define EPHY_IS_ZOOM_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EPHY_TYPE_ZOOM_ACTION)) +#define EPHY_ZOOM_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EPHY_TYPE_ZOOM_ACTION, EphyZoomActionClass)) + +typedef struct _EphyZoomAction EphyZoomAction; +typedef struct _EphyZoomActionClass EphyZoomActionClass; +typedef struct _EphyZoomActionPrivate EphyZoomActionPrivate; + +struct _EphyZoomAction +{ + GtkAction parent; + + /*< private >*/ + EphyZoomActionPrivate *priv; +}; + +struct _EphyZoomActionClass +{ + GtkActionClass parent_class; + + void (* zoom_to_level) (EphyZoomAction *action, float level); +}; + +GType ephy_zoom_action_get_type (void) G_GNUC_CONST; + +void ephy_zoom_action_set_zoom_level (EphyZoomAction *action, + float zoom); +float ephy_zoom_action_get_zoom_level (EphyZoomAction *action); + +void ephy_zoom_action_set_min_zoom_level (EphyZoomAction *action, + float zoom); +void ephy_zoom_action_set_max_zoom_level (EphyZoomAction *action, + float zoom); + +G_END_DECLS + +#endif diff --git a/cut-n-paste/zoom-control/ephy-zoom-control.c b/cut-n-paste/zoom-control/ephy-zoom-control.c new file mode 100644 index 00000000..6c86b4a4 --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom-control.c @@ -0,0 +1,345 @@ +/* + * Copyright (C) 2003, 2004 Christian Persch + * + * Modified 2005 by James Bowes for use in evince. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "ephy-zoom-control.h" +#include "ephy-zoom.h" + +#include <gtk/gtk.h> +#include <glib/gi18n.h> + +#define EPHY_ZOOM_CONTROL_GET_PRIVATE(object)\ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_ZOOM_CONTROL, EphyZoomControlPrivate)) + +struct _EphyZoomControlPrivate +{ + GtkComboBox *combo; + float zoom; + float min_zoom; + float max_zoom; + guint handler_id; +}; + +enum +{ + COL_TEXT, + COL_IS_SEP +}; + +enum +{ + PROP_0, + PROP_ZOOM, + PROP_MIN_ZOOM, + PROP_MAX_ZOOM +}; + +enum +{ + ZOOM_TO_LEVEL_SIGNAL, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +G_DEFINE_TYPE (EphyZoomControl, ephy_zoom_control, GTK_TYPE_TOOL_ITEM) + +static void +combo_changed_cb (GtkComboBox *combo, EphyZoomControl *control) +{ + gint index; + float zoom; + + index = gtk_combo_box_get_active (combo); + zoom = zoom_levels[index].level; + + if (zoom != control->priv->zoom) + { + g_signal_emit (control, signals[ZOOM_TO_LEVEL_SIGNAL], 0, zoom); + } +} + +static void +sync_zoom_cb (EphyZoomControl *control, GParamSpec *pspec, gpointer data) +{ + EphyZoomControlPrivate *p = control->priv; + guint index; + + index = ephy_zoom_get_zoom_level_index (p->zoom); + + g_signal_handler_block (p->combo, p->handler_id); + gtk_combo_box_set_active (p->combo, index); + g_signal_handler_unblock (p->combo, p->handler_id); +} + +static void +sync_zoom_max_min_cb (EphyZoomControl *control, GParamSpec *pspec, gpointer data) +{ + EphyZoomControlPrivate *p = control->priv; + GtkListStore *model = (GtkListStore *)gtk_combo_box_get_model (p->combo); + GtkTreeIter iter; + gint i; + + g_signal_handler_block (p->combo, p->handler_id); + gtk_list_store_clear (model); + + for (i = 0; i < n_zoom_levels; i++) + { + if (zoom_levels[i].level > 0) { + if (zoom_levels[i].level < p->min_zoom) + continue; + + if (zoom_levels[i].level > p->max_zoom) + break; + } + + gtk_list_store_append (model, &iter); + + if (zoom_levels[i].name != NULL) { + gtk_list_store_set (model, &iter, + COL_TEXT, _(zoom_levels[i].name), + -1); + } else { + gtk_list_store_set (model, &iter, + COL_IS_SEP, zoom_levels[i].name == NULL, + -1); + } + } + + gtk_combo_box_set_active (p->combo, ephy_zoom_get_zoom_level_index (p->zoom)); + g_signal_handler_unblock (p->combo, p->handler_id); +} + +static gboolean +row_is_separator (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + gboolean is_sep; + gtk_tree_model_get (model, iter, COL_IS_SEP, &is_sep, -1); + return is_sep; +} + +static void +ephy_zoom_control_finalize (GObject *o) +{ + EphyZoomControl *control = EPHY_ZOOM_CONTROL (o); + + g_object_unref (control->priv->combo); + + G_OBJECT_CLASS (ephy_zoom_control_parent_class)->finalize (o); +} + +static void +ephy_zoom_control_init (EphyZoomControl *control) +{ + EphyZoomControlPrivate *p; + GtkWidget *vbox; + GtkCellRenderer *renderer; + GtkListStore *store; + GtkTreeIter iter; + guint i; + + p = EPHY_ZOOM_CONTROL_GET_PRIVATE (control); + control->priv = p; + + p->zoom = 1.0; + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN); + + for (i = 0; i < n_zoom_levels; i++) + { + gtk_list_store_append (store, &iter); + + if (zoom_levels[i].name != NULL) { + gtk_list_store_set (store, &iter, + COL_TEXT, _(zoom_levels[i].name), + -1); + } else { + gtk_list_store_set (store, &iter, + COL_IS_SEP, zoom_levels[i].name == NULL, + -1); + } + } + + p->combo = GTK_COMBO_BOX (gtk_combo_box_new_with_model (GTK_TREE_MODEL (store))); + g_object_unref (store); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (p->combo), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (p->combo), renderer, + "text", COL_TEXT, NULL); + gtk_combo_box_set_row_separator_func (p->combo, + (GtkTreeViewRowSeparatorFunc) row_is_separator, + NULL, NULL); + + gtk_combo_box_set_focus_on_click (p->combo, FALSE); + g_object_ref_sink (G_OBJECT (p->combo)); + gtk_widget_show (GTK_WIDGET (p->combo)); + + i = ephy_zoom_get_zoom_level_index (p->zoom); + gtk_combo_box_set_active (p->combo, i); + + vbox = gtk_vbox_new (TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (p->combo), TRUE, FALSE, 0); + gtk_widget_show (vbox); + + gtk_container_add (GTK_CONTAINER (control), vbox); + + p->handler_id = g_signal_connect (p->combo, "changed", + G_CALLBACK (combo_changed_cb), control); + + g_signal_connect_object (control, "notify::zoom", + G_CALLBACK (sync_zoom_cb), NULL, 0); + g_signal_connect_object (control, "notify::min-zoom", + G_CALLBACK (sync_zoom_max_min_cb), NULL, 0); + g_signal_connect_object (control, "notify::max-zoom", + G_CALLBACK (sync_zoom_max_min_cb), NULL, 0); +} + +static void +ephy_zoom_control_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EphyZoomControl *control; + EphyZoomControlPrivate *p; + + control = EPHY_ZOOM_CONTROL (object); + p = control->priv; + + switch (prop_id) + { + case PROP_ZOOM: + p->zoom = g_value_get_float (value); + break; + case PROP_MIN_ZOOM: + p->min_zoom = g_value_get_float (value); + break; + case PROP_MAX_ZOOM: + p->max_zoom = g_value_get_float (value); + break; + } +} + +static void +ephy_zoom_control_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EphyZoomControl *control; + EphyZoomControlPrivate *p; + + control = EPHY_ZOOM_CONTROL (object); + p = control->priv; + + switch (prop_id) + { + case PROP_ZOOM: + g_value_set_float (value, p->zoom); + break; + case PROP_MIN_ZOOM: + g_value_set_float (value, p->min_zoom); + break; + case PROP_MAX_ZOOM: + g_value_set_float (value, p->max_zoom); + break; + } +} + +static void +ephy_zoom_control_class_init (EphyZoomControlClass *klass) +{ + GObjectClass *object_class; + GtkToolItemClass *tool_item_class; + + object_class = (GObjectClass *)klass; + tool_item_class = (GtkToolItemClass *)klass; + + object_class->set_property = ephy_zoom_control_set_property; + object_class->get_property = ephy_zoom_control_get_property; + object_class->finalize = ephy_zoom_control_finalize; + + g_object_class_install_property (object_class, + PROP_ZOOM, + g_param_spec_float ("zoom", + "Zoom", + "Zoom level to display in the item.", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + 1.0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MIN_ZOOM, + g_param_spec_float ("min-zoom", + "MinZoom", + "The minimum zoom", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + ZOOM_MINIMAL, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MAX_ZOOM, + g_param_spec_float ("max-zoom", + "MaxZoom", + "The maximum zoom", + ZOOM_MINIMAL, + ZOOM_MAXIMAL, + ZOOM_MAXIMAL, + G_PARAM_READWRITE)); + + signals[ZOOM_TO_LEVEL_SIGNAL] = + g_signal_new ("zoom_to_level", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EphyZoomControlClass, + zoom_to_level), + NULL, NULL, + g_cclosure_marshal_VOID__FLOAT, + G_TYPE_NONE, + 1, + G_TYPE_FLOAT); + + g_type_class_add_private (object_class, sizeof (EphyZoomControlPrivate)); +} + +void +ephy_zoom_control_set_zoom_level (EphyZoomControl *control, float zoom) +{ + g_return_if_fail (EPHY_IS_ZOOM_CONTROL (control)); + + if (zoom < ZOOM_MINIMAL || zoom > ZOOM_MAXIMAL) return; + + control->priv->zoom = zoom; + g_object_notify (G_OBJECT (control), "zoom"); +} + +float +ephy_zoom_control_get_zoom_level (EphyZoomControl *control) +{ + g_return_val_if_fail (EPHY_IS_ZOOM_CONTROL (control), 1.0); + + return control->priv->zoom; +} diff --git a/cut-n-paste/zoom-control/ephy-zoom-control.h b/cut-n-paste/zoom-control/ephy-zoom-control.h new file mode 100644 index 00000000..8e74e7b1 --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom-control.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2003 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EPHY_ZOOM_CONTROL_H +#define EPHY_ZOOM_CONTROL_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EPHY_TYPE_ZOOM_CONTROL (ephy_zoom_control_get_type()) +#define EPHY_ZOOM_CONTROL(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EPHY_TYPE_ZOOM_CONTROL, EphyZoomControl)) +#define EPHY_ZOOM_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EPHY_TYPE_ZOOM_CONTROL, EphyZoomControlClass)) +#define EPHY_IS_ZOOM_CONTROL(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EPHY_TYPE_ZOOM_CONTROL)) +#define EPHY_IS_ZOOM_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EPHY_TYPE_ZOOM_CONTROL)) +#define EPHY_ZOOM_CONTROL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EPHY_TYPE_ZOOM_CONTROL, EphyZoomControlClass)) + +typedef struct _EphyZoomControl EphyZoomControl; +typedef struct _EphyZoomControlClass EphyZoomControlClass; +typedef struct _EphyZoomControlPrivate EphyZoomControlPrivate; + +struct _EphyZoomControlClass +{ + GtkToolItemClass parent_class; + + /* signals */ + void (*zoom_to_level) (EphyZoomControl *control, float level); +}; + +struct _EphyZoomControl +{ + GtkToolItem parent_object; + + /*< private >*/ + EphyZoomControlPrivate *priv; +}; + +GType ephy_zoom_control_get_type (void); + +void ephy_zoom_control_set_zoom_level (EphyZoomControl *control, float zoom); + +float ephy_zoom_control_get_zoom_level (EphyZoomControl *control); + +G_END_DECLS + +#endif diff --git a/cut-n-paste/zoom-control/ephy-zoom.c b/cut-n-paste/zoom-control/ephy-zoom.c new file mode 100644 index 00000000..83bb8291 --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2003 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "ephy-zoom.h" + +#include <math.h> + +guint +ephy_zoom_get_zoom_level_index (float level) +{ + guint i; + float previous, current, mean; + + /* Handle our options at the beginning of the list. */ + if (level == EPHY_ZOOM_BEST_FIT) { + return 0; + } else if (level == EPHY_ZOOM_FIT_WIDTH) { + return 1; + } + + previous = zoom_levels[3].level; + + for (i = 4; i < n_zoom_levels; i++) + { + current = zoom_levels[i].level; + mean = sqrt (previous * current); + + if (level <= mean) return i - 1; + + previous = current; + } + + return n_zoom_levels - 1; +} + + +float +ephy_zoom_get_changed_zoom_level (float level, gint steps) +{ + guint index; + + index = ephy_zoom_get_zoom_level_index (level); + return zoom_levels[CLAMP(index + steps, 3, n_zoom_levels - 1)].level; +} + +float ephy_zoom_get_nearest_zoom_level (float level) +{ + return ephy_zoom_get_changed_zoom_level (level, 0); +} diff --git a/cut-n-paste/zoom-control/ephy-zoom.h b/cut-n-paste/zoom-control/ephy-zoom.h new file mode 100644 index 00000000..bf01f0d7 --- /dev/null +++ b/cut-n-paste/zoom-control/ephy-zoom.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2003 Christian Persch + * + * Modified 2005 by James Bowes for use in evince. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EPHY_ZOOM_H +#define EPHY_ZOOM_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <glib.h> +#include <glib/gi18n.h> + +G_BEGIN_DECLS + +#define EPHY_ZOOM_BEST_FIT (-3.0) +#define EPHY_ZOOM_FIT_WIDTH (-4.0) +#define EPHY_ZOOM_SEPARATOR (-5.0) + +static const +struct +{ + gchar *name; + float level; +} + +zoom_levels[] = +{ + { N_("Best Fit"), EPHY_ZOOM_BEST_FIT }, + { N_("Fit Page Width"), EPHY_ZOOM_FIT_WIDTH }, + { NULL, EPHY_ZOOM_SEPARATOR }, + { N_("50%"), 0.5 }, + { N_("70%"), 0.7071067811 }, + { N_("85%"), 0.8408964152 }, + { N_("100%"), 1.0 }, + { N_("125%"), 1.1892071149 }, + { N_("150%"), 1.4142135623 }, + { N_("175%"), 1.6817928304 }, + { N_("200%"), 2.0 }, + { N_("300%"), 2.8284271247 }, + { N_("400%"), 4.0 }, + { N_("800%"), 8.0 }, + { N_("1600%"), 16.0 }, + { N_("3200%"), 32.0 }, + { N_("6400%"), 64.0 } +}; +static const guint n_zoom_levels = G_N_ELEMENTS (zoom_levels); + +#define ZOOM_MINIMAL (EPHY_ZOOM_SEPARATOR) +#define ZOOM_MAXIMAL (zoom_levels[n_zoom_levels - 1].level) +#define ZOOM_IN (-1.0) +#define ZOOM_OUT (-2.0) + +guint ephy_zoom_get_zoom_level_index (float level); + +float ephy_zoom_get_changed_zoom_level (float level, gint steps); + +float ephy_zoom_get_nearest_zoom_level (float level); + +G_END_DECLS + +#endif diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 00000000..f80e9c6b --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,109 @@ +SUBDIRS = icons +NULL= + +install-data-local: update-icon-cache + +# +# man file +# + +man_MANS=evince.1 + +# +# UI descriptions +# + +uidir = $(pkgdatadir) +ui_DATA = \ + evince-ui.xml \ + evince-toolbar.xml \ + hand-open.png + +if ENABLE_PREVIEWER +ui_DATA += evince-previewer-ui.xml +endif + +# +# Desktop file +# + +@INTLTOOL_DESKTOP_RULE@ + +DESKTOP_IN_FILES= evince.desktop.in.in +DESKTOP_FILES= $(DESKTOP_IN_FILES:.desktop.in.in=.desktop) + +desktopdir = $(datadir)/applications +desktop_DATA = $(DESKTOP_FILES) + +# +# DBus servide file +# +if ENABLE_DBUS +servicedir = $(datadir)/dbus-1/services +service_in_files = org.mate.evince.Daemon.service.in +service_DATA = $(service_in_files:.service.in=.service) + +$(service_DATA): $(service_in_files) Makefile + $(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ +endif + +# +# GSettings schema +# +gsettingsschema_in_files = org.mate.Evince.gschema.xml.in +# gsettings_SCHEMAS is a list of all the schemas you want to install +gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml) + +.PRECIOUS: $(gsettings_SCHEMAS) + +@INTLTOOL_XML_NOMERGE_RULE@ + +# include the appropriate makefile rules for schema handling +@GSETTINGS_RULES@ + +gsettingsconvertdir = $(datadir)/MateConf/gsettings +gsettingsconvert_DATA = evince.convert + +# +# GTK icon cache +# + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache + +update-icon-cache: + if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + + +# +# Extra files to be included in the tarball +# + +EXTRA_DIST = \ + $(ui_DATA) \ + $(DESKTOP_IN_FILES) \ + $(gsettingsschema_in_files) \ + org.mate.evince.Daemon.service.in \ + $(man_MANS) \ + evince.ico \ + evince.convert \ + $(NULL) + +# +# Clean up properly +# + +DISTCLEANFILES = \ + $(DESKTOP_FILES) \ + $(gsettings_SCHEMAS) \ + $(service_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/evince-previewer-ui.xml b/data/evince-previewer-ui.xml new file mode 100644 index 00000000..896b472e --- /dev/null +++ b/data/evince-previewer-ui.xml @@ -0,0 +1,34 @@ +<ui> + <toolbar name="PreviewToolbar"> + <toolitem name="GoPreviousPage" action="GoPreviousPage"/> + <toolitem name="GoNextPage" action="GoNextPage"/> + <separator/> + <toolitem name="PageSelector" action="PageSelector"/> + <separator/> + <toolitem name="ViewPageWidth" action="ViewPageWidth"/> + <toolitem name="ViewBestFit" action="ViewBestFit"/> + <toolitem name="ViewZoomIn" action="ViewZoomIn"/> + <toolitem name="ViewZoomOut" action="ViewZoomOut"/> + <separator/> + <toolitem name="PreviewPrint" action="PreviewPrint"/> + </toolbar> + + <accelerator name="FileCloseWindowAccel" action="FileCloseWindow"/> + <accelerator name="SpaceAccel" action="Space"/> + <accelerator name="ReturnAccel" action="Return"/> + <accelerator name="BackSpaceAccel" action="BackSpace"/> + <accelerator name="ShiftSpaceAccel" action="ShiftSpace"/> + <accelerator name="ShiftBackSpaceAccel" action="ShiftBackSpace"/> + <accelerator name="pAccel" action="p"/> + <accelerator name="nAccel" action="n"/> + <accelerator name="ShiftReturnAccel" action="ShiftReturn"/> + <accelerator name="FocusPageSelectorAccel" action="FocusPageSelector"/> + <accelerator name="PlusAccel" action="Plus"/> + <accelerator name="MinusAccel" action="Minus"/> + <accelerator name="Equal" action="Equal"/> + <accelerator name="CtrlEqualAccel" action="CtrlEqual"/> + <accelerator name="KpPlusAccel" action="KpPlus"/> + <accelerator name="KpMinusAccel" action="KpMinus"/> + <accelerator name="CtrlKpPlusAccel" action="CtrlKpPlus"/> + <accelerator name="CtrlKpMinusAccel" action="CtrlKpMinus"/> +</ui> diff --git a/data/evince-toolbar.xml b/data/evince-toolbar.xml new file mode 100644 index 00000000..b87bf717 --- /dev/null +++ b/data/evince-toolbar.xml @@ -0,0 +1,39 @@ +<?xml version="1.0"?> +<toolbars version="1.0"> +<available> + <toolitem name="FileOpenRecent"/> + <toolitem name="FilePrint"/> + <toolitem name="FileSaveAs"/> + <toolitem name="ViewContinuous"/> + <toolitem name="ViewDual"/> + <toolitem name="ViewInvertedColors"/> + <toolitem name="ViewReload"/> + <toolitem name="ViewAutoscroll"/> + <toolitem name="ViewSidebar"/> + <toolitem name="ViewZoom"/> + <toolitem name="ViewZoomIn"/> + <toolitem name="ViewZoomOut"/> + <toolitem name="ViewBestFit"/> + <toolitem name="ViewPageWidth"/> + <toolitem name="ViewFullscreen"/> + <toolitem name="ViewPresentation"/> + <toolitem name="GoPreviousPage"/> + <toolitem name="GoNextPage"/> + <toolitem name="GoFirstPage"/> + <toolitem name="GoLastPage"/> + <toolitem name="EditRotateLeft"/> + <toolitem name="EditRotateRight"/> + <toolitem name="EditSelectAll"/> + <toolitem name="EditFind"/> + <toolitem name="PageSelector"/> + <toolitem name="Navigation"/> +</available> + <toolbar name="DefaultToolBar"> + <toolitem name="GoPreviousPage"/> + <toolitem name="GoNextPage"/> + <separator/> + <toolitem name="PageSelector"/> + <separator/> + <toolitem name="ViewZoom"/> + </toolbar> +</toolbars> diff --git a/data/evince-ui.xml b/data/evince-ui.xml new file mode 100644 index 00000000..f8e750db --- /dev/null +++ b/data/evince-ui.xml @@ -0,0 +1,138 @@ +<ui> + <menubar name="MainMenu"> + <menu name="FileMenu" action="File"> + <menuitem name="FileOpenMenu" action="FileOpen"/> + <menuitem name="FileOpenCopyMenu" action="FileOpenCopy"/> + <menuitem name="FileSaveAsMenu" action="FileSaveAs"/> + <separator/> + <menuitem name="FilePrintMenu" action="FilePrint"/> + <separator/> + <menuitem name="FilePropertiesMenu" action="FileProperties"/> + <separator/> + <placeholder name="RecentFilesMenu"/> + <separator/> + <menuitem name="FileCloseWindowMenu" action="FileCloseWindow"/> + </menu> + + <menu name="EditMenu" action="Edit"> + <menuitem name="EditCopyMenu" action="EditCopy"/> + <separator/> + <menuitem name="EditSelectAllMenu" action="EditSelectAll"/> + <separator/> + <menuitem name="EditFindMenu" action="EditFind"/> + <menuitem name="EditFindNextMenu" action="EditFindNext"/> + <menuitem name="EditFindPreviousMenu" action="EditFindPrevious"/> + <separator/> + <menuitem name="EditRotateLeftMenu" action="EditRotateLeft"/> + <menuitem name="EditRotateRightMenu" action="EditRotateRight"/> + <separator/> + <menuitem name="EditToolbarMenu" action="EditToolbar"/> + <separator/> + <menuitem name="EditSaveSettingsMenu" action="EditSaveSettings"/> + </menu> + + <menu name="ViewMenu" action="View"> + <menuitem name="ViewToolbarMenu" action="ViewToolbar"/> + <menuitem name="ViewSidebarMenu" action="ViewSidebar"/> + <separator/> + <menuitem name="ViewFullscreenMenu" action="ViewFullscreen"/> + <menuitem name="ViewPresentationMenu" action="ViewPresentation"/> + <separator/> + <menuitem name="ViewContinuousMenu" action="ViewContinuous"/> + <menuitem name="ViewDualMenu" action="ViewDual"/> + <separator/> + <menuitem name="ViewInvertedColors" action="ViewInvertedColors"/> + <separator/> + <menuitem name="ViewZoomInMenu" action="ViewZoomIn"/> + <menuitem name="ViewZoomOutMenu" action="ViewZoomOut"/> + <menuitem name="ViewBestFitMenu" action="ViewBestFit"/> + <menuitem name="ViewPageWidthMenu" action="ViewPageWidth"/> + <separator/> + <menuitem name="ViewReload" action="ViewReload"/> + </menu> + + <menu name="GoMenu" action="Go"> + <menuitem name="GoPreviousPageMenu" action="GoPreviousPage"/> + <menuitem name="GoNextPageMenu" action="GoNextPage"/> + <separator/> + <menuitem name="GoFirstPageMenu" action="GoFirstPage"/> + <menuitem name="GoLastPageMenu" action="GoLastPage"/> + </menu> + + <menu name="HelpMenu" action="Help"> + <menuitem name="HelpContentsMenu" action="HelpContents"/> + <menuitem name="HelpAboutMenu" action="HelpAbout"/> + </menu> + </menubar> + + <popup name="DocumentPopup" action="DocumentPopupAction"> + <menuitem name="OpenLink" action="OpenLink"/> + <menuitem name="CopyLinkAddress" action="CopyLinkAddress"/> + <menuitem name="GoLink" action="GoLink"/> + <menuitem name="OpenLinkNewWindow" action="OpenLinkNewWindow"/> + <separator/> + <menuitem name="GoPreviousPage" action="GoPreviousPage"/> + <menuitem name="GoNextPage" action="GoNextPage"/> + <menuitem name="ViewReload" action="ViewReload"/> + <menuitem name="ViewAutoscroll" action="ViewAutoscroll"/> + <separator/> + <menuitem name="EditCopy" action="EditCopy"/> + <menuitem name="EditSelectAllPopup" action="EditSelectAll"/> + <separator/> + <menuitem name="SaveImageAs" action="SaveImageAs"/> + <menuitem name="CopyImage" action="CopyImage"/> + <separator/> + <menuitem name="OpenAttachment" action="OpenAttachment"/> + <menuitem name="SaveAttachmentAs" action="SaveAttachmentAs"/> + <separator/> + <menuitem name="AnnotProperties" action="AnnotProperties"/> + </popup> + + <popup name="AttachmentPopup" action="AttachmentPopupAction"> + <menuitem name="OpenAttachment" action="OpenAttachment"/> + <separator/> + <menuitem name="SaveAttachmentAs" action="SaveAttachmentAs"/> + </popup> + + <popup name="ToolbarPopup" action="ToolbarPopupAction"> + <menuitem name="EditToolbarMenu" action="EditToolbar"/> + </popup> + + <accelerator name="PageDownAccel" action="PageDown"/> + <accelerator name="PageUpAccel" action="PageUp"/> + <accelerator name="GoBackwardFastAccel" action="GoBackwardFast"/> + <accelerator name="GoForwardFastAccel" action="GoForwardFast"/> + <accelerator name="EscapeAccel" action="Escape"/> + <accelerator name="SlashAccel" action="Slash"/> + <accelerator name="F3Accel" action="F3"/> + <accelerator name="SpaceAccel" action="Space"/> + <accelerator name="ReturnAccel" action="Return"/> + <accelerator name="BackSpaceAccel" action="BackSpace"/> + <accelerator name="ShiftSpaceAccel" action="ShiftSpace"/> + <accelerator name="ShiftBackSpaceAccel" action="ShiftBackSpace"/> + <accelerator name="pAccel" action="p"/> + <accelerator name="nAccel" action="n"/> + <accelerator name="ShiftReturnAccel" action="ShiftReturn"/> + <accelerator name="FocusPageSelectorAccel" action="FocusPageSelector"/> + <accelerator name="PlusAccel" action="Plus"/> + <accelerator name="MinusAccel" action="Minus"/> + <accelerator name="Equal" action="Equal"/> + <accelerator name="CtrlEqualAccel" action="CtrlEqual"/> + <accelerator name="KpPlusAccel" action="KpPlus"/> + <accelerator name="KpMinusAccel" action="KpMinus"/> + <accelerator name="CtrlKpPlusAccel" action="CtrlKpPlus"/> + <accelerator name="CtrlKpMinusAccel" action="CtrlKpMinus"/> + <accelerator name="CtrlInsertAccel" action="CtrlInsert" /> + + <toolbar name="FullscreenToolbar"> + <toolitem name="GoPreviousPage" action="GoPreviousPage"/> + <toolitem name="GoNextPage" action="GoNextPage"/> + <separator/> + <toolitem name="PageSelector" action="PageSelector"/> + <separator/> + <toolitem name="ViewZoom" action="ViewZoom"/> + <separator expand="true"/> + <toolitem name="StartPresentation" action="StartPresentation"/> + <toolitem name="LeaveFullscreen" action="LeaveFullscreen"/> + </toolbar> +</ui> diff --git a/data/evince.1 b/data/evince.1 new file mode 100644 index 00000000..43dd768b --- /dev/null +++ b/data/evince.1 @@ -0,0 +1,41 @@ +.TH EVINCE 1 "30 Jan 2007" +.SH NAME +\fBevince\fP \- MATE document viewer + +The Evince Document Viewer application for MATE desktop environment + +.SH SYNTAX +.B evince +.RI [--help] +.RI [--usage] +.RI [--page-label=<label>] +.RI [--quit] +.RI [filename(s)...] +.SH DESCRIPTION +.B evince + +Evince is a document viewer capable of displaying multiple and single +page document formats like PDF and Postscript. For more general +information about Evince please visit our website at +http://www.mate.org/projects/evince/ + +.LP +.SH OPTIONS + +.TP +\fB\-\-help\fR +Prints the command line options. +.TP +\fB\-\-page\-label=label\fR +You can pass a page label or page number here, this page will be selected in +the document if it exists. +.TP +\fBfilename(s)...\fR +Specifies the file to open when Evince starts. If this is not +specified, Evince will open a blank window. Multiple files can be loaded +if they are separated by spaces. Evince also supports handling of +remote files. For example, you can pass the location on the web or load +a file from a FTP server, like "ftp://adobe.com/sample.pdf". + +.SH BUGS +If you find a bug, please report it at http://bugzilla.mate.org/enter_bug.cgi?product=evince. diff --git a/data/evince.convert b/data/evince.convert new file mode 100644 index 00000000..0071bc73 --- /dev/null +++ b/data/evince.convert @@ -0,0 +1,2 @@ +[org.mate.Evince] +override-restrictions = /apps/evince/override_restrictions diff --git a/data/evince.desktop.in.in b/data/evince.desktop.in.in new file mode 100644 index 00000000..f871bc17 --- /dev/null +++ b/data/evince.desktop.in.in @@ -0,0 +1,17 @@ +[Desktop Entry] +_Name=Document Viewer +_Comment=View multi-page documents +TryExec=evince +Exec=evince %U +StartupNotify=true +Terminal=false +Type=Application +Icon=evince +NoDisplay=true +X-MATE-DocPath= +X-MATE-Bugzilla-Bugzilla=MATE +X-MATE-Bugzilla-Product=evince +X-MATE-Bugzilla-Component=BugBuddyBugs +X-MATE-Bugzilla-Version=@VERSION@ +Categories=MATE;GTK;Graphics;VectorGraphics;Viewer; +MimeType=@EVINCE_MIME_TYPES@ diff --git a/data/evince.ico b/data/evince.ico new file mode 100644 index 00000000..1015d1f8 Binary files /dev/null and b/data/evince.ico differ diff --git a/data/hand-open.png b/data/hand-open.png new file mode 100644 index 00000000..55ac7b8c Binary files /dev/null and b/data/hand-open.png differ diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am new file mode 100644 index 00000000..b02d3a8c --- /dev/null +++ b/data/icons/16x16/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = actions apps mimetypes + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/actions/Makefile.am b/data/icons/16x16/actions/Makefile.am new file mode 100644 index 00000000..d82ea2a3 --- /dev/null +++ b/data/icons/16x16/actions/Makefile.am @@ -0,0 +1,27 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 16x16 +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + view-page-continuous.png \ + view-page-facing.png \ + zoom.png \ + zoom-fit-height.png \ + zoom-fit-width.png \ + object-rotate-left.png \ + object-rotate-right.png + +noinst_DATA = \ + view-page-continuous.xcf \ + view-page-facing.xcf \ + zoom.svg \ + zoom-fit-page.svg \ + zoom-fit-width.svg + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/actions/object-rotate-left.png b/data/icons/16x16/actions/object-rotate-left.png new file mode 100644 index 00000000..c455b536 Binary files /dev/null and b/data/icons/16x16/actions/object-rotate-left.png differ diff --git a/data/icons/16x16/actions/object-rotate-right.png b/data/icons/16x16/actions/object-rotate-right.png new file mode 100644 index 00000000..49e5727c Binary files /dev/null and b/data/icons/16x16/actions/object-rotate-right.png differ diff --git a/data/icons/16x16/actions/view-page-continuous.png b/data/icons/16x16/actions/view-page-continuous.png new file mode 100644 index 00000000..fc583098 Binary files /dev/null and b/data/icons/16x16/actions/view-page-continuous.png differ diff --git a/data/icons/16x16/actions/view-page-continuous.xcf b/data/icons/16x16/actions/view-page-continuous.xcf new file mode 100644 index 00000000..1a1b36c1 Binary files /dev/null and b/data/icons/16x16/actions/view-page-continuous.xcf differ diff --git a/data/icons/16x16/actions/view-page-facing.png b/data/icons/16x16/actions/view-page-facing.png new file mode 100644 index 00000000..078b4c9e Binary files /dev/null and b/data/icons/16x16/actions/view-page-facing.png differ diff --git a/data/icons/16x16/actions/view-page-facing.xcf b/data/icons/16x16/actions/view-page-facing.xcf new file mode 100644 index 00000000..cfe5f232 Binary files /dev/null and b/data/icons/16x16/actions/view-page-facing.xcf differ diff --git a/data/icons/16x16/actions/zoom-fit-height.png b/data/icons/16x16/actions/zoom-fit-height.png new file mode 100644 index 00000000..91d6ec7c Binary files /dev/null and b/data/icons/16x16/actions/zoom-fit-height.png differ diff --git a/data/icons/16x16/actions/zoom-fit-page.svg b/data/icons/16x16/actions/zoom-fit-page.svg new file mode 100644 index 00000000..d6bf4aea --- /dev/null +++ b/data/icons/16x16/actions/zoom-fit-page.svg @@ -0,0 +1,282 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg4639" + sodipodi:version="0.32" + inkscape:version="0.44" + sodipodi:docbase="/home/luca/Desktop/16x16/actions" + sodipodi:docname="zoom-fit-page.svg" + version="1.0"> + <defs + id="defs4641"> + <linearGradient + inkscape:collect="always" + id="linearGradient2889"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop2891" /> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="1" + id="stop2893" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2881"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop2883" /> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="1" + id="stop2885" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2853"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2855" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop2857" /> + </linearGradient> + <linearGradient + id="linearGradient5631"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop5633" /> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="1" + id="stop5635" /> + </linearGradient> + <linearGradient + id="linearGradient8163"> + <stop + style="stop-color:#bad0e8;stop-opacity:1;" + offset="0" + id="stop8165" /> + <stop + style="stop-color:#7fa9d5;stop-opacity:1" + offset="1" + id="stop8167" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8163" + id="radialGradient4666" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.941673,0,0,0.792865,0.946634,3.041907)" + cx="5.9125323" + cy="9.0931339" + fx="5.9125323" + fy="9.0931339" + r="6.6046906" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5631" + id="linearGradient5637" + x1="7.5" + y1="8.8833847" + x2="7.5" + y2="-0.79768431" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2853" + id="radialGradient2861" + cx="4.9147677" + cy="5.1328478" + fx="4.9147677" + fy="5.1328478" + r="5" + gradientTransform="matrix(1.925041,0,1.17341e-7,1.382998,-4.336128,-1.661216)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2881" + id="linearGradient2887" + x1="2.8480079" + y1="1.379131" + x2="7.0234137" + y2="10.952174" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2889" + id="linearGradient2895" + x1="7.4401245" + y1="0.79882336" + x2="10.728523" + y2="13.712273" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="16" + inkscape:cx="21.524656" + inkscape:cy="11.367931" + inkscape:current-layer="layer8" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showborder="false" + inkscape:grid-points="true" + inkscape:window-width="1041" + inkscape:window-height="710" + inkscape:window-x="26" + inkscape:window-y="25" /> + <metadata + id="metadata4644"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:contributor> + <cc:Agent> + <dc:title>Andreas Nillson</dc:title> + </cc:Agent> + </dc:contributor> + <dc:title>Zoom</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="magnifying lens" + inkscape:groupmode="layer" + style="display:inline"> + <rect + y="-0.1077" + x="9.9999997e-05" + height="16" + width="16" + id="rect4613" + style="fill:white;fill-opacity:0;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + y="14.201591" + x="-0.97432232" + height="3.0000219" + width="1.9875129" + id="rect4615" + style="fill:#525655;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.708405,-0.705806,0.708405,0.705806,0,0)" + ry="1.4539403" + rx="1.3503115" + y="16.878378" + x="-1.4629019" + height="4.4376249" + width="2.8660307" + id="rect4617" + style="fill:#d3d7cf;fill-opacity:1;stroke:#2e3436;stroke-width:1.00001717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + id="path4619" + d="M 11.128133,11.108613 L 14.215547,14.196027" + style="fill:none;fill-rule:evenodd;stroke:#525655;stroke-width:1.0000006px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(1.088272,0,0,1.200299,-8.933437e-2,0.259922)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4621" + style="fill:white;fill-opacity:0;stroke:url(#linearGradient2895);stroke-width:0.96245235;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(0.920843,0,0,1.015635,1.001354,1.29686)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4623" + style="opacity:1;fill:url(#radialGradient4666);fill-opacity:1;stroke:url(#linearGradient2887);stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <rect + style="opacity:1;fill:#999;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect1928" + width="1" + height="1" + x="12" + y="12" /> + <path + style="opacity:0.5;fill:url(#radialGradient2861);fill-opacity:1;stroke:none;stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + d="M 7,2 C 4.2399952,2 2.0000001,4.2399964 2,7 C 3,10.521525 8,3.5447287 12,7 C 12,4.2399964 9.7600047,2 7,2 z " + id="path2847" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="pagewidth" + style="display:inline"> + <g + id="g4561" + transform="matrix(0,1,-1,0,14,0)"> + <g + style="opacity:0.8" + id="g5768"> + <path + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" + d="M 5,4 L 2,7 L 5,10 L 5,4 z M 9,4 L 9,10 L 12,7 L 9,4 z " + id="path5760" /> + <rect + style="opacity:1;fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + id="rect5752" + width="4" + height="4" + x="5" + y="5" + rx="0" + ry="0" /> + </g> + <rect + ry="0" + rx="0" + y="6" + x="4" + height="2" + width="6" + id="rect5754" + style="fill:white;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> + <path + id="path5756" + d="M 5,4 L 2,7 L 5,10 L 5,4" + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + id="path5758" + d="M 9,4 L 12,7 L 9,10 L 9,4" + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> + </g> + </g> +</svg> diff --git a/data/icons/16x16/actions/zoom-fit-width.png b/data/icons/16x16/actions/zoom-fit-width.png new file mode 100644 index 00000000..64c81b26 Binary files /dev/null and b/data/icons/16x16/actions/zoom-fit-width.png differ diff --git a/data/icons/16x16/actions/zoom-fit-width.svg b/data/icons/16x16/actions/zoom-fit-width.svg new file mode 100644 index 00000000..86dcf876 --- /dev/null +++ b/data/icons/16x16/actions/zoom-fit-width.svg @@ -0,0 +1,278 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg4639" + sodipodi:version="0.32" + inkscape:version="0.44" + sodipodi:docbase="/home/lapo/Desktop/zoom" + sodipodi:docname="zoom-fit-width.svg" + version="1.0"> + <defs + id="defs4641"> + <linearGradient + inkscape:collect="always" + id="linearGradient2889"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop2891" /> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="1" + id="stop2893" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2881"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop2883" /> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="1" + id="stop2885" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2853"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2855" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop2857" /> + </linearGradient> + <linearGradient + id="linearGradient5631"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop5633" /> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="1" + id="stop5635" /> + </linearGradient> + <linearGradient + id="linearGradient8163"> + <stop + style="stop-color:#bad0e8;stop-opacity:1;" + offset="0" + id="stop8165" /> + <stop + style="stop-color:#7fa9d5;stop-opacity:1" + offset="1" + id="stop8167" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8163" + id="radialGradient4666" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.941673,0,0,0.792865,0.946634,3.041907)" + cx="5.9125323" + cy="9.0931339" + fx="5.9125323" + fy="9.0931339" + r="6.6046906" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5631" + id="linearGradient5637" + x1="7.5" + y1="8.8833847" + x2="7.5" + y2="-0.79768431" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2853" + id="radialGradient2861" + cx="4.9147677" + cy="5.1328478" + fx="4.9147677" + fy="5.1328478" + r="5" + gradientTransform="matrix(1.925041,0,1.17341e-7,1.382998,-4.336128,-1.661216)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2881" + id="linearGradient2887" + x1="2.8480079" + y1="1.379131" + x2="7.0234137" + y2="10.952174" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2889" + id="linearGradient2895" + x1="7.4401245" + y1="0.79882336" + x2="10.728523" + y2="13.712273" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="14.680503" + inkscape:cy="2.2039917" + inkscape:current-layer="layer8" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showborder="false" + inkscape:grid-points="true" + inkscape:window-width="1034" + inkscape:window-height="710" + inkscape:window-x="26" + inkscape:window-y="0" /> + <metadata + id="metadata4644"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:contributor> + <cc:Agent> + <dc:title>Andreas Nillson</dc:title> + </cc:Agent> + </dc:contributor> + <dc:title>Zoom</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="magnifying lens" + inkscape:groupmode="layer" + style="display:inline"> + <rect + y="-0.1077" + x="9.9999997e-05" + height="16" + width="16" + id="rect4613" + style="fill:white;fill-opacity:0;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + y="14.201591" + x="-0.97432232" + height="3.0000219" + width="1.9875129" + id="rect4615" + style="fill:#525655;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.708405,-0.705806,0.708405,0.705806,0,0)" + ry="1.4539403" + rx="1.3503115" + y="16.878378" + x="-1.4629019" + height="4.4376249" + width="2.8660307" + id="rect4617" + style="fill:#d3d7cf;fill-opacity:1;stroke:#2e3436;stroke-width:1.00001717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + id="path4619" + d="M 11.128133,11.108613 L 14.215547,14.196027" + style="fill:none;fill-rule:evenodd;stroke:#525655;stroke-width:1.0000006px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(1.088272,0,0,1.200299,-8.933437e-2,0.259922)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4621" + style="fill:white;fill-opacity:0;stroke:url(#linearGradient2895);stroke-width:0.96245235;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(0.920843,0,0,1.015635,1.001354,1.29686)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4623" + style="opacity:1;fill:url(#radialGradient4666);fill-opacity:1;stroke:url(#linearGradient2887);stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <rect + style="opacity:1;fill:#999;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect1928" + width="1" + height="1" + x="12" + y="12" /> + <path + style="opacity:0.5;fill:url(#radialGradient2861);fill-opacity:1;stroke:none;stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + d="M 7,2 C 4.2399952,2 2.0000001,4.2399964 2,7 C 3,10.521525 8,3.5447287 12,7 C 12,4.2399964 9.7600047,2 7,2 z " + id="path2847" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="pagewidth" + style="display:inline"> + <g + id="g5768" + style="opacity:0.8"> + <path + id="path5760" + d="M 5,4 L 2,7 L 5,10 L 5,4 z M 9,4 L 9,10 L 12,7 L 9,4 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> + <rect + ry="0" + rx="0" + y="5" + x="5" + height="4" + width="4" + id="rect5752" + style="opacity:1;fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> + </g> + <rect + style="fill:white;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + id="rect5754" + width="6" + height="2" + x="4" + y="6" + rx="0" + ry="0" /> + <path + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 5,4 L 2,7 L 5,10 L 5,4" + id="path5756" /> + <path + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 9,4 L 12,7 L 9,10 L 9,4" + id="path5758" /> + </g> +</svg> diff --git a/data/icons/16x16/actions/zoom.png b/data/icons/16x16/actions/zoom.png new file mode 100644 index 00000000..fad7019e Binary files /dev/null and b/data/icons/16x16/actions/zoom.png differ diff --git a/data/icons/16x16/actions/zoom.svg b/data/icons/16x16/actions/zoom.svg new file mode 100644 index 00000000..14e713e9 --- /dev/null +++ b/data/icons/16x16/actions/zoom.svg @@ -0,0 +1,247 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg4639" + sodipodi:version="0.32" + inkscape:version="0.45+devel" + sodipodi:docbase="/home/luca/Desktop/16x16/actions" + sodipodi:docname="zoom.svg" + version="1.0" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/nx/Desktop/zoom.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4641"> + <linearGradient + inkscape:collect="always" + id="linearGradient2889"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop2891" /> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="1" + id="stop2893" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2881"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop2883" /> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="1" + id="stop2885" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2853"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2855" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop2857" /> + </linearGradient> + <linearGradient + id="linearGradient5631"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop5633" /> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="1" + id="stop5635" /> + </linearGradient> + <linearGradient + id="linearGradient8163"> + <stop + style="stop-color:#bad0e8;stop-opacity:1;" + offset="0" + id="stop8165" /> + <stop + style="stop-color:#7fa9d5;stop-opacity:1" + offset="1" + id="stop8167" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8163" + id="radialGradient4666" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.941673,0,0,0.792865,0.946634,3.041907)" + cx="5.9125323" + cy="9.0931339" + fx="5.9125323" + fy="9.0931339" + r="6.6046906" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5631" + id="linearGradient5637" + x1="7.5" + y1="8.8833847" + x2="7.5" + y2="-0.79768431" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2853" + id="radialGradient2861" + cx="4.9147677" + cy="5.1328478" + fx="4.9147677" + fy="5.1328478" + r="5" + gradientTransform="matrix(1.925041,0,1.17341e-7,1.382998,-4.336128,-1.661216)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2881" + id="linearGradient2887" + x1="2.8480079" + y1="1.379131" + x2="7.0234137" + y2="10.952174" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2889" + id="linearGradient2895" + x1="7.4401245" + y1="0.79882336" + x2="10.728523" + y2="13.712273" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="16" + inkscape:cx="21.524656" + inkscape:cy="11.367931" + inkscape:current-layer="layer8" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showborder="false" + inkscape:grid-points="true" + inkscape:window-width="1041" + inkscape:window-height="710" + inkscape:window-x="26" + inkscape:window-y="25" /> + <metadata + id="metadata4644"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:contributor> + <cc:Agent> + <dc:title>Andreas Nillson</dc:title> + </cc:Agent> + </dc:contributor> + <dc:title>Zoom</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="magnifying lens" + inkscape:groupmode="layer" + style="display:inline"> + <rect + y="-0.1077" + x="9.9999997e-05" + height="16" + width="16" + id="rect4613" + style="fill:white;fill-opacity:0;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + y="14.201591" + x="-0.97432232" + height="3.0000219" + width="1.9875129" + id="rect4615" + style="fill:#525655;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + transform="matrix(0.708405,-0.705806,0.708405,0.705806,0,0)" + ry="1.4539403" + rx="1.3503115" + y="16.878378" + x="-1.4629019" + height="4.4376249" + width="2.8660307" + id="rect4617" + style="fill:#d3d7cf;fill-opacity:1;stroke:#2e3436;stroke-width:1.00001717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + id="path4619" + d="M 11.128133,11.108613 L 14.215547,14.196027" + style="fill:none;fill-rule:evenodd;stroke:#525655;stroke-width:1.0000006px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(1.088272,0,0,1.200299,-8.933437e-2,0.259922)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4621" + style="fill:white;fill-opacity:0;stroke:url(#linearGradient2895);stroke-width:0.96245235;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(0.920843,0,0,1.015635,1.001354,1.29686)" + d="M 12.487086 5.6153316 A 5.9727769 5.415318 0 1 1 0.54153204,5.6153316 A 5.9727769 5.415318 0 1 1 12.487086 5.6153316 z" + sodipodi:ry="5.415318" + sodipodi:rx="5.9727769" + sodipodi:cy="5.6153316" + sodipodi:cx="6.5143089" + id="path4623" + style="opacity:1;fill:url(#radialGradient4666);fill-opacity:1;stroke:url(#linearGradient2887);stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <rect + style="opacity:1;fill:#999;fill-opacity:1;stroke:none;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect1928" + width="1" + height="1" + x="12" + y="12" /> + <path + style="opacity:0.5;fill:url(#radialGradient2861);fill-opacity:1;stroke:none;stroke-width:1.03404319;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + d="M 7,2 C 4.2399952,2 2.0000001,4.2399964 2,7 C 3,10.521525 8,3.5447287 12,7 C 12,4.2399964 9.7600047,2 7,2 z " + id="path2847" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="pagewidth" + style="display:inline" /> +</svg> diff --git a/data/icons/16x16/apps/Makefile.am b/data/icons/16x16/apps/Makefile.am new file mode 100644 index 00000000..f23ab1a5 --- /dev/null +++ b/data/icons/16x16/apps/Makefile.am @@ -0,0 +1,16 @@ +themedir = $(datadir)/icons/hicolor +size = 16x16 +context = apps + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + evince.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/apps/evince.png b/data/icons/16x16/apps/evince.png new file mode 100644 index 00000000..e2e7fae1 Binary files /dev/null and b/data/icons/16x16/apps/evince.png differ diff --git a/data/icons/16x16/mimetypes/Makefile.am b/data/icons/16x16/mimetypes/Makefile.am new file mode 100644 index 00000000..9a2164cc --- /dev/null +++ b/data/icons/16x16/mimetypes/Makefile.am @@ -0,0 +1,14 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 16x16 +context = mimetypes + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + x-office-presentation.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/16x16/mimetypes/x-office-presentation.png b/data/icons/16x16/mimetypes/x-office-presentation.png new file mode 100644 index 00000000..da0546d1 Binary files /dev/null and b/data/icons/16x16/mimetypes/x-office-presentation.png differ diff --git a/data/icons/22x22/Makefile.am b/data/icons/22x22/Makefile.am new file mode 100644 index 00000000..b02d3a8c --- /dev/null +++ b/data/icons/22x22/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = actions apps mimetypes + +-include $(top_srcdir)/git.mk diff --git a/data/icons/22x22/actions/Makefile.am b/data/icons/22x22/actions/Makefile.am new file mode 100644 index 00000000..eba54c2a --- /dev/null +++ b/data/icons/22x22/actions/Makefile.am @@ -0,0 +1,28 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 22x22 +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + eye.png \ + object-rotate-left.png \ + object-rotate-right.png \ + view-page-continuous.png \ + view-page-facing.png \ + zoom.png \ + zoom-fit-page.png \ + zoom-fit-width.png + +noinst_DATA = \ + view-page-continuous.xcf \ + view-page-facing.xcf \ + zoom.svg \ + zoom-fit-page.svg \ + zoom-fit-width.svg + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/22x22/actions/eye.png b/data/icons/22x22/actions/eye.png new file mode 100644 index 00000000..32f278c1 Binary files /dev/null and b/data/icons/22x22/actions/eye.png differ diff --git a/data/icons/22x22/actions/object-rotate-left.png b/data/icons/22x22/actions/object-rotate-left.png new file mode 100644 index 00000000..cbd71e52 Binary files /dev/null and b/data/icons/22x22/actions/object-rotate-left.png differ diff --git a/data/icons/22x22/actions/object-rotate-right.png b/data/icons/22x22/actions/object-rotate-right.png new file mode 100644 index 00000000..b0e33dc6 Binary files /dev/null and b/data/icons/22x22/actions/object-rotate-right.png differ diff --git a/data/icons/22x22/actions/view-page-continuous.png b/data/icons/22x22/actions/view-page-continuous.png new file mode 100644 index 00000000..7f74603b Binary files /dev/null and b/data/icons/22x22/actions/view-page-continuous.png differ diff --git a/data/icons/22x22/actions/view-page-continuous.xcf b/data/icons/22x22/actions/view-page-continuous.xcf new file mode 100644 index 00000000..cf3ee516 Binary files /dev/null and b/data/icons/22x22/actions/view-page-continuous.xcf differ diff --git a/data/icons/22x22/actions/view-page-facing.png b/data/icons/22x22/actions/view-page-facing.png new file mode 100644 index 00000000..8158ae31 Binary files /dev/null and b/data/icons/22x22/actions/view-page-facing.png differ diff --git a/data/icons/22x22/actions/view-page-facing.xcf b/data/icons/22x22/actions/view-page-facing.xcf new file mode 100644 index 00000000..1a4942c8 Binary files /dev/null and b/data/icons/22x22/actions/view-page-facing.xcf differ diff --git a/data/icons/22x22/actions/zoom-fit-page.png b/data/icons/22x22/actions/zoom-fit-page.png new file mode 100644 index 00000000..a074b422 Binary files /dev/null and b/data/icons/22x22/actions/zoom-fit-page.png differ diff --git a/data/icons/22x22/actions/zoom-fit-page.svg b/data/icons/22x22/actions/zoom-fit-page.svg new file mode 100644 index 00000000..0ac072a1 --- /dev/null +++ b/data/icons/22x22/actions/zoom-fit-page.svg @@ -0,0 +1,254 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="22" + height="22" + id="svg7360" + sodipodi:version="0.32" + inkscape:version="0.44" + version="1.0" + sodipodi:docbase="/home/luca/Desktop/22x22/actions" + sodipodi:docname="zoom-fit-page.svg" + inkscape:export-filename="/home/andreas/project/misc icons/22x22/actions/zoom-fit-width.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs7362"> + <linearGradient + inkscape:collect="always" + id="linearGradient5398"> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="0" + id="stop5400" /> + <stop + style="stop-color:#729fcf;stop-opacity:0;" + offset="1" + id="stop5402" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5398" + id="linearGradient7413" + gradientUnits="userSpaceOnUse" + x1="-1.650571" + y1="229.18515" + x2="6.1053252" + y2="250.19063" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7659"> + <stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop7661" /> + <stop + style="stop-color:#555753;stop-opacity:0;" + offset="1" + id="stop7663" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7659" + id="radialGradient7411" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.973425,0,0,0.24,0.401944,173.945)" + cx="15.125" + cy="229.39583" + fx="15.125" + fy="229.39583" + r="9.375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5388"> + <stop + style="stop-color:#bcd2e9;stop-opacity:1" + offset="0" + id="stop5390" /> + <stop + style="stop-color:#93b6db;stop-opacity:1" + offset="1" + id="stop5392" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5388" + id="radialGradient7409" + gradientUnits="userSpaceOnUse" + cx="2.96875" + cy="240.416" + fx="2.96875" + fy="240.416" + r="8.96875" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7629"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop7631" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop7633" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7629" + id="linearGradient7407" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(235.4321,-644.2117)" + x1="-164.73708" + y1="182.09869" + x2="-162.92517" + y2="182.10544" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.672167" + inkscape:cx="14.098689" + inkscape:cy="13.127552" + inkscape:current-layer="draw_zoom" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + width="22px" + height="22px" + inkscape:window-width="1270" + inkscape:window-height="922" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7365"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7387" + transform="translate(-1,-1)"> + <g + inkscape:label="#g18331" + transform="translate(295.0516,397.0022)" + id="draw_zoom"> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + ry="1.4928225" + rx="1.4928225" + y="-467.01642" + x="70.877777" + height="9.0625086" + width="2.5000021" + id="rect18273" + style="fill:url(#linearGradient7407);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1.00000107;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + transform="matrix(1.003826,0,0,1,-288.0306,-622.4396)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18275" + style="fill:url(#radialGradient7409);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.99809253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="czccc" + id="path18277" + d="M -292.15418,-386.77986 C -292.15418,-386.77986 -288.74097,-385.87708 -284.98838,-385.87708 C -281.2922,-385.87708 -277.82258,-387.68264 -277.82258,-387.68264 C -277.82258,-387.68264 -278.8839,-394.00208 -284.98838,-394.00208 C -291.88279,-393.88923 -292.15418,-386.77986 -292.15418,-386.77986 z " + style="opacity:0.2857143;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(0.885609,0,0,0.885612,-287.6784,-595.4806)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18279" + style="opacity:0.8;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:white;stroke-width:1.12916505;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(1.119412,0,0,1.555533,-300.897,-733.5249)" + d="M 24.875 228.875 A 9.375 2.25 0 1 1 6.125,228.875 A 9.375 2.25 0 1 1 24.875 228.875 z" + sodipodi:ry="2.25" + sodipodi:rx="9.375" + sodipodi:cy="228.875" + sodipodi:cx="15.5" + id="path18281" + style="opacity:0.2;fill:url(#radialGradient7411);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7413);stroke-width:1.2950778;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path5396" + sodipodi:cx="2.96875" + sodipodi:cy="235.40625" + sodipodi:rx="8.46875" + sodipodi:ry="8.46875" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + transform="matrix(0.770704,0,0,0.773608,-287.3127,-569.1141)" /> + <g + id="g4556" + transform="matrix(0,1,-1,0,-671.8038,-101.7006)"> + <g + transform="matrix(1.043478,0,0,1,-292.3559,-393.7522)" + style="opacity:0.8;display:inline" + id="g5768"> + <path + sodipodi:nodetypes="cccccccc" + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.46841753;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" + d="M 5.3328369,4 L 2,7 L 5.3328369,10 L 5.3328369,4 z M 8.697421,4 L 8.697421,10 L 12,7 L 8.697421,4 z " + id="path5760" /> + <rect + style="opacity:1;fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + id="rect5752" + width="4" + height="4" + x="5" + y="4.75" + rx="0" + ry="0" /> + </g> + <rect + ry="0" + rx="0" + y="-388.0022" + x="-288.30161" + height="2" + width="6" + id="rect5754" + style="fill:white;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> + <path + id="path5756" + d="M -287.0516,-389.7522 L -290.0516,-386.7522 L -287.0516,-383.7522 L -287.0516,-389.7522" + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> + <path + id="path5758" + d="M -283.0516,-389.7522 L -280.0516,-386.7522 L -283.0516,-383.7522 L -283.0516,-389.7522" + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/data/icons/22x22/actions/zoom-fit-width.png b/data/icons/22x22/actions/zoom-fit-width.png new file mode 100644 index 00000000..f9fe77fd Binary files /dev/null and b/data/icons/22x22/actions/zoom-fit-width.png differ diff --git a/data/icons/22x22/actions/zoom-fit-width.svg b/data/icons/22x22/actions/zoom-fit-width.svg new file mode 100644 index 00000000..d1498db5 --- /dev/null +++ b/data/icons/22x22/actions/zoom-fit-width.svg @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="22" + height="22" + id="svg7360" + sodipodi:version="0.32" + inkscape:version="0.44+devel" + version="1.0" + sodipodi:docbase="/home/andreas/project/misc icons/22x22/actions" + sodipodi:docname="zoom-fit-width.svg" + inkscape:export-filename="/home/andreas/project/misc icons/22x22/actions/zoom-fit-width.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + sodipodi:modified="TRUE"> + <defs + id="defs7362"> + <linearGradient + inkscape:collect="always" + id="linearGradient5398"> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="0" + id="stop5400" /> + <stop + style="stop-color:#729fcf;stop-opacity:0;" + offset="1" + id="stop5402" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5398" + id="linearGradient7413" + gradientUnits="userSpaceOnUse" + x1="-1.650571" + y1="229.18515" + x2="6.1053252" + y2="250.19063" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7659"> + <stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop7661" /> + <stop + style="stop-color:#555753;stop-opacity:0;" + offset="1" + id="stop7663" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7659" + id="radialGradient7411" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.973425,0,0,0.24,0.401944,173.945)" + cx="15.125" + cy="229.39583" + fx="15.125" + fy="229.39583" + r="9.375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5388"> + <stop + style="stop-color:#bcd2e9;stop-opacity:1" + offset="0" + id="stop5390" /> + <stop + style="stop-color:#93b6db;stop-opacity:1" + offset="1" + id="stop5392" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5388" + id="radialGradient7409" + gradientUnits="userSpaceOnUse" + cx="2.96875" + cy="240.416" + fx="2.96875" + fy="240.416" + r="8.96875" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7629"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop7631" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop7633" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7629" + id="linearGradient7407" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(235.4321,-644.2117)" + x1="-164.73708" + y1="182.09869" + x2="-162.92517" + y2="182.10544" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.672167" + inkscape:cx="14.098689" + inkscape:cy="13.127552" + inkscape:current-layer="draw_zoom" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + width="22px" + height="22px" + inkscape:window-width="1680" + inkscape:window-height="975" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7365"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7387" + transform="translate(-1,-1)"> + <g + inkscape:label="#g18331" + transform="translate(295.0516,397.0022)" + id="draw_zoom"> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + ry="1.4928225" + rx="1.4928225" + y="-467.01642" + x="70.877777" + height="9.0625086" + width="2.5000021" + id="rect18273" + style="fill:url(#linearGradient7407);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1.00000107;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + transform="matrix(1.003826,0,0,1,-288.0306,-622.4396)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18275" + style="fill:url(#radialGradient7409);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.99809253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="czccc" + id="path18277" + d="M -292.15418,-386.77986 C -292.15418,-386.77986 -288.74097,-385.87708 -284.98838,-385.87708 C -281.2922,-385.87708 -277.82258,-387.68264 -277.82258,-387.68264 C -277.82258,-387.68264 -278.8839,-394.00208 -284.98838,-394.00208 C -291.88279,-393.88923 -292.15418,-386.77986 -292.15418,-386.77986 z " + style="opacity:0.2857143;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(0.885609,0,0,0.885612,-287.6784,-595.4806)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18279" + style="opacity:0.8;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:white;stroke-width:1.12916505;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(1.119412,0,0,1.555533,-300.897,-733.5249)" + d="M 24.875 228.875 A 9.375 2.25 0 1 1 6.125,228.875 A 9.375 2.25 0 1 1 24.875 228.875 z" + sodipodi:ry="2.25" + sodipodi:rx="9.375" + sodipodi:cy="228.875" + sodipodi:cx="15.5" + id="path18281" + style="opacity:0.2;fill:url(#radialGradient7411);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7413);stroke-width:1.2950778;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path5396" + sodipodi:cx="2.96875" + sodipodi:cy="235.40625" + sodipodi:rx="8.46875" + sodipodi:ry="8.46875" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + transform="matrix(0.770704,0,0,0.773608,-287.3127,-569.1141)" /> + <g + id="g5768" + style="opacity:0.8;display:inline" + transform="matrix(1.0434783,0,0,1,-292.35595,-393.7522)"> + <path + id="path5760" + d="M 5.3328369,4 L 2,7 L 5.3328369,10 L 5.3328369,4 z M 8.697421,4 L 8.697421,10 L 12,7 L 8.697421,4 z " + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#729fcf;stroke-width:1.46841753;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" + sodipodi:nodetypes="cccccccc" /> + <rect + ry="0" + rx="0" + y="4.75" + x="5" + height="4" + width="4" + id="rect5752" + style="opacity:1;fill:#729fcf;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> + </g> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" + id="rect5754" + width="6" + height="2" + x="-288.30161" + y="-388.0022" + rx="0" + ry="0" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M -287.0516,-389.7522 L -290.0516,-386.7522 L -287.0516,-383.7522 L -287.0516,-389.7522" + id="path5756" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M -283.0516,-389.7522 L -280.0516,-386.7522 L -283.0516,-383.7522 L -283.0516,-389.7522" + id="path5758" /> + </g> + </g> + </g> +</svg> diff --git a/data/icons/22x22/actions/zoom.png b/data/icons/22x22/actions/zoom.png new file mode 100644 index 00000000..aa5be522 Binary files /dev/null and b/data/icons/22x22/actions/zoom.png differ diff --git a/data/icons/22x22/actions/zoom.svg b/data/icons/22x22/actions/zoom.svg new file mode 100644 index 00000000..bff113b8 --- /dev/null +++ b/data/icons/22x22/actions/zoom.svg @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="22" + height="22" + id="svg7360" + sodipodi:version="0.32" + inkscape:version="0.45+devel" + version="1.0" + sodipodi:docbase="/home/luca/Desktop/22x22/actions" + sodipodi:docname="zoom-fit-page.svg" + inkscape:export-filename="/home/andreas/project/misc icons/22x22/actions/zoom-fit-width.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7362"> + <linearGradient + inkscape:collect="always" + id="linearGradient5398"> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="0" + id="stop5400" /> + <stop + style="stop-color:#729fcf;stop-opacity:0;" + offset="1" + id="stop5402" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5398" + id="linearGradient7413" + gradientUnits="userSpaceOnUse" + x1="-1.650571" + y1="229.18515" + x2="6.1053252" + y2="250.19063" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7659"> + <stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop7661" /> + <stop + style="stop-color:#555753;stop-opacity:0;" + offset="1" + id="stop7663" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7659" + id="radialGradient7411" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.973425,0,0,0.24,0.401944,173.945)" + cx="15.125" + cy="229.39583" + fx="15.125" + fy="229.39583" + r="9.375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5388"> + <stop + style="stop-color:#bcd2e9;stop-opacity:1" + offset="0" + id="stop5390" /> + <stop + style="stop-color:#93b6db;stop-opacity:1" + offset="1" + id="stop5392" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5388" + id="radialGradient7409" + gradientUnits="userSpaceOnUse" + cx="2.96875" + cy="240.416" + fx="2.96875" + fy="240.416" + r="8.96875" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7629"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop7631" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop7633" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7629" + id="linearGradient7407" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(235.4321,-644.2117)" + x1="-164.73708" + y1="182.09869" + x2="-162.92517" + y2="182.10544" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.672167" + inkscape:cx="14.098689" + inkscape:cy="13.127552" + inkscape:current-layer="draw_zoom" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + width="22px" + height="22px" + inkscape:window-width="1270" + inkscape:window-height="922" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7365"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7387" + transform="translate(-1,-1)"> + <g + inkscape:label="#g18331" + transform="translate(295.0516,397.0022)" + id="draw_zoom"> + <rect + transform="matrix(0.707107,-0.707107,0.707107,0.707107,0,0)" + ry="1.4928225" + rx="1.4928225" + y="-467.01642" + x="70.877777" + height="9.0625086" + width="2.5000021" + id="rect18273" + style="fill:url(#linearGradient7407);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1.00000107;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + transform="matrix(1.003826,0,0,1,-288.0306,-622.4396)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18275" + style="fill:url(#radialGradient7409);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:0.99809253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="czccc" + id="path18277" + d="M -292.15418,-386.77986 C -292.15418,-386.77986 -288.74097,-385.87708 -284.98838,-385.87708 C -281.2922,-385.87708 -277.82258,-387.68264 -277.82258,-387.68264 C -277.82258,-387.68264 -278.8839,-394.00208 -284.98838,-394.00208 C -291.88279,-393.88923 -292.15418,-386.77986 -292.15418,-386.77986 z " + style="opacity:0.2857143;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(0.885609,0,0,0.885612,-287.6784,-595.4806)" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + sodipodi:ry="8.46875" + sodipodi:rx="8.46875" + sodipodi:cy="235.40625" + sodipodi:cx="2.96875" + id="path18279" + style="opacity:0.8;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:white;stroke-width:1.12916505;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(1.119412,0,0,1.555533,-300.897,-733.5249)" + d="M 24.875 228.875 A 9.375 2.25 0 1 1 6.125,228.875 A 9.375 2.25 0 1 1 24.875 228.875 z" + sodipodi:ry="2.25" + sodipodi:rx="9.375" + sodipodi:cy="228.875" + sodipodi:cx="15.5" + id="path18281" + style="opacity:0.2;fill:url(#radialGradient7411);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7413);stroke-width:1.2950778;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path5396" + sodipodi:cx="2.96875" + sodipodi:cy="235.40625" + sodipodi:rx="8.46875" + sodipodi:ry="8.46875" + d="M 11.4375 235.40625 A 8.46875 8.46875 0 1 1 -5.5,235.40625 A 8.46875 8.46875 0 1 1 11.4375 235.40625 z" + transform="matrix(0.770704,0,0,0.773608,-287.3127,-569.1141)" /> + </g> + </g> + </g> +</svg> diff --git a/data/icons/22x22/apps/Makefile.am b/data/icons/22x22/apps/Makefile.am new file mode 100644 index 00000000..30c03967 --- /dev/null +++ b/data/icons/22x22/apps/Makefile.am @@ -0,0 +1,16 @@ +themedir = $(datadir)/icons/hicolor +size = 22x22 +context = apps + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + evince.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/22x22/apps/evince.png b/data/icons/22x22/apps/evince.png new file mode 100644 index 00000000..e8b8c12e Binary files /dev/null and b/data/icons/22x22/apps/evince.png differ diff --git a/data/icons/22x22/mimetypes/Makefile.am b/data/icons/22x22/mimetypes/Makefile.am new file mode 100644 index 00000000..b81bf64d --- /dev/null +++ b/data/icons/22x22/mimetypes/Makefile.am @@ -0,0 +1,14 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 22x22 +context = mimetypes + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + x-office-presentation.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/22x22/mimetypes/x-office-presentation.png b/data/icons/22x22/mimetypes/x-office-presentation.png new file mode 100644 index 00000000..6c8fb624 Binary files /dev/null and b/data/icons/22x22/mimetypes/x-office-presentation.png differ diff --git a/data/icons/24x24/Makefile.am b/data/icons/24x24/Makefile.am new file mode 100644 index 00000000..b02d3a8c --- /dev/null +++ b/data/icons/24x24/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = actions apps mimetypes + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/actions/Makefile.am b/data/icons/24x24/actions/Makefile.am new file mode 100644 index 00000000..f44f8b6b --- /dev/null +++ b/data/icons/24x24/actions/Makefile.am @@ -0,0 +1,23 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 24x24 +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + stock_filters-invert.png \ + view-page-continuous.png \ + view-page-facing.png \ + zoom.png \ + zoom-fit-height.png \ + zoom-fit-width.png \ + object-rotate-left.png \ + object-rotate-right.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/actions/object-rotate-left.png b/data/icons/24x24/actions/object-rotate-left.png new file mode 100644 index 00000000..29aa9ab5 Binary files /dev/null and b/data/icons/24x24/actions/object-rotate-left.png differ diff --git a/data/icons/24x24/actions/object-rotate-right.png b/data/icons/24x24/actions/object-rotate-right.png new file mode 100644 index 00000000..dea855ac Binary files /dev/null and b/data/icons/24x24/actions/object-rotate-right.png differ diff --git a/data/icons/24x24/actions/stock_filters-invert.png b/data/icons/24x24/actions/stock_filters-invert.png new file mode 100644 index 00000000..fd459a1c Binary files /dev/null and b/data/icons/24x24/actions/stock_filters-invert.png differ diff --git a/data/icons/24x24/actions/view-page-continuous.png b/data/icons/24x24/actions/view-page-continuous.png new file mode 100644 index 00000000..00b411ca Binary files /dev/null and b/data/icons/24x24/actions/view-page-continuous.png differ diff --git a/data/icons/24x24/actions/view-page-facing.png b/data/icons/24x24/actions/view-page-facing.png new file mode 100644 index 00000000..cb9891bc Binary files /dev/null and b/data/icons/24x24/actions/view-page-facing.png differ diff --git a/data/icons/24x24/actions/zoom-fit-height.png b/data/icons/24x24/actions/zoom-fit-height.png new file mode 100644 index 00000000..012ff4a0 Binary files /dev/null and b/data/icons/24x24/actions/zoom-fit-height.png differ diff --git a/data/icons/24x24/actions/zoom-fit-width.png b/data/icons/24x24/actions/zoom-fit-width.png new file mode 100644 index 00000000..cb877a7e Binary files /dev/null and b/data/icons/24x24/actions/zoom-fit-width.png differ diff --git a/data/icons/24x24/actions/zoom.png b/data/icons/24x24/actions/zoom.png new file mode 100644 index 00000000..3b0c6ff5 Binary files /dev/null and b/data/icons/24x24/actions/zoom.png differ diff --git a/data/icons/24x24/apps/Makefile.am b/data/icons/24x24/apps/Makefile.am new file mode 100644 index 00000000..ff718d9a --- /dev/null +++ b/data/icons/24x24/apps/Makefile.am @@ -0,0 +1,16 @@ +themedir = $(datadir)/icons/hicolor +size = 24x24 +context = apps + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + evince.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/apps/evince.png b/data/icons/24x24/apps/evince.png new file mode 100644 index 00000000..0e6f3690 Binary files /dev/null and b/data/icons/24x24/apps/evince.png differ diff --git a/data/icons/24x24/mimetypes/Makefile.am b/data/icons/24x24/mimetypes/Makefile.am new file mode 100644 index 00000000..abc9554a --- /dev/null +++ b/data/icons/24x24/mimetypes/Makefile.am @@ -0,0 +1,14 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 24x24 +context = mimetypes + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + x-office-presentation.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/24x24/mimetypes/x-office-presentation.png b/data/icons/24x24/mimetypes/x-office-presentation.png new file mode 100644 index 00000000..4133d22a Binary files /dev/null and b/data/icons/24x24/mimetypes/x-office-presentation.png differ diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am new file mode 100644 index 00000000..02d9f743 --- /dev/null +++ b/data/icons/32x32/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = actions mimetypes + +-include $(top_srcdir)/git.mk diff --git a/data/icons/32x32/actions/Makefile.am b/data/icons/32x32/actions/Makefile.am new file mode 100644 index 00000000..09e20499 --- /dev/null +++ b/data/icons/32x32/actions/Makefile.am @@ -0,0 +1,19 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 32x32 +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + object-rotate-left.png \ + object-rotate-right.png \ + view-page-continuous.png \ + view-page-facing.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/32x32/actions/object-rotate-left.png b/data/icons/32x32/actions/object-rotate-left.png new file mode 100644 index 00000000..26e74b06 Binary files /dev/null and b/data/icons/32x32/actions/object-rotate-left.png differ diff --git a/data/icons/32x32/actions/object-rotate-right.png b/data/icons/32x32/actions/object-rotate-right.png new file mode 100644 index 00000000..9164b5d9 Binary files /dev/null and b/data/icons/32x32/actions/object-rotate-right.png differ diff --git a/data/icons/32x32/actions/view-page-continuous.png b/data/icons/32x32/actions/view-page-continuous.png new file mode 100644 index 00000000..405b3708 Binary files /dev/null and b/data/icons/32x32/actions/view-page-continuous.png differ diff --git a/data/icons/32x32/actions/view-page-facing.png b/data/icons/32x32/actions/view-page-facing.png new file mode 100644 index 00000000..9dd9d7fa Binary files /dev/null and b/data/icons/32x32/actions/view-page-facing.png differ diff --git a/data/icons/32x32/mimetypes/Makefile.am b/data/icons/32x32/mimetypes/Makefile.am new file mode 100644 index 00000000..014f357f --- /dev/null +++ b/data/icons/32x32/mimetypes/Makefile.am @@ -0,0 +1,14 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 32x32 +context = mimetypes + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + x-office-presentation.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/32x32/mimetypes/x-office-presentation.png b/data/icons/32x32/mimetypes/x-office-presentation.png new file mode 100644 index 00000000..251800d4 Binary files /dev/null and b/data/icons/32x32/mimetypes/x-office-presentation.png differ diff --git a/data/icons/48x48/Makefile.am b/data/icons/48x48/Makefile.am new file mode 100644 index 00000000..ae033087 --- /dev/null +++ b/data/icons/48x48/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = actions apps + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/48x48/actions/Makefile.am b/data/icons/48x48/actions/Makefile.am new file mode 100644 index 00000000..a8047edf --- /dev/null +++ b/data/icons/48x48/actions/Makefile.am @@ -0,0 +1,20 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = 48x48 +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + close.png \ + view-page-continuous.png \ + view-page-facing.png \ + resize-se.png \ + resize-sw.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/48x48/actions/close.png b/data/icons/48x48/actions/close.png new file mode 100644 index 00000000..ad0e1eaa Binary files /dev/null and b/data/icons/48x48/actions/close.png differ diff --git a/data/icons/48x48/actions/resize-se.png b/data/icons/48x48/actions/resize-se.png new file mode 100644 index 00000000..374314ba Binary files /dev/null and b/data/icons/48x48/actions/resize-se.png differ diff --git a/data/icons/48x48/actions/resize-sw.png b/data/icons/48x48/actions/resize-sw.png new file mode 100644 index 00000000..fa216283 Binary files /dev/null and b/data/icons/48x48/actions/resize-sw.png differ diff --git a/data/icons/48x48/actions/view-page-continuous.png b/data/icons/48x48/actions/view-page-continuous.png new file mode 100644 index 00000000..d70e49f3 Binary files /dev/null and b/data/icons/48x48/actions/view-page-continuous.png differ diff --git a/data/icons/48x48/actions/view-page-facing.png b/data/icons/48x48/actions/view-page-facing.png new file mode 100644 index 00000000..bd725138 Binary files /dev/null and b/data/icons/48x48/actions/view-page-facing.png differ diff --git a/data/icons/48x48/apps/Makefile.am b/data/icons/48x48/apps/Makefile.am new file mode 100644 index 00000000..8fb3b67b --- /dev/null +++ b/data/icons/48x48/apps/Makefile.am @@ -0,0 +1,16 @@ +themedir = $(datadir)/icons/hicolor +size = 48x48 +context = apps + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + evince.png + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/48x48/apps/evince.png b/data/icons/48x48/apps/evince.png new file mode 100644 index 00000000..f0b382fd Binary files /dev/null and b/data/icons/48x48/apps/evince.png differ diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 00000000..6101c565 --- /dev/null +++ b/data/icons/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/Makefile.am b/data/icons/scalable/Makefile.am new file mode 100644 index 00000000..b02d3a8c --- /dev/null +++ b/data/icons/scalable/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = actions apps mimetypes + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/actions/Makefile.am b/data/icons/scalable/actions/Makefile.am new file mode 100644 index 00000000..45fbb93c --- /dev/null +++ b/data/icons/scalable/actions/Makefile.am @@ -0,0 +1,15 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = scalable +context = actions + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + object-rotate-left.svg \ + object-rotate-right.svg + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/scalable/actions/object-rotate-left.svg b/data/icons/scalable/actions/object-rotate-left.svg new file mode 100644 index 00000000..82f82e78 --- /dev/null +++ b/data/icons/scalable/actions/object-rotate-left.svg @@ -0,0 +1,208 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.45" + version="1.0" + sodipodi:docbase="/home/dobey/Projects/mate-icon-theme/scalable/actions" + sodipodi:docname="object-rotate-left.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/lapo/Desktop/rotate.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6924"> + <stop + style="stop-color:#fcaf3e;stop-opacity:1" + offset="0" + id="stop6926" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop6928" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3263"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3265" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3267" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3209"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop3211" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop3213" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3263" + id="linearGradient3315" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,48.99999,-118)" + x1="19.375" + y1="27.371426" + x2="17.167892" + y2="43.640007" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3263" + id="linearGradient3317" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,48.99999,-118)" + x1="21.875" + y1="8.75" + x2="0.88711649" + y2="31.759331" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3209" + id="radialGradient3321" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.537849,0,7.842131)" + cx="12.15625" + cy="16.96875" + fx="12.15625" + fy="16.96875" + r="7.84375" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6924" + id="linearGradient6930" + x1="22.125" + y1="-75.955933" + x2="22.125" + y2="-148.64252" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#afafaf" + borderopacity="1" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="43.450724" + inkscape:cy="42.078559" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + gridspacingx="0.5px" + gridspacingy="0.5px" + inkscape:showpageshadow="false" + borderlayer="true" + gridempspacing="2" + inkscape:window-width="1085" + inkscape:window-height="880" + inkscape:window-x="10" + inkscape:window-y="48" + showgrid="false" + showguides="true" + showborder="true" + inkscape:guide-bbox="true" + inkscape:grid-points="true" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>Rotate Left</dc:title> + <dc:date>2006-10-02</dc:date> + <dc:subject> + <rdf:Bag> + <rdf:li>object</rdf:li> + <rdf:li>rotate</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="Livello 1" + inkscape:groupmode="layer" + id="layer1" + style="display:inline"> + <g + id="g3486" + transform="translate(-2,120)"> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/lapo/Desktop/rotate.png" + transform="matrix(-2.67729,0,0,2.133333,57.5458,-117.2)" + d="M 20 16.96875 A 7.84375 4.21875 0 1 1 4.3125,16.96875 A 7.84375 4.21875 0 1 1 20 16.96875 z" + sodipodi:ry="4.21875" + sodipodi:rx="7.84375" + sodipodi:cy="16.96875" + sodipodi:cx="12.15625" + id="path3275" + style="opacity:0.15;color:#000000;fill:url(#radialGradient3321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + style="color:#000000;fill:url(#linearGradient6930);fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 36.84375,-115.5 C 25.398954,-115.5 16.5,-106.41493 16.5,-95.5 L 16.5,-92.5 L 10,-92.5 C 9.601905,-92.496959 9.243526,-92.258098 9.087523,-91.89183 C 8.93152,-91.525563 9.007607,-91.101651 9.28125,-90.8125 L 22.25,-76.78125 C 22.439303,-76.576476 22.705506,-76.460041 22.984375,-76.460041 C 23.263244,-76.460041 23.529447,-76.576476 23.71875,-76.78125 L 36.65625,-90.8125 C 36.933974,-91.105757 37.008042,-91.537281 36.844006,-91.906364 C 36.679969,-92.275446 36.310029,-92.509633 35.90625,-92.5 L 29.5,-92.5 L 29.5,-95.5 C 29.500001,-97.607932 30.224447,-99.378169 31.5,-100.59375 C 32.778286,-101.81193 34.631337,-102.5 36.84375,-102.5 L 45.5,-102.5 C 46.052262,-102.50006 46.499945,-102.94774 46.5,-103.5 L 46.5,-114.5 C 46.499945,-115.05226 46.052262,-115.49994 45.5,-115.5 L 36.84375,-115.5 z " + id="path5948" /> + <path + sodipodi:nodetypes="ccccccscc" + id="path3279" + d="M 17.499993,-91.5 L 17.499993,-95.5 C 17.499993,-105.87535 25.896261,-114.5 36.812493,-114.5 L 45.499993,-114.5 L 45.499993,-103.5 L 36.843743,-103.5 C 34.420315,-103.5 32.303004,-102.73293 30.812493,-101.3125 C 29.321982,-99.892067 28.499993,-97.841924 28.499993,-95.5 L 28.499993,-91.5" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3317);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="ccccc" + id="path3281" + d="M 28.499993,-91.5 L 35.906243,-91.5 L 22.968743,-77.46875 L 9.999993,-91.5 L 17.499993,-91.5" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3315);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + </g> + </g> +</svg> diff --git a/data/icons/scalable/actions/object-rotate-right.svg b/data/icons/scalable/actions/object-rotate-right.svg new file mode 100644 index 00000000..3f2ac853 --- /dev/null +++ b/data/icons/scalable/actions/object-rotate-right.svg @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.45" + version="1.0" + sodipodi:docbase="/home/dobey/Projects/mate-icon-theme/scalable/actions" + sodipodi:docname="object-rotate-right.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/lapo/Desktop/rotate.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6950" + inkscape:collect="always"> + <stop + id="stop6952" + offset="0" + style="stop-color:#fcaf3e;stop-opacity:1" /> + <stop + id="stop6954" + offset="1" + style="stop-color:#ffffff;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3263"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3265" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3267" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3209"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop3211" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop3213" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3209" + id="radialGradient6966" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.537849,0,7.842131)" + cx="12.15625" + cy="16.96875" + fx="12.15625" + fy="16.96875" + r="7.84375" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6950" + id="linearGradient6968" + gradientUnits="userSpaceOnUse" + x1="22.125" + y1="-75.955933" + x2="22.125" + y2="-148.64252" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3263" + id="linearGradient6970" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,48.99999,-118)" + x1="18.5" + y1="5.625" + x2="26.262117" + y2="33.009331" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3263" + id="linearGradient6972" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,48.99999,-118)" + x1="19.375" + y1="27.371426" + x2="17.167892" + y2="43.640007" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#afafaf" + borderopacity="1" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="82.361665" + inkscape:cy="19.90492" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + gridspacingx="0.5px" + gridspacingy="0.5px" + inkscape:showpageshadow="false" + borderlayer="true" + gridempspacing="2" + inkscape:window-width="1085" + inkscape:window-height="880" + inkscape:window-x="379" + inkscape:window-y="59" + showgrid="false" + showguides="true" + showborder="false" + inkscape:guide-bbox="true" + inkscape:grid-points="true" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>Rotate Left</dc:title> + <dc:date>2006-10-02</dc:date> + <dc:subject> + <rdf:Bag> + <rdf:li>object</rdf:li> + <rdf:li>rotate</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="Livello 1" + inkscape:groupmode="layer" + id="layer1" + style="display:inline"> + <g + style="display:inline" + id="g6956" + transform="matrix(-1,0,0,1,49,120)"> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/lapo/Desktop/rotate.png" + transform="matrix(-2.67729,0,0,2.133333,57.5458,-117.2)" + d="M 20 16.96875 A 7.84375 4.21875 0 1 1 4.3125,16.96875 A 7.84375 4.21875 0 1 1 20 16.96875 z" + sodipodi:ry="4.21875" + sodipodi:rx="7.84375" + sodipodi:cy="16.96875" + sodipodi:cx="12.15625" + id="path6958" + style="opacity:0.15;color:#000000;fill:url(#radialGradient6966);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + style="color:#000000;fill:url(#linearGradient6968);fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 36.84375,-115.5 C 25.398954,-115.5 16.5,-106.41493 16.5,-95.5 L 16.5,-92.5 L 10,-92.5 C 9.601905,-92.496959 9.243526,-92.258098 9.087523,-91.89183 C 8.93152,-91.525563 9.007607,-91.101651 9.28125,-90.8125 L 22.25,-76.78125 C 22.439303,-76.576476 22.705506,-76.460041 22.984375,-76.460041 C 23.263244,-76.460041 23.529447,-76.576476 23.71875,-76.78125 L 36.65625,-90.8125 C 36.933974,-91.105757 37.008042,-91.537281 36.844006,-91.906364 C 36.679969,-92.275446 36.310029,-92.509633 35.90625,-92.5 L 29.5,-92.5 L 29.5,-95.5 C 29.500001,-97.607932 30.224447,-99.378169 31.5,-100.59375 C 32.778286,-101.81193 34.631337,-102.5 36.84375,-102.5 L 45.5,-102.5 C 46.052262,-102.50006 46.499945,-102.94774 46.5,-103.5 L 46.5,-114.5 C 46.499945,-115.05226 46.052262,-115.49994 45.5,-115.5 L 36.84375,-115.5 z " + id="path6960" /> + <path + sodipodi:nodetypes="ccccccscc" + id="path6962" + d="M 17.499993,-91.5 L 17.499993,-95.5 C 17.499993,-105.87535 25.896261,-114.5 36.812493,-114.5 L 45.499993,-114.5 L 45.499993,-103.5 L 36.843743,-103.5 C 34.420315,-103.5 32.303004,-102.73293 30.812493,-101.3125 C 29.321982,-99.892067 28.499993,-97.841924 28.499993,-95.5 L 28.499993,-91.5" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient6970);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="ccccc" + id="path6964" + d="M 28.499993,-91.5 L 35.906243,-91.5 L 22.968743,-77.46875 L 9.999993,-91.5 L 17.499993,-91.5" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient6972);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + </g> + </g> +</svg> diff --git a/data/icons/scalable/apps/Makefile.am b/data/icons/scalable/apps/Makefile.am new file mode 100644 index 00000000..8898fbb2 --- /dev/null +++ b/data/icons/scalable/apps/Makefile.am @@ -0,0 +1,16 @@ +themedir = $(datadir)/icons/hicolor +size = scalable +context = apps + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + evince.svg + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/apps/evince.svg b/data/icons/scalable/apps/evince.svg new file mode 100644 index 00000000..9b0332fb --- /dev/null +++ b/data/icons/scalable/apps/evince.svg @@ -0,0 +1,500 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:export-ydpi="90.000000" + inkscape:export-xdpi="90.000000" + inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png" + width="48px" + height="48px" + id="svg11300" + sodipodi:version="0.32" + inkscape:version="0.43" + sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/application-icons" + sodipodi:docname="evince.svg"> + <defs + id="defs3"> + <linearGradient + inkscape:collect="always" + id="linearGradient3507"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3509" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3511" /> + </linearGradient> + <linearGradient + id="linearGradient3497"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3499" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.56730771;" + offset="1" + id="stop3501" /> + </linearGradient> + <linearGradient + id="linearGradient4598"> + <stop + style="stop-color:#e6eef7;stop-opacity:1;" + offset="0" + id="stop4600" /> + <stop + style="stop-color:#8ab0d8;stop-opacity:1;" + offset="1" + id="stop4602" /> + </linearGradient> + <linearGradient + id="linearGradient4590"> + <stop + style="stop-color:#cc0000;stop-opacity:1;" + offset="0" + id="stop4592" /> + <stop + style="stop-color:#ffa2a2;stop-opacity:1;" + offset="1" + id="stop4594" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient4582"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4584" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop4586" /> + </linearGradient> + <linearGradient + id="linearGradient4570"> + <stop + style="stop-color:#eceeea;stop-opacity:1;" + offset="0" + id="stop4572" /> + <stop + style="stop-color:#d3d7cf;stop-opacity:1;" + offset="1" + id="stop4574" /> + </linearGradient> + <linearGradient + id="linearGradient11520"> + <stop + id="stop11522" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop11524" + offset="1.0000000" + style="stop-color:#dcdcdc;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient11508" + inkscape:collect="always"> + <stop + id="stop11510" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop11512" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient11494" + inkscape:collect="always"> + <stop + id="stop11496" + offset="0" + style="stop-color:#ef2929;stop-opacity:1;" /> + <stop + id="stop11498" + offset="1" + style="stop-color:#ef2929;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient11415"> + <stop + id="stop11417" + offset="0.0000000" + style="stop-color:#204a87;stop-opacity:0.0000000;" /> + <stop + style="stop-color:#204a87;stop-opacity:1.0000000;" + offset="0.50000000" + id="stop11423" /> + <stop + id="stop11419" + offset="1" + style="stop-color:#204a87;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient11399" + inkscape:collect="always"> + <stop + id="stop11401" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop11403" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + gradientTransform="translate(-60.28571,-0.285714)" + y2="34.462429" + x2="43.615788" + y1="3.7744560" + x1="15.828360" + gradientUnits="userSpaceOnUse" + id="linearGradient11425" + xlink:href="#linearGradient11415" + inkscape:collect="always" /> + <linearGradient + gradientTransform="translate(-60.57143,0.000000)" + y2="39.033859" + x2="35.679932" + y1="9.3458843" + x1="9.6957054" + gradientUnits="userSpaceOnUse" + id="linearGradient11427" + xlink:href="#linearGradient11415" + inkscape:collect="always" /> + <linearGradient + y2="33.462429" + x2="26.758644" + y1="19.774456" + x1="13.267134" + gradientTransform="translate(-60.85714,0.428571)" + gradientUnits="userSpaceOnUse" + id="linearGradient11439" + xlink:href="#linearGradient11415" + inkscape:collect="always" /> + <radialGradient + r="8.5000000" + fy="39.142857" + fx="12.071428" + cy="39.142857" + cx="12.071428" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.487395,0.000000,20.06483)" + gradientUnits="userSpaceOnUse" + id="radialGradient11441" + xlink:href="#linearGradient11399" + inkscape:collect="always" /> + <radialGradient + gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" + gradientUnits="userSpaceOnUse" + r="3.8335034" + fy="15.048258" + fx="27.577173" + cy="15.048258" + cx="27.577173" + id="radialGradient11500" + xlink:href="#linearGradient11494" + inkscape:collect="always" /> + <radialGradient + r="3.8335034" + fy="16.049133" + fx="27.577173" + cy="16.049133" + cx="27.577173" + gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" + gradientUnits="userSpaceOnUse" + id="radialGradient11504" + xlink:href="#linearGradient11494" + inkscape:collect="always" /> + <radialGradient + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.166583e-14,29.48178)" + r="6.5659914" + fy="44.565483" + fx="30.203562" + cy="44.565483" + cx="30.203562" + id="radialGradient11514" + xlink:href="#linearGradient11508" + inkscape:collect="always" /> + <radialGradient + gradientTransform="matrix(1.995058,-1.651527e-32,0.000000,1.995058,-24.32488,-35.70087)" + gradientUnits="userSpaceOnUse" + r="20.530962" + fy="35.878170" + fx="24.445690" + cy="35.878170" + cx="24.445690" + id="radialGradient11526" + xlink:href="#linearGradient11520" + inkscape:collect="always" /> + <radialGradient + r="6.5659914" + fy="44.565483" + fx="30.203562" + cy="44.565483" + cx="30.203562" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,3.185827e-15,29.48178)" + gradientUnits="userSpaceOnUse" + id="radialGradient11532" + xlink:href="#linearGradient11508" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11508" + id="radialGradient1348" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,-1.353344e-14,29.48178)" + cx="30.203562" + cy="44.565483" + fx="30.203562" + fy="44.565483" + r="6.5659914" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11520" + id="radialGradient1350" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.995058,-1.651527e-32,0.000000,1.995058,-24.32488,-35.70087)" + cx="24.445690" + cy="35.878170" + fx="24.445690" + fy="35.878170" + r="20.530962" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11494" + id="radialGradient1352" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" + cx="27.577173" + cy="16.049133" + fx="27.577173" + fy="16.049133" + r="3.8335034" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11494" + id="radialGradient1354" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" + cx="27.577173" + cy="15.048258" + fx="27.577173" + fy="15.048258" + r="3.8335034" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11508" + id="radialGradient1356" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.220359e-14,29.48178)" + cx="30.203562" + cy="44.565483" + fx="30.203562" + fy="44.565483" + r="6.5659914" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11520" + id="radialGradient1366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.049266,-1.696401e-32,0.000000,2.049266,-25.65002,-37.31089)" + cx="24.445690" + cy="35.878170" + fx="24.445690" + fy="35.878170" + r="20.530962" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4582" + id="radialGradient4588" + cx="24.625" + cy="38.625" + fx="24.625" + fy="38.625" + r="21.125" + gradientTransform="matrix(1,0,0,0.420118,0,22.39793)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4590" + id="linearGradient4596" + x1="24.689142" + y1="24.109001" + x2="53.568085" + y2="24.109001" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-6.8085e-2,-5.100256)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4598" + id="radialGradient4604" + cx="24.502396" + cy="12.604746" + fx="24.502396" + fy="12.604746" + r="20.507692" + gradientTransform="matrix(2.319263,1.846486e-24,-3.426469e-24,2.374685,-32.32511,-17.59985)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3497" + id="radialGradient3503" + cx="24.621058" + cy="19.188286" + fx="24.621058" + fy="19.188286" + r="19.378943" + gradientTransform="matrix(2.476948,-1.582729e-16,7.838822e-8,1.851413,-36.36402,-15.71214)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3507" + id="radialGradient3513" + cx="25.986174" + cy="26.786797" + fx="25.986174" + fy="26.786797" + r="15.465359" + gradientTransform="matrix(0.863137,0,0,0.438896,3.556549,15.03019)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + stroke="#3465a4" + fill="#729fcf" + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="0.25490196" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="23.885378" + inkscape:cy="21.61759" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:showpageshadow="false" + inkscape:window-width="866" + inkscape:window-height="861" + inkscape:window-x="597" + inkscape:window-y="231" /> + <metadata + id="metadata4"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Jakub Steiner</dc:title> + </cc:Agent> + </dc:creator> + <dc:source>http://jimmac.musichall.cz</dc:source> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>Evince</dc:title> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient4588);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path4580" + sodipodi:cx="24.625" + sodipodi:cy="38.625" + sodipodi:rx="21.125" + sodipodi:ry="8.875" + d="M 45.75 38.625 A 21.125 8.875 0 1 1 3.5,38.625 A 21.125 8.875 0 1 1 45.75 38.625 z" /> + <rect + style="opacity:1;color:#000000;fill:url(#radialGradient4604);fill-opacity:1.0;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect2362" + width="40.015385" + height="40.995502" + x="4.4947042" + y="3.5019624" + rx="5.25" + ry="5.249999" /> + <rect + ry="4.1893401" + rx="4.1893401" + y="4.5014553" + x="5.4887967" + height="38.996178" + width="38.016666" + id="rect4578" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:type="arc" + style="opacity:0.33516487;color:#000000;fill:url(#radialGradient3513);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:20;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path3505" + sodipodi:cx="25.986174" + sodipodi:cy="26.786797" + sodipodi:rx="13.965359" + sodipodi:ry="6.3639612" + d="M 39.951532 26.786797 A 13.965359 6.3639612 0 1 1 12.020815,26.786797 A 13.965359 6.3639612 0 1 1 39.951532 26.786797 z" + transform="matrix(1.341772,0,0,0.722222,-10.47234,10.2692)" /> + <path + sodipodi:nodetypes="csscccssc" + d="M 7.1259973,31.741117 C 11.765805,27.68571 30.893861,10.081732 25.852282,9.673849 C 23.236513,9.462225 17.109192,11.147428 14.375577,16.263462 C 9.2571747,25.842698 20.796041,27.247528 25.587041,26.667586 C 33.436885,25.444662 42.417893,19.773745 42.417893,19.773745 L 42.287308,26.225495 C 25.462936,30.983654 15.478556,29.674247 9.6155212,23.977042 C 3.9116018,18.434447 17.535095,5.924967 28.574516,7.075922 C 39.972698,8.264281 7.1259973,31.741117 7.1259973,31.741117 z " + id="path3495" + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient3503);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:20;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient4596);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path3695" + d="M 6.2421138,32 C 10.881922,27.944593 30.893861,9.456732 25.852282,9.048849 C 23.236513,8.837225 17.109192,10.522428 14.375577,15.638462 C 9.2571747,25.217698 20.796041,26.622528 25.587041,26.042586 C 33.436885,24.819662 43,19.721968 43,19.721968 L 42.994415,24.923718 C 26.170043,29.681877 15.478556,29.049247 9.6155212,23.352042 C 3.9116018,17.809447 17.535095,5.299967 28.574516,6.450922 C 39.972698,7.639281 6.2421138,32 6.2421138,32 z " + sodipodi:nodetypes="csscccssc" /> + <rect + y="35" + x="10" + height="1" + width="28" + id="rect4626" + style="opacity:0.33516487;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + style="opacity:0.33516487;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect4628" + width="28" + height="1" + x="10" + y="37" /> + <rect + y="39" + x="10" + height="1" + width="18" + id="rect4630" + style="opacity:0.33516487;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + </g> +</svg> diff --git a/data/icons/scalable/mimetypes/Makefile.am b/data/icons/scalable/mimetypes/Makefile.am new file mode 100644 index 00000000..0fbf88d4 --- /dev/null +++ b/data/icons/scalable/mimetypes/Makefile.am @@ -0,0 +1,14 @@ +themedir = $(pkgdatadir)/icons/hicolor +size = scalable +context = mimetypes + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + x-office-presentation.svg + +noinst_DATA = + +EXTRA_DIST = \ + $(icons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/scalable/mimetypes/x-office-presentation.svg b/data/icons/scalable/mimetypes/x-office-presentation.svg new file mode 100644 index 00000000..8ded5a23 --- /dev/null +++ b/data/icons/scalable/mimetypes/x-office-presentation.svg @@ -0,0 +1,686 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg2160" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hbons/Desktop/Ubuntu Visual Refresh: Discovery" + sodipodi:docname="x-office-presentation.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0"> + <defs + id="defs2162"> + <linearGradient + inkscape:collect="always" + id="linearGradient3926"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3928" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3930" /> + </linearGradient> + <linearGradient + id="linearGradient3832"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop3834" /> + <stop + id="stop3840" + offset="0.67355675" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="1" + id="stop3836" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3448"> + <stop + style="stop-color:#f57900;stop-opacity:1" + offset="0" + id="stop3450" /> + <stop + style="stop-color:#fcaf3e;stop-opacity:1" + offset="1" + id="stop3452" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3359"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3361" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3363" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3269"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3271" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3273" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3253"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop3255" /> + <stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop3257" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3363"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop3365" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop3367" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3860"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop3862" /> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="1" + id="stop3864" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3844"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop3846" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop3848" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3780"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3782" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3784" /> + </linearGradient> + <linearGradient + id="linearGradient3688" + inkscape:collect="always"> + <stop + id="stop3690" + offset="0" + style="stop-color:black;stop-opacity:1;" /> + <stop + id="stop3692" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient3702"> + <stop + id="stop3704" + offset="0" + style="stop-color:black;stop-opacity:0;" /> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0.5" + id="stop3710" /> + <stop + id="stop3706" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient3095" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient3097" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3702" + id="linearGradient3099" + gradientUnits="userSpaceOnUse" + x1="25.058096" + y1="47.027729" + x2="25.058096" + y2="39.999443" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3269" + id="linearGradient3966" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1.2704924,0,0,-1.2704925,-50.516555,48.821273)" + x1="14.548253" + y1="23.127861" + x2="15.581317" + y2="26.866568" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3844" + id="linearGradient3977" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.972973,0,0,1,-88.837838,-1)" + x1="15.470238" + y1="-4.5" + x2="43" + y2="-4.5" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3860" + id="linearGradient3980" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-90,2)" + x1="26.357143" + y1="2.5714288" + x2="29" + y2="10.571428" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3832" + id="radialGradient3985" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.041059,0,0,0.815965,2.689362,5.4046471)" + cx="-65.5" + cy="18.5" + fx="-65.5" + fy="18.5" + r="18.5" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3780" + id="linearGradient3990" + gradientUnits="userSpaceOnUse" + x1="20.134581" + y1="29.676609" + x2="13.635802" + y2="17.022938" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3448" + id="linearGradient3992" + gradientUnits="userSpaceOnUse" + x1="17.696638" + y1="29.965809" + x2="14.499061" + y2="20.717426" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3926" + id="radialGradient4157" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.3157895,0,29.421053)" + cx="24.5" + cy="43" + fx="24.5" + fy="43" + r="9.5" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3253" + id="linearGradient4159" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(90,-1)" + x1="-25.94198" + y1="42.406563" + x2="-25.94198" + y2="45" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3359" + id="linearGradient4161" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-89,2)" + x1="24.5" + y1="34" + x2="24.5" + y2="35" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3363" + id="linearGradient4163" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-69,-4)" + x1="24.857141" + y1="39.5" + x2="25.5" + y2="40" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="-166.8402" + inkscape:cy="39.459165" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="36" + inkscape:window-y="188" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-nodes="true" + inkscape:snap-bbox="false" + objecttolerance="10000" + gridtolerance="10000" + guidetolerance="10000" + showborder="false" + inkscape:showpageshadow="false"> + <inkscape:grid + type="xygrid" + id="grid2561" + empspacing="2" + visible="true" + enabled="true" + spacingx="0.5px" + spacingy="0.5px" /> + </sodipodi:namedview> + <metadata + id="metadata2165"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:title>Presentation</dc:title> + <dc:contributor> + <cc:Agent> + <dc:title>Based of Hylke Bons Work</dc:title> + </cc:Agent> + </dc:contributor> + <cc:license + rdf:resource="http://www.gnu.org/licenses/lgpl.html" /> + <dc:subject> + <rdf:Bag> + <rdf:li>presentation</rdf:li> + <rdf:li>slides</rdf:li> + <rdf:li>powerpoint</rdf:li> + <rdf:li>spreadsheet</rdf:li> + <rdf:li>impress</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(1.1999995,0,0,0.7777773,-4.8,11.944489)" + inkscape:label="Shadow" + id="g3075" + style="opacity:0.13963964;display:inline"> + <g + transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)" + style="opacity:0.4" + id="g3077"> + <rect + style="opacity:1;fill:url(#radialGradient3095);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3079" + width="5" + height="7" + x="38" + y="40" /> + <rect + style="opacity:1;fill:url(#radialGradient3097);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3081" + width="5" + height="7" + x="-10" + y="-47" + transform="scale(-1,-1)" /> + <rect + style="opacity:1;fill:url(#linearGradient3099);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3083" + width="28" + height="7.0000005" + x="10" + y="40" /> + </g> + </g> + <g + id="g4142" + transform="translate(90,0)"> + <path + transform="matrix(1,0,0,0.8333338,-89,7.1666452)" + d="M 34,43 A 9.5,3 0 1 1 15,43 A 9.5,3 0 1 1 34,43 z" + sodipodi:ry="3" + sodipodi:rx="9.5" + sodipodi:cy="43" + sodipodi:cx="24.5" + id="path3924" + style="opacity:0.2837838;fill:url(#radialGradient4157);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="arc" /> + <rect + transform="scale(-1,1)" + ry="1.0000001" + rx="1.0000001" + y="34.5" + x="63.5" + height="9" + width="2.0000002" + id="rect2466" + style="fill:url(#linearGradient4159);fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#999999;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2472" + width="2.0000002" + height="12.888889" + x="63.5" + y="27.611113" + rx="1.0000001" + ry="1.432099" + transform="scale(-1,1)" /> + <g + transform="translate(-21,4)" + id="g3125"> + <path + sodipodi:nodetypes="cc" + style="fill:#d3d7cf;fill-rule:evenodd;stroke:#888a85;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M -49.5,39.5 L -43.5,36" + id="path3107" /> + <path + sodipodi:nodetypes="cc" + style="fill:#d3d7cf;fill-rule:evenodd;stroke:#888a85;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M -37.5,39.5 L -43.5,36" + id="path3109" /> + <path + sodipodi:nodetypes="cc" + style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" + d="M -49.5,39.5 L -43.5,36" + id="path3111" /> + <path + sodipodi:nodetypes="cc" + style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" + d="M -37.5,39.5 L -43.5,36" + id="path3113" /> + <rect + style="fill:#d3d7cf;fill-opacity:1;stroke:#777974;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3115" + width="4" + height="3.0000002" + x="-45.5" + y="34.5" + rx="1.5000001" + ry="1.5000001" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.58113861;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path3119" + sodipodi:cx="20.178572" + sodipodi:cy="44.67857" + sodipodi:rx="1.25" + sodipodi:ry="0.96428573" + d="M 21.428572,44.67857 A 1.25,0.96428573 0 1 1 18.928572,44.67857 A 1.25,0.96428573 0 1 1 21.428572,44.67857 z" + transform="matrix(0.5767767,0,0,0.7476738,-61.13853,6.0950058)" /> + <rect + style="fill:url(#linearGradient4163);fill-opacity:1;stroke:none" + id="rect3121" + width="3" + height="2" + x="-45" + y="35" + rx="1.1250001" + ry="1" /> + </g> + </g> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.58113861;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path4170" + sodipodi:cx="20.178572" + sodipodi:cy="44.67857" + sodipodi:rx="1.25" + sodipodi:ry="0.96428573" + d="M 21.428572,44.67857 A 1.25,0.96428573 0 1 1 18.928572,44.67857 A 1.25,0.96428573 0 1 1 21.428572,44.67857 z" + transform="matrix(0.5767767,0,0,0.7476738,19.86147,10.095006)" /> + <g + id="g4173" + transform="translate(90,0)"> + <rect + ry="1.0573044" + rx="1.0195435" + y="6.5" + x="-84.5" + height="28" + width="38" + id="rect2484" + style="fill:url(#radialGradient3985);fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccccccc" + id="path2488" + d="M -82.59375,7.4999999 C -83.123321,7.4999999 -83.5,7.7440554 -83.5,8.0871703 L -83.5,32.829314 C -83.5,33.172429 -83.123321,33.416484 -82.59375,33.416484 L -48.40625,33.416484 C -47.87668,33.416484 -47.5,33.172428 -47.5,32.829314 L -47.5,8.0871703 C -47.5,7.7440557 -47.876682,7.4999999 -48.40625,7.4999999 L -82.59375,7.4999999 z" + style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1" /> + <rect + y="7" + x="-85" + height="2" + width="39" + id="rect2490" + style="opacity:0.11711713;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + ry="1.5" + rx="1.5833334" + y="4.5" + x="-85.5" + height="3" + width="40" + id="rect2492" + style="fill:#babdb6;fill-opacity:1;stroke:url(#linearGradient3980);stroke-width:0.99999982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + ry="0.5" + rx="0.48648649" + transform="scale(1,-1)" + y="-6" + x="-84" + height="1" + width="37" + id="rect2494" + style="fill:url(#linearGradient3977);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + ry="0.99999988" + rx="0.99999988" + transform="matrix(7.3523151e-8,1,1,-1.8380792e-8,0,0)" + y="-85" + x="5.0000005" + height="1.9999998" + width="1.9999999" + id="rect2496" + style="fill:#ffffff;fill-opacity:1;stroke:none" /> + <rect + ry="1.0000001" + rx="0.99999988" + transform="matrix(7.3523171e-8,1,1,-1.8380787e-8,0,0)" + y="-48" + x="5.000001" + height="2.0000002" + width="1.9999999" + id="rect2498" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + transform="translate(-88,0)" + style="opacity:0.12108112" + id="g2502"> + <path + sodipodi:type="arc" + style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.837834;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path2504" + sodipodi:cx="16.515995" + sodipodi:cy="22.291618" + sodipodi:rx="4.6972094" + sodipodi:ry="4.6972094" + d="M 21.213204,22.291618 A 4.6972094,4.6972094 0 1 1 16.554686,17.594568 L 16.515995,22.291618 z" + transform="matrix(1.2704924,0,0,1.2704925,-5.483446,-4.8213349)" + sodipodi:start="0" + sodipodi:end="4.7206261" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.06400001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" + d="M 17.527085,15.532232 C 21.071259,15.234682 23.763908,17.873475 23.467706,21.527025 L 17.499999,21.49994 L 17.527085,15.532232 z" + id="path2506" + sodipodi:nodetypes="cccc" /> + </g> + <path + sodipodi:end="4.7206261" + sodipodi:start="0" + transform="matrix(1.2704924,0,0,1.2704925,-94.483446,-5.8213349)" + d="M 21.213204,22.291618 A 4.6972094,4.6972094 0 1 1 16.554686,17.594568 L 16.515995,22.291618 z" + sodipodi:ry="4.6972094" + sodipodi:rx="4.6972094" + sodipodi:cy="22.291618" + sodipodi:cx="16.515995" + id="path2508" + style="fill:url(#linearGradient3992);fill-opacity:1;stroke:#af4e00;stroke-width:0.62967712;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="cccc" + id="path2510" + d="M -71.472915,14.532232 C -67.928741,14.234682 -65.236092,16.873475 -65.532294,20.527025 L -71.500001,20.49994 L -71.472915,14.532232 z" + style="fill:#729fcf;fill-opacity:1;stroke:#3465a4;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + transform="matrix(1.2704924,0,0,1.2704925,-94.483446,-5.8213349)" + d="M 15.75,18.5625 C 13.977674,18.92812 12.625,20.405564 12.625,22.28125 C 12.625,24.430908 14.381592,26.187501 16.53125,26.1875 C 18.396407,26.1875 19.873194,24.851202 20.25,23.09375 L 16.53125,23.09375 C 16.315632,23.094172 16.108724,23.008705 15.956259,22.856241 C 15.803795,22.703776 15.718328,22.496868 15.71875,22.28125 L 15.75,18.5625 z" + id="path2512" + style="fill:none;fill-opacity:1;stroke:url(#linearGradient3990);stroke-width:0.83783406;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:original="M 16.53125 17.59375 C 13.93839 17.59375 11.8125 19.68839 11.8125 22.28125 C 11.8125 24.87411 13.93839 27.000001 16.53125 27 C 19.12411 27 21.218751 24.87411 21.21875 22.28125 L 16.53125 22.28125 L 16.5625 17.59375 C 16.548904 17.593638 16.544847 17.593749 16.53125 17.59375 z " + inkscape:radius="-0.81083226" + sodipodi:type="inkscape:offset" /> + <path + sodipodi:nodetypes="cccc" + id="path2514" + d="M -66.536286,19.497742 C -66.692364,17.568713 -68.253498,15.778125 -70.447405,15.561265 L -70.487107,19.480837 L -66.536286,19.497742 z" + style="opacity:0.3918919;fill:none;fill-opacity:1;stroke:url(#linearGradient3966);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + ry="0.5" + rx="0.3888889" + y="23" + x="-59" + height="1" + width="7" + id="rect2516" + style="fill:#babdb6;fill-opacity:1;stroke:none" /> + <rect + ry="0.5" + rx="0.5" + y="21" + x="-59" + height="1" + width="9" + id="rect2518" + style="fill:#babdb6;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + ry="0.5" + rx="0.5" + y="19" + x="-59" + height="1" + width="9" + id="rect2520" + style="fill:#555753;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + ry="0.5" + rx="0.44444445" + y="14" + x="-61" + height="1" + width="8" + id="rect2522" + style="fill:#babdb6;fill-opacity:1;stroke:none" /> + <rect + ry="0.5" + rx="0.5" + y="12" + x="-61" + height="1" + width="9" + id="rect2524" + style="fill:#555753;fill-opacity:1;stroke:none" /> + <path + sodipodi:nodetypes="ccc" + id="path2526" + d="M -67,28.5 L -58.461826,28.510369 L -58.528544,25.488699" + style="fill:none;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccc" + id="path2528" + d="M -65.5,14.5 L -65.5,12.5 L -62.5,12.5" + style="fill:none;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + style="opacity:0.11711713;fill:url(#linearGradient4161);fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect2482" + width="3" + height="2" + x="-66" + y="35" /> + </g> + </g> +</svg> diff --git a/data/org.mate.Evince.gschema.xml.in b/data/org.mate.Evince.gschema.xml.in new file mode 100644 index 00000000..0ed50e9d --- /dev/null +++ b/data/org.mate.Evince.gschema.xml.in @@ -0,0 +1,51 @@ +<schemalist> + + <enum id="org.mate.Evince.SizingMode"> + <value nick="best-fit" value="0"/> + <value nick="fit-width" value="1"/> + <value nick="free" value="2"/> + </enum> + + <schema id="org.mate.Evince" path="/org/mate/evince/" gettext-domain="evince"> + <key name="override-restrictions" type="b"> + <default>true</default> + <_summary>Override document restrictions</_summary> + <_description>Override document restrictions, like restriction to copy or to print.</_description> + </key> + <child name="default" schema="org.mate.Evince.Default"/> + </schema> + + <schema id="org.mate.Evince.Default" path="/org/mate/evince/default/" gettext-domain="evince"> + <key name="show-toolbar" type="b"> + <default>true</default> + </key> + <key name="show-sidebar" type="b"> + <default>true</default> + </key> + <key name="window-ratio" type="(dd)"> + <default>(0., 0.)</default> + </key> + <key name="sizing-mode" enum="org.mate.Evince.SizingMode"> + <default>'fit-width'</default> + </key> + <key name="inverted-colors" type="b"> + <default>false</default> + </key> + <key name="continuous" type="b"> + <default>true</default> + </key> + <key name="dual-page" type="b"> + <default>false</default> + </key> + <key name="fullscreen" type="b"> + <default>false</default> + </key> + <key name="sidebar-page" type="s"> + <default>'links'</default> + </key> + <key name="sidebar-size" type="i"> + <default>132</default> + </key> + </schema> + +</schemalist> diff --git a/data/org.mate.evince.Daemon.service.in b/data/org.mate.evince.Daemon.service.in new file mode 100644 index 00000000..ba7bd537 --- /dev/null +++ b/data/org.mate.evince.Daemon.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.mate.evince.Daemon +Exec=@libexecdir@/evinced diff --git a/evince-document.h b/evince-document.h new file mode 100644 index 00000000..3e38c25b --- /dev/null +++ b/evince-document.h @@ -0,0 +1,62 @@ +/* + * Copyright Ā© 2009 Christian Persch + * + * This program 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 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 Lesser + * General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EVINCE_DOCUMENT_H +#define EVINCE_DOCUMENT_H + +#define __EV_EVINCE_DOCUMENT_H_INSIDE__ + +#include <libdocument/ev-annotation.h> +#include <libdocument/ev-async-renderer.h> +#include <libdocument/ev-attachment.h> +#include <libdocument/ev-backends-manager.h> +#include <libdocument/ev-document-attachments.h> +#include <libdocument/ev-document-factory.h> +#include <libdocument/ev-document-find.h> +#include <libdocument/ev-document-fonts.h> +#include <libdocument/ev-document-forms.h> +#include <libdocument/ev-document.h> +#include <libdocument/ev-document-images.h> +#include <libdocument/ev-document-info.h> +#include <libdocument/ev-document-layers.h> +#include <libdocument/ev-document-print.h> +#include <libdocument/ev-document-links.h> +#include <libdocument/ev-document-misc.h> +#include <libdocument/ev-document-security.h> +#include <libdocument/ev-document-thumbnails.h> +#include <libdocument/ev-document-transition.h> +#include <libdocument/ev-document-type-builtins.h> +#include <libdocument/ev-file-exporter.h> +#include <libdocument/ev-file-helpers.h> +#include <libdocument/ev-form-field.h> +#include <libdocument/ev-image.h> +#include <libdocument/ev-init.h> +#include <libdocument/ev-layer.h> +#include <libdocument/ev-link-action.h> +#include <libdocument/ev-link-dest.h> +#include <libdocument/ev-link.h> +#include <libdocument/ev-mapping-list.h> +#include <libdocument/ev-page.h> +#include <libdocument/ev-render-context.h> +#include <libdocument/ev-selection.h> +#include <libdocument/ev-transition-effect.h> +#include <libdocument/ev-version.h> + +#undef __EV_EVINCE_DOCUMENT_H_INSIDE__ + +#endif /* !EVINCE_DOCUMENT_H */ diff --git a/evince-document.pc.in b/evince-document.pc.in new file mode 100644 index 00000000..025710cc --- /dev/null +++ b/evince-document.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@/evince/@EV_API_VERSION@ +backenddir=@libdir@/evince/@EV_BINARY_VERSION@/backends + +Name: Evince Document +Description: MATE document viewer backend library +Version: @VERSION@ +Requires: gio-2.0 >= @GLIB_REQUIRED@ gtk+-@GTK_API_VERSION@ >= @GTK_REQUIRED@ +Libs: -L${libdir} -levdocument +Cflags: -I${includedir} diff --git a/evince-view.h b/evince-view.h new file mode 100644 index 00000000..8b8d2868 --- /dev/null +++ b/evince-view.h @@ -0,0 +1,34 @@ +/* +* Copyright Ā© 2009 Christian Persch + * + * This program 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 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 Lesser + * General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EVINCE_VIEW_H +#define EVINCE_VIEW_H + +#define __EV_EVINCE_VIEW_H_INSIDE__ + +#include <libview/ev-job-scheduler.h> +#include <libview/ev-jobs.h> +#include <libview/ev-document-model.h> +#include <libview/ev-print-operation.h> +#include <libview/ev-view.h> +#include <libview/ev-view-type-builtins.h> +#include <libview/ev-stock-icons.h> + +#undef __EV_EVINCE_VIEW_H_INSIDE__ + +#endif /* !EVINCE_VIEW_H */ diff --git a/evince-view.pc.in b/evince-view.pc.in new file mode 100644 index 00000000..c1077bb3 --- /dev/null +++ b/evince-view.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@/evince/@EV_API_VERSION@ + +Name: Evince View +Description: MATE document viewer view library +Version: @VERSION@ +Requires: evince-document-@EV_API_VERSION@ = @VERSION@ gthread-2.0 +Libs: -L${libdir} -levview +Cflags: -I${includedir} diff --git a/help/C/evince.xml b/help/C/evince.xml new file mode 100644 index 00000000..90e9ce2f --- /dev/null +++ b/help/C/evince.xml @@ -0,0 +1,774 @@ +<?xml version="1.0"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ + <!ENTITY legal SYSTEM "legal.xml"> + <!ENTITY appversion "0.2"> + <!ENTITY manrevision "1.1"> + <!ENTITY date "April 2008"> + <!ENTITY app "<application>Evince Document Viewer</application>"> + <!ENTITY appname "Evince Document Viewer"> +]> + +<!-- + (Do not remove this comment block.) + Maintained by the MATE Documentation Project + http://developer.mate.org/projects/gdp + Template version: 2.0 beta + Template last modified Apr 11, 2002 +--> + +<!-- =============Document Header ============================= --> +<article id="index" lang="en"> +<!-- please do not change the id; for translations, change lang to --> +<!-- appropriate code --> + <articleinfo> + <title>&appname; Manual </title> + <abstract role="description"> + <para> + The Evince Document Viewer application enables you to view documents of various formats like Portable + Document Format (PDF) files and PostScript files + </para> + </abstract> + <copyright> + <year>2005</year> + <holder>Nickolay V. Shmyrev</holder> + </copyright> + <copyright> + <year>2004</year> + <holder>Sun Microsystems</holder> + </copyright> + +<!-- translators: uncomment this: + <copyright> + <year>2002</year> + <holder>ME-THE-TRANSLATOR (Latin translation)</holder> + </copyright> +--> + + <publisher> + <publishername> MATE Documentation Project </publishername> + </publisher> + + &legal; + <!-- This file contains link to license for the documentation (GNU FDL), and + other legal stuff such as "NO WARRANTY" statement. Please do not change + any of this. --> + + <authorgroup> + <author> + <firstname>Sun</firstname> + <surname>MATE Documentation Team</surname> + <affiliation><orgname>Sun Microsystems</orgname></affiliation> + </author> + <author role="maintainer"> + <firstname>Nickolay V. </firstname> + <surname>Shmyrev</surname> + <affiliation> + <orgname>MATE Documentation Project</orgname> + <address> <email>nshmyrev@yandex.ru</email> </address> + </affiliation> + </author> + +<!-- This is appropriate place for other contributors: translators, + maintainers, etc. Commented out by default. + <othercredit role="translator"> + <firstname>Latin</firstname> + <surname>Translator 1</surname> + <affiliation> + <orgname>Latin Translation Team</orgname> + <address> <email>translator@gnome.org</email> </address> + </affiliation> + <contrib>Latin translation</contrib> + </othercredit> +--> + </authorgroup> + + <revhistory> + <revision> + <revnumber>&appname; Manual V1.1</revnumber> + <date>2008-04-05</date> + <revdescription> + <para role="author">Niels Giesen</para> + <para role="author">Claude Paroz</para> + <para role="publisher">MATE Documentation Project</para> + </revdescription> + </revision> + <revision> + <revnumber>&appname; Manual V1.0</revnumber> + <date>2005-04-06</date> + <revdescription> + <para role="author">Nickolay V. Shmyrev</para> + <para role="publisher">MATE Documentation Project</para> + </revdescription> + </revision> + </revhistory> + + <releaseinfo>This manual describes version &appversion; of &appname; + </releaseinfo> + <legalnotice> + <title>Feedback</title> + <para>To report a bug or make a suggestion regarding the &appname; application or this manual, follow the directions in the <ulink url="ghelp:mate-feedback" type="help">MATE Feedback Page</ulink>. + </para> +<!-- Translators may also add here feedback address for translations --> + </legalnotice> + </articleinfo> + + <indexterm zone="index"> + <primary>&appname;</primary> + </indexterm> + <indexterm zone="index"> + <primary>evince</primary> + </indexterm> + +<!-- ============= Document Body ============================= --> +<!-- ============= Introduction ============================== --> +<!-- Use the Introduction section to give a brief overview of what + the application is and what it does. --> + <sect1 id="evince-introduction"> + <title>Introduction</title> + <para>The &app; application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. &app; follows Freedesktop.org and MATE standards to provide integration with Desktop Environment. + </para> + </sect1> + +<!-- =========== Getting Started ============================== --> + + <sect1 id="evince-getting-started"> + <title>Getting Started</title> + + <sect2 id="evince-start"> + <title>To Start &appname;</title> + <para>&app; starts when you open a document such as a PDF or PostScript file.</para> + <para>Alternatively, you can start &app; from the command line, with the command: <command>evince</command>.</para> + + </sect2> + + <sect2 id="evince-when-start"> + <title>When You Start &appname;</title> + <para>When you start &app;, the following window is displayed.</para> + + <!-- ==== Figure ==== --> + <figure id="mainwindow-fig"> + <title>&appname; Window</title> + <screenshot> + <mediaobject> + <imageobject><imagedata + fileref="figures/evince_start_window.png" format="PNG"/> + </imageobject> + <textobject> + <phrase>Shows &appname; main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus. </phrase> + </textobject> + </mediaobject> + </screenshot> + </figure> + + <para>The &app; window contains the following elements: + </para> + <variablelist> + <varlistentry> + <term>Menubar</term> + <listitem> + <para>The menus on the menubar contain all of the commands that you need to work with documents in &app;.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Toolbar</term> + <listitem> + <para>The toolbar contains a subset of the commands that you can access from the menubar.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Display area</term> + <listitem> + <para>The display area displays the document.</para> + </listitem> + </varlistentry> + </variablelist> + + <para> + In &app;, you can perform the same action in several ways. For example, you can open a document in the following ways: + <informaltable frame="all"> + <tgroup cols="2" colsep="1" rowsep="1"> + <colspec colname="COLSPEC0" colwidth="50*"/> + <colspec colname="COLSPEC1" colwidth="50*"/> + <thead> + <row valign="top"> + <entry colname="COLSPEC0"> + <para>UI Component</para></entry> + <entry colname="COLSPEC1" align="left"> + <para>Action</para></entry> + </row> + </thead> + <tbody> + <row valign="top"> + <entry><para>Window</para></entry> + <entry> + <itemizedlist> + <listitem> + <para>Drag a file into the &app; window from another application such as a file manager.</para> + </listitem> + <listitem> + <para>Double-click on the file name in the file manager</para> + </listitem> + </itemizedlist> + </entry> + </row> + <row valign="top"> + <entry><para>Menubar</para></entry> + <entry><para>Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>.</para> +</entry> + </row> + <row valign="top"> + <entry><para>Shortcut keys</para></entry> + <entry><para>Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>.</para></entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + <para> + This manual documents functionality from the menubar. + </para> + </sect2> + </sect1> + +<!-- ================ Usage ================================ --> + <sect1 id="evince-usage"> + <title>Usage</title> + + <!-- ================ Usage Subsection ================================ --> + <sect2 id="evince-open-file"> + <title>To Open A Document</title> + <para>To open a document, perform the following steps:</para> + <orderedlist> + <listitem> + <para> + Choose <menuchoice> <guimenu>File</guimenu><guimenuitem>Open</guimenuitem> </menuchoice>. </para> + </listitem> + <listitem> + <para> + In the <guilabel>Open Document</guilabel> dialog, select the file you want to open. + </para> + </listitem> + <listitem> + <para> + Click <guibutton>Open</guibutton>. &app; displays the name of the document in the titlebar of the window. + </para> + </listitem> + </orderedlist> + <para> + To open another document, choose <menuchoice> <guimenu>File</guimenu><guimenuitem>Open</guimenuitem> </menuchoice> again. &app; opens each file in a new window. + </para> + <para> + If you try to open a document with format that &app; does not recognize, the application displays an error message. + </para> + </sect2> + + <sect2 id="evince-navigate-file"> + <title>To Navigate Through a Document</title> + <para>You can navigate through a file as follows:</para> + <itemizedlist> + <listitem> + <para>To view the next page, choose <menuchoice> <guimenu>Go</guimenu> <guimenuitem>Next Page</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para>To view the previous page, choose <menuchoice> <guimenu>Go</guimenu> <guimenuitem>Previous Page</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para>To view the first page in the document, choose <menuchoice> <guimenu>Go</guimenu> <guimenuitem>First Page</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para>To view the last page in the document, choose <menuchoice> <guimenu>Go</guimenu> <guimenuitem>Last Page</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para>To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>.</para> + </listitem> + </itemizedlist> + </sect2> + + <!-- ================ Usage Subsection ================================ --> + <sect2 id="evince-scroll-page"> + <title>To Scroll a Page</title> + <para>To display the page contents that are not currently displayed in the display area, use the following methods:</para> + <itemizedlist> + <listitem> + <para>Use the arrow keys or space key on the keyboard.</para> + </listitem> + <listitem> + <para>Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window.</para> + </listitem> + <listitem> + <para>Use the scrollbars on the window.</para> + </listitem> + </itemizedlist> + </sect2> + + <!-- ================ Usage Subsection ================================ --> + <sect2 id="evince-manipulate-zoom-factor"> + <title>To Change the Page Size</title> + <para> + You can use the following methods to resize a page in the &app; display area: + </para> + <itemizedlist> + <listitem> + <para> + To increase the page size, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Zoom In</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para> + To decrease the page size, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Zoom Out</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para> + To resize a page to have the same width as the &app; display area, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Fit page width</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para> + To resize a page to fit within the &app; display area, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Best Fit</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para> + To resize the &app; window to have the same width and height as the screen, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Full Screen</guimenuitem> </menuchoice>. To resize the &app; window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button. + </para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="evince-view-pages"> + <title>To View Pages or Document Structure</title> + <para>To view bookmarks or pages, perform the following steps: + </para> + <orderedlist> + <listitem> + <para> + Choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Sidebar</guimenuitem> </menuchoice> or press <keycap>F9</keycap>. + </para> + </listitem> + <listitem> + <para> + Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane. + </para> + </listitem> + <listitem> + <para> + Use the side-pane scrollbars to display the required item or page in the side pane. + </para> + </listitem> + <listitem> + <para>Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document.</para> + </listitem> + </orderedlist> + </sect2> + + <sect2 id="evince-view-properties"> + <title>To View the Properties of a Document</title> + <para>To view the properties of a document, choose + <menuchoice> + <guimenu>File</guimenu> + <guimenuitem>Properties</guimenuitem> + </menuchoice>. + </para> + <para> + The <guilabel>Properties</guilabel> dialog displays all information available + </para> + </sect2> + + <sect2 id="evince-print-file"> + <title>To Print a Document</title> + <para> + To print a Document, choose <menuchoice> <guimenu>File</guimenu> <guimenuitem>Print</guimenuitem> </menuchoice>. + </para> + <note> + <para> + If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend="evince-password"/> for more information about password-protected files. + </para> + </note> + <para> + The <guilabel>Print</guilabel> dialog has the following tabbed sections: + </para> + <itemizedlist> + <listitem> + <para> + <link linkend="print-dialog-job">Job</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="print-dialog-printer">Printer</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="print-dialog-paper">Paper</link> + </para> + </listitem> + </itemizedlist> + + <sect3 id="print-dialog-job"> + <title>Job</title> + <variablelist> + <varlistentry> <term><guilabel>Print range</guilabel> </term> + <listitem> + <para>Select one of the following options to determine how many pages to print:</para> + <itemizedlist> + <listitem> + <para><guilabel>All</guilabel></para> + <para>Select this option to print all of the pages in the document.</para> + </listitem> + <listitem> + <para><guilabel>Pages From</guilabel></para> + <para>Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range. + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect3> + + <sect3 id="print-dialog-printer"> + <title>Printer</title> + <variablelist> + <varlistentry> <term><guilabel>Printer</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the printer to which you want to print the document.</para> + <note> + <para> + The <guilabel>Create a PDF document</guilabel> option is not supported in this version of &app;. + </para> + </note> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Settings</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the printer settings. + </para> + <para>To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Location</guilabel> </term> + <listitem> + <para> + Use this drop-down list to select one of the following print destinations: + </para> + <variablelist> + <varlistentry> + <term><guilabel>CUPS</guilabel></term> + <listitem> + <para> + Print the document to a CUPS printer. + </para> + <note> + <para> + If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list. + </para> + </note> + </listitem> + </varlistentry> + <varlistentry> + <term><guilabel>lpr</guilabel></term> + <listitem> + <para> + Print the document to a printer. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><guilabel>File</guilabel></term> + <listitem> + <para> + Print the document to a PostScript file. + </para> + <para> + Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Custom</guilabel></term> + <listitem> + <para> + Use the specified command to print the document. + </para> + <para> + Type the name of the command in the text box. Include all command-line arguments. + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>State</guilabel> </term> + <listitem> + <para>This functionality is not supported in this version of &app;. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Type</guilabel> </term> + <listitem> + <para>This functionality is not supported in this version of &app;. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Comment</guilabel> </term> + <listitem> + <para>This functionality is not supported in this version of &app;. + </para> + </listitem> + </varlistentry> + </variablelist> + </sect3> + + <sect3 id="print-dialog-paper"> + <title>Paper</title> + <variablelist> + <varlistentry> <term><guilabel>Paper size</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the size of the paper to which you want to print the document.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Width</guilabel> </term> + <listitem> + <para>Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Height</guilabel> </term> + <listitem> + <para>Use this spin box to specify the height of the paper.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Feed orientation</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the orientation of the paper in the printer.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Page orientation</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the page orientation.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Layout</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area.</para> + </listitem> + </varlistentry> + <varlistentry> <term><guilabel>Paper Tray</guilabel> </term> + <listitem> + <para>Use this drop-down list to select the paper tray. + </para> + </listitem> + </varlistentry> + </variablelist> + </sect3> + </sect2> + + <!-- ================ Usage Subsection ================================ --> + <sect2 id="evince-copy-file"> + <title>To Copy a Document</title> + <para>To copy a file, perform the following steps: + </para> + <orderedlist> + <listitem> + <para> + Choose <menuchoice> <guimenu>File</guimenu> <guimenuitem>Save a Copy</guimenuitem> </menuchoice>. + </para> + </listitem> + <listitem> + <para> + Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog. + </para> + <para> + If necessary, specify the location of the copied document. By default, copies are saved in your home directory. + </para> + </listitem> + <listitem> + <para> + Click <guibutton>Save</guibutton>. + </para> + </listitem> + </orderedlist> + </sect2> + + <!-- this id must be kept in sync with evince-persist-file.cc/evince-persist-stream.cc --> + <sect2 id="evince-password"> + <title>To Work With Password-Protected Documents</title> + <para> + An author can use the following password levels to protect a document: + </para> + <itemizedlist> + <listitem> + <para>User password that allows others only to read the document. + </para> + </listitem> + <listitem> + <para>Master password that allows others to perform additional actions, such as print the document. + </para> + </listitem> + </itemizedlist> + <para> + When you try to open a password-protected document, &app; displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>. + </para> + </sect2> + + <!-- ================ Usage Subsection ================================ --> + <sect2 id="evince-close-file"> + <title>To Close a Document</title> + <para>To close a document, choose <menuchoice> <guimenu>File</guimenu> <guimenuitem>Close</guimenuitem> </menuchoice>. + </para> + <para> + If the window is the last &app; window open, the application exits. + </para> + </sect2> + + </sect1> + + <!-- ================ Shortcuts ================================ --> + <sect1 id="evince-shortcuts"> + <title>Shortcuts</title> + <para>Below is a list of all shortcuts present in &app;:</para> + <informaltable frame="all"> + <tgroup cols="2" colsep="1" rowsep="1"> + <colspec colname="COLSPEC0" colwidth="50*"/> + <colspec colname="COLSPEC1" colwidth="50*"/> + <thead> + <row valign="top"> + <entry colname="COLSPEC0"> + <para>Shortcut</para></entry> + <entry colname="COLSPEC1" align="left"> + <para>Action</para></entry> + </row> + </thead> + <tbody> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo></para></entry> + <entry><para>Open an existing document</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>S</keycap></keycombo></para></entry> + <entry><para>Save a copy of the current document</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>P</keycap></keycombo></para></entry> + <entry><para>Print document</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>W</keycap></keycombo></para></entry> + <entry><para>Close window</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo></para></entry> + <entry><para>Copy selection</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>A</keycap></keycombo></para></entry> + <entry><para>Select All</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo></para> + <para><keycap>/</keycap> (slash)</para> + </entry> + <entry><para>Find a word or phrase in the document</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Ctrl</keycap><keycap>G</keycap></keycombo></para> + <para><keycap>F3</keycap></para> + </entry> + <entry><para>Find next</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)</para> + <para><keycap>+</keycap></para> + <para><keycap>=</keycap></para> + </entry> + <entry><para>Zoom in</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)</para> + <para><keycap>-</keycap></para> + </entry> + <entry><para>Zoom out</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>R</keycap></keycombo></para></entry> + <entry><para>Reload the document</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycap>Page Up</keycap></para></entry> + <entry><para>Go to the previous page</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>Page Down</keycap></para></entry> + <entry><para>Go to the next page</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycap>Space</keycap></para> + <para><keycombo><keycap>Shift</keycap><keycap>Backspace</keycap></keycombo></para> + <para><keycap>Return</keycap></para> + </entry> + <entry><para>Scroll forward</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Shift</keycap><keycap>Space</keycap></keycombo></para> + <para><keycap>Backspace</keycap></para> + <para><keycombo><keycap>Shift</keycap><keycap>Return</keycap></keycombo></para> + </entry> + <entry><para>Scroll backward</para></entry> + </row> + <row valign="middle"> + <entry> + <para><keycombo><keycap>Shift</keycap><keycap>Page Up</keycap></keycombo></para></entry> + <entry><para>Go a bunch of pages up</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Shift</keycap><keycap>Page Down</keycap></keycombo></para></entry> + <entry><para>Go a bunch of pages down</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>Home</keycap></para></entry> + <entry><para>Go to the first page</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>End</keycap></para></entry> + <entry><para>Go to the last page</para></entry> + </row> + <row valign="middle"> + <entry><para><keycombo><keycap>Ctrl</keycap><keycap>L</keycap></keycombo></para></entry> + <entry><para>Go to page by number or label</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>F1</keycap></para></entry> + <entry><para>Help</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>F5</keycap></para></entry> + <entry><para>Run document as presentation</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>F9</keycap></para></entry> + <entry><para>Show or hide the side pane</para></entry> + </row> + <row valign="middle"> + <entry><para><keycap>F11</keycap></para></entry> + <entry><para>Toggle fullscreen mode</para></entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect1> + +</article> diff --git a/help/C/figures/evince_start_window.png b/help/C/figures/evince_start_window.png new file mode 100644 index 00000000..cc57ee5a Binary files /dev/null and b/help/C/figures/evince_start_window.png differ diff --git a/help/C/legal.xml b/help/C/legal.xml new file mode 100644 index 00000000..acb0b403 --- /dev/null +++ b/help/C/legal.xml @@ -0,0 +1,76 @@ + <legalnotice id="legalnotice"> + <para> + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License (GFDL), Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, + no Front-Cover Texts, and no Back-Cover Texts. You can find + a copy of the GFDL at this <ulink type="help" + url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS + distributed with this manual. + </para> + <para> This manual is part of a collection of MATE manuals + distributed under the GFDL. If you want to distribute this + manual separately from the collection, you can do so by + adding a copy of the license to the manual, as described in + section 6 of the license. + </para> + + <para> + Many of the names used by companies to distinguish their + products and services are claimed as trademarks. Where those + names appear in any MATE documentation, and the members of + the MATE Documentation Project are made aware of those + trademarks, then the names are in capital letters or initial + capital letters. + </para> + + <para> + DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED + UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE + WITH THE FURTHER UNDERSTANDING THAT: + + <orderedlist> + <listitem> + <para>DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR + IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES + THAT THE DOCUMENT OR MODIFIED VERSION OF THE + DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR + A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE + RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE + OF THE DOCUMENT OR MODIFIED VERSION OF THE + DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR + MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY + CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY + SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS + LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED + VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER + EXCEPT UNDER THIS DISCLAIMER; AND + </para> + </listitem> + <listitem> + <para>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL + THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), + CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, + INITIAL WRITER, ANY CONTRIBUTOR, OR ANY + DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION + OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH + PARTIES, BE LIABLE TO ANY PERSON FOR ANY + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER + INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS + OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR + MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR + LOSSES ARISING OUT OF OR RELATING TO USE OF THE + DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, + EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF + THE POSSIBILITY OF SUCH DAMAGES. + </para> + </listitem> + </orderedlist> + </para> + </legalnotice> + diff --git a/help/ChangeLog b/help/ChangeLog new file mode 100644 index 00000000..851db786 --- /dev/null +++ b/help/ChangeLog @@ -0,0 +1,362 @@ +2009-03-28 Simos Xenitellis <simos@gnome.org> + + * el/figures/*.png: Added figures by Fotis Tsamis. + +2009-03-11 Andre Klapper <a9016009@gmx.de> + + * cs/cs.po: Updated Czech translation by Lucas Lommer. + +2009-03-09 Andre Klapper <a9016009@gmx.de> + + * cs/cs.po: + * Makefile.am: Added Czech translation by Martin Picek. + +2009-03-02 Philip Withnall <philip@tecnocode.co.uk> + + * en_GB/en_GB.po: Updated British English translation. + +2009-02-17 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu/figures/: Added image in Basque language. Images are: + evince_start_window.png + +2009-02-16 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu/eu.po: Added Basque translation. + * Makefile.am: Added 'eu' to DOC_LINGUAS. + +2008-12-07 Leonardo Ferreira Fontenelle <leonardof@gnome.org> + + * pt_BR/pt_BR.po: Fixed terminology ("spin box") and credits in the + Brazilian Portuguese translation. Contributed by Vladimir Melo. + +2008-12-07 Leonardo Ferreira Fontenelle <leonardof@gnome.org> + + * pt_BR/pt_BR.po: Updated Brazilian Portuguese translation. Contributed + by Daniel S. Koda and reviewed by Vladimir Melo. + +2008-09-23 Gil Forcada <gforcada@gnome.org> + + * ca/ca.po: Updated Catalan documentation. + +2008-09-20 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Milo Casagrande. + +2008-08-29 Mario BlƤttermann <mariobl@svn.mate.org> + + * de/de.po: Updated german translation + +2008-07-27 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru/ru.po: Updated Russian translation by + Timur Salikhov <Tima-S@yandex.ru>. + +2008-07-22 Daniel Nylander <po@danielnylander.se> + + * sv/sv.po: Updated Swedish translation. + +2008-07-07 Timo Jyrinki <timo.jyrinki@iki.fi> + + * fi/fi.po: Updated Finnish translation + +2008-06-08 Jan Arne Petersen <jpetersen@jpetersen.org> + + * Makefile.am: + * de/de.po: + * de/figures/evince_start_window.png: Added German translation by + Mario BlƤttermann <mario.blaettermann@t-online.de>. + +2008-04-07 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es/es.po: Updated Spanish translation. + +2008-04-05 Claude Paroz <claude@2xlibre.net> + + * C/evince.xml: Added Shortcuts section. Patch by Niels Giesen. + * fr/fr.po: Updated Franch translation. + +2008-03-04 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es/es.po: Updated Spanish translation. + * es/figures/*.png: Updated Spanish screenshot. + +2008-03-03 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR/pt_BR.po: Minor fix in Brazilian Portuguese translation to + match the GUI. + +2008-02-21 Funda Wang <fundawang@gmail.com> + + * Makefile.am: Add zh_CN to DOC_LINGUAS. + +2008-02-12 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es/es.po: Updated Spanish translation. + +2007-10-05 Jonh Wendell <jwendell@gnome.org> + + * pt_BR/pt_BR.po: Added Brazilian Portuguese translation, + by Hugo Doria and Pedro de Medeiros + * Makefile.am: Added pt_BR to DOC_LINGUAS + +2007-09-16 Yannig Marchegay <yannig@marchegay.org> + + * po/oc.po: Updated Occitan translation + +2007-09-11 Luca Ferretti <elle.uca@libero.it> + + * it/it.po: Updated Italian translation. + * it/figures/evince_start_window.png: Updated to new MATE + default theme. + +2007-08-22 Satoru SATOH <ss@mate.gr.jp> + + * ja/ja.po: Added Japanese help translation. + * ja/figures/evince_start_window.png: Added evince screenshot. + +2007-08-14 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * uk/uk.po: + +2007-07-31 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca/figues: renamed to ca/figures. + +2007-04-03 Claudio Saavedra <csaavedra@alumnos.utalca.cl> + + * es/es.po: Updated Spanish translation by Jorge GonzĆ”lez. + +2007-03-15 Luca Ferretti <elle.uca@libero.it> + + * it.po: Restore Italian translation, it seems the last time + I uploaded the po template file :-( + +2007-03-12 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk/uk.po: Updated Ukrainian translation. + +2007-03-05 Ilkka Tuohela <hile@iki.fi> + + * fi/fi.po: Updated Finnish translation. + +2007-02-28 Christophe Bliard <christophe.bliard@trux.info> + + * fr/fr.po: Updated French translation + +2007-02-09 David Lodge <dave@cirt.net> + + * en_GB/en_GB.po: Added English (British) translation + * Makefile.am: Added en_GB to DOC_LINGUAS + +2007-01-30 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * reference/Makefile.am: + * reference/evince-docs.sgml: + * reference/evince.types: + + Updated index document. + +2007-01-29 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * reference/Makefile.am: + * reference/evince-docs.sgml: + * reference/evince.types: + * reference/version.xml.in: + + Added gtk-doc based documentation for Evince. + Still in initial state but I hope it will + grow. + +2007-01-17 Daniel Nylander <po@danielnylander.se> + + * sv/sv.po: Updated Swedish translation. + +2007-01-16 Marc Brockschmidt <bugzilla.g@marcbrockschmidt.de> + + * C/evince.xml: Documentation about document + dragging is corrected. Fixes bug #396532. + +2006-12-05 Luca Ferretti <elle.uca@libero.it> + + * it/it.po: Updated Italian translation. + +2006-11-19 Christophe Bliard <christophe.bliard@trux.info> + + * fr/fr.po: Updated French translation. + +2006-11-12 Francisco Javier F. Serrador <serrador@openshine.com> + + * es/es.po: Updated Spanish translation. + +2006-11-10 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * C/evince.xml: Fixed build error with newer + mate-doc-utils. + +2006-11-08 Daniel Nylander <po@danielnylander.se> + + * sv/sv.po: Updated Swedish translation. + +2006-11-06 Joachim Noreiko <jnoreiko@yahoo.com> + + * C/evince.xml: Update dialog name and corrected use of 'File' to 'Document'. Patch from Steve Willoughby. Fixes #371042 + +2006-10-20 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * nl/nl.po: Dutch translation updated by Wouter + Bolsterlee. + +2006-10-07 Daniel Nylander <po@danielnylander.se> + + * sv/sv.po: Added Swedish translation. + * sv/figures/*png: Added screenshot. + * Makefile.am: Added sv to DOC_LINGUAS. + +2006-10-01 Wouter Bolsterlee <wbolster@gnome.org> + + * fi/.cvsignore: Ignore generated files. + * fr/.cvsignore: Same here. + * it/.cvsignore: Same here. + +2006-09-21 Luca Ferretti <elle.uca@libero.it> + + * it/it.po: Updated Italian translation. + * it/figures/evince_start_window.png: Updated to match MATE 2.16 + default theme. + +2006-09-16 Tommi Vainikainen <thv@iki.fi> + + * fi/figures/evince_start_window.png, fi/fi.po: Added Finnish + translation + * Makefile.am: Added fi to DOC_LINGUAS + +2006-09-03 Francisco Javier F. Serrador <serrador@openshine.com> + + * es/es.po: Updated Spanish translation by Jorge Gonzalez. + +2006-09-01 Christophe Bliard <christophe.bliard@trux.info> + + * fr/fr.po: Updated French translation + +2006-08-15 Christophe Bliard <christophe.bliard@trux.info> + + * fr/figures: + * fr/fr.po: Added French translation + * Makefile.am: Added fr to DOC_LINGUAS + +2006-06-11 Luca Ferretti <elle.uca@libero.it> + + * Makefile.am: + * it/it.po: + * it/figures/evince_start_window.png: + Added Italian translation by Ubuntu Italian Team and myself. + +2006-03-15 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk/uk.po: Updated Ukrainian translation. + +2006-02-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru/ru.po: Updated Russian translation. + +2006-03-09 Joachim Noreiko <jnoreiko@yahoo.com> + + * C/evince.xml: + Removed incorrect information about launching Evince from the Applications menu + +2006-02-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru/ru.po, Makefile.am: + * ru/.cvsignore, nl/.cvsignore, bg/.cvsignore: + Added Russian translation. + +2006-02-27 Alexander Shopov <ash@contact.bg> + + * Makefile.am: + * bg/bg.po: + * bg/figures/evince_start_window.png: + Added Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2006-01-28 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es/es.po: Updated Spanish translation. + +2006-01-21 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * C/evince.xml: Applied document standartization patch by + Allessandro Ferucci <a24@umbc.edu>. See bug #327791. + +2006-01-01 Reinout van Schouwen <reinout@cs.vu.nl> + + * Added nl/nl.po + * Added nl/figures/evince_start_window.png + * Makefile.am: added nl + * C/evince.xml: remove Quit from section 3.10. Fixes #325451. + Patch by Brian Pepple <bdpepple@ameritech.net> + +2005-10-25 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * C/evince.xml: Fix typo. + +2005-10-02 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * uk, el: Add .cvsignore to keep cvs silent. + +2005-08-25 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * uk, Makefile.am: Fix help file and move figure to correct + folder + +Thu Aug 25 02:32:54 2005 Jonathan Blandford <jrb@redhat.com> + + * Makefile.am: + * sr/sr.po: Remove uk.po from the help pages as I can't get it to + validate. + +2005-08-18 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk.po: Added Ukrainian translation. + +2005-08-15 Nikos Charonitakis <charosn@her.forthnet.gr> + + * el.po: Updated Greek translation + by ta_panta_rei (fix typos) + +2005-08-11 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es/es.po: Some corrections + +2005-08-09 Nikos Charonitakis <charosn@her.forthnet.gr> + * el/el.po: Added full Greek translation + by Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + * Makefile.am (DOC_LINGUAS): Added "el". + +2005-08-03 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es/es.po: Correct mispelling reported by Tommi Vainikainen. + +2005-07-27 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es/es.po: Updated Spanish translation. + +2005-07-24 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es/es.po: Added partial Spanish translation. + +2005-07-24 Danilo Å egan <danilo@gnome.org> + + * Makefile.am (DOC_LINGUAS): Added "sr". + * sr/sr.po: Added partial Serbian translation. + +2005-07-24 Tommi Vainikainen <thv@iki.fi> + + * xmldocs.make: Removed, should not be here. + * .cvsignore: Added *.omf as those are generated files. + +2005-07-23 Tommi Vainikainen <thv@iki.fi> + + * Makefile.am, evince.omf.in, C/evince.xml: Migrated to use + mate-doc-utils. + * C/Makefile.am, C/evince-C.omf: Removed in migration. diff --git a/help/Makefile.am b/help/Makefile.am new file mode 100644 index 00000000..eedae993 --- /dev/null +++ b/help/Makefile.am @@ -0,0 +1,17 @@ +SUBDIRS = reference + +if ENABLE_HELP + +include $(top_srcdir)/mate-doc-utils.make +dist-hook: doc-dist-hook + +DOC_MODULE = evince +DOC_ENTITIES = legal.xml +DOC_INCLUDES = +DOC_FIGURES = figures/evince_start_window.png + +DOC_LINGUAS = bg ca cs de el en_GB es eu fi fr it ja nl oc pt_BR ru sl sr sv uk vi zh_CN + +-include $(top_srcdir)/git.mk + +endif diff --git a/help/bg/bg.po b/help/bg/bg.po new file mode 100644 index 00000000..e4b67edc --- /dev/null +++ b/help/bg/bg.po @@ -0,0 +1,1015 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-02-27 16:50+0200\n" +"PO-Revision-Date: 2006-02-27 16:53+0200\n" +"Last-Translator: Rostislav \"zbrox\" Raykov <zbrox@i-space.org>\n" +"Language-Team: Bulgarian <dict@fsa-bg.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: legal.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"ŠŃŠµŠ“Š¾ŃŃŠ°Š²Ń ŃŠµ ŃŠ°Š·ŃŠµŃŠµŠ½ŠøŠµ Š·Š° ŠŗŠ¾ŠæŠøŃŠ°Š½Šµ, ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŠµŠ½ŠøŠµ Šø/ŠøŠ»Šø ŠæŃŠ¾Š¼ŃŠ½Š° Š½Š° ŃŠ¾Š·Šø " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŃŃŠ³Š»Š°ŃŠ½Š¾ ŃŃŠ»Š¾Š²ŠøŃŃŠ° Š½Š° āŠŠøŃŠµŠ½Š·Š° Š·Š° ŃŠ²Š¾Š±Š¾Š“Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š½Š° GNUā, " +"Š²ŠµŃŃŠøŃ 1.1 ŠøŠ»Šø Š²ŃŃŠŗŠ° ŃŠ»ŠµŠ“Š²Š°ŃŠ° Š²ŠµŃŃŠøŃ, ŠøŠ·Š“Š°Š“ŠµŠ½Š° Š¾Ń Š¤Š¾Š½Š“Š°ŃŠøŃ āŠ”Š²Š¾Š±Š¾Š“ŠµŠ½ " +"ŃŠ¾ŃŃŃŠµŃā; Š±ŠµŠ· āŠŠµŠæŃŠ¾Š¼ŠµŠ½Š»ŠøŠ²Šø ŃŠ°Š·Š“ŠµŠ»Šøā, āŠ¢ŠµŠŗŃŃŠ¾Š²Šµ Š½Š° ŠæŃŠµŠ“Š½Š°ŃŠ° ŠŗŠ¾ŃŠøŃŠ°ā, ŠŗŠ°ŠŗŃŠ¾ Šø " +"āŠ¢ŠµŠŗŃŃŠ¾Š²Šµ Š½Š° Š·Š°Š“Š½Š°ŃŠ° ŠŗŠ¾ŃŠøŃŠ°ā. ŠŠ¾ŠæŠøŠµ Š½Š° Š»ŠøŃŠµŠ½Š·Š° Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š½Š°Š¼ŠµŃŠµŠ½Š¾ <ulink " +"type=\"help\" url=\"ghelp:fdl\">ŃŃŠŗ</ulink> ŠøŠ»Šø Š²ŃŠ² ŃŠ°Š¹Š»Š° COPYING-DOCS, " +"ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŃŠ²Š°Š½ Ń ŃŠ¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾." + +#: legal.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Š¢Š¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Šµ ŃŠ°ŃŃ Š¾Ń ŠŗŠ¾Š»ŠµŠŗŃŠøŃ ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š° Š·Š° MATE, ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŃŠ²Š°Š½Šø " +"ŠæŠ¾Š“ GFDL. ŠŠŗŠ¾ ŠøŃŠŗŠ°ŃŠµ Š“Š° ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŃŠ²Š°ŃŠµ ŃŠ¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Š¾ŃŠ“ŠµŠ»Š½Š¾, Š¼Š¾Š¶ŠµŃŠµ Š“Š° " +"Š³Š¾ Š½Š°ŠæŃŠ°Š²ŠøŃŠµ, ŠŗŠ°ŃŠ¾ Š²ŠŗŠ»ŃŃŠøŃŠµ ŠŗŠ¾ŠæŠøŠµ Š½Š° Š»ŠøŃŠµŠ½Š·Š° ŠŗŃŠ¼ ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ŃŠ¾, ŠŗŠ°ŠŗŃŠ¾ Šµ " +"Š¾ŠæŠøŃŠ°Š½Š¾ Š² ŃŠ°Š·Š“ŠµŠ» 6 Š¾Ń Š»ŠøŃŠµŠ½Š·Š°." + +#: legal.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"ŠŠ½Š¾Š³Š¾ Š¾Ń ŠøŠ¼ŠµŠ½Š°ŃŠ°, ŠøŠ·ŠæŠ¾Š»Š·Š²Š°Š½Šø Š¾Ń ŠŗŠ¾Š¼ŠæŠ°Š½ŠøŠø, Š·Š° Š“Š° Š¾ŃŠ»ŠøŃŠ°Š²Š°Ń ŃŠ¾Š±ŃŃŠ²ŠµŠ½ŠøŃŠµ ŃŠø " +"ŠæŃŠ¾Š“ŃŠŗŃŠø Šø ŃŃŠ»ŃŠ³Šø, ŃŠ° ŃŠµŠ³ŠøŃŃŃŠøŃŠ°Š½Šø ŃŃŃŠ³Š¾Š²ŃŠŗŠø Š¼Š°ŃŠŗŠø. ŠŠ¾Š³Š°ŃŠ¾ ŃŠ°ŠŗŠøŠ²Š° ŠøŠ¼ŠµŠ½Š° " +"ŠæŃŠøŃŃŃŃŠ²Š°Ń Š² ŠŗŠ¾ŃŃŠ¾ Šø Š“Š° Šµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š·Š° MATE Šø ŃŠ»ŠµŠ½Š¾Š²ŠµŃŠµ Š½Š° ŠæŃŠ¾ŠµŠŗŃŠ° Š·Š° " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š½Š° MATE ŃŠ° Š¾ŃŠ²ŠµŠ“Š¾Š¼ŠµŠ½Šø Š·Š° ŃŃŠ¾ŃŠ²ŠµŃŠ½ŠøŃŠµ ŃŃŃŠ³Š¾Š²ŃŠŗŠø Š¼Š°ŃŠŗŠø, ŃŠ¾Š³Š°Š²Š° " +"ŠøŠ¼ŠµŠ½Š°ŃŠ° ŃŠ° Ń Š³Š»Š°Š²Š½Šø Š±ŃŠŗŠ²Šø ŠøŠ»Šø Š½Š°ŃŠ°Š»Š½Šø Š³Š»Š°Š²Š½Šø Š±ŃŠŗŠ²Šø." + +#: legal.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ŠŖŠ¢ Š”Š ŠŠ ŠŠŠŠ”Š¢ŠŠŠÆ ŠŠ ŠŠŠŠ āŠŠŠŠ¢Š Šā, ŠŠŠ ŠŠŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠ ŠŠŠ¦ŠŠÆ, " +"ŠŠ ŠÆŠŠ ŠŠŠ ŠŠŠ”ŠŠŠŠ, ŠŠŠŠ®Š§ŠŠ¢ŠŠŠŠ ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠŠÆ Š ŠŠŠ ŠŠŠ¦ŠŠ, Š§Š ŠŠŠŠ£ŠŠŠŠ¢ŠŖŠ¢ ŠŠŠ " +"ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠÆ Š”Š ŠŠŠ ŠŠŠ¤ŠŠŠ¢Š, ŠŠŠŠŠ ŠŠ ŠŠŠŠŠ ŠŠ¢ŠŠ Š£ŠŠŠ¢Š ŠŠŠ ŠŠŠ " +"ŠŠŠŠŠ Š£ŠØŠŠŠŠ©Š. Š¦ŠŠŠŠÆŠ¢ Š ŠŠ”Š ŠŠ¢ŠŠŠ”ŠŠ ŠŠŠ§ŠŠ”Š¢ŠŠŠ¢Š, Š¢ŠŠ§ŠŠŠ”Š¢Š¢Š Š Š„ŠŠ ŠŠŠ¢ŠŠ ŠŠ”Š¢ŠŠŠŠ¢Š " +"ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠÆ Š ŠŠ ŠŠŠØŠ Š”ŠŠŠ¢ŠŠ. ŠŠŠ ŠŠÆŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢ " +"ŠŠŠ ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠÆ Š”Š ŠŠŠŠŠ ŠŠŠ¤ŠŠŠ¢ŠŠ Š ŠŠŠŠŠŠ¢Š Š ŠŠ Š ŠŠ¢ŠŠŠØŠŠŠŠ, ŠŠŠ " +"(ŠŠ ŠŠŖŠ ŠŠŠŠŠ§ŠŠŠŠŠÆ ŠŠŠ¢ŠŠ ŠŠŠ ŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠŠ ŠŠŠŠ”ŠŖŠ ŠŠ Š ŠŠŠ ŠŠŠŠ¢ŠŠŠ¢Š) ŠŠŠŠŠŠ¢Š " +"Š ŠŠŠ„ŠŠŠŠ¢Š ŠŠ ŠŠ”ŠÆŠŠŠŠŠ ŠŠŠŠŠ„ŠŠŠŠŠ ŠŠŠ”ŠŠ£ŠŠŠŠŠ, ŠŠŠŠ ŠŠŠŠ ŠŠŠ ŠŠŠ ŠŠŠ¦ŠŠ. Š¢ŠŠŠ " +"ŠŠ¢ŠŠŠŠŠŠŠ ŠŠ¢ ŠŠŠ ŠŠŠ¦ŠŠÆŠ¢Š ŠŠ ŠŠŠ”Š¢ŠŠŠŠÆŠŠ Š”ŠŖŠ©ŠŠ”Š¢ŠŠŠŠ Š§ŠŠ”Š¢ ŠŠ¢ Š¢ŠŠŠ ŠŠŠ¦ŠŠŠ. ŠŠ Š " +"Š ŠŠŠ ŠŠØŠŠŠ Š£ŠŠŠ¢Š ŠŠŠŠ¢Š ŠŠ ŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠ ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠŠ Š”ŠŠÆ ŠŠ " +"ŠŠŠŠ£ŠŠŠŠ¢Š, ŠŠ”ŠŠŠ ŠŠ Š Š”ŠŠŠŠŠŠŠ ŠŠ Š¢ŠŠŠ ŠŠ¢ŠŠŠ ŠŠ¢ ŠŠŠ ŠŠŠ¦ŠŠÆ; Š" + +#: legal.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ŠŠ Š ŠŠŠŠŠŠŠ ŠŠŠ”Š¢ŠŠÆŠ¢ŠŠŠ”Š¢ŠŠ Š ŠŠŠ ŠŠŠŠŠŠŠ Š®Š ŠŠŠŠ§ŠŠ”ŠŠ ŠŠ”ŠŠŠŠ, ŠŠŠŠŠŠŠ”ŠŠŠ ŠŠŠŠ Š " +"Š ŠŠŠ Š£ŠØŠŠŠŠ (ŠŠŠŠ®Š§ŠŠ¢ŠŠŠŠ ŠŠ ŠŠ§ŠŠŠŠŠ ŠŠ¢ ŠŠŠŠ ŠŠŠŠŠ”Š¢), ŠŠŠŠŠŠŠ ŠŠŠ ŠŠ Š£ŠŠ, " +"ŠŠŠ¢ŠŠ ŠŖŠ¢, ŠŠŖŠ ŠŠŠŠŠ§ŠŠŠŠŠÆŠ¢ ŠŠŠ¢ŠŠ ŠŠŠ ŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠŠ ŠŠŠŠ”ŠŖŠ ŠŠ Š ŠŠŠ ŠŠŠŠ¢ŠŠŠ¢Š, " +"ŠŠŠ ŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠ”Š¢Š ŠŠŠ£Š¢ŠŠ ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠÆ, ŠŠŠ " +"ŠŠŠŠ¢Š Š ŠŠ Š ŠŠŠ”Š¢ŠŠŠ§ŠŠ ŠŠ ŠŠŠÆŠ¢Š Š ŠŠ Š ŠŠ¢ ŠŠŠŠ ŠŠŠŠŠ¢Š Š”Š¢Š ŠŠŠ, ŠŠÆŠŠ ŠŠ ŠŠŖŠŠ " +"ŠŠ¢ŠŠŠŠŠ ŠŠ ŠŠ ŠŠ ŠŠŠŠŠŠ ŠŠ ŠŠ”ŠŠ§ŠŠ ŠŠ ŠŠŠ, ŠŠŠ”ŠŠŠŠ, Š”ŠŠŠ¦ŠŠŠŠŠ, Š”ŠŠ£Š§ŠŠŠŠ ŠŠŠ " +"ŠŠŠ”ŠŠŠŠ”Š¢ŠŠŠŠ Š©ŠŠ¢Š ŠŠ¢ ŠŠŠŠŖŠŠ¢Š Š ŠŠ Š Š„ŠŠ ŠŠŠ¢ŠŠ , ŠŠŠŠ®Š§ŠŠ¢ŠŠŠŠ, ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠŠÆ, " +"Š©ŠŠ¢Š ŠŠ ŠŠŠŠ£ŠŠ ŠŠ ŠŠŠŠ ŠŠŠŠŠŠ¢ŠŠŠŠŠ”Š¢, Š”ŠŠŠ ŠŠŠ ŠŠ Š ŠŠŠŠ¢ŠŠ¢Š, ŠŠŠŠŠ®Š¢ŠŖŠ ŠŠ ŠŠŠŠ ŠŠŠ " +"ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠ”Š¢, ŠŠŠ ŠŠ”ŠÆŠŠŠŠŠ ŠŠ Š£ŠŠ Š©ŠŠ¢Š ŠŠŠ ŠŠŠŠ£ŠŠ, ŠŠŖŠŠŠŠŠŠŠŠ ŠŠŠ " +"Š”ŠŠŖŠ ŠŠŠŠ Š” Š£ŠŠŠ¢Š ŠŠŠŠ¢Š ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠ, ŠŠŠ Š Š ŠŠŠŠŠ¢Š " +"Š¢ŠŠŠ Š”Š¢Š ŠŠŠ Š ŠŠŠŠ ŠŠŠ¤ŠŠ ŠŠŠ ŠŠŠ ŠŠ ŠŠŖŠŠŠŠŠŠŠ”Š¢Š¢Š ŠŠ¢ Š¢ŠŠŠŠŠ Š©ŠŠ¢Š." + +#: legal.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ŠŖŠ¢ Š ŠŠ ŠŠŠŠŠŠŠŠ¢Š ŠŠ£ ŠŠŠ Š”ŠŠ Š”Š ŠŠ ŠŠŠŠ”Š¢ŠŠŠÆŠ¢ ŠŠŠ Š£Š”ŠŠŠŠŠÆŠ¢Š ŠŠ ŠŠŠ¦ŠŠŠŠ " +"ŠŠ Š”ŠŠŠŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢ŠŠ¦ŠŠÆ ŠŠ GNU, Š” ŠŠŠŠŖŠŠŠŠ¢ŠŠŠŠŠ¢Š ŠŠŠÆŠ”ŠŠŠŠŠ, Š§Š:<placeholder-" +"1/>" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: evince.xml:161(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "FIXME: ŠŠµŠ¾Š±Ń Š¾Š“ŠøŠ¼Š° Šµ Š»Š¾ŠŗŠ°Š»ŠøŠ·ŠøŃŠ°Š½Š° ŃŠ½ŠøŠ¼ŠŗŠ°." + +#: evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Š ŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Š·Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š·Š° ŃŠ°Š·Š³Š»ŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø - Evince" + +#: evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š·Š° ŃŠ°Š·Š³Š»ŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Evince ŠŠø ŠæŠ¾Š·Š²Š¾Š»ŃŠ²Š° Š“Š° ŠæŃŠµŠ³Š»ŠµŠ¶Š“Š°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š¾Ń ŃŠ°Š·Š»ŠøŃŠ½Šø ŃŠ¾ŃŠ¼Š°ŃŠø ŠŗŠ°ŃŠ¾ Portable Document Format (PDF) ŠøŠ»Šø PostScript." + +#: evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: evince.xml:34(holder) evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: evince.xml:38(holder) evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: evince.xml:49(publishername) evince.xml:67(orgname) evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "ŠŃŠ¾ŠµŠŗŃ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š½Š° MATE" + +#: evince.xml:59(firstname) +msgid "Sun" +msgstr "ŠŠŗŠøŠæ Š½Š° Sun" + +#: evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "ŠŠŗŠøŠæŃŃ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š½Š° MATE" + +#: evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Š ŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Š·Š° Evince, Š²ŠµŃŃŠøŃ 1.0" + +#: evince.xml:89(date) +msgid "2005-04-06" +msgstr "06-04-2005" + +#: evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "" +"Š¢Š¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Šµ Š·Š° Š²ŠµŃŃŠøŃ 0.2 Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø " +"Evince." + +#: evince.xml:100(title) +msgid "Feedback" +msgstr "ŠŠ±ŃŠ°ŃŠ½Š° Š²ŃŃŠ·ŠŗŠ°" + +#: evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"ŠŠ° Š“Š° Š“Š¾ŠŗŠ»Š°Š“Š²Š°ŃŠµ Š·Š° Š³ŃŠµŃŠŗŠ° ŠøŠ»Šø Š“Š° Š½Š°ŠæŃŠ°Š²ŠøŃŠµ ŠæŃŠµŠ“Š»Š¾Š¶ŠµŠ½ŠøŠµ Š¾ŃŠ½Š¾ŃŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° " +"Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Evince ŠøŠ»Šø ŃŠ¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾, ŃŠ»ŠµŠ“Š²Š°Š¹ŃŠµ ŃŠŗŠ°Š·Š°Š½ŠøŃŃŠ°, " +"Š¾ŠæŠøŃŠ°Š½Šø Š² <ulink url=\"ghelp:mate-feedback\" type=\"help\">Š”ŃŃŠ°Š½ŠøŃŠ°ŃŠ° Š·Š° " +"Š¾Š±ŃŠ°ŃŠ½Š° Š²ŃŃŠ·ŠŗŠ° Š½Š° MATE</ulink>." + +#: evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: evince.xml:119(title) +msgid "Introduction" +msgstr "ŠŃŠ²ŠµŠ“ŠµŠ½ŠøŠµ" + +#: evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"ŠŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° <application>Evince</application> ŠæŠ¾Š·Š²Š¾Š»ŃŠ²Š° Š“Š° ŠæŃŠµŠ³Š»ŠµŠ¶Š“Š°ŃŠµ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š¾Ń ŃŠ°Š·Š»ŠøŃŠ½Šø ŃŠ¾ŃŠ¼Š°ŃŠø ŠŗŠ°ŃŠ¾ Portable Document Format (PDF) ŃŠ°Š¹Š»Š¾Š²Šµ " +"ŠøŠ»Šø PostScript ŃŠ°Š¹Š»Š¾Š²Šµ. <application>Evince</application> ŃŠ»ŠµŠ“Š²Š° ŃŃŠ°Š½Š“Š°ŃŃŠøŃŠµ " +"Š½Š° Freedesktop.org Šø MATE, Š·Š° Š“Š° ŠæŃŠµŠ“Š¾ŃŃŠ°Š²Šø ŠøŠ½ŃŠµŠ³ŃŠ°ŃŠøŃ Ń ŃŠ°Š±Š¾ŃŠ½Š°ŃŠ° ŃŃŠµŠ“Š°." + +#: evince.xml:127(title) +msgid "Getting Started" +msgstr "ŠŃŃŠ²Šø ŃŃŃŠæŠŗŠø" + +#: evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "Š”ŃŠ°ŃŃŠøŃŠ°Š½Šµ Š½Š° Evince" + +#: evince.xml:131(para) +msgid "" +"You can start <application>Evince Document Viewer</application> in the " +"following ways:" +msgstr "" +"ŠŠ¾Š¶Šµ Š“Š° ŃŃŠ°ŃŃŠøŃŠ°ŃŠµ <application>Evince</application> ŠæŠ¾ ŃŠ»ŠµŠ“Š½ŠøŃŠµ Š½Š°ŃŠøŠ½Šø:" + +#: evince.xml:135(term) +msgid "<guimenu>Applications</guimenu> menu" +msgstr "ŠŃ Š¼ŠµŠ½ŃŃŠ¾ <guimenu>ŠŃŠ¾Š³ŃŠ°Š¼Šø</guimenu>" + +#: evince.xml:137(para) +msgid "" +"Choose <menuchoice><guisubmenu>Graphics</guisubmenu><guimenuitem>Evince " +"Document Viewer</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guisubmenu>ŠŃŠ°ŃŠøŠŗŠ°</guisubmenu><guimenuitem>ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø</guimenuitem></menuchoice>." + +#: evince.xml:142(term) +msgid "Command line" +msgstr "ŠŃ ŠŗŠ¾Š¼Š°Š½Š“Š½ŠøŃ ŃŠµŠ“" + +#: evince.xml:144(para) +msgid "Execute the following command: <command>evince</command>" +msgstr "ŠŠ·ŠæŃŠ»Š½ŠµŃŠµ ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŠŗŠ¾Š¼Š°Š½Š“Š°: <command>evince</command>" + +#: evince.xml:152(title) +msgid "When You Start Evince Document Viewer" +msgstr "ŠŠ¾Š³Š°ŃŠ¾ ŃŃŠ°ŃŃŠøŃŠ°ŃŠµ Evince" + +#: evince.xml:153(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"ŠŠ¾Š³Š°ŃŠ¾ ŃŃŠ°ŃŃŠøŃŠ°ŃŠµ <application>Evince</application> ŃŠµ ŠæŠ¾ŃŠ²ŃŠ²Š° ŃŠ»ŠµŠ“Š½ŠøŃŃ " +"ŠæŃŠ¾Š·Š¾ŃŠµŃ." + +#: evince.xml:157(title) +msgid "Evince Document Viewer Window" +msgstr "ŠŃŠ¾Š·Š¾ŃŠµŃŃŃ Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Evince" + +#: evince.xml:164(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"ŠŠ¾ŠŗŠ°Š·Š²Š° Š³Š»Š°Š²Š½ŠøŃ ŠæŃŠ¾Š·Š¾ŃŠµŃ Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Evince. " +"Š”ŃŠ“ŃŃŠ¶Š° Š·Š°Š³Š»Š°Š²Š½Š° Š»ŠµŠ½ŃŠ°, Š»ŠµŠ½ŃŠ° Ń Š¼ŠµŠ½ŃŃŠ°, Š»ŠµŠ½ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø Šø ŃŠ°Š¹Š¾Š½ Š½Š° " +"ŠæŃŠµŠ³Š»ŠµŠ“. ŠŠµŠ½ŃŠ°ŃŠ° Ń Š¼ŠµŠ½ŃŃŠ° ŃŃŠ“ŃŃŠ¶Š° Š¼ŠµŠ½ŃŃŠ°ŃŠ° Š¤Š°Š¹Š», Š ŠµŠ“Š°ŠŗŃŠøŃŠ°Š½Šµ, ŠŠ·Š³Š»ŠµŠ“, " +"ŠŃŠøŠ²Š°Š½Šµ Šø ŠŠ¾Š¼Š¾Ń." + +#: evince.xml:170(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"ŠŃŠ¾Š·Š¾ŃŠµŃŃŃ Š½Š° <application>Evince</application> ŃŃŠ“ŃŃŠ¶Š° ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠø:" + +#: evince.xml:174(term) evince.xml:222(para) +msgid "Menubar" +msgstr "ŠŠµŠ½ŃŠ° Ń Š¼ŠµŠ½ŃŃŠ°" + +#: evince.xml:176(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"ŠŠµŠ½ŃŃŠ°ŃŠ° Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń Š¼ŠµŠ½ŃŃŠ° ŃŃŠ“ŃŃŠ¶Š°Ń Š²ŃŠøŃŠŗŠø ŠŗŠ¾Š¼Š°Š½Š“Šø, ŠŗŠ¾ŠøŃŠ¾ ŃŠ° ŠŠø Š½ŃŠ¶Š½Šø, Š·Š° " +"Š“Š° ŃŠ°Š±Š¾ŃŠøŃŠµ Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø ŃŃŠµŠ· <application>Evince</application>." + +#: evince.xml:180(term) +msgid "Toolbar" +msgstr "ŠŠµŠ½ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: evince.xml:182(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"ŠŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø ŃŃŠ“ŃŃŠ¶Š° Š½Š°Š±Š¾Ń Š¾Ń ŃŠ°ŃŃ Š¾Ń ŠŗŠ¾Š¼Š°Š½Š“ŠøŃŠµ, ŠŗŠ¾ŠøŃŠ¾ ŃŠ° Š“Š¾ŃŃŃŠæŠ½Šø " +"ŠæŃŠµŠ· Š¼ŠµŠ½ŃŃŠ°ŃŠ°." + +#: evince.xml:186(term) +msgid "Display area" +msgstr "Š Š°Š¹Š¾Š½ Š½Š° ŠæŃŠµŠ³Š»ŠµŠ“" + +#: evince.xml:188(para) +msgid "The display area displays the document." +msgstr "Š Š°Š¹Š¾Š½ŃŃ Š½Š° ŠæŃŠµŠ³Š»ŠµŠ“ Šµ ŃŠ°Š¼, ŠŗŃŠ“ŠµŃŠ¾ ŃŠµ ŠæŠ¾ŠŗŠ°Š·Š²Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:202(para) +msgid "UI Component" +msgstr "ŠŠ¾Š¼ŠæŠ¾Š½ŠµŠ½Ń Š¾Ń ŠøŠ½ŃŠµŃŃŠµŠ¹ŃŠ°" + +#: evince.xml:204(para) +msgid "Action" +msgstr "ŠŠµŠ¹ŃŃŠ²ŠøŠµ" + +#: evince.xml:209(para) +msgid "Window" +msgstr "ŠŃŠ¾Š·Š¾ŃŠµŃ" + +#: evince.xml:213(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"ŠŠ·ŃŠµŠ³Š»ŠµŃŠµ ŃŠ°Š¹Š», Š¾Ń Š“ŃŃŠ³Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š° ŠŗŠ°ŃŠ¾ Š½Š°ŠæŃŠøŠ¼ŠµŃ ŃŠ°Š¹Š»Š¾Š² Š¼ŠµŠ½ŠøŠ“Š¶ŃŃ, ŠŗŃŠ¼ " +"ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° Š½Š° <application>Evince</application>." + +#: evince.xml:216(para) +msgid "Double-click on the file name in the file manager" +msgstr "ŠŠ°ŃŠøŃŠ½ŠµŃŠµ Š“Š²Š° ŠæŃŃŠø Š²ŃŃŃ Ń ŃŠ°Š¹Š»Š° Š²ŃŠ² ŃŠ°Š¹Š»Š¾Š²ŠøŃ Š¼ŠµŠ½ŠøŠ“Š¶ŃŃ." + +#: evince.xml:223(para) evince.xml:250(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŃŠ²Š°ŃŃŠ½Šµ</" +"guimenuitem></menuchoice>." + +#: evince.xml:227(para) +msgid "Shortcut keys" +msgstr "ŠŃŃŠ·Šø ŠŗŠ»Š°Š²ŠøŃŠø" + +#: evince.xml:228(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŠµŃŠµ <keycombo><keycap>Ctrl</keycap><keycap>Š</keycap></keycombo>." + +#: evince.xml:193(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><thead><row valign=\"top\"><entry " +"colname=\"COLSPEC0\"><placeholder-1/></entry><entry colname=\"COLSPEC1\" " +"align=\"left\"><placeholder-2/></entry></row></thead><tbody><row valign=\"top" +"\"><placeholder-3/><entry><placeholder-4/></entry></row><row valign=\"top" +"\"><placeholder-5/><entry><placeholder-6/></entry></row><row valign=\"top" +"\"><placeholder-7/><placeholder-8/></row></tbody></tgroup></informaltable>" +msgstr "" +"Š <application>Evince</application> Š¼Š¾Š¶ŠµŃŠµ Š“Š° ŠøŠ·Š²ŃŃŃŠ²Š°ŃŠµ ŠµŠ“Š½Š¾ Šø ŃŃŃŠ¾ " +"Š“ŠµŠ¹ŃŃŠ²ŠøŠµ ŠæŠ¾ ŃŠ°Š·Š»ŠøŃŠ½Šø Š½Š°ŃŠøŠ½Šø. ŠŠ°ŠæŃŠøŠ¼ŠµŃ, Š¼Š¾Š¶Šµ Š“Š° Š¾ŃŠ²Š°ŃŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾ ŃŠ»ŠµŠ“Š½ŠøŃŠµ " +"Š½Š°ŃŠøŠ½Šø: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=" +"\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=" +"\"COLSPEC1\" colwidth=\"50*\"/><thead><row valign=\"top\"><entry colname=" +"\"COLSPEC0\"><placeholder-1/></entry><entry colname=\"COLSPEC1\" align=\"left" +"\"><placeholder-2/></entry></row></thead><tbody><row valign=\"top" +"\"><placeholder-3/><entry><placeholder-4/></entry></row><row valign=\"top" +"\"><placeholder-5/><entry><placeholder-6/></entry></row><row valign=\"top" +"\"><placeholder-7/><placeholder-8/></row></tbody></tgroup></informaltable>" + +#: evince.xml:234(para) +msgid "This manual documents functionality from the menubar." +msgstr "Š¢Š¾Š²Š° ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Š¾ŠæŠøŃŠ²Š° ŃŃŠ½ŠŗŃŠøŠ¾Š½Š°Š»Š½Š¾ŃŃŃŠ° Š¾Ń Š»ŠµŠ½ŃŠ°ŃŠ° Ń Š¼ŠµŠ½ŃŃŠ°." + +#: evince.xml:242(title) +msgid "Usage" +msgstr "Š£ŠæŠ¾ŃŃŠµŠ±Š°" + +#: evince.xml:246(title) +msgid "To Open a File" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° ŃŠ°Š¹Š»" + +#: evince.xml:247(para) +msgid "To open a File, perform the following steps:" +msgstr "ŠŠ° Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠµ ŃŠ°Š¹Š», ŃŠ»ŠµŠ“Š²Š°Š¹ŃŠµ ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŃŃŃŠæŠŗŠø:" + +#: evince.xml:254(para) +msgid "" +"In the <guilabel>Load file</guilabel> dialog, select the file you want to " +"open." +msgstr "" +"Š ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° Š·Š° <guilabel>ŠŠ°ŃŠµŠ¶Š“Š°Š½Šµ Š½Š° ŃŠ°Š¹Š»</guilabel>, ŠøŠ·Š±ŠµŃŠµŃŠµ ŃŠ°Š¹Š»Š°, ŠŗŠ¾Š¹ŃŠ¾ " +"ŠøŃŠŗŠ°ŃŠµ Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠµ." + +#: evince.xml:259(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŠµŃŠµ <guibutton>ŠŃŠ²Š°ŃŃŠ½Šµ</guibutton>. <application>Evince</application> " +"ŠæŠ¾ŠŗŠ°Š·Š²Š° ŠøŠ¼ŠµŃŠ¾ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š² Š·Š°Š³Š»Š°Š²Š½Š°ŃŠ° Š»ŠµŠ½ŃŠ° Š½Š° Š³Š»Š°Š²Š½ŠøŃ ŠæŃŠ¾Š·Š¾ŃŠµŃ ŠæŃŠ¾Š·Š¾ŃŠµŃ." + +#: evince.xml:264(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"ŠŠ° Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠµ Š“ŃŃŠ³ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŠøŠ·Š±ŠµŃŠµŃŠµ Š¾ŃŠ½Š¾Š²Š¾ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŃŠ²Š°ŃŃŠ½Šµ</guimenuitem></menuchoice>. " +"<application>Evince</application> Š¾ŃŠ²Š°ŃŃ Š²ŃŠµŠŗŠø ŃŠ°Š¹Š» Š² Š¾ŃŠ“ŠµŠ»ŠµŠ½ ŠæŃŠ¾Š·Š¾ŃŠµŃ." + +#: evince.xml:267(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"ŠŠŗŠ¾ ŃŠµ Š¾ŠæŠøŃŠ°ŃŠµ Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ń ŃŠ¾ŃŠ¼Š°Ń, ŠŗŠ¾Š¹ŃŠ¾ <application>Evince</" +"application> Š½Šµ ŃŠ°Š·ŠæŠ¾Š·Š½Š°Š²Š°, ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° ŃŠµ ŠæŠ¾ŠŗŠ°Š¶Šµ ŃŃŠ¾Š±ŃŠµŠ½ŠøŠµ Š·Š° Š³ŃŠµŃŠŗŠ°." + +#: evince.xml:273(title) +msgid "To Navigate Through a Document" +msgstr "ŠŠ°Š²ŠøŠ³Š°ŃŠøŃ ŠøŠ· Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: evince.xml:274(para) +msgid "You can navigate through a file as follows:" +msgstr "ŠŠ¾Š¶Šµ Š“Š° ŃŠ¼ŠµŠ½ŃŃŠµ ŠæŃŠµŠ³Š»ŠµŠ“Š° Š½Š° ŃŠ°Š¹Š», ŠŗŠ°ŠŗŃŠ¾ ŃŠ»ŠµŠ“Š²Š°:" + +#: evince.xml:277(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š²ŠøŠ“ŠøŃŠµ ŃŠ»ŠµŠ“Š²Š°ŃŠ°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŃŠøŠ²Š°Š½Šµ</" +"guimenu><guimenuitem>Š”Š»ŠµŠ“Š²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°</guimenuitem></menuchoice>." + +#: evince.xml:281(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š²ŠøŠ“ŠøŃŠµ ŠæŃŠµŠ“ŠøŃŠ½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŃŠøŠ²Š°Š½Šµ</" +"guimenu><guimenuitem>ŠŃŠµŠ“ŠøŃŠ½Š° ŃŃŃŠ°Š½ŠøŃŠ°</guimenuitem></menuchoice>." + +#: evince.xml:285(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š²ŠøŠ“ŠøŃŠµ ŠæŃŃŠ²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŃŠøŠ²Š°Š½Šµ</" +"guimenu><guimenuitem>ŠŃŃŠ²Š° ŃŃŃŠ°Š½ŠøŃŠ°</guimenuitem></menuchoice>." + +#: evince.xml:289(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š²ŠøŠ“ŠøŃŠµ ŠæŠ¾ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŃŠøŠ²Š°Š½Šµ</" +"guimenu><guimenuitem>ŠŠ¾ŃŠ»ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°</guimenuitem></menuchoice>." + +#: evince.xml:293(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"ŠŠ° Š“Š° Š²ŠøŠ“ŠøŃŠµ ŃŠ¾ŃŠ½Š¾ Š¾ŠæŃŠµŠ“ŠµŠ»ŠµŠ½Š° ŃŃŃŠ°Š½ŠøŃŠ°, Š²ŃŠ²ŠµŠ“ŠµŃŠµ Š½Š¾Š¼ŠµŃŠ° ŠøŠ»Šø ŠµŃŠøŠŗŠµŃŠ° Š½Š° " +"ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ° Š² ŃŠµŠŗŃŃŠ¾Š²Š¾ŃŠ¾ ŠæŠ¾Š»Šµ Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø Šø Š½Š°ŃŠøŃŠ½ŠµŃŠµ " +"<keycap>Enter</keycap>." + +#: evince.xml:300(title) +msgid "To Scroll a Page" +msgstr "ŠŃŠµŠ»ŠøŃŃŠ²Š°Š½Šµ" + +#: evince.xml:301(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"ŠŠ° Š“Š° ŃŠµ ŠæŠ¾ŠŗŠ°Š¶Šµ ŃŃŠ“ŃŃŠ¶Š°Š½ŠøŠµŃŠ¾ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°, ŠŗŠ¾ŠµŃŠ¾ Š½Šµ ŃŠµ Š²ŠøŠ¶Š“Š° Š½Š° Š¼Š¾Š¼ŠµŠ½ŃŠ° Š² " +"ŃŠ°Š¹Š¾Š½Š° Š½Š° ŠæŃŠµŠ³Š»ŠµŠ“, ŠøŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ»ŠµŠ“Š½ŠøŃŠµ Š¼ŠµŃŠ¾Š“Šø:" + +#: evince.xml:304(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠøŠ½ŃŠµŃŠ²Š°Š»Š° ŠøŠ»Šø ŃŃŃŠµŠ»ŠŗŠøŃŠµ Š½Š° ŠŗŠ»Š°Š²ŠøŠ°ŃŃŃŠ°ŃŠ°." + +#: evince.xml:307(para) +msgid "" +"Drag the display area in the opposite direction to the direction in which " +"you want to scroll. For example, to scroll down the page, drag the display " +"area upwards in the window." +msgstr "" +"ŠŠ·ŃŠµŠ³Š»ŠµŃŠµ ŃŠ°Š¹Š¾Š½Š° Š½Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š² Š¾Š±ŃŠ°ŃŠ½Š°ŃŠ° ŠæŠ¾ŃŠ¾ŠŗŠ°, Š½Š° ŠŗŠ¾ŃŃŠ¾ ŠøŃŠŗŠ°ŃŠµ Š“Š° " +"ŠæŃŠµŠ¼ŠµŃŃŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°. ŠŃŠøŠ¼ŠµŃŠ½Š¾, Š°ŠŗŠ¾ ŠøŃŠŗŠ°ŃŠµ Š“Š° ŠæŃŠµŠ»ŠøŃŃŠøŃŠµ Š½Š°Š“Š¾Š»Ń, ŠøŠ·ŃŠµŠ³Š»ŠµŃŠµ " +"ŃŠ°Š¹Š¾Š½Š° Š½Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š°Š³Š¾ŃŠµ." + +#: evince.xml:310(para) +msgid "Use the scrollbars on the window." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ»ŃŠ·Š³Š°ŃŠ° Š·Š° ŠæŃŠµŠ»ŠøŃŃŠ²Š°Š½Šµ Š¾ŃŃŃŃŠ°Š½Šø Š½Š° ŠæŃŠ¾Š·Š¾ŃŠµŃŠ°." + +#: evince.xml:317(title) +msgid "To Change the Page Size" +msgstr "ŠŃŠ¾Š¼ŃŠ½Š° ŃŠ°Š·Š¼ŠµŃŠ° Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°" + +#: evince.xml:318(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"ŠŠ¾Š¶Šµ Š“Š° ŠøŠ·ŠæŠ¾Š»Š·Š²Š°ŃŠµ ŃŠ»ŠµŠ“Š½ŠøŃŠµ Š¼ŠµŃŠ¾Š“Šø, Š·Š° Š“Š° ŠæŃŠµŠ¾ŃŠ°Š·Š¼ŠµŃŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠ° Š² ŃŠ°Š¹Š¾Š½Š° Š½Š° " +"ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° <application>Evince</application>:" + +#: evince.xml:323(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° ŃŠ²ŠµŠ»ŠøŃŠøŃŠµ ŃŠ°Š·Š¼ŠµŃŠ° Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</" +"guimenu><guimenuitem>Š£Š²ŠµŠ»ŠøŃŠ°Š²Š°Š½Šµ</guimenuitem></menuchoice>." + +#: evince.xml:328(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š½Š°Š¼Š°Š»ŠøŃŠµ ŃŠ°Š·Š¼ŠµŃŠ° Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</" +"guimenu><guimenuitem>ŠŠ°Š¼Š°Š»ŃŠ²Š°Š½Šµ</guimenuitem></menuchoice>." + +#: evince.xml:333(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° ŠæŃŠµŠ¾ŃŠ°Š·Š¼ŠµŃŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠ°, ŃŠ°ŠŗŠ° ŃŠµ Š“Š° ŠøŠ¼Š° ŃŃŃŠ°ŃŠ° ŃŠøŃŠøŠ½Š° ŠŗŠ°ŃŠ¾ ŃŠ°Š¹Š¾Š½Š° Š½Š° " +"ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° <application>Evince</application>, ŠøŠ·Š±ŠµŃŠµŃŠµ " +"<menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</guimenu><guimenuitem>ŠŠ°ŠæŃŠ»Š²Š°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ° ŠæŠ¾ " +"ŃŠøŃŠøŠ½Š°</guimenuitem></menuchoice>." + +#: evince.xml:338(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° ŠæŃŠµŠ¾ŃŠ°Š·Š¼ŠµŃŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠ°, ŃŠ°ŠŗŠ° ŃŠµ ŠæŠ°ŃŠ½Šµ ŠŗŠ°ŃŠ¾ Š³Š¾Š»ŠµŠ¼ŠøŠ½Š° Š½Š° ŃŠ°Š¹Š¾Š½Š° Š½Š° " +"ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° <application>Evince</application>, ŠøŠ·Š±ŠµŃŠµŃŠµ " +"<menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</guimenu><guimenuitem>ŠŠ°ŠæŃŠ»Š²Š°Š½Šµ Š½Š° ŠµŠŗŃŠ°Š½Š°</" +"guimenuitem></menuchoice>." + +#: evince.xml:343(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"ŠŠ° Š“Š° ŠæŃŠµŠ¾ŃŠ°Š·Š¼ŠµŃŠøŃŠµ ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° Š½Š° <application>Evince</application>, ŃŠ°ŠŗŠ° ŃŠµ " +"Š“Š° ŠøŠ¼Š° ŃŃŃŠ°ŃŠ° Š“ŃŠ»Š¶ŠøŠ½Š° Šø Š²ŠøŃŠ¾ŃŠøŠ½Š° ŠŗŠ°ŃŠ¾ ŠµŠŗŃŠ°Š½Š°, ŠøŠ·Š±ŠµŃŠµŃŠµ " +"<menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</guimenu><guimenuitem>Š¦ŃŠ» ŠµŠŗŃŠ°Š½</guimenuitem></" +"menuchoice>. ŠŠ° Š²ŃŃŠ½ŠµŃŠµ ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° Š½Š° <application>Evince</application> ŠŗŃŠ¼ " +"ŠæŃŠµŠ“ŠøŃŠ½ŠøŃŠµ Š¼Ń ŃŠ°Š·Š¼ŠµŃŠø, Š½Š°ŃŠøŃŠ½ŠµŃŠµ Š½Š° Š±ŃŃŠ¾Š½Š° <guibutton>ŠŠ°ŠæŃŃŠŗŠ°Š½Šµ Š½Š° ŃŠµŠ¶ŠøŠ¼ " +"āŠ¦ŃŠ» ŠµŠŗŃŠ°Š½ā</guibutton>." + +#: evince.xml:351(title) +msgid "To View Pages or Document Structure" +msgstr "ŠŠ° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° ŃŃŃŠ°Š½ŠøŃŠøŃŠµ ŠøŠ»Šø ŃŃŃŃŠŗŃŃŃŠ°ŃŠ° Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: evince.xml:352(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "ŠŠ° ŠæŃŠµŠ³Š»ŠµŠ¶Š“Š°ŃŠµ Š¾ŃŠ¼ŠµŃŠŗŠøŃŠµ ŠøŠ»Šø ŃŃŃŠ°Š½ŠøŃŠøŃŠµ, ŃŠ»ŠµŠ“Š²Š°Š¹ŃŠµ ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŃŃŃŠæŠŗŠø:" + +#: evince.xml:356(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>ŠŠ·Š³Š»ŠµŠ“</guimenu><guimenuitem>Š”ŃŃŠ°Š½ŠøŃŠ½Š° Š»ŠµŠ½ŃŠ°</" +"guimenuitem></menuchoice> ŠøŠ»Šø Š½Š°ŃŠøŃŠ½ŠµŃŠµ <keycap>F9</keycap>." + +#: evince.xml:361(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ°Š“Š°ŃŠøŃ ŃŠæŠøŃŃŠŗ Š² Š³Š¾ŃŠ½Š°ŃŠ° ŃŠ°ŃŃ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ½ŠøŃ ŠæŠ°Š½ŠµŠ», Š·Š° Š“Š° " +"ŠøŠ·Š±ŠµŃŠµŃŠµ Š“Š°Š»Šø Š“Š° ŠæŠ¾ŠŗŠ°Š·Š²Š° ŃŃŃŠŗŃŃŃŠ°ŃŠ° Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠøŠ»Šø ŃŃŃŠ°Š½ŠøŃŠøŃŠµ." + +#: evince.xml:366(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ»ŃŠ·Š³Š°ŃŠøŃŠµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ½ŠøŃ ŠæŠ°Š½ŠµŠ», Š·Š° Š“Š° ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠµ Š½ŠµŠ¾Š±Ń Š¾Š“ŠøŠ¼ŠøŃ " +"Š¾Š±ŠµŠŗŃ ŠøŠ»Šø ŃŃŃŠ°Š½ŠøŃŠ° Š² ŃŃŃŠ°Š½ŠøŃŠ½ŠøŃ ŠæŠ°Š½ŠµŠ»." + +#: evince.xml:371(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŠµŃŠµ Š²ŃŃŃ Ń Š½ŃŠŗŠ¾Š¹ Š·Š°ŠæŠøŃ, Š·Š° Š“Š° Š¾ŃŠøŠ“ŠµŃŠµ ŠŗŃŠ¼ Š½ŠµŠ³Š¾ Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. ŠŠ°ŃŠøŃŠ½ŠµŃŠµ " +"Š½Š° Š½ŃŠŗŠ¾Ń ŃŃŃŠ°Š½ŠøŃŠ°, Š·Š° Š“Š° Š¾ŃŠøŠ“ŠµŃŠµ ŠŗŃŠ¼ Š½ŠµŃ Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:377(title) +msgid "To View the Properties of a Document" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š½Š°ŃŃŃŠ¾Š¹ŠŗŠøŃŠµ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: evince.xml:378(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠµ Š½Š°ŃŃŃŠ¾Š¹ŠŗŠøŃŠµ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŠøŠ·Š±ŠµŃŠµŃŠµ " +"<menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø</guimenuitem></" +"menuchoice>." + +#: evince.xml:384(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"ŠŃŠ¾Š·Š¾ŃŠµŃŃŃ <guilabel>ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø</guilabel> ŠæŠ¾ŠŗŠ°Š·Š²Š° ŃŃŠ»Š°ŃŠ° Š½Š°Š»ŠøŃŠ½Š° ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ." + +#: evince.xml:390(title) +msgid "To Print a Document" +msgstr "Š Š°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: evince.xml:391(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° ŃŠ°Š·ŠæŠµŃŠ°ŃŠ°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠµŃŠ°Ń</guimenuitem></menuchoice>." + +#: evince.xml:395(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"ŠŠŗŠ¾ Š½Šµ Š¼Š¾Š¶ŠµŃŠµ Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠ° <guimenuitem>ŠŠµŃŠ°Ń</guimenuitem>, Š°Š²ŃŠ¾ŃŃŃ " +"Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Šµ ŠøŠ·ŠŗŠ»ŃŃŠøŠ» Š¾ŠæŃŠøŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń Š·Š° ŃŠ¾Š·Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń. ŠŠ° Š“Š° Š²ŠŗŠ»ŃŃŠøŃŠµ " +"Š¾ŠæŃŠøŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń, ŃŃŃŠ±Š²Š° Š“Š° Š²ŃŠ²ŠµŠ“ŠµŃŠµ Š³Š»Š°Š²Š½Š°ŃŠ° ŠæŠ°ŃŠ¾Š»Š°, ŠŗŠ¾Š³Š°ŃŠ¾ Š¾ŃŠ²Š°ŃŃŃŠµ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. ŠŠøŠ¶ŃŠµ <xref linkend=\"evince-password\"/> Š·Š° ŠæŠ¾Š²ŠµŃŠµ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ " +"Š¾ŃŠ½Š¾ŃŠ½Š¾ ŠæŠ°ŃŠ¾Š»Š½Š¾ Š·Š°ŃŠøŃŠµŠ½ŠøŃŠµ ŃŠ°Š¹Š»Š¾Š²Šµ." + +#: evince.xml:399(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "ŠŃŠ¾Š·Š¾ŃŠµŃŃŃ Š·Š° <guilabel>ŠŠµŃŠ°Ń</guilabel> ŠøŠ¼Š° ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŃŠ°Š·Š“ŠµŠ»Šø:" + +#: evince.xml:405(link) evince.xml:421(title) +msgid "Job" +msgstr "ŠŠ°Š“Š°ŃŠ°" + +#: evince.xml:410(link) evince.xml:443(title) evince.xml:445(guilabel) +msgid "Printer" +msgstr "ŠŃŠøŠ½ŃŠµŃ" + +#: evince.xml:415(link) evince.xml:537(title) +msgid "Paper" +msgstr "Š„Š°ŃŃŠøŃ" + +#: evince.xml:423(guilabel) +msgid "Print range" +msgstr "ŠŠ±Ń Š²Š°Ń Š½Š° ŠæŠµŃŠ°ŃŠ°" + +#: evince.xml:425(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ ŠµŠ“Š½Š° Š¾Ń ŃŠ»ŠµŠ“Š½ŠøŃŠµ Š¾ŠæŃŠøŠø, Š·Š° Š“Š° Š¾ŠæŃŠµŠ“ŠµŠ»ŠøŃŠµ ŠŗŠ¾Š»ŠŗŠ¾ ŃŃŃŠ°Š½ŠøŃŠø Š“Š° Š±ŃŠ“Š°Ń " +"Š¾ŃŠæŠµŃŠ°ŃŠ°Š½Šø:" + +#: evince.xml:428(guilabel) +msgid "All" +msgstr "ŠŃŠøŃŠŗŠø" + +#: evince.xml:429(para) +msgid "Select this option to print all of the pages in the document." +msgstr "ŠŠ·Š±ŠµŃŠµŃŠµ ŃŠ°Š·Šø Š¾ŠæŃŠøŃ, Š·Š° Š“Š° ŃŠ°Š·ŠæŠµŃŠ°ŃŠ°ŃŠµ Š²ŃŠøŃŠŗŠø ŃŃŠ°Š½ŠøŃŠø Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:432(guilabel) +msgid "Pages From" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠø Š¾Ń" + +#: evince.xml:433(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ ŃŠ°Š·Šø Š¾ŠæŃŠøŃ, Š·Š° Š“Š° ŃŠ°Š·ŠæŠµŃŠ°ŃŠ°ŃŠµ ŠøŠ·Š±ŃŠ°Š½ŠøŃŃ Š¾Š±Ń Š²Š°Ń Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø Š² " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ¾Š»ŠµŃŠ°ŃŠ°, Š·Š° Š“Š° Š¾ŠæŃŠµŠ“ŠµŠ»ŠøŃŠµ ŠæŃŃŠ²Š°ŃŠ° Šø ŠæŠ¾ŃŠ»ŠµŠ“Š½Š°ŃŠ° " +"ŃŃŃŠ°Š½ŠøŃŠ° Š½Š° Š¾Š±Ń Š²Š°ŃŠ°." + +#: evince.xml:447(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ°Š“Š°ŃŠøŃ ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ ŠæŃŠøŠ½ŃŠµŃŠ°, Š½Š° ŠŗŠ¾Š¹ŃŠ¾ ŠøŃŠŗŠ°ŃŠµ Š“Š° " +"Š¾ŃŠæŠµŃŠ°ŃŠ°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:449(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"ŠŠæŃŠøŃŃŠ° <guilabel>Š”ŃŠ·Š“Š°Š²Š°Š½Šµ Š½Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń</guilabel> Š½Šµ Šµ ŠæŠ¾Š“Š“ŃŃŠ¶Š°Š½Š° Š² " +"ŃŠ°Š·Šø Š²ŠµŃŃŠøŃ Š½Š° <application>Evince</application>." + +#: evince.xml:455(guilabel) +msgid "Settings" +msgstr "ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø" + +#: evince.xml:457(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ°Š“Š°ŃŠøŃ ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø Š·Š° ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: evince.xml:459(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"ŠŠ° Š“Š° ŠŗŠ¾Š½ŃŠøŠ³ŃŃŠøŃŠ°ŃŠµ ŠæŃŠøŠ½ŃŠµŃŠ°, Š½Š°ŃŠøŃŠ½ŠµŃŠµ <guibutton>ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø</guibutton>. " +"ŠŃŠøŠ¼ŠµŃŠ½Š¾, Š¼Š¾Š¶Šµ Š“Š° Š²ŠŗŠ»ŃŃŠøŃŠµ ŠøŠ»Šø ŠøŠ·ŠŗŠ»ŃŃŠøŃŠµ ŠæŠµŃŠ°ŃŠ°Š½Šµ Š¾Ń Š“Š²ŠµŃŠµ ŃŃŃŠ°Š½Šø ŠøŠ»Šø Š“Š° " +"Š½Š°ŃŃŃŠ¾ŠøŃŠµ ŠæŠµŃŠ°ŃŠ°Š½Šµ Š² ŃŠ¾ŃŠ½Š¾ Š²ŃŠµŠ¼Šµ, Š°ŠŗŠ¾ ŃŠ°Š·Šø ŃŃŠ½ŠŗŃŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ Šµ ŠæŠ¾Š“Š“ŃŃŠ¶Š°Š½Š° Š¾Ń " +"ŠæŃŠøŠ½ŃŠµŃŠ° ŠŠø." + +#: evince.xml:463(guilabel) +msgid "Location" +msgstr "ŠŠµŃŃŠ¾ŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: evince.xml:465(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŠæŠ°Š“Š°ŃŠøŃ ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ ŠµŠ“Š½Š¾ Š¾Ń ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŠæŠµŃŠ°ŃŠ½Šø " +"Š“ŠµŃŃŠøŠ½Š°ŃŠøŠø:" + +#: evince.xml:470(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: evince.xml:472(para) +msgid "Print the document to a CUPS printer." +msgstr "Š Š°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½Š° CUPS ŠæŃŠøŠ½ŃŠµŃ." + +#: evince.xml:476(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"ŠŠŗŠ¾ ŠøŠ·Š±ŃŠ°Š½ŠøŃŃ ŠæŃŠøŠ½ŃŠµŃ Šµ CUPS ŠæŃŠøŠ½ŃŠµŃ, <guilabel>CUPS</guilabel> ŃŠµ Šµ " +"ŠµŠ“ŠøŠ½ŃŃŠ²ŠµŠ½ŠøŃŃ Š·Š°ŠæŠøŃ Š² ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ." + +#: evince.xml:483(guilabel) +msgid "lpr" +msgstr "lpr" + +#: evince.xml:485(para) +msgid "Print the document to a printer." +msgstr "Š Š°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½Š° ŠæŃŠøŠ½ŃŠµŃ." + +#: evince.xml:491(guilabel) +msgid "File" +msgstr "Š¤Š°Š¹Š»" + +#: evince.xml:493(para) +msgid "Print the document to a PostScript file." +msgstr "Š Š°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š² PostScript ŃŠ°Š¹Š»." + +#: evince.xml:496(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŠµŃŠµ <guibutton>ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ ŠŗŠ°ŃŠ¾</guibutton>, Š·Š° Š“Š° ŃŠµ ŠæŠ¾ŃŠ²Šø ŠæŃŠ¾Š·Š¾ŃŠµŃ, " +"ŠŗŃŠ“ŠµŃŠ¾ Š“Š° Š¾ŠæŃŠµŠ“ŠµŠ»ŠøŃŠµ ŠøŠ¼ŠµŃŠ¾ Šø Š¼ŠµŃŃŠ¾ŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµŃŠ¾ Š½Š° PostScript ŃŠ°Š¹Š»Š°." + +#: evince.xml:502(guilabel) +msgid "Custom" +msgstr "ŠŠ¾ ŠøŠ·Š±Š¾Ń" + +#: evince.xml:504(para) +msgid "Use the specified command to print the document." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š½Šµ Š½Š° ŃŠŗŠ°Š·Š°Š½Š°ŃŠ° ŠŗŠ¾Š¼Š°Š½Š“Š°, Š·Š° Š“Š° ŃŠ°Š·ŠæŠµŃŠ°ŃŠ°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:507(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"ŠŃŠ²ŠµŠ“ŠµŃŠµ ŠøŠ¼ŠµŃŠ¾ Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŠ° Š² ŃŠµŠŗŃŃŠ¾Š²Š¾ŃŠ¾ ŠæŠ¾Š»Šµ. ŠŠŗŠ»ŃŃŠµŃŠµ Š²ŃŠøŃŠŗŠø ŠŗŠ¾Š¼Š°Š½Š“Š½Šø " +"Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠø." + +#: evince.xml:515(guilabel) +msgid "State" +msgstr "Š”ŃŃŃŠ¾ŃŠ½ŠøŠµ" + +#: evince.xml:517(para) evince.xml:523(para) evince.xml:529(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Š¢Š°Š·Šø ŃŃŠ½ŠŗŃŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ Š½Šµ ŃŠµ ŠæŠ¾Š“Š“ŃŃŠ¶Š° Š¾Ń ŃŠ°Š·Šø Š²ŠµŃŃŠøŃ Š½Š° <application>Evince</" +"application>." + +#: evince.xml:521(guilabel) +msgid "Type" +msgstr "ŠŠøŠ“" + +#: evince.xml:527(guilabel) +msgid "Comment" +msgstr "ŠŠ¾Š¼ŠµŠ½ŃŠ°Ń" + +#: evince.xml:539(guilabel) +msgid "Paper size" +msgstr "Š Š°Š·Š¼ŠµŃ Š½Š° Ń Š°ŃŃŠøŃŃŠ°" + +#: evince.xml:541(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ ŃŠ°Š·Š¼ŠµŃ Š½Š° Ń Š°ŃŃŠøŃŃŠ°, Š½Š° ŠŗŠ¾ŃŃŠ¾ " +"ŠøŃŠŗŠ°ŃŠµ Š“Š° ŠæŠµŃŠ°ŃŠ°ŃŠµ." + +#: evince.xml:544(guilabel) +msgid "Width" +msgstr "ŠØŠøŃŠøŠ½Š°" + +#: evince.xml:546(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š²Š° ŠæŠ¾Š»Šµ, Š·Š° Š“Š° Š¾ŠæŃŠµŠ“ŠµŠ»ŠøŃŠµ ŃŠøŃŠøŠ½Š°ŃŠ° Š½Š° Ń Š°ŃŃŠøŃŃŠ°. ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ " +"Š±Š»ŠøŠ·ŠŗŠøŃ ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠæŃŠ¾Š¼ŠµŠ½ŠøŃŠµ Š¼ŠµŃŠ½Š°ŃŠ° ŠµŠ“ŠøŠ½ŠøŃŠ°." + +#: evince.xml:549(guilabel) +msgid "Height" +msgstr "ŠŠøŃŠ¾ŃŠøŠ½Š°" + +#: evince.xml:551(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š²Š° ŠæŠ¾Š»Šµ, Š·Š° Š“Š° Š¾ŠæŃŠµŠ“ŠµŠ»ŠøŃŠµ Š²ŠøŃŠ¾ŃŠøŠ½Š°ŃŠ° Š½Š° Ń Š°ŃŃŠøŃŃŠ°." + +#: evince.xml:554(guilabel) +msgid "Feed orientation" +msgstr "ŠŃŠøŠµŠ½ŃŠ°ŃŠøŃ Š½Š° Š»ŠøŃŃŠ¾ŠæŠ¾Š“Š°Š²Š°Š½ŠµŃŠ¾" + +#: evince.xml:556(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŃŃŠ° Š½Š° Ń Š°ŃŃŠøŃŃŠ° Š·Š° " +"ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: evince.xml:559(guilabel) +msgid "Page orientation" +msgstr "ŠŃŠøŠµŠ½ŃŠ°ŃŠøŃ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°" + +#: evince.xml:561(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŃŃŠ° Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°." + +#: evince.xml:564(guilabel) +msgid "Layout" +msgstr "ŠŃŠ¾ŃŠ¼Š»ŠµŠ½ŠøŠµ" + +#: evince.xml:566(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ Š¾ŃŠ¾ŃŠ¼Š»ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ°. " +"ŠŃŠµŠ“Š²Š°ŃŠøŃŠµŠ»ŠµŠ½ ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š²ŃŃŠŗŠ¾ Š¾ŃŠ¾ŃŠ¼Š»ŠµŠ½ŠøŠµ ŃŠµ ŠæŠ¾ŠŗŠ°Š·Š²Š° Š² ŃŠ°Š¹Š¾Š½Š° Š·Š° " +"<guilabel>ŠŃŠµŠ³Š»ŠµŠ“</guilabel>" + +#: evince.xml:569(guilabel) +msgid "Paper Tray" +msgstr "ŠŠ¾Š½ŃŠµŠ¹Š½ŠµŃ Š·Š° Ń Š°ŃŃŠøŃŃŠ°" + +#: evince.xml:571(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š¹ŃŠµ ŃŠ¾Š·Šø ŠæŠ°Š“Š°Ń ŃŠæŠøŃŃŠŗ, Š·Š° Š“Š° ŠøŠ·Š±ŠµŃŠµŃŠµ ŠŗŠ¾Š½ŃŠµŠ¹Š½ŠµŃŠ° Š·Š° Ń Š°ŃŃŠøŃŃŠ°." + +#: evince.xml:581(title) +msgid "To Copy a Document" +msgstr "ŠŠ¾ŠæŠøŃŠ°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: evince.xml:582(para) +msgid "To copy a file, perform the following steps:" +msgstr "ŠŠ° Š“Š° ŠŗŠ¾ŠæŠøŃŠ°ŃŠµ ŃŠ°Š¹Š», ŃŠ»ŠµŠ“Š²Š°Š¹ŃŠµ ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŃŃŃŠæŠŗŠø:" + +#: evince.xml:586(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"ŠŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµ</" +"guimenuitem></menuchoice>." + +#: evince.xml:591(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"ŠŃŠ²ŠµŠ“ŠµŃŠµ Š½Š¾Š²Š¾ŃŠ¾ ŃŠ°Š¹Š»Š¾Š²Š¾ ŠøŠ¼Šµ Š² ŠæŠ¾Š»ŠµŃŠ¾ <guilabel>ŠŠ¼Šµ</guilabel> Š² ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° " +"<guilabel>ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµ</guilabel>." + +#: evince.xml:594(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"ŠŠŗŠ¾ Šµ Š½ŃŠ¶Š½Š¾, Š¾ŠæŃŠµŠ“ŠµŠ»ŠµŃŠµ Š¼ŠµŃŃŠ¾ŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŠŗŠ¾ŠæŠøŃŠ°Š½ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń. ŠŠ¾ " +"ŠæŠ¾Š“ŃŠ°Š·Š±ŠøŃŠ°Š½Šµ, ŠŗŠ¾ŠæŠøŃŃŠ° ŃŠµ Š·Š°ŠæŠ°Š·Š²Š°Ń Š² Š“Š¾Š¼Š°ŃŠ½Š°ŃŠ° ŠŠø ŠæŠ°ŠæŠŗŠ°." + +#: evince.xml:599(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "ŠŠ°ŃŠøŃŠ½ŠµŃŠµ <guibutton>ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ</guibutton>." + +#: evince.xml:608(title) +msgid "To Work With Password-Protected Documents" +msgstr "Š Š°Š±Š¾ŃŠ° Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø, Š·Š°ŃŠøŃŠµŠ½Šø Ń ŠæŠ°ŃŠ¾Š»Š°" + +#: evince.xml:609(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"ŠŠ²ŃŠ¾ŃŃŃ Š¼Š¾Š¶Šµ Š“Š° ŠøŠ·ŠæŠ¾Š»Š·Š²Š° ŃŠ»ŠµŠ“Š½ŠøŃŠµ ŠæŠ°ŃŠ¾Š»Š½Šø Š½ŠøŠ²Š°, Š·Š° Š“Š° Š·Š°ŃŠøŃŠ°Š²Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠµ:" + +#: evince.xml:614(para) +msgid "User password that allows others only to read the document." +msgstr "" +"ŠŠ¾ŃŃŠµŠ±ŠøŃŠµŠ»ŃŠŗŠ° ŠæŠ°ŃŠ¾Š»Š°, ŠŗŠ¾ŃŃŠ¾ ŠæŠ¾Š·Š²Š¾Š»ŃŠ²Š° Š½Š° Š“ŃŃŠ³Šø Ń Š¾ŃŠ° ŃŠ°Š¼Š¾ Š“Š° ŃŠµŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:618(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"ŠŠ»Š°Š²Š½Š° ŠæŠ°ŃŠ¾Š»Š°, ŠŗŠ¾ŃŃŠ¾ ŠæŠ¾Š·Š²Š¾Š»ŃŠ²Š° Š“ŃŃŠ³Šø Š“Š° ŠøŠ·ŠæŃŠ»Š½ŃŠ²Š°Ń Š“Š¾ŠæŃŠ»Š½ŠøŃŠµŠ»Š½Šø Š“ŠµŠ¹ŃŃŠ²ŠøŃ, " +"ŠŗŠ°ŃŠ¾ ŃŠ°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: evince.xml:622(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"ŠŠ¾Š³Š°ŃŠ¾ ŃŠµ Š¾ŠæŠøŃŠ°ŃŠµ Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠµ ŠæŠ°ŃŠ¾Š»Š½Š¾ Š·Š°ŃŠøŃŠµŠ½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, <application>Evince</" +"application> ŠæŠ¾ŠŗŠ°Š·Š²Š° ŠæŃŠ¾Š·Š¾ŃŠµŃ Š·Š° ŃŠøŠ³ŃŃŠ½Š¾ŃŃŃŠ°. ŠŃŠ²ŠµŠ“ŠµŃŠµ ŠøŠ»Šø ŠæŠ¾ŃŃŠµŠ±ŠøŃŠµŠ»ŃŠŗŠ°ŃŠ° " +"ŠæŠ°ŃŠ¾Š»Š°, ŠøŠ»Šø Š³Š»Š°Š²Š½Š°ŃŠ° ŃŠ°ŠŗŠ°Š²Š° Š² ŠæŠ¾Š»ŠµŃŠ¾ Š·Š° <guilabel>ŠŃŠ²ŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ½Š° " +"ŠæŠ°ŃŠ¾Š»Š°</guilabel> Šø ŠæŠ¾ŃŠ»Šµ Š½Š°ŃŠøŃŠ½ŠµŃŠµ <guibutton>ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń</" +"guibutton>." + +#: evince.xml:629(title) +msgid "To Close a Document" +msgstr "ŠŠ°ŃŠ²Š°ŃŃŠ½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: evince.xml:630(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ° Š“Š° Š·Š°ŃŠ²Š¾ŃŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŠøŠ·Š±ŠµŃŠµŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠ°ŃŠ²Š°ŃŃŠ½Šµ</guimenuitem></menuchoice>." + +#: evince.xml:632(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"ŠŠŗŠ¾ ŠæŃŠ¾Š·Š¾ŃŠµŃŃŃ Šµ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠøŃŃ Š¾ŃŠ²Š¾ŃŠµŠ½ <application>Evince</application> " +"ŠæŃŠ¾Š·Š¾ŃŠµŃ, ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° ŃŠµ ŃŠµ Š·Š°ŃŠ²Š¾ŃŠø." + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: evince.xml:0(None) +msgid "translator-credits" +msgstr "Š Š¾ŃŃŠøŃŠ»Š°Š² \"zbrox\" Š Š°Š¹ŠŗŠ¾Š² <zbrox@i-space.org>, 2005." diff --git a/help/bg/figures/evince_start_window.png b/help/bg/figures/evince_start_window.png new file mode 100644 index 00000000..9fbdb3fd Binary files /dev/null and b/help/bg/figures/evince_start_window.png differ diff --git a/help/ca/ca.po b/help/ca/ca.po new file mode 100644 index 00000000..0f5dce9b --- /dev/null +++ b/help/ca/ca.po @@ -0,0 +1,1281 @@ +# Carles Ferrando Garcia <carles.ferrando@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: Evince\n" +"POT-Creation-Date: 2010-04-21 22:12+0000\n" +"PO-Revision-Date: 2010-04-22 16:06+0200\n" +"Last-Translator: Carles Ferrando Garcia <carles.ferrando@gmail.com>\n" +"Language-Team: catalan <tradmate@softcatala.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Manual del visualitzador de documents Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"L'aplicaciĆ³ de visualitzaciĆ³ de documents Evince us permet visualitzar " +"documents en diferents formats, per exemple el Format de Document Portable " +"(PDF) i PostScript" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Projecte de DocumentaciĆ³ del MATE" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Teniu permĆs per a copiar, distribuir i/o modificar aquest document, sota " +"els termes de la LlicĆØncia de documentaciĆ³ lliure GNU (GFDL), versiĆ³ 1.1 o " +"qualsevol versiĆ³ publicada posteriorment per la Free Software Foundation, " +"sense seccions invariants, sense texts de portada i sense texts de " +"contraportada. Podeu trobar una cĆ²pia de la GFDL en aquest <ulink type=\"help" +"\" url=\"ghelp:fdl\">enllaƧ</ulink> o en el fitxer COPYING-DOCS distribuĆÆt " +"amb aquest manual." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Aquest manual forma part d'una colĀ·lecciĆ³ de manuals del MATE distribuĆÆts " +"sota la GFDL. Si voleu distribuir aquest manual independentment de la " +"colĀ·lecciĆ³, podeu fer-ho afegint una cĆ²pia de la llicĆØncia al manual, tal " +"com es descriu a la secciĆ³ 6 de la llicĆØncia." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Molts dels noms que les empreses utilitzen per a distingir els seus " +"productes i serveis es consideren marques comercials. Quan aquests noms " +"apareguin en qualsevol documentaciĆ³ del MATE, si els membres del Projecte " +"de documentaciĆ³ del MATE han estat avisats pel que fa a les marques, els " +"noms apareixeran en majĆŗscules o amb les inicials en majĆŗscules." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"EL DOCUMENT S'OFEREIX Ā«TAL COM ĆSĀ», SENSE CAP TIPUS DE GARANTIA, NI EXPLĆCITA " +"NI IMPLĆCITA; AIXĆ INCLOU, SENSE LIMITAR-S'HI, LES GARANTIES QUE EL DOCUMENT " +"O LA VERSIĆ MODIFICADA DEL DOCUMENT NO TINGUI DEFECTES, SIGUI " +"COMERCIALITZABLE, SIGUI ADEQUAT PER A UN ĆS CONCRET O NO INFRINGEIXI CAP " +"LLEI. TOT EL RISC PEL QUE FA A LA QUALITAT, EXACTITUD I RENDIMENT DEL " +"DOCUMENT O LA VERSIĆ MODIFICADA DEL DOCUMENT ĆS VOSTRE. EN CAS QUE EL " +"DOCUMENT RESULTĆS DEFECTUĆS EN QUALSEVOL ASPECTE, VĆS (NO PAS L'ESCRIPTOR " +"INICIAL, L'AUTOR O CAP ALTRE COLĀ·LABORADOR) ASSUMIU TOT EL COST DE " +"MANTENIMENT, REPARACIĆ O CORRECCIĆ. AQUESTA RENĆNCIA DE GARANTIA CONSTITUEIX " +"UNA PART ESSENCIAL D'AQUESTA LLICĆNCIA. NO S'AUTORITZA L'ĆS DE CAP DOCUMENT " +"O VERSIĆ MODIFICADA DEL DOCUMENT EXCEPTE SOTA AQUESTA RENĆNCIA DE GARANTIA; " +"I " + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"EN CAP CAS I SOTA CAP INTERPRETACIĆ LEGAL, JA SIGUI PER AGREUJAMENT " +"(INCLOENT-HI LA NEGLIGĆNCIA), CONTRACTE O ALTRE CAS, L'AUTOR, L'ESCRIPTOR " +"ORIGINAL, QUALSEVOL DELS COLĀ·LABORADORS O DISTRIBUĆDORS DEL DOCUMENT O UNA " +"VERSIĆ MODIFICADA DEL DOCUMENT NI CAP PROVEĆDOR D'AQUESTES PARTS NO SERAN " +"RESPONSABLES DAVANT DE NINGĆ PER CAP DANY DIRECTE, INDIRECTE, ESPECIAL, " +"ACCIDENTAL O CONSECUTIU DE QUALSEVOL TIPUS; AIXĆ INCLOU, SENSE LIMITAR-S'HI, " +"ELS DANYS PER PĆRDUA DE CLIENTS, INTERRUPCIONS DE LA FEINA, FALLADA O " +"MALFUNCIONAMENT DE L'ORDINADOR, O QUALSEVOL ALTRA PĆRDUA O DANY RELACIONAT " +"AMB L'ĆS DEL DOCUMENT I LES VERSIONS MODIFICADES DEL DOCUMENT, FINS I TOT SI " +"S'HA INFORMAT AQUESTA PART DE LA POSSIBILITAT D'AQUESTS DANYS." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"EL DOCUMENT I LES VERSIONS MODIFICADES DEL DOCUMENT S'OFEREIXEN SOTA ELS " +"TERMES DE LA LLICĆNCIA DE DOCUMENTACIĆ LLIURE DE GNU, TENINT EN COMPTE QUE: " +"<placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Equip de documentaciĆ³ del MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Manual del visualitzador de documents Evince v1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Manual del visualitzador de documents Evince v1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "" +"Aquest manual descriu la versiĆ³ 0.2 del visualitzador de documents Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Comentaris" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Per informar d'un error o fer suggeriments quant al visualitzador de " +"documents Evince o aquest manual, seguiu les directrius de la <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">PĆ gina de comentaris del MATE</ulink>" + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Visualitzador de documents Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "IntroducciĆ³" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"El <application>visualitzador de documents Evince</application> us permet " +"visualitzar documents en diferents, per exemple el Format de Document " +"Portable (PDF) i PostScript. El <application>visualitzador de documents " +"Evince</application> segueix els estĆ ndards de Freedesktop.org i el MATE " +"per proporcionar integraciĆ³ amb l'entorn d'escriptori." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Primers passos" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Per iniciar el visualitzador de documents Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"El <application>visualitzador de documents Evince</application> s'inicia " +"quan obriu un document PDF o PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Alternativament, podeu iniciar el <application>visualitzador de documents " +"Evince</application> des de la lĆnia d'ordres, amb l'ordre: <command>evince</" +"command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Quan inicieu el visualitzador de documents Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Quan inicieu <application>visualitzador de documents Evince</application>, " +"es mostrarĆ la finestra segĆ¼ent." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Finestra del visualitzador de documents Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Mostra la finestra principal del visualitzador de documents Evince. ContĆ© la " +"barra de tĆtol, la barra de menĆŗ, la barra d'eines i l'Ć rea de " +"visualitzaciĆ³. La barra de menĆŗ contĆ© els menĆŗs Fitxer, Edita, Visualitza, " +"VĆ©s i Ajuda" + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"La finestra del <application>visualitzador de documents Evince</application> " +"contĆ© els elements segĆ¼ents:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "Barra de menĆŗ" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Els menĆŗs de la barra de menĆŗ contenen totes les ordres que necessiteu per " +"treballar amb documents en el <application>visualitzador de documents " +"Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Barra d'eines" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"La barra d'eines contĆ© un subconjunt de les ordres que podeu accedir des de " +"la barra de menĆŗ" + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Ćrea de visualitzaciĆ³" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "L'Ć rea de visualitzaciĆ³ mostra el document." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Component UI" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "AcciĆ³" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Finestra" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Arrossegueu un fitxer a la finestra del <application>visualitzador de " +"documents Evince</application> des d'una altra aplicaciĆ³ com un gestor de " +"fitxers." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Feu un doble clic en un fitxer en el gestor de fitxers" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Trieu <menuchoice><guimenu>Fitxer</guimenu><guimenuitem>Obre</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Tecles de drecera" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Premeu <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"En el <application>visualitzador de documents Evince</application>, podeu " +"fer la mateixa acciĆ³ de moltes maneres diferents. Per exemple, podeu obrir " +"un document de les segĆ¼ents maneres: <informaltable frame=\"all\"><tgroup " +"cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=" +"\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/" +"><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Aquest manual documenta la funcionalitat des de la barra de menĆŗ" + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Ćs" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Per a obrir un document" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Per a obrir un document, seguiu els passos segĆ¼ents:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"En el diĆ leg d'<guilabel>Obre un document</guilabel>, seleccioneu el fitxer " +"que voleu obrir." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Feu clic a <guibutton>Obre</guibutton>. El <application>visualitzador de " +"documents Evince</application> mostra el nom del document en la barra de " +"tĆtol de la finestra." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Per a obrir un altre document, trieu altre cop <menuchoice><guimenu>Fitxer</" +"guimenu><guimenuitem>Obre</guimenuitem></menuchoice>. El " +"<application>visualitzador de documents Evince</application> obre cada " +"fitxer en una finestra nova." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Si proveu d'obrir un document amb un format que no reconeix el " +"<application>visualitzador de documents Evince</application>, l'aplicaciĆ³ " +"mostrarĆ un missatge d'error." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Per navegar a travĆ©s d'un document" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Per navegar per un document heu de fer el segĆ¼ent:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Per veure la pĆ gina segĆ¼ent, trieu <menuchoice><guimenu>VĆ©s</" +"guimenu><guimenuitem>PĆ gina segĆ¼ent</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Per veure la pĆ gina anterior, trieu <menuchoice><guimenu>VĆ©s</" +"guimenu><guimenuitem>PĆ gina anterior</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Per veure la primera pĆ gina del document, trieu <menuchoice><guimenu>VĆ©s</" +"guimenu><guimenuitem>Primera pĆ gina</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Per veure l'Ćŗltima pĆ gina del document, trieu <menuchoice><guimenu>VĆ©s</" +"guimenu><guimenuitem>Ćltima pĆ gina</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Per veure una pĆ gina en concret, entreu el nĆŗmero de pĆ gina o la seva " +"etiqueta en el requadre de text de la barra d'eines, desprĆ©s premeu " +"<keycap>Retorn</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Per desplaƧar-vos per una pĆ gina" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Per mostrar el contingut d'una pĆ gina que no s'estĆ mostrant en l'Ć rea de " +"visualitzaciĆ³, seguiu els mĆØtodes segĆ¼ents:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Feu servir les tecles de fletxa o la tecla d'espai del teclat." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Arrossegueu l'Ć rea de visualitzaciĆ³ fent clic amb el botĆ³ del mig en " +"qualsevol lloc del document i desprĆ©s moveu el ratolĆ. Per exemple, per a " +"desplaƧar-vos cap avall de la pĆ gina, arrossegueu l'Ć rea de visualitzaciĆ³ " +"cap amunt de la finestra." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Utilitzeu les barres de desplaƧament de la finestra" + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Per canviar la mida de la pĆ gina" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"Per redimensionar una pĆ gina en l'Ć rea de visualitzaciĆ³ del " +"<application>visualitzador de documents Evince</application> podeu utilitzar " +"els segĆ¼ents mĆØtodes:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Per incrementar la mida de la pĆ gina, trieu <menuchoice><guimenu>Visualitza</" +"guimenu><guimenuitem>Amplia</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Per decrementar la mida de la pĆ gina, trieu <menuchoice><guimenu>Visualitza</" +"guimenu><guimenuitem>Redueix</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Per redimensionar una pĆ gina perquĆØ tingui la mateixa amplada que l'Ć rea de " +"visualitzaciĆ³ del <application>visualitzador de documents Evince</" +"application>, trieu <menuchoice><guimenu>Visualitza</" +"guimenu><guimenuitem>Ajusta a l'amplada de la pĆ gina</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Per a redimensionar la pĆ gina perquĆØ es vegi en tota l'Ć rea de visualitzaciĆ³ " +"del <application>visualitzador de documents Evince</application>, trieu " +"<menuchoice><guimenu>Visualitza</guimenu><guimenuitem>Millor ajust</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Per a que la finestra del <application>visualitzador de documents Evince</" +"application> tingui la mateixa amplada i alƧada que la pantalla, trieu " +"<menuchoice><guimenu>Visualitza</guimenu><guimenuitem>Pantalla completa</" +"guimenuitem></menuchoice>. Per a redimensionar la finestra del " +"<application>visualitzador de documents Evince</application> a la mida " +"original, feu clic al botĆ³ <guibutton>Surt de pantalla completa</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "" +"Per a visualitzar miniatures de les pĆ gines o l'estructura del document" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Per a veure adreces d'interĆØs o pĆ gines, seguiu els passos segĆ¼ents:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Trieu <menuchoice><guimenu>Visualitza</guimenu><guimenuitem>Barra lateral</" +"guimenuitem></menuchoice> o premeu <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Utilitzeu la llista desplegable en la capƧalera de la subfinestra lateral " +"per seleccionar si voleu visualitzar l'estructura del document o les " +"miniatures de les pĆ gines en subfinestra lateral." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Utilitzeu les barres de desplaƧament de la subfinestra lateral per " +"visualitzar l'element desitjat o la miniatura de la pĆ gina en la subfinestra " +"lateral." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Feu clic en una entrada per navegar a aquella ubicaciĆ³ del document. Feu " +"clic en una miniatura de pĆ gina per navegar a aquella pĆ gina del document." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Per visualitzar les propietats d'un document" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Per visualitzar les propietats d'un document, trieu " +"<menuchoice><guimenu>Fitxer</guimenu><guimenuitem>Propietats</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"El diĆ leg de <guilabel>Propietats</guilabel> mostra tota la informaciĆ³ " +"disponible" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Per a imprimir un document" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Per a imprimir un document, trieu <menuchoice><guimenu>Fitxer</" +"guimenu><guimenuitem>Imprimeix</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Si no podeu triar l'element de menĆŗ <guimenuitem>Imprimeix</guimenuitem>, " +"l'autor del document ha inhabilitat l'opciĆ³ d'impressiĆ³ per a aquest " +"document. Per a habilitar l'opciĆ³ d'impressiĆ³, heu d'entrar la contrasenya " +"mestre quan obriu el document. Vegeu <xref linkend=\"evince-password\"/> per " +"a mĆ©s informaciĆ³ quant al fitxers protegits per contrasenya." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"El diĆ leg <guilabel>Imprimeix</guilabel> contĆ© les segĆ¼ents seccions amb " +"pestanya:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Treball" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Impressora" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Paper" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Rang d'impressiĆ³" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Seleccioneu una de les opcions segĆ¼ents per determinar quantes pĆ gines " +"s'imprimiran:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Totes" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "" +"Seleccioneu aquesta opciĆ³ per a imprimir totes les pĆ gines del document." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "PĆ gines des de" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Seleccioneu aquesta opciĆ³ per a imprimir el rang de pĆ gines seleccionades " +"del document. Utilitzeu les caixes giratĆ²ries per especificar la primera i " +"Ćŗltima pĆ gina del rang." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Utilitzeu la llista desplegable per seleccionar la impressora on imprimir el " +"document." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"L'opciĆ³ <guilabel>Crea un document PDF</guilabel> no estĆ implementada en " +"aquesta versiĆ³ del <application>visualitzador de documents Evince</" +"application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "ConfiguraciĆ³" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" +"Utilitzeu la llista desplegable per seleccionar la configuraciĆ³ de " +"l'impressora." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Per configurar l'impressora, feu clic a <guibutton>Configura</guibutton>. " +"Per exemple, podeu habilitar o inhabilitar la impressiĆ³ a doble cara, o la " +"impressiĆ³ a amb retard planificat, si la impressora permet aquesta opciĆ³." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "UbicaciĆ³" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Utilitza aquesta llista desplegable per seleccionar les segĆ¼ents ubicacions " +"d'impressiĆ³:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Imprimeix el document a una impressora CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Si la impressora seleccionada Ć©s una impressora CUPS, <guilabel>CUPS</" +"guilabel> Ć©s la Ćŗnica entrada en la llista desplegable." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Imprimeix el document a una impressora." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Fitxer" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Imprimeix el document a un fitxer PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Feu clic a <guibutton>Anomena i desa</guibutton> per mostrar el diĆ leg on " +"podeu especificar el nom i la ubicaciĆ³ del fitxer PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Personalitza" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Utilitzeu l'ordre especĆfica per imprimir el document." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Escriviu el nom de l'ordre en el quadre de text. Incloeu tots els arguments " +"de la ordre." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Estat" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Aquesta funcionalitat no estĆ implementada en aquesta versiĆ³ del " +"<application>visualitzador de documents Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Tipus" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Comentari" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Mida del paper" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Utilitzeu aquesta llista desplegable per seleccionar la mida del paper al " +"que voleu imprimir el document." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Amplada" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Utilitzeu aquesta caixa giratĆ²ria per especificar l'amplada del paper. " +"Utilitzeu la llista desplegable del costat per canviar les unitats de mesura." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "AlƧada" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Utilitzeu aquesta caixa giratĆ²ria per especificar l'alƧada del paper." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "OrientaciĆ³ de l'alimentaciĆ³" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Utilitzeu aquesta llista desplegable per seleccionar l'orientaciĆ³ del paper " +"en l'impressora." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "OrientaciĆ³ del paper" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" +"Utilitzeu aquesta llista desplegable per seleccionar l'orientaciĆ³ de la " +"pĆ gina." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "DisposiciĆ³" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Utilitzeu aquesta llista desplegable per seleccionar la disposiciĆ³ de la " +"pĆ gina. En l'Ć rea de <guilabel>PrevisualitzaciĆ³</guilabel> es mostrarĆ una " +"previsualitzaciĆ³ de cada disposiciĆ³ que seleccioneu." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Safata de paper" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "" +"Utilitzeu aquesta llista desplegable per seleccionar la safata de paper." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Per copiar un document" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Per copiar un document, seguiu els passos segĆ¼ents:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Trieu <menuchoice><guimenu>Fitxer</guimenu><guimenuitem>Desa una cĆ²pia</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Escriviu el nom de fitxer nou en el quadre de text <guilabel>Nom del fitxer</" +"guilabel> en el diĆ leg de <guilabel>Desa una cĆ²pia</guilabel>." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Si Ć©s necessari, especifiqueu la ubicaciĆ³ del document copiat. Per defecte, " +"les cĆ²pies es desen en el vostre directori d'inici." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Feu clic a <guibutton>Desa</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Per treballar amb documents protegits per contrasenya" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Un autor pot utilitzar els segĆ¼ents nivells de contrasenya per protegir un " +"document:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "Contrasenya d'usuari per permetre als altres nomĆ©s llegir el document." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Contrasenya mestre que permet als altres fer accions addicionals, com " +"imprimir el document." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Quan intenteu obrir un document protegit per contrasenya, el " +"<application>visualitzador de documents Evince</application> mostra un " +"diĆ leg de seguretat. Escriviu la contrasenya d'usuari o la mestre en el " +"quadre de text <guilabel>Entreu la contrasenya del document</guilabel>, " +"llavors feu clic a <guibutton>Obre el document</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Per tancar un document" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Per tancar un document, trieu <menuchoice><guimenu>Fitxer</" +"guimenu><guimenuitem>Tanca</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Si la finestra Ć©s l'Ćŗltima finestra oberta del <application>visualitzador de " +"documents Evince</application>, es tanca l'aplicaciĆ³." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Dreceres" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"AquĆ sota hi ha la llista de totes les dreceres del " +"<application>visualitzador de documents Evince</application>." + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Drecera" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Obre un document existent" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Desa una cĆ²pia del document actual" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Imprimeix un document" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Tanca la finestra" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copia la selecciĆ³" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Selecciona-ho tot" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (barra inclinada)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Cerca una paraula o frase en el document" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "Cerca la segĆ¼ent" + +#: C/evince.xml:690(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (signe de suma)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Amplia" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (signe de resta)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Redueix" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Torna a carregar el document" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Retrocedir pĆ gina" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "VĆ©s a la pĆ gina anterior" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "AvanƧar pĆ gina" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "VĆ©s a la pĆ gina segĆ¼ent" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "Espai" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "MajĆŗscules" + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "RetrocĆ©s" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "Retorn" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "DesplaƧa endavant" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "DesplaƧa endarrere" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "VĆ©s unes quantes pĆ gines endarrere" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "VĆ©s unes quantes pĆ gines endavant" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Inici" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "VĆ©s a la primera pĆ gina" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "Final" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "VĆ©s a l'Ćŗltima pĆ gina" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "VĆ©s a la pĆ gina per nĆŗmero o etiqueta" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "Ajuda" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Executa el document com a presentaciĆ³" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Mostra o oculta la subfinestra lateral" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Commuta el mode a pantalla completa" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2 +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Gil Forcada <gilforcada@guifi.net>" diff --git a/help/ca/figures/evince_start_window.png b/help/ca/figures/evince_start_window.png new file mode 100644 index 00000000..62235ab1 Binary files /dev/null and b/help/ca/figures/evince_start_window.png differ diff --git a/help/cs/cs.po b/help/cs/cs.po new file mode 100644 index 00000000..b7a087ed --- /dev/null +++ b/help/cs/cs.po @@ -0,0 +1,1257 @@ +# Czech translation of evince +# Copyright (C) YEAR THE evince COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Martin Picek <picek.martin@mate-cesko.cz>, 2009. +# Lucas Lommer <llommer@svn.mate.org>, 2009. (mikroopravy) +# +msgid "" +msgstr "" +"Project-Id-Version: evince mate-2-28\n" +"POT-Creation-Date: 2009-07-15 06:55+0000\n" +"PO-Revision-Date: 2009-07-17 06:41+0100\n" +"Last-Translator: Marek ÄernockĆ½ <marek@manet.cz>\n" +"Language-Team: Czech <mate-cs-list@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Poedit-Language: Czech\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "PÅĆruÄka k prohlĆžeÄi dokumentÅÆ Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"Aplikace prohlĆžeÄ dokumentÅÆ Evince umožÅuje prohlĆženĆ dokumentÅÆ v rÅÆznĆ½ch " +"formĆ”tech souborÅÆ, jako jsou Portable Document Format (PDF) nebo PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "DokumentaÄnĆ projekt MATE" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Je povoleno kopĆrovat, Å”ĆÅit a/nebo upravovat tento dokument za podmĆnek GNU " +"Free Documentation License (GFDL) ve verzi 1.1 nebo v jakĆ©koli dalÅ”Ć verzi " +"vydanĆ© nadacĆ Free Software Foundation; bez nemÄnnĆ½ch oddĆlÅÆ, bez textÅÆ " +"pÅednĆch desek a bez textÅÆ zadnĆch desek. Kopii licence GFDL naleznete pod " +"<ulink type=\"help\" url=\"ghelp:fdl\">tĆmto odkazem</ulink> nebo v souboru " +"COPYING-DOCS dodĆ”vanĆ©m s touto pÅĆruÄkou." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Tato pÅĆruÄka je souÄĆ”stĆ sbĆrky pÅĆruÄek MATE Å”ĆÅenĆ½ch za podmĆnek licence " +"GNU FDL. Pokud chcete tento dokument Å”ĆÅit oddÄlenÄ od sbĆrky, musĆte " +"pÅiložit kopii licence dle popisu v oddĆlu 6 danĆ© licence." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Mnoho užĆvanĆ½ch nĆ”zvÅÆ urÄenĆ½ch k zviditelnÄnĆ produktÅÆ nebo služeb jsou " +"ochrannĆ© znĆ”mky. Na mĆstech, kde jsou tato jmĆ©na v dokumentaci užita a " +"ÄlenovĆ© DokumentaÄnĆho projektu MATE jsou si vÄdomi skuteÄnosti, že se " +"jednĆ” o ochrannou znĆ”mku, je takovĆ© jmĆ©no psĆ”no velkĆ½mi pĆsmeny celĆ© nebo s " +"velkĆ½m pĆsmenem na zaÄĆ”tku." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DOKUMENT JE POSKYTOVĆN V PODOBÄ āJAK JEā BEZ ZĆRUKY V JAKĆKOLIV PODOBÄ, " +"NEPOSKYTUJĆ SE ANI ODVOZENĆ ZĆRUKY, ZĆRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENĆ " +"VERZE, JE BEZCHYBNĆ NEBO ZĆRUKY PRODEJNOSTI, VHODNOSTI PRO URÄITĆ ĆÄEL NEBO " +"NEPORUÅ ENOSTI. RIZIKO NEKVALITY, NEPÅESNOSTI A Å PATNĆHO PROVEDENĆ DOKUMENTU, " +"NEBO JEHO UPRAVENĆ VERZE, LEÅ½Ć NA VĆS. POKUD KVÅ®LI TOMUTO DOKUMENTU, NEBO " +"JEHO UPRAVENĆ VERZI, NASTANE PROBLĆM, VY (NIKOLIV PÅ®VODNĆ AUTOR NEBO " +"JAKĆKOLIV PÅISPÄVATEL) PÅEBĆRĆTE JAKĆKOLIV NĆKLADY ZA NUTNĆ ĆPRAVY, OPRAVY " +"ÄI SLUŽBY. TOTO PROHLĆÅ ENĆ O ZĆRUCE PÅEDSTAVUJE ZĆKLADNĆ SOUÄĆST TĆTO " +"LICENCE. BEZ TOHOTO PROHLĆÅ ENĆ NENĆ, PODLE TĆTO DOHODY, POVOLENO UŽĆVĆNĆ ANI " +"ĆPRAVY TOHOTO DOKUMENTU; DĆLE" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ZA ŽĆDNĆCH OKOLNOSTĆ A ŽĆDNĆCH PRĆVNĆCH PÅEDPOKLADÅ®, AŤ SE JEDNĆ O PÅEÄIN " +"(VÄETNÄ NEDBALOSTNĆCH), SMLOUVU NEBO JINĆ, NENĆ AUTOR, PÅ®VODNĆ PISATEL, " +"KTERĆKOLIV PÅISPÄVATEL NEBO KTERĆKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO " +"UPRAVENĆ VERZE DOKUMENTU NEBO KTERĆKOLIV DODAVATEL NÄKTERĆ Z TÄCHTO STRAN " +"ODPOVÄDNĆ NÄJAKĆ OSOBÄ ZA PÅĆMĆ, NEPÅĆMĆ, SPECIĆLNĆ, NAHODILĆ NEBO NĆSLEDNĆ " +"Å KODY JAKĆHOKOLIV CHARAKTERU, VÄETNÄ, ALE NEJEN, ZA POÅ KOZENĆ ZE ZTRĆTY " +"DOBRĆHO JMĆNA, PÅERUÅ ENĆ PRĆCE, PORUCHY NEBO NESPRĆVNĆ FUNKCE POÄĆTAÄE NEBO " +"JINĆHO A VÅ ECH DALÅ ĆCH Å KOD NEBO ZTRĆT VYVSTĆVAJĆCĆCH Z NEBO VZTAHUJĆCĆCH SE " +"K POUŽĆVĆNĆ TOHOTO DOKUMENTU NEBO UPRAVENĆCH VERZĆ DOKUMENTU, I KDYŽ BY " +"TAKOVĆTO STRANA BYLA INFORMOVANĆ O MOŽNOSTI TAKOVĆHOTO POÅ KOZENĆ." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"DOKUMENT A JEHO UPRAVENĆ VERZE JSOU Å ĆÅENY V SOULADU SE ZNÄNĆM LICENCE GNU " +"FREE DOCUMENTATION LICENSE S NĆSLEDUJĆCĆM USTANOVENĆM: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "DokumentaÄnĆ tĆ½m MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "PÅĆruÄka k prohlĆžeÄi dokumentÅÆ Evince V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "5.4.2008" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "PÅĆruÄka k prohlĆžeÄi dokumentÅÆ Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "6.4.2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Tato pÅĆruÄka popisuje prohlĆžeÄ dokumentÅÆ ve verzi 0.2" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Ohlasy" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Pokud chcete oznĆ”mit chybu nebo navrhnout vylepÅ”enĆ vztahujĆcĆ se k aplikaci " +"Evince nebo tĆ©to pÅĆruÄce, postupujte dle instrukcĆ na strĆ”nce <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">ZpÄtnĆ” vazba MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "ProhlĆžeÄ dokumentÅÆ Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Ćvod" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"Aplikace <application>prohlĆžeÄ dokumentÅÆ Evince</application> umožÅuje " +"prohlĆženĆ dokumentÅÆ v rÅÆznĆ½ch formĆ”tech souborÅÆ, jako jsou Portable " +"Document Format (PDF) nebo PostScript. <application>ProhlĆžeÄ dokumentÅÆ " +"Evince</application> ctĆ standardy Freedesktop.org a MATE, aby zajistil " +"integraci s pracovnĆm prostÅedĆm." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "ZaÄĆnĆ”me" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "SpuÅ”tÄnĆ prohlĆžeÄe dokumentÅÆ Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>ProhlĆžeÄ dokumentÅÆ Evince</application> je spuÅ”tÄn, otevÅete-" +"li dokument, jakĆ½m jsou napÅĆklad soubory typu PDF nebo PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"<application>ProhlĆžeÄ dokumentÅÆ Evince</application> mÅÆžete spouÅ”tÄt takĆ© z " +"pÅĆkazovĆ© ÅĆ”dky pomocĆ pÅĆkazu <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Když spustĆte prohlĆžeÄ dokumentÅÆ Evinceā¦" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Když spustĆte <application>prohlĆžeÄ dokumentÅÆ Evince</application>, zobrazĆ " +"se nĆ”sledujĆcĆ okno." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Okno prohlĆžeÄe dokumentÅÆ Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Zobrazuje hlavnĆ okno prohlĆžeÄe dokumentÅÆ Evince. Obsahuje zĆ”hlavĆ, " +"nabĆdkovou liÅ”tu, nĆ”strojovou liÅ”tu a oblast zobrazovĆ”nĆ. NabĆdkovĆ” liÅ”ta " +"obsahuje nabĆdky Soubor, Upravit, Zobrazit, PÅejĆt a NĆ”povÄda." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"Okno <application>prohlĆžeÄe dokumentÅÆ Evince</application> obsahuje " +"nĆ”sledujĆcĆ prvky:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "NabĆdkovĆ” liÅ”ta" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"NabĆdky nabĆdkovĆ© liÅ”ty obsahujĆ vÅ”echny pÅĆkazy potÅebnĆ© k prĆ”ci s " +"dokumenty v <application>prohlĆžeÄi dokumentÅÆ Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "NĆ”strojovĆ” liÅ”ta" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "NĆ”strojovĆ” liÅ”ta obsahuje vybranĆ© pÅĆkazy z nabĆdkovĆ© liÅ”ty." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Oblast zobrazovĆ”nĆ" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "V oblasti zobrazovĆ”nĆ se zobrazujĆ dokumenty." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Komponenta uživatelskĆ©ho rozhranĆ" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "Äinnost" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Okno" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"PÅetĆ”hnutĆ souboru do okna <application>prohlĆžeÄe dokumentÅÆ Evince</" +"application> z jinĆ© aplikace, napÅĆklad ze sprĆ”vce souborÅÆ." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "DvojitĆ© kliknutĆ na nĆ”zev souboru ve sprĆ”vci souborÅÆ." + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"VybrĆ”nĆ <menuchoice><guimenu>Soubor</guimenu><guimenuitem>OtevÅĆtā¦</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "KlĆ”vesovĆ© zkratky" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"StisknutĆ <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"V <application>prohlĆžeÄi dokumentÅÆ Evince</application> lze jednu Äinnost " +"vykonĆ”vat nÄkolika zpÅÆsoby. NapÅĆklad otevĆrat dokumenty je možnĆ© tÄmito " +"zpÅÆsoby: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=" +"\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=" +"\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></" +"informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Tato pÅĆruÄka popisuje funkce nabĆdkovĆ© liÅ”ty." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "PoužĆvĆ”nĆ" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "OtevÅenĆ dokumentu" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Chcete-li otevÅĆt dokument, proveÄte nĆ”sledujĆcĆ kroky:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"V dialogovĆ©m oknÄ <guilabel>OtevÅĆt dokument</guilabel> vyberte soubor, jenž " +"chcete otevÅĆt." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"KliknÄte na <guibutton>OtevÅĆt</guibutton>. <application>ProhlĆžeÄ dokumentÅÆ " +"Evince</application> v zĆ”hlavĆ okna zobrazĆ nĆ”zev dokumentu." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Chcete-li otevÅĆt dalÅ”Ć dokument, vyberte znovu <menuchoice><guimenu>Soubor</" +"guimenu><guimenuitem>OtevÅĆtā¦</guimenuitem></menuchoice>. " +"<application>ProhlĆžeÄ dokumentÅÆ Evince</application> otevĆrĆ” vÅ”echny " +"soubory v novĆ½ch oknech." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Jestliže se pokouÅ”Ćte otevÅĆt dokument ve formĆ”tu, se kterĆ½m " +"<application>prohlĆžeÄ dokumentÅÆ Evince</application> neumĆ pracovat, " +"aplikace zobrazĆ chybovou zprĆ”vu." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Pohyb dokumentem" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Dokumentem se lze pohybovat nĆ”sledujĆcĆmi zpÅÆsoby:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zobrazit nĆ”sledujĆcĆ strĆ”nku, vyberte <menuchoice><guimenu>PÅejĆt</" +"guimenu><guimenuitem>NĆ”sledujĆcĆ strĆ”nka</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zobrazit pÅedchozĆ strĆ”nku, vyberte <menuchoice><guimenu>PÅejĆt</" +"guimenu><guimenuitem>PÅedchozĆ strĆ”nka</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zobrazit prvnĆ strĆ”nku dokumentu, vyberte " +"<menuchoice><guimenu>PÅejĆt</guimenu><guimenuitem>PrvnĆ strĆ”nka</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zobrazit poslednĆ strĆ”nku dokumentu, vyberte " +"<menuchoice><guimenu>PÅejĆt</guimenu><guimenuitem>PoslednĆ strĆ”nka</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Chcete-li zobrazit urÄitou strĆ”nku, zadejte jejĆ ÄĆslo nebo nadpis do " +"textovĆ©ho polĆÄka v nĆ”strojovĆ© liÅ”tÄ a stisknÄte <keycap>Enter</keycap>" + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "PosouvĆ”nĆ se strĆ”nkou" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Chcete-li zobrazit obsah strĆ”nek, kterĆ© prĆ”vÄ nejsou vidÄt v oblasti " +"zobrazovĆ”nĆ, proveÄte jednu z nĆ”sledujĆcĆch ÄinnostĆ:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Použijte smÄrovĆ© Å”ipky nebo mezernĆk na klĆ”vesnici." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"PosuÅte oblast zobrazovĆ”nĆ kliknutĆm prostÅednĆm tlaÄĆtkem myÅ”i nÄkam do " +"dokumentu a jejĆm taženĆm. NapÅĆklad, chcete-li se posunout dolÅÆ, tĆ”hnÄte " +"myÅ”Ć smÄrem nahoru." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Použijte posuvnĆky okna." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "ZmÄna velikosti strĆ”nky" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"ZmÄnu velikosti strĆ”nky v oblasti zobrazovĆ”nĆ <application>prohlĆžeÄe " +"dokumentÅÆ Evince</application> mÅÆžete provĆ©st nĆ”sledujĆcĆmi zpÅÆsoby:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zvÄtÅ”it velikost strĆ”nky, vyberte <menuchoice><guimenu>Zobrazit</" +"guimenu><guimenuitem>ZvÄtÅ”it</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zmenÅ”it velikost strĆ”nky, vyberte <menuchoice><guimenu>Zobrazit</" +"guimenu><guimenuitem>ZmenÅ”it</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li nastavit velikost strĆ”nky na stejnou Å”ĆÅku, jako mĆ” oblast " +"zobrazovĆ”nĆ <application>prohlĆžeÄe dokumentÅÆ Evince</application>, " +"zaÅ”krtnÄte <menuchoice><guimenu>Zobrazit</guimenu><guimenuitem>PÅizpÅÆsobit " +"Å”ĆÅce strĆ”nky</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li nastavit velikost strĆ”nky tak, aby se veÅ”la do oblasti zobrazovĆ”nĆ " +"<application>prohlĆžeÄe dokumentÅÆ Evince</application>, zaÅ”krtnÄte " +"<menuchoice><guimenu>Zobrazit</guimenu><guimenuitem>PÅizpÅÆsobit</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Chcete-li nastavit Å”ĆÅku a vĆ½Å”ku okna <application>prohlĆžeÄe dokumentÅÆ " +"Evince</application> dle obrazovky, zaÅ”krtnÄte " +"<menuchoice><guimenu>Zobrazit</guimenu><guimenuitem>PÅes celou obrazovku</" +"guimenuitem></menuchoice>. Chcete-li nastavit okno <application>prohlĆžeÄe " +"dokumentÅÆ Evince</application> na pÅÆvodnĆ velikost, kliknÄte na tlaÄĆtko " +"<guibutton>Opustit celou obrazovku</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "ZobrazenĆ struktury strĆ”nky nebo dokumentu" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Chcete-li zobrazit zĆ”ložky nebo strĆ”nky, proveÄte nĆ”sledujĆcĆ kroky:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"ZaÅ”krtnÄte <menuchoice><guimenu>Zobrazit</guimenu><guimenuitem>PostrannĆ " +"liÅ”ta</guimenuitem></menuchoice>, nebo stisknÄte <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Použijte rozbalovacĆ seznam v zĆ”hlavĆ postrannĆ liÅ”ty a zvolte, zda se v nĆ " +"mĆ” zobrazit struktura dokumentu nebo strĆ”nky." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Použijte posuvnĆky postrannĆ liÅ”ty, aby se v nĆ zobrazila požadovanĆ” " +"položka Äi strĆ”nka." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"KliknÄte na položku a pÅesunete se na mĆsto v dokumentu. KliknÄte na strĆ”nku " +"a v dokumentu se na ni posunete." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "ZobrazenĆ vlastnostĆ dokumentu" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li zobrazit vlastnosti dokumentu, vyberte " +"<menuchoice><guimenu>Soubor</guimenu><guimenuitem>Vlastnosti</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"DialogovĆ© okno <guilabel>Vlastnosti</guilabel> zobrazuje vÅ”echny dostupnĆ© " +"informace." + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Tisk dokumentu" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li dokument vytisknout, vyberte <menuchoice><guimenu>Soubor</" +"guimenu><guimenuitem>Tiskā¦</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Jestliže nemÅÆžete v nabĆdce položku <guimenuitem>Tiskā¦</guimenuitem> vybrat, " +"autor dokumentu možnost tisku tohoto dokumentu zakĆ”zal. Chcete-li tuto " +"možnost povolit, musĆte pÅi otevĆrĆ”nĆ dokumentu zadat hlavnĆ heslo. Chcete-" +"li se o heslem chrĆ”nÄnĆ½ch souborech dovÄdÄt vĆce, pÅeÄtÄte si <xref linkend=" +"\"evince-password\"/>." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "DialogovĆ© okno <guilabel>Vytisknout</guilabel> mĆ” nĆ”sledujĆcĆ sekce:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Ćloha" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "TiskĆ”rna" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "PapĆr" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Rozsah tisku" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Zvolte jednu z nĆ”sledujĆcĆch možnostĆ, abyste urÄili, kolik strĆ”nek se bude " +"tisknout:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "VÅ”e" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Zvolte tuto možnost, chctete-li vytisknout vÅ”echny strĆ”nky dokumentu." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "StrĆ”nky od" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Zvolte tuto možnost, chcete-li vytisknout vybranĆ½ rozsah strĆ”nek dokumentu. " +"Použijte ÄĆselnĆky k zadĆ”nĆ prvnĆ a poslednĆ strĆ”nky rozsahu." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Tento rozbalovacĆ seznam použijte k vĆ½bÄru tiskĆ”rny, pomocĆ nĆž chcete tisk " +"dokumentu provĆ©st." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"Volba <guilabel>VytvoÅit dokument PDF</guilabel> nenĆ v tĆ©to verzi " +"<application>prohlĆžeÄe dokumentÅÆ Evince</application> podporovĆ”na." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "NastavenĆ" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Tento rozbalovacĆ seznam použijte k nastavenĆ vlastnostĆ tiskĆ”rny." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Chcete-li nastavit tiskĆ”rnu, kliknÄte na <guibutton>Nastavit</guibutton>. " +"NapÅĆklad mÅÆžete povolit Äi zakĆ”zat duplexnĆ tisk Äi plĆ”novanĆ© odloženĆ " +"tisku, pokud vaÅ”e tiskĆ”rna tyto funkce podporuje." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "UmĆstÄnĆ" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Tento rozbalovacĆ seznam použijte k volbÄ jednoho z nĆ”sledujĆcĆch cĆlÅÆ tisku:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Tisk dokumentu pomocĆ tiskĆ”rny CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Je-li vybranĆ” tiskĆ”rna tiskĆ”rnou CUPS, <guilabel>CUPS</guilabel> je jedinou " +"položkou v rozbalovacĆm seznamu." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Tisk dokumentu pomocĆ tiskĆ”rny." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Soubor" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Tisk dokumentu do souboru PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"KliknÄte na <guibutton>Uložit jako</guibutton>, chcete-li zobrazit dialogovĆ© " +"okno, kam lze zadat nĆ”zev a umĆstÄnĆ souboru PosctScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "VlastnĆ" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "PoužĆt zadanĆ½ pÅĆkaz k tisku dokumentu." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Do vstupnĆho pole zadejte nĆ”zev pÅĆkazu vÄetnÄ vÅ”ech jeho argumentÅÆ " +"pÅĆkazovĆ© ÅĆ”dky." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Stav" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Tato funkce nenĆ touto verzĆ <application>prolĆžeÄe dokumentÅÆ Evince</" +"application> podporovĆ”na." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Typ" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "KomentĆ”Å" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Velikost papĆru" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Tento rozbalovacĆ seznam použijte k volbÄ velikosti papĆru, na kterĆ½ chcete " +"dokument vytisknout." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Å ĆÅka" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Tento ÄĆselnĆk použijte k zadĆ”nĆ Å”ĆÅky strĆ”nky. VedlejÅ”Ć rozbalovacĆ seznam " +"použijte ke zmÄnÄ jednotky." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "VĆ½Å”ka" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Tento ÄĆselnĆk použijte k zadĆ”nĆ vĆ½Å”ky papĆru." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Orientace zĆ”sobnĆku" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "Tento rozbalovacĆ seznam použijte k volbÄ orientace papĆru v tiskĆ”rnÄ." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Orientace strĆ”nky" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Tento rozbalovacĆ seznam použijte k volbÄ orientace strĆ”nky." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "RozvrženĆ" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Tento rozbalovacĆ seznam použijte k volbÄ rozvrženĆ strĆ”nky. V oblasti " +"<guilabel>NĆ”hled</guilabel> se zobrazuje nĆ”hled vybranĆ©ho rozvrženĆ." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "PÅihrĆ”dka na papĆr" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Tento rozbalovacĆ seznam použijte k volbÄ pÅihrĆ”dky na papĆr." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "KopĆrovĆ”nĆ dokumentu" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Chcete-li zkopĆrovat soubor, proveÄte nĆ”sledujĆcĆ kroky:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Vyberte <menuchoice><guimenu>Soubor</guimenu><guimenuitem>Uložit kopiiā¦</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"V dialogu <guilabel>Uložit kopii</guilabel> zadejte do vstupnĆho pole " +"<guilabel>NĆ”zev souboru</guilabel> novĆ½ nĆ”zev souboru." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Je-li to potÅeba, zadejte umĆstÄnĆ zkopĆrovanĆ©ho dokumentu. Dle vĆ½chozĆho " +"nastavenĆ se kopie uklĆ”dajĆ do vaÅ”eho domovskĆ©ho adresĆ”Åe." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "KliknÄte na <guibutton>Uložit</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "PrĆ”ce s dokumenty chrĆ”nÄnĆ½mi heslem" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Autor dokumentu mÅÆže k ochranÄ dokumentu použĆt nĆ”sledujĆcĆ ĆŗrovnÄ " +"zaheslovĆ”nĆ:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "UživatelskĆ© heslo umožÅujĆcĆ ostatnĆm ÄĆst dokument." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"HlavnĆ heslo umožÅujĆcĆ ostatnĆm provĆ”dÄt dalÅ”Ć Äinnosti, jako je tisk " +"dokumentu." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Když se pokouÅ”Ćte otevÅĆt heslem chrĆ”nÄnĆ½ dokument, <application>prohlĆžeÄ " +"dokumentÅÆ Evince</application> zobrazuje bezpeÄnostnĆ dialog. Do vstupnĆho " +"polĆÄka <guilabel>Zadejte heslo k dokumentu</guilabel> zadejte buÄ " +"uživatelskĆ© nebo hlavnĆ heslo a pak kliknÄte na <guibutton>OtevÅĆt dokument</" +"guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "ZavÅenĆ dokumentu" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Chcete-li dokument zavÅĆt, vyberte <menuchoice><guimenu>Soubor</" +"guimenu><guimenuitem>ZavÅĆt</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Je-li zavĆranĆ© okno poslednĆm otevÅenĆ½m oknem <application>prohlĆžeÄe " +"dokumentÅÆ Evince</application>, aplikace bude ukonÄena." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "KlĆ”vesovĆ© zkratky" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"NĆže je seznam vÅ”ech klĆ”vesovĆ½ch zkratek dostupnĆ½ch v " +"<application>prohlĆžeÄi dokumentÅÆ Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "KlĆ”vesovĆ” zkratka" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "OtevÅĆt existujĆcĆ dokument" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Uložit kopii aktuĆ”lnĆho dokumentu" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Tisknout dokument" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "ZavÅĆt okno" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "ZkopĆrovat vĆ½bÄr" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Vybrat vÅ”e" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (lomĆtko)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "NajĆt v dokumentu slovo Äi frĆ”zi" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "NajĆt dalÅ”Ć" + +#: C/evince.xml:690(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (symbol plus)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "ZvÄtÅ”it" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (symbol minus)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "ZmenÅ”it" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Obnovit dokument" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "PÅejĆt na pÅedchozĆ strĆ”nku" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "PÅejĆt na nĆ”sledujĆcĆ strĆ”nku" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "MezernĆk" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "Enter" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Posunout vpÅed" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Posunout zpÄt" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "PÅejĆt o nÄkolik strĆ”nek nahoru" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "PÅejĆt o nÄkolik strĆ”nek dolÅÆ" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "PÅejĆt na prvnĆ strĆ”nku" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "PÅejĆt na poslednĆ strĆ”nku" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "PÅejĆt na strĆ”nku dle ÄĆsla strĆ”nky nebo nadpisu" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "NĆ”povÄda" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Spustit dokument jako prezentaci" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Zobrazit nebo skrĆ½t postrannĆ liÅ”tu" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "PÅepnout režim celĆ© obrazovky" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Martin Picek <picek.martin@mate-cesko.cz>, 2009" diff --git a/help/cs/figures/evince_start_window.png b/help/cs/figures/evince_start_window.png new file mode 100644 index 00000000..35131108 Binary files /dev/null and b/help/cs/figures/evince_start_window.png differ diff --git a/help/de/de.po b/help/de/de.po new file mode 100644 index 00000000..9bf2862c --- /dev/null +++ b/help/de/de.po @@ -0,0 +1,1275 @@ +# German translation of the evince manual. +# Mario BlƤttermann <mariobl@gnome.org>, 2008, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"POT-Creation-Date: 2009-04-30 12:12+0000\n" +"PO-Revision-Date: 2009-07-23 22:47+0100\n" +"Last-Translator: Mario BlƤttermann <mariobl@gnome.org>\n" +"Language-Team: Deutsch <mate-de@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=2787fa5e0e910f484226535e4bdb5323" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince-Dokumentenbetrachter-Handbuch" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "" +"Der Evince-Dokumentenbetrachter erlaubt Ihnen die Anzeige von Dokumenten in " +"verschiedenen Formaten wie dem Portable Document Format (PDF) oder PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "MATE-Dokumentationsprojekt" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in " +"the file COPYING-DOCS distributed with this manual." +msgstr "" +"Das vorliegende Dokument kann gemĆ¤Ć den Bedingungen der GNU Free " +"Documentation License (GFDL), Version 1.1 oder jeder spƤteren, von der Free " +"Software Foundation verƶffentlichten Version ohne unverƤnderbare Abschnitte " +"sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt " +"und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem " +"<ulink type=\"help\" url=\"ghelp:fdl\">Link</ulink> oder in der mit diesem " +"Handbuch gelieferten Datei COPYING-DOCS." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Dieses Handbuch ist Teil einer Sammlung von MATE-HandbĆ¼chern, die unter der " +"GFDL verƶffentlicht werden. Wenn Sie dieses Handbuch getrennt von der " +"Sammlung weiterverbreiten mƶchten, kƶnnen Sie das tun, indem Sie eine Kopie " +"der Lizenz zum Handbuch hinzufĆ¼gen, wie es in Abschnitt 6 der Lizenz " +"beschrieben ist." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und " +"Dienstleistungen von anderen zu unterscheiden, sind eingetragene " +"Warenzeichen. An den Stellen, an denen diese Namen in einer MATE-" +"Dokumentation erscheinen, werden die Namen in GroĆbuchstaben oder mit einem " +"groĆen Anfangsbuchstaben geschrieben, wenn das MATE-Dokumentationsprojekt " +"auf diese Warenzeichen hingewiesen wird." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK " +"AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED " +"VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION " +"PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY " +"CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR " +"CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS " +"LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS " +"AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DIESES DOKUMENT WIRD Ā»WIE VORLIEGENDĀ« GELIEFERT, OHNE GARANTIEN IRGENDEINER " +"ART, SOWOHL AUSDRĆCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH " +"AUCH OHNE EINSCHRĆNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERĆNDERTE " +"FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FĆR EINEN BESTIMMTEN " +"ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE " +"RISIKO WAS QUALITĆT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERĆNDERTE " +"FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE " +"VERĆNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT " +"DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FĆR " +"NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER " +"HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG " +"EINES DOKUMENTS ODER EINER VERĆNDERTEN VERSION DES DOKUMENTS IST NICHT " +"GESTATTET AUĆER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR " +"ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY " +"CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK " +"STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR " +"LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"UNTER KEINEN UMSTĆNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH " +"UNERLAUBTEN HANDLUNGEN (EINSCHLIEĆLICH FAHRLĆSSIGKEIT), VERTRAG ODER " +"ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN " +"VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERĆNDERTEN FASSUNG DES " +"DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN " +"FĆR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHĆDEN JEGLICHER " +"ART, EINSCHLIEĆLICH UND OHNE EINSCHRĆNKUNGEN SCHĆDEN DURCH VERLUST VON " +"KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER " +"ALLE ANDEREN SCHĆDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER " +"VERWENDUNG DES DOKUMENTS UND VERĆNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, " +"AUCH WENN DIE OBEN GENANNTEN PARTEIEN ĆBER DIE MĆGLICHKEIT SOLCHER SCHĆDEN " +"INFORMIERT WAREN." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"DAS DOKUMENT UND VERĆNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN " +"BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFĆGUNG GESTELLT MIT DEM " +"WEITERGEHENDEN VERSTĆNDNIS, DASS: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE Dokumentationsteam" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@andex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Evince-Dokumentenbetrachter-Handbuch V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "05.04.2008" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince-Dokumentenbetrachter-Handbuch V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "06. April 2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Dieses Handbuch beschreibt Version 0.2 des Evince-Dokumentenbetrachters" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "RĆ¼ckmeldungen" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Um Fehler zu melden oder einen Vorschlag zur Anwendung <application>Evince-" +"Dokumentenbetrachter</application> oder zu diesem Handbuch zu machen, folgen " +"Sie den Anweisungen auf der <ulink url=\"ghelp:mate-feedback\" type=\"help" +"\">MATE-Seite fĆ¼r RĆ¼ckmeldungen</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Evince-Dokumentenbetrachter" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "EinfĆ¼hrung" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables you " +"to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</application> " +"follows Freedesktop.org and MATE standards to provide integration with " +"Desktop Environment." +msgstr "" +"Die Anwendung <application>Evince-Dokumentenbetrachter</application> erlaubt " +"Ihnen die Anzeige von Dokumenten verschiedener Formate wie Ā»Portable Document " +"FormatĀ«-(PDF)-Dateien und PostScript-Dateien. <application>Evince-" +"Dokumentenbetrachter</application> folgt den Standards von Freedesktop.org " +"und MATE zur Bereitstellung einer integrierten Arbeitsumgebung." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Erste Schritte" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Evince-Dokumentenbetrachter starten" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>Evince-Dokumentenbetrachter</application> startet, wenn Sie eine " +"PDF- oder PostScript-Datei ƶffnen." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Alternativ kƶnnen Sie <application>Evince-Dokumentenbetrachter</application> " +"auf der Befehlszeile starten, mit dem Befehl: <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Wenn Sie Evince-Dokumentenbetrachter starten" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Wenn Sie <application>Evince-Dokumentenbetrachter</application> starten, wird " +"folgendes Fenster angezeigt." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Evince-Dokumentenbetrachter-Fenster" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar " +"and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "" +"Zeigt das Hauptfenster von Evince-Dokumentenbetrachter. EnthƤlt Titelleiste, " +"MenĆ¼leiste, Werkzeugleiste und Anzeigebereich. Die MenĆ¼leiste beinhaltet Die " +"MenĆ¼s Datei, Bearbeiten, Ansicht, Gehe zu und Hilfe." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"Das <application>Evince-Dokumentenbetrachter</application>-Fenster enthƤlt " +"die folgenden Elemente:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "MenĆ¼leiste" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Die MenĆ¼s in der MenĆ¼leiste enthalten alle Befehle, die Sie fĆ¼r die Arbeit " +"mit Dokumenten im <application>Evince-Dokumentenbetrachter</application> " +"benƶtigen." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Werkzeugleiste" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"Die Werkzeugleiste enthƤlt eine Auswahl der Befehle, die Sie Ć¼ber die " +"MenĆ¼leiste erreichen." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Anzeigebereich" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "Der Anzeigebereich zeigt das Dokument an." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Komponente der BenutzeroberflƤche" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "Aktion" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Fenster" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> window " +"from another application such as a file manager." +msgstr "" +"Ziehen Sie eine Datei aus einer anderen Anwendung in das <application>Evince-" +"Dokumentenbetrachter</application>-Fenster, z. B. aus einem Dateimanager." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Doppelklick auf den Dateinamen im Dateimanager" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"WƤhlen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Ćffnen</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Tastenkombinationen" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"DrĆ¼cken Sie <keycombo><keycap>Strg</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=" +"\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></" +"informaltable>" +msgstr "" +"Im <application>Evince-Dokumentenbetrachter</application> lƤsst sich eine " +"Aktion auf verschiedene Arten durchfĆ¼hren. Beispielsweise kƶnnen Sie ein " +"Dokument auf folgende Arten ƶffnen: <informaltable frame=\"all\"><tgroup cols=" +"\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*" +"\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/" +"><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "" +"In diesem Handbuch wird die Arbeitsweise Ć¼ber die MenĆ¼leiste beschrieben." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Benutzung" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Ein Dokument ƶffnen" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Um ein Dokument zu ƶffnen, fĆ¼hren Sie die folgenden Schritte aus:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want to " +"open." +msgstr "" +"Im <guilabel>Dokument ƶffnen</guilabel>-Dialog wƤhlen Sie die Datei aus, die " +"Sie ƶffnen mƶchten." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Klicken Sie auf <guibutton>Ćffnen</guibutton>. <application>Evince-" +"Dokumentenbetrachter</application> zeigt den Namen des Dokuments in der " +"Titelleiste des Fensters an." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Um ein weiteres Dokument zu ƶffnen, wƤhlen Sie wieder " +"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Ćffnen</guimenuitem></" +"menuchoice>. <application>Evince-Dokumentenbetrachter</application> ƶffnet " +"jede Datei in einem neuen Fenster." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Sollten Sie versuchen, ein von <application>Evince-Dokumentenbetrachter</" +"application> nicht unterstĆ¼tztes Dokumentenformat zu ƶffnen, wird eine " +"Fehlermeldung angezeigt." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Navigieren durch ein Dokument" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Sie kƶnnen wie folgt durch ein Dokument navigieren:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Um die nƤchste Seite zu betrachten, wƤhlen Sie <menuchoice><guimenu>Gehe zu</" +"guimenu><guimenuitem>NƤchste Seite</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Um die vorige Seite zu betrachten, wƤhlen Sie <menuchoice><guimenu>Gehe zu</" +"guimenu><guimenuitem>Vorherige Seite</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Um die erste Seite des Dokuments zu betrachten, wƤhlen Sie " +"<menuchoice><guimenu>Gehe zu</guimenu><guimenuitem>Erste Seite</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Um die letzte Seite eines Dokuments zu betrachten, wƤhlen Sie " +"<menuchoice><guimenu>Gehe zu</guimenu><guimenuitem>Letzte Seite</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Um eine bestimmte Seite zu betrachten, tippen Sie die Seitennummer in die " +"Textbox in der Werkzeugleiste, und drĆ¼cken <keycap>Enter</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Eine Seite im Anzeigebereich verschieben" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Um Teile der Seite anzuzeigen, die sich gegenwƤrtig nicht im Anzeigebereich " +"befinden, gehen Sie wie folgt vor:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Verwenden Sie die Pfeiltasten oder die Leertaste auf der Tastatur." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the page, " +"drag the display area upwards in the window." +msgstr "" +"Klicken Sie mit der mittleren Maustaste auf eine beliebige Stelle des " +"Anzeigebereichs, halten die Maustaste gedrĆ¼ckt und bewegen dann die Maus. Um " +"beispielsweise auf einer Seite nach unten zu rollen, verschieben Sie den " +"Anzeigebereich nach oben." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Verwenden Sie die Rollbalken des Fensters." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "AnsichtsgrƶĆe Ƥndern" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the <application>Evince " +"Document Viewer</application> display area:" +msgstr "" +"Sie kƶnnen die AnsichtsgrƶĆe einer Seite im <application>Evince-" +"Dokumentenbetrachter</application> auf folgende Arten Ƥndern:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Um die Ansicht zu vergrƶĆern, wƤhlen Sie <menuchoice><guimenu>Ansicht</" +"guimenu><guimenuitem>Heranzoomen</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Um die Ansicht zu verkleinern, wƤhlen Sie <menuchoice><guimenu>Ansicht</" +"guimenu><guimenuitem>Wegzoomen</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Um die GrƶĆe der Seite an die Breite des <application>Evince-" +"Dokumentenbetrachter</application>-Anzeigebereichs anzupassen, wƤhlen Sie " +"<menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Seitenbreite einpassen</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Um die GrƶĆe der Seite an die GrƶĆe des <application>Evince-" +"Dokumentenbetrachter</application>-Anzeigebereichs anzupassen, wƤhlen Sie " +"<menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Einpassen</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Um die GrƶĆe des <application>Evince-Dokumentenbetrachter</application>-" +"Fensters derart anzupassen, dass es den Bildschirm ausfĆ¼llt, wƤhlen Sie " +"<menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Vollbild</guimenuitem></" +"menuchoice>. Um das <application>Evince-Dokumentenbetrachter</application>-" +"Fenster wieder in die Originalansicht zurĆ¼ckkehren zu lassen, klicken Sie auf " +"<guibutton>Vollbild verlassen</guibutton>" + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Vorschaubilder und Inhalt" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" +"Um Vorschaubilder oder den Dokumenteninhalt anzuzeigen, fĆ¼hren Sie die " +"folgenden Schritte aus:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></" +"menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"WƤhlen Sie <menuchoice><guimenu>Ansicht</guimenu><guimenuitem>Seitenleiste</" +"guimenuitem></menuchoice> oder drĆ¼cken Sie <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Verwenden Sie das AufklappmenĆ¼ in der Titelzeile der Seitenleiste, um " +"auszuwƤhlen, ob in der Seitenleiste Vorschaubilder oder der Dokumenteninhalt " +"angezeigt werden sollen." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the side " +"pane." +msgstr "" +"Verwenden Sie die Rollbalken in der Seitenleiste, um zum gewĆ¼nschten Eintrag " +"in der Seitenleiste zu gelangen." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Klicken Sie auf einen Eintrag oder ein Vorschaubild, um zu der gewĆ¼nschten " +"Stelle im Dokument zu gelangen." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Eigenschaften eines Dokuments anzeigen" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Um die Eigenschaften eines Dokuments anzuzeigen, wƤhlen Sie " +"<menuchoice><guimenu>Datei</guimenu><guimenuitem>Eigenschaften</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"Der <guilabel>Eigenschaften</guilabel>-Dialog zeigt alle verfĆ¼gbaren " +"Informationen an." + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Ein Dokument drucken" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Um ein Dokument zu drucken, wƤhlen Sie <menuchoice><guimenu>Datei</" +"guimenu><guimenuitem>Drucken</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open the " +"document. See <xref linkend=\"evince-password\"/> for more information about " +"password-protected files." +msgstr "" +"Wenn Sie den MenĆ¼eintrag <guimenuitem>Drucken</guimenuitem> nicht auswƤhlen " +"kƶnnen, hat der Autor des Dokuments die Druckoption fĆ¼r dieses Dokument " +"abgeschaltet. Um das Drucken zu ermƶglichen, mĆ¼ssen Sie das Master-Passwort " +"beim Ćffnen des Dokuments angeben. Lesen Sie hierzu <xref linkend=\"evince-" +"password\"/> fĆ¼r weitere Informationen Ć¼ber passwortgeschĆ¼tzte Dokumente." + +#: C/evince.xml:393(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"Der <guilabel>Drucken</guilabel>-Dialog verfĆ¼gt Ć¼ber die folgenden Ć¼ber " +"Reiter erreichbaren Bereiche: " + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Auftrag" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Drucker" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Papier" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Druckbereich" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"WƤhlen Sie eine der folgenden Optionen, um die Anzahl der zu druckenden " +"Seiten zu bestimmen:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Alle" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "WƤhlen Sie diese Option, um alle Seiten des Dokuments zu drucken." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Druckbereich" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"WƤhlen Sie diese Option, um die ausgewƤhlten Seiten des Dokuments zu drucken. " +"Verwenden Sie die Eingabefelder, um die erste und die letzte Seite des zu " +"druckenden Bereichs anzugeben." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Verwenden Sie das AufklappmenĆ¼, um den Drucker auszuwƤhlen, auf welchem Sie " +"das Dokument ausgeben wollen." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"Die Option <guilabel>Ein PDF-Dokument erzeugen</guilabel> steht in dieser " +"Version von <application>Evince-Dokumentenbetrachter</application> nicht zur " +"VerfĆ¼gung." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Einstellungen" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Verwenden Sie das AufklappmenĆ¼, um die Druckeinstellungen zu Ƥndern." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Um den Drucker zu konfigurieren, klicken Sie auf <guibutton>Konfigurieren</" +"guibutton>.Beispielsweise kƶnnen Sie den beidseitigen Druck ein- und " +"ausschalten, oder den Druck zu einem spƤteren Zeitpunkt definieren, sofern " +"Ihr Drucker dies unterstĆ¼tzt." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Drucker" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Verwenden Sie dieses AufklappmenĆ¼, um eines der folgenden Druckziele " +"auszuwƤhlen:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Gibt das Dokument auf einem CUPS-Drucker aus." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Wenn der ausgewƤhlte Drucker ein CUPS-Drucker ist, dann ist <guilabel>CUPS</" +"guilabel> der einzige Eintrag in diesem AuflklappmenĆ¼." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Druckt das Dokument auf einem Drucker." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Datei" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Druckt das Dokument in eine PostScript-Datei." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Klicken Sie auf <guibutton>Speichern unter</guibutton>, um einen Dialog zur " +"Auswahl des Namens und des Speicherorts der PostScript-Datei anzuzeigen." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Benutzerdefiniert" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Verwendet einen spezifischen Befehl zum Drucken des Dokuments." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Geben Sie den Namen des Befehls in das Textfeld ein, einschlieĆlich aller " +"Befehlszeilenargumente." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Status" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Diese FunktionalitƤt wird in dieser Version von <application>Evince-" +"Dokumentenbetrachter</application> nicht unterstĆ¼tzt." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Typ" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Kommentar" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "PapiergrƶĆe" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Verwenden Sie dieses AufklappmenĆ¼, um die PapiergrƶĆe auszuwƤhlen, die Sie " +"fĆ¼r das Dokument verwenden mƶchten." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Breite" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Verwenden Sie dieses Einstellfeld, um die Breite des Papiers anzugeben. Im " +"nebenstehenden AufklappmenĆ¼ kƶnnen sie die verwendete MaĆeinheit Ƥndern." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Hƶhe" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Verwenden Sie dieses Einstellfeld, um die Hƶhe des Papiers anzugeben." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Einzugsorientierung" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the printer." +msgstr "" +"Verwenden Sie dieses AufklappmenĆ¼, um die Orientierung des Papiereinzugs im " +"Drucker auszuwƤhlen." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Seitenorientierung" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Verwenden Sie dieses AufklappmenĆ¼, um die Seitenorientierung anzugeben." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Layout" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Verwenden Sie dieses AufklappmenĆ¼, um das Seitenlayout auszuwƤhlen. Eine " +"Voransicht jedes ausgewƤhlten Layouts wird im Bereich <guilabel>Vorschau</" +"guilabel> angezeigt." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Papierfach" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Verwenden Sie dieses AufklappmenĆ¼, um das Papierfach auszuwƤhlen." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Ein Dokument kopieren" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Um eine Datei zu kopieren, fĆ¼hren Sie die folgenden Schritte aus:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"WƤhlen Sie <menuchoice><guimenu>Datei</guimenu><guimenuitem>Eine Kopie " +"speichern</guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Geben Sie den neuen Dateinamen in das Textfeld <guilabel>Dateiname</guilabel> " +"ein." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, copies " +"are saved in your home directory." +msgstr "" +"Falls nƶtig, bestimmen Sie den Speicherort der Kopie. Als Standard werden " +"Kopien in Ihrem persƶnlichen Ordner gespeichert." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Klicken Sie auf <guibutton>Speichern</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Arbeiten mit passwortgeschĆ¼tzten Dokumenten" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Ein Autor kann die folgenden Passwort-Stufen bestimmen, um ein Dokument zu " +"schĆ¼tzen:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "Benutzerpasswort, das es anderen erlaubt, das Dokument nur zu lesen." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Master-Passwort, das es anderen erlaubt, bestimmte zusƤtzliche Aktionen " +"auszufĆ¼hren, beispielsweise das Dokument zu drucken." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "" +"Wenn Sie versuchen, ein passwortgeschĆ¼tztes Dokument zu ƶffnen, zeigt " +"<application>Evince-Dokumentenbetrachter</application> einen " +"Sicherheitsdialog an. Schreiben Sie entweder das Benutzerpasswort oder das " +"Masterpasswort in die <guilabel>Enter document password</guilabel>-Textbox, " +"und klicken dann auf <guibutton>Dokument ƶffnen</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Ein Dokument schlieĆen" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Um ein Dokument zu schlieĆen, wƤhlen Sie <menuchoice><guimenu>Datei</" +"guimenu><guimenuitem>SchlieĆen</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Wenn das Fenster das letzte geƶffnete <application>Evince-" +"Dokumentenbetrachter</application>-Fenster ist, wird die Anwendung beendet." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Tastenkombinationen" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"Nachstehend finden Sie eine Liste aller im <application>Evince-" +"Dokumentenbetrachter</application> verwendeten Tastenkombinationen:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Tastenkombination" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Strg" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Ein existierendes Dokument ƶffnen" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Eine Kopie des aktuellen Dokuments speichern" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Dokument drucken" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Fenster schlieĆen" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Auswahl kopieren" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Alles auswƤhlen" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (SchrƤgstrich)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Wort oder Ausdruck im Dokument suchen" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +#| msgid "F" +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "NƤchstes suchen" + +#: C/evince.xml:690(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Strg</keycap><keycap>+</keycap></keycombo> (Pluszeichen)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Heranzoomen" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Strg</keycap><keycap>-</keycap></keycombo> (Minuszeichen)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Wegzoomen" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Dokument neu laden" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Bild auf" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "Zur vorherigen Seite gehen" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Bild ab" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "Zur nƤchsten Seite gehen" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "Leertaste" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Umschalttaste" + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Lƶschtaste" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "Eingabetaste" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Mausrad vorwƤrts" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Mausrad rĆ¼ckwƤrts" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "Mehrere Seiten nach oben gehen" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "Mehrere Seiten nach unten gehen" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Pos1" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "Zur ersten Seite gehen" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "Ende" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "Zur letzten Seite gehen" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "Zu bestimmter Seite anhand Nummer oder Bezeichnung gehen" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "Hilfe" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Dokument als PrƤsentation anzeigen" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Seitenleiste anzeigen oder verbergen" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Vollbildmodus ein-oder ausschalten" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Mario BlƤttermann <mariobl@gnome.org>, 2008, 2009" diff --git a/help/de/figures/evince_start_window.png b/help/de/figures/evince_start_window.png new file mode 100644 index 00000000..22f40f50 Binary files /dev/null and b/help/de/figures/evince_start_window.png differ diff --git a/help/el/el.po b/help/el/el.po new file mode 100644 index 00000000..67b1f4dc --- /dev/null +++ b/help/el/el.po @@ -0,0 +1,943 @@ +# Stylianos Papanastasiou <stelios@dcs.gla.ac.uk>, 2005. +# +# +# ĪĪ¬ĻĪ¹ĪæĻ ĪĪ·Ī½ĻĪÆĪ»Ī·Ļ <m.zindilis@dmajor.org>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: evince greek help 1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-09 09:40+0000\n" +"PO-Revision-Date: 2009-09-10 18:14+0200\n" +"Last-Translator: Kostas Papadimas <pkst@gnome.org>\n" +"Language-Team: Greek <team@mate.gr>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Ī¤ĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· ĪµĻĪ±ĻĪ¼ĪæĪ³Ī®Ļ ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince" + +#: C/evince.xml:27(para) +msgid "The Evince Document Viewer application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "Ī ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince ĻĪ¬Ļ ĪµĻĪ¹ĻĻĪĻĪµĪ¹ Ī½Ī± Ī“Ī¹Ī±Ī²Ī¬ĻĪµĻĪµ ĪĪ³Ī³ĻĪ±ĻĪ± Ī“Ī¹Ī±ĻĻĻĻĪ½ Ī¼ĪæĻĻĻĪ½, ĻĻĻĻ Ī±ĻĻĪµĪÆĪ± ĻĻĻĪæĻ Portable Document Format (PDF) Ī® PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) +#: C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) +#: C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) +#: C/evince.xml:67(orgname) +#: C/evince.xml:93(para) +#: C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "ĪĻĪ³Īæ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·Ļ MATE" + +#: C/evince.xml:2(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +msgstr "Ī£Ī±Ļ ĻĪ±ĻĪĻĪµĻĪ±Ī¹ Ī¬Ī“ĪµĪ¹Ī± Ī½Ī± Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪµĻĪµ, Ī“Ī¹Ī±Ī½ĪµĪÆĪ¼ĪµĻĪµ Ī®/ĪŗĪ±Ī¹ Ī½Ī± ĻĻĪæĻĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĻĪæ Ļ ĻĪ¬ĻĻĪæĪ½ ĪŗĪµĪÆĪ¼ĪµĪ½Īæ Ļ ĻĻ ĻĪæĻ Ļ ĻĻĪæĻ Ļ ĻĪ·Ļ Ī¬Ī“ĪµĪ¹Ī±Ļ GNU Free Documentation License (GFDL), ĪĪŗĪ“ĪæĻĪ· 1.1, Ī® ĪæĻĪæĪ¹Ī±Ī“Ī®ĻĪæĻĪµ Ī¼ĪµĻĪ±Ī³ĪµĪ½ĪĻĻĪµĻĪ· ĪĪŗĪ“ĪæĻĪ· ĻĪæĻ Ī½Ī± ĪĻĪµĪ¹ ĪµĪŗĪ“ĪæĪøĪµĪÆ Ī±ĻĻ ĻĪæ Free Software Foundation Ļ ĻĻ ĻĪ¹Ļ ĻĻĪæĻĻĪæĪøĪĻĪµĪ¹Ļ no Invariant Sections, no Front-Cover Texts, ĪŗĪ±Ī¹ no Back-Cover Texts. ĪĻĪæĻĪµĪÆĻĪµ Ī½Ī± Ī²ĻĪµĪÆĻĪµ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæ ĻĪæĻ GFDL ĻĪµ Ī±Ļ ĻĻ ĻĪæ <ulink type=\"help\" url=\"ghelp:fdl\">ĻĻĪ½Ī“ĪµĻĪ¼Īæ</ulink> Ī® ĻĻĪæ Ī±ĻĻĪµĪÆĪæ COPYING-DOCS ĻĻĻĻ Ī“Ī¹Ī±Ī½ĪĪ¼ĪµĻĪ±Ī¹ Ī¼Īµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·." + +#: C/evince.xml:12(para) +msgid "This manual is part of a collection of MATE manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license." +msgstr "ĪĻ ĻĪ® Ī· ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· ĪµĪÆĪ½Ī±Ī¹ Ī¼ĪĻĪæĻ ĻĪ·Ļ ĻĻ Ī»Ī»ĪæĪ³Ī®Ļ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·Ļ ĻĪæĻ MATE ĻĻĻĻ Ī“Ī¹Ī±Ī½ĪĪ¼ĪµĻĪ±Ī¹ Ļ ĻĻ ĻĪæĻ Ļ ĻĻĪæĻ Ļ ĻĪæĻ GFDL. ĪĪ¬Ī½ ĪµĻĪ¹ĪøĻ Ī¼ĪµĪÆĻĪµ Ī½Ī± Ī“Ī¹Ī±Ī½ĪµĪÆĪ¼ĪµĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· Ī¾ĪµĻĻĻĪ¹ĻĻĪ¬ Ī±ĻĻ ĻĪ·Ī½ ĻĻ Ī»Ī»ĪæĪ³Ī®, Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĻĪæ ĪŗĪ¬Ī½ĪµĻĪµ ĪµĪ¬Ī½ Ī· ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· ĻĻ Ī½ĪæĪ“ĪµĻĪµĻĪ±Ī¹ Ī±ĻĻ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæ ĻĪ·Ļ Ī¬Ī“ĪµĪ¹Ī±Ļ (GFDL) ĻĻĻĻ ĻĪµĻĪ¹Ī³ĻĪ¬ĻĪµĻĪ±Ī¹ ĻĻĪæĪ½ ĻĪæĪ¼ĪĪ± 6 ĻĪ·Ļ Ī¬Ī“ĪµĪ¹Ī±Ļ." + +#: C/evince.xml:19(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any MATE documentation, and the members of the MATE Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters." +msgstr "Ī ĪæĪ»Ī»Ī¬ Ī±ĻĻ ĻĪ± ĪæĪ½ĻĪ¼Ī±ĻĪ± ĻĪæĻ ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹ĪæĻĪ½ĻĪ±Ī¹ Ī±ĻĻ ĪµĻĪ±Ī¹ĻĪÆĪµĻ Ī³Ī¹Ī± Ī½Ī± Ī¾ĪµĻĻĻĪÆĻĪæĻ Ī½ ĻĪ± ĻĻĪæĻĻĪ½ĻĪ± ĪŗĪ±Ī¹ ĻĪ¹Ļ Ļ ĻĪ·ĻĪµĻĪÆĪµĻ ĪµĪÆĪ½Ī±Ī¹ ĻĪ®Ī¼Ī±ĻĪ± ĪŗĪ±ĻĪ±ĻĪµĪøĪĪ½. ĪĻĪæĻ Ī±Ļ ĻĪ¬ ĻĪ± ĪæĪ½ĻĪ¼Ī±ĻĪ± ĪµĪ¼ĻĪ±Ī½ĪÆĪ¶ĪæĪ½ĻĪ±Ī¹ ĻĻĪ·Ī½ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· MATE, ĪŗĪ±Ī¹ ĻĪ± Ī¼ĪĪ»Ī· ĻĪ·Ļ ĪæĪ¼Ī¬Ī“Ī±Ļ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·Ļ MATE ĪĻĪæĻ Ī½ Ī³Ī½ĻĻĪ· Ī±Ļ ĻĻĪ½, ĻĻĻĪµ Ī±Ļ ĻĪ¬ Ī±Ī½Ī±Ī³ĻĪ¬ĻĪæĪ½ĻĪ±Ī¹ Ī¼Īµ ĪŗĪµĻĪ±Ī»Ī±ĪÆĪæĻ Ļ ĻĪ±ĻĪ±ĪŗĻĪ®ĻĪµĻ Ī® Ī¼Īµ Ī±ĻĻĪ¹ĪŗĪæĻĻ ĪŗĪµĻĪ±Ī»Ī±ĪÆĪæĻ Ļ ĻĪ±ĻĪ±ĪŗĻĪ®ĻĪµĻ." + +#: C/evince.xml:35(para) +msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "Ī Ī¤ĪĪĪĪĪ”ĪĪ©Ī£Ī ĪĪ„Ī¤Ī Ī ĪĪ”ĪĪ§ĪĪ¤ĪĪ \"Ī©Ī£ ĪĪ§ĪĪ\", Ī§Ī©Ī”ĪĪ£ ĪĪĪĪĪ ĪĪĪĪ„ĪĪ£Ī ĪĪ¤Ī ĪĪ ĪĪ”ĪĪ ĪĪ ĪĪĪ„Ī ĪĪ”ĪĪ¤ĪĪ£ĪĪ ĪĪĪ ĪĪĪ Ī£ĪĪĪ Ī Ī ĪĪ¤Ī ĪĪĪĪĪ Ī§Ī©Ī”ĪĪ£ Ī£Ī¦ĪĪĪĪ. ĪĪĪĪĪĪĪ”Ī Ī ĪĪ„ĪĪ„ĪĪ ĪĪĪ Ī¤ĪĪ Ī ĪĪĪĪ¤ĪĪ¤Ī, ĪĪĪ”ĪĪĪĪĪ ĪĪĪ ĪĪĪĪ¤ĪĪ„Ī”ĪĪĪĪĪ¤ĪĪ¤Ī Ī¤ĪĪ£ Ī¤ĪĪĪĪĪ”ĪĪ©Ī£ĪĪ£ Ī Ī ĪĪ”ĪĪĪĪĪĪ©Ī ĪĪ„Ī¤ĪĪ£ ĪĪĪĪĪĪ Ī£Ī ĪĪ£ĪĪ£. ĪĪĪ Ī Ī¤ĪĪĪĪĪ”ĪĪ©Ī£Ī ĪĪ„Ī¤Ī Ī Ī ĪĪ”ĪĪĪĪĪĪ ĪĪ„Ī¤ĪĪ£ ĪĪĪĪĪ ĪĪĪĪĪ£ ĪĪĪ¤Ī ĪĪĪ ĪĪĪ Ī¤Ī”ĪĪ Ī ĪĪ£ĪĪĪ£ ĪĪĪĪĪĪĪĪĪĪĪ¤Ī Ī¤ĪĪ ĪĪ„ĪĪ„ĪĪ Ī¤ĪĪ£ ĪĪĪĪ”ĪĪ©Ī£ĪĪ£. Ī ĪĪ ĪĪĪĪĪĪ ĪĪ„ĪĪ„ĪĪĪ£ Ī ĪĪ„ Ī£Ī„ĪĪĪĪĪ„ĪĪ ĪĪ„Ī¤Ī Ī¤ĪĪ Ī¤ĪĪĪĪĪ”ĪĪ©Ī£Ī ĪĪĪĪĪ ĪĪĪĪ ĪĪ£Ī ĪĪ£Ī¤Ī ĪĪĪĪĪĪ¤Ī ĪĪ„Ī¤ĪĪ£. ĪĪĪĪĪ Ī§Ī”ĪĪ£Ī Ī¤ĪĪ£ Ī¤ĪĪĪĪĪ”ĪĪ©Ī£ĪĪ£ Ī Ī ĪĪ”ĪĪĪĪĪĪ©Ī ĪĪ„Ī¤ĪĪ£ ĪĪĪ ĪĪ ĪĪ¤Ī”ĪĪ ĪĪ¤ĪĪ Ī ĪĪ”Ī ĪĪĪĪ ĪĪĪ Ī£Ī„ĪĪĪĪĪ„ĪĪ¤ĪĪ ĪĪ Ī Ī¤ĪĪ ĪĪ ĪĪĪĪĪĪ ĪĪ„ĪĪ„ĪĪĪ£." + +#: C/evince.xml:55(para) +msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES." +msgstr "Ī£Ī ĪĪĪĪĪ Ī ĪĪ”ĪĪ Ī¤Ī©Ī£Ī ĪĪĪ Ī„Ī Ī ĪĪĪĪĪ ĪĪĪĪĪĪ Ī£Ī„ĪĪĪĪĪ, ĪĪĪ¤Ī ĪĪĪ£Ī© Ī£Ī„ĪĪĪĪĪĪĪ©Ī Ī ĪĪĪĪĪ©Ī£, ĪĪĪ ĪĪ„ĪĪ„ĪĪĪĪ¤ĪĪ Ī Ī£Ī„ĪĪĪ”ĪĪ¦ĪĪĪ£, Ī ĪĪĪĪĪĪĪĪĪ£, Ī ĪĪĪĪĪ£ Ī£Ī„ĪĪ„Ī ĪĪ„ĪĪ„ĪĪĪ£ ĪĪĪ Ī¤ĪĪ Ī£Ī„ĪĪĪ”ĪĪ¦Ī Ī¤ĪĪ£ Ī¤ĪĪĪĪĪ”ĪĪ©Ī£ĪĪ£, ĪĪĪ ĪĪĪĪĪ£ĪĪ£ Ī ĪĪĪĪ£ĪĪ£, Ī¤Ī„Ī§ĪĪĪĪ£ Ī ĪĪ ĪĪĪĪĪĪ£ Ī ĪĪĪ¤Ī©Ī£ Ī¦Ī„Ī£ĪĪ©Ī£ Ī ĪĪ„ Ī Ī”ĪĪĪ”Ī§ĪĪĪ¤ĪĪ ĪĪ Ī Ī¤ĪĪ Ī§Ī”ĪĪ£Ī Ī¤ĪĪ£ Ī¤ĪĪĪĪĪ”ĪĪ©Ī£ĪĪ£ ĪĪĪ/Ī Ī ĪĪ”ĪĪĪĪĪĪ©Ī ĪĪ„Ī¤ĪĪ£ ĪĪĪĪĪ ĪĪĪ ĪĪĪ ĪĪ§ĪĪ Ī„Ī ĪĪ”ĪĪĪ Ī Ī”ĪĪĪĪĪĪ ĪĪĪĪ£Ī ĪĪĪ Ī¤ĪĪ Ī ĪĪĪĪĪĪ¤ĪĪ¤Ī Ī„Ī ĪĪ”ĪĪĪ£ Ī¤ĪĪ¤ĪĪĪ©Ī ĪĪĪĪĪ©Ī." + +#: C/evince.xml:28(para) +msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>" +msgstr "Ī¤Ī ĪĪĪĪ”ĪĪ¦Ī ĪĪĪ Ī¤Ī”ĪĪ ĪĪ ĪĪĪĪĪĪĪĪ£ ĪĪĪĪĪ£ĪĪĪ£ ĪĪ„Ī¤ĪĪ„ Ī ĪĪ”ĪĪ§ĪĪĪ¤ĪĪ Ī„Ī Ī Ī¤ĪĪ„Ī£ ĪĪ”ĪĪ„Ī£ Ī¤ĪĪ£ ĪĪĪĪĪĪ£ GNU FREE DOCUMENTATION ĪĪ Ī¤ĪĪ Ī ĪĪ”ĪĪĪ¤ĪĪ”Ī© ĪĪĪĪ„ĪĪ”ĪĪĪĪ£Ī ĪĪ¤Ī: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "ĪĪ¼Ī¬Ī“Ī± Ī¤ĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·Ļ MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "ĪĪ³ĻĪµĪ¹ĻĪÆĪ“Ī¹Īæ ĻĪ·Ļ Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince ĪĪŗĪ“ĪæĻĪ·Ļ V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "05-04-2008" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Ī¤ĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince ĪĪŗĪ“ĪæĻĪ· 1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Ī ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· Ī±Ļ ĻĪ® ĻĪµĻĪ¹Ī³ĻĪ¬ĻĪµĪ¹ ĻĪ·Ī½ ĪĪŗĪ“ĪæĻĪ· 0.2 ĻĪ·Ļ Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "ĪĪ½Ī¬Ī“ĻĪ±ĻĪ·" + +#: C/evince.xml:110(para) +msgid "To report a bug or make a suggestion regarding the Evince Document Viewer application or this manual, follow the directions in the <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½Ī±ĻĪĻĪµĻĪµ ĪĪ½Ī± ĻĻĪ¬Ī»Ī¼Ī± Ī® Ī½Ī± ĪŗĪ¬Ī½ĪµĻĪµ Ī¼Ī¹Ī± ĻĻĻĻĪ±ĻĪ· ĻĻĪµĻĪ¹ĪŗĪ¬ Ī¼Īµ ĻĪ·Ī½ Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince Ī® Ī±Ļ ĻĪ® ĻĪ·Ī½ ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ·, Ī±ĪŗĪæĪ»ĪæĻ ĪøĪ®ĻĻĪµ ĻĪ¹Ļ ĪæĪ“Ī·Ī³ĪÆĪµĻ ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī± <ulink url=\"ghelp:mate-feedback\" type=\"help\">Ī±Ī½Ī¬Ī“ĻĪ±ĻĪ·Ļ MATE </ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "ĪĪ¹ĻĪ±Ī³ĻĪ³Ī®" + +#: C/evince.xml:129(para) +msgid "The <application>Evince Document Viewer</application> application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. <application>Evince Document Viewer</application> follows Freedesktop.org and MATE standards to provide integration with Desktop Environment." +msgstr "Ī <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application> ĻĪ±Ļ ĪµĻĪ¹ĻĻĪĻĪµĪ¹ Ī½Ī± Ī“Ī¹Ī±Ī²Ī¬ĻĪµĻĪµ ĪĪ³Ī³ĻĪ±ĻĪ± Ī“Ī¹Ī±ĻĻĻĻĪ½ Ī¼ĪæĻĻĻĪ½, ĻĻĻĻ Ī±ĻĻĪµĪÆĪ± ĻĻĻĪæĻ Portable Document Format (PDF) Ī® PostScript. Ī <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application> Ī±ĪŗĪæĪ»ĪæĻ ĪøĪµĪÆ ĻĪ¹Ļ ĻĻĪæĪ“Ī¹Ī±Ī³ĻĪ±ĻĪĻ ĻĪæĻ Freedesktop.org ĪŗĪ±Ī¹ MATE Ī³Ī¹Ī± Ī½Ī± ĻĪ·Ī½ ĪµĪ½ĻĻĪ¼Ī¬ĻĻĻĪ® ĻĪæĻ Ī¼Īµ ĻĪæ ĻĪµĻĪ¹Ī²Ī¬Ī»Ī»ĪæĪ½ ĪµĻĪ³Ī±ĻĪÆĪ±Ļ." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "ĪĪµĪŗĪ¹Ī½ĻĪ½ĻĪ±Ļ" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī®ĻĪµĻĪµ ĻĪ·Ī½ Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince" + +#: C/evince.xml:140(para) +msgid "<application>Evince Document Viewer</application> starts when you open a document such as a PDF or PostScript file." +msgstr "Ī <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince </application> Ī¾ĪµĪŗĪ¹Ī½Ī¬ĪµĪ¹ ĻĻĪ±Ī½ Ī±Ī½ĪæĪÆĪ³ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ ĻĻĻĻ Ļ.Ļ. ĪŗĪ¬ĻĪæĪ¹Īæ Ī±ĻĻĪµĪÆĪæ PDF Ī® Postscript." + +#: C/evince.xml:141(para) +msgid "Alternatively, you can start <application>Evince Document Viewer</application> from the command line, with the command: <command>evince</command>." +msgstr "ĪĪ½Ī±Ī»Ī»Ī±ĪŗĻĪ¹ĪŗĪ¬ Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĪµĪŗĪŗĪ¹Ī½Ī®ĻĪµĻĪµ ĻĪæ <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application>Ī±ĻĻ ĻĪ· Ī³ĻĪ±Ī¼Ī¼Ī® ĪµĪ½ĻĪæĪ»ĻĪ½, Ī¼Īµ ĻĪ·Ī½ ĪµĪ½ĻĪæĪ»Ī® <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "ĪĻĪ±Ī½ Ī¾ĪµĪŗĪ¹Ī½Ī®ĻĪµĻĪµ ĻĪæ Evince" + +#: C/evince.xml:147(para) +msgid "When you start <application>Evince Document Viewer</application>, the following window is displayed." +msgstr "ĪĻĪ±Ī½ Ī¾ĪµĪŗĪ¹Ī½Ī®ĻĪµĻĪµ ĻĪ·Ī½ <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application>, ĪøĪ± ĪµĪ¼ĻĪ±Ī½Ī¹ĻĻĪµĪÆ ĻĪæ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Ī Ī±ĻĪ¬ĪøĻ ĻĪæ Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince" + +#: C/evince.xml:158(phrase) +msgid "Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "Ī Ī±ĻĪæĻ ĻĪ¹Ī¬Ī¶ĪµĻĪ±Ī¹ ĻĪæ ĪŗĻ ĻĪÆĻĻ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ ĻĪæĻ Evince. Ī ĪµĻĪ¹ĪĻĪµĪ¹ ĻĪ· Ī³ĻĪ±Ī¼Ī¼Ī® ĻĪÆĻĪ»ĪæĻ , ĻĪ· Ī³ĻĪ±Ī¼Ī¼Ī® Ī¼ĪµĪ½ĪæĻ, ĻĪ·Ī½ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ· ĪŗĪ±Ī¹ ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ . Ī Ī³ĻĪ±Ī¼Ī¼Ī® Ī¼ĪµĪ½ĪæĻ ĻĪµĻĪ¹Ī»Ī±Ī¼Ī²Ī¬Ī½ĪµĪ¹ ĻĪ¹Ļ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ ĪĻĻĪµĪÆĪæ, ĪĻĪµĪ¾ĪµĻĪ³Ī±ĻĪÆĪ±, Ī ĻĪæĪ²ĪæĪ»Ī®, ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĪŗĪ±Ī¹ ĪĪæĪ®ĪøĪµĪ¹Ī±. " + +#: C/evince.xml:164(para) +msgid "The <application>Evince Document Viewer</application> window contains the following elements:" +msgstr "Ī¤Īæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ ĻĪæĻ <application>Evince</application> ĻĪµĻĪ¹Ī»Ī±Ī¼Ī²Ī¬Ī½ĪµĪ¹ ĻĪ± ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ ĻĻĪæĪ¹ĻĪµĪÆĪ±:" + +#: C/evince.xml:168(term) +#: C/evince.xml:216(para) +msgid "Menubar" +msgstr "ĪĻĪ±Ī¼Ī¼Ī® Ī¼ĪµĪ½ĪæĻ" + +#: C/evince.xml:170(para) +msgid "The menus on the menubar contain all of the commands that you need to work with documents in <application>Evince Document Viewer</application>." +msgstr "Ī¤Ī± ĻĻĪæĪ¹ĻĪµĪÆĪ± ĻĻĪ· Ī³ĻĪ±Ī¼Ī¼Ī® Ī¼ĪµĪ½ĪæĻ ĪĻĪæĻ Ī½ ĻĪ»ĪµĻ ĻĪ¹Ļ ĪµĪ½ĻĪæĪ»ĪĻ ĻĪæĻ ĪøĪ± ĻĻĪµĪ¹Ī±ĻĻĪµĪÆĻĪµ Ī³Ī¹Ī± ĪµĻĪ³Ī±ĻĪÆĪ± Ī¼Īµ ĪĪ³Ī³ĻĪ±ĻĪ± ĻĻĪæ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application>" + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "ĪĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: C/evince.xml:176(para) +msgid "The toolbar contains a subset of the commands that you can access from the menubar." +msgstr "Ī ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ· ĻĪµĻĪ¹ĪĻĪµĪ¹ ĪŗĪ¬ĻĪæĪ¹ĪµĻ Ī±ĻĻ ĻĪ¹Ļ ĪµĪ½ĻĪæĪ»ĪĻ ĻĪæĻ Ī²ĻĪÆĻĪŗĪæĪ½ĻĪ±Ī¹ ĻĻĪ·Ī½ Ī³ĻĪ±Ī¼Ī¼Ī® Ī¼ĪµĪ½ĪæĻ." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Ī ĪµĻĪ¹ĪæĻĪ® ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "Ī ĻĪµĻĪ¹ĪæĻĪ® ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĪµĪ¼ĻĪ±Ī½ĪÆĪ¶ĪµĪ¹ ĻĪæ ĪŗĪµĪÆĪ¼ĪµĪ½Īæ." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Ī£Ļ ĻĻĪ±ĻĪ¹ĪŗĻ UI" + +#: C/evince.xml:198(para) +#: C/evince.xml:646(para) +msgid "Action" +msgstr "ĪĪ½ĪĻĪ³ĪµĪ¹Ī±" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Ī Ī±ĻĪ¬ĪøĻ ĻĪæ" + +#: C/evince.xml:207(para) +msgid "Drag a file into the <application>Evince Document Viewer</application> window from another application such as a file manager." +msgstr "Ī£ĻĻĻĪµ ĪĪ½Ī± Ī±ĻĻĪµĪÆĪæ ĻĻĪæ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> Ī±ĻĻ Ī¬Ī»Ī»Ī· ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĻĻ Ļ.Ļ. ĻĪæĪ½ Ī“Ī¹Ī±ĻĪµĪ¹ĻĪ¹ĻĻĪ® Ī±ĻĻĪµĪÆĻĪ½. " + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "ĪĪ¬Ī½ĻĪµ Ī“Ī¹ĻĪ»Ļ ĪŗĪ»Ī¹Īŗ ĻĻĪæ ĻĪ½ĪæĪ¼Ī± ĻĪæĻ Ī±ĻĻĪµĪÆĪæĻ ĻĻĪæĪ½ Ī“Ī¹Ī±ĻĪµĪ¹ĻĪ¹ĻĻĪ® Ī±ĻĻĪµĪÆĻĪ½" + +#: C/evince.xml:217(para) +#: C/evince.xml:244(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī±Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĪ½ĪæĪ¹Ī³Ī¼Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Ī Ī»Ī®ĪŗĻĻĪ± ĻĻ Ī½ĻĻĪ¼ĪµĻ ĻĪ·Ļ" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Ī Ī±ĻĪ®ĻĻĪµ <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "In <application>Evince Document Viewer</application>, you can perform the same action in several ways. For example, you can open a document in the following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" +msgstr "Ī£ĻĪæĪ½ <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application>, Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĻĻĪ±Ī³Ī¼Ī±ĻĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĻĪ·Ī½ ĪÆĪ“Ī¹Ī± ĪµĪ½ĪĻĪ³ĪµĪ¹Ī± Ī¼Īµ Ī“Ī¹Ī¬ĻĪæĻĪæĻ Ļ ĻĻĻĻĪæĻ Ļ. ĪĪ¹Ī± ĻĪ±ĻĪ¬Ī“ĪµĪ¹Ī³Ī¼Ī±, Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ Ī¼Īµ ĻĪæĻ Ļ Ī±ĪŗĻĪ»ĪæĻ ĪøĪæĻ Ļ ĻĻĻĻĪæĻ Ļ: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "ĪĻ ĻĪ® Ī· ĻĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· Ī±Ļ ĻĪ® ĻĪµĻĪ¹Ī³ĻĪ¬ĻĪµĪ¹ ĻĪ· Ī»ĪµĪ¹ĻĪæĻ ĻĪ³Ī¹ĪŗĻĻĪ·ĻĪ± ĻĪ·Ļ Ī³ĻĪ±Ī¼Ī¼Ī®Ļ Ī¼ĪµĪ½ĪæĻ." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Ī§ĻĪ®ĻĪ·" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ, ĻĻĪ±Ī³Ī¼Ī±ĻĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ± Ī±ĪŗĻĪ»ĪæĻ ĪøĪ± Ī²Ī®Ī¼Ī±ĻĪ±:" + +#: C/evince.xml:248(para) +msgid "In the <guilabel>Open Document</guilabel> dialog, select the file you want to open." +msgstr "Ī£ĻĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ Ī“Ī¹Ī±Ī»ĻĪ³ĪæĻ <guilabel>ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ </guilabel>, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ ĻĪæ Ī±ĻĻĪµĪÆĪæ ĻĪæĻ ĪµĻĪ¹ĪøĻ Ī¼ĪµĪÆĻĪµ Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ." + +#: C/evince.xml:253(para) +msgid "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</application> displays the name of the document in the titlebar of the window." +msgstr "ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĻĪæ <guibutton>ĪĪ½ĪæĪ¹Ī³Ī¼Ī± Ī±ĻĻĪµĪÆĪæĻ </guibutton>. Ī <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> Ī“ĪµĪÆĻĪ½ĪµĪ¹ ĻĪæ ĻĪ½ĪæĪ¼Ī± ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻĪ·Ī½ Ī¼ĻĪ¬ĻĪ± ĻĪÆĻĪ»ĪæĻ ĻĪæĻ ĻĪ±ĻĪ±ĪøĻĻĪæĻ ." + +#: C/evince.xml:258(para) +msgid "To open another document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. <application>Evince Document Viewer</application> opens each file in a new window." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪŗĪ¬ĻĪæĪ¹Īæ Ī¬Ī»Ī»Īæ ĪŗĪµĪÆĪ¼ĪµĪ½Īæ, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ Ī¾Ī±Ī½Ī¬ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĪ½ĪæĪ¹Ī³Ī¼Ī±</guimenuitem></menuchoice>. Ī <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> Ī±Ī½ĪæĪÆĪ³ĪµĪ¹ ĪŗĪ¬ĪøĪµ Ī±ĻĻĪµĪÆĪæ ĻĪµ Ī½ĪĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ." + +#: C/evince.xml:261(para) +msgid "If you try to open a document with format that <application>Evince Document Viewer</application> does not recognize, the application displays an error message." +msgstr "ĪĪ½ ĻĻĪæĻĻĪ±ĪøĪ®ĻĪµĻĪµ Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµ Ī¼ĪæĻĻĪ® ĻĪæĻ Īæ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> Ī“ĪµĪ½ Ī±Ī½Ī±Ī³Ī½ĻĻĪÆĪ¶ĪµĪ¹, Ī· ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® ĪøĪ± ĪµĪ¼ĻĪ±Ī½ĪÆĻĪµĪ¹ Ī¼Ī®Ī½Ļ Ī¼Ī± Ī»Ī¬ĪøĪæĻ Ļ." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "ĪĪ¹Ī± Ī½Ī± ĪŗĪ¬Ī½ĪµĻĪµ ĻĪµĻĪ¹Ī®Ī³Ī·ĻĪ· ĪµĪ½ĻĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "ĪĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĪŗĪ¬Ī½ĪµĻĪµ ĻĪµĻĪ¹Ī®Ī³Ī·ĻĪ· ĻĪµ ĪĪ½Ī± Ī±ĻĻĪµĪÆĪæ Ī¼Īµ ĻĪæĪ½ Ī±ĪŗĻĪ»ĪæĻ ĪøĪæ ĻĻĻĻĪæ:" + +#: C/evince.xml:271(para) +msgid "To view the next page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ·Ī½ ĪµĻĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĪµĻĪ¬Ī²Ī±ĻĪ·</guimenu><guimenuitem>ĪĻĻĪ¼ĪµĪ½Ī· Ī£ĪµĪ»ĪÆĪ“Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "To view the previous page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ·Ī½ ĻĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĪµĻĪ¬Ī²Ī±ĻĪ·</guimenu><guimenuitem>Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· Ī£ĪµĪ»ĪÆĪ“Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "To view the first page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ·Ī½ ĻĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī± ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ , ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĪµĻĪ¬Ī²Ī±ĻĪ·</guimenu><guimenuitem>Ī ĻĻĻĪ· Ī£ĪµĪ»ĪÆĪ“Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "To view the last page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ·Ī½ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī± ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ , ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĪµĻĪ¬Ī²Ī±ĻĪ·</guimenu><guimenuitem>Ī¤ĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± Ī£ĪµĪ»ĪÆĪ“Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ Ī¼Ī¹Ī± ĻĻ Ī³ĪŗĪµĪŗĻĪ¹Ī¼ĪĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±, ĪµĪ¹ĻĪ¬Ī³ĪµĻĪµ ĻĪæĪ½ Ī±ĻĪ¹ĪøĪ¼Ļ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ Ī® ĻĪ·Ī½ ĪµĻĪ¹ĪŗĪĻĪ± ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĻĪæ ĪŗĪæĻ ĻĪÆ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ ĻĪ·Ļ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·Ļ ĪŗĪ±Ī¹ ĻĪ±ĻĪ®ĻĻĪµ <keycap>Return</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "ĪĪ¹Ī± Ī½Ī± ĪŗĻ Ī»ĪÆĻĪµĻĪµ Ī¼Ī¹Ī± ĻĪµĪ»ĪÆĪ“Ī±" + +#: C/evince.xml:295(para) +msgid "To display the page contents that are not currently displayed in the display area, use the following methods:" +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ± ĻĪµĻĪ¹ĪµĻĻĪ¼ĪµĪ½Ī± ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ Ī“ĪµĪ½ ĪµĪ¼ĻĪ±Ī½ĪÆĪ¶ĪæĪ½ĻĪ±Ī¹ ĻĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ , ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ¹Ļ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ Ī¼ĪµĪøĻĪ“ĪæĻ Ļ:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ± ĪŗĪæĻ Ī¼ĻĪ¹Ī¬ Ī²ĪĪ»ĪæĻ Ļ Ī® ĻĪæ ĻĪ»Ī®ĪŗĻĻĪæ Ī“Ī¹Ī±ĻĻĪ®Ī¼Ī±ĻĪæĻ ĻĪæĻ ĻĪ»Ī·ĪŗĻĻĪæĪ»ĪæĪ³ĪÆĪæĻ ." + +#: C/evince.xml:301(para) +msgid "Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window." +msgstr "ĪĪµĻĪ±ĻĪĻĪµĻĪµ ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĪŗĪ¬Ī½ĪæĪ½ĻĪ±Ļ ĪŗĪ»Ī¹Īŗ Ī¼Īµ ĻĪæ Ī¼ĪµĻĪ±ĪÆĪæ ĪŗĪæĻ Ī¼ĻĪÆ ĻĪæĻ ĻĪæĪ½ĻĪ¹ĪŗĪ¹ĪæĻ ĻĪ±Ļ ĻĪµ ĪĪ½Ī± ĻĪ·Ī¼ĪµĪÆĪæ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĪŗĪ±Ī¹ ĻĻĻĪµĻĪ± Ī¼ĪµĻĪ±ĪŗĪ¹Ī½ĻĪ½ĻĪ±Ļ ĻĪæ ĻĪæĪ½ĻĪÆĪŗĪ¹ ĻĪ±Ļ. ĪĪ¹Ī± ĻĪ±ĻĪ¬Ī“ĪµĪ¹Ī³Ī¼Ī±, Ī³Ī¹Ī± Ī½Ī± ĻĻĪ±Ī³Ī¼Ī±ĻĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĪŗĻĪ»Ī¹ĻĪ· ĻĻĪæĻ ĻĪ± ĪŗĪ¬ĻĻ ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±, Ī¼ĪµĻĪ±ĻĪĻĪµĻĪµ ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĻĻĪæĻ ĻĪ± ĻĪ¬Ī½Ļ ĪµĪ½ĻĻĻ ĻĪæĻ ĻĪ±ĻĪ±ĪøĻĻĪæĻ ." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ¹Ļ Ī¼ĻĪ¬ĻĪµĻ ĪŗĻĪ»Ī¹ĻĪ·Ļ ĻĪæĻ ĻĪ±ĻĪ±ĪøĻĻĪæĻ ." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: C/evince.xml:312(para) +msgid "You can use the following methods to resize a page in the <application>Evince Document Viewer</application> display area:" +msgstr "ĪĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĻĪ¹Ļ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ Ī¼ĪµĪøĻĪ“ĪæĻ Ļ Ī³Ī¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĻĪæĪ½ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> " + +#: C/evince.xml:317(para) +msgid "To increase the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ļ Ī¾Ī®ĻĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>ĪĪµĪ³ĪĪøĻ Ī½ĻĪ·</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "To decrease the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī¼ĪµĪ¹ĻĻĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ·</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "To resize a page to have the same width as the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĻĻĪµ Ī½Ī± ĪĻĪµĪ¹ ĻĪæ ĪÆĪ“Ī¹Īæ ĻĪ»Ī¬ĻĪæĻ Ī¼Īµ ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ ĻĪæĻ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application>, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>Ī¤Ī±ĪÆĻĪ¹Ī±ĻĪ¼Ī± ĻĻĪæ ĻĪ»Ī¬ĻĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "To resize a page to fit within the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĻĻĪµ Ī½Ī± ĻĪ±Ī¹ĻĪ¹Ī¬Ī¶ĪµĪ¹ Ī¼Īµ ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ ĻĪæĻ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application>, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>ĪĪ±Ī»ĻĻĪµĻĪæ Ī¤Ī±ĪÆĻĪ¹Ī±ĻĪ¼Ī±</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "To resize the <application>Evince Document Viewer</application> window to have the same width and height as the screen, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></menuchoice>. To resize the <application>Evince Document Viewer</application> window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button." +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ±ĻĪ±ĪøĻĻĪæĻ ĻĪ·Ļ <application>Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application> ĻĻĻĪµ Ī½Ī± ĪĻĪµĪ¹ ĻĪæ ĪÆĪ“Ī¹Īæ Ī¼Ī®ĪŗĪæĻ ĪŗĪ±Ī¹ ĻĪ»Ī¬ĻĪæĻ ĻĻĪæ Ī· ĪæĪøĻĪ½Ī·, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>Ī Ī»Ī®ĻĪ·Ļ ĪæĪøĻĪ½Ī·</guimenuitem></menuchoice>. ĪĪ¹Ī± Ī½Ī± ĪµĻĪ±Ī½Ī±ĻĪĻĪµĻĪµ ĻĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ ĻĪæĻ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> ĻĻĪæ Ī±ĻĻĪ¹ĪŗĻ ĻĪæĻ Ī¼ĪĪ³ĪµĪøĪæĻ, ĪŗĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĻĪæ ĪŗĪæĻ Ī¼ĻĪÆ Ī¼Īµ ĻĪ·Ī½ ĪŗĪµĻĪ±Ī»ĪÆĪ“Ī± ĪĪ¾ĪæĪ“ĪæĻ Ī Ī»Ī®ĻĪ·Ļ ĪĪøĻĪ½Ī·Ļ." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪµĪ»ĪÆĪ“ĪµĻ Ī® ĻĪ· Ī“ĪæĪ¼Ī® ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪÆĪŗĻĪµĻ Ī® ĻĪµĪ»ĪÆĪ“ĪµĻ ĪµĪŗĻĪµĪ»ĪĻĻĪµ ĻĪ± ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ Ī²Ī®Ī¼Ī±ĻĪ±:" + +#: C/evince.xml:350(para) +msgid "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "ĪĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>Ī ĻĪæĪ²ĪæĪ»Ī®</guimenu><guimenuitem>Ī Ī»Ī¬Ī³Ī¹Ī± Ī¼ĻĪ¬ĻĪ±</guimenuitem></menuchoice> Ī® ĻĪ±ĻĪ®ĻĻĪµ <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ· Ī»ĪÆĻĻĪ± ĻĻĪ· ĪŗĪµĻĪ±Ī»ĪÆĪ“Ī± ĻĪæĻ ĻĪ»ĪµĻ ĻĪ¹ĪŗĪæĻ ĻĪ±Ī¼ĻĪ»Ļ Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĪµĪ¬Ī½ ĪøĪ± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ·Ī½ Ī“ĪæĪ¼Ī® ĻĪæĻ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ Ī® ĻĪ¹Ļ ĻĪµĪ»ĪÆĪ“ĪµĻ ĻĻĪæ ĻĪ»ĪµĻ ĻĪ¹ĪŗĻ ĻĪ±Ī¼ĻĪ»Ļ." + +#: C/evince.xml:360(para) +msgid "Use the side-pane scrollbars to display the required item or page in the side pane." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ·Ī½ Ī¼ĻĪ¬ĻĪ± ĪŗĻĪ»Ī¹ĻĪ·Ļ ĻĪæĻ ĻĪ»ĪµĻ ĻĪ¹ĪŗĪæĻ ĻĪ±Ī¼ĻĪ»Ļ Ī³Ī¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»Ī»ĪµĻĪµ ĻĪæ Ī±Ī½ĻĪ¹ĪŗĪµĪÆĪ¼ĪµĪ½Īæ Ī® ĻĪ·Ī½ ĻĪµĪ»ĪÆĪ“Ī± ĻĻĪæ ĻĪ»ĪµĻ ĻĪ¹ĪŗĻ ĻĪ±Ī¼ĻĪ»Ļ." + +#: C/evince.xml:365(para) +msgid "Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document." +msgstr "ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĪµ ĪĪ½Ī± ĻĪ·Ī¼ĪµĪÆĪæ Ī³Ī¹Ī± Ī½Ī± ĻĪµĻĪ¹Ī·Ī³Ī·ĪøĪµĪÆĻĪµ ĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ . ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĪµ Ī¼Ī¹Ī± ĻĪµĪ»ĪÆĪ“Ī± Ī³Ī¹Ī± Ī½Ī± ĻĪµĻĪ¹Ī·Ī³Ī·ĪøĪµĪÆĻĪµ ĻĪµ Ī±Ļ ĻĪ® ĻĪ· ĻĪµĪ»ĪÆĪ“Ī± ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ¹Ļ Ī¹Ī“Ī¹ĻĻĪ·ĻĪµĻ ĪµĪ½ĻĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:372(para) +msgid "To view the properties of a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻĪæĪ²Ī¬Ī»ĪµĻĪµ ĻĪ¹Ļ Ī¹Ī“Ī¹ĻĻĪ·ĻĪµĻ ĪµĪ½ĻĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ , ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ</guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "Ī¤Īæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ Ī“Ī¹Ī±Ī»ĻĪ³ĪæĻ <guilabel>ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ</guilabel> ĻĻĪæĪ²Ī¬Ī»ĪµĪ¹ ĻĪ»ĪµĻ ĻĪ¹Ļ Ī“Ī¹Ī±ĪøĪĻĪ¹Ī¼ĪµĻ ĻĪ»Ī·ĻĪæĻĪæĻĪÆĪµĻ Ī³Ī¹Ī± ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:385(para) +msgid "To print a Document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĪŗĻĻĻĻĻĪ·</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend=\"evince-password\"/> for more information about password-protected files." +msgstr "ĪĪ¬Ī½ Ī“ĪµĪ½ Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ Ī±ĻĻ ĻĪæ Ī¼ĪµĪ½ĪæĻ ĻĪ·Ī½ ĪµĻĪ¹Ī»ĪæĪ³Ī® <guimenuitem>ĪĪŗĻĻĻĻĻĪ·</guimenuitem>, Īæ ĻĻ Ī³Ī³ĻĪ±ĻĪĪ±Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĪĻĪµĪ¹ Ī±ĻĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹Ī®ĻĪµĪ¹ ĻĪ·Ī½ ĪµĻĪ¹Ī»ĪæĪ³Ī® ĪµĪŗĻĻĻĻĻĪ·Ļ. ĪĪ¹Ī± Ī½Ī± ĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĻĪ·Ī½ ĪµĻĪ¹Ī»ĪæĪ³Ī® ĪµĪŗĻĻĻĻĻĪ·Ļ, ĻĻĪĻĪµĪ¹ Ī½Ī± ĪµĪ¹ĻĪ¬Ī³ĪµĻĪµ ĻĪæĪ½ ĪŗĻĻĪ¹Īæ ĪŗĻĪ“Ī¹ĪŗĻ ĻĻĪ±Ī½ Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ. ĪĪµĪÆĻĪµ ĻĪæ <xref linkend=\"evince-password\"/> Ī³Ī¹Ī± ĻĪµĻĪ¹ĻĻĻĻĪµĻĪµĻ ĻĪ»Ī·ĻĪæĻĪæĻĪÆĪµĻ ĻĻĪµĻĪ¹ĪŗĪ¬ Ī¼Īµ Ī±ĻĻĪµĪÆĪ± ĻĪæĻ ĻĻĪæĻĻĪ±ĻĪµĻĪæĪ½ĻĪ±Ī¹ Ī¼Īµ ĪŗĻĪ“Ī¹ĪŗĻ." + +#: C/evince.xml:393(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "Ī Ī“Ī¹Ī¬Ī»ĪæĪ³ĪæĻ <guilabel>ĪĪŗĻĻĻĻĻĪ·</guilabel> ĪĻĪµĪ¹ ĻĪæĻ Ļ Ī±ĪŗĻĪ»ĪæĻ ĪøĪæĻ Ļ ĻĪæĪ¼ĪµĪÆĻ:" + +#: C/evince.xml:399(link) +#: C/evince.xml:415(title) +msgid "Job" +msgstr "ĪĪæĻ Ī»ĪµĪ¹Ī¬" + +#: C/evince.xml:404(link) +#: C/evince.xml:437(title) +#: C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "ĪĪŗĻĻ ĻĻĻĪ®Ļ" + +#: C/evince.xml:409(link) +#: C/evince.xml:531(title) +msgid "Paper" +msgstr "Ī§Ī±ĻĻĪÆ" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "ĪĻĻĪæĻ ĪµĪŗĻĻĻĻĻĪ·Ļ" + +#: C/evince.xml:419(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "ĪĪ¹Ī±Ī»ĪĪ¾ĻĪµ Ī¼Ī¹Ī± Ī±ĻĻ ĻĪ¹Ļ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ Ī³Ī¹Ī± Ī½Ī± ĪæĻĪÆĻĪµĻĪµ ĻĻĻĪµĻ ĻĪµĪ»ĪÆĪ“ĪµĻ ĪøĪ± ĻĻ ĻĻĪøĪæĻĪ½:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "ĪĪ»ĪµĻ" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "ĪĪ¹Ī±Ī»ĪĪ¾ĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĪµĻĪ¹Ī»ĪæĪ³Ī® Ī³Ī¹Ī± Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĻĪ»ĪµĻ ĻĪ¹Ļ ĻĪµĪ»ĪÆĪ“ĪµĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Ī£ĪµĪ»ĪÆĪ“ĪµĻ Ī±ĻĻ" + +#: C/evince.xml:427(para) +msgid "Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range." +msgstr "ĪĪ¹Ī±Ī»ĪĪ¾ĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĪµĻĪ¹Ī»ĪæĪ³Ī® Ī³Ī¹Ī± Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĻĪæ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½Īæ ĪµĻĻĪæĻ ĻĪµĪ»ĪÆĪ“ĻĪ½ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ . Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ± ĪŗĪæĻ ĻĪ¹Ī¬ ĪµĪ¹ĻĪ±Ī³ĻĪ³Ī®Ļ Ī³Ī¹Ī± Ī½Ī± ĪæĻĪÆĻĪµĻĪµ ĻĪ·Ī½ ĻĻĻĻĪ· ĪŗĪ±Ī¹ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī± ĻĪæĻ ĪµĻĻĪæĻ Ļ." + +#: C/evince.xml:441(para) +msgid "Use this drop-down list to select the printer to which you want to print the document." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ·Ī½ Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪæĪ½ ĪµĪŗĻĻ ĻĻĻĪ® ĻĻĪæĪ½ ĪæĻĪæĪÆĪæ ĪøĪ± ĻĻ ĻĻĪøĪµĪÆ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ." + +#: C/evince.xml:443(para) +msgid "The <guilabel>Create a PDF document</guilabel> option is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "Ī ĪµĻĪ¹Ī»ĪæĪ³Ī® <guilabel>ĪĪ·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ PDF</guilabel> Ī“ĪµĪ½ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪµĻĪ±Ī¹ ĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĪĪŗĪ“ĪæĻĪ· ĻĪæĻ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Ī”Ļ ĪøĪ¼ĪÆĻĪµĪ¹Ļ" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪ¹Ļ ĻĻ ĪøĪ¼ĪÆĻĪµĪ¹Ļ ĻĪæĻ ĪµĪŗĻĻ ĻĻĻĪ®." + +#: C/evince.xml:453(para) +msgid "To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer." +msgstr "ĪĪ¹Ī± Ī½Ī± ĻĻ ĪøĪ¼ĪÆĻĪµĻĪµ ĻĪæĪ½ ĪµĪŗĻĻ ĻĻĻĪ®, ĪŗĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĻĪæ ĪŗĪæĻ Ī¼ĻĪÆ <guibutton>Ī”Ļ ĪøĪ¼ĪÆĻĪµĪ¹Ļ</guibutton>. ĪĪ¹Ī± ĻĪ±ĻĪ¬Ī“ĪµĪ¹Ī³Ī¼Ī±, Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹Ī®ĻĪµĻĪµ Ī® Ī½Ī± Ī±ĻĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹Ī®ĻĪµĻĪµ ĻĪ·Ī½ ĪµĪŗĻĻĻĻĻĪ· Ī¼ĻĻĪæĻ-ĻĪÆĻĻ Ī® Ī½Ī± ĻĻĪæĪ³ĻĪ±Ī¼Ī¼Ī±ĻĪÆĻĪµĻĪµ ĻĪ·Ī½ ĪµĪŗĻĻĻĻĻĪ· Ī³Ī¹Ī± Ī±ĻĪ³ĻĻĪµĻĪ±, Ī±Ī½ Ī±Ļ ĻĻ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪµĻĪ±Ī¹ Ī±ĻĻ ĻĪæĪ½ ĪµĪŗĻĻ ĻĻĻĪ®." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Ī¤ĪæĻĪæĪøĪµĻĪÆĪ±" + +#: C/evince.xml:459(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĪĪ½Ī±Ī½ Ī±ĻĻ ĻĪæĻ Ļ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ ĻĻĪæĪæĻĪ¹ĻĪ¼ĪæĻĻ ĪµĪŗĻĻĻĻĻĪ·Ļ:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "ĪĪŗĻĻ ĻĻĻĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµ ĪµĪŗĻĻ ĻĻĻĪ® CUPS." + +#: C/evince.xml:470(para) +msgid "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list." +msgstr "ĪĪ¬Ī½ Īæ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½ĪæĻ ĪµĪŗĻĻ ĻĻĻĪ®Ļ ĪµĪÆĪ½Ī±Ī¹ CUPS, <guilabel>CUPS</guilabel> ĪµĪÆĪ½Ī±Ī¹ Ī· Ī¼ĻĪ½Ī· ĪµĻĪ¹Ī»ĪæĪ³Ī® ĻĻĪ· Ī»ĪÆĻĻĪ±." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "ĪĪŗĻĻ ĻĻĻĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµ ĪµĪŗĻĻ ĻĻĻĪ®." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "ĪĻĻĪµĪÆĪæ" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "ĪĪŗĻĻ ĻĻĻĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµ Ī±ĻĻĪµĪÆĪæ PostScript." + +#: C/evince.xml:490(para) +msgid "Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file." +msgstr "ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĻĪæ <guibutton>ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĻĻ</guibutton> Ī³Ī¹Ī± ĻĪ·Ī½ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ· Ī“Ī¹Ī±Ī»ĻĪ³ĪæĻ ĻĻĪæĻ Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± ĪæĻĪÆĻĪµĻĪµ ĻĪæ ĻĪ½ĪæĪ¼Ī± ĪŗĪ±Ī¹ ĻĪ·Ī½ ĻĪæĻĪæĪøĪµĻĪÆĪ± ĻĪæĻ Ī±ĻĻĪµĪÆĪæĻ PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Custom" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ·Ī½ ĻĻ Ī³ĪŗĪµĪŗĻĪ¹Ī¼ĪĪ½Ī· ĪµĪ½ĻĪæĪ»Ī® Ī³Ī¹Ī± Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ." + +#: C/evince.xml:501(para) +msgid "Type the name of the command in the text box. Include all command-line arguments." +msgstr "Ī¤Ļ ĻĻĻĻĪµ ĻĪ·Ī½ ĪµĪ½ĻĪæĪ»Ī® ĻĻĪæ ĪŗĪæĻ ĻĪÆ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ . ĪĪ¹ĻĪ¬Ī³ĪµĻĪµ ĻĪ»ĪµĻ ĻĪ¹Ļ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ Ī³Ī¹Ī± ĻĪ·Ī½ Ī³ĻĪ±Ī¼Ī¼Ī® ĪµĪ½ĻĪæĪ»ĻĪ½." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "State" + +#: C/evince.xml:511(para) +#: C/evince.xml:517(para) +#: C/evince.xml:523(para) +msgid "This functionality is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "ĪĻ ĻĪ® Ī· Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ± Ī“ĪµĪ½ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪµĻĪ±Ī¹ ĻĪµ Ī±Ļ ĻĪ® ĻĪ·Ī½ ĪĪŗĪ“ĪæĻĪ· ĻĪæĻ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Ī¤ĻĻĪæĻ" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Ī£ĻĻĪ»Ī¹Īæ" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "ĪĪĪ³ĪµĪøĪæĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: C/evince.xml:535(para) +msgid "Use this drop-down list to select the size of the paper to which you want to print the document." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± ĪµĻĪ¹Ī»ĪĪ¾ĪµĻĪµ ĻĪæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ ĻĪæĻ ĪøĪĪ»ĪµĻĪµ Ī½Ī± ĻĻ ĻĻĻĪµĻĪµ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Ī Ī»Ī¬ĻĪæĻ" + +#: C/evince.xml:540(para) +msgid "Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĻ ĻĪæ ĪŗĪæĻ ĻĪÆ Ī³Ī¹Ī± Ī½Ī± ĪæĻĪÆĻĪµĻĪµ ĻĪæ ĻĪ»Ī¬ĻĪæĻ ĻĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ. Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ ĻĪ·Ī½ Ī“Ī¹ĻĪ»Ī±Ī½Ī® Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī±Ī»Ī»Ī¬Ī¾ĪµĻĪµ ĻĪ·Ī½ Ī¼ĪæĪ½Ī¬Ī“Ī± Ī¼ĪĻĻĪ·ĻĪ·Ļ." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "ĪĻĪæĻ" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĻ ĻĪæ ĪŗĪæĻ ĻĪÆ Ī³Ī¹Ī± Ī½Ī± ĪæĻĪÆĻĪµĻĪµ ĻĪæ ĻĻĪæĻ ĻĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Ī ĻĪæĻĪ±Ī½Ī±ĻĪæĪ»Ī¹ĻĪ¼ĻĻ ĪµĪ¹ĻĪ±Ī³ĻĪ³Ī®Ļ ĻĪ±ĻĻĪ¹ĪæĻ" + +#: C/evince.xml:550(para) +msgid "Use this drop-down list to select the orientation of the paper in the printer." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪæ ĻĻĪæĻĪ±Ī½Ī±ĻĪæĪ»Ī¹ĻĪ¼Ļ ĻĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ ĻĻĪæĪ½ ĪµĪŗĻĻ ĻĻĻĪ®." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Ī ĻĪæĻĪ±Ī½Ī±ĻĪæĪ»Ī¹ĻĪ¼ĻĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪæĪ½ ĻĻĪæĻĪ±Ī½Ī±ĻĪæĪ»Ī¹ĻĪ¼Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "ĪĪ¹Ī¬ĻĪ±Ī¾Ī·" + +#: C/evince.xml:560(para) +msgid "Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪ·Ī½ Ī“Ī¹Ī¬ĻĪ±Ī¾Ī· ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ. Ī ĻĻĪæĪµĻĪ¹ĻĪŗĻĻĪ·ĻĪ· ĻĪ·Ļ Ī“Ī¹Ī¬ĻĪ±Ī¾Ī·Ļ ĻĪæĻ Ī“Ī¹Ī±Ī»ĪĪ¾Ī±ĻĪµ ĪµĪ¼ĻĪ±Ī½ĪÆĪ¶ĪµĻĪ±Ī¹ ĻĻĪ·Ī½ ĻĪµĻĪ¹ĪæĻĪ® <guilabel>Ī ĻĪæĪµĻĪ¹ĻĪŗĻĻĪ·ĻĪ·</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "ĪĪ¹ĻĪ±Ī³ĻĪ³Ī® ĻĪ±ĻĻĪ¹ĪæĻ" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Ī§ĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĻĪµ Ī±Ļ ĻĪ® ĻĪ· Ī»ĪÆĻĻĪ± Ī³Ī¹Ī± Ī½Ī± Ī“Ī¹Ī±Ī»ĪĪ¾ĪµĻĪµ ĻĪæĪ½ ĪµĪ¹ĻĪ±Ī³ĻĪ³ĪĪ± ĻĪ±ĻĻĪ¹ĪæĻ." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪµĻĪµ ĪĪ½Ī± Ī±ĻĻĪµĪÆĪæ, ĪµĪŗĻĪµĪ»ĪĻĻĪµ ĻĪ± ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ Ī²Ī®Ī¼Ī±ĻĪ±:" + +#: C/evince.xml:580(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</guimenuitem></menuchoice>." +msgstr "ĪĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ </guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog." +msgstr "Ī¤Ļ ĻĻĻĻĪµ ĪĪ½Ī± ĻĪ½ĪæĪ¼Ī± ĻĻĪæ ĪŗĪæĻ ĻĪÆ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ <guilabel>ĪĪ½ĪæĪ¼Ī± Ī±ĻĻĪµĪÆĪæĻ </guilabel> ĻĻĪæ Ī“Ī¹Ī¬Ī»ĪæĪ³Īæ <guilabel>ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ </guilabel>" + +#: C/evince.xml:588(para) +msgid "If necessary, specify the location of the copied document. By default, copies are saved in your home directory." +msgstr "ĪĪ¬Ī½ ĪµĪÆĪ½Ī±Ī¹ Ī±Ī½Ī±Ī³ĪŗĪ±ĪÆĪæ, ĪæĻĪÆĻĻĪµ ĻĪ·Ī½ ĻĪæĻĪæĪøĪµĻĪÆĪ± ĻĪæĻ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ . ĪĪ¾ ĪæĻĪ¹ĻĪ¼ĪæĻ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪ± ĻĻĪ¶ĪæĪ½ĻĪ±Ī¹ ĻĻĪæĪ½ Ī±ĻĻĪ¹ĪŗĻ ĪŗĪ±ĻĪ¬Ī»ĪæĪ³Īæ ĻĻĪ®ĻĻĪ·." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ ĻĻĪ·Ī½ <guibutton>ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ·</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "ĪĪ¹Ī± Ī½Ī± ĪµĻĪ³Ī±ĻĻĪµĪÆĻĪµ Ī¼Īµ Ī±ĻĻĪµĪÆĪ± ĻĻĪæĻĻĪ±ĻĪµĻ Ī¼ĪĪ½Ī± Ī¼Īµ ĪŗĻĪ“Ī¹ĪŗĻ" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "Ī ĻĻ Ī³Ī³ĻĪ±ĻĪĪ±Ļ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī®ĻĪµĪ¹ ĻĪ± Ī±ĪŗĻĪ»ĪæĻ ĪøĪ± ĪµĻĪÆĻĪµĪ“Ī± Ī±ĻĻĪ±Ī»ĪµĪÆĪ±Ļ Ī¼Īµ ĪŗĻĪ“Ī¹ĪŗĻ Ī³Ī¹Ī± Ī½Ī± ĻĻĪæĻĻĪ±ĻĪµĻĻĪµĪ¹ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "ĪĻĪ“Ī¹ĪŗĻĻ ĻĻĪ®ĻĻĪ· ĻĪæĻ ĪµĻĪ¹ĻĻĪĻĪµĪ¹ ĻĪµ Ī¬Ī»Ī»ĪæĻ Ļ Ī¼ĻĪ½Īæ Ī½Ī± Ī“Ī¹Ī±Ī²Ī¬ĻĪæĻ Ī½ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ." + +#: C/evince.xml:612(para) +msgid "Master password that allows others to perform additional actions, such as print the document." +msgstr "ĪĻĻĪ¹ĪæĻ ĪŗĻĪ“Ī¹ĪŗĻĻ ĻĪæĻ ĪµĻĪ¹ĻĻĪĻĪµĪ¹ ĻĪµ Ī¬Ī»Ī»ĪæĻ Ļ Ī½Ī± ĪµĪŗĻĪµĪ»ĪĻĪæĻ Ī½ ĪŗĪ±Ī¹ Ī¬Ī»Ī»ĪµĻ Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪµĻ ĻĻĻĻ ĪµĪŗĻĻĻĻĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: C/evince.xml:616(para) +msgid "When you try to open a password-protected document, <application>Evince Document Viewer</application> displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "ĪĻĪ±Ī½ ĻĻĪæĻĻĪ±ĪøĪ®ĻĪµĻĪµ Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪæĻ ĻĻĪæĻĻĪ±ĻĪµĻĪµĻĪ±Ī¹ Ī¼Īµ ĪŗĻĪ“Ī¹ĪŗĻ, Īæ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</application> ĪµĪ¼ĻĪ±Ī½ĪÆĪ¶ĪµĪ¹ ĪĪ½Ī± Ī“Ī¹Ī¬Ī»ĪæĪ³Īæ Ī±ĻĻĪ±Ī»ĪµĪÆĪ±Ļ. ĪĻĻĻĪµ ĪµĪÆĻĪµ ĻĪæĪ½ ĪŗĻĪ“Ī¹ĪŗĻ ĻĻĪ®ĻĻĪ· Ī® ĻĪæĪ½ ĪŗĻĻĪ¹Īæ ĪŗĻĪ“Ī¹ĪŗĻ ĻĻĪæ ĪŗĪæĻ ĻĪÆ <guilabel>ĪĪ¹ĻĪ±Ī³ĻĪ³Ī® ĪŗĻĪ“Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ </guilabel> ĪŗĪ±Ī¹ Ī¼ĪµĻĪ¬ ĪŗĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ <guibutton>ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĪĪ³Ī³ĻĪ¬ĻĪæĻ </guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "ĪĪ¹Ī± Ī½Ī± ĪŗĪ»ĪµĪÆĻĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:624(para) +msgid "To close a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "ĪĪ¹Ī± Ī½Ī± ĪŗĪ»ĪµĪÆĻĪµĻĪµ ĪĪ½Ī± ĪĪ³Ī³ĻĪ±ĻĪæ, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</guimenu><guimenuitem>ĪĪ»ĪµĪÆĻĪ¹Ī¼Īæ</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "If the window is the last <application>Evince Document Viewer</application> window open, the application exits." +msgstr "ĪĪ¬Ī½ ĻĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ ĪµĪÆĪ½Ī±Ī¹ ĻĪæ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪæ Ī±Ī½ĪæĪ¹ĻĻĻ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ ĻĪæĻ <application>Ī ĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application>, Ī· ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® ĪøĪ± ĪŗĪ»ĪµĪÆĻĪµĪ¹." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Ī£Ļ Ī½ĻĪæĪ¼ĪµĻĻĪµĪ¹Ļ" + +#: C/evince.xml:636(para) +msgid "Below is a list of all shortcuts present in <application>Evince Document Viewer</application>:" +msgstr "Ī Ī±ĻĪ±ĪŗĪ¬ĻĻ Ī¼ĻĪæĻĪµĪÆĻĪµ Ī½Ī± Ī“ĪµĪÆĻĪµ Ī¼ĪÆĪ± Ī»ĪÆĻĻĪ± Ī¼Īµ ĻĪ»ĪµĻ ĻĪ¹Ļ ĻĻ Ī½ĻĪæĪ¼ĪµĻĻĪµĪ¹Ļ ĻĪæĻ ĻĪ±ĻĪæĻ ĻĪ¹Ī¬Ī¶ĪæĪ½ĻĪ±Ī¹ ĻĻĪ·Ī½ <application>Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Ī Ī»Ī®ĪŗĻĻĪæ ĻĻ Ī½ĻĻĪ¼ĪµĻ ĻĪ·Ļ" + +#: C/evince.xml:651(keycap) +#: C/evince.xml:655(keycap) +#: C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) +#: C/evince.xml:667(keycap) +#: C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) +#: C/evince.xml:683(keycap) +#: C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī± Ļ ĻĪ¬ĻĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ½ĻĻ Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ Ī³Ī¹Ī± ĻĪæ ĻĻĪĻĪæĪ½ ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "ĪĪŗĻĻĻĻĻĪ· ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "ĪĪ»ĪµĪÆĻĪ¹Ī¼Īæ ĻĪ±ĻĪ±ĪøĻĻĪæĻ " + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "ĪĪ½ĻĪ¹Ī³ĻĪ±ĻĪ® ĪµĻĪ¹Ī»ĪæĪ³Ī®Ļ" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "ĪĻĪ¹Ī»ĪæĪ³Ī® ĻĪ»ĻĪ½" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (ĪŗĪ¬ĪøĪµĻĪæĻ)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "ĪĻĻĪµĻĪ· Ī»ĪĪ¾Ī·Ļ Ī® ĻĻĪ¬ĻĪ·Ļ Ī¼ĪĻĪ± ĻĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +#| msgid "F" +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "ĪĻĻĪµĻĪ· ĪµĻĻĪ¼ĪµĪ½ĪæĻ " + +#: C/evince.xml:690(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (ĻĻĪ¼Ī²ĪæĪ»Īæ ĻĻĻĻĪøĪµĻĪ·Ļ)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "ĪĪµĪ³ĪĪøĻ Ī½ĻĪ·" + +#: C/evince.xml:698(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (ĻĻĪ¼Ī²ĪæĪ»Īæ Ī¼ĪµĪÆĪæĪ½)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ·" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "ĪĻĪ±Ī½Ī±ĻĻĻĻĻĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: C/evince.xml:709(keycap) +#: C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: C/evince.xml:713(keycap) +#: C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĪµĻĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: C/evince.xml:718(keycap) +#: C/evince.xml:726(keycap) +msgid "Space" +msgstr "Ī Ī»Ī®ĪŗĻĻĪæ Ī“Ī¹Ī±ĻĻĪ®Ī¼Ī±ĻĪæĻ" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:726(keycap) +#: C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) +#: C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:720(keycap) +#: C/evince.xml:728(keycap) +msgid "Return" +msgstr "Return" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĪµĪ¼ĻĻĻĻ" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĻĪÆĻĻ" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĪŗĪ±ĻĪ¬ Ī¼ĪÆĪ± Ī“ĪĻĪ¼Ī· ĻĪµĪ»ĪÆĪ“ĻĪ½ ĻĻĪæĻ ĻĪ± ĻĪ¬Ī½Ļ" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĪŗĪ±ĻĪ¬ Ī¼ĪÆĪ± Ī“ĪĻĪ¼Ī· ĻĪµĪ»ĪÆĪ“ĻĪ½ ĻĻĪæĻ ĻĪ± ĪŗĪ¬ĻĻ" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī±" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĪµ ĻĪµĪ»ĪÆĪ“Ī± Ī¼Īµ Ī²Ī¬ĻĪ· ĻĪæĪ½ Ī±ĻĪ¹ĪøĪ¼Ļ ĻĪ·Ļ Ī® ĪŗĪ¬ĻĪæĪ¹Ī± ĪµĻĪ¹ĪŗĪĻĪ±" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ Ī²ĪæĪ®ĪøĪµĪ¹Ī±" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "ĪĪŗĻĪĪ»ĪµĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻ ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "ĪĪ¼ĻĪ¬Ī½Ī¹ĻĪ· Ī® Ī±ĻĻĪŗĻĻ ĻĪ· ĻĪæĻ ĻĪ»ĪµĻ ĻĪ¹ĪŗĪæĻ ĻĪ»Ī±Ī¹ĻĪÆĪæĻ " + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "ĪĪ½Ī±Ī»Ī»Ī±Ī³Ī® Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ±Ļ ĻĪ»Ī®ĻĪæĻ Ļ ĪæĪøĻĪ½Ī·Ļ" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Ī£ĻĻ Ī»Ī¹Ī±Ī½ĻĻ Ī Ī±ĻĪ±Ī½Ī±ĻĻĪ±ĻĪÆĪæĻ <stelios@dcs.gla.ac.uk>, 2005." + +#~ msgid "To Open a File" +#~ msgstr "ĪĪ¹Ī± Ī½Ī± Ī±Ī½ĪæĪÆĪ¾ĪµĻĪµ ĪĪ½Ī± Ī±ĻĻĪµĪÆĪæ" +#~ msgid "User manual for the Evince Document Viewer." +#~ msgstr "Ī¤ĪµĪŗĪ¼Ī·ĻĪÆĻĻĪ· Ī³Ī¹Ī± ĻĪæ Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½.<" +#~ msgid "" +#~ "You can start <application>Evince Document Viewer</application> in the " +#~ "following ways:" +#~ msgstr "" +#~ "ĪĻĪæĻĪµĪÆĻĪµ Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī®ĻĪµĻĪµ ĻĪæ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</" +#~ "application> Ī¼Īµ ĻĪæĻ Ļ ĻĪ±ĻĪ±ĪŗĪ¬ĻĻ ĻĻĻĻĪæĻ Ļ:" +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "ĪĪµĪ½ĪæĻ <guimenu>ĪĻĪ±ĻĪ¼ĪæĪ³ĪĻ</guimenu>" +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Graphics</guisubmenu><guimenuitem>Evince " +#~ "Document Viewer</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "ĪĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guisubmenu>ĪĻĪ±ĻĪ¹ĪŗĪ¬</guisubmenu><guimenuitem>Evince " +#~ "Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</guimenuitem></menuchoice>." +#~ msgid "Command line" +#~ msgstr "ĪĻĪ±Ī¼Ī¼Ī® ĪµĪ½ĻĪæĪ»ĻĪ½" +#~ msgid "Execute the following command: <command>evince</command>" +#~ msgstr "ĪĪŗĻĪµĪ»ĪĻĻĪµ ĻĪ·Ī½ Ī±ĪŗĻĪ»ĪæĻ ĪøĪ· ĪµĪ½ĻĪæĪ»Ī®: <command>evince</command>" +#~ msgid "" +#~ "To quit <application>Evince Document Viewer</application> at any time, no " +#~ "matter how many windows are open, choose <menuchoice><guimenu>File</" +#~ "guimenu><guimenuitem>Quit</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "ĪĪ¹Ī± Ī½Ī± ĪµĪ³ĪŗĪ±ĻĪ±Ī»ĪµĪÆĻĪµĻĪµ ĻĪæĪ½ <application>Evince Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½</" +#~ "application> ĪæĻĪæĪ¹Ī±Ī“Ī®ĻĪæĻĪµ ĻĻĪ¹Ī³Ī¼Ī®, Ī±Ī½ĪµĪ¾Ī¬ĻĻĪ·ĻĪ± Ī±ĻĻ ĻĪæ ĻĻĻĪ± ĻĪ±ĻĪ¬ĪøĻ ĻĪ± ĪµĪÆĪ½Ī±Ī¹ " +#~ "Ī±Ī½ĪæĪ¹ĻĻĪ¬, ĪµĻĪ¹Ī»ĪĪ¾ĻĪµ <menuchoice><guimenu>ĪĻĻĪµĪÆĪæ</" +#~ "guimenu><guimenuitem>ĪĪ¾ĪæĪ“ĪæĻ</guimenuitem></menuchoice>." +#~ msgid "" +#~ "When you quit, <application>Evince Document Viewer</application> closes " +#~ "all documents opened in the current session." +#~ msgstr "" +#~ "ĪĻĪ±Ī½ ĪµĪ³ĪŗĪ±ĻĪ±Ī»ĪµĪÆĻĪµĻĪµ ĻĪ·Ī½ ĪµĻĪ±ĻĪ¼ĪæĪ³Ī®, Īæ <application>Evince Ī ĻĪæĪ²ĪæĪ»ĪĪ±Ļ " +#~ "ĪĪ³Ī³ĻĪ¬ĻĪæĻ </application> ĪøĪ± ĪŗĪ»ĪµĪÆĻĪµĪ¹ ĻĪ»Ī± ĻĪ± ĪĪ³Ī³ĻĪ±ĻĪ± Ī±Ī½ĪæĪ¹ĻĻĪ¬ ĪŗĪ±ĻĪ¬ ĻĪ·Ī½ " +#~ "ĻĻĪĻĪæĻ ĻĪ± ĻĻ Ī½ĪµĪ“ĻĪÆĪ±." + diff --git a/help/el/figures/evince_start_window.png b/help/el/figures/evince_start_window.png new file mode 100644 index 00000000..d68625fe Binary files /dev/null and b/help/el/figures/evince_start_window.png differ diff --git a/help/en_GB/en_GB.po b/help/en_GB/en_GB.po new file mode 100644 index 00000000..3f13e432 --- /dev/null +++ b/help/en_GB/en_GB.po @@ -0,0 +1,1256 @@ +# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# David Lodge <dave@cirt.net>, 2007 +# +# Philip Withnall <philip@tecnocode.co.uk>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: evince docs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-09 07:18+0100\n" +"PO-Revision-Date: 2009-03-02 22:51+0000\n" +"Last-Translator: Philip Withnall <philip@tecnocode.co.uk>\n" +"Language-Team: British English <en@li.org>\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" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: ../C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: ../C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince Document Viewer Manual" + +#: ../C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" + +#: ../C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: ../C/evince.xml:34(holder) ../C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: ../C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: ../C/evince.xml:38(holder) ../C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: ../C/evince.xml:49(publishername) ../C/evince.xml:67(orgname) +#: ../C/evince.xml:93(para) ../C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "MATE Documentation Project" + +#: ../C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." + +#: ../C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the licence to the manual, as described in " +"section 6 of the licence." + +#: ../C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." + +#: ../C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY AND PERFORMANCE OF THE DOCUMENT OR MODIFIED " +"VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION " +"PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY " +"CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR " +"CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF " +"THIS LICENCE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS " +"AUTHORISED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" + +#: ../C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR " +"ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY " +"CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK " +"STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR " +"LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." + +#: ../C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENCE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" + +#: ../C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: ../C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE Documentation Team" + +#: ../C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: ../C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: ../C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: ../C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Evince Document Viewer Manual V1.1" + +#: ../C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: ../C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: ../C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: ../C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince Document Viewer Manual V1.0" + +#: ../C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: ../C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "This manual describes version 0.2 of Evince Document Viewer" + +#: ../C/evince.xml:109(title) +msgid "Feedback" +msgstr "Feedback" + +#: ../C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." + +#: ../C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Evince Document Viewer" + +#: ../C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: ../C/evince.xml:128(title) +msgid "Introduction" +msgstr "Introduction" + +#: ../C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. The <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." + +#: ../C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Getting Started" + +#: ../C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "To Start Evince Document Viewer" + +#: ../C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." + +#: ../C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." + +#: ../C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "When You Start Evince Document Viewer" + +#: ../C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." + +#: ../C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Evince Document Viewer Window" + +#: ../C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Shows Evince Document Viewer main window. This contains a titlebar, menubar, " +"toolbar and display area. The Menubar contains File, Edit, View, Go and Help " +"menus." + +#: ../C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" + +#: ../C/evince.xml:168(term) ../C/evince.xml:216(para) +msgid "Menubar" +msgstr "Menubar" + +#: ../C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." + +#: ../C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Toolbar" + +#: ../C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." + +#: ../C/evince.xml:180(term) +msgid "Display area" +msgstr "Display area" + +#: ../C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "The display area displays the document." + +#: ../C/evince.xml:196(para) +msgid "UI Component" +msgstr "UI Component" + +#: ../C/evince.xml:198(para) ../C/evince.xml:646(para) +msgid "Action" +msgstr "Action" + +#: ../C/evince.xml:203(para) +msgid "Window" +msgstr "Window" + +#: ../C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." + +#: ../C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Double-click on the file name in the file manager" + +#: ../C/evince.xml:217(para) ../C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." + +#: ../C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Shortcut keys" + +#: ../C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: ../C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" + +#: ../C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "This manual documents functionality from the menubar." + +#: ../C/evince.xml:236(title) +msgid "Usage" +msgstr "Usage" + +#: ../C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "To Open A Document" + +#: ../C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "To open a document, perform the following steps:" + +#: ../C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"In the <guilabel>Open Document</guilabel> dialogue, select the file you want " +"to open." + +#: ../C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." + +#: ../C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." + +#: ../C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognise, the application displays an error " +"message." + +#: ../C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "To Navigate Through a Document" + +#: ../C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "You can navigate through a file as follows:" + +#: ../C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." + +#: ../C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." + +#: ../C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." + +#: ../C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." + +#: ../C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." + +#: ../C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "To Scroll a Page" + +#: ../C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" + +#: ../C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Use the arrow keys or space key on the keyboard." + +#: ../C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." + +#: ../C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Use the scrollbars on the window." + +#: ../C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "To Change the Page Size" + +#: ../C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" + +#: ../C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." + +#: ../C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." + +#: ../C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." + +#: ../C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." + +#: ../C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." + +#: ../C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "To View Pages or Document Structure" + +#: ../C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "To view bookmarks or pages, perform the following steps:" + +#: ../C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." + +#: ../C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." + +#: ../C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." + +#: ../C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." + +#: ../C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "To View the Properties of a Document" + +#: ../C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." + +#: ../C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"The <guilabel>Properties</guilabel> dialogue displays all information " +"available" + +#: ../C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "To Print a Document" + +#: ../C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." + +#: ../C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." + +#: ../C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"The <guilabel>Print</guilabel> dialogue has the following tabbed sections:" + +#: ../C/evince.xml:399(link) ../C/evince.xml:415(title) +msgid "Job" +msgstr "Job" + +#: ../C/evince.xml:404(link) ../C/evince.xml:437(title) +#: ../C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Printer" + +#: ../C/evince.xml:409(link) ../C/evince.xml:531(title) +msgid "Paper" +msgstr "Paper" + +#: ../C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Print range" + +#: ../C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Select one of the following options to determine how many pages to print:" + +#: ../C/evince.xml:422(guilabel) +msgid "All" +msgstr "All" + +#: ../C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Select this option to print all of the pages in the document." + +#: ../C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Pages From" + +#: ../C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." + +#: ../C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Use this drop-down list to select the printer to which you want to print the " +"document." + +#: ../C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." + +#: ../C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Settings" + +#: ../C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Use this drop-down list to select the printer settings." + +#: ../C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." + +#: ../C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Location" + +#: ../C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Use this drop-down list to select one of the following print destinations:" + +#: ../C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: ../C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Print the document to a CUPS printer." + +#: ../C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." + +#: ../C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: ../C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Print the document to a printer." + +#: ../C/evince.xml:485(guilabel) +msgid "File" +msgstr "File" + +#: ../C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Print the document to a PostScript file." + +#: ../C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Click <guibutton>Save As</guibutton> to display a dialogue where you specify " +"the name and location of the PostScript file." + +#: ../C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Custom" + +#: ../C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Use the specified command to print the document." + +#: ../C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Type the name of the command in the text box. Include all command-line " +"arguments." + +#: ../C/evince.xml:509(guilabel) +msgid "State" +msgstr "State" + +#: ../C/evince.xml:511(para) ../C/evince.xml:517(para) +#: ../C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." + +#: ../C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Type" + +#: ../C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Comment" + +#: ../C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Paper size" + +#: ../C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." + +#: ../C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Width" + +#: ../C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." + +#: ../C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Height" + +#: ../C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Use this spin box to specify the height of the paper." + +#: ../C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Feed orientation" + +#: ../C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." + +#: ../C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Page orientation" + +#: ../C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Use this drop-down list to select the page orientation." + +#: ../C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Layout" + +#: ../C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." + +#: ../C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Paper Tray" + +#: ../C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Use this drop-down list to select the paper tray." + +#: ../C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "To Copy a Document" + +#: ../C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "To copy a file, perform the following steps:" + +#: ../C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." + +#: ../C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialogue." + +#: ../C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." + +#: ../C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Click <guibutton>Save</guibutton>." + +#: ../C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "To Work With Password-Protected Documents" + +#: ../C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "An author can use the following password levels to protect a document:" + +#: ../C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "User password that allows others only to read the document." + +#: ../C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Master password that allows others to perform additional actions, such as " +"print the document." + +#: ../C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialogue. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." + +#: ../C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "To Close a Document" + +#: ../C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." + +#: ../C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." + +#: ../C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Shortcuts" + +#: ../C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" + +#: ../C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Shortcut" + +#: ../C/evince.xml:651(keycap) ../C/evince.xml:655(keycap) +#: ../C/evince.xml:659(keycap) ../C/evince.xml:663(keycap) +#: ../C/evince.xml:667(keycap) ../C/evince.xml:671(keycap) +#: ../C/evince.xml:676(keycap) ../C/evince.xml:682(keycap) +#: ../C/evince.xml:701(keycap) ../C/evince.xml:747(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: ../C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: ../C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Open an existing document" + +#: ../C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: ../C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Save a copy of the current document" + +#: ../C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: ../C/evince.xml:660(para) +msgid "Print document" +msgstr "Print document" + +#: ../C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: ../C/evince.xml:664(para) +msgid "Close window" +msgstr "Close window" + +#: ../C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: ../C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copy selection" + +#: ../C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: ../C/evince.xml:672(para) +msgid "Select All" +msgstr "Select All" + +#: ../C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: ../C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (slash)" + +#: ../C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Find a word or phrase in the document" + +#: ../C/evince.xml:682(keycap) +msgid "G" +msgstr "G" + +#: ../C/evince.xml:683(para) +msgid "Find next" +msgstr "Find next" + +#: ../C/evince.xml:687(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" + +#: ../C/evince.xml:688(keycap) +msgid "+" +msgstr "+" + +#: ../C/evince.xml:689(keycap) +msgid "=" +msgstr "=" + +#: ../C/evince.xml:691(para) +msgid "Zoom in" +msgstr "Zoom in" + +#: ../C/evince.xml:695(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" + +#: ../C/evince.xml:696(keycap) +msgid "-" +msgstr "-" + +#: ../C/evince.xml:698(para) +msgid "Zoom out" +msgstr "Zoom out" + +#: ../C/evince.xml:701(keycap) +msgid "R" +msgstr "R" + +#: ../C/evince.xml:702(para) +msgid "Reload the document" +msgstr "Reload the document" + +#: ../C/evince.xml:706(keycap) ../C/evince.xml:731(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: ../C/evince.xml:707(para) +msgid "Go to the previous page" +msgstr "Go to the previous page" + +#: ../C/evince.xml:710(keycap) ../C/evince.xml:735(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: ../C/evince.xml:711(para) +msgid "Go to the next page" +msgstr "Go to the next page" + +#: ../C/evince.xml:715(keycap) ../C/evince.xml:723(keycap) +msgid "Space" +msgstr "Space" + +#: ../C/evince.xml:716(keycap) ../C/evince.xml:723(keycap) +#: ../C/evince.xml:725(keycap) ../C/evince.xml:731(keycap) +#: ../C/evince.xml:735(keycap) +msgid "Shift" +msgstr "Shift" + +#: ../C/evince.xml:716(keycap) ../C/evince.xml:724(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: ../C/evince.xml:717(keycap) ../C/evince.xml:725(keycap) +msgid "Return" +msgstr "Return" + +#: ../C/evince.xml:719(para) +msgid "Scroll forward" +msgstr "Scroll forward" + +#: ../C/evince.xml:727(para) +msgid "Scroll backward" +msgstr "Scroll backward" + +#: ../C/evince.xml:732(para) +msgid "Go a bunch of pages up" +msgstr "Go a bunch of pages up" + +#: ../C/evince.xml:736(para) +msgid "Go a bunch of pages down" +msgstr "Go a bunch of pages down" + +#: ../C/evince.xml:739(keycap) +msgid "Home" +msgstr "Home" + +#: ../C/evince.xml:740(para) +msgid "Go to the first page" +msgstr "Go to the first page" + +#: ../C/evince.xml:743(keycap) +msgid "End" +msgstr "End" + +#: ../C/evince.xml:744(para) +msgid "Go to the last page" +msgstr "Go to the last page" + +#: ../C/evince.xml:747(keycap) +msgid "L" +msgstr "L" + +#: ../C/evince.xml:748(para) +msgid "Go to page by number or label" +msgstr "Go to page by number or label" + +#: ../C/evince.xml:751(keycap) +msgid "F1" +msgstr "F1" + +#: ../C/evince.xml:752(para) +msgid "Help" +msgstr "Help" + +#: ../C/evince.xml:755(keycap) +msgid "F5" +msgstr "F5" + +#: ../C/evince.xml:756(para) +msgid "Run document as presentation" +msgstr "Run document as presentation" + +#: ../C/evince.xml:759(keycap) +msgid "F9" +msgstr "F9" + +#: ../C/evince.xml:760(para) +msgid "Show or hide the side pane" +msgstr "Show or hide the side pane" + +#: ../C/evince.xml:763(keycap) +msgid "F11" +msgstr "F11" + +#: ../C/evince.xml:764(para) +msgid "Toggle fullscreen mode" +msgstr "Toggle fullscreen mode" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: ../C/evince.xml:0(None) +msgid "translator-credits" +msgstr "David Lodge <dave@cirt.net>, 2007" diff --git a/help/es/es.po b/help/es/es.po new file mode 100644 index 00000000..50c22149 --- /dev/null +++ b/help/es/es.po @@ -0,0 +1,1281 @@ +# translation of evince.help.HEAD.po to EspaƱol +# Francisco Javier F. Serrador <serrador@gnome.org>, 2005. +# Jorge GonzĆ”lez <jorge.gonzalez.gonzalez@hispalinux.es>, 2006, 2007. +# traducciĆ³n al espaƱol del manual de evince +# spanish transtation for evince +# Jorge GonzĆ”lez <jorgegonz@svn.mate.org>, 200, 2009. +msgid "" +msgstr "" +"Project-Id-Version: evince.help.HEAD\n" +"POT-Creation-Date: 2009-04-30 12:12+0000\n" +"PO-Revision-Date: 2009-05-02 18:47+0200\n" +"Last-Translator: Jorge GonzĆ”lez <jorgegonz@svn.mate.org>\n" +"Language-Team: EspaƱol <mate-es-list@gnome.org>\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-Generator: KBabel 1.11.4\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=844626d1125e2f50b295b139d6a406d0" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Manual del visor de documentos Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"La aplicaciĆ³n Visor de Documentos Evince le permite ver documentos en varios " +"formatos como Portable Document Format (PDF) y archivos PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Proyecto de DocumentaciĆ³n de Mate" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Se concede permiso para copiar, distribuir o modificar este documento segĆŗn " +"las condiciones de la GNU Free Documentation License (GFDL), VersiĆ³n 1.1 o " +"cualquier versiĆ³n posterior publicada por la Free Software Foundation sin " +"Secciones invariantes, Textos de portada y Textos de contraportada. " +"EncontrarĆ” una copia de la GFDL en este <ulink type=\"help\" url=\"ghelp:fdl" +"\">enlace</ulink> o en el archivo COPYING-DOCS distribuido con este manual." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Este manual forma parte de una colecciĆ³n de documentos de MATE distribuidos " +"segĆŗn la GFDL. Si desea distribuir este manual de forma independiente de la " +"colecciĆ³n, puede hacerlo agregando una copia de la licencia al documento, " +"segĆŗn se describe en la secciĆ³n 6 de la misma." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Muchos de los nombres utilizados por las empresas para distinguir sus " +"productos y servicios se consideran marcas comerciales. Cuando estos nombres " +"aparezcan en la documentaciĆ³n de MATE, y siempre que se haya informado a " +"los miembros del Proyecto de documentaciĆ³n de MATE de dichas marcas " +"comerciales, los nombres aparecerĆ”n en mayĆŗsculas o con las iniciales en " +"mayĆŗsculas." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"EL DOCUMENTO SE ENTREGA \"TAL CUAL\", SIN GARANTĆA DE NINGĆN TIPO, NI " +"EXPLĆCITA NI IMPLĆCITA INCLUYENDO, SIN LIMITACIĆN, GARANTĆA DE QUE EL " +"DOCUMENTO O VERSIĆN MODIFICADA DE ĆSTE CAREZCA DE DEFECTOS EN EL MOMENTO DE " +"SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO " +"EL RIESGO RELATIVO A LA CALIDAD, PRECISIĆN Y UTILIDAD DEL DOCUMENTO O SU " +"VERSIĆN MODIFICADA RECAE EN USTED. SI CUALQUIER DOCUMENTO O VERSIĆN " +"MODIFICADA DE AQUĆL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO " +"EL REDACTOR INICIAL, AUTOR O AUTOR DE APORTACIONES) ASUMIRĆ LOS COSTES DE " +"TODA REPARACIĆN, MANTENIMIENTO O CORRECCIĆN NECESARIOS. ESTA EXENCIĆN DE " +"RESPONSABILIDAD SOBRE LA GARANTĆA ES UNA PARTE ESENCIAL DE ESTA LICENCIA. NO " +"SE AUTORIZA EL USO DE NINGĆN DOCUMENTO NI VERSIĆN MODIFICADA DE ĆSTE POR EL " +"PRESENTE, SALVO DENTRO DEL CUMPLIMIENTO DE LA EXENCIĆN DE RESPONSABILIDAD;Y" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"EN NINGUNA CIRCUNSTANCIA NI BAJO NINGUNA TEORĆA LEGAL, SEA POR ERROR " +"(INCLUYENDO NEGLIGENCIA) CONTRATO O DOCUMENTO DE OTRO TIPO, EL AUTOR, EL " +"ESCRITOR INICIAL, EL AUTOR DE APORTACIONES NI NINGĆN DISTRIBUIDOR DEL " +"DOCUMENTO O VERSIĆN MODIFICADA DEL DOCUMENTO, NI NINGĆN PROVEEDOR DE NINGUNA " +"DE ESAS PARTES, SERĆ RESPONSABLE ANTE NINGUNA PERSONA POR NINGĆN DAĆO " +"DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGĆN TIPO, " +"INCLUYENDO, SIN LIMITACIĆN DAĆOS POR PĆRDIDA DE FONDO DE COMERCIO, PARO " +"TĆCNICO, FALLO INFORMĆTICO O AVERĆA O CUALQUIER OTRO POSIBLE DAĆO O AVERĆA " +"DERIVADO O RELACIONADO CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, " +"AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA POSIBILIDAD DE QUE SE " +"PRODUJESEN ESOS DAĆOS." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE OFRECEN SEGĆN LAS " +"CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIĆN LIBRE DE GNU (GFDL) " +"Y TENIENDO EN CUENTA QUE: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Equipo de documentaciĆ³n de Mate" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Manual del visor de documentos Evince V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Manual del visor de documentos Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "06-04-2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Este manual describe la versiĆ³n 0.2 del Visor de documentos Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Comentarios" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Para informar de un fallo, o hacer alguna sugerencia concerniente al visor " +"de documentos Evince\n" +"o este manual, siga las indicaciones en la <ulink url=\"ghelp:mate-feedback" +"\" type=\"help\">PĆ”gina de \n" +"retroalimentaciĆ³n de Mate</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Visor de documentos Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "IntroducciĆ³n" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"La aplicaciĆ³n <application>Visor de Documentos Evince</application> le " +"permite ver documentos en varios formatos como Portable Document Format " +"(PDF) y archivos PostScript. El <application>Visor de documentos Evince</" +"application> sigue los estĆ”ndares Freedesktop.org y Mate para proporcionar " +"integraciĆ³n con el entorno de escritorio." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Inicio" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Para iniciar el visor de documentos Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"El <application>Visor de documentos Evince</application> se inicia cuando " +"abre un documento tal como un PDF o un archivo PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Alternativamente, puede iniciar el <application>Visor de documentos Evince</" +"application> desde la lĆnea de comandos, con el comando: <command>evince</" +"command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Al iniciar el visor de documentos Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Cuando inicie el <application>Visor de documentos Evince</application>, la " +"siguiente ventana se mostrarĆ”." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Ventana del visor de documentos Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Muestra la ventana principal del visor de documentos Evince. Contiene la " +"barra de tĆtulo, la de menĆŗs, la de herramientas y el Ć”rea de visualizaciĆ³n. " +"La barra de menĆŗ contiene los menĆŗs Archivar, Editar, Ver, Ir y Ayuda." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"La ventana del <application>Visor de Documentos Evince</application> " +"contiene los siguientes elementos:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "Barra de menĆŗ" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Los menĆŗs en la barra de menĆŗ contienen todos los comandos que necesita para " +"trabajar con documentos en el \n" +"<application>Visor de documentos Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Barra de herramientas" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"La barra de herramientas contiene un subconjunto de comandos con los que " +"puede acceder desde la barra de menĆŗ." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Ćrea de visualizaciĆ³n" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "El Ć”rea de visualizaciĆ³n muestra el documento." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Componente IU" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "AcciĆ³n" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Ventana" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Arrastre un archivo en la ventana del <application>Visor de Documentos " +"Evince</application> desde otra aplicaciĆ³n como un administrador de archivos." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Doble pulsaciĆ³n en el nombre del archivo en el gestor de archivos" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Elija <menuchoice><guimenu>Archivar</guimenu><guimenuitem>Abrir</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Combinaciones de teclas" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Pulse <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"En el <application>Visor de documentos Evince</application>, puede realizar " +"la misma acciĆ³n de varias formas. Por ejemplo, puede abrir un documento de " +"las siguientes formas:<informaltable frame=\"all\"><tgroup cols=\"2\" colsep=" +"\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Este manual documenta la funcionalidad de la barra de menĆŗs." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Uso" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Para abrir un documento" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Para abrir un documento, realice los siguientes pasos:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"En el diĆ”logo <guilabel>Abrir documento</guilabel>, seleccione el archivo " +"que quiere abrir." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Pulse en el botĆ³n <guibutton>Abrir</guibutton>. La aplicaciĆ³n " +"<application>Visor de documentos Evince</application> muestra el nombre del " +"documento en la barra de tĆtulo de la ventana." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Para abrir otro documento, elija <menuchoice><guimenu>Archivar</" +"guimenu><guimenuitem>Abrir</guimenuitem></menuchoice> otra vez. El " +"<application>Visor de documentos Evince</application> abre cada archivo en " +"una ventana nueva." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Si intenta abrir un documento con un formato que el <application>Visor de " +"documentos Evince</application> no reconozca, la aplicaciĆ³n muestra un " +"mensaje de error." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Para navegar a travĆ©s de un documento" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Puede navegar a travĆ©s de un documento asĆ:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver la pĆ”gina siguiente, elija <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>PĆ”gina siguiente</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver la pĆ”gina anterior, elija <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>PĆ”gina anterior</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver la primera pĆ”gina del documento, elija <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>Primera pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver la Ćŗltima pĆ”gina del documento, elija <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>Ćltima pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Para ver una pĆ”gina particular, introduzca el nĆŗmero de pĆ”gina o la etiqueta " +"en la caja de texto de la barra de herramientas, despuĆ©s pulse " +"<keycap>Retorno</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Para desplazar una pĆ”gina" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Para mostrar el contenido de la pĆ”gina que actualmente no se muestra en el " +"Ć”rea de visualizaciĆ³n, use los mĆ©todos siguientes:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Use las teclas de flechas o la barra espaciadora del teclado." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Arrastre el Ć”rea de visualizaciĆ³n presionando con el botĆ³n del medio del " +"ratĆ³n en cualquier parte dentro del documento y despuĆ©s moviendo el ratĆ³n. " +"Por ejemplo, para desplazar la pĆ”gina hacia abajo, arrastre el Ć”rea de " +"visualizaciĆ³n hacia la parte superior de la ventana." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Use las barras de desplazamiento en la ventana." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Para cambiar el tamaƱo de la pĆ”gina" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"Puede usar los siguientes mĆ©todos para redimensionar una pĆ”gina en el Ć”rea " +"de visualizaciĆ³n del <application>Visor de documentos Evince</application>:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Para incrementar el tamaƱo de pĆ”gina, elija <menuchoice><guimenu>Ver</" +"guimenu><guimenuitem>Ampliar</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Para reducir el tamaƱo de la pĆ”gina, elija <menuchoice><guimenu>Ver</" +"guimenu><guimenuitem>Reducir</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Para redimensionar una pĆ”gina para que tenga la misma anchura que el Ć”rea de " +"visualizaciĆ³n del <application>Visor de documentos Evince</application>, " +"elija <menuchoice><guimenu>Ver</guimenu><guimenuitem>Ajustar al ancho de " +"pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Para redimensionar una pĆ”gina para que quepa en el Ć”rea de visualizaciĆ³n del " +"<application>Visor de documentos de Evince</application>, elija " +"<menuchoice><guimenu>Ver</guimenu><guimenuitem>Ajuste Ć³ptimo</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Para redimensionar la ventana del <application>Visor de documentos Evince</" +"application> para que tenga la misma altura y anchura que la pantalla , " +"elija <menuchoice><guimenu>Ver</guimenu><guimenuitem>Pantalla completa</" +"guimenuitem></menuchoice>. Para redimensionar la ventana del " +"<application>Visor de documentos Evince</application> a su tamaƱo original, " +"pulse en el botĆ³n <guibutton>Salir de pantalla completa</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Para ver pĆ”ginas o la estructura del documento" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Para ver marcadores o pĆ”ginas, realice los pasos siguientes:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Elija <menuchoice><guimenu>Ver</guimenu><guimenuitem>Barra lateral</" +"guimenuitem></menuchoice> o pulse <keycap>F9</keycap> ." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Use la lista desplegable en la cabecera del panel lateral para seleccionar " +"si de debe mostrar la estructura del documento o las pĆ”ginas en el panel " +"lateral." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Use las barras de desplazamiento laterales para mostrar el elemento " +"requerido o la pĆ”gina en el panel lateral." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Pulse en una entrada para navegar a esa posiciĆ³n en el documento. Pulse en " +"una pĆ”gina para navegar a esa pĆ”gina en el documento." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Para ver las propiedades de un documento" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Para ver las propiedades de un documento, elija " +"<menuchoice><guimenu>Archivar</guimenu><guimenuitem>Propiedades</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"El diĆ”logo <guilabel>Propiedades</guilabel> muestra toda la informaciĆ³n " +"disponible" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Para imprimir un documento" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Para imprimir un documento, elija <menuchoice><guimenu>Archivar</" +"guimenu><guimenuitem>Imprimir</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Si no puede elegir el elemento del menĆŗ <guimenuitem>Imprimir</guimenuitem>, " +"entonces el autor del documento ha desactivado la opciĆ³n de impresiĆ³n para " +"este documento. Para activar la opciĆ³n de impresiĆ³n debe introducir la " +"contraseƱa maestra al abrir el documento. Vea el <xref linkend=\"evince-" +"password\"/> para mĆ”s informaciĆ³n acerca de los archivos protegidos por " +"clave." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"El diĆ”logo <guilabel>Imprimir</guilabel> tiene las siguientes secciones en " +"solapas:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Tarea" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Impresora" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Papel" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Rango de impresiĆ³n" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Seleccione una de las siguientes opciones para determinar cuĆ”ntas pĆ”ginas " +"imprimir:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Todo" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Seleccione esta opciĆ³n para imprimir todas las pĆ”ginas del documento." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "PĆ”ginas desde" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Seleccione esta opciĆ³n para imprimir el rango seleccionado de pĆ”ginas en el " +"documento. Use las cajas de nĆŗmeros para especificar la primera pĆ”gina y la " +"Ćŗltima pĆ”gina del rango." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Use esta lista desplegable para seleccionar la impresora en la cual quiere " +"imprimir el documento." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"La opciĆ³n <guilabel>Crear un documento PDF</guilabel> no estĆ” soportada en " +"esta versiĆ³n del <application>Visor de documentos Evince</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "ConfiguraciĆ³n" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Use esta lista desplegable para seleccionar las opciones de impresiĆ³n." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Para configurar la impresora, pulse en el botĆ³n <guibutton>Configurar</" +"guibutton>. Por ejemplo, puede activar o desactivar la impresiĆ³n dĆŗplex, o " +"programar una impresiĆ³n diferida, si su impresora tiene esta funcionalidad." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Lugar" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Use esta lista desplegable para seleccionar uno de los siguientes destinos " +"de impresiĆ³n:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Imprimir el documento en una impresora CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Si la impresora seleccionada es una impresora CUPS, <guilabel>CUPS</" +"guilabel> es la Ćŗnica entrada en la lista desplegable." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Imprimir el documento en una impresora." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Archivo" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Imprimir el documento a un archivo PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Pulse en <guibutton>Guardar como</guibutton> para mostrar un diĆ”logo donde " +"especifique el nombre y ubicaciĆ³n del archivo PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Personalizado" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "use el comando especificado para imprimir el documento." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Teclee el nombre del comando en la caja de texto. Incluya todos los " +"argumentos de la lĆnea de comandos." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Estado" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Esta funciĆ³n no estĆ” soportada en esta versiĆ³n del <application>Visor de " +"documentos Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Tipo" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Comentario" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "TamaƱo del papel" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Use esta lista desplegable para seleccionar el tamaƱo del papel para el cual " +"quiere imprimir el documento." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Anchura" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Use esta caja rotatoria para especificar el ancho del papel. Use la lista " +"desplegable adyacente para cambiar la unidad de medida." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Altura" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Use esta caja rotatoria para especificar la altura del papel." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "OrientaciĆ³n del alimentador" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Use esta lista desplegable para seleccionar la orientaciĆ³n del papel en la " +"impresora." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "OrientaciĆ³n de la pĆ”gina" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" +"Use esta lista desplegable para seleccionar la orientaciĆ³n de la pĆ”gina." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "DistribuciĆ³n" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Use esta lista desplegable para seleccionar la distribuciĆ³n de la pĆ”gina. Se " +"mostrarĆ” una vista previa de cada distribuciĆ³n que seleccione en el Ć”rea de " +"<guilabel>Vista previa</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Bandeja del papel" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Use esta lista desplegable para seleccionar la bandeja del papel." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Para copiar un documento" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Para copiar un archivo, realice los siguientes pasos:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Elija <menuchoice><guimenu>Archivar</guimenu><guimenuitem>Guardar una copia</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Teclee el nombre de archivo nuevo en la caja de texto <guilabel>Nombre de " +"archivo</guilabel> del diĆ”logo <guilabel>Guardar una copia</guilabel>." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Si fuese necesario, especifique la ubicaciĆ³n del documento copiado. Por " +"omisiĆ³n las copias se guardan en su directorio personal." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Pulse en el botĆ³n <guibutton>Guardar</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Para trabajar con documentos protegidos por contraseƱa" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Un auto puede usar los siguientes niveles de contraseƱas para proteger un " +"documento:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "ContraseƱa que permite a otros leer el documento." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"ContraseƱa maestra que permite a otros hacer acciones adicionales, como " +"imprimir el documento." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Cuando intente abrir un documento protegido por contraseƱa, el " +"<application>Visor de documentos Evince</application> mostrarĆ” un diĆ”logo de " +"seguridad. Teclee o la contraseƱa de usuario o la contraseƱa maestra en la " +"caja de texto <guilabel>Introduzca la contraseƱa del documento</guilabel>, " +"despuĆ©s pulse en el botĆ³n <guibutton>Abrir documento</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Para cerrar un documento" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Para cerrar un documento, elija <menuchoice><guimenu>Archivar</" +"guimenu><guimenuitem>Cerrar</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Si la ventana es la Ćŗltima abierta de <application>Visor de documentos " +"Evince</application>, la aplicaciĆ³n terminarĆ”." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Combinaciones de teclas" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"Debajo se muestra una lista de todas las combinaciones de teclas presentes " +"en el <application>Visor de documentos Evince</application>." + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "CombinaciĆ³n de teclas" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Abrir un documento existente" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Guardar una copia del documento actual" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Imprimir el documento" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Cerrar la ventana" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copiar la selecciĆ³n" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Seleccionar todo" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (barra)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Buscar una palabra o frase en el documento" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +#| msgid "F" +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "Buscar siguiente" + +#: C/evince.xml:690(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (signo mĆ”s)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Ampliar" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (signo menos)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Reducir" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Recargar el documento" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Re. PĆ”g." + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "Ir a la pĆ”gina anterior" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Av. PĆ”g." + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "Ir a la siguiente pĆ”gina" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "Espacio" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "MayĆŗs." + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Retroceso" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "Intro" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Desplazamiento arriba" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Desplazamiento atrĆ”s" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "Ir unas cuantas pĆ”ginas arriba" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "Ir unas cuantas pĆ”ginas abajo" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Inicio" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "Ir a la primera pĆ”gina" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "Fin" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "Ir a la Ćŗltima pĆ”gina" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "Ir a una pĆ”gina por nĆŗmero o etiqueta" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "Ayuda" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Ejecutar el documento como una presentaciĆ³n" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Mostrar u ocultar el panel lateral" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Conmutar el modo a pantalla completa" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Jorge GonzĆ”lez <jorge.gonzalez.gonzalez@hispalinux.es>, 2006-2008.\n" +"Francisco Javier F. Serrador <serrador@gnome.org>, 2005." diff --git a/help/es/figures/evince_start_window.png b/help/es/figures/evince_start_window.png new file mode 100644 index 00000000..4e4f76e6 Binary files /dev/null and b/help/es/figures/evince_start_window.png differ diff --git a/help/eu/eu.po b/help/eu/eu.po new file mode 100644 index 00000000..d031a19e --- /dev/null +++ b/help/eu/eu.po @@ -0,0 +1,626 @@ +# translation of evince_help.HEAD.po to Basque +# IƱaki LarraƱaga Murgoitio <dooteo@euskalgnu.org>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: evince_help.HEAD\n" +"POT-Creation-Date: 2007-09-04 03:16+0100\n" +"PO-Revision-Date: 2008-12-14 19:27+0100\n" +"Last-Translator: IƱaki LarraƱaga Murgoitio <dooteo@euskalgnu.org>\n" +"Language-Team: Basque <itzulpena@euskalgnu.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:146(None) +msgid "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince dokumentu-ikustailearen eskuliburua" + +#: C/evince.xml:27(para) +msgid "The Evince Document Viewer application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "Evince dokumentu-ikustailearen bidez hainbat formatuko dokumentuak ikus ditzakezu, adibidez, PDF dokumentuak (Portable Document Format) eta PostScript fitxategiak" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "MATEren dokumentazio-proiektua" + +#: C/evince.xml:2(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +msgstr "Baimena ematen da dokumentu hau kopiatu, banatu eta/edo aldatzeko Free Software Foundation-ek argitaratutako GNU Dokumentazio Librearen Lizentziaren 1.1. bertsioan edo berriago batean ezarritako baldintzak betetzen badira; Atal Aldaezinik, Aurreko azaleko testurik eta Atzeko azaleko testurik gabe. GFDL lizentziaren kopia <ulink type=\"help\" url=\"ghelp:fdl\">esteka honetan</ulink> edo eskuliburu honekin batera ematen den COPYING-DOCS fitxategian aurkituko duzu." + +#: C/evince.xml:12(para) +msgid "This manual is part of a collection of MATE manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license." +msgstr "Eskuliburu hau GFDL lizentziarekin banatzen diren MATE eskuliburuen bildumakoa da. Eskuliburu hau bildumatik bereizita banatu nahi baduzu, bana dezakezu, baina eskuliburuari lizentziaren kopia bat gehitu beharko diozu, lizentzian bertan 6. atalean azaltzen den bezala." + +#: C/evince.xml:19(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any MATE documentation, and the members of the MATE Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters." +msgstr "Enpresek euren produktu eta zerbitzuak bereizteko erabiltzen dituzten izen asko marka erregistratu moduan hartu behar dira. Izen horiek MATEren edozein agiritan agertzen direnean, eta MATEren Dokumentazio Proiektuko kideak marka komertzialak direla konturatu badira, orduan izen horiek maiuskulaz idatzita egongo dira, osorik edo hasierako letra maiuskulaz jarrita." + +#: C/evince.xml:35(para) +msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "DOKUMENTUA \"DAGOEN-DAGOENEAN\" EMATEN DA, INOLAKO BERMERIK GABE, EZ ESPRESUKI ADIERAZITAKORIK ETA EZ INPLIZITURIK ERE; BESTEAK BESTE (MUGARIK GABE), EZ DA BERMATZEN DOKUMENTUA EDO BERTSIO ALDATUA AKATSIK GABEA DENIK, MERKATURATZEKO EDO XEDE JAKIN BATERAKO EGOKIA DENIK EDO ARAURIK HAUSTEN EZ DUENIK. DOKUMENTUAREN EDO DOKUMENTUAREN BERTSIO ALDATUAREN KALITATEARI, ZEHAZTASUNARI ETA PERFORMANTZIARI BURUZKO ERANTZUKIZUN OSOA ZUREA DA. DOKUMENTUREN BATEK EDO BERTSIO ALDATUREN BATEK EDOZEIN MOTATAKO AKATSIK IZANEZ GERO, ZUK (EZ HASIERAKO IDAZLEAK, EZ EGILEAK ETA EZ INONGO KOLABORATZAILEK) ZEURE GAIN HARTU BEHARKO DUZU BERRIKUSTEKO, KONPONTZEKO EDO ZUZENTZEKO BEHARREZKO ZERBITZU GUZTIEN KOSTUA. BERME-UKATZE HAU LIZENTZIA HONEN FUNTSEZKO ZATIA DA. EZ DA BAIMENIK EMATEN EZEIN DOKUMENTU EDO BERTSIO ALDATU ERABILTZEKO, BALDIN ETA EZ BADA BERME-UKATZE HAU ONARTZEN." + +#: C/evince.xml:55(para) +msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES." +msgstr "EZINGO DA INONGO ZIRKUNSTANTZIA EDO LEGE-TEORIARIK OINARRI HARTU --EZ ERANTZUKIZUN ZIBILARI BURUZKORIK (ZABARKERIA BARNE HARTUTA) EZ KONTRATUARI BURUZKORIK, EZ BESTERIK-- DOKUMENTU HONEN EDO BERTSIO ALDATU BATEN EGILEA, HASIERAKO IDAZLEA, EDOZEIN KOLABORATZAILE EDO BANATZAILE, EDO ALDERDI HORIEN EDOZEIN HORNITZAILE BESTE PERTSONA BATEN AURREAN ERANTZULE EGITEKO, PERTSONA HORREK EDOZEIN MOTATAKO KALTE ZUZENEKO, ZEHARKAKO, BEREZI, INTZIDENTAL EDO ONDORIOZKOAK JASAN DITUELAKO, BESTEAK BESTE (MUGARIK GABE), BEZEROAK GALTZEAREN, LANA ETEN BEHARRAREN, ORDENAGAILUAK EZ IBILTZEAREN EDO GAIZKI IBILTZEAREN ONDORIOZKO KALTEAK, EDO DOKUMENTUA NAHIZ HAREN BERTSIO ALDATUAK ERABILTZETIK ONDORIOZTATZEN DIREN EDO ERABILERA HORREKIN ZERIKUSIA DUEN EDOZEIN KALTE EDO GALERA, ALDERDIARI KALTE HORIEK GERTA ZITEZKEELA ADITZERA EMAN BAZAIO ERE." + +#: C/evince.xml:28(para) +msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>" +msgstr "DOKUMENTUA ETA DOKUMENTUAREN BERTSIO ALDATUAK GNU DOKUMENTAZIO LIBREAREN LIZENTZIAREN BALDINTZEN ARABERA EMATEN DIRA, ETA ONDOREN ZEHAZTEN DIRENAK ONARTZERA BEHARTZEN DUTE: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATEren dokumentazio-taldea" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince dokumentu-ikustailearen eskuliburua V1.0" + +#: C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Evince dokumentu-ikustailearen 0.2 bertsioa azaltzen da eskuliburu honetan." + +#: C/evince.xml:100(title) +msgid "Feedback" +msgstr "Ohar-bidaltzea" + +#: C/evince.xml:101(para) +msgid "To report a bug or make a suggestion regarding the Evince Document Viewer application or this manual, follow the directions in the <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "Evince dokumentu-ikustaileari buruzko akatsen berri emateko edo oharrak bidaltzeko, <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATEra oharrak bidaltzeko orria</ulink>n aurkituko dituzu argibideak." + +#: C/evince.xml:108(primary) +msgid "Evince Document Viewer" +msgstr "Evince dokumentu-ikustailea" + +#: C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:119(title) +msgid "Introduction" +msgstr "Sarrera" + +#: C/evince.xml:120(para) +msgid "The <application>Evince Document Viewer</application> application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. <application>Evince Document Viewer</application> follows Freedesktop.org and MATE standards to provide integration with Desktop Environment." +msgstr "<application>Evince dokumentu-ikustailea</application>ren bidez hainbat formatuko dokumentuak ikus ditzakezu, adibidez, PDF dokumentuak (Portable Document Format) eta PostScript fitxategiak. Freedesktop.org eta MATEren estandarrei jarraitzen die <application>Evince dokumentu-ikustailea</application>k, mahaigaineko ingurunean integratzeko." + +#: C/evince.xml:127(title) +msgid "Getting Started" +msgstr "Erabiltzen hasteko" + +#: C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "Evince dokumentu-ikustailea abiaraztea" + +#: C/evince.xml:131(para) +msgid "<application>Evince Document Viewer</application> starts when you open a document such as a PDF or PostScript file." +msgstr "Besteak beste PDF edo PostScript motako dokumentu bat irekitzean abiarazten da <application>Evince dokumentu-ikustailea</application>." + +#: C/evince.xml:132(para) +msgid "Alternatively, you can start <application>Evince Document Viewer</application> from the command line, with the command: <command>evince</command>." +msgstr "Bestela, komando-lerrotik abiarazi daiteke <application>Evince dokumentu-ikustailea</application>, komando hau idatzita: <command>evince</command>." + +#: C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "Evince dokumentu-ikustailea abiaraztean" + +#: C/evince.xml:138(para) +msgid "When you start <application>Evince Document Viewer</application>, the following window is displayed." +msgstr "<application>Evince dokumentu-ikustailea</application> abiarazten duzunean, leiho hau azalduko da." + +#: C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "Evince dokumentu-ikustailearen leihoa" + +#: C/evince.xml:149(phrase) +msgid "Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "Evince dokumentu-ikustailearen leiho nagusia erakusten du. Titulu-barra, menu-barra, tresna-barra eta bistaratze-area erakusten ditu. Menu-barrak menu hauek ditu: Fitxategia, Editatu, Ikusi, Joan eta Laguntza." + +#: C/evince.xml:155(para) +msgid "The <application>Evince Document Viewer</application> window contains the following elements:" +msgstr "<application>Evince dokumentu-ikustailea</application>ren leihoan elementu hauek daude:" + +#: C/evince.xml:159(term) C/evince.xml:207(para) +msgid "Menubar" +msgstr "Menu-barra" + +#: C/evince.xml:161(para) +msgid "The menus on the menubar contain all of the commands that you need to work with documents in <application>Evince Document Viewer</application>." +msgstr "<application>Evince dokumentu-ikustailea</application>n dokumentuekin lan egiteko behar dituzun komando guztiak dituzte menu-barrako menuek." + +#: C/evince.xml:165(term) +msgid "Toolbar" +msgstr "Tresna-barra" + +#: C/evince.xml:167(para) +msgid "The toolbar contains a subset of the commands that you can access from the menubar." +msgstr "Menu-barrako komando erabilienak izaten ditu tresna-barrak." + +#: C/evince.xml:171(term) +msgid "Display area" +msgstr "Bistaratze-area" + +#: C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "Bistaratze-arean bistaratzen da dokumentua." + +#: C/evince.xml:187(para) +msgid "UI Component" +msgstr "Erabiltzaile-interfazearen osagaiak" + +#: C/evince.xml:189(para) +msgid "Action" +msgstr "Ekintza" + +#: C/evince.xml:194(para) +msgid "Window" +msgstr "Leihoa" + +#: C/evince.xml:198(para) +msgid "Drag a file into the <application>Evince Document Viewer</application> window from another application such as a file manager." +msgstr "Arrastatu fitxategi bat <application>Evince dokumentu-ikustailea</application>ren leihora beste aplikazio batetik (adibidez, fitxategi-kudeatzaile batetik)." + +#: C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "Egin klik bikoitza fitxategi-kudeatzaileko fitxategi-izenean." + +#: C/evince.xml:208(para) C/evince.xml:235(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>." +msgstr "Aukeratu <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Ireki</guimenuitem></menuchoice>." + +#: C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "Laster-teklak" + +#: C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Sakatu <keycombo><keycap>Ktrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:178(para) +msgid "In <application>Evince Document Viewer</application>, you can perform the same action in several ways. For example, you can open a document in the following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" +msgstr "Ekintza bera egiteko modu bat baino gehiago dago <application>Evince dokumentu-ikustailea</application>n. Esate baterako, hona dokumentu bat irekitzeko moduak: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "Menu-barraren funtzionaltasuna dokumentatzen da eskuliburu honetan." + +#: C/evince.xml:227(title) +msgid "Usage" +msgstr "Erabilera" + +#: C/evince.xml:231(title) +msgid "To Open A Document" +msgstr "Dokumentu bat irekitzea" + +#: C/evince.xml:232(para) +msgid "To open a document, perform the following steps:" +msgstr "Dokumentu bat irekitzeko, jarraitu urrats hauei:" + +#: C/evince.xml:239(para) +msgid "In the <guilabel>Open Document</guilabel> dialog, select the file you want to open." +msgstr "<guilabel>Ireki dokumentua</guilabel> elkarrizketa-koadroan, hautatu ireki nahi duzun fitxategia." + +#: C/evince.xml:244(para) +msgid "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</application> displays the name of the document in the titlebar of the window." +msgstr "Egin klik <guibutton>Ireki</guibutton> botoian. Leihoaren titulu-barran bistaratzen du dokumentuaren izena <application>Evince dokumentu-ikustailea</application>k." + +#: C/evince.xml:249(para) +msgid "To open another document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. <application>Evince Document Viewer</application> opens each file in a new window." +msgstr "Beste dokumentu bat irekitzeko, aukeratu berriz <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Ireki</guimenuitem></menuchoice>. Fitxategi bakoitza leiho berri batean irekitzen du <application>Evince dokumentu-ikustailea</application>k." + +#: C/evince.xml:252(para) +msgid "If you try to open a document with format that <application>Evince Document Viewer</application> does not recognize, the application displays an error message." +msgstr "<application>Evince dokumentu-ikustailea</application>k ezagutzen ez duen formaturen bateko dokumentu bat irekitzen saiatzen bazara, errore-mezu bat azalduko da." + +#: C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "Dokumentu batean nabigatzea" + +#: C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "Honela nabiga daiteke dokumentu batean:" + +#: C/evince.xml:262(para) +msgid "To view the next page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "Hurrengo orria ikusteko, aukeratu <menuchoice><guimenu>Joan</guimenu><guimenuitem>Hurrengo orria</guimenuitem></menuchoice>." + +#: C/evince.xml:266(para) +msgid "To view the previous page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "Aurreko orria ikusteko, aukeratu <menuchoice><guimenu>Joan</guimenu><guimenuitem>Aurreko orria</guimenuitem></menuchoice>." + +#: C/evince.xml:270(para) +msgid "To view the first page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "Dokumentuaren lehen orria ikusteko, aukeratu <menuchoice><guimenu>Joan</guimenu><guimenuitem>Lehen orria</guimenuitem></menuchoice>." + +#: C/evince.xml:274(para) +msgid "To view the last page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "Dokumentuaren azken orria ikusteko, aukeratu <menuchoice><guimenu>Joan</guimenu><guimenuitem>Azken orria</guimenuitem></menuchoice>." + +#: C/evince.xml:278(para) +msgid "To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>." +msgstr "Orri jakin bat ikusteko, idatzi tresna-barrako testu-koadroan orri-zenbakia edo orri-etiketa, eta sakatu <keycap>Sartu</keycap>." + +#: C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "Orri bat korritzea" + +#: C/evince.xml:286(para) +msgid "To display the page contents that are not currently displayed in the display area, use the following methods:" +msgstr "Bistaratze-arean ikusten ez den edukia bistaratzeko, aukera hauek daude:" + +#: C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Erabili teklatuko gezi-teklak edo zuriune-tekla." + +#: C/evince.xml:292(para) +msgid "Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window." +msgstr "Egin klik saguaren erdiko botoiarekin dokumentuan (edonon), eta sagua mugitzean bistaratze-area arrastatzen da. Adibidez, orrian behera korritzeko, arrastatu gorantz bistaratze-area." + +#: C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "Erabili leihoko korritze-barrak." + +#: C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "Orriaren tamaina aldatzea" + +#: C/evince.xml:303(para) +msgid "You can use the following methods to resize a page in the <application>Evince Document Viewer</application> display area:" +msgstr "<application>Evince dokumentu-arakatzailea</application>ren bistaratze-areako orrien tamaina aldatzeko aukera hauek daude:" + +#: C/evince.xml:308(para) +msgid "To increase the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "Orriaren tamaina handitzeko, aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Handiagotu zooma</guimenuitem></menuchoice>." + +#: C/evince.xml:313(para) +msgid "To decrease the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "Orriaren tamaina txikiagotzeko, aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Txikiagotu zooma</guimenuitem></menuchoice>." + +#: C/evince.xml:318(para) +msgid "To resize a page to have the same width as the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "Orri baten tamaina aldatzeko, <application>Evince dokumentu-ikustailea</application>ren bistaratze-arearen zabalera bera izan dezan, aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Doitu orriaren zabalera</guimenuitem></menuchoice>." + +#: C/evince.xml:323(para) +msgid "To resize a page to fit within the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "Orri baten tamaina aldatzeko, <application>Evince dokumentu-ikustailea</application>ren bistaratze-arean kabitu dadin, aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Egokiena</guimenuitem></menuchoice>." + +#: C/evince.xml:328(para) +msgid "To resize the <application>Evince Document Viewer</application> window to have the same width and height as the screen, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></menuchoice>. To resize the <application>Evince Document Viewer</application> window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button." +msgstr "<application>Evince dokumentu-ikustailea</application>ren leihoaren tamaina aldatzeko, pantailaren zabalera eta altuera bera izan ditzan, aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Pantaila osoan</guimenuitem></menuchoice>. <application>Evince dokumentu-ikustailea</application>ren leihoaren tamaina aldatzeko, jatorrizko tamaina izan dezan, egin klik <guibutton>Irten pantaila osotik</guibutton> botoian." + +#: C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "Orriak edo dokumentuen egitura ikustea" + +#: C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Laster-markak edo orriak ikusteko, jarraitu urrats hauei:" + +#: C/evince.xml:341(para) +msgid "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "Aukeratu <menuchoice><guimenu>Ikusi</guimenu><guimenuitem>Alboko-barra</guimenuitem></menuchoice> edo sakatu <keycap>F9</keycap>." + +#: C/evince.xml:346(para) +msgid "Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane." +msgstr "Alboko panelean dokumentuen egitura ala orriak bistaratu behar diren hautatzeko, erabili alboko panelaren goiburuko goitibeherako zerrenda." + +#: C/evince.xml:351(para) +msgid "Use the side-pane scrollbars to display the required item or page in the side pane." +msgstr "Nahi den elementua edo orria alboko panelean bistaratzeko, erabili alboko paneleko korritze-barrak." + +#: C/evince.xml:356(para) +msgid "Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document." +msgstr "Egin klik sarrera batean, eta dokumentuko kokaleku horretara joaten da. Egin klik orri batean, eta dokumentuko orri horretara joaten da." + +#: C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "Dokumentuaren propietateak ikustea" + +#: C/evince.xml:363(para) +msgid "To view the properties of a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "Dokumentu baten propietateak ikusteko, aukeratu <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Propietateak</guimenuitem></menuchoice>." + +#: C/evince.xml:369(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "Jar daitekeen informazio guztia bistaratzen da <guilabel>Propietateak</guilabel> elkarrizketa-koadroan." + +#: C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "Dokumentu bat inprimatzea" + +#: C/evince.xml:376(para) +msgid "To print a Document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "Dokumentu bat inprimatzeko, aukeratu <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Inprimatu</guimenuitem></menuchoice>." + +#: C/evince.xml:380(para) +msgid "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend=\"evince-password\"/> for more information about password-protected files." +msgstr "Ezin baduzu <guimenuitem>Inprimatu</guimenuitem> menu-elementua aukeratu, inprimatzeko aukera desgaitu dio dokumentuaren egileak dokumentuari. Inprimatzeko aukera gaitzeko, pasahitz maisua idatzi behar da dokumentua irekitzean. Pasahitzen bidez babestutako dokumentuei buruz gehiago jakiteko, ikus <xref linkend=\"evince-password\"/>." + +#: C/evince.xml:384(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "<guilabel>Inprimatu</guilabel> elkarrizketa-koadroak fitxa hauek ditu:" + +#: C/evince.xml:390(link) C/evince.xml:406(title) +msgid "Job" +msgstr "Lana" + +#: C/evince.xml:395(link) C/evince.xml:428(title) C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "Inprimagailua" + +#: C/evince.xml:400(link) C/evince.xml:522(title) +msgid "Paper" +msgstr "Papera" + +#: C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "Inprimatze-area" + +#: C/evince.xml:410(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "Hautatu aukera hauetako bat zenbat orri inprimatu nahi dituzun adierazteko:" + +#: C/evince.xml:413(guilabel) +msgid "All" +msgstr "Denak" + +#: C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Hautatu aukera hau dokumentuaren orri guztiak inprimatzeko." + +#: C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "Orriak, hemendik:" + +#: C/evince.xml:418(para) +msgid "Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range." +msgstr "Hautatu aukera hau hautatutako orri-bitartea inprimatzeko. Erabili biratze-koadroak orri-bitartearen lehen eta azken orriak zehazteko." + +#: C/evince.xml:432(para) +msgid "Use this drop-down list to select the printer to which you want to print the document." +msgstr "Erabili goitibeherako zerrenda hau dokumentua zein inprimagailutan inprimatu nahi duzun hautatzeko." + +#: C/evince.xml:434(para) +msgid "The <guilabel>Create a PDF document</guilabel> option is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "<application>Evince dokumentu-ikustailea</application>ren bertsio honetan ez da onartzen <guilabel>Sortu PDF dokumentua</guilabel> aukera." + +#: C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "Ezarpenak" + +#: C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Erabili goitibeherako zerrenda hau inprimagailuaren ezarpenak hautatzeko." + +#: C/evince.xml:444(para) +msgid "To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer." +msgstr "Inprimagailua konfiguratzeko, egin klik <guibutton>Konfiguratu</guibutton> botoian. Adibidez, aldebiko inprimaketa gaitu edo desgaitu daiteke, edo inprimaketa atzeratua antolatu, inprimagailuak funtzio horiek onartzen baditu." + +#: C/evince.xml:448(guilabel) +msgid "Location" +msgstr "Kokalekua" + +#: C/evince.xml:450(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "Erabili goitibeherako zerrenda hau helburu hauetako bat hautatzeko:" + +#: C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "Dokumentua CUPS motako inprimagailu batean inprimatzen du." + +#: C/evince.xml:461(para) +msgid "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list." +msgstr "Hautatutako inprimagailua CUPS motakoa bada, goitibeherako zerrendako sarrera bakarra <guilabel>CUPS</guilabel> izango da." + +#: C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "Dokumentua inprimagailu batean inprimatzen du." + +#: C/evince.xml:476(guilabel) +msgid "File" +msgstr "Fitxategia" + +#: C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "Dokumentua PostScript fitxategi batean inprimatzen du." + +#: C/evince.xml:481(para) +msgid "Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file." +msgstr "Egin klik <guibutton>Gorde honela</guibutton> botoian, eta PostScript fitxategiaren izena eta kokalekua zehazteko elkarrizketa-koadroa bistaratuko da." + +#: C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "Pertsonalizatua" + +#: C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "Dokumentua inprimatzeko erabili zehaztutako komandoa." + +#: C/evince.xml:492(para) +msgid "Type the name of the command in the text box. Include all command-line arguments." +msgstr "Idatzi komandoaren izena testu-koadroan, komando-lerroko argumentu guztiak barne." + +#: C/evince.xml:500(guilabel) +msgid "State" +msgstr "Egoera" + +#: C/evince.xml:502(para) C/evince.xml:508(para) C/evince.xml:514(para) +msgid "This functionality is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "<application>Evince dokumentu-ikustailea</application>ren bertsio honetan ez da funtzionaltasun hori onartzen." + +#: C/evince.xml:506(guilabel) +msgid "Type" +msgstr "Mota" + +#: C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "Iruzkina" + +#: C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "Paper-tamaina" + +#: C/evince.xml:526(para) +msgid "Use this drop-down list to select the size of the paper to which you want to print the document." +msgstr "Erabili goitibeherako zerrenda hau dokumentua zein paper-tamainatan inprimatu nahi duzun hautatzeko." + +#: C/evince.xml:529(guilabel) +msgid "Width" +msgstr "Zabalera" + +#: C/evince.xml:531(para) +msgid "Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit." +msgstr "Erabili biratze-botoi hau paperaren zabalera zehazteko. Erabili ondoko goitibeherako zerrenda neurri-unitatea aldatzeko." + +#: C/evince.xml:534(guilabel) +msgid "Height" +msgstr "Altuera" + +#: C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Erabili biratze-botoi hau paperaren altuera zehazteko." + +#: C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "Elikatzeko orientazioa" + +#: C/evince.xml:541(para) +msgid "Use this drop-down list to select the orientation of the paper in the printer." +msgstr "Erabili goitibeherako zerrenda hau inprimagailuan paperaren orientazioa hautatzeko." + +#: C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "Paperaren orientazioa" + +#: C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Erabili goitibeherako zerrenda hau paperaren orientazioa hautatzeko." + +#: C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "Diseinua" + +#: C/evince.xml:551(para) +msgid "Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "Erabili goitibeherako zerrenda hau paperaren diseinua hautatzeko. Hautatutako diseinu bakoitzaren aurrebista bistaratzen da <guilabel>Aurrebista</guilabel> arean." + +#: C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "Paper-erretilua" + +#: C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Erabili goitibeherako zerrenda hau paper-erretilua hautatzeko." + +#: C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "Dokumentu bat kopiatzea" + +#: C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "Dokumentu bat kopiatzeko, jarraitu urrats hauei:" + +#: C/evince.xml:571(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</guimenuitem></menuchoice>." +msgstr "Aukeratu <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Gorde kopia bat</guimenuitem></menuchoice>." + +#: C/evince.xml:576(para) +msgid "Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog." +msgstr "Idatzi fitxategi-izen berria <guilabel>Gorde kopia bat</guilabel> elkarrizketa-koadroko <guilabel>Fitxategi-izena</guilabel> testu-koadroan." + +#: C/evince.xml:579(para) +msgid "If necessary, specify the location of the copied document. By default, copies are saved in your home directory." +msgstr "Zehaztu kopiatutako dokumentuaren kokalekua, behar izanez gero. Etxeko direktorioan gordetzen dira kopiak, lehenespenez." + +#: C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Egin klik <guibutton>Gorde</guibutton> botoian." + +#: C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "Pasahitzez babestutako dokumentuekin lan egitea" + +#: C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "Pasahitz-maila hauek ditu egileak eskura, dokumentuak babesteko:" + +#: C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "Erabiltzailearen pasahitza, dokumentua irakurtzeko soilik." + +#: C/evince.xml:603(para) +msgid "Master password that allows others to perform additional actions, such as print the document." +msgstr "Pasahitz maisua, irakurtzeaz gain beste ekintza batzuk egiteko aukera ematen duena (adibidez, dokumentua inprimatzea)." + +#: C/evince.xml:607(para) +msgid "When you try to open a password-protected document, <application>Evince Document Viewer</application> displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "Pasahitzez babestutako dokumentu bat irekitzen saiatzean, segurtasunezko elkarrizketa-koadro bat irekitzen du <application>Evince dokumentu-ikustailea</application>k. Idatzi erabiltzailearen pasahitza edo pasahitz maisua <guilabel>Idatzi dokumentuaren pasahitza</guilabel> testu-koadroan, eta egin klik <guibutton>Ireki dokumentua</guibutton> botoian." + +#: C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "Dokumentu bat ixtea" + +#: C/evince.xml:615(para) +msgid "To close a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "Dokumentu bat ixteko, aukeratu <menuchoice><guimenu>Fitxategia</guimenu><guimenuitem>Itxi</guimenuitem></menuchoice>." + +#: C/evince.xml:617(para) +msgid "If the window is the last <application>Evince Document Viewer</application> window open, the application exits." +msgstr "<application>Evince dokumentu-ikustailea</application>n irekia dagoen azken leihoa bada leiho hori, aplikazioa itxi egiten da." + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2008." + diff --git a/help/eu/figures/evince_start_window.png b/help/eu/figures/evince_start_window.png new file mode 100644 index 00000000..24418b50 Binary files /dev/null and b/help/eu/figures/evince_start_window.png differ diff --git a/help/evince.omf.in b/help/evince.omf.in new file mode 100644 index 00000000..249856dc --- /dev/null +++ b/help/evince.omf.in @@ -0,0 +1,11 @@ +<?xml version="1.0" standalone="no"?> +<omf> + <resource> + <subject category="GNOME|Applications|Graphics"/> + <type> + user's guide + </type> + <relation seriesid="045b3722-5ea2-758e-3d7c-a1f8f92fa05f50"/> + <rights type="GNU FDL" license.version="1.1" holder="Nickolay V. Shmyrev"/> + </resource> +</omf> diff --git a/help/fi/fi.po b/help/fi/fi.po new file mode 100644 index 00000000..c1d29774 --- /dev/null +++ b/help/fi/fi.po @@ -0,0 +1,1244 @@ +# Finnish translation of Evince manual. +# +# Copyright Ā© Tommi Vainikainen, 2006. +# Copyright Ā© Flammie Pirinen, 2006. (merged from gucharmap translation) +# Copyright Ā© Timo Jyrinki, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: evince 0.5.2\n" +"POT-Creation-Date: 2008-04-06 03:16+0100\n" +"PO-Revision-Date: 2008-07-07 17:41+0300\n" +"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n" +"Language-Team: Finnish\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" + +#: C/legal.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"TƤtƤ asiakirjaa saa kopioida, jakaa edelleen ja/tai muokata Free Software " +"Foundationin julkaiseman GNU Free Documentation Licensen (GFDL) version 1.1 " +"tai valinnaisesti myƶhemmƤn version mukaisesti, ilman vaatimuksia " +"muuttamattomista osioista ja etu- tai takakansiteksteistƤ. Kopion GFDL:stƤ " +"voi nƤhdƤ napsauttamalla <ulink type=\"help\" url=\"ghelp:fdl\">tƤtƤ " +"linkkiƤ</ulink>, tai lukemalla ohjeen mukana toimitetun COPYING-DOCS-nimisen " +"tiedoston." + +#: C/legal.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"TƤmƤ kƤyttƶohje on osa Maten kƤyttƶohjekokoelmaa ja levitetƤƤn GFDL-" +"lisenssin alaisena. Jos haluat levittƤƤ tƤtƤ kƤyttƶohjetta erillƤƤn " +"kokoelmasta, voit tehdƤ sen liittƤmƤllƤ lisenssin kopion ohjeen mukaan, " +"kuten lisenssin luku 6 sanelee." + +#: C/legal.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Monet tuotteiden ja palveluiden nimet ovat tuotemerkkejƤ. Maten " +"dokumentointiprojektissa nƤmƤ nimet pyritƤƤn kirjoittamaan suuraakkosin tai " +"isolla alkukirjaimella, sikƤli kun projektin jƤsenet tietƤvƤt kyseisistƤ " +"tuotemerkeistƤ." + +#: C/legal.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ASIAKIRJA TARJOTAAN SELLAISENAAN, ILMAN MINKĆĆNLAISTA KIRJATTUA TAI " +"KONKLUDENTTISTA RAJATONTA TAKUUTA ASIAKIRJAN TAI SEN MUOKATUN VERSION " +"VIRHEETTĆMYYDESTĆ, SOPIVUUDESTA KAUPALLISEEN KĆYTTĆĆN TAI TIETTYYN " +"KĆYTTĆTARKOITUKSEEN TAI LOUKKAAMATTOMUUDESTA. TĆYSI VASTUU ASIAKIRJAN TAI " +"SEN MUOKATUN VERSION LAADUSTA, TARKKUUDESTA JA TOIMIVUUDESTA ON KĆYTTĆJĆLLĆ. " +"JOS ASIAKIRJA TAI SEN MUOKATTU VERSIO OSOITTAUTUU JOLLAKIN TAVALLA " +"VIRHEELLISEKSI, KĆYTTĆJĆ (EI ALKUPERĆINEN KIRJOITTAJA TAI MUU TEKIJĆ) VASTAA " +"PALVELUJEN, KORJAUSTEN TAI OIKAISUJEN KUSTANNUKSISTA. TĆMĆ " +"VASTUUVAPAUSLAUSEKE ON EROTTAMATON OSA LISENSSIĆ. ASIAKIRJAN TAI SEN " +"MUOKATTUJEN VERSIOIDEN KĆYTTĆ ON SALLITTUA VAIN TĆMĆN VASTUUVAPAUSLAUSEKKEEN " +"NOJALLA; SEKĆ" + +#: C/legal.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"MISSĆĆN OLOSUHTEISSA TAI MINKĆĆN OIKEUSLAITOKSEN ALAISUUDESSA, NIIN " +"OIKEUSLOUKKAUKSISSA (MUKAAN LUKIEN HUOLIMATTOMUUS), SOPIMUS TAI MUUTOIN, " +"ASIAKIRJAN TAI SEN MUOKATUN VERSION TEKIJĆ, ALKUPERĆINEN KIRJOITTAJA, KUKAAN " +"AVUSTAJISTA, KUKAAN LEVITTĆJĆ TAIKKA KUKAAN TARJOAJA EI OLE VASTUUSSA " +"KENELLEKĆĆN SUORASTA, EPĆSUORASTA, ERITYISESTĆ, TAPATURMAISESTA TAI " +"VĆLILLISESTĆ VAHINGOSTA SISĆLTĆEN RAJOITUKSETTA VAHINGOT LIIKEARVON " +"MENETYKSESTĆ, TYĆN KESKEYTYMISESTĆ, TIETOKONEVIRHEESTĆ TAI -HĆIRIĆSTĆ TAIKKA " +"MISTĆĆN MUUSTA VAHINGOSTA TAI MENETYKSESTĆ, JOKA ILMENEE TAI LIITTYY " +"ASIAKIRJAN TAI SEN MUOKATUN VERSION KĆYTTĆĆN EDES SILLOIN KUN OSAPUOLTA ON " +"OLLUT TIETOINEN TĆLLAISEN VAHINGON MAHDOLLISUUDESTA." + +#: C/legal.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ASIAKIRJA SEKĆ MUOKATUT VERSIOT ASIAKIRJASTA TARJOTAAN GNU FREE " +"DOCUMENTATION LICENSEN EHDOIN SEKĆ YMMĆRTĆEN ETTĆ: <placeholder-1/>" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:146(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince-asiakirjakatselimen kƤyttƶohje" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"Evince-asiakirjakatselimella voi katsella mm. PDF- ja PostScript-muotoisia " +"asiakirjoja" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "Maten dokumentointiprojekti" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Maten dokumentointiryhmƤ" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince-asiakirjakatselimen kƤyttƶohje v1.0" + +#: C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "TƤmƤ kƤyttƶohje kuvaa Evince-asiakirjakatselimen version 0.2" + +#: C/evince.xml:100(title) +msgid "Feedback" +msgstr "Palaute" + +#: C/evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Ilmoittaaksesi viasta tai tehdƤksesi ehdotuksen Evince-asiakirjakatselimeen " +"taikka tƤhƤn kƤyttƶohjeeseen liittyen, seuraa ohjeita <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">Maten palautesivulla</ulink>." + +#: C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:119(title) +msgid "Introduction" +msgstr "Johdanto" + +#: C/evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"<application>Evince-asiakirjakatselimella</application> voit katsoa " +"asiakirjoja eri tiedostomuodoissa kuten Portable Document Format (PDF) ja " +"PostScript. <application>Evince-asiakirjakatselin</application> noudattaa " +"Freedesktop.org- ja Mate-standardeja ja sulautuu sen ansiosta luontevasti " +"tyƶpƶytƤympƤristƶƶn." + +#: C/evince.xml:127(title) +msgid "Getting Started" +msgstr "Aloittaminen" + +#: C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "Evince-asiakirjakatselimen kƤynnistƤminen" + +#: C/evince.xml:131(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>Evince-asiakirjakatselin</application> kƤynnistyy kun avaat " +"asiakirjan kuten PDF- tai PostScript-tiedoston." + +#: C/evince.xml:132(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Vaihtoehtoisesti voit kƤynnistƤƤ <application>Evince-asiakirjakatselimen</" +"application> komentoriviltƤ komennolla: <command>evince</command>." + +#: C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "Kun kƤynnistƤt Evince-asiakirjakatselimen" + +#: C/evince.xml:138(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Kun kƤynnistƤt <application>Evince-asiakirjakatselimen</application>, " +"seuraava ikkuna ilmaantuu nƤkyviin." + +#: C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "Evince-asiakirjakatselimen ikkuna" + +#: C/evince.xml:149(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"NƤkymƤ Evince-asiakirjakatselimen pƤƤikkunasta. Ikkuna sisƤltƤƤ " +"otsikkopalkin, valikkopalkin, tyƶkalupalkin sekƤ nƤyttƶalueen. Valikkopalkki " +"sisƤltƤƤ Tiedosto-, Muokkaa-, NƤkymƤ-, Mene- ja Ohje-valikot." + +#: C/evince.xml:155(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"<application>Evince-asiakirjakatselimen</application> ikkuna sisƤltƤƤ " +"seuraavat osat:" + +#: C/evince.xml:159(term) C/evince.xml:207(para) +msgid "Menubar" +msgstr "Valikkopalkki" + +#: C/evince.xml:161(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Valikkopalkin valikot sisƤltƤvƤt kaikki komennot, joita tarvitset " +"asiakirjojen kanssa tyƶskennellessƤ <application>Evince-" +"asiakirjakatselimella</application>." + +#: C/evince.xml:165(term) +msgid "Toolbar" +msgstr "Tyƶkalupalkki" + +#: C/evince.xml:167(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"Tyƶkalupalkki sisƤltƤƤ tƤrkeimmƤt valikkopalkista lƶytyvistƤ komennoista." + +#: C/evince.xml:171(term) +msgid "Display area" +msgstr "NƤyttƶalue" + +#: C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "Asiakirja on nƤkyvissƤ nƤyttƶalueella." + +#: C/evince.xml:187(para) +msgid "UI Component" +msgstr "KƤyttƶliittymƤkomponentti" + +#: C/evince.xml:189(para) +msgid "Action" +msgstr "Toiminto" + +#: C/evince.xml:194(para) +msgid "Window" +msgstr "Ikkuna" + +#: C/evince.xml:198(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"VedƤ tiedosto <application>Evince-asiakirjakatselimen</application> ikkunaan " +"toisesta sovelluksesta kuten tiedostonhallinnasta." + +#: C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "Kaksoisnapsauta tiedostonimeƤ tiedostonhallinnassa" + +#: C/evince.xml:208(para) C/evince.xml:235(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Valitse <menuchoice><guimenu>Tiedosto</guimenu><guimenuitem>Avaa</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "PikanƤppƤimet" + +#: C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Paina <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:178(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"<application>Evince-asiakirjakatselimessa</application> voit suorittaa " +"samoja toimintoja useilla tavoilla. Esimerkiksi voit avata asiakirjan " +"seuraavilla tavoin: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=" +"\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" + +#: C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "TƤmƤ kƤyttƶohje opastaa toiminnallisuuden valikkopalkista kƤsin." + +#: C/evince.xml:227(title) +msgid "Usage" +msgstr "KƤyttƶ" + +#: C/evince.xml:231(title) +msgid "To Open A Document" +msgstr "Asiakirjan avaaminen" + +#: C/evince.xml:232(para) +msgid "To open a document, perform the following steps:" +msgstr "Tiedosto avataan seuraavasti:" + +#: C/evince.xml:239(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"Valitse avattava tiedosto <guilabel>Avaa tiedosto</guilabel> -" +"valintaikkunassa." + +#: C/evince.xml:244(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Napsauta <guibutton>Avaa</guibutton>. <application>Evince-asiakirjakatselin</" +"application> nƤyttƤƤ asiakirjan nimen ikkunan otsikkopalkissa." + +#: C/evince.xml:249(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Avataksesi toisen asiakirjan valitse jƤlleen <menuchoice><guimenu>Tiedosto</" +"guimenu><guimenuitem>Avaa</guimenuitem></menuchoice>. <application>Evince-" +"asiakirjakatselin</application> avaa jokaisen tiedoston uuteen ikkunaan." + +#: C/evince.xml:252(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"MikƤli yritƤt avata <application>Evince-asiakirjakatselimella</application> " +"asiakirjan, jonka tiedostomuotoa ei tunnisteta, sovellus nƤyttƤƤ " +"virheilmoituksen." + +#: C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "Asiakirjan selaus" + +#: C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "Voit selata tiedoston lƤpi seuraavin tavoin:" + +#: C/evince.xml:262(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Katsoaksesi seuraavaa sivua, valitse <menuchoice><guimenu>Siirry</" +"guimenu><guimenuitem>Seuraava sivu</guimenuitem></menuchoice>." + +#: C/evince.xml:266(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Katsoaksesi edellistƤ sivua, valitse <menuchoice><guimenu>Siirry</" +"guimenu><guimenuitem>Edellinen sivu</guimenuitem></menuchoice>." + +#: C/evince.xml:270(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Katsoaksesi asiakirjan ensimmƤistƤ sivua, valitse " +"<menuchoice><guimenu>Siirry</guimenu><guimenuitem>EnsimmƤinen sivu</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:274(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Katsoaksesi asiakirjan viimeistƤ sivua, valitse <menuchoice><guimenu>Siirry</" +"guimenu><guimenuitem>Viimeinen sivu</guimenuitem></menuchoice>." + +#: C/evince.xml:278(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Katsoaksesi tiettyƤ sivua, syƶtƤ sivunumero taikka sivun nimi tekstikenttƤƤn " +"tyƶkalupalkissa ja paina <keycap>Return</keycap>." + +#: C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "Sivun selaus" + +#: C/evince.xml:286(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"NƤyttƤƤksesi sivun sisƤllƶstƤ sen osan, joka ei juuri nyt nƤy " +"nƤyttƶalueessa, kƤytƤ seuraavia menetelmiƤ:" + +#: C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "KƤytƤ nuolinƤppƤimiƤ tai vƤlilyƶntiƤ nƤppƤimistƶltƤ." + +#: C/evince.xml:292(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"VedƤ nƤyttƶaluetta painamalla hiiren keskimmƤinen nappula pohjaan ja " +"siirtƤmƤllƤ hiirtƤ vastakkaiseen suuntaan selattavan suunnan kanssa. " +"Esimerkiksi selataksesi alaspƤin vedƤ nƤyttƶaluetta ylƶspƤin ikkunassa." + +#: C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "KƤytƤ ikkunan vierityspalkkeja." + +#: C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "Sivukoon muuttaminen" + +#: C/evince.xml:303(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"Voit kƤyttƤƤ seuraavia tapoja sivukoon muuttamiseksi <application>Evince-" +"asiakirjakatselimen</application> nƤyttƶalueessa:" + +#: C/evince.xml:308(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Sivukokoa kasvatetaan valitsemalla <menuchoice><guimenu>NƤkymƤ</" +"guimenu><guimenuitem>LƤhennƤ</guimenuitem></menuchoice>." + +#: C/evince.xml:313(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Sivukokoa pienennetƤƤn valitsemalla <menuchoice><guimenu>NƤkymƤ</" +"guimenu><guimenuitem>Loitonna</guimenuitem></menuchoice>." + +#: C/evince.xml:318(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Sivun leveys muutetaan samaksi kuin <application>Evince-asiakirjakatselimen</" +"application> nƤyttƶalue valitsemalla <menuchoice><guimenu>NƤkymƤ</" +"guimenu><guimenuitem>Sovita sivun leveys</guimenuitem></menuchoice>." + +#: C/evince.xml:323(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Sivun koko sovitetaan <application>Evince-asiakirjakatselimen</application> " +"nƤyttƶalueeseen valitsemalla <menuchoice><guimenu>NƤkymƤ</" +"guimenu><guimenuitem>Paras sovitus</guimenuitem></menuchoice>." + +#: C/evince.xml:328(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Suurentaaksesi <application>Evince-asiakirjakatselimen</application> ikkunan " +"kokoa ruudun leveyteen ja korkeuteen valitse <menuchoice><guimenu>NƤkymƤ</" +"guimenu><guimenuitem>Kokoruutu</guimenuitem></menuchoice>. Palauttaaksesi " +"<application>Evince-asiakirjakatselimen</application> ikkunan alkuperƤiseen " +"kokoon, napsauta <guibutton>Lopeta kokoruutu</guibutton> -painiketta." + +#: C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "Sivujen ja asiakirjarakenteen katselu" + +#: C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" +"Katsellaksesi kirjanmerkkejƤ tai tiettyjƤ sivuja, tee seuraavat toimenpiteet:" + +#: C/evince.xml:341(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Valitse <menuchoice><guimenu>NƤkymƤ</guimenu><guimenuitem>Sivupaneeli</" +"guimenuitem></menuchoice> tai paina <keycap>F9</keycap>." + +#: C/evince.xml:346(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Valitse sivupaneeliotsikon alasvetoluettelosta nƤytetƤƤnkƶ asiakirjarakenne " +"vaiko sivut sivupaneelissa." + +#: C/evince.xml:351(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"KƤytƤ sivupaneelin vierityspalkkia nƤyttƤƤksesi tarvittavan kohdan tai sivun " +"sivupaneelissa." + +#: C/evince.xml:356(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Napsauta haluamaasi kohtaa siirtyƤksesi siihen. Napsuta sivua siirtyƤksesi " +"kyseiselle sivulle asiakirjassa." + +#: C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "Asiakirjan ominaisuuksien katselu" + +#: C/evince.xml:363(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"NƤyttƤƤksesi asiakirjan ominaisuudet valitse <menuchoice><guimenu>Tiedosto</" +"guimenu><guimenuitem>Ominaisuudet</guimenuitem></menuchoice>." + +#: C/evince.xml:369(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"<guilabel>Ominaisuudet</guilabel>-ikkunassa nƤkyy kaikki saatavilla oleva " +"tieto" + +#: C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "Asiakirjan tulostaminen" + +#: C/evince.xml:376(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Tulostaaksesi asiakirjan valitse <menuchoice><guimenu>Tiedosto</" +"guimenu><guimenuitem>Tulosta</guimenuitem></menuchoice>." + +#: C/evince.xml:380(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"MikƤli <guimenuitem>Tulosta</guimenuitem> ei ole valittavissa valikosta, " +"asiakirjan tekijƤ on estƤnyt tƤmƤn asiakirjan tulostamisen. Asiakirja " +"voidaan tulostaa, jos sitƤ avattaessa syƶtetƤƤn pƤƤsalasanan. Katso " +"kappaleesta <xref linkend=\"evince-password\"/> lisƤtietoa " +"salasanasuojatuista tiedostoista." + +#: C/evince.xml:384(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "<guilabel>Tulosta</guilabel>-valintaikkunassa on seuraavat vƤlilehdet:" + +#: C/evince.xml:390(link) C/evince.xml:406(title) +msgid "Job" +msgstr "Tyƶ" + +#: C/evince.xml:395(link) C/evince.xml:428(title) C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "Tulostin" + +#: C/evince.xml:400(link) C/evince.xml:522(title) +msgid "Paper" +msgstr "Paperi" + +#: C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "Tulostusalue" + +#: C/evince.xml:410(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Valitse yksi seuraavista vaihtoehdoista mƤƤrittƤmƤƤn kuinka monta sivua " +"tulostetaan:" + +#: C/evince.xml:413(guilabel) +msgid "All" +msgstr "Kaikki" + +#: C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Valitse tƤmƤ vaihtoehto kun haluat tulostaa kaikki asiakirjan sivut." + +#: C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "Sivuja mistƤ" + +#: C/evince.xml:418(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Valitse tƤmƤ vaihtoehto tulostaaksesi valitun alueen asiakirjan sivuista. " +"MƤƤritƤ ensimmƤinen ja viimeinen tulostettava sivu sƤƤtimillƤ." + +#: C/evince.xml:432(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "Valitse alasvetoluettelosta kƤytettƤvƤ tulostin." + +#: C/evince.xml:434(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"TƤmƤ versio <application>Evince-asiakirjakatselimesta</application> ei tue " +"vaihtoehtoa <guilabel>Luo PDF-asiakirja</guilabel>." + +#: C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "Asetukset" + +#: C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Valitse alasvetoluettelosta tulostimen asetukset." + +#: C/evince.xml:444(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Muokataksesi tulostimen asetuksia napsauta <guibutton>Muokkaa</guibutton>. " +"Voit esimerkiksi ottaa kƤyttƶƶn tai poistaa kƤytƶstƤ kaksipuoleisen " +"tulostuksen taikka ajastaa tulostuksen mikƤli tulostin tukee sitƤ." + +#: C/evince.xml:448(guilabel) +msgid "Location" +msgstr "Sijainti" + +#: C/evince.xml:450(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "Valitse alasvetoluettelosta yksi seuraavista tulostuskohteista:" + +#: C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "Tulosta asiakirja CUPS-tulostimella." + +#: C/evince.xml:461(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"MikƤli valittu tulostin on CUPS-tulostin, <guilabel>CUPS</guilabel> on ainoa " +"vaihtoehto tƤssƤ alasvetoluettelossa." + +#: C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "Tulosta asiakirja tulostimella." + +#: C/evince.xml:476(guilabel) +msgid "File" +msgstr "Tiedosto" + +#: C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "Tulosta asiakirja PostScript-tiedostoon." + +#: C/evince.xml:481(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Napsauta <guibutton>Tallenna nimellƤ</guibutton> mƤƤrittƤƤksesi PostScript-" +"tiedoston nimen ja sijainnin tiedostonvalintaikkunassa." + +#: C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "Mukautettu" + +#: C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "KƤytƤ erillistƤ komentoa asiakirjan tulostamiseen." + +#: C/evince.xml:492(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "SyƶtƤ komento ja kƤytettƤvƤt argumentit tekstikenttƤƤn." + +#: C/evince.xml:500(guilabel) +msgid "State" +msgstr "Tila" + +#: C/evince.xml:502(para) C/evince.xml:508(para) C/evince.xml:514(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"TƤmƤ versio <application>Evince-asiakirjakatselimesta</application> ei tue " +"tƤtƤ toimintoa." + +#: C/evince.xml:506(guilabel) +msgid "Type" +msgstr "Tyyppi" + +#: C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "Kommentti" + +#: C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "Paperikoko" + +#: C/evince.xml:526(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Valitse alasvetoluettelosta paperikoko, jolle haluat asiakirjan tulostaa." + +#: C/evince.xml:529(guilabel) +msgid "Width" +msgstr "Leveys" + +#: C/evince.xml:531(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"MƤƤritƤ paperin leveys tƤllƤ sƤƤtimellƤ. Valitse viereistƤ " +"alasvetoluettelosta mittayksikkƶ." + +#: C/evince.xml:534(guilabel) +msgid "Height" +msgstr "Korkeus" + +#: C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "MƤƤritƤ paperin korkeus tƤllƤ sƤƤtimellƤ." + +#: C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "Syƶttƶsuunta" + +#: C/evince.xml:541(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "Valitse alasvetoluettelosta paperin syƶttƶsuunta tulostimessa." + +#: C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "Sivun suunta" + +#: C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Valitse alasvetoluettelosta sivun suunta." + +#: C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "Asemointi" + +#: C/evince.xml:551(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Valitse alasvetoluettelosta sivun asemointi. Valittua asemointia voi " +"tarkastella <guilabel>Esikatselu</guilabel>-ruudussa." + +#: C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "Paperilokero" + +#: C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Valitse alasvetoluettelosta paperilokero" + +#: C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "Asiakirjan kopiointi" + +#: C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "Tiedosto kopioidaan seuraavasti:" + +#: C/evince.xml:571(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Valitse <menuchoice><guimenu>Tiedosto</guimenu><guimenuitem>Tallenna kopio</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:576(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Kirjoita uusi tiedostonimi <guilabel>Tiedostonimi</guilabel>-tekstikenttƤƤn " +"<guilabel>Tallenna kopio</guilabel> -valintaikkunassa." + +#: C/evince.xml:579(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"MƤƤritƤ kopioidun asiakirjan sijainti mikƤli se on tarpeen. Oletusarvoisesti " +"kopiot tallennetaan kotihakemistoosi." + +#: C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Napsauta <guibutton>Tallenna</guibutton>." + +#: C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "Tyƶskentely salasanasuojatuilla asiakirjoilla" + +#: C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "Asiakirjan suojaamiseen voi kƤyttƤƤ seuraavia salasanatasoja:" + +#: C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "KƤyttƤjƤsalasana sallii muiden ainoastaan lukea asiakirjaa." + +#: C/evince.xml:603(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"PƤƤsalasana sallii muiden tehdƤ muita toimintoja kuten tulostaa asiakirjan." + +#: C/evince.xml:607(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Kun yritƤt avata salasanasuojatun asiakirjan, <application>Evince-" +"asiakirjakatselin</application> nƤyttƤƤ turvakyselyn. SyƶtƤ joko kƤyttƤjƤ- " +"tai pƤƤsalasana <guilabel>SyƶtƤ salasana</guilabel> -tekstikenttƤƤn ja " +"napsauta <guibutton>Avaa asiakirja</guibutton>." + +#: C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "Asiakirjan sulkeminen" + +#: C/evince.xml:615(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Sulkeaksesi asiakirjan valitse <menuchoice><guimenu>Tiedosto</" +"guimenu><guimenuitem>Sulje</guimenuitem</menuchoice>." + +#: C/evince.xml:617(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"MikƤli ikkuna on viimeinen <application>Evince-asiakirjakatselimen</" +"application> avoinna oleva ikkuna, sovellus lopetetaan." + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Timo Jyrinki <timo.jyrinki@iki.fi>, 2008\n" +"Tommi Vainikainen <thv@iki.fi>, 2006\n" +"Flammie Pirinen <flammie@iki.fi>, 2006" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Evince-asiakirjakatselimen kƤyttƶohje v1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "PikanƤppƤimet" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"<application>Evince-asiakirjakatselimessa</application> kƤytettƤvissƤ " +"olevat pikanƤppƤimet on lueteltu alla:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "PikanƤppƤin" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:682(keycap) C/evince.xml:701(keycap) +#: C/evince.xml:747(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Asiakirjan avaaminen" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Asiakirjan kopiointi" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Asiakirjan tulostaminen" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Ikkunan sulkeminen" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Kopioi valinta" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Valitse kaikki" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (kauttaviiva)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Etsi sanaa tai lausetta asiakirjasta" + +#: C/evince.xml:682(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:683(para) +msgid "Find next" +msgstr "Etsi seuraava" + +#: C/evince.xml:687(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus-merkki)" + +#: C/evince.xml:688(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:689(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:691(para) +msgid "Zoom in" +msgstr "LƤhennƤ" + +#: C/evince.xml:695(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (miinus-merkki)" + +#: C/evince.xml:696(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:698(para) +msgid "Zoom out" +msgstr "Loitonna" + +#: C/evince.xml:701(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:702(para) +msgid "Reload the document" +msgstr "Lataa asiakirja uudelleen" + +#: C/evince.xml:706(keycap) C/evince.xml:731(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:707(para) +msgid "Go to the previous page" +msgstr "Mene edelliselle sivulle" + +#: C/evince.xml:710(keycap) C/evince.xml:735(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:711(para) +msgid "Go to the next page" +msgstr "Mene seuraavalle sivulle" + +#: C/evince.xml:715(keycap) C/evince.xml:723(keycap) +msgid "Space" +msgstr "VƤlilyƶnti" + +#: C/evince.xml:716(keycap) C/evince.xml:723(keycap) C/evince.xml:725(keycap) +#: C/evince.xml:731(keycap) C/evince.xml:735(keycap) +msgid "Shift" +msgstr "Vaihto" + +#: C/evince.xml:716(keycap) C/evince.xml:724(keycap) +msgid "Backspace" +msgstr "Askelpalautin" + +#: C/evince.xml:717(keycap) C/evince.xml:725(keycap) +msgid "Return" +msgstr "Rivinvaihto" + +#: C/evince.xml:719(para) +msgid "Scroll forward" +msgstr "VieritƤ eteenpƤin" + +#: C/evince.xml:727(para) +msgid "Scroll backward" +msgstr "VieritƤ taaksepƤin" + +#: C/evince.xml:732(para) +msgid "Go a bunch of pages up" +msgstr "Mene muutama sivu taaksepƤin" + +#: C/evince.xml:736(para) +msgid "Go a bunch of pages down" +msgstr "Mene muutama sivu eteenpƤin" + +#: C/evince.xml:739(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:740(para) +msgid "Go to the first page" +msgstr "Mene ensimmƤiselle sivulle" + +#: C/evince.xml:743(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:744(para) +msgid "Go to the last page" +msgstr "Mene viimeiselle sivulle" + +#: C/evince.xml:747(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:748(para) +msgid "Go to page by number or label" +msgstr "Mene tietylle sivulle numeron tai tai nimen mukaan" + +#: C/evince.xml:751(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:752(para) +msgid "Help" +msgstr "Ohje" + +#: C/evince.xml:755(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:756(para) +msgid "Run document as presentation" +msgstr "NƤytƤ asiakirja esityksenƤ" + +#: C/evince.xml:759(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:760(para) +msgid "Show or hide the side pane" +msgstr "NƤytƤ tai piilota sivupaneeli" + +#: C/evince.xml:763(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:764(para) +msgid "Toggle fullscreen mode" +msgstr "Kokoruututila" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince-asiakirjakatselin" + +#~ msgid "To Open a File" +#~ msgstr "Tiedoston avaaminen" diff --git a/help/fi/figures/evince_start_window.png b/help/fi/figures/evince_start_window.png new file mode 100644 index 00000000..ff457f43 Binary files /dev/null and b/help/fi/figures/evince_start_window.png differ diff --git a/help/fr/figures/evince_start_window.png b/help/fr/figures/evince_start_window.png new file mode 100644 index 00000000..5b3fb3a0 Binary files /dev/null and b/help/fr/figures/evince_start_window.png differ diff --git a/help/fr/fr.po b/help/fr/fr.po new file mode 100644 index 00000000..da6809e0 --- /dev/null +++ b/help/fr/fr.po @@ -0,0 +1,1297 @@ +# French translation of evince documentation. +# Copyright (C) 2006-2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince +# documentation package. +# +# Jonathan Ernst <jonathan@ernstfamily.ch>, 2006-2007. +# Claude Paroz <claude@2xlibre.net>, 2006-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: evince-doc\n" +"POT-Creation-Date: 2010-02-18 18:03+0100\n" +"PO-Revision-Date: 2008-04-05 20:47+0200\n" +"Last-Translator: Claude Paroz <claude@2xlibre.net>\n" +"Language-Team: MATE French Team <matefr@traduc.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: C/legal.xml:2(para) C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Permission vous est donnĆ©e de copier, distribuer et/ou modifier ce document " +"selon les termes de la Licence GNU Free Documentation License, Version 1.1 " +"ou ultĆ©rieure publiĆ©e par la Free Software Foundation sans section " +"inaltĆ©rable, sans texte de premiĆØre page de couverture ni texte de derniĆØre " +"page de couverture. Vous trouverez un exemplaire de cette licence en suivant " +"ce <ulink type=\"help\" url=\"ghelp:fdl\">lien</ulink> ou dans le fichier " +"COPYING-DOCS fourni avec le prĆ©sent manuel." + +#: C/legal.xml:12(para) C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Ce manuel fait partie de la collection de manuels MATE distribuĆ©s selon les " +"termes de la licence de documentation libre GNU. Si vous souhaitez " +"distribuer ce manuel indĆ©pendamment de la collection, vous devez joindre un " +"exemplaire de la licence au document, comme indiquĆ© dans la section 6 de " +"celle-ci." + +#: C/legal.xml:19(para) C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"La plupart des noms utilisĆ©s par les entreprises pour distinguer leurs " +"produits et services sont des marques dĆ©posĆ©es. Lorsque ces noms " +"apparaissent dans la documentation MATE et que les membres du projet de " +"Documentation MATE sont informĆ©s de l'existence de ces marques dĆ©posĆ©es, " +"soit ces noms entiers, soit leur premiĆØre lettre est en majuscule." + +#: C/legal.xml:35(para) C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"LE PRĆSENT DOCUMENT EST FOURNI Ā« TEL QUEL Ā», SANS AUCUNE GARANTIE, EXPRESSE " +"OU IMPLICITE, Y COMPRIS, ET SANS LIMITATION, LES GARANTIES DE BONNE QUALITĆ " +"MARCHANDE OU D'APTITUDE Ć UN EMPLOI PARTICULIER OU AUTORISĆ DU DOCUMENT OU " +"DE SA VERSION MODIFIĆE. L'UTILISATEUR ASSUME TOUT RISQUE RELATIF Ć LA " +"QUALITĆ, Ć LA PERTINENCE ET Ć LA PERFORMANCE DU DOCUMENT OU DE SA VERSION DE " +"MISE Ć JOUR. SI LE DOCUMENT OU SA VERSION MODIFIĆE S'AVĆRAIT DĆFECTUEUSE, " +"L'UTILISATEUR (ET NON LE RĆDACTEUR INITIAL, L'AUTEUR, NI TOUT AUTRE " +"PARTICIPANT) ENDOSSERA LES COĆTS DE TOUTE INTERVENTION, RĆPARATION OU " +"CORRECTION NĆCESSAIRE. CETTE DĆNĆGATION DE RESPONSABILITĆ CONSTITUE UNE " +"PARTIE ESSENTIELLE DE CETTE LICENCE. AUCUNE UTILISATION DE CE DOCUMENT OU DE " +"SA VERSION MODIFIĆE N'EST AUTORISĆE AUX TERMES DU PRĆSENT ACCORD, EXCEPTĆ " +"SOUS CETTE DĆNĆGATION DE RESPONSABILITĆ ;" + +#: C/legal.xml:55(para) C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"EN AUCUNE CIRCONSTANCE ET SOUS AUCUNE INTERPRĆTATION DE LA LOI, QU'IL " +"S'AGISSE D'UN DĆLIT CIVIL (Y COMPRIS LA NĆGLIGENCE), CONTRACTUEL OU AUTRE, " +"L'AUTEUR, LE RĆDACTEUR INITIAL, TOUT PARTICIPANT OU TOUT DISTRIBUTEUR DE CE " +"DOCUMENT OU DE SA VERSION MODIFIĆE, OU TOUT FOURNISSEUR DE L'UNE DE CES " +"PARTIES NE POURRA ĆTRE TENU RESPONSABLE Ć L'ĆGARD DE QUICONQUE POUR TOUT " +"DOMMAGE DIRECT, INDIRECT, PARTICULIER, OU ACCIDENTEL DE TOUT TYPE Y COMPRIS, " +"SANS LIMITATION, LES DOMMAGES LIĆS Ć LA PERTE DE CLIENTĆLE, Ć UN ARRĆT DE " +"TRAVAIL, Ć UNE DĆFAILLANCE OU UN MAUVAIS FONCTIONNEMENT INFORMATIQUE, OU Ć " +"TOUT AUTRE DOMMAGE OU PERTE LIĆE Ć L'UTILISATION DU DOCUMENT ET DE SES " +"VERSIONS MODIFIĆES, MĆME SI LADITE PARTIE A ĆTĆ INFORMĆE DE L'ĆVENTUALITĆ DE " +"TELS DOMMAGES." + +#: C/legal.xml:28(para) C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"LE PRĆSENT DOCUMENT ET SES VERSIONS MODIFIĆES SONT FOURNIS SELON LES TERMES " +"DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : <placeholder-1/>" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Visionneur de documents Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"Le visionneur de documents Evince vous permet d'afficher des documents dans " +"divers formats comme les formats PDF et PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Projet de documentation MATE" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "L'Ć©quipe de documentation MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Manuel du visionneur de documents Evince v1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "05/04/2008" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Manuel du visionneur de documents Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "06/04/2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Ce manuel documente la version 0.2 du visionneur de documents Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Votre avis" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Pour rapporter une anomalie ou Ć©mettre une suggestion concernant le " +"visionneur de documents Evince ou ce manuel, procĆ©dez comme indiquĆ© sur la " +"<ulink url=\"ghelp:mate-feedback\" type=\"help\">page de rĆ©actions sur " +"MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Visionneur de documents Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Introduction" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"Le <application>visionneur de documents Evince</application> vous permet " +"d'afficher des documents dans divers formats comme les formats PDF et " +"PostScript. Le <application>visionneur de documents Evince</application> " +"respecte les standards de Freedesktop.org et de MATE pour se fondre dans " +"votre environnement de bureau." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Premiers pas" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "DĆ©marrage du visionneur de documents Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"Le <application>visionneur de documents Evince</application> dĆ©marre Ć " +"l'ouverture d'un document dans un format pris en charge comme le PDF ou le " +"PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Vous pouvez Ć©galement dĆ©marrer le <application>visionneur de documents " +"Evince</application> depuis la ligne de commande avec la commande : " +"<command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Au dĆ©marrage du visionneur de documents Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Lorsque vous dĆ©marrez le <application>visionneur de documents Evince</" +"application>, la fenĆŖtre suivante est affichĆ©e." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "FenĆŖtre du visionneur de document Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Affiche la fenĆŖtre principale du visionneur de document Evince. Elle " +"contient une barre de titre, une barre de menus, une barre d'outils et une " +"zone d'affichage. La barre de menus comprend les menus Fichier, Ćdition, " +"Affichage, Aller Ć et Aide." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"La fenĆŖtre du <application>visionneur de documents Evince</application> " +"contient les Ć©lĆ©ments suivants :" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "Barre de menus" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Les menus de la barre de menus contiennent toutes les commandes nĆ©cessaires " +"pour travailler avec les documents dans le <application>visionneur de " +"documents Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Barre d'outils" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"La barre d'outils contient un sous-ensemble des commandes accessibles depuis " +"la barre de menus." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Zone d'affichage" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "La zone dans laquelle le document est affichĆ©." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Composant de l'interface utilisateur" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "Action" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "FenĆŖtre" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Glissez un fichier dans la fenĆŖtre du <application>visionneur de documents " +"Evince</application> Ć partir d'une autre application comme le gestionnaire " +"de fichiers." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Double-cliquez sur le nom du fichier dans le gestionnaire de fichiers." + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Ouvrir</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Raccourcis clavier" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"Appuyez sur <keycombo><keycap>CTRL</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"Dans le <application>visionneur de documents Evince</application>, vous " +"pouvez effectuer une mĆŖme opĆ©ration de plusieurs maniĆØres. Par exemple, vous " +"pouvez ouvrir un document au moyen des opĆ©rations suivantes : <informaltable " +"frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=" +"\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*" +"\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Ce manuel privilĆ©gie les opĆ©rations Ć partir de la barre de menus." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Utilisation" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Ouverture d'un document" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Pour ouvrir un document, effectuez les opĆ©rations suivantes :" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"Dans la boĆ®te de dialogue <guilabel>Ouvrir un document</guilabel>, " +"sĆ©lectionnez le fichier que vous dĆ©sirez ouvrir." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Cliquez sur <guibutton>Ouvrir</guibutton>. Le <application>visionneur de " +"documents Evince</application> affiche le nom du document dans la barre de " +"titre de la fenĆŖtre." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Pour ouvrir un autre document, choisissez une nouvelle fois " +"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>Ouvrir</guimenuitem></" +"menuchoice>. Le <application>visionneur de documents Evince</application> " +"ouvre chaque fichier dans une nouvelle fenĆŖtre." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Si vous essayez d'ouvrir un document dont le format n'est pas reconnu par le " +"<application>visionneur de documents Evince</application>, l'application " +"affichera un message d'erreur." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Navigation Ć l'intĆ©rieur d'un document" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "" +"Vous pouvez naviguer Ć l'intĆ©rieur d'un document de la faƧon suivante :" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Pour afficher la page suivante, choisissez <menuchoice><guimenu>Aller Ć </" +"guimenu><guimenuitem>Page suivante</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Pour afficher la page prĆ©cĆ©dente, choisissez <menuchoice><guimenu>Aller Ć </" +"guimenu><guimenuitem>Page prĆ©cĆ©dente</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Pour afficher la premiĆØre page du document, choisissez " +"<menuchoice><guimenu>Aller Ć </guimenu><guimenuitem>PremiĆØre page</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Pour afficher la derniĆØre page du document, choisissez " +"<menuchoice><guimenu>Aller Ć </guimenu><guimenuitem>DerniĆØre page</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Pour afficher une page prĆ©cise, tapez le numĆ©ro ou le nom de la page dans la " +"zone de texte de la barre d'outils, puis appuyez sur <keycap>EntrĆ©e</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "DĆ©filement d'une page" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Pour afficher du contenu qui n'est pas visible dans la zone d'affichage, " +"utilisez les mĆ©thodes suivantes :" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Utilisez les touches flĆ©chĆ©es ou la barre d'espacement du clavier." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Faites glisser la zone d'affichage en cliquant avec le bouton du milieu de " +"la souris sur le document, puis en dĆ©plaƧant la souris. Par exemple, pour " +"dĆ©filer la page vers le bas, glissez la zone d'affichage vers le haut de la " +"fenĆŖtre." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Utilisez les barres de dĆ©filement de la fenĆŖtre." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Changement de la taille de la page" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"Utilisez les mĆ©thodes suivantes pour changer la taille d'une page dans la " +"zone d'affichage du <application>visionneur de documents Evince</" +"application> :" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Pour augmenter la taille de la page, choisissez " +"<menuchoice><guimenu>Affichage</guimenu><guimenuitem>Zoom avant</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Pour diminuer la taille de la page, choisissez " +"<menuchoice><guimenu>Affichage</guimenu><guimenuitem>Zoom arriĆØre</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Pour faire correspondre la largeur de la page avec la zone d'affichage du " +"<application>visionneur de documents Evince</application>, choisissez " +"<menuchoice><guimenu>Affichage</guimenu><guimenuitem>Ajuster Ć la largeur de " +"la page</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Pour que la page entiĆØre apparaisse dans la zone d'affichage du " +"<application>visionneur de documents Evince</application>, choisissez " +"<menuchoice><guimenu>Affichage</guimenu><guimenuitem>Taille idĆ©ale</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Pour que la fenĆŖtre du <application>visionneur de documents Evince</" +"application> s'ajuste aux dimensions de l'Ć©cran, choisissez " +"<menuchoice><guimenu>Affichage</guimenu><guimenuitem>Plein Ć©cran</" +"guimenuitem></menuchoice>. Pour revenir au mode d'affichage prĆ©cĆ©dent, " +"cliquez sur le bouton <guibutton>Quitter le mode plein Ć©cran</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Affichage des vignettes ou de la structure du document" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" +"Pour afficher les signets ou les vignettes de pages, procĆ©dez de la faƧon " +"suivante :" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Choisissez <menuchoice><guimenu>Affichage</guimenu><guimenuitem>Panneau " +"latĆ©ral</guimenuitem></menuchoice> ou appuyez sur la touche <keycap>F9</" +"keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Utilisez le menu dĆ©roulant dans l'en-tĆŖte du panneau latĆ©ral pour choisir " +"d'afficher les vignettes ou la structure du document (index) dans le panneau " +"latĆ©ral." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Utilisez la barre de dĆ©filement du panneau latĆ©ral pour afficher l'Ć©lĆ©ment " +"ou la page souhaitĆ©e dans le panneau latĆ©ral." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Cliquez sur un signet ou sur une vignette pour afficher l'emplacement " +"correspondant du document dans la zone d'affichage." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Affichage des propriĆ©tĆ©s d'un document" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Pour afficher les propriĆ©tĆ©s d'un document, choisissez " +"<menuchoice><guimenu>Fichier</guimenu><guimenuitem>PropriĆ©tĆ©s</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"La boĆ®te de dialogue <guilabel>PropriĆ©tĆ©s</guilabel> affiche toutes les " +"informations disponibles." + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Impression d'un document" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Pour imprimer un document, choisissez <menuchoice><guimenu>Fichier</" +"guimenu><guimenuitem>Imprimer...</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Si l'Ć©lĆ©ment de menu <guimenuitem>Imprimer...</guimenuitem> n'est pas actif, " +"cela signifie que l'auteur du document a dĆ©sactivĆ© la possibilitĆ© d'imprimer " +"ce document. Pour activer l'impression, vous devez saisir le mot de passe " +"maĆ®tre Ć l'ouverture du document. Voir <xref linkend=\"evince-password\"/> " +"pour plus d'informations au sujet des fichiers protĆ©gĆ©s par mot de passe." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"La boĆ®te de dialogue <guilabel>Imprimer</guilabel> possĆØde les onglets " +"suivants :" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Travail" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Imprimante" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Papier" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Intervalle d'impression" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"SĆ©lectionnez une des options suivantes pour dĆ©terminer le nombre de pages Ć " +"imprimer :" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Tout" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "SĆ©lectionnez cette option pour imprimer toutes les pages du document." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Pages de" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"SĆ©lectionnez cette option pour imprimer une partie des pages du document. " +"Utilisez les zones de sĆ©lection numĆ©rique pour dĆ©finir la premiĆØre et la " +"derniĆØre page de l'intervalle." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"SĆ©lectionnez dans la liste l'imprimante Ć utiliser pour imprimer le document." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"L'option <guilabel>Create a PDF document</guilabel> (CrĆ©er un document PDF) " +"n'est pas prise en charge dans cette version du <application>visionneur de " +"documents Evince</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "RĆ©glages" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" +"Cette liste dĆ©roulante permet de sĆ©lectionner les paramĆØtres d'impression." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Pour configurer l'imprimante, cliquez sur <guibutton>Configurer</guibutton>. " +"Par exemple, vous pouvez activer ou dĆ©sactiver l'impression recto-verso, ou " +"spĆ©cifier l'heure d'une impression diffĆ©rĆ©e, pour autant que ces fonctions " +"soient prises en charge par l'imprimante." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Emplacement" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Cette liste dĆ©roulante permet de sĆ©lectionner une des destinations " +"d'impression suivantes :" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Imprime le document en utilisant une imprimante CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Si l'imprimante sĆ©lectionnĆ©e est une imprimante CUPS, <guilabel>CUPS</" +"guilabel> sera le seul contenu de la liste dĆ©roulante." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Imprime le document Ć l'aide d'une imprimante de maniĆØre classique." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Fichier" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Imprime le document dans un fichier PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Cliquez sur <guibutton>Enregistrer sous</guibutton> pour afficher une boĆ®te " +"de dialogue permettant de spĆ©cifier le nom et l'emplacement du fichier " +"PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "PersonnalisĆ©" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Utilise la commande spĆ©cifiĆ©e pour imprimer le document." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Entrez le nom de la commande dans le champ texte adjacent, sans oublier tous " +"les arguments de la ligne de commande." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Ćtat" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Cette fonctionnalitĆ© n'est pas prise en charge dans cette version du " +"<application>visionneur de documents Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Type" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Commentaire" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Taille du papier" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Cette liste dĆ©roulante permet de sĆ©lectionner le format de papier Ć utiliser " +"pour imprimer le document." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Largeur" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Cette zone de sĆ©lection numĆ©rique vous permet de spĆ©cifier la largeur du " +"papier. La liste dĆ©roulante adjacente vous offre la possibilitĆ© de modifier " +"l'unitĆ© de mesure utilisĆ©e." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Hauteur" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "" +"Cette zone de sĆ©lection numĆ©rique vous permet de spĆ©cifier la hauteur du " +"papier." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Orientation du dĆ©filement" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Cette liste dĆ©roulante permet de sĆ©lectionner l'orientation du papier dans " +"l'imprimante." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Orientation de la page" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" +"Cette liste dĆ©roulante vous permet de sĆ©lectionner l'orientation du papier." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Agencement" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Cette liste dĆ©roulante permet de sĆ©lectionner la mise en page. Un aperƧu de " +"la mise en page sĆ©lectionnĆ©e s'affiche dans la zone <guilabel>AperƧu</" +"guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Chargeur de papier" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Cette liste dĆ©roulante permet de choisir le chargeur de papier." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Copie d'un document" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Pour copier un fichier, procĆ©dez de la maniĆØre suivante :" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Enregistrer " +"une copie...</guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Saisissez le nouveau nom de fichier dans la zone de texte <guilabel>Nom</" +"guilabel> de la boĆ®te de dialogue <guilabel>Enregistrer une copie</guilabel>." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Si nĆ©cessaire, spĆ©cifiez l'emplacement du document copiĆ©. Par dĆ©faut, les " +"copies sont enregistrĆ©es dans votre dossier personnel." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Cliquez sur <guibutton>Enregistrer</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Travailler avec des documents protĆ©gĆ©s par mot de passe" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Un auteur peut utiliser les niveaux de protection suivants pour protĆ©ger un " +"document :" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "" +"Mot de passe utilisateur donnant uniquement le droit de lire le document." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Mot de passe maĆ®tre donnant le droit d'effectuer des opĆ©rations " +"supplĆ©mentaires, comme imprimer le document." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Lorsque vous essayez d'ouvrir un document protĆ©gĆ© par mot de passe, le " +"<application>visionneur de documents Evince</application> affiche une alerte " +"de sĆ©curitĆ©. Entrez le mot de passe maĆ®tre ou le mot de passe utilisateur " +"dans la zone de texte <guilabel>Saisissez le mot de passe du document</" +"guilabel> de cette boĆ®te de dialogue, puis cliquez sur <guibutton>Ouvrir " +"document</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Fermeture d'un document" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Pour fermer un document, choisissez <menuchoice><guimenu>Fichier</" +"guimenu><guimenuitem>Fermer</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Si c'est la derniĆØre fenĆŖtre du <application>visionneur de documents Evince</" +"application>, l'application se ferme." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Raccourcis clavier" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"Vous trouverez ci-dessous une liste de tous les raccourcis clavier prĆ©sents " +"dans le <application>visionneur de documents Evince</application> :" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Raccourci clavier" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Ouvre un document existant" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Enregistre une copie du document actuel" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Imprime le document" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Ferme la fenĆŖtre" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copie la sĆ©lection" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "SĆ©lectionne tout" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (barre oblique)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Recherche un mot ou une phrase dans le document" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "Recherche l'occurrence suivante" + +#: C/evince.xml:690(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (signe plus)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Effectue un zoom avant" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (signe moins)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "_" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Effectue un zoom arriĆØre" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Recharge le document" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page haut" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "Retourne Ć la page prĆ©cĆ©dente" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Pages bas" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "Va Ć la page suivante" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "Espace" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Maj" + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Retour arriĆØre" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "EntrĆ©e" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "DĆ©file vers le bas" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "DĆ©file vers le haut" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "Recule de quelques pages" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "Avance de quelques pages" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Origine" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "Va Ć la premiĆØre page" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "Fin" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "Va Ć la derniĆØre page" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "Va Ć la page selon son numĆ©ro ou son Ć©tiquette" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "Aide" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Lance le document en mode prĆ©sentation" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Affiche ou masque le panneau latĆ©ral" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Active ou quitte le mode plein Ć©cran" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2 +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Jonathan Ernst <jonathan@ernstfamily.ch>, 2006, 2007.\n" +"Claude Paroz <claude@2xlibre.net>, 2006-2008." diff --git a/help/it/figures/evince_start_window.png b/help/it/figures/evince_start_window.png new file mode 100644 index 00000000..5ccae056 Binary files /dev/null and b/help/it/figures/evince_start_window.png differ diff --git a/help/it/it.po b/help/it/it.po new file mode 100644 index 00000000..f7f2818b --- /dev/null +++ b/help/it/it.po @@ -0,0 +1,1285 @@ +# Italian translation for evince manual +# Copyright (c) 2006 Free Software Foundation, inc. +# This file is distributed under the same license as the evince manual. +# Ubuntu Italian Team, 2006 +# Luca Ferretti <elle.uca@libero.it>, 2006 +# Milo Casagrande <milo@ubuntu.com>, 2007-2008 +# +msgid "" +msgstr "" +"Project-Id-Version: evince manual\n" +"POT-Creation-Date: 2008-04-06 03:16+0100\n" +"PO-Revision-Date: 2008-09-20 14:34+0200\n" +"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n" +"Language-Team: Italian <tp@lists.linux.it>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "fatto" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Manuale di Visualizzatore documenti Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"L'applicazione Visualizzatore documenti Evince consente di visualizzare vari " +"formati di documenti come i PDF (Portable Document Format) e PostScript." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Progetto documentazione di MATE" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Questo documento puĆ² essere copiato, distribuito e/o modificato solo in " +"conformitĆ con i termini della GNU Free Documentation License (GFDL) " +"Versione 1.1 o delle versioni successive pubblicate dalla Free Software " +"Foundation senza sezioni invariabili, frontespizi e testi di copertina. Una " +"copia della GFDL ĆØ disponibile su questo <ulink type=\"help\" url=\"ghelp:fdl" +"\">collegamento</ulink> o nel file COPYING-DOCS distribuito con questo " +"manuale." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Questo manuale fa parte di una raccolta di manuali MATE distribuita in " +"conformitĆ con la GFDL. Per poter distribuire questo manuale separatamente, " +"ĆØ necessario inserirvi una copia della licenza, come descritto nella sezione " +"6 della licenza." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Molti dei nomi usati dalle aziende per distinguere i propri prodotti e " +"servizi sono rivendicati come marchi. Quando questi nomi compaiono nella " +"documentazione di MATE, e i partecipanti al MATE Documentation Project " +"sono consapevoli del loro utilizzo, essi vengono scritti in lettere " +"maiuscole o con l'iniziale maiuscola." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"IL DOCUMENTO VIENE FORNITO SENZA GARANZIE DI ALCUN TIPO, ESPLICITE O " +"IMPLICITE, INCLUSE, MA SENZA LIMITAZIONE, LE GARANZIE ATTESTANTI CHE IL " +"DOCUMENTO O LE SUE VERSIONI MODIFICATE SIANO PRIVI DI DIFETTI, " +"COMMERCIALIZZABILI, IDONEI A UN DETERMINATO SCOPO O CHE NON VIOLINO DIRITTI " +"DI TERZI. SI DECLINA QUALUNQUE RESPONSABILITĆ RIGUARDO AI RISCHI INERENTI LA " +"QUALITĆ, L'ACCURATEZZA E LE PRESTAZIONI DEL DOCUMENTO O DI UNA SUA VERSIONE " +"MODIFICATA. QUALORA UN DOCUMENTO O UNA SUA VERSIONE MODIFICATA DOVESSERO " +"PRESENTARE QUALUNQUE TIPO DI DIFETTO, IL COSTO DI EVENTUALI INTERVENTI DI " +"ASSISTENZA, RIPARAZIONE O CORREZIONE SARĆ A CARICO DELL'UTENTE (NON DEL " +"REDATTORE INIZIALE, DELL'AUTORE O DI ALTRI COLLABORATORI). QUESTA " +"LIMITAZIONE DELLA GARANZIA COSTITUISCE PARTE ESSENZIALE DELLA LICENZA. L'USO " +"DEL DOCUMENTO O DELLE SUE VERSIONI MODIFICATE Ć CONSENTITO SOLO ENTRO I " +"TERMINI DI QUESTA LIMITAZIONE DELLA GARANZIA;" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"IN NESSUNA CIRCOSTANZA E PER NESSUNA RAGIONE LEGALE, INCLUSI I PRINCIPI DI " +"COLPA (INCLUSA LA NEGLIGENZA), ACCORDO CONTRATTUALE O ALTRO, SARĆ POSSIBILE " +"CONSIDERARE L'AUTORE, IL REDATTORE INIZIALE, GLI ALTRI COLLABORATORI, " +"QUALUNQUE DISTRIBUTORE DEL DOCUMENTO O DI UNA SUA VERSIONE MODIFICATA O " +"QUALUNQUE FORNITORE DELLE PERSONE CITATE, RESPONSABILE NEI CONFRONTI DI " +"QUALUNQUE PERSONA PER DANNI DIRETTI, INDIRETTI, SPECIALI, INCIDENTALI O " +"CONSEGUENTI DI QUALUNQUE NATURA, INCLUSI, MA SENZA LIMITAZIONE, I DANNI PER " +"PERDITA DI AVVIAMENTO, INTERRUZIONE DEL LAVORO, GUASTO O MALFUNZIONAMENTO " +"DEL COMPUTER O QUALUNQUE ALTRO DANNO O PERDITA DERIVANTE O CORRELATA ALL'USO " +"DEL DOCUMENTO O DI UNA SUA VERSIONE MODIFICATA, ANCHE QUALORA LE PERSONE " +"CITATE FOSSERO STATE INFORMATE DELLA POSSIBILITĆ DI TALI DANNI." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"QUESTO DOCUMENTO E LE SUE VERSIONI MODIFICATE VENGONO FORNITI IN BASE AI " +"TERMINI DELLA GNU FREE DOCUMENTATION LICENSE, CON L'INTESA CHE:<placeholder-" +"1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE Documentation Team" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Manuale di Visualizzatore documenti Evince V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "05/04/2005" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Manuale di Visualizzatore documenti Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "06/04/2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "" +"Questo manuale descrive la versione 0.2 di Visualizzatore documenti Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Commenti" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Per segnalare un problema o inviare suggerimenti su Visualizzatore documenti " +"Evince o su questo manuale, seguire le istruzioni presenti alla <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">pagina di commenti di MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Visualizzatore documenti Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Introduzione" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"L'applicazione <application>Visualizzatore documenti Evince</application> " +"consente di visualizzare documenti di vari formati come i file PDF (Portable " +"Document Format) e i file PostScript. <application>Visualizzatore documenti " +"Evince</application> segue gli standard di Freedesktop.org e di MATE per " +"fornire l'integrazione con l'ambiente desktop." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Per iniziare" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Avviare Visualizzatore documenti Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>Visualizzatore documenti Evince</application> si avvia quando " +"viene aperto un documento come un file PDF o PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"In alternativa, ĆØ possibile avviare <application>Visualizzatore documenti " +"Evince</application> dalla riga di comando con il comando: <command>evince</" +"command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Quando si avvia Visualizzatore documenti Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Quando si avvia <application>Visualizzatore documenti Evince</application>, " +"viene visualizzata la seguente finestra." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Finestra di Visualizzatore documenti Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Mostra la finestra principale di Visualizzatore documenti Evince. Contiene " +"la barra del titolo, la barra dei menĆ¹, la barra degli strumenti e l'area di " +"visualizzazione. La barra dei menĆ¹ contiene i menĆ¹ File, Modifica, " +"Visualizza, Vai e Aiuto." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"La finestra di <application>Visualizzatore documenti Evince</application> " +"contiene i seguenti elementi:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "Barra dei menĆ¹" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"I menĆ¹ nella barra dei menĆ¹ contengono tutti i comandi necessari per " +"lavorare con i documenti in <application>Visualizzatore documenti Evince</" +"application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Barra degli strumenti" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"La barra degli strumenti contiene un sottoinsieme dei comandi a cui ĆØ " +"possibile accedere dalla barra dei menĆ¹." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Area di visualizzazione" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "L'area di visualizzazione mostra il documento." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Componente interfaccia" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "Azione" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Finestra" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Trascinare un file all'interno della finestra di <application>Visualizzatore " +"documenti Evince</application> da un'altra applicazione come il file manager." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Doppio-clic sul file all'interno del file manager." + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Scegliere <menuchoice><guimenu>File</guimenu><guimenuitem>Apri</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Tasti scorciatoia" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Premere <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"Con <application>Visualizzatore documenti Evince</application> ĆØ possibile " +"compiere la stessa azione in modi diversi. Ad esempio, ĆØ possibile aprire un " +"documento nei seguenti modi: <informaltable frame=\"all\"><tgroup cols=\"2\" " +"colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/" +"><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/" +"><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Questo manuale espone le funzionalitĆ della barra dei menĆ¹." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Utilizzo" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Aprire un documento" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Per aprire un file, procedere come segue:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"Nella finestra di dialogo <guilabel>Apertura documento</guilabel> " +"selezionare il file da aprire." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Fare clic su <guibutton>Apri</guibutton>. Il nome del documento viene " +"mostrato nella barra del titolo della finestra di " +"<application>Visualizzatore documenti Evince</application>." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Per aprire un altro documento, scegliere nuovamente " +"<menuchoice><guimenu>File</guimenu><guimenuitem>Apri</guimenuitem></" +"menuchoice>. Ciascun file viene aperto all'interno di una nuova finestra di " +"<application>Visualizzatore documenti Evince</application>." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Se si cerca di aprire un documento con un formato non riconosciuto da " +"<application>Visualizzatore documenti Evince</application>, viene " +"visualizzato un messaggio di errore." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Spostarsi all'interno di un documento" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Ć possibile spostarsi all'interno di un file nei seguenti modi:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Per visualizzare la pagina successiva, scegliere <menuchoice><guimenu>Vai</" +"guimenu><guimenuitem>Pagina successiva</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Per visualizzare la pagina precedente, scegliere <menuchoice><guimenu>Vai</" +"guimenu><guimenuitem>Pagina precedente</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Per visualizzare la pagina iniziale del documento, scegliere " +"<menuchoice><guimenu>Vai</guimenu><guimenuitem>Prima pagina</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Per visualizzare l'ultima pagina del documento, scegliere " +"<menuchoice><guimenu>Vai</guimenu><guimenuitem>Ultima pagina</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Per visualizzare una particolare pagina, inserire il numero o l'etichetta " +"della pagina nella casella di testo presente nella barra degli strumenti, " +"quindi premere <keycap>Invio</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Scorrere una pagina" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Per mostrare il contenuto di una pagina non ancora mostrato nell'area di " +"visualizzazione, utilizzare i seguenti metodi:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Usare i tasti freccia o la barra spaziatrice sulla tastiera." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Trascinare l'area di visualizzazione facendo clic col pulsante centrale del " +"mouse in una zona del documento e quindi muovere il mouse. Per esempio, per " +"scorrere la pagina verso il basso, trascinare l'area di visualizzazione " +"verso l'alto." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Usare le barre di scorrimento sulla finestra." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Cambiare la dimensione della pagina" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"Ć possibile usare i seguenti metodi per ridimensionare una pagina nell'area " +"di visualizzazione di <application>Visualizzatore documenti Evince</" +"application>:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Per incrementare la dimensione della pagina, scegliere " +"<menuchoice><guimenu>Visualizza</guimenu><guimenuitem>Aumenta ingrandimento</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Per diminuire la dimensione della pagina, scegliere " +"<menuchoice><guimenu>Visualizza</guimenu><guimenuitem>Riduci ingrandimento</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Per ridimensionare una pagina affinchĆ© abbia la stessa larghezza dell'area " +"di visualizzazione di <application>Visualizzatore documenti Evince</" +"application>, scegliere <menuchoice><guimenu>Visualizza</" +"guimenu><guimenuitem>Adatta alla larghezza</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Per ridimensionare una pagina affinchĆ© sia interamente contenuta nell'area " +"di visualizzazione di <application>Visualizzatore documenti Evince</" +"application>, scegliere <menuchoice><guimenu>Visualizza</" +"guimenu><guimenuitem>Adatta alla pagina</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Per ridimensionare la finestra di <application>Visualizzatore documenti " +"Evince</application> affinchĆ© abbia le stesse dimensioni dello schermo, " +"scegliere <menuchoice><guimenu>Visualizza</guimenu><guimenuitem>Schermo " +"intero</guimenuitem></menuchoice>. Per riportare la finestra di " +"<application>Visualizzatore documenti Evince</application> alle dimensioni " +"originali, fare clic sul pulsante <guibutton>Finestra normale</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Visualizzare le pagine o la struttura del documento" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Per visualizzare i segnalibri o le pagine, procedere come segue:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Scegliere <menuchoice><guimenu>Visualizza</guimenu><guimenuitem>Riquadro " +"laterale</guimenuitem></menuchoice> o premere <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Utilizzare l'elenco a discesa presente nell'intestazione del riquadro " +"laterale per selezionare se mostrare in esso la struttura del documento o le " +"pagine." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Utilizzare le barre di scorrimento del riquadro laterale per visualizzare " +"l'oggetto desiderato nel riquadro laterale." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Fare clic su una voce per spostarsi a quella posizione all'interno del " +"documento. Fare clic su una pagina per spostarsi a quella pagina all'interno " +"del documento." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Visualizzare le proprietĆ di un documento" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Per visualizzare le proprietĆ di un documento, scegliere " +"<menuchoice><guimenu>File</guimenu><guimenuitem>ProprietĆ </guimenuitem></" +"menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"La finestra di dialogo <guilabel>ProprietĆ </guilabel> mostra tutte le " +"informazioni disponibili." + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Stampare un documento" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Per stampare un documento, scegliere <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Stampa</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Se non ĆØ possibile scegliere la voce di menĆ¹ <guimenuitem>Stampa</" +"guimenuitem>, l'autore del documento ha disabilitato il supporto per la " +"stampa del documento. Per abilitare la stampa ĆØ necessario inserire la " +"password principale all'apertura del documento. Per maggiori informazioni " +"riguardo i file protetti da password, consultare <xref linkend=\"evince-" +"password\"/>." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"La finestra di dialogo <guilabel>Stampa</guilabel> contiene le seguenti " +"schede:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Lavoro" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Stampante" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Carta" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Intervallo di stampa" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Selezionare una delle seguenti opzioni per determinare quante pagine " +"stampare:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Tutte" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Selezionare questa opzione per stampare tutte le pagine del documento." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Pagine da" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Selezionare questa opzione per stampare l'intervallo di pagine selezionato. " +"Usare i controlli di selezione per specificare la prima e l'ultima pagina " +"dell'intervallo." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Usare questo elenco a discesa per selezionare la stampante con cui stampare " +"il documento." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"L'opzione <guilabel>Create a PDF document</guilabel> non ĆØ supportata in " +"questa versione di <application>Visualizzatore documento Evince</" +"application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Impostazioni" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" +"Usare questo elenco a discesa per selezionare le impostazioni della " +"stampante." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Per configurare la stampante fare clic su <guibutton>Configura</guibutton>. " +"Ad esempio, ĆØ possibile abilitare o disabilitare la stampa a doppia facciata " +"o pianificare un ritardo di stampa, se questa funzionalitĆ ĆØ supportata " +"dalla stampante." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Posizione" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"Utilizzare questo elenco a discesa per selezionare una delle seguenti " +"destinazioni di stampa:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Stampa il documento su una stampante CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Se la stampante selezionata ĆØ una stampante CUPS, <guilabel>CUPS</guilabel> " +"ĆØ la sola voce presente nell'elenco a discesa." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Stampa il documento su una stampante." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "File" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Stampa il documento su un file PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Fare clic su <guibutton>Salva come</guibutton> per mostrare una finestra di " +"dialogo in cui specificare il nome e la posizione del file PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Personalizzato" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Utilizzare il comando specificato per la stampa del documento." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Digitare il nome del comando nella casella di testo, inclusi tutti gli " +"argomenti a riga di comando." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Stato" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Questa funzionalitĆ non ĆØ supportata in questa versione di " +"<application>Visualizzatore documenti Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Tipo" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Commento" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Dimensione carta" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Utilizzare questo elenco a discesa per selezionare la dimensione della carta " +"su cui stampare il documento." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Larghezza" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Utilizzare questo controllo di selezione per specificare la larghezza della " +"carta. Usare l'elenco a discesa adiacente per cambiare l'unitĆ di misura." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Altezza" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "" +"Utilizzare questo controllo di selezione per specificare l'altezza della " +"carta." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Orientamento alimentazione" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Utilizzare questo elenco a discesa per selezionare l'orientamento della " +"carta nella stampante." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Orientamento pagina" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" +"Usare questo elenco a discesa per selezionare l'orientamento della pagina." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Disposizione" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Utilizzare questo elenco a discesa per selezionare la disposizione della " +"pagina. Un'anteprima di ogni disposizione selezionata ĆØ mostrata nell'area " +"<guilabel>Anteprima</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Vassoio carta" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "" +"Utilizzare questo elenco a discesa per selezionare il vassoio della carta." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Copiare un documento" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Per copiare un file, procedere come segue:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Scegliere <menuchoice><guimenu>File</guimenu><guimenuitem>Salva una copia</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Digitare il nuovo nome di file nella casella di testo <guilabel>Nome</" +"guilabel> nella finestra di dialogo <guilabel>Salva una copia</guilabel>." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Se necessario, specificare la posizione per il documento copiato. In modo " +"predefinito, le copie sono salvate nella cartella home." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Fare clic su <guibutton>Salva</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Lavorare con documenti protetti da password" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Un autore puĆ² utilizzare i seguenti livelli di password per proteggere un " +"documento:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "" +"Password utente che consente agli altri soltanto la lettura del documento." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Password principale che consente agli altri di eseguire ulteriori azioni, " +"come la stampa del documento." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Quando si prova ad aprire un documento protetto da password, " +"<application>Visualizzatore documenti Evince</application> mostra una " +"finestra di dialogo di sicurezza. Digitare la password utente o quella " +"principale nella casella di testo <guilabel>Inserire password documento</" +"guilabel>, quindi fare clic su <guibutton>Apri documento</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Chiudere un documento" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Per chiudere un documento, scegliere <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Chiudi</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Se la finestra di <application>Visualizzatore documenti Evince</application> " +"ĆØ l'unica aperta, l'applicazione esce." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Tasti scorciatoia" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "Di seguito viene presentato un elenco di tutte le scorciatoie presenti in <application>Visualizzatore documenti Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Scorciatoia" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:682(keycap) C/evince.xml:701(keycap) +#: C/evince.xml:747(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Apre un documento esistente" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Salva una copia del documento corrente" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Stampa il documento" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Chiude la finestra" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copia la selezione" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Seleziona tutto" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (slash)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Trova una parola o una frase all'interno del documento" + +#: C/evince.xml:682(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:683(para) +msgid "Find next" +msgstr "Trova successivo" + +#: C/evince.xml:687(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (segno piĆ¹)" + +#: C/evince.xml:688(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:689(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:691(para) +msgid "Zoom in" +msgstr "Aumenta ingrandimento" + +#: C/evince.xml:695(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (segno meno)" + +#: C/evince.xml:696(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:698(para) +msgid "Zoom out" +msgstr "Riduce ingrandimento" + +#: C/evince.xml:701(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:702(para) +msgid "Reload the document" +msgstr "Ricarica il documento" + +#: C/evince.xml:706(keycap) C/evince.xml:731(keycap) +msgid "Page Up" +msgstr "PagSu" + +#: C/evince.xml:707(para) +msgid "Go to the previous page" +msgstr "Va alla pagina precedente" + +#: C/evince.xml:710(keycap) C/evince.xml:735(keycap) +msgid "Page Down" +msgstr "PagGiĆ¹" + +#: C/evince.xml:711(para) +msgid "Go to the next page" +msgstr "Va alla pagina successiva" + +#: C/evince.xml:715(keycap) C/evince.xml:723(keycap) +msgid "Space" +msgstr "Spazio" + +#: C/evince.xml:716(keycap) C/evince.xml:723(keycap) C/evince.xml:725(keycap) +#: C/evince.xml:731(keycap) C/evince.xml:735(keycap) +msgid "Shift" +msgstr "Maiusc" + +#: C/evince.xml:716(keycap) C/evince.xml:724(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:717(keycap) C/evince.xml:725(keycap) +msgid "Return" +msgstr "Invio" + +#: C/evince.xml:719(para) +msgid "Scroll forward" +msgstr "Scorre in avanti" + +#: C/evince.xml:727(para) +msgid "Scroll backward" +msgstr "Scorre indietro" + +#: C/evince.xml:732(para) +msgid "Go a bunch of pages up" +msgstr "Va un po' di pagine indietro" + +#: C/evince.xml:736(para) +msgid "Go a bunch of pages down" +msgstr "Va un po' di pagine in avanti" + +#: C/evince.xml:739(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:740(para) +msgid "Go to the first page" +msgstr "Va alla prima pagina" + +#: C/evince.xml:743(keycap) +msgid "End" +msgstr "Fine" + +#: C/evince.xml:744(para) +msgid "Go to the last page" +msgstr "Va all'ultima pagina" + +#: C/evince.xml:747(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:748(para) +msgid "Go to page by number or label" +msgstr "Va alla pagina in base al numero o all'etichetta" + +#: C/evince.xml:751(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:752(para) +msgid "Help" +msgstr "Aiuto" + +#: C/evince.xml:755(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:756(para) +msgid "Run document as presentation" +msgstr "Avvia la presentazione" + +#: C/evince.xml:759(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:760(para) +msgid "Show or hide the side pane" +msgstr "Mostra o nasconde il riquadro laterale" + +#: C/evince.xml:763(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:764(para) +msgid "Toggle fullscreen mode" +msgstr "Commuta la modalitĆ schermo intero" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Milo Casagrande <milo@ubuntu.com>, 2008\n" +"Gruppo traduzione Italiano di Ubuntu, <gruppo-traduzione@ubuntu-it.org>, 2006\n" +"Luca Ferretti <elle.uca@libero.it>, 2006" diff --git a/help/ja/figures/evince_start_window.png b/help/ja/figures/evince_start_window.png new file mode 100644 index 00000000..5bef7de4 Binary files /dev/null and b/help/ja/figures/evince_start_window.png differ diff --git a/help/ja/ja.po b/help/ja/ja.po new file mode 100644 index 00000000..92a5b2af --- /dev/null +++ b/help/ja/ja.po @@ -0,0 +1,948 @@ +# Japanese help translation for evince. +# Satoru SATOH <ss@mate.gr.jp>, 2007. +# +# TODO: å°å·ć®ēÆćŖć©ćÆå®éć®åä½ćØćÆē°ćŖćčŖ¬ęćØćŖć£ć¦ćć¾ć£ć¦ććć +msgid "" +msgstr "" +"Project-Id-Version: evince/help trunk\n" +"POT-Creation-Date: 2007-08-20 03:16+0100\n" +"PO-Revision-Date: 2007-08-22 05:49+0900\n" +"Last-Translator: Satoru SATOH <ss@mate.gr.jp>\n" +"Language-Team: Japanese <mate-translation@mate.gr.jp>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:146(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "@@image: 'figures/evince_start_window.png'; " +"md5=facb0196a444d6ffdc4fd53ea7ee632b" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ ććć„ć¢ć«" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć§ PDF ć PostScript ć®ćććŖę§ć ćŖ" +"ćć©ć¼ćććć®ććć„ć”ć³ććč¦ćććØćć§ćć¾ćć" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "ćµć³ćć¤ćÆćć·ć¹ćć ćŗ" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "MATE ććć„ć”ć³ććććøć§ćÆć" + +# åččس: http://www.opensource.jp/fdl/fdl.ja.html +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "ćć®ęęøććććŖć¼ć½ććć¦ć§ć¢č²”å£ēŗč”ć® GNU ććŖć¼ęęøå©ēØčØ±č«¾å„ē“ęø (GFDL) " +"ć®ćć¼ćøć§ć³ 1.1 ććć仄éćå®ććę”件ć®äøć§č¤č£½ćé åøćććććÆę¹å¤ććććØ" +"ćčرåÆćć¾ććå¤ę“äøåÆéØåćč”Øć«ćć¼ććć¹ććč£ć«ćć¼ććć¹ććÆååØćć¾ć" +"ćććć®å©ēØčØ±č«¾å„ē“ęø (GFDL) ć®č¤č£½ćÆ<ulink type=\"help\" url=\"ghelp:fdl\">" +"ćć®ćŖć³ćÆ</ulink> ć¾ććÆćć®ććć„ć¢ć«ćØäøē·ć«é åøććć¦ćććć”ć¤ć« " +"COPYING-DOCS ćåē §ćć¦äøććć" + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "ćć®ććć„ć¢ć«ćÆ GFDL ć®äøć§é åøććć MATE ććć„ć¢ć«ć®ć³ć¬ćÆć·ć§ć³ć®äøéØć§" +"ććć³ć¬ćÆć·ć§ć³ćØå„ć«ćć®ććć„ć¢ć«ćé åøćććå “åćÆćć©ć¤ć»ć³ć¹ć®ē¬¬å ēÆć«" +"ććććć«ć©ć¤ć»ć³ć¹ć®ć³ćć¼ćććć„ć¢ć«ć«å ććć°é åøć§ćć¾ćć" + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "č£½åććµć¼ćć¹ćåŗå„ććććć«ä¼ę„ć«ćć£ć¦å©ēØććć¦ććåē§°ć®å¤ććÆē»é²åęØ" +"ć§ćććććć®åē§°ć MATE ććć„ć”ć³ćć§ä½æććć¦ćć¦ MATE ććć„ć”ć³ććć" +"ćøć§ćÆćć®ć”ć³ćć¼ćåęØćØčŖčćć¦ććå “åććććć®ååć大ęåććććÆčŖå„" +"ć®ęåć®ęåć大ęåć§čØčæ°ćć¦ćć¾ćć" + +# čسćć¹ćć? +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "ććć„ć”ć³ćććć³å¤ę“ććć¦ććććć„ć”ć³ććÆę¬”ć® GNU ććŖć¼ęęøå©ēØčØ±č«¾å„ē“" +"ęø (GFDL) ć®äøć§é åøććć¾ć: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE ććć„ć”ć³ććć¼ć " + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ ććć„ć¢ć« v1.0" + +#: C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "ćć®ććć„ć¢ć«ćÆ Evince ććć„ć”ć³ććć„ć¼ć¢ć® 0.2 ć«ć¤ćć¦čŖ¬ęćć¦ćć¾ćć" + +#: C/evince.xml:100(title) +msgid "Feedback" +msgstr "ćć£ć¼ććććÆ" + +#: C/evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć¾ććÆćć®ććć„ć¢ć«ć®" +"ćć°ćęę”ćå ±åćć¦é ćå “åć" +"<ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE " +"ćć£ć¼ććććÆćć¼ćø</ulink> å ć®ęē¤ŗć«å¾ć£ć¦äøććć" + +#: C/evince.xml:108(primary) +msgid "Evince Document Viewer" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢" + +#: C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:119(title) +msgid "Introduction" +msgstr "ę¦č¦" + +#: C/evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć«ćć£ć¦" +"Portable Document Format (PDF) ćć”ć¤ć«ć PostScript ćć”ć¤ć«ć®ćććŖ" +"ę§ć ćŖå½¢å¼ć®ććć„ć”ć³ććč¦ćććØćć§ćć¾ćć" +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ćÆćć¹ćÆććć" +"ē°å¢ćØć®ēµ±åćęä¾ććććć« Freedesktop.org ćØ MATE ć®ęØęŗć«å¾ć£ć¦ćć¾ćć" + +#: C/evince.xml:127(title) +msgid "Getting Started" +msgstr "ćÆććć«" + +#: C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć®čµ·å" + +#: C/evince.xml:131(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "PDF ć¾ććÆ PostScript ćć”ć¤ć«ć®ććć„ć”ć³ććéććØ " +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ćčµ·åćć¾ćć" + +#: C/evince.xml:132(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "ććććÆćć³ćć³ć <command>evince</command> ćć³ćć³ćč”ć§" +"å „åćć¦ <application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć" +"čµ·åććććØćć§ćć¾ćć" + +#: C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć®ć”ć¤ć³ć¦ć£ć³ćć¦" + +#: C/evince.xml:138(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć" +"čµ·åćććØćꬔć®ćććŖć¦ć£ć³ćć¦ćč”Øē¤ŗććć¾ćć" + +#: C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć®ć”ć¤ć³ć¦ć£ć³ćć¦" + +#: C/evince.xml:149(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "Evince ććć„ć”ć³ććć„ć¼ć¢ć®ć”ć¤ć³ć¦ć£ć³ćć¦ć§ćć" +"ćæć¤ćć«ćć¼ćØć”ćć„ć¼ćć¼ććć¼ć«ćć¼ććć¦č”Øē¤ŗé åćććć¾ćć" +"ć”ćć„ć¼ćć¼ć«ćÆćć”ć¤ć«ćē·Øéćč”Øē¤ŗćē§»åććć¦ćć«ćć”ćć„ć¼ć" +"å«ć¾ćć¦ćć¾ćć" + +#: C/evince.xml:155(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ć¦ć£ć³ćć¦ć«ćÆꬔć®č¦ē“ ćå«ć¾ćć¦ćć¾ć:" + +#: C/evince.xml:159(term) C/evince.xml:207(para) +msgid "Menubar" +msgstr "ć”ćć„ć¼ćć¼" + +#: C/evince.xml:161(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć§" +"ććć„ć”ć³ćć«ć¤ćć¦ä½ę„ććć®ć«åæ č¦ćŖćć¹ć¦ć®ć³ćć³ćć®ć”ćć„ć¼ć" +"ććć¾ćć" + +#: C/evince.xml:165(term) +msgid "Toolbar" +msgstr "ćć¼ć«ćć¼" + +#: C/evince.xml:167(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "ćć¼ć«ćć¼ć«ćÆć”ćć„ć¼ćć¼ććć¢ćÆć»ć¹ć§ććć³ćć³ćć®ćµćć»ććć" +"å«ć¾ćć¦ćć¾ćć" + +#: C/evince.xml:171(term) +msgid "Display area" +msgstr "č”Øē¤ŗé å" + +#: C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "ććć„ć”ć³ćć®å 容ćč”Øē¤ŗććé åć§ćć" + +#: C/evince.xml:187(para) +msgid "UI Component" +msgstr "UI ć³ć³ćć¼ćć³ć" + +#: C/evince.xml:189(para) +msgid "Action" +msgstr "ć¢ćÆć·ć§ć³" + +#: C/evince.xml:194(para) +msgid "Window" +msgstr "ć¦ć£ć³ćć¦" + +#: C/evince.xml:198(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "ćć”ć¤ć«ććć¼ćøć£ć®ćććŖä»ć®ć¢ććŖć±ć¼ć·ć§ć³ćć " +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ć¦ć£ć³ćć¦ć«ćć”ć¤ć«ććć©ćć°" + +#: C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "ćć”ć¤ć«ććć¼ćøć£å ć§ćć”ć¤ć«åćććć«ćÆćŖććÆ" + +#: C/evince.xml:208(para) C/evince.xml:235(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "<menuchoice><guimenu>ćć”ć¤ć«</guimenu><guimenuitem>éć" +"</guimenuitem></menuchoice> ćéøę" + +#: C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "ć·ć§ć¼ćć«ćć" + +#: C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo> ćę¼ć" + +#: C/evince.xml:178(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć§ćÆ" +"åćć¢ćÆć·ć§ć³ćććć¤ćć®ę¹ę³ć§å®č”ć§ćć¾ććä¾ćć°ććć„ć”ć³ćć" +"éćć«ćÆꬔć®ććć«ćć¾ć: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" + +# åēŖćŖć®ć§å°ćęčس +#: C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "ć”ćć„ć¼ćć¼ćććć®ććć„ć¢ć«ćéćććØćć§ćć¾ćć" + +#: C/evince.xml:227(title) +msgid "Usage" +msgstr "ä½æćę¹" + +#: C/evince.xml:231(title) +msgid "To Open A Document" +msgstr "ććć„ć”ć³ććéć" + +#: C/evince.xml:232(para) +msgid "To open a document, perform the following steps:" +msgstr "ććć„ć”ć³ććéćć«ćÆꬔć®ć¹ććććå®č”ćć¾ć:" + +#: C/evince.xml:239(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "<guilabel>ććć„ć”ć³ććéć</guilabel> ćć¤ć¢ćć°ć§" +"éććććć”ć¤ć«ćéøęćć¾ćć" + +#: C/evince.xml:244(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "<guibutton>éć</guibutton> ććÆćŖććÆćć¾ćć" +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ć¦ć£ć³ćć¦ć®ćæć¤ćć«ćć¼ć«ććć„ć”ć³ćć®ååćč”Øē¤ŗććć¾ćć" + +#: C/evince.xml:249(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "ä»ć®ććć„ć”ć³ććéćć«ćÆååŗ¦ <menuchoice><guimenu>ćć”ć¤ć«" +"</guimenu><guimenuitem>éć</guimenuitem></menuchoice> ćéøęćć¾ćć" +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ćÆ" +"ę°ććć¦ć£ć³ćć¦ć§ććććć®ćć”ć¤ć«ćéćć¾ćć" + +#: C/evince.xml:252(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć" +"čŖčććŖććć”ć¤ć«å½¢å¼ć®ććć„ć”ć³ććéćććØćććØ" +"ćØć©ć¼ć”ćć»ć¼ćøćč”Øē¤ŗććć¾ćć" + +#: C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "ććć„ć”ć³ććććć²ć¼ć" + +#: C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "ćć”ć¤ć«ćÆꬔć®ććć«ćć¦ććć²ć¼ćć§ćć¾ć:" + +#: C/evince.xml:262(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "ꬔć®ćć¼ćøćč¦ćć«ćÆ <menuchoice><guimenu>ē§»å</guimenu>" +"<guimenuitem>ꬔć®ćć¼ćø</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:266(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "åć®ćć¼ćøćč¦ćć«ćÆ <menuchoice><guimenu>ē§»å</guimenu>" +"<guimenuitem>åć®ćć¼ćø</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:270(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "ęåć®ćć¼ćøćč¦ćć«ćÆ <menuchoice><guimenu>ē§»å</guimenu>" +"<guimenuitem>å é ć®ćć¼ćø</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:274(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "ęå¾ć®ćć¼ćøćč¦ćć«ćÆ <menuchoice><guimenu>ē§»å</guimenu>" +"<guimenuitem>ęå¾ć®ćć¼ćø</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:278(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "ē¹å®ć®ćć¼ćøćč¦ćć«ćÆćć¼ć«ćć¼ć®ććć¹ććććÆć¹ć«" +"ćć¼ćøēŖå·ććć¼ćøć©ćć«ćå „åćć¦ć<keycap>Return</keycap> ćę¼ćć¾ćć" + +#: C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "ćć¼ćøć®ć¹ćÆćć¼ć«" + +#: C/evince.xml:286(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "č”Øē¤ŗé åć«ē¾åØč”Øē¤ŗććć¦ććŖććć¼ćøć®å 容ćč”Øē¤ŗććć«ćÆ" +"ꬔć®ććć«ćć¾ć:" + +#: C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "ćć¼ćć¼ćć®ć«ć¼ć½ć«ćć¼ćć¹ćć¼ć¹ćć¼ćä½æćć¾ćć" + +#: C/evince.xml:292(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "ććć„ć”ć³ćć®ć©ććććć¦ć¹ć®äø央ććæć³ć§ćÆćŖććÆćć" +"č”Øē¤ŗćØćŖć¢ććć©ćć°ćć¦ćć¦ć¹ćē§»åćć¾ććä¾ćć°ćć¼ćøćäøć«" +"ć¹ćÆćć¼ć«ććć«ćÆč”Øē¤ŗé åćć¦ć£ć³ćć¦ć®äøć®ę¹ć«ćć©ćć°ćć¾ćć" + +#: C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "ć¦ć£ć³ćć¦ć®ć¹ćÆćć¼ć«ćć¼ćä½æćć¾ćć" + +#: C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "ćć¼ćøćµć¤ćŗć®å¤ę“" + +#: C/evince.xml:303(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"č”Øē¤ŗé åć®äøć®ćć¼ćøć®å¤§ćććå¤ę“ććć«ćÆꬔć®ććć«ćć¾ć:" + +#: C/evince.xml:308(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "ćć¼ćøćµć¤ćŗć大ććććć«ćÆ <menuchoice><guimenu>č”Øē¤ŗ</guimenu>" +"<guimenuitem>ę”大</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:313(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "ćć¼ćøćµć¤ćŗćå°ććććć«ćÆ <menuchoice><guimenu>č”Øē¤ŗ</guimenu>" +"<guimenuitem>ēø®å°</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:318(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "ćć¼ćøććŖćµć¤ćŗćć¦ <application>Evince ććć„ć”ć³ććć„ć¼ć¢" +"</application> ć®č”Øē¤ŗé åćØåćå¹ ć«ććć«ćÆ <menuchoice><guimenu>č”Øē¤ŗ</guimenu>" +"<guimenuitem>å¹ ć«åććć</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:323(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "ćć¼ćøććŖćµć¤ćŗćć¦ <application>Evince ććć„ć”ć³ććć„ć¼ć¢" +"</application> ć®č”Øē¤ŗé åć®å¤§ććć«ć”ććć©åćććć«ććć«ćÆ " +"<menuchoice><guimenu>č”Øē¤ŗ</guimenu><guimenuitem>å Øä½ć«åććć</guimenuitem>" +"</menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:328(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ć¦ć£ć³ćć¦ććŖćµć¤ćŗćć¦ē»é¢ćØåćå¹ ćØé«ćć«ććć«ćÆ " +"<menuchoice><guimenu>č”Øē¤ŗ</guimenu><guimenuitem>ćć«ć¹ćÆćŖć¼ć³č”Øē¤ŗ" +"</guimenuitem></menuchoice> ćéøęćć¾ćć" +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ć¦ć£ć³ćć¦ććŖćµć¤ćŗćć¦å ć®å¤§ććć«ę»ćć«ćÆ <guibutton>ćć«ć¹ćÆćŖć¼ć³ć®" +"č§£é¤</guibutton> ććæć³ććÆćŖććÆćć¾ćć" + +#: C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "ćć¼ćøć¾ććÆććć„ć”ć³ćć®ę§é ćč”Øē¤ŗ" + +# Adobe Reader ć§ćÆ 'bookmarks' ćÆ 'ććć' ćØčسććć¦ććććć ć +#: C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "ćććć¾ććÆćć¼ćøć®ćµć ćć¤ć«ćč”Øē¤ŗććć«ćÆꬔć®ć¹ćććć" +"å®č”ćć¾ć:" + +#: C/evince.xml:341(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "<menuchoice><guimenu>č”Øē¤ŗ</guimenu><guimenuitem>ćµć¤ććć¤ć³" +"</guimenuitem></menuchoice> ć¾ććÆ <keycap>F9</keycap> ćę¼ćć¾ćć" + +#: C/evince.xml:346(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "ćµć¤ććć¤ć³ć®ćøććć®ćććććć¦ć³ćŖć¹ććä½æć£ć¦ććµć¤ććć¤ć³ć«" +"ććć„ć”ć³ćć®ę§é ćØćć¼ćøć®ć©ć”ććč”Øē¤ŗćććéøęćć¾ćć" + +#: C/evince.xml:351(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "ćµć¤ććć¤ć³ć®ć¹ćÆćć¼ć«ćć¼ćä½æć£ć¦ććµć¤ććć¤ć³ć«" +"ę±ććć¢ć¤ćć ć¾ććÆćć¼ćøćč”Øē¤ŗćć¾ćć" + +#: C/evince.xml:356(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "ćØć³ććŖććÆćŖććÆćććØććć„ć”ć³ćć®ćć®ä½ē½®ć«ē§»åć§ćć¾ćć" +"ćć¼ćøććÆćŖććÆćććØććć„ć”ć³ćć®ćć®ćć¼ćøć«ē§»åć§ćć¾ćć" + +#: C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "ććć„ć”ć³ćć®ććććć£ćč”Øē¤ŗ" + +#: C/evince.xml:363(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "ććć„ć”ć³ćć®ććććć£ćč¦ćć«ćÆ <menuchoice><guimenu>" +"ćć”ć¤ć«</guimenu><guimenuitem>ććććć£</guimenuitem></menuchoice>" +" ćéøęćć¾ćć" + +#: C/evince.xml:369(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "<guilabel>ććććć£</guilabel> ćć¤ć¢ćć°ć«ćÆå©ēØć§ćć" +"ćć¹ć¦ć®ę å ±ćč”Øē¤ŗććć¾ćć" + +#: C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "ććć„ć”ć³ćć®å°å·" + +#: C/evince.xml:376(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "ććć„ć”ć³ććå°å·ććć«ćÆ <menuchoice><guimenu>ćć”ć¤ć«</guimenu>" +"<guimenuitem>å°å·</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:380(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "<guimenuitem>å°å·</guimenuitem> ć”ćć„ć¼ć¢ć¤ćć ćéøęć§ććŖćå “åćÆ" +"ćć®ććć„ć”ć³ćć®ä½č ćÆå°å·ćŖćć·ć§ć³ćē”å¹ć«ćć¦ćć¾ććå°å·ćŖćć·ć§ć³ć" +"ęå¹ć«ććć«ćÆććć„ć”ć³ććéćéć«ćć¹ćæć¼ćć¹ćÆć¼ććå „åććŖććć°" +"ććć¾ććććć¹ćÆć¼ćć§äæč·ććććć”ć¤ć«ć®č©³ē“°ć«ć¤ćć¦ćÆ " +"<xref linkend=\"evince-password\"/> ćåē §ćć¦äøććć" + +#: C/evince.xml:384(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "<guilabel>å°å·</guilabel> ćć¤ć¢ćć°ć«ćÆꬔć®ćæćć»ćÆć·ć§ć³ćććć¾ć:" + +#: C/evince.xml:390(link) C/evince.xml:406(title) +msgid "Job" +msgstr "ćøć§ć" + +#: C/evince.xml:395(link) C/evince.xml:428(title) C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "ććŖć³ćæ" + +#: C/evince.xml:400(link) C/evince.xml:522(title) +msgid "Paper" +msgstr "ēØē“" + +#: C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "å°å·ēÆå²" + +#: C/evince.xml:410(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "ꬔć®ććććć®ćŖćć·ć§ć³ćéøęćć¦ćåŗåćććć¼ćøę°ćęå®ćć¾ćć" + +#: C/evince.xml:413(guilabel) +msgid "All" +msgstr "å Øć¦" + +#: C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "ććć„ć”ć³ćć®ćć¹ć¦ć®ćć¼ćøćå°å·ććå “åćÆćć®ćŖćć·ć§ć³ćéøęćć¾ćć" + +#: C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "ēÆå²" + +#: C/evince.xml:418(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "ććć„ć”ć³ćć®ęå®ć®ćć¼ćøēÆå²ćå°å·ććć«ćÆćć®ćŖćć·ć§ć³ćéøęćć¾ćć" +"ćć¼ćøć®ēÆå²ć®ęåćØęå¾ćć¹ćć³ćććÆć¹ćä½æć£ć¦ęå®ćć¾ćć" + +#: C/evince.xml:432(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "ććć„ć”ć³ććå°å·ććććŖć³ćæćéøęććć«ćÆćć®ćććććć¦ć³ćŖć¹ćć" +"ä½æćć¾ćć" + +#: C/evince.xml:434(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "<guilabel>PDF ććć„ć”ć³ćć®ä½ę</guilabel> ćŖćć·ć§ć³ćÆ" +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ćć®ćć¼ćøć§ć³ć§ćÆćµćć¼ćććć¦ćć¾ććć" + +#: C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "čØå®" + +#: C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "ćććććć¦ć³ćŖć¹ćććå°å·čØå®ćéøęćć¾ćć" + +#: C/evince.xml:444(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "ććŖć³ćæćčØå®ććć«ćÆ <guibutton>čØå®</guibutton> ććÆćŖććÆćć¾ćć" +"ććŖć³ćæćę©č½ććµćć¼ććć¦ććć°ćä¾ćć°ćäø”é¢å°å·ćęå¹ć¾ććÆ" +"ē”å¹ć«ććććå¾ć§å°å·ććććć§ćć¾ćć" + +#: C/evince.xml:448(guilabel) +msgid "Location" +msgstr "å “ę" + +#: C/evince.xml:450(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "ćććććć¦ć³ćŖć¹ćććꬔć®äøć®ć©ććć®å°å·å ćéøęćć¾ć:" + +#: C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "CUPS ććŖć³ćæć«å°å·ćć¾ćć" + +#: C/evince.xml:461(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "éøęćććććŖć³ćæć CUPS ććŖć³ćæć§ććå “åćÆ <guilabel>CUPS" +"</guilabel> ć ćććć®ćććććć¦ć³ćŖć¹ćć®åÆäøć®ćØć³ććŖćØćŖćć¾ćć" + +#: C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "ććć„ć”ć³ććäøć¤ć®ććŖć³ćæć§å°å·ćć¾ćć" + +#: C/evince.xml:476(guilabel) +msgid "File" +msgstr "ćć”ć¤ć«" + +#: C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "ććć„ć”ć³ćć PostScript ćć”ć¤ć«ć«åŗåćć¾ćć" + +#: C/evince.xml:481(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "<guibutton>å„åć§äæå</guibutton> ććÆćŖććÆćć¦ " +"PostScript ćć”ć¤ć«ć®ååćØå “ęćęå®ććććć®ćć¤ć¢ćć°ć" +"č”Øē¤ŗććć¾ćć" + +#: C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "ć«ć¹ćæć " + +#: C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "ććć„ć”ć³ććå°å·ććććć«ē¹å®ć®ć³ćć³ććä½æēØćć¾ćć" + +#: C/evince.xml:492(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "ććć¹ććććÆć¹ć«ć³ćć³ćåćå „åćć¾ćć" +"ćć¹ć¦ć®ć³ćć³ćč”å¼ę°ćå«ćć¾ćć" + +#: C/evince.xml:500(guilabel) +msgid "State" +msgstr "ē¶ę " + +#: C/evince.xml:502(para) C/evince.xml:508(para) C/evince.xml:514(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "ćć®ę©č½ćÆćć®ćć¼ćøć§ć³ć® " +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć§ćÆ" +"ćµćć¼ćććć¦ćć¾ććć" + +# ? +#: C/evince.xml:506(guilabel) +msgid "Type" +msgstr "ēØ®é”" + +#: C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "ć³ć”ć³ć" + +#: C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "ēØē“ćµć¤ćŗ" + +#: C/evince.xml:526(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "ććć„ć”ć³ććå°å·ććēØē“ć®ćµć¤ćŗćéøęććć«ćÆ" +"ćć®ćććććć¦ć³ćŖć¹ććä½æćć¾ćć" + +#: C/evince.xml:529(guilabel) +msgid "Width" +msgstr "å¹ " + +#: C/evince.xml:531(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "ēØē“ć®å¹ ćęå®ććć«ćÆćć®ć¹ćć³ćććÆć¹ćä½æćć¾ćć" +"ćµć¤ćŗć®åä½ćå¤ę“ććć«ćÆé£ć®ćććććć¦ć³ćŖć¹ććä½æćć¾ćć" + +#: C/evince.xml:534(guilabel) +msgid "Height" +msgstr "é«ć" + +#: C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "ēØē“ć®é«ććęå®ćć¾ćć" + +#: C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "ēØē“ć®åć" + +#: C/evince.xml:541(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "ćććććć¦ć³ćŖć¹ćććććŖć³ćæå ć®ēØē“ć®åććéøęćć¾ćć" + +#: C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "ćć¼ćøć®åć" + +#: C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "ćććććć¦ć³ćŖć¹ćććēØē“ć®åććéøęćć¾ćć" + +#: C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "ć¬ć¤ć¢ć¦ć" + +#: C/evince.xml:551(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"ćć¼ćøć¬ć¤ć¢ć¦ććéøęććć«ćÆćć®ćććććć¦ć³ćŖć¹ććä½æćć¾ćć<guilabel>ććć¬" +"ćć„ć¼ć</guilabel>é åć«ćÆćéøęććåć¬ć¤ć¢ć¦ćć®ćć¬ćć„ć¼ćč”Øē¤ŗććć¾ćć" + +#: C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "ēØē“ćć¬ć¤" + +#: C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "ēØē“ć®ćć¬ć¤ćéøęććć«ćÆćć®ćććććć¦ć³ćŖć¹ććä½æćć¾ćć" + +#: C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "ććć„ć”ć³ćć®ć³ćć¼" + +#: C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "ćć”ć¤ć«ćć³ćć¼ććć«ćÆꬔć®ć¹ććććå®č”ćć¾ć:" + +#: C/evince.xml:571(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "<menuchoice><guimenu>ćć”ć¤ć«</guimenu><guimenuitem>" +"å„åć§äæå</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:576(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "<guilabel>å„åć§äæå</guilabel> ćć¤ć¢ćć°ć® " +"<guilabel>åå</guilabel> ććć¹ććććÆć¹ć«ę°ćććć”ć¤ć«åć" +"å „åćć¾ćć" + +#: C/evince.xml:579(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "åæ č¦ćŖćć³ćć¼ććććć„ć”ć³ćć®å “ęćęå®ćć¾ććććć©ć«ćć§ćÆ" +"ć³ćć¼ćÆćć¼ć ćć£ć¬ćÆććŖć«äæåććć¾ćć" + +#: C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "<guibutton>äæå</guibutton> ććÆćŖććÆćć¾ćć" + +#: C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "ćć¹ćÆć¼ćć§äæč·ćććććć„ć”ć³ććę±ć" + +#: C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "ććć„ć”ć³ćć®ä½ęč ćÆććć„ć”ć³ććäæč·ććć®ć«ę¬”ć®ćć¹ćÆć¼ć" +"ć¬ćć«ćä½æćććØćć§ćć¾ć:" + +#: C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "ä»č ć«ććć„ć”ć³ćć®čŖćæč¾¼ćæć ććčرåÆććć¦ć¼ć¶ć¼ćć¹ćÆć¼ć" + +#: C/evince.xml:603(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "ä»č ć«ććć„ć”ć³ćć®å°å·ćŖć©ć®čæ½å ć®ć¢ćÆć·ć§ć³ćčرåÆćććć¹ćæć¼ćć¹ćÆć¼ć" + +#: C/evince.xml:607(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "ćć¹ćÆć¼ćć§äæč·ćććććć„ć”ć³ććéćććØćććØ " +"<application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ćÆ" +"ć»ćć„ćŖćć£ćć¤ć¢ćć°ćč”Øē¤ŗćć¾ććć¦ć¼ć¶ć¼ćć¹ćÆć¼ćć¾ććÆ" +"ćć¹ćæć¼ćć¹ćÆć¼ćć <guilabel>ćć¹ćÆć¼ćć®å „å</guilabel> " +"ććć¹ććććÆć¹ć«å „åćć<guibutton>ććć„ć”ć³ććéć</guibutton> ć" +"ćÆćŖććÆćć¾ćć" + +#: C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "ććć„ć”ć³ććéćć" + +#: C/evince.xml:615(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "ććć„ć”ć³ććéććć«ćÆ <menuchoice><guimenu>ćć”ć¤ć«</guimenu>" +"<guimenuitem>éćć</guimenuitem></menuchoice> ćéøęćć¾ćć" + +#: C/evince.xml:617(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "ć¦ć£ć³ćć¦ć <application>Evince ććć„ć”ć³ććć„ć¼ć¢</application> ć®" +"ęå¾ć®ę®ćć®ć¦ć£ć³ćć¦ćŖćć¢ććŖć±ć¼ć·ć§ć³ćÆēµäŗćć¾ćć" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "ä½č¤ ę <ss@mate.gr.jp>\n" +"ę„ę¬ MATE ć¦ć¼ć¶ć¼ä¼ http://www.mate.gr.jp" diff --git a/help/nl/figures/evince_start_window.png b/help/nl/figures/evince_start_window.png new file mode 100644 index 00000000..5ba632f9 Binary files /dev/null and b/help/nl/figures/evince_start_window.png differ diff --git a/help/nl/nl.po b/help/nl/nl.po new file mode 100644 index 00000000..bbe2efde --- /dev/null +++ b/help/nl/nl.po @@ -0,0 +1,929 @@ +# Nederlandse vertaling van Evince-documentatie +# +# Reinout van Schouwen <reinout@cs.vu.nl>, 2006 +# Wouter Bolsterlee <uws+mate@xs4all.nl>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince \n" +"POT-Creation-Date: 2006-10-20 17:42+0200\n" +"PO-Revision-Date: 2006-10-20 17:51+0200 \n" +"Last-Translator: Wouter Bolsterlee <uws+mate@xs4all.nl>\n" +"Language-Team: Dutch <vertaling@vrijschrift.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:146(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Handleiding van Evince Documentviewer" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"De toepassing Evince Documentviewer stelt u in staat documenten in diverse " +"formaten zoals Portable Document Format (PDF)en PostScript te bekijken." + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "MATE Documentation Project" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Toestemming wordt verleend tot het kopiĆ«ren, verspreiden en/of wijzigen van " +"dit document onder de bepalingen van de GNU Vrije Documentatie Licentie, " +"versie 1.1 of iedere latere versie uitgegeven door de Free Software " +"Foundation; zonderInvariante Secties, zonder Omslagteksten voor de Voorkant " +"en zonderOmslagteksten voor de Achterkant. Een kopie van de licentie is " +"opgenomen via deze <ulink type=\"help\" url=\"ghelp:fdl\">referentie</ulink> " +"of in het bestand COPYING-DOCS dat bijgesloten is bij deze handleiding." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Deze handleiding is onderdeel van een verzameling MATE-handleidingen die " +"gedistribueerd worden onder de GFDL. Als u deze handleiding los van de " +"verzameling wilt distribueren, dan kunt u dit doen door een exemplaar van de " +"licentie toe te voegen aan de handleiding, zoals omschreven in sectie 6 van " +"de licentie." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Vele van de namen die door bedrijven worden gebruikt om hun producten en " +"diensten te onderscheiden zijn geclaimd als handelsmerken. Wanneer deze " +"namen voorkomen in wat voor MATE-documentatie dan ook, en de leden van het " +"MATE Documentation Project zijn van deze handelsmerken op de hoogte, dan " +"zijn deze namen in hoofdletters of met een beginhoofdletter weergegeven." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DIT DOCUMENT WORDT āALS ZODANIGā AANGEBODEN, ZONDER ENIGE VORM VAN GARANTIE, " +"HETZIJ EXPLICIET HETZIJ IMPLICIET, MET INBEGRIP VAN, MAAR NIET BEPERKT TOT, " +"GARANTIES DAT HET DOCUMENT OF EEN GEWIJZIGDE VERSIE VAN HET DOCUMENT VRIJ IS " +"VAN FOUTEN, VERKOOPBAAR IS, GESCHIKT IS VOOR ENIG SPECIFIEK DOEL OF GEEN " +"INBREUK MAAKT. HET GEHELE RISICO MET BETREKKING TOT DE KWALITEIT, " +"ACCURAATHEID EN PRESTATIES VAN HET DOCUMENT OF EEN GEWIJZIGDE VERSIE VAN HET " +"DOCUMENT LIGT BIJ U. ALS ENIG DOCUMENT OF GEWIJZIGDE VERSIE OP WELKE WIJZE " +"DAN OOK FOUTIEF BLIJKT TE ZIJN, DAN NEEMT U (NIET DE OORSPRONKELIJKE " +"SCHRIJVER, AUTEUR OF IEMAND ANDERS DIE BIJGEDRAGEN HEEFT) DE KOSTEN OP ZICH " +"VAN AL HET VEREISTE ONDERH0UD, REPARATIE OF CORRECTIE. DEZE " +"VRIJWARINGSVERKLARING VAN GARANTIE VORMT EEN ESSENTIEEL DEEL VAN DEZE " +"LICENTIE. GEEN ENKEL GEBRUIK VAN ENIG DOCUMENT OF GEWIJZIGDE VERSIE VAN HET " +"DOCUMENT IS HIERONDER TOEGESTAAN BEHALVE ONDER DEZE VERKLARING; EN " + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ONDER GEEN ENKELE OMSTANDIGHEID EN ONDER GEEN ENKELE JURIDISCHE THEORIE, " +"HETZIJ IN DELICT (WAARONDER NALATIGHEID), CONTRACT, OF OP ANDERE WIJZE, IS " +"DE AUTEUR, OORSPRONKELIJKE SCHRIJVER, ENIGE PERSOON DIE HEEFT BIJGEDRAGEN, " +"OF ENIGE DISTRIBUTEUR VAN HET DOCUMENT OF GEWIJZIGDE VERSIE VAN HET " +"DOCUMENT, OF ENIGE TOELEVERANCIER VAN ZULKE PARTIJEN, AANSPRAKELIJK TE " +"STELLEN NAAR ENIGE PERSOON VOOR WELKE DIRECTE-, INDIRECTE-, SPECIALE-, " +"INCIDENTELE- OF GEVOLGSCHADE DAN OOK, MET INBEGRIP VAN, MAAR NIET BEPERKT " +"TOT, SCHADE TEN GEVOLGDE VAN VERLIES VAN GOEDE WIL, ONDERBREKING VAN WERK, " +"SLECHT FUNCTIONEREN OF FALEN VAN DE COMPUTER, OF WAT VOOR ANDERE SCHADE DAN " +"OOK RESULTEREND UIT OF GERELATEERD MET HET GEBRUIK VAN HET DOCUMENT EN " +"GEWIJZIGDE VERSIES VAN HET DOCUMENT, ZELFS ALS ZULK EEN PARTIJ OP DE HOOGTE " +"WAS GEWEEST VAN DE MOGELIJKHEID TOT DERGELIJKE SCHADE." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"HET DOCUMENT EN GEWIJZIGDE VERSIES VAN HET DOCUMENT WORDEN TER BESCHIKKING " +"GESTELD ONDER DE VOORWAARDEN VAN DE GNU FREE DOCUMENTATION LICENSE MET DIEN " +"VERSTANDE DAT: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE Documentation Team" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Handleiding van Evince Documentviewer versie 1.0" + +#: C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Deze handleiding beschrijft versie 0.2 van de Evince documentviewer" + +#: C/evince.xml:100(title) +msgid "Feedback" +msgstr "Terugkoppeling" + +#: C/evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Om een fout te rapporteren of suggestie te doen met betrekking tot de Evince " +"documentviewer of deze handleiding, volgt u de aanwijzingen op de <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">MATE terugkoppelingspagina</ulink>." + +#: C/evince.xml:108(primary) +msgid "Evince Document Viewer" +msgstr "Evince Documentviewer" + +#: C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:119(title) +msgid "Introduction" +msgstr "Introductie" + +#: C/evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"De toepassing <application>Evince Documentviewer</application> " +"stelt u in staat documenten in diverse formaten zoals Portable " +"Document Format (PDF) en PostScript te bekijken. " +"<application>Evince Documentviewer</application> volgt " +"Freedesktop.org- en MATE-standaarden om integratie met de " +"werkomgeving tot stand te brengen." + +#: C/evince.xml:127(title) +msgid "Getting Started" +msgstr "De eerste stappen" + +#: C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "Het starten van Evince Documentviewer" + +#: C/evince.xml:131(para) +#, fuzzy +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"Het venster <application>Evince Documentviewer</application> bevat de " +"volgende elementen:" + +#: C/evince.xml:132(para) +#, fuzzy +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Wannere u <application>Evince Documentviewer</application> start, wordt het " +"volgende venster getoond." + +#: C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "Wanneer u Evince Documentviewer gestart heeft" + +#: C/evince.xml:138(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Wannere u <application>Evince Documentviewer</application> start, wordt het " +"volgende venster getoond." + +#: C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "Evince Documentviewer-venster" + +#: C/evince.xml:149(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Toont het hoofdvenster van Evince Documentviewer. Bevat een titelbalk, " +"menubalk, werkbalk en weergavegedeelte. De menubalk bevat de menu's Bestand, " +"Bewerken, Beeld, Ga naar en Hulp." + +#: C/evince.xml:155(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"Het venster <application>Evince Documentviewer</application> bevat de " +"volgende elementen:" + +#: C/evince.xml:159(term) C/evince.xml:207(para) +msgid "Menubar" +msgstr "Menubalk" + +#: C/evince.xml:161(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" + +#: C/evince.xml:165(term) +msgid "Toolbar" +msgstr "Werkbalk" + +#: C/evince.xml:167(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" + +#: C/evince.xml:171(term) +msgid "Display area" +msgstr "Weergavegedeelte" + +#: C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "Het weergavegedeelte geeft het document weer." + +#: C/evince.xml:187(para) +msgid "UI Component" +msgstr "UI-component" + +#: C/evince.xml:189(para) +msgid "Action" +msgstr "Actie" + +#: C/evince.xml:194(para) +msgid "Window" +msgstr "Venster" + +#: C/evince.xml:198(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" + +#: C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "Dubbelklik op de bestandsnaam in het bestandsbeheer" + +#: C/evince.xml:208(para) C/evince.xml:235(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" + +#: C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "Sneltoetsen" + +#: C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Druk op <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:178(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" + +#: C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "Deze handleiding documenteert de functionaliteit van de menubalk." + +#: C/evince.xml:227(title) +msgid "Usage" +msgstr "Gebruik" + +#: C/evince.xml:231(title) +msgid "To Open a File" +msgstr "Een bestand openen" + +#: C/evince.xml:232(para) +msgid "To open a File, perform the following steps:" +msgstr "Om een bestand te openen, neemt u de volgende stappen:" + +#: C/evince.xml:239(para) +msgid "" +"In the <guilabel>Load file</guilabel> dialog, select the file you want to " +"open." +msgstr "" + +#: C/evince.xml:244(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" + +#: C/evince.xml:249(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" + +#: C/evince.xml:252(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" + +#: C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "Navigeren door een document" + +#: C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "U kunt als volgt door een bestand navigeren:" + +#: C/evince.xml:262(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:266(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:270(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:274(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:278(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" + +#: C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "Een pagina verschuiven" + +#: C/evince.xml:286(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" + +#: C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Gebruik de pijltjestoetsen of spatiebalk op het toetsenbord." + +#: C/evince.xml:292(para) +msgid "" +"Drag the display area in the opposite direction to the direction in which " +"you want to scroll. For example, to scroll down the page, drag the display " +"area upwards in the window." +msgstr "" + +#: C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "Gebruik de schuifbalken in het venster." + +#: C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "Het veranderen van de paginagrootte" + +#: C/evince.xml:303(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" + +#: C/evince.xml:308(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:313(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:318(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:323(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:328(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" + +#: C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "Bekijken van pagina's of de documentstructuur" + +#: C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Om bladwijzers of pagina's te bekijken kunt u het volgende doen:" + +#: C/evince.xml:341(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Kies <menuchoice><guimenu>Beeld</guimenu><guimenuitem>Zijbalk</guimenuitem></" +"menuchoice> of druk op <keycap>F9</keycap>." + +#: C/evince.xml:346(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Gebruik het uitklapmenu in de zijbalk om een keuze te maken tussen de " +"documentstructuur en de pagina's." + +#: C/evince.xml:351(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Gebruik de schuifbalken in de zijbalk om het gewenste gedeelte te tonen." + +#: C/evince.xml:356(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Klik op het juiste gedeelte van de zijbalk om naar gedeelte van het document " +"te tonen. Door op een pagina te klikken komt u op die pagina terecht." + +#: C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "Bekijken van eigenschappen van een document" + +#: C/evince.xml:363(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Om de eigenschappen van een document te bekijken, kiest u " +"<menuchoice><guimenu>Bestand</guimenu><guimenuitem>Eigenschappen</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:369(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"Het <guilabel>Eigenschappen</guilabel>-venster toont alle beschikbare " +"informatie." + +#: C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "Een document afdrukken" + +#: C/evince.xml:376(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Om een document af te drukken, kiest u <menuchoice><guimenu>Bestand</" +"guimenu><guimenuitem>Afdrukken</guimenuitem></menuchoice>." + +#: C/evince.xml:380(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" + +#: C/evince.xml:384(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"Het <guilabel>Afdrukken</guilabel>-venster bevat de onderstaande onderdelen:" + +#: C/evince.xml:390(link) C/evince.xml:406(title) +msgid "Job" +msgstr "Taak" + +#: C/evince.xml:395(link) C/evince.xml:428(title) C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "Printer" + +#: C/evince.xml:400(link) C/evince.xml:522(title) +msgid "Paper" +msgstr "Papier" + +#: C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "Afdrukbereik" + +#: C/evince.xml:410(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Kies een van de onderstaande opties om aan te geven hoeveel pagina's " +"afgedrukt dienen te worden:" + +#: C/evince.xml:413(guilabel) +msgid "All" +msgstr "Alle" + +#: C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Gebruik deze optie om alle pagina's af te drukken." + +#: C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "Pagina's vanaf" + +#: C/evince.xml:418(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Gebruik deze optie om het geselecteerde gedeelte van de pagina's af te " +"drukken. U kunt hierbij de eerste en de laatste pagina die afgedrukt dienen " +"te worden opgeven." + +#: C/evince.xml:432(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" + +#: C/evince.xml:434(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" + +#: C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "Instellingen" + +#: C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" + +#: C/evince.xml:444(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" + +#: C/evince.xml:448(guilabel) +msgid "Location" +msgstr "Locatie" + +#: C/evince.xml:450(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" + +#: C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "Het document afdrukken naar een CUPS-printer." + +#: C/evince.xml:461(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" + +#: C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "Het document naar een printer afdrukken." + +#: C/evince.xml:476(guilabel) +msgid "File" +msgstr "Bestand" + +#: C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "Het document naar een PostScript-bestand afdrukken." + +#: C/evince.xml:481(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" + +#: C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "Aangepast" + +#: C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "" + +#: C/evince.xml:492(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" + +#: C/evince.xml:500(guilabel) +msgid "State" +msgstr "Status" + +#: C/evince.xml:502(para) C/evince.xml:508(para) C/evince.xml:514(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" + +#: C/evince.xml:506(guilabel) +msgid "Type" +msgstr "Type" + +#: C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "Opmerkingen" + +#: C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "Papiergrootte" + +#: C/evince.xml:526(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" + +#: C/evince.xml:529(guilabel) +msgid "Width" +msgstr "Breedte" + +#: C/evince.xml:531(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" + +#: C/evince.xml:534(guilabel) +msgid "Height" +msgstr "Hoogte" + +#: C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Gebruik dit draaivakje om de hoogte van het papier aan te geven." + +#: C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "InvoeroriĆ«ntatie" + +#: C/evince.xml:541(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" + +#: C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "PaginaoriĆ«ntatie" + +#: C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" + +#: C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "Layout" + +#: C/evince.xml:551(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" + +#: C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "Papiervak" + +#: C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Gebruik deze uitklaplijst om het papiervak te selecteren." + +#: C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "Een document kopiĆ«ren" + +#: C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "Om een document te kopiĆ«ren neemt u de volgende stappen:" + +#: C/evince.xml:571(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" + +#: C/evince.xml:576(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" + +#: C/evince.xml:579(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" + +#: C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Klik <guibutton>Opslaan</guibutton>." + +#: C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "Werken met wachtwoord-beschermde documenten" + +#: C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" + +#: C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "" + +#: C/evince.xml:603(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" + +#: C/evince.xml:607(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" + +#: C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "Een document sluiten" + +#: C/evince.xml:615(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Om een document te sluiten, kies <menuchoice><guimenu>Bestand</" +"guimenu><guimenuitem>Sluiten</guimenuitem></menuchoice>." + +#: C/evince.xml:617(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Reinout van Schouwen <reinout@cs.vu.nl>" + +#~ msgid "User manual for the Evince Document Viewer." +#~ msgstr "Gebruikershandleiding van de Evince Documentviewer." + +#~ msgid "" +#~ "You can start <application>Evince Document Viewer</application> in the " +#~ "following ways:" +#~ msgstr "" +#~ "U kunt <application>Evince Document Viewer</application> starten op de " +#~ "volgende manieren:" + +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "<guimenu>Toepassingen</guimenu>-menu" + +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Graphics</guisubmenu><guimenuitem>Evince " +#~ "Document Viewer</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Kies <menuchoice><guisubmenu>Grafisch</guisubmenu><guimenuitem>Evince " +#~ "Documentviewer</guimenuitem></menuchoice>." + +#~ msgid "Command line" +#~ msgstr "Opdrachtregel" + +#~ msgid "Execute the following command: <command>evince</command>" +#~ msgstr "Voer de volgende opdracht uit: <command>evince</command>" diff --git a/help/oc/oc.po b/help/oc/oc.po new file mode 100644 index 00000000..56cdea99 --- /dev/null +++ b/help/oc/oc.po @@ -0,0 +1,817 @@ +# Translation of oc.po to Occitan +# occitan translation of evince documentation. +# Copyright (C) 2006-2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince +# documentation package. +# +# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2006-2008 +msgid "" +msgstr "" +"Project-Id-Version: oc\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-28 20:57+0100\n" +"PO-Revision-Date: 2007-11-20 14:29+0100\n" +"Last-Translator: Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>\n" +"Language-Team: Occitan <ubuntu-l10n-oci@lists.ubuntu.com>\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" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: ../C/evince.xml:146(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: ../C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "" + +#: ../C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" + +#: ../C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: ../C/evince.xml:34(holder) ../C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: ../C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: ../C/evince.xml:38(holder) ../C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: ../C/evince.xml:49(publishername) ../C/evince.xml:67(orgname) +#: ../C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "ProjĆØcte de documentacion de MATE" + +#: ../C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" + +#: ../C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" + +#: ../C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" + +#: ../C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" + +#: ../C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" + +#: ../C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" + +#: ../C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: ../C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "CĆ²la de documentacion de MATE" + +#: ../C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: ../C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: ../C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: ../C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "" + +#: ../C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "06/04/2005" + +#: ../C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "" + +#: ../C/evince.xml:100(title) +msgid "Feedback" +msgstr "" + +#: ../C/evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" + +#: ../C/evince.xml:108(primary) +msgid "Evince Document Viewer" +msgstr "" + +#: ../C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: ../C/evince.xml:119(title) +msgid "Introduction" +msgstr "Introduccion" + +#: ../C/evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" + +#: ../C/evince.xml:127(title) +msgid "Getting Started" +msgstr "Per comenƧar" + +#: ../C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "" + +#: ../C/evince.xml:131(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" + +#: ../C/evince.xml:132(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" + +#: ../C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "" + +#: ../C/evince.xml:138(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" + +#: ../C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "" + +#: ../C/evince.xml:149(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" + +#: ../C/evince.xml:155(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" + +#: ../C/evince.xml:159(term) ../C/evince.xml:207(para) +msgid "Menubar" +msgstr "Barra de menuts" + +#: ../C/evince.xml:161(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:165(term) +msgid "Toolbar" +msgstr "Barra d'espleches" + +#: ../C/evince.xml:167(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" + +#: ../C/evince.xml:171(term) +msgid "Display area" +msgstr "" + +#: ../C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "" + +#: ../C/evince.xml:187(para) +msgid "UI Component" +msgstr "" + +#: ../C/evince.xml:189(para) +msgid "Action" +msgstr "Accion" + +#: ../C/evince.xml:194(para) +msgid "Window" +msgstr "FenĆØstra" + +#: ../C/evince.xml:198(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" + +#: ../C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "" + +#: ../C/evince.xml:208(para) ../C/evince.xml:235(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" + +#: ../C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "" + +#: ../C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" + +#: ../C/evince.xml:178(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" + +#: ../C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "" + +#: ../C/evince.xml:227(title) +msgid "Usage" +msgstr "Utilizacion" + +#: ../C/evince.xml:231(title) +msgid "To Open A Document" +msgstr "Dobrir un document" + +#: ../C/evince.xml:232(para) +msgid "To open a document, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:239(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" + +#: ../C/evince.xml:244(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" + +#: ../C/evince.xml:249(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" + +#: ../C/evince.xml:252(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" + +#: ../C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "" + +#: ../C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "" + +#: ../C/evince.xml:262(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:266(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:270(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:274(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:278(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" + +#: ../C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "" + +#: ../C/evince.xml:286(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" + +#: ../C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "" + +#: ../C/evince.xml:292(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" + +#: ../C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "" + +#: ../C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "" + +#: ../C/evince.xml:303(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" + +#: ../C/evince.xml:308(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:313(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:318(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:323(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:328(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" + +#: ../C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "" + +#: ../C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:341(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" + +#: ../C/evince.xml:346(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" + +#: ../C/evince.xml:351(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" + +#: ../C/evince.xml:356(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" + +#: ../C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "" + +#: ../C/evince.xml:363(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:369(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" + +#: ../C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "Estampar un document" + +#: ../C/evince.xml:376(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:380(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" + +#: ../C/evince.xml:384(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" + +#: ../C/evince.xml:390(link) ../C/evince.xml:406(title) +msgid "Job" +msgstr "" + +#: ../C/evince.xml:395(link) ../C/evince.xml:428(title) +#: ../C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "Estampaira" + +#: ../C/evince.xml:400(link) ../C/evince.xml:522(title) +msgid "Paper" +msgstr "PapiĆØr" + +#: ../C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "Airal d'estampatge" + +#: ../C/evince.xml:410(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "" + +#: ../C/evince.xml:413(guilabel) +msgid "All" +msgstr "Totes" + +#: ../C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "" + +#: ../C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "" + +#: ../C/evince.xml:418(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" + +#: ../C/evince.xml:432(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" + +#: ../C/evince.xml:434(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "ParamĆØtres" + +#: ../C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" + +#: ../C/evince.xml:444(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" + +#: ../C/evince.xml:448(guilabel) +msgid "Location" +msgstr "EmplaƧament" + +#: ../C/evince.xml:450(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "" + +#: ../C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: ../C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "" + +#: ../C/evince.xml:461(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" + +#: ../C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: ../C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "" + +#: ../C/evince.xml:476(guilabel) +msgid "File" +msgstr "FichiĆØr" + +#: ../C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "" + +#: ../C/evince.xml:481(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" + +#: ../C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "Personalisat" + +#: ../C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "" + +#: ../C/evince.xml:492(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" + +#: ../C/evince.xml:500(guilabel) +msgid "State" +msgstr "Estat" + +#: ../C/evince.xml:502(para) ../C/evince.xml:508(para) +#: ../C/evince.xml:514(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:506(guilabel) +msgid "Type" +msgstr "Tipe" + +#: ../C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "Comentari" + +#: ../C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "Talha de papiĆØr" + +#: ../C/evince.xml:526(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" + +#: ../C/evince.xml:529(guilabel) +msgid "Width" +msgstr "Largor" + +#: ../C/evince.xml:531(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" + +#: ../C/evince.xml:534(guilabel) +msgid "Height" +msgstr "Nautor" + +#: ../C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "" + +#: ../C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "" + +#: ../C/evince.xml:541(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" + +#: ../C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "" + +#: ../C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" + +#: ../C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "Presentacion" + +#: ../C/evince.xml:551(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" + +#: ../C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "" + +#: ../C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "" + +#: ../C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "" + +#: ../C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:571(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:576(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" + +#: ../C/evince.xml:579(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" + +#: ../C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "" + +#: ../C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "" + +#: ../C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" + +#: ../C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "" + +#: ../C/evince.xml:603(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" + +#: ../C/evince.xml:607(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" + +#: ../C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "Tampar un document" + +#: ../C/evince.xml:615(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:617(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: ../C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>" + diff --git a/help/pt_BR/pt_BR.po b/help/pt_BR/pt_BR.po new file mode 100644 index 00000000..2be2ec72 --- /dev/null +++ b/help/pt_BR/pt_BR.po @@ -0,0 +1,1272 @@ +# Brazilian Portuguese translation of evince. +# This file is distributed under the same license as the Evince package. +# Copyright (C) 2008 Free Software Foundation, Inc. +# Hugo DĆ³ria <hugodoria@gmail.com>, 2007. +# Pedro de Medeiros <pedrovmm+l10n@gmail.com>, 2007. +# Daniel S. Koda <danielskoda@gmail.com>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: evince 2.24\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-11-07 09:19+0100\n" +"PO-Revision-Date: 2008-12-04 19:20-0300\n" +"Last-Translator: Daniel S. Koda <danielskoda@gmail.com>\n" +"Language-Team: Portuguese <mate-l10n-br@listas.cipsga.org.br>\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-Country: BRAZIL\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Manual do Visualizador de Documentos Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"O Visualizador de Documentos Evince permite que vocĆŖ veja documentos de " +"vĆ”rios formatos como, por exemplo, arquivos PDF (Portable Document Format) e " +"PostScript" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Projeto de DocumentaĆ§Ć£o do MATE" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"PermissĆ£o concedida para copiar, distribuir e/ou modificar este documento " +"sob os termos da LicenƧa de DocumentaĆ§Ć£o Livre GNU (GNU Free Documentation " +"License), VersĆ£o 1.1 ou qualquer versĆ£o mais recente publicada pela Free " +"Software Foundation; sem SeƧƵes Invariantes, Textos de Capa Frontal, e sem " +"Textos de Contracapa. VocĆŖ pode encontrar uma cĆ³pia da licenƧa GFDL no link " +"ou no arquivo COPYING-DOCS distribuĆdo com este manual." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Este manual Ć© parte da coleĆ§Ć£o de manuais do MATE distribuĆdos sob a GFDL. " +"Se vocĆŖ quiser distribuĆ-lo separadamente da coleĆ§Ć£o, vocĆŖ pode fazĆŖ-lo " +"adicionando ao manual uma cĆ³pia da licenƧa, como descrito na seĆ§Ć£o 6 da " +"licenƧa." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Muitos dos nomes usados por empresas para distinguir seus produtos e " +"serviƧos sĆ£o reivindicados como marcas registradas. Onde esses nomes " +"aparecem em qualquer documentaĆ§Ć£o do MATE e os membros do Projeto de " +"DocumentaĆ§Ć£o do MATE estiverem cientes dessas marcas registradas, os nomes " +"aparecerĆ£o impressos em letras maiĆŗsculas ou com iniciais em maiĆŗsculas." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"O DOCUMENTO Ć FORNECIDO NA BASE \"COMO ESTĆ\", SEM GARANTIAS DE QUALQUER " +"TIPO, TANTO EXPRESSA OU IMPLĆCITA, INCLUINDO, MAS NĆO LIMITADO A, GARANTIAS " +"DE QUE O DOCUMENTO OU VERSĆO MODIFICADA DO DOCUMENTO SEJA COMERCIALIZĆVEL, " +"LIVRE DE DEFEITOS, PRĆPRIO PARA UM PROPĆSITO ESPECĆFICO OU SEM INFRAĆĆES. " +"TODO O RISCO A RESPEITO DA QUALIDADE, EXATIDĆO, E DESEMPENHO DO DOCUMENTO OU " +"VERSĆES MODIFICADAS DO DOCUMENTO Ć DE SUA RESPONSABILIDADE. SE ALGUM " +"DOCUMENTO OU VERSĆO MODIFICADA SE PROVAR DEFEITUOSO EM QUALQUER ASPECTO, " +"VOCĆ (NĆO O ESCRITOR INICIAL, AUTOR OU QUALQUER CONTRIBUIDOR) ASSUME O CUSTO " +"DE QUALQUER SERVIĆO NECESSĆRIO, REPARO OU CORREĆĆO. ESSA RENĆNCIA DE " +"GARANTIAS CONSTITUI UMA PARTE ESSENCIAL DESTA LICENĆA. NENHUM USO DESTE " +"DOCUMENTO OU VERSĆO MODIFICADA DESTE DOCUMENTO Ć AUTORIZADO SE NĆO FOR SOB " +"ESSA RENĆNCIA; E" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"SOB NENHUMA CIRCUNSTĆNCIA E SOB NENHUMA TEORIA LEGAL, TANTO EM DANO " +"(INCLUINDO NEGLIGĆNCIA), CONTRATO, OU OUTROS, DEVEM O AUTOR, ESCRITOR " +"INICIAL, QUALQUER CONTRIBUIDOR, OU QUALQUER DISTRIBUIDOR DO DOCUMENTO OU " +"VERSĆO MODIFICADA DO DOCUMENTO, OU QUALQUER FORNECEDOR DE ALGUMA DESSAS " +"PARTES, SER CONSIDERADOS RESPONSĆVEIS A QUALQUER PESSOA POR QUALQUER DANO, " +"SEJA DIRETO, INDIRETO, ESPECIAL, ACIDENTAL OU CONSEQĆENCIAL DE QUALQUER " +"INDIVĆDUO, INCLUINDO, MAS NĆO LIMITADO A, DANOS POR PERDA DE BOA VONTADE, " +"TRABALHO PARADO, FALHA OU MAU FUNCIONAMENTO DO COMPUTADOR, OU QUALQUER E " +"TODOS OS OUTROS DANOS OU PERDAS RESULTANTES OU RELACIONADOS AO USO DO " +"DOCUMENTO E VERSĆES MODIFICADAS, MESMO QUE TAL PARTE TENHA SIDO INFORMADA DA " +"POSSIBILIDADE DE TAIS DANOS." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"O DOCUMENTO E VERSĆES MODIFICADAS DO DOCUMENTO SĆO FORNECIDOS SOB OS TERMOS " +"DA GNU FREE DOCUMENTATION LICENSE COM O ENTENDIMENTO ADICIONAL DE QUE: " +"<placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Time de DocumentaĆ§Ć£o do MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Manual do Visualizador de Documentos Evince V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Manual do Visualizador de Documentos Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Este manual descreve a versĆ£o 0.2 do Visualizador de Documentos Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Feedback" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Para relatar um erro ou dar uma sugestĆ£o a respeito do Visualizador de " +"Documentos Evince ou deste manual, siga as instruƧƵes contidas na <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">PĆ”gina de Feedback do MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Visualizador de Documentos Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "IntroduĆ§Ć£o" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"O <application>Visualizador de Documentos Evince</application> permite que " +"vocĆŖ veja documentos de vĆ”rios formatos como, por exemplo, arquivos PDF " +"(Portable Document Format) e PostScript. O <application>Visualizador de " +"Documentos Evince</application> segue os padrƵes do MATE e Freedesktop.org " +"para realizar a integraĆ§Ć£o com o ambiente de trabalho." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "InĆcio" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Para iniciar o Visualizador de Documentos Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>O Visualizador de Documentos Evince</application> Ć© iniciado " +"quando vocĆŖ abre algum documento no formato PDF ou PostScript, por exemplo." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Outra maneira de iniciar o <application>Visualizador de Documentos Evince</" +"application> Ć© atravĆ©s da linha de comando, com o comando: <command>evince</" +"command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Ao iniciar o Visualizador de Documentos Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"Quando vocĆŖ inicia o <application>Visualizador de Documentos Evince</" +"application>, a seguinte janela Ć© exibida:" + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Janela do Visualizador de Documentos Evince" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"Mostra a janela principal do Visualizador de Documentos Evince. ContĆ©m " +"barras de tĆtulo, de menu, de ferramentas e Ć”rea de exibiĆ§Ć£o. A barra de " +"menu contĆ©m os menus Arquivo, Editar, Ver, Ir e Ajuda." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"A janela do <application>Visualizador de Documentos Evince</application> " +"contĆ©m os seguintes elementos:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "Barra de menu" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"Os menus da barra de menu contĆ©m todos os comandos que vocĆŖ precisa para " +"trabalhar com documentos no <application>Visualizador de Documentos Evince</" +"application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Barra de ferramentas" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"A barra de ferramentas contĆ©m um subconjunto de comandos que vocĆŖ pode " +"acessar a partir da barra de menu." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Ćrea de exibiĆ§Ć£o" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "A Ć”rea de exibiĆ§Ć£o exibe o conteĆŗdo do documento." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Componente da Interface" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "AĆ§Ć£o" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Janela" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"Arraste um arquivo para a janela do <application>Visualizador de Documentos " +"Evince</application> a partir de um outro aplicativo, como um gerenciador de " +"arquivos, por exemplo." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "DĆŖ um duplo clique no nome do arquivo no gerenciador de arquivos" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"Escolha <menuchoice><guimenu>Arquivo</guimenu><guimenuitem>Abrir</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Teclas de atalho" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"Pressione <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"No <application>Visualizador de Documentos Evince</application> vocĆŖ pode " +"realizar tarefas de diversas formas. Por exemplo, vocĆŖ pode abrir um " +"documento das seguintes maneiras: <informaltable frame=\"all\"><tgroup cols=" +"\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*" +"\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/" +"><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Este manual documenta as funcionalidades da barra de menu." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Uso" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Para abrir um documento" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Para abrir um documento, execute os seguintes passos:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"Na caixa de diĆ”logo <guilabel>Abrir documento</guilabel>, selecione o " +"arquivo que vocĆŖ deseja abrir." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"Clique em <guibutton>Abrir</guibutton>. O <application>Visualizador de " +"Documentos Evince</application> exibe o nome do documento na barra de tĆtulo " +"da janela." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Para abrir um outro documento, escolha novamente " +"<menuchoice><guimenu>Arquivo</guimenu><guimenuitem>Abrir</guimenuitem></" +"menuchoice>. O <application>Visualizador de Documentos Evince</application> " +"abre cada arquivo em uma nova janela." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"Se vocĆŖ tentar abrir um documento no formato que o <application>Visualizador " +"de Documentos Evince</application> nĆ£o reconhece, uma mensagem de erro serĆ” " +"exibida." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Para navegar por um documento" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "VocĆŖ pode navegar por um arquivo da seguinte maneira:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver a prĆ³xima pĆ”gina, escolha <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>PrĆ³xima pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver a pĆ”gina anterior, escolha <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>PĆ”gina anterior</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver a primeira pĆ”gina do documento, escolha <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>Primeira pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Para ver a Ćŗltima pĆ”gina do documento, escolha <menuchoice><guimenu>Ir</" +"guimenu><guimenuitem>Ćltima pĆ”gina</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Para ver uma pĆ”gina especĆfica digite o nĆŗmero da pĆ”gina na caixa de texto " +"localizada na barra de ferramentas e pressione <keycap>Enter</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Para rolar uma pĆ”gina" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"Para ver o conteĆŗdo da pĆ”gina que ainda nĆ£o estĆ” sendo exibido na Ć”rea de " +"exibiĆ§Ć£o, use os seguintes mĆ©todos:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Use as setas ou a barra de espaƧo no teclado." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"Arraste a Ć”rea de exibiĆ§Ć£o clicando com o botĆ£o do meio do mouse em algum " +"lugar do documento e entĆ£o movendo o mouse. Por exemplo, para rolar a pĆ”gina " +"para baixo, arraste a Ć”rea de exibiĆ§Ć£o para cima na janela." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Use a barra de rolagem na janela." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Para alterar o tamanho da pĆ”gina" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"VocĆŖ pode usar os seguintes mĆ©todos para redimensionar uma pĆ”gina na Ć”rea de " +"exibiĆ§Ć£o do <application>Visualizador de Documentos Evince</application>:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"Para aumentar o tamanho da pĆ”gina, escolha <menuchoice><guimenu>Ver</" +"guimenu><guimenuitem>Ampliar</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"Para diminuir o tamanho da pĆ”gina, escolha <menuchoice><guimenu>Ver</" +"guimenu><guimenuitem>Reduzir</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Para redimensionar a pĆ”gina para que ela tenha a mesma largura que a Ć”rea de " +"exibiĆ§Ć£o do <application>Visualizador de Documentos Evince</application>, " +"escolha <menuchoice><guimenu>Ver</guimenu><guimenuitem>Largura da pĆ”gina</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Para redimensionar a pĆ”gina para que ela se ajuste a Ć”rea de exibiĆ§Ć£o do " +"<application>Visualizador de Documentos Evince</application>, escolha " +"<menuchoice><guimenu>Ver</guimenu><guimenuitem>Melhor ajuste</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Para redimensionar a janela do <application>Visualizador de Documentos " +"Evince</application> para que ela tenha a mesma largura e altura da tela, " +"escolha <menuchoice><guimenu>Ver</guimenu><guimenuitem>Tela cheia</" +"guimenuitem></menuchoice>. Para redimensionar a janela do " +"<application>Evince Document Viewer</application> ao seu tamanho original, " +"clique no botĆ£o <guibutton>Sair da tela cheia</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Para ver pĆ”ginas ou a estrutura do documento" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Para ver os marcadores ou as pĆ”ginas, execute os seguintes passos:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"Escolha <menuchoice><guimenu>Ver</guimenu><guimenuitem>Barra lateral</" +"guimenuitem></menuchoice> ou pressione a tecla <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"Use a lista suspensa no cabeƧalho do painel lateral para selecionar se " +"deseja exibir a estrutura do documento ou as pĆ”ginas no painel lateral." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"Use as barras de rolagem do painel lateral para exibir o item ou a pĆ”gina " +"solicitada no painel lateral." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Clique em uma entrada para navegar atĆ© a localizaĆ§Ć£o solicitada no " +"documento. Clique em uma pĆ”gina para navegar atĆ© ela no documento." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Para ver as propriedades de um documento" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Para ver as propriedades de um documento, escolha " +"<menuchoice><guimenu>Arquivo</guimenu><guimenuitem>Propriedades</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"A caixa de diĆ”logo <guilabel>Propriedades</guilabel> exibe todas as " +"informaƧƵes disponĆveis" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Para imprimir um documento" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Para imprimir um documento, escolha <menuchoice><guimenu>Arquivo</" +"guimenu><guimenuitem>Imprimir</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"Se vocĆŖ nĆ£o pode escolher o item <guimenuitem>Imprimir</guimenuitem> no " +"menu, entĆ£o o autor do documento desabilitou esta opĆ§Ć£o de impressĆ£o para " +"este documento. Para habilitar a opĆ§Ć£o de impressĆ£o, vocĆŖ deve digitar a " +"senha mestra quando abrir o documento. Veja <xref linkend=\"evince-password" +"\"/> para mais informaƧƵes sobre arquivos protegidos por senha." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" +"O diĆ”logo <guilabel>Imprimir</guilabel> tem as seguintes seƧƵes em abas:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "Trabalho" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Impressora" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "Papel" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Imprimir intervalo" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"Selecione uma das opƧƵes a seguir para determinar quantas pĆ”ginas serĆ£o " +"impressas:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Todas" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Selecione esta opĆ§Ć£o para imprimir todas as pĆ”ginas do documento." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "PĆ”ginas de" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"Selecione esta opĆ§Ć£o para imprimir um intervalo de pĆ”ginas no documento. Use " +"os seletores numĆ©ricos para especificar a primeira e a Ćŗltima pĆ”gina do " +"intervalo." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"Use esta lista suspensa para selecionar a impressora com a qual deseja " +"imprimir o documento." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"A opĆ§Ć£o <guilabel>Criar um documento PDF</guilabel> nĆ£o tem suporte nesta " +"versĆ£o do <application>Visualizador de Documentos Evince</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "ConfiguraƧƵes" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" +"Use esta lista suspensa para selecionar as configuraƧƵes da impressora." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"Para configurar a impressora, clique em <guibutton>Configurar</guibutton>. " +"Por exemplo, vocĆŖ pode habilitar ou desabilitar a impressĆ£o duplex, se " +"existir suporte para esta funcionalidade na impressora." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "LocalizaĆ§Ć£o" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "Use esta lista para selecionar um dos seguintes destinos de impressĆ£o:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Imprimir o documento em uma impressora do CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"Se a impressora selecionada Ć© uma impressora do tipo CUPS, entĆ£o " +"<guilabel>CUPS</guilabel> serĆ” a Ćŗnica entrada na lista suspensa." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Imprimir o documento em uma impressora." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Arquivo" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Imprimir o documento em um arquivo PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"Clique em <guibutton>Salvar como</guibutton> para exibir um diĆ”logo onde " +"vocĆŖ poderĆ” especificar o nome e a localizaĆ§Ć£o do arquivo PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Personalizado" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Usar o comando especificado para imprimir o documento." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" +"Digite o nome do comando na caixa de texto. Inclua todos os argumentos da " +"linha de comando." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Estado" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Esta funcionalidade nĆ£o tem suporte nesta versĆ£o do " +"<application>Visualizador de Documentos Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Tipo" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "ComentĆ”rio" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Tamanho do papel" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Use esta lista para selecionar o tamanho do papel no qual deseja imprimir o " +"documento." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Largura" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Use este seletor numĆ©rico para especificar a largura do papel. Use a lista " +"suspensa adjacente para alterar a unidade de medida." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Altura" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Use este seletor numĆ©rico para especificar a altura do papel." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "OrientaĆ§Ć£o da alimentaĆ§Ć£o" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"Use esta lista suspensa para selecionar a orientaĆ§Ć£o do papel na impressora." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "OrientaĆ§Ć£o da pĆ”gina" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Use esta lista suspensa para selecionar a orientaĆ§Ć£o da pĆ”gina." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Layout" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Use esta lista suspensa para selecionar o layout da pĆ”gina. Uma visualizaĆ§Ć£o " +"de cada layout que vocĆŖ escolheu Ć© exibida na Ć”rea <guilabel>VisualizaĆ§Ć£o</" +"guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Bandeja do papel" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Use esta lista suspensa para selecionar a bandeja de papel." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Para copiar um documento" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Para copiar um arquivo, execute os seguintes passos:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"Escolha <menuchoice><guimenu>Arquivo</guimenu><guimenuitem>Salvar uma cĆ³pia</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"Digite um novo nome de arquivo na caixa de texto <guilabel>Nome de arquivo</" +"guilabel> no diĆ”logo <guilabel>Salvar uma cĆ³pia</guilabel>." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"Se necessĆ”rio, especifique a localizaĆ§Ć£o do documento copiado. Por padrĆ£o, " +"as cĆ³pias sĆ£o salvas no seu diretĆ³rio pessoal." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Clique em <guibutton>Salvar</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Para funcionar com documentos protegidos por senha" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"Um autor pode usar os seguintes nĆveis de senha para proteger um documento:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "" +"Senha do usuĆ”rio que permite que as outras pessoas apenas possam ler o " +"documento." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"Senha mestra que permite que outras pessoas possam realizar tarefas " +"adicionais como, por exemplo, imprimir o documento." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"Quando vocĆŖ tenta abrir um documento que estĆ” protegido por senha, o " +"<application>Visualizador de Documentos Evince</application> exibe um " +"diĆ”logo de seguranƧa. Digite a senha de usuĆ”rio ou a senha mestra na caixa " +"de texto <guilabel>Digite a senha do documento</guilabel> e entĆ£o clique em " +"<guibutton>Abrir documento</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Para fechar um documento" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Para fechar um documento, escolha <menuchoice><guimenu>Arquivo</" +"guimenu><guimenuitem>Fechar</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"Se a janela for a Ćŗltima aberta do <application>Visualizador de Documentos " +"Evince</application>, o aplicativo fecharĆ”." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Atalhos" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"Abaixo estĆ” uma lista de todos os atalhos presentes no " +"<application>Visualizador de Documentos Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Atalho" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:682(keycap) C/evince.xml:701(keycap) +#: C/evince.xml:747(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Abre um documento existente" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Salva uma cĆ³pia do documento atual" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Imprime documento" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Fecha janela" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Copia seleĆ§Ć£o" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Seleciona tudo" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (barra)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Localiza uma palavra ou frase no documento" + +#: C/evince.xml:682(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:683(para) +msgid "Find next" +msgstr "Localiza prĆ³xima" + +#: C/evince.xml:687(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (sinal de mais)" + +#: C/evince.xml:688(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:689(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:691(para) +msgid "Zoom in" +msgstr "Amplia" + +#: C/evince.xml:695(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (sinal de menos)" + +#: C/evince.xml:696(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:698(para) +msgid "Zoom out" +msgstr "Reduz" + +#: C/evince.xml:701(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:702(para) +msgid "Reload the document" +msgstr "Recarrega o documento" + +#: C/evince.xml:706(keycap) C/evince.xml:731(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:707(para) +msgid "Go to the previous page" +msgstr "Vai para a pĆ”gina anterior" + +#: C/evince.xml:710(keycap) C/evince.xml:735(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:711(para) +msgid "Go to the next page" +msgstr "Vai para a prĆ³xima pĆ”gina" + +#: C/evince.xml:715(keycap) C/evince.xml:723(keycap) +msgid "Space" +msgstr "EspaƧo" + +#: C/evince.xml:716(keycap) C/evince.xml:723(keycap) C/evince.xml:725(keycap) +#: C/evince.xml:731(keycap) C/evince.xml:735(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:716(keycap) C/evince.xml:724(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:717(keycap) C/evince.xml:725(keycap) +msgid "Return" +msgstr "Enter" + +#: C/evince.xml:719(para) +msgid "Scroll forward" +msgstr "Rola para frente" + +#: C/evince.xml:727(para) +msgid "Scroll backward" +msgstr "Rola para trĆ”s" + +#: C/evince.xml:732(para) +msgid "Go a bunch of pages up" +msgstr "Vai para uma porĆ§Ć£o de pĆ”ginas acima" + +#: C/evince.xml:736(para) +msgid "Go a bunch of pages down" +msgstr "Vai para uma porĆ§Ć£o de pĆ”ginas abaixo" + +#: C/evince.xml:739(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:740(para) +msgid "Go to the first page" +msgstr "Vai para a primeira pĆ”gina" + +#: C/evince.xml:743(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:744(para) +msgid "Go to the last page" +msgstr "Vai para a Ćŗltima pĆ”gina" + +#: C/evince.xml:747(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:748(para) +msgid "Go to page by number or label" +msgstr "Vai para pĆ”gina por nĆŗmero ou rĆ³tulo" + +#: C/evince.xml:751(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:752(para) +msgid "Help" +msgstr "Ajuda" + +#: C/evince.xml:755(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:756(para) +msgid "Run document as presentation" +msgstr "Executar documento como apresentaĆ§Ć£o" + +#: C/evince.xml:759(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:760(para) +msgid "Show or hide the side pane" +msgstr "Mostrar ou ocultar o painel lateral" + +#: C/evince.xml:763(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:764(para) +msgid "Toggle fullscreen mode" +msgstr "Alternar modo de tela cheia" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Hugo DĆ³ria <hugodoria@gmail.com>, 2007.\n" +"Pedro de Medeiros <pedrovmm+l10n@gmail.com>, 2007.\n" +"Daniel S. Koda <danielskoda@gmail.com>, 2008." diff --git a/help/reference/Makefile.am b/help/reference/Makefile.am new file mode 100644 index 00000000..1cbc4308 --- /dev/null +++ b/help/reference/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = libdocument libview shell +-include $(top_srcdir)/git.mk diff --git a/help/reference/libdocument/Makefile.am b/help/reference/libdocument/Makefile.am new file mode 100644 index 00000000..54d57919 --- /dev/null +++ b/help/reference/libdocument/Makefile.am @@ -0,0 +1,132 @@ +# We require automake 1.10 for $(abs_builddir) +AUTOMAKE_OPTIONS = 1.10 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = libevdocument + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +DOC_MODULE_VERSION = $(EV_API_VERSION) + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR = ../../../libdocument + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=ev + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS = + +# Extra options to supply to gtkdoc-mkhtml +# Add the builddir to the HTML path so that version.xml is found +MKHTML_OPTIONS = --path="$(abs_builddir)" + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk-pixbuf \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gtk + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = \ + $(top_srcdir)/libdocument/*.h \ + $(top_builddir)/libdocument/*.h + +CFILE_GLOB = \ + $(top_srcdir)/libdocument/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +# EXTRA_HFILES = $(top_builddir)/evdocument/ev-version.h +EXTRA_HFILES = + +# Header files to ignore when scanning. Use base file name, no paths +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES = \ + config.h \ + ev-debug.h \ + ev-module.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = \ + version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/libdocument \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATEDATADIR=\"$(datadir)\" \ + -DEVINCE_UIDIR=\"$(pkgdatadir)\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEV_BACKENDSDIR=\"$(backenddir)\" \ + -DEVINCE_COMPILATION \ + $(AM_CFLAGS) \ + $(LIBDOCUMENT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +GTKDOC_LIBS = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(LIBDOCUMENT_LIBS) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += \ + version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +if ENABLE_GTK_DOC +#TESTS_ENVIRONMENT = cd $(srcsrc) && +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/help/reference/libdocument/libevdocument-docs.xml b/help/reference/libdocument/libevdocument-docs.xml new file mode 100644 index 00000000..8071e930 --- /dev/null +++ b/help/reference/libdocument/libevdocument-docs.xml @@ -0,0 +1,191 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY version SYSTEM "version.xml"> +]> +<book id="evince-document"> + <!-- + Copyright Ā© 2009, 2010 Christian Persch + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU General Public License, Version 2 + as published by the Free Software Foundation; or (at your option) any + later version. + + A copy of the license is included in the COPYING file. + --> + <bookinfo> + <title>Evince Document Library Reference Manual</title> + <releaseinfo> + For Evince version &version;. + The latest version of this documentation can be found on-line at the + <ulink role="online-location" url="http://library.mate.org/devel/libevdocument/index.html">MATE Library</ulink>. + </releaseinfo> + + <copyright> + <year>2007</year> + <year>2008</year> + <year>2009</year> + <holder>Nickolay V. Shmyrev</holder> + </copyright> + + <copyright> + <year>2008</year> + <year>2009</year> + <year>2010</year> + <holder>Carlos Garcia Campos</holder> + </copyright> + + <copyright> + <year>2009</year> + <year>2010</year> + <holder>Christian Persch</holder> + </copyright> + + <legalnotice> + <para> + Permission is granted to copy, distribute and/or modify this document + under the terms of the <citetitle>GNU General Public Licence</citetitle> + published by the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </legalnotice> + </bookinfo> + + <part id="document-interfaces"> + <title>Document Interfaces</title> + <partintro> + <para> + Provides support for writing Evince backends. + </para> + </partintro> + + <xi:include href="xml/ev-async-renderer.xml"/> + <xi:include href="xml/ev-document.xml"/> + <xi:include href="xml/ev-document-annotations.xml"/> + <xi:include href="xml/ev-document-attachments.xml"/> + <xi:include href="xml/ev-document-find.xml"/> + <xi:include href="xml/ev-document-fonts.xml"/> + <xi:include href="xml/ev-document-forms.xml"/> + <xi:include href="xml/ev-document-images.xml"/> + <xi:include href="xml/ev-document-info.xml"/> + <xi:include href="xml/ev-document-layers.xml"/> + <xi:include href="xml/ev-document-links.xml"/> + <xi:include href="xml/ev-document-misc.xml"/> + <xi:include href="xml/ev-document-print.xml"/> + <xi:include href="xml/ev-document-security.xml"/> + <xi:include href="xml/ev-document-thumbnails.xml"/> + <xi:include href="xml/ev-document-transition.xml"/> + <xi:include href="xml/ev-selection.xml"/> + <xi:include href="xml/ev-file-exporter.xml"/> + </part> + + <part id="document-data"> + <title>Document Data</title> + <partintro> + <para> + Helper objects related to documents like attachments, links and + images, etc. + </para> + </partintro> + + <xi:include href="xml/ev-annotation.xml"/> + <xi:include href="xml/ev-attachment.xml"/> + <xi:include href="xml/ev-form-field.xml"/> + <xi:include href="xml/ev-image.xml"/> + <xi:include href="xml/ev-layer.xml"/> + <xi:include href="xml/ev-link-action.xml"/> + <xi:include href="xml/ev-link-dest.xml"/> + <xi:include href="xml/ev-link.xml"/> + <xi:include href="xml/ev-mapping.xml"/> + <xi:include href="xml/ev-page.xml"/> + <xi:include href="xml/ev-render-context.xml"/> + <xi:include href="xml/ev-transition-effect.xml"/> + </part> + + <part id="document-helpers"> + <title>Helper Functions</title> + <partintro> + <para> + Helper functions common for backend implementations, and for libevdocument library users. + </para> + </partintro> + + <xi:include href="xml/ev-init.xml"/> + <xi:include href="xml/ev-version.xml"/> + <xi:include href="xml/ev-file-helpers.xml"/> + <xi:include href="xml/ev-document-factory.xml"/> + <xi:include href="xml/ev-backends-manager.xml"/> + </part> + + <chapter id="object-tree"> + <title>Object Hierarchy</title> + <xi:include href="xml/tree_index.sgml"/> + </chapter> + <index id="api-index-full"> + <title>API Index</title> + <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> + </index> + <!-- + <index id="api-index-deprecated" role="deprecated"> + <title>Index of deprecated symbols</title> + <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include> + </index> + --> + <!-- + <index id="api-index-2-30" role="2.30"> + <title>Index of new symbols in 2.30</title> + <xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include> + </index> + --> + + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + + <appendix id="licence"> + <title>Licence</title> + + <para> + This library is free software; you can redistribute it and/or + modify it under the terms of the <citetitle>GNU General Public + Licence</citetitle> as published by the Free Software Foundation; either + version 2 of the Licence, or (at your option) any later version. + </para> + + <para> + 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 + <citetitle>GNU General Public Licence</citetitle> for + more details. + </para> + + <para> + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </appendix> + +</book> diff --git a/help/reference/libdocument/libevdocument-overrides.txt b/help/reference/libdocument/libevdocument-overrides.txt new file mode 100644 index 00000000..e69de29b diff --git a/help/reference/libdocument/libevdocument-sections.txt b/help/reference/libdocument/libevdocument-sections.txt new file mode 100644 index 00000000..88d3db2e --- /dev/null +++ b/help/reference/libdocument/libevdocument-sections.txt @@ -0,0 +1,781 @@ +<SECTION> +<FILE>ev-layer</FILE> +<TITLE>EvLayer</TITLE> +EvLayer +EvLayerClass +EvLayerPrivate +ev_layer_new +ev_layer_get_id +ev_layer_is_parent +ev_layer_get_rb_group +<SUBSECTION Standard> +EV_LAYER +EV_IS_LAYER +EV_TYPE_LAYER +ev_layer_get_type +EV_LAYER_CLASS +EV_IS_LAYER_CLASS +EV_LAYER_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-thumbnails</FILE> +<TITLE>EvDocumentThumbnails</TITLE> +EV_DOCUMENT_THUMBNAILS_IFACE +EV_IS_DOCUMENT_THUMBNAILS_IFACE +EvDocumentThumbnails +EvDocumentThumbnailsIface +ev_document_thumbnails_get_thumbnail +ev_document_thumbnails_get_dimensions +<SUBSECTION Standard> +EV_DOCUMENT_THUMBNAILS +EV_IS_DOCUMENT_THUMBNAILS +EV_TYPE_DOCUMENT_THUMBNAILS +ev_document_thumbnails_get_type +EV_DOCUMENT_THUMBNAILS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-file-exporter</FILE> +<TITLE>EvFileExporter</TITLE> +EvFileExporterFormat +EvFileExporterCapabilities +EvFileExporterContext +EV_FILE_EXPORTER_IFACE +EV_IS_FILE_EXPORTER_IFACE +EvFileExporter +EvFileExporterIface +ev_file_exporter_begin +ev_file_exporter_begin_page +ev_file_exporter_do_page +ev_file_exporter_end_page +ev_file_exporter_end +ev_file_exporter_get_capabilities +<SUBSECTION Standard> +ev_file_exporter_format_get_type +EV_TYPE_FILE_EXPORTER_FORMAT +ev_file_exporter_capabilities_get_type +EV_TYPE_FILE_EXPORTER_CAPABILITIES +EV_FILE_EXPORTER +EV_IS_FILE_EXPORTER +EV_TYPE_FILE_EXPORTER +ev_file_exporter_get_type +EV_FILE_EXPORTER_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-forms</FILE> +<TITLE>EvDocumentForms</TITLE> +EV_DOCUMENT_FORMS_IFACE +EV_IS_DOCUMENT_FORMS_IFACE +EvDocumentForms +EvDocumentFormsIface +ev_document_forms_get_form_fields +ev_document_forms_form_field_text_get_text +ev_document_forms_form_field_text_set_text +ev_document_forms_form_field_button_get_state +ev_document_forms_form_field_button_set_state +ev_document_forms_form_field_choice_get_item +ev_document_forms_form_field_choice_get_n_items +ev_document_forms_form_field_choice_is_item_selected +ev_document_forms_form_field_choice_select_item +ev_document_forms_form_field_choice_toggle_item +ev_document_forms_form_field_choice_unselect_all +ev_document_forms_form_field_choice_set_text +ev_document_forms_form_field_choice_get_text +<SUBSECTION Standard> +ev_form_field_text_type_get_type +EV_TYPE_FORM_FIELD_TEXT_TYPE +ev_form_field_button_type_get_type +EV_TYPE_FORM_FIELD_BUTTON_TYPE +ev_form_field_choice_type_get_type +EV_TYPE_FORM_FIELD_CHOICE_TYPE +EV_DOCUMENT_FORMS +EV_IS_DOCUMENT_FORMS +EV_TYPE_DOCUMENT_FORMS +ev_document_forms_get_type +EV_DOCUMENT_FORMS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-print</FILE> +<TITLE>EvDocumentPrint</TITLE> +EV_DOCUMENT_PRINT_IFACE +EV_IS_DOCUMENT_PRINT_IFACE +EvDocumentPrint +EvDocumentPrintIface +ev_document_print_print_page +<SUBSECTION Standard> +EV_DOCUMENT_PRINT +EV_IS_DOCUMENT_PRINT +EV_TYPE_DOCUMENT_PRINT +ev_document_print_get_type +EV_DOCUMENT_PRINT_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-image</FILE> +<TITLE>EvImage</TITLE> +EvImage +EvImageClass +EvImagePrivate +ev_image_new +ev_image_new_from_pixbuf +ev_image_get_id +ev_image_get_page +ev_image_get_pixbuf +ev_image_save_tmp +ev_image_get_tmp_uri +<SUBSECTION Standard> +EV_IMAGE +EV_IS_IMAGE +EV_TYPE_IMAGE +ev_image_get_type +EV_IMAGE_CLASS +EV_IS_IMAGE_CLASS +EV_IMAGE_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-link</FILE> +EvLink +EvLinkClass +EvLinkPrivate +ev_link_new +ev_link_get_title +ev_link_get_action +ev_link_get_page +<SUBSECTION Standard> +ev_link_action_type_get_type +EV_TYPE_LINK_ACTION_TYPE +ev_link_dest_type_get_type +EV_TYPE_LINK_DEST_TYPE +EV_LINK +EV_IS_LINK +EV_TYPE_LINK +ev_link_get_type +EV_LINK_CLASS +EV_IS_LINK_CLASS +EV_LINK_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-layers</FILE> +<TITLE>EvDocumentLayers</TITLE> +EV_DOCUMENT_LAYERS_IFACE +EV_IS_DOCUMENT_LAYERS_IFACE +EvDocumentLayers +EvDocumentLayersIface +ev_document_layers_has_layers +ev_document_layers_get_layers +ev_document_layers_show_layer +ev_document_layers_hide_layer +ev_document_layers_layer_is_visible +<SUBSECTION Standard> +EV_DOCUMENT_LAYERS +EV_IS_DOCUMENT_LAYERS +EV_TYPE_DOCUMENT_LAYERS +ev_document_layers_get_type +EV_DOCUMENT_LAYERS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-links</FILE> +<TITLE>EvDocumentLinks</TITLE> +EV_DOCUMENT_LINKS_IFACE +EV_IS_DOCUMENT_LINKS_IFACE +EvDocumentLinks +EvDocumentLinksIface +ev_document_links_has_document_links +ev_document_links_get_links_model +ev_document_links_get_links +ev_document_links_find_link_dest +ev_document_links_get_dest_page +ev_document_links_get_dest_page_label +<SUBSECTION Standard> +EV_DOCUMENT_LINKS +EV_IS_DOCUMENT_LINKS +EV_TYPE_DOCUMENT_LINKS +ev_document_links_get_type +EV_DOCUMENT_LINKS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-attachment</FILE> +<TITLE>EvAttachment</TITLE> +EvAttachment +EvAttachmentClass +EvAttachmentPrivate +EV_ATTACHMENT_ERROR +ev_attachment_error_quark +ev_attachment_new +ev_attachment_get_name +ev_attachment_get_description +ev_attachment_get_modification_date +ev_attachment_get_creation_date +ev_attachment_get_mime_type +ev_attachment_save +ev_attachment_open +<SUBSECTION Standard> +EV_ATTACHMENT +EV_IS_ATTACHMENT +EV_TYPE_ATTACHMENT +ev_attachment_get_type +EV_ATTACHMENT_CLASS +EV_IS_ATTACHMENT_CLASS +EV_ATTACHMENT_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-page</FILE> +<TITLE>EvPage</TITLE> +EvPage +EvPageClass +EvBackendPage +EvBackendPageDestroyFunc +ev_page_new +<SUBSECTION Standard> +EV_PAGE +EV_IS_PAGE +EV_TYPE_PAGE +ev_page_get_type +EV_PAGE_CLASS +EV_IS_PAGE_CLASS +EV_PAGE_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-render-context</FILE> +<TITLE>EvRenderContext</TITLE> +EvRenderContext +EvRenderContextClass +ev_render_context_new +ev_render_context_set_page +ev_render_context_set_rotation +ev_render_context_set_scale +<SUBSECTION Standard> +EV_RENDER_CONTEXT +EV_IS_RENDER_CONTEXT +EV_TYPE_RENDER_CONTEXT +ev_render_context_get_type +EV_RENDER_CONTEXT_CLASS +</SECTION> + +<SECTION> +<FILE>ev-form-field</FILE> +<TITLE>EvFormField</TITLE> +EvFormField +EvFormFieldClass +EvFormFieldText +EvFormFieldTextClass +EvFormFieldButton +EvFormFieldButtonClass +EvFormFieldChoice +EvFormFieldChoiceClass +EvFormFieldSignature +EvFormFieldSignatureClass +EvFormFieldTextType +EvFormFieldButtonType +EvFormFieldChoiceType +ev_form_field_text_new +ev_form_field_button_new +ev_form_field_choice_new +ev_form_field_signature_new +<SUBSECTION Standard> +EV_FORM_FIELD +EV_IS_FORM_FIELD +EV_TYPE_FORM_FIELD +ev_form_field_get_type +EV_FORM_FIELD_CLASS +EV_IS_FORM_FIELD_CLASS +EV_FORM_FIELD_GET_CLASS +EV_TYPE_FORM_FIELD_TEXT +ev_form_field_text_get_type +EV_FORM_FIELD_TEXT +EV_FORM_FIELD_TEXT_CLASS +EV_IS_FORM_FIELD_TEXT +EV_IS_FORM_FIELD_TEXT_CLASS +EV_FORM_FIELD_TEXT_GET_CLASS +EV_TYPE_FORM_FIELD_BUTTON +ev_form_field_button_get_type +EV_FORM_FIELD_BUTTON +EV_FORM_FIELD_BUTTON_CLASS +EV_IS_FORM_FIELD_BUTTON +EV_IS_FORM_FIELD_BUTTON_CLASS +EV_FORM_FIELD_BUTTON_GET_CLASS +EV_TYPE_FORM_FIELD_CHOICE +ev_form_field_choice_get_type +EV_FORM_FIELD_CHOICE +EV_FORM_FIELD_CHOICE_CLASS +EV_IS_FORM_FIELD_CHOICE +EV_IS_FORM_FIELD_CHOICE_CLASS +EV_FORM_FIELD_CHOICE_GET_CLASS +EV_TYPE_FORM_FIELD_SIGNATURE +ev_form_field_signature_get_type +EV_FORM_FIELD_SIGNATURE +EV_FORM_FIELD_SIGNATURE_CLASS +EV_IS_FORM_FIELD_SIGNATURE +EV_IS_FORM_FIELD_SIGNATURE_CLASS +EV_FORM_FIELD_SIGNATURE_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-find</FILE> +<TITLE>EvDocumentFind</TITLE> +EV_DOCUMENT_FIND_IFACE +EV_IS_DOCUMENT_FIND_IFACE +EvDocumentFind +EvDocumentFindIface +ev_document_find_find_text +<SUBSECTION Standard> +EV_DOCUMENT_FIND +EV_IS_DOCUMENT_FIND +EV_TYPE_DOCUMENT_FIND +ev_document_find_get_type +EV_DOCUMENT_FIND_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document</FILE> +<TITLE>EvDocument</TITLE> +EvDocument +EvDocumentClass +EvDocumentPrivate +EV_DOCUMENT_ERROR +EV_DOC_MUTEX_LOCK +EV_DOC_MUTEX_UNLOCK +EvDocumentError +EvPoint +EvRectangle +EvDocumentBackendInfo +ev_document_error_quark +ev_document_get_doc_mutex +ev_document_doc_mutex_lock +ev_document_doc_mutex_unlock +ev_document_doc_mutex_trylock +ev_document_get_fc_mutex +ev_document_fc_mutex_lock +ev_document_fc_mutex_unlock +ev_document_fc_mutex_trylock +ev_document_get_info +ev_document_get_backend_info +ev_document_load +ev_document_save +ev_document_get_n_pages +ev_document_get_page +ev_document_get_page_size +ev_document_get_page_label +ev_document_render +ev_document_get_uri +ev_document_get_title +ev_document_is_page_size_uniform +ev_document_get_max_page_size +ev_document_check_dimensions +ev_document_get_max_label_len +ev_document_has_text_page_labels +ev_document_find_page_by_label +ev_rect_cmp +EV_TYPE_RECTANGLE +ev_rectangle_get_type +ev_rectangle_new +ev_rectangle_copy +ev_rectangle_free +EV_BACKEND_IMPLEMENT_INTERFACE +EV_BACKEND_REGISTER_WITH_CODE +EV_BACKEND_REGISTER +EV_DEFINE_BOXED_TYPE +EV_DEFINE_INTERFACE +<SUBSECTION Standard> +EV_DOCUMENT +EV_IS_DOCUMENT +EV_TYPE_DOCUMENT +ev_document_get_type +EV_DOCUMENT_CLASS +EV_IS_DOCUMENT_CLASS +EV_DOCUMENT_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-link-dest</FILE> +EvLinkDest +EvLinkDestClass +EvLinkDestPrivate +EvLinkDestType +ev_link_dest_get_dest_type +ev_link_dest_get_page +ev_link_dest_get_top +ev_link_dest_get_left +ev_link_dest_get_bottom +ev_link_dest_get_right +ev_link_dest_get_zoom +ev_link_dest_get_named_dest +ev_link_dest_get_page_label +ev_link_dest_new_page +ev_link_dest_new_xyz +ev_link_dest_new_fit +ev_link_dest_new_fith +ev_link_dest_new_fitv +ev_link_dest_new_fitr +ev_link_dest_new_named +ev_link_dest_new_page_label +<SUBSECTION Standard> +EV_LINK_DEST +EV_IS_LINK_DEST +EV_TYPE_LINK_DEST +ev_link_dest_get_type +EV_LINK_DEST_CLASS +EV_IS_LINK_DEST_CLASS +EV_LINK_DEST_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-link-action</FILE> +EvLinkAction +EvLinkActionClass +EvLinkActionPrivate +EvLinkActionType +ev_link_action_get_action_type +ev_link_action_get_dest +ev_link_action_get_uri +ev_link_action_get_filename +ev_link_action_get_params +ev_link_action_get_name +ev_link_action_new_dest +ev_link_action_new_remote +ev_link_action_new_external_uri +ev_link_action_new_launch +ev_link_action_new_named +<SUBSECTION Standard> +EV_LINK_ACTION +EV_IS_LINK_ACTION +EV_TYPE_LINK_ACTION +ev_link_action_get_type +EV_LINK_ACTION_CLASS +EV_IS_LINK_ACTION_CLASS +EV_LINK_ACTION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-images</FILE> +<TITLE>EvDocumentImages</TITLE> +EV_DOCUMENT_IMAGES_IFACE +EV_IS_DOCUMENT_IMAGES_IFACE +EvDocumentImages +EvDocumentImagesIface +ev_document_images_get_image_mapping +ev_document_images_get_image +<SUBSECTION Standard> +EV_DOCUMENT_IMAGES +EV_IS_DOCUMENT_IMAGES +EV_TYPE_DOCUMENT_IMAGES +ev_document_images_get_type +EV_DOCUMENT_IMAGES_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-async-renderer</FILE> +<TITLE>EvAsyncRenderer</TITLE> +EV_ASYNC_RENDERER_IFACE +EV_IS_ASYNC_RENDERER_IFACE +EvAsyncRenderer +EvAsyncRendererIface +ev_async_renderer_render_pixbuf +<SUBSECTION Standard> +EV_ASYNC_RENDERER +EV_IS_ASYNC_RENDERER +EV_TYPE_ASYNC_RENDERER +ev_async_renderer_get_type +EV_ASYNC_RENDERER_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-selection</FILE> +<TITLE>EvSelection</TITLE> +EV_SELECTION_IFACE +EV_IS_SELECTION_IFACE +EvSelectionStyle +EvSelection +EvSelectionIface +ev_selection_render_selection +ev_selection_get_selected_text +ev_selection_get_selection_map +ev_selection_get_selection_region +<SUBSECTION Standard> +ev_selection_style_get_type +EV_TYPE_SELECTION_STYLE +EV_SELECTION +EV_IS_SELECTION +EV_TYPE_SELECTION +ev_selection_get_type +EV_SELECTION_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-attachments</FILE> +<TITLE>EvDocumentAttachments</TITLE> +EV_DOCUMENT_ATTACHMENTS_IFACE +EV_IS_DOCUMENT_ATTACHMENTS_IFACE +EvDocumentAttachments +EvDocumentAttachmentsIface +ev_document_attachments_has_attachments +ev_document_attachments_get_attachments +<SUBSECTION Standard> +EV_DOCUMENT_ATTACHMENTS +EV_IS_DOCUMENT_ATTACHMENTS +EV_TYPE_DOCUMENT_ATTACHMENTS +ev_document_attachments_get_type +EV_DOCUMENT_ATTACHMENTS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-security</FILE> +<TITLE>EvDocumentSecurity</TITLE> +EV_DOCUMENT_SECURITY_IFACE +EV_IS_DOCUMENT_SECURITY_IFACE +EvDocumentSecurity +EvDocumentSecurityIface +ev_document_security_has_document_security +ev_document_security_set_password +<SUBSECTION Standard> +EV_DOCUMENT_SECURITY +EV_IS_DOCUMENT_SECURITY +EV_TYPE_DOCUMENT_SECURITY +ev_document_security_get_type +EV_DOCUMENT_SECURITY_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-annotation</FILE> +<TITLE>EvAnnotation</TITLE> +EvAnnotation +EvAnnotationClass +EvAnnotationMarkup +EvAnnotationMarkupIface +EvAnnotationText +EvAnnotationTextClass +EvAnnotationAttachment +EvAnnotationAttachmentClass +ev_annotation_markup_get_label +ev_annotation_markup_set_label +ev_annotation_markup_get_opacity +ev_annotation_markup_set_opacity +ev_annotation_markup_has_popup +ev_annotation_markup_get_rectangle +ev_annotation_markup_get_is_open +ev_annotation_markup_set_is_open +ev_annotation_text_new +ev_annotation_attachment_new +<SUBSECTION Standard> +EV_ANNOTATION +EV_IS_ANNOTATION +EV_TYPE_ANNOTATION +ev_annotation_get_type +EV_ANNOTATION_CLASS +EV_IS_ANNOTATION_CLASS +EV_ANNOTATION_GET_CLASS +EV_TYPE_ANNOTATION_MARKUP +ev_annotation_markup_get_type +EV_ANNOTATION_MARKUP +EV_ANNOTATION_MARKUP_IFACE +EV_IS_ANNOTATION_MARKUP +EV_IS_ANNOTATION_MARKUP_IFACE +EV_ANNOTATION_MARKUP_GET_IFACE +EV_TYPE_ANNOTATION_TEXT +ev_annotation_text_get_type +EV_ANNOTATION_TEXT +EV_ANNOTATION_TEXT_CLASS +EV_IS_ANNOTATION_TEXT +EV_IS_ANNOTATION_TEXT_CLASS +EV_ANNOTATION_TEXT_GET_CLASS +EV_TYPE_ANNOTATION_ATTACHMENT +ev_annotation_attachment_get_type +EV_ANNOTATION_ATTACHMENT +EV_ANNOTATION_ATTACHMENT_CLASS +EV_IS_ANNOTATION_ATTACHMENT +EV_IS_ANNOTATION_ATTACHMENT_CLASS +EV_ANNOTATION_ATTACHMENT_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-transition</FILE> +<TITLE>EvDocumentTransition</TITLE> +EV_DOCUMENT_TRANSITION_IFACE +EV_IS_DOCUMENT_TRANSITION_IFACE +EvDocumentTransition +EvDocumentTransitionIface +ev_document_transition_get_page_duration +ev_document_transition_get_effect +<SUBSECTION Standard> +EV_DOCUMENT_TRANSITION +EV_IS_DOCUMENT_TRANSITION +EV_TYPE_DOCUMENT_TRANSITION +ev_document_transition_get_type +EV_DOCUMENT_TRANSITION_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-transition-effect</FILE> +EvTransitionEffectType +EvTransitionEffectAlignment +EvTransitionEffectDirection +EvTransitionEffect +EvTransitionEffectClass +ev_transition_effect_new +<SUBSECTION Standard> +ev_transition_effect_type_get_type +EV_TYPE_TRANSITION_EFFECT_TYPE +ev_transition_effect_alignment_get_type +EV_TYPE_TRANSITION_EFFECT_ALIGNMENT +ev_transition_effect_direction_get_type +EV_TYPE_TRANSITION_EFFECT_DIRECTION +EV_TRANSITION_EFFECT +EV_IS_TRANSITION_EFFECT +EV_TYPE_TRANSITION_EFFECT +ev_transition_effect_get_type +EV_TRANSITION_EFFECT_CLASS +EV_IS_TRANSITION_EFFECT_CLASS +EV_TRANSITION_EFFECT_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-document-annotations</FILE> +<TITLE>EvDocumentAnnotations</TITLE> +EV_DOCUMENT_ANNOTATIONS_IFACE +EV_IS_DOCUMENT_ANNOTATIONS_IFACE +EvDocumentAnnotations +EvDocumentAnnotationsIface +ev_document_annotations_get_annotations +ev_document_annotations_annotation_set_contents +<SUBSECTION Standard> +EV_DOCUMENT_ANNOTATIONS +EV_IS_DOCUMENT_ANNOTATIONS +EV_TYPE_DOCUMENT_ANNOTATIONS +ev_document_annotations_get_type +EV_DOCUMENT_ANNOTATIONS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-fonts</FILE> +<TITLE>EvDocumentFonts</TITLE> +EV_DOCUMENT_FONTS_IFACE +EV_IS_DOCUMENT_FONTS_IFACE +EvDocumentFonts +EvDocumentFontsIface +ev_document_fonts_scan +ev_document_fonts_get_progress +ev_document_fonts_fill_model +<SUBSECTION Standard> +EV_DOCUMENT_FONTS +EV_IS_DOCUMENT_FONTS +EV_TYPE_DOCUMENT_FONTS +ev_document_fonts_get_type +EV_DOCUMENT_FONTS_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-document-factory</FILE> +ev_document_factory_get_document +ev_document_factory_add_filters +</SECTION> + +<SECTION> +<FILE>ev-init</FILE> +ev_init +ev_shutdown +</SECTION> + +<SECTION> +<FILE>ev-mapping</FILE> +EvMapping +ev_mapping_list_find +ev_mapping_list_find_custom +ev_mapping_list_get_data +ev_mapping_list_free +</SECTION> + +<SECTION> +<FILE>ev-backends-manager</FILE> +EvTypeInfo +ev_backends_manager_get_document +ev_backends_manager_get_document_module_name +ev_backends_manager_get_document_type_info +ev_backends_manager_get_all_types_info +</SECTION> + +<SECTION> +<FILE>ev-file-helpers</FILE> +EvCompressionType +ev_mkstemp +ev_mkstemp_file +ev_mkdtemp +ev_tmp_filename_unlink +ev_tmp_file_unlink +ev_tmp_uri_unlink +ev_xfer_uri_simple +ev_file_get_mime_type +ev_file_uncompress +ev_file_compress +<SUBSECTION Standard> +ev_compression_type_get_type +EV_TYPE_COMPRESSION_TYPE +</SECTION> + +<SECTION> +<FILE>ev-version</FILE> +<TITLE>Version checks</TITLE> +EV_MAJOR_VERSION +EV_MINOR_VERSION +EV_MICRO_VERSION +EV_CHECK_VERSION +</SECTION> + +<SECTION> +<FILE>ev-document-misc</FILE> +<TITLE>EvDocumentMisc</TITLE> +ev_document_misc_get_thumbnail_frame +ev_document_misc_get_page_border_size +ev_document_misc_paint_one_page +ev_document_misc_surface_from_pixbuf +ev_document_misc_pixbuf_from_surface +ev_document_misc_surface_rotate_and_scale +ev_document_misc_invert_surface +ev_document_misc_invert_pixbuf +</SECTION> + +<SECTION> +<FILE>ev-document-info</FILE> +<TITLE>EvDocumentInfo</TITLE> +EvDocumentInfo +EvDocumentLicense +EvDocumentLayout +EvDocumentMode +EvDocumentUIHints +PERMISSIONS_FULL +EvDocumentPermissions +EvDocumentInfoFields +ev_document_info_copy +ev_document_info_free +ev_document_license_new +ev_document_license_copy +ev_document_license_free +ev_document_license_get_text +ev_document_license_get_uri +ev_document_license_get_web_statement +ev_document_error_get_type +<SUBSECTION Standard> +EV_TYPE_DOCUMENT_INFO +ev_document_info_get_type +EV_TYPE_DOCUMENT_LICENSE +ev_document_license_get_type +EV_TYPE_DOCUMENT_ERROR +ev_document_layout_get_type +EV_TYPE_DOCUMENT_LAYOUT +ev_document_mode_get_type +EV_TYPE_DOCUMENT_MODE +ev_document_ui_hints_get_type +EV_TYPE_DOCUMENT_UI_HINTS +ev_document_permissions_get_type +EV_TYPE_DOCUMENT_PERMISSIONS +ev_document_info_fields_get_type +EV_TYPE_DOCUMENT_INFO_FIELDS +</SECTION> diff --git a/help/reference/libdocument/libevdocument.types b/help/reference/libdocument/libevdocument.types new file mode 100644 index 00000000..78d30202 --- /dev/null +++ b/help/reference/libdocument/libevdocument.types @@ -0,0 +1,55 @@ +ev_annotation_attachment_get_type +ev_annotation_get_type +ev_annotation_markup_get_type +ev_annotation_text_get_type +ev_async_renderer_get_type +ev_attachment_get_type +ev_compression_type_get_type +ev_document_annotations_get_type +ev_document_attachments_get_type +ev_document_error_get_type +ev_document_find_get_type +ev_document_fonts_get_type +ev_document_forms_get_type +ev_document_get_type +ev_document_images_get_type +ev_document_info_fields_get_type +ev_document_info_get_type +ev_document_layers_get_type +ev_document_layout_get_type +ev_document_license_get_type +ev_document_links_get_type +ev_document_mode_get_type +ev_document_permissions_get_type +ev_document_print_get_type +ev_document_security_get_type +ev_document_thumbnails_get_type +ev_document_transition_get_type +ev_document_ui_hints_get_type +ev_file_exporter_capabilities_get_type +ev_file_exporter_format_get_type +ev_file_exporter_get_type +ev_form_field_button_get_type +ev_form_field_button_type_get_type +ev_form_field_choice_get_type +ev_form_field_choice_type_get_type +ev_form_field_get_type +ev_form_field_signature_get_type +ev_form_field_text_get_type +ev_form_field_text_type_get_type +ev_image_get_type +ev_layer_get_type +ev_link_action_get_type +ev_link_action_type_get_type +ev_link_dest_get_type +ev_link_dest_type_get_type +ev_link_get_type +ev_page_get_type +ev_rectangle_get_type +ev_render_context_get_type +ev_selection_get_type +ev_selection_style_get_type +ev_transition_effect_alignment_get_type +ev_transition_effect_direction_get_type +ev_transition_effect_get_type +ev_transition_effect_type_get_type diff --git a/help/reference/libdocument/version.xml.in b/help/reference/libdocument/version.xml.in new file mode 100644 index 00000000..27323dad --- /dev/null +++ b/help/reference/libdocument/version.xml.in @@ -0,0 +1 @@ +@VERSION@ \ No newline at end of file diff --git a/help/reference/libview/Makefile.am b/help/reference/libview/Makefile.am new file mode 100644 index 00000000..d00a8be1 --- /dev/null +++ b/help/reference/libview/Makefile.am @@ -0,0 +1,139 @@ +# We require automake 1.10 for $(abs_builddir) +AUTOMAKE_OPTIONS = 1.10 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = libevview + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +DOC_MODULE_VERSION = $(EV_API_VERSION) + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# viewing the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR = ../../../libview + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=ev + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS = + +# Extra options to supply to gtkdoc-mkhtml +# Add the builddir to the HTML path so that version.xml is found +MKHTML_OPTIONS = --path="$(abs_builddir)" + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk-pixbuf \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gtk + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = \ + $(top_srcdir)/libview/*.h \ + $(top_builddir)/libview/*.h + +CFILE_GLOB = \ + $(top_srcdir)/libview/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +# EXTRA_HFILES = $(top_builddir)/evview/ev-version.h +EXTRA_HFILES = + +# Header files to ignore when scanning. Use base file name, no paths +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES = \ + config.h \ + ev-pixbuf-cache.h \ + ev-timeline.h \ + ev-transition-animation.h \ + ev-view-accessible.h \ + ev-view-marshal.h \ + ev-view-private.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = \ + version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/libview \ + -I$(top_srcdir)/libdocument \ + -I$(top_builddir)/libdocument \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATEDATADIR=\"$(datadir)\" \ + -DEVINCE_UIDIR=\"$(pkgdatadir)\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEV_BACKENDSDIR=\"$(backenddir)\" \ + -DEVINCE_COMPILATION \ + $(AM_CFLAGS) \ + $(LIBVIEW_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +GTKDOC_LIBS = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(top_builddir)/libview/libevview.la \ + $(LIBDOCUMENT_LIBS) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += \ + version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +if ENABLE_GTK_DOC +#TESTS_ENVIRONMENT = cd $(srcsrc) && +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/help/reference/libview/libevview-docs.xml b/help/reference/libview/libevview-docs.xml new file mode 100644 index 00000000..8bed6139 --- /dev/null +++ b/help/reference/libview/libevview-docs.xml @@ -0,0 +1,145 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY version SYSTEM "version.xml"> +]> +<book id="evince-view"> + <!-- + Copyright Ā© 2009, 2010 Christian Persch + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU General Public License, Version 2 + as published by the Free Software Foundation; or (at your option) any + later version. + + A copy of the license is included in the COPYING file. + --> + <bookinfo> + <title>Evince View Library Reference Manual</title> + <releaseinfo> + For Evince version &version;. + The latest version of this documentation can be found on-line at the + <ulink role="online-location" url="http://library.mate.org/devel/libevview/index.html">MATE Library</ulink>. + </releaseinfo> + + <copyright> + <year>2007</year> + <year>2008</year> + <year>2009</year> + <holder>Nickolay V. Shmyrev</holder> + </copyright> + + <copyright> + <year>2008</year> + <year>2009</year> + <year>2010</year> + <holder>Carlos Garcia Campos</holder> + </copyright> + + <copyright> + <year>2009</year> + <year>2010</year> + <holder>Christian Persch</holder> + </copyright> + + <legalnotice> + <para> + Permission is granted to copy, distribute and/or modify this document + under the terms of the <citetitle>GNU General Public Licence</citetitle> + published by the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </legalnotice> + </bookinfo> + + <part id="view-view"> + <title>Evince View</title> + <partintro> + <para> + </para> + </partintro> + + <xi:include href="xml/ev-annotation-window.xml"/> + <xi:include href="xml/ev-view.xml"/> + <xi:include href="xml/ev-page-cache.xml"/> + <xi:include href="xml/ev-print-operation.xml"/> + <xi:include href="xml/ev-view-presentation.xml"/> + <xi:include href="xml/ev-jobs.xml"/> + <xi:include href="xml/ev-document-model.xml"/> + <xi:include href="xml/ev-stock-icons.xml"/> + <xi:include href="xml/ev-view-type-builtins.xml"/> + <xi:include href="xml/ev-job-scheduler.xml"/> + <xi:include href="xml/ev-view-cursor.xml"/> + </part> + + <chapter id="object-tree"> + <title>Object Hierarchy</title> + <xi:include href="xml/tree_index.sgml"/> + </chapter> + <index id="api-index-full"> + <title>API Index</title> + <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> + </index> + <!-- + <index id="api-index-deprecated" role="deprecated"> + <title>Index of deprecated symbols</title> + <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include> + </index> + --> + <!-- + <index id="api-index-2-30" role="2.30"> + <title>Index of new symbols in 2.30</title> + <xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include> + </index> + --> + + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + + <appendix id="licence"> + <title>Licence</title> + + <para> + This library is free software; you can redistribute it and/or + modify it under the terms of the <citetitle>GNU General Public + Licence</citetitle> as published by the Free Software Foundation; either + version 2 of the Licence, or (at your option) any later version. + </para> + + <para> + 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 + <citetitle>GNU General Public Licence</citetitle> for + more details. + </para> + + <para> + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </appendix> + +</book> diff --git a/help/reference/libview/libevview-overrides.txt b/help/reference/libview/libevview-overrides.txt new file mode 100644 index 00000000..e69de29b diff --git a/help/reference/libview/libevview-sections.txt b/help/reference/libview/libevview-sections.txt new file mode 100644 index 00000000..fe50b2eb --- /dev/null +++ b/help/reference/libview/libevview-sections.txt @@ -0,0 +1,338 @@ +<SECTION> +<FILE>ev-annotation-window</FILE> +EvAnnotationWindow +EvAnnotationWindowClass +ev_annotation_window_new +ev_annotation_window_get_annotation +ev_annotation_window_set_annotation +ev_annotation_window_is_open +ev_annotation_window_get_rectangle +ev_annotation_window_set_rectangle +ev_annotation_window_grab_focus +ev_annotation_window_ungrab_focus +<SUBSECTION Standard> +EV_ANNOTATION_WINDOW +EV_IS_ANNOTATION_WINDOW +EV_TYPE_ANNOTATION_WINDOW +ev_annotation_window_get_type +EV_ANNOTATION_WINDOW_CLASS +EV_IS_ANNOTATION_WINDOW_CLASS +EV_ANNOTATION_WINDOW_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-view</FILE> +EvView +EvViewClass +EvViewSelectionMode +ev_view_new +ev_view_set_model +ev_view_set_loading +ev_view_reload +ev_view_copy +ev_view_copy_link_address +ev_view_select_all +ev_view_get_has_selection +ev_view_set_presentation +ev_view_get_presentation +ev_view_can_zoom_in +ev_view_zoom_in +ev_view_can_zoom_out +ev_view_zoom_out +ev_view_find_next +ev_view_find_previous +ev_view_find_search_changed +ev_view_find_set_highlight_search +ev_view_find_changed +ev_view_find_cancel +ev_view_hide_cursor +ev_view_show_cursor +ev_view_scroll +ev_view_handle_link +ev_view_next_page +ev_view_previous_page +ev_view_autoscroll_start +ev_view_autoscroll_stop +<SUBSECTION Standard> +EV_VIEW +EV_IS_VIEW +EV_TYPE_VIEW +ev_view_get_type +</SECTION> + +<SECTION> +<FILE>ev-page-cache</FILE> +EvPageCache +EvPageCacheClass +ev_page_cache_new +ev_page_cache_set_page_range +ev_page_cache_get_flags +ev_page_cache_set_flags +ev_page_cache_get_link_mapping +ev_page_cache_get_image_mapping +ev_page_cache_get_form_field_mapping +ev_page_cache_get_annot_mapping +ev_page_cache_get_text_mapping +<SUBSECTION Standard> +EV_PAGE_CACHE +EV_IS_PAGE_CACHE +EV_TYPE_PAGE_CACHE +ev_page_cache_get_type +</SECTION> + +<SECTION> +<FILE>ev-print-operation</FILE> +EvPrintOperation +EvPrintOperationClass +ev_print_operation_exists_for_document +ev_print_operation_new +ev_print_operation_set_current_page +ev_print_operation_set_print_settings +ev_print_operation_get_print_settings +ev_print_operation_set_default_page_setup +ev_print_operation_get_default_page_setup +ev_print_operation_set_job_name +ev_print_operation_get_job_name +ev_print_operation_run +ev_print_operation_cancel +ev_print_operation_get_error +ev_print_operation_set_embed_page_setup +ev_print_operation_get_embed_page_setup +ev_print_operation_get_status +ev_print_operation_get_progress +<SUBSECTION Standard> +EV_PRINT_OPERATION +EV_IS_PRINT_OPERATION +EV_TYPE_PRINT_OPERATION +ev_print_operation_get_type +EV_PRINT_OPERATION_CLASS +EV_PRINT_OPERATION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-view-presentation</FILE> +EvViewPresentation +EvViewPresentationClass +ev_view_presentation_new +ev_view_presentation_get_current_page +<SUBSECTION Standard> +EV_VIEW_PRESENTATION +EV_IS_VIEW_PRESENTATION +EV_TYPE_VIEW_PRESENTATION +ev_view_presentation_get_type +</SECTION> + +<SECTION> +<FILE>ev-jobs</FILE> +<TITLE>EvJob</TITLE> +EvJob +EvJobClass +EvJobRender +EvJobRenderClass +EvJobPageData +EvJobPageDataClass +EvJobThumbnail +EvJobThumbnailClass +EvJobLinks +EvJobLinksClass +EvJobAttachments +EvJobAttachmentsClass +EvJobFonts +EvJobFontsClass +EvJobLoad +EvJobLoadClass +EvJobSave +EvJobSaveClass +EvJobFind +EvJobFindClass +EvJobLayers +EvJobLayersClass +EvJobExport +EvJobExportClass +EvJobPrint +EvJobPrintClass +EvJobRunMode +EvJobPageDataFlags +ev_job_run +ev_job_cancel +ev_job_failed +ev_job_failed_from_error +ev_job_succeeded +ev_job_is_finished +ev_job_is_failed +ev_job_get_run_mode +ev_job_set_run_mode +ev_job_links_new +ev_job_attachments_new +ev_job_export_new +ev_job_export_set_page +ev_job_render_new +ev_job_render_set_selection_info +ev_job_page_data_new +ev_job_thumbnail_new +ev_job_fonts_new +ev_job_load_new +ev_job_load_set_uri +ev_job_load_set_password +ev_job_save_new +ev_job_find_new +ev_job_find_get_n_results +ev_job_find_get_progress +ev_job_find_has_results +ev_job_find_get_results +ev_job_layers_new +ev_job_print_new +ev_job_print_set_page +ev_job_print_set_cairo +<SUBSECTION Standard> +ev_job_run_mode_get_type +EV_TYPE_JOB_RUN_MODE +ev_job_page_data_flags_get_type +EV_TYPE_JOB_PAGE_DATA_FLAGS +ev_job_priority_get_type +EV_TYPE_JOB_PRIORITY +EV_JOB +EV_IS_JOB +EV_TYPE_JOB +ev_job_get_type +EV_JOB_CLASS +EV_JOB_GET_CLASS +EV_TYPE_JOB_LINKS +ev_job_links_get_type +EV_JOB_LINKS +EV_JOB_LINKS_CLASS +EV_IS_JOB_LINKS +EV_TYPE_JOB_ATTACHMENTS +ev_job_attachments_get_type +EV_JOB_ATTACHMENTS +EV_JOB_ATTACHMENTS_CLASS +EV_IS_JOB_ATTACHMENTS +EV_TYPE_JOB_RENDER +ev_job_render_get_type +EV_JOB_RENDER +EV_JOB_RENDER_CLASS +EV_IS_JOB_RENDER +EV_TYPE_JOB_PAGE_DATA +ev_job_page_data_get_type +EV_JOB_PAGE_DATA +EV_JOB_PAGE_DATA_CLASS +EV_IS_JOB_PAGE_DATA +EV_TYPE_JOB_THUMBNAIL +ev_job_thumbnail_get_type +EV_JOB_THUMBNAIL +EV_JOB_THUMBNAIL_CLASS +EV_IS_JOB_THUMBNAIL +EV_TYPE_JOB_FONTS +ev_job_fonts_get_type +EV_JOB_FONTS +EV_JOB_FONTS_CLASS +EV_IS_JOB_FONTS +EV_TYPE_JOB_LOAD +ev_job_load_get_type +EV_JOB_LOAD +EV_JOB_LOAD_CLASS +EV_IS_JOB_LOAD +EV_TYPE_JOB_SAVE +ev_job_save_get_type +EV_JOB_SAVE +EV_JOB_SAVE_CLASS +EV_IS_JOB_SAVE +EV_TYPE_JOB_FIND +ev_job_find_get_type +EV_JOB_FIND +EV_JOB_FIND_CLASS +EV_IS_JOB_FIND +EV_TYPE_JOB_LAYERS +ev_job_layers_get_type +EV_JOB_LAYERS +EV_JOB_LAYERS_CLASS +EV_IS_JOB_LAYERS +EV_TYPE_JOB_EXPORT +ev_job_export_get_type +EV_JOB_EXPORT +EV_JOB_EXPORT_CLASS +EV_IS_JOB_EXPORT +EV_TYPE_JOB_PRINT +ev_job_print_get_type +EV_JOB_PRINT +EV_JOB_PRINT_CLASS +EV_IS_JOB_PRINT +</SECTION> + +<SECTION> +<FILE>ev-document-model</FILE> +EvSizingMode +EvDocumentModel +EvDocumentModelClass +ev_document_model_new +ev_document_model_new_with_document +ev_document_model_set_document +ev_document_model_get_document +ev_document_model_set_page +ev_document_model_set_page_by_label +ev_document_model_get_page +ev_document_model_set_scale +ev_document_model_get_scale +ev_document_model_set_max_scale +ev_document_model_get_max_scale +ev_document_model_set_min_scale +ev_document_model_get_min_scale +ev_document_model_set_sizing_mode +ev_document_model_get_sizing_mode +ev_document_model_set_rotation +ev_document_model_get_rotation +ev_document_model_set_inverted_colors +ev_document_model_get_inverted_colors +ev_document_model_set_continuous +ev_document_model_get_continuous +ev_document_model_set_dual_page +ev_document_model_get_dual_page +ev_document_model_set_fullscreen +ev_document_model_get_fullscreen +<SUBSECTION Standard> +ev_sizing_mode_get_type +EV_TYPE_SIZING_MODE +EV_DOCUMENT_MODEL +EV_IS_DOCUMENT_MODEL +EV_TYPE_DOCUMENT_MODEL +ev_document_model_get_type +</SECTION> + +<SECTION> +<FILE>ev-stock-icons</FILE> +EV_STOCK_ZOOM +EV_STOCK_ZOOM_PAGE +EV_STOCK_ZOOM_WIDTH +EV_STOCK_VIEW_DUAL +EV_STOCK_VIEW_CONTINUOUS +EV_STOCK_ROTATE_LEFT +EV_STOCK_ROTATE_RIGHT +EV_STOCK_RUN_PRESENTATION +EV_STOCK_VISIBLE +EV_STOCK_RESIZE_SE +EV_STOCK_RESIZE_SW +EV_STOCK_CLOSE +EV_STOCK_INVERTED_COLORS +ev_stock_icons_init +ev_stock_icons_shutdown +ev_stock_icons_set_screen +</SECTION> + +<SECTION> +<FILE>ev-view-type-builtins</FILE> +ev_view_selection_mode_get_type +EV_TYPE_VIEW_SELECTION_MODE +</SECTION> + +<SECTION> +<FILE>ev-job-scheduler</FILE> +EvJobPriority +ev_job_scheduler_push_job +ev_job_scheduler_update_job +</SECTION> + +<SECTION> +<FILE>ev-view-cursor</FILE> +EvViewCursor +ev_view_cursor_new +</SECTION> diff --git a/help/reference/libview/libevview.types b/help/reference/libview/libevview.types new file mode 100644 index 00000000..668b715a --- /dev/null +++ b/help/reference/libview/libevview.types @@ -0,0 +1,29 @@ +#include <evince-view.h> +#include "ev-annotation-window.h" +#include "ev-page-cache.h" +#include "ev-view-presentation.h" + +ev_annotation_window_get_type +ev_document_model_get_type +ev_job_attachments_get_type +ev_job_export_get_type +ev_job_find_get_type +ev_job_fonts_get_type +ev_job_get_type +ev_job_layers_get_type +ev_job_links_get_type +ev_job_load_get_type +ev_job_page_data_flags_get_type +ev_job_page_data_get_type +ev_job_print_get_type +ev_job_priority_get_type +ev_job_render_get_type +ev_job_run_mode_get_type +ev_job_save_get_type +ev_job_thumbnail_get_type +ev_page_cache_get_type +ev_print_operation_get_type +ev_sizing_mode_get_type +ev_view_get_type +ev_view_presentation_get_type +ev_view_selection_mode_get_type diff --git a/help/reference/libview/version.xml.in b/help/reference/libview/version.xml.in new file mode 100644 index 00000000..27323dad --- /dev/null +++ b/help/reference/libview/version.xml.in @@ -0,0 +1 @@ +@VERSION@ \ No newline at end of file diff --git a/help/reference/shell/Makefile.am b/help/reference/shell/Makefile.am new file mode 100644 index 00000000..628b1a30 --- /dev/null +++ b/help/reference/shell/Makefile.am @@ -0,0 +1,150 @@ +# We require automake 1.10 for $(abs_builddir) +AUTOMAKE_OPTIONS = 1.10 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = evince + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +# DOC_MODULE_VERSION = $(EV_API_VERSION) + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# evinceing the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR = $(top_srcdir)/shell + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=ev + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +# MKTMPL_OPTIONS = + +# Extra options to supply to gtkdoc-mkhtml +# Add the builddir to the HTML path so that version.xml is found +MKHTML_OPTIONS = --path="$(abs_builddir)" + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \ + --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk-pixbuf \ + --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gtk + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = $(top_srcdir)/shell/*.h +CFILE_GLOB = $(top_srcdir)/shell/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +# EXTRA_HFILES = $(top_builddir)/evince/ev-version.h +EXTRA_HFILES = + +# Header files to ignore when scanning. Use base file name, no paths +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES = \ + config.h \ + ev-marshal.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = \ + version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/shell \ + -I$(top_builddir)/shell \ + -I$(top_srcdir)/cut-n-paste/zoom-control/ \ + -I$(top_srcdir)/cut-n-paste/toolbar-editor/ \ + -I$(top_srcdir)/cut-n-paste/totem-screensaver/ \ + -I$(top_srcdir)/libdocument \ + -I$(top_builddir)/libdocument \ + -I$(top_srcdir)/libview \ + -I$(top_srcdir)/libmisc \ + -I$(top_builddir)/libview \ + -I$(top_srcdir)/properties \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATEDATADIR=\"$(datadir)\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DMATEICONDIR=\""$(datadir)/pixmaps"\" \ + -DEVINCE_COMPILATION \ + $(SHELL_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(GTK_PRINT_CFLAGS) + +FILTER_OUT = \ + $(top_builddir)/shell/main.o \ + $(top_builddir)/shell/evinced-ev-daemon.o \ + $(top_builddir)/shell/ev-convert-metadata.o + +GTKDOC_LIBS = \ + $(top_builddir)/cut-n-paste/zoom-control/libephyzoom.la \ + $(top_builddir)/cut-n-paste/toolbar-editor/libtoolbareditor.la \ + $(top_builddir)/cut-n-paste/totem-screensaver/libtotemscrsaver.la \ + $(top_builddir)/cut-n-paste/gimpcellrenderertoggle/libgimpcellrenderertoggle.la \ + $(top_builddir)/cut-n-paste/smclient/libsmclient.la \ + $(top_builddir)/properties/libevproperties.la \ + $(top_builddir)/libdocument/libevdocument.la \ + $(top_builddir)/libview/libevview.la \ + $(top_builddir)/libmisc/libevmisc.la \ + $(SHELL_LIBS) \ + $(GTK_PRINT_LIBS) \ + $(filter-out $(FILTER_OUT),$(wildcard $(top_builddir)/shell/*.o)) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += \ + version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +if ENABLE_GTK_DOC +#TESTS_ENVIRONMENT = cd $(srcsrc) && +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/help/reference/shell/evince-docs.xml b/help/reference/shell/evince-docs.xml new file mode 100644 index 00000000..a08acf76 --- /dev/null +++ b/help/reference/shell/evince-docs.xml @@ -0,0 +1,163 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY version SYSTEM "version.xml"> +]> +<book id="evince"> + <!-- + Copyright Ā© 2009, 2010 Christian Persch + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU General Public License, Version 2 + as published by the Free Software Foundation; or (at your option) any + later version. + + A copy of the license is included in the COPYING file. + --> + <bookinfo> + <title>Evince Programmer's Reference Manual</title> + <releaseinfo> + For Evince version &version;. + The latest version of this documentation can be found on-line at the + <ulink role="online-location" url="http://library.mate.org/devel/evince/index.html">MATE Library</ulink>. + </releaseinfo> + + <copyright> + <year>2007</year> + <year>2008</year> + <year>2009</year> + <holder>Nickolay V. Shmyrev</holder> + </copyright> + + <copyright> + <year>2008</year> + <year>2009</year> + <year>2010</year> + <holder>Carlos Garcia Campos</holder> + </copyright> + + <copyright> + <year>2009</year> + <year>2010</year> + <holder>Christian Persch</holder> + </copyright> + + <legalnotice> + <para> + Permission is granted to copy, distribute and/or modify this document + under the terms of the <citetitle>GNU General Public Licence</citetitle> + published by the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </legalnotice> + </bookinfo> + + <part id="evince-frontend"> + <title>Frontend</title> + <partintro> + <para> + Evince frontend. + </para> + </partintro> + + <xi:include href="xml/ev-sidebar-attachments.xml"/> + <xi:include href="xml/ev-properties-dialog.xml"/> + <xi:include href="xml/ev-properties-fonts.xml"/> + <xi:include href="xml/ev-sidebar-page.xml"/> + <xi:include href="xml/ev-open-recent-action.xml"/> + <xi:include href="xml/ev-application.xml"/> + <xi:include href="xml/ev-sidebar-thumbnails.xml"/> + <xi:include href="xml/ev-sidebar-links.xml"/> + <xi:include href="xml/ev-sidebar.xml"/> + <xi:include href="xml/ev-properties-license.xml"/> + <xi:include href="xml/ev-message-area.xml"/> + <xi:include href="xml/ev-progress-message-area.xml"/> + <xi:include href="xml/ev-metadata.xml"/> + <xi:include href="xml/ev-window.xml"/> + <xi:include href="xml/ev-history.xml"/> + <xi:include href="xml/ev-sidebar-layers.xml"/> + <xi:include href="xml/ev-password-view.xml"/> + <xi:include href="xml/eggfindbar.xml"/> + <xi:include href="xml/ev-media-player-keys.xml"/> + <xi:include href="xml/ev-navigation-action.xml"/> + <xi:include href="xml/ev-file-monitor.xml"/> + <xi:include href="xml/ev-page-action.xml"/> + <xi:include href="xml/ev-window-title.xml"/> + <xi:include href="xml/ev-navigation-action-widget.xml"/> + <xi:include href="xml/ev-application-service.xml"/> + <xi:include href="xml/ev-keyring.xml"/> + <xi:include href="xml/ev-utils.xml"/> + <xi:include href="xml/ev-page-action-widget.xml"/> + </part> + + <chapter id="object-tree"> + <title>Object Hierarchy</title> + <xi:include href="xml/tree_index.sgml"/> + </chapter> + <index id="api-index-full"> + <title>API Index</title> + <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> + </index> + <!-- + <index id="api-index-deprecated" role="deprecated"> + <title>Index of deprecated symbols</title> + <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include> + </index> + --> + <!-- + <index id="api-index-2-30" role="2.30"> + <title>Index of new symbols in 2.30</title> + <xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include> + </index> + --> + + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> + + <appendix id="licence"> + <title>Licence</title> + + <para> + This library is free software; you can redistribute it and/or + modify it under the terms of the <citetitle>GNU General Public + Licence</citetitle> as published by the Free Software Foundation; either + version 2 of the Licence, or (at your option) any later version. + </para> + + <para> + 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 + <citetitle>GNU General Public Licence</citetitle> for + more details. + </para> + + <para> + You may obtain a copy of the <citetitle>GNU General Public Licence</citetitle> + from the Free Software Foundation at + <ulink type="http" url="http://www.gnu.org/licences/">GNU Licences web site</ulink> + or by writing to: + + <address> + The Free Software Foundation, Inc., + <street>51 Franklin St</street> ā Fifth Floor, + <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>, + <country>USA</country> + </address> + </para> + </appendix> + +</book> diff --git a/help/reference/shell/evince-overrides.txt b/help/reference/shell/evince-overrides.txt new file mode 100644 index 00000000..e69de29b diff --git a/help/reference/shell/evince-sections.txt b/help/reference/shell/evince-sections.txt new file mode 100644 index 00000000..a775f7e2 --- /dev/null +++ b/help/reference/shell/evince-sections.txt @@ -0,0 +1,472 @@ +<SECTION> +<FILE>ev-sidebar-attachments</FILE> +<TITLE>EvSidebarAttachments</TITLE> +EvSidebarAttachments +EvSidebarAttachmentsClass +EvSidebarAttachmentsPrivate +ev_sidebar_attachments_new +<SUBSECTION Standard> +EV_SIDEBAR_ATTACHMENTS +EV_IS_SIDEBAR_ATTACHMENTS +EV_TYPE_SIDEBAR_ATTACHMENTS +ev_sidebar_attachments_get_type +EV_SIDEBAR_ATTACHMENTS_CLASS +EV_IS_SIDEBAR_ATTACHMENTS_CLASS +EV_SIDEBAR_ATTACHMENTS_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-properties-dialog</FILE> +EvPropertiesDialog +EvPropertiesDialogClass +EvPropertiesDialogPrivate +ev_properties_dialog_new +ev_properties_dialog_set_document +<SUBSECTION Standard> +EV_PROPERTIES_DIALOG +EV_IS_PROPERTIES_DIALOG +EV_TYPE_PROPERTIES_DIALOG +ev_properties_dialog_get_type +EV_PROPERTIES_DIALOG_CLASS +EV_IS_PROPERTIES_DIALOG_CLASS +EV_PROPERTIES_DIALOG_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-properties-fonts</FILE> +EvPropertiesFonts +EvPropertiesFontsClass +EvPropertiesFontsPrivate +EV_TYPE_PROPERTIES_FONTS +EV_PROPERTIES_FONTS +EV_PROPERTIES_FONTS_CLASS +EV_PROPERTIES_FONTS_GET_CLASS +ev_properties_fonts_new +ev_properties_fonts_set_document +<SUBSECTION Standard> +EV_IS_PROPERTIES +ev_properties_fonts_get_type +EV_IS_PROPERTIES_CLASS +</SECTION> + +<SECTION> +<FILE>ev-sidebar-page</FILE> +<TITLE>EvSidebarPage</TITLE> +EV_SIDEBAR_PAGE_IFACE +EV_IS_SIDEBAR_PAGE_IFACE +EvSidebarPage +EvSidebarPageIface +ev_sidebar_page_support_document +ev_sidebar_page_set_model +ev_sidebar_page_get_label +<SUBSECTION Standard> +EV_SIDEBAR_PAGE +EV_IS_SIDEBAR_PAGE +EV_TYPE_SIDEBAR_PAGE +ev_sidebar_page_get_type +EV_SIDEBAR_PAGE_GET_IFACE +</SECTION> + +<SECTION> +<FILE>ev-open-recent-action</FILE> +<TITLE>EvOpenRecentAction</TITLE> +EvOpenRecentAction +EvOpenRecentActionClass +<SUBSECTION Standard> +EV_OPEN_RECENT_ACTION +EV_IS_OPEN_RECENT_ACTION +EV_TYPE_OPEN_RECENT_ACTION +ev_open_recent_action_get_type +EV_OPEN_RECENT_ACTION_CLASS +EV_IS_OPEN_RECENT_ACTION_CLASS +EV_OPEN_RECENT_ACTION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-application</FILE> +EvApplication +EvApplicationClass +EV_APP +ev_application_get_instance +ev_application_shutdown +ev_application_load_session +ev_application_open_window +ev_application_open_uri_at_dest +ev_application_open_uri_list +ev_application_has_window +ev_application_get_uri +ev_application_get_media_keys +ev_application_set_filechooser_uri +ev_application_get_filechooser_uri +ev_application_screensaver_enable +ev_application_screensaver_disable +ev_application_get_dot_dir +ev_application_get_data_dir +<SUBSECTION Standard> +EV_APPLICATION +EV_IS_APPLICATION +EV_TYPE_APPLICATION +ev_application_get_type +EV_APPLICATION_CLASS +EV_IS_APPLICATION_CLASS +EV_APPLICATION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-sidebar-thumbnails</FILE> +<TITLE>EvSidebarThumbnails</TITLE> +EvSidebarThumbnails +EvSidebarThumbnailsClass +EvSidebarThumbnailsPrivate +ev_sidebar_thumbnails_new +<SUBSECTION Standard> +EV_SIDEBAR_THUMBNAILS +EV_IS_SIDEBAR_THUMBNAILS +EV_TYPE_SIDEBAR_THUMBNAILS +ev_sidebar_thumbnails_get_type +EV_SIDEBAR_THUMBNAILS_CLASS +EV_IS_SIDEBAR_THUMBNAILS_CLASS +EV_SIDEBAR_THUMBNAILS_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-sidebar-links</FILE> +<TITLE>EvSidebarLinks</TITLE> +EvSidebarLinks +EvSidebarLinksClass +EvSidebarLinksPrivate +ev_sidebar_links_new +<SUBSECTION Standard> +EV_SIDEBAR_LINKS +EV_IS_SIDEBAR_LINKS +EV_TYPE_SIDEBAR_LINKS +ev_sidebar_links_get_type +EV_SIDEBAR_LINKS_CLASS +EV_IS_SIDEBAR_LINKS_CLASS +EV_SIDEBAR_LINKS_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-sidebar</FILE> +<TITLE>EvSidebar</TITLE> +EvSidebar +EvSidebarClass +EvSidebarPrivate +ev_sidebar_new +ev_sidebar_add_page +ev_sidebar_set_page +ev_sidebar_set_model +<SUBSECTION Standard> +EV_SIDEBAR +EV_IS_SIDEBAR +EV_TYPE_SIDEBAR +ev_sidebar_get_type +EV_SIDEBAR_CLASS +EV_IS_SIDEBAR_CLASS +EV_SIDEBAR_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-properties-license</FILE> +EvPropertiesLicense +EvPropertiesLicenseClass +EvPropertiesLicensePrivate +ev_properties_license_new +ev_properties_license_set_license +<SUBSECTION Standard> +EV_PROPERTIES_LICENSE +EV_IS_PROPERTIES_LICENSE +EV_TYPE_PROPERTIES_LICENSE +ev_properties_license_get_type +EV_PROPERTIES_LICENSE_CLASS +EV_IS_PROPERTIES_LICENSE_CLASS +EV_PROPERTIES_LICENSE_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-message-area</FILE> +<TITLE>EvMessageArea</TITLE> +EvMessageArea +EvMessageAreaClass +EvMessageAreaPrivate +ev_message_area_new +ev_message_area_set_image +ev_message_area_set_image_from_stock +ev_message_area_set_text +ev_message_area_set_secondary_text +<SUBSECTION Standard> +EV_MESSAGE_AREA +EV_IS_MESSAGE_AREA +EV_TYPE_MESSAGE_AREA +ev_message_area_get_type +EV_MESSAGE_AREA_CLASS +EV_IS_MESSAGE_AREA_CLASS +EV_MESSAGE_AREA_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-progress-message-area</FILE> +<TITLE>EvProgressMessageArea</TITLE> +EvProgressMessageArea +EvProgressMessageAreaClass +EvProgressMessageAreaPrivate +ev_progress_message_area_new +ev_progress_message_area_set_status +ev_progress_message_area_set_fraction +<SUBSECTION Standard> +EV_PROGRESS_MESSAGE_AREA +EV_IS_PROGRESS_MESSAGE_AREA +EV_TYPE_PROGRESS_MESSAGE_AREA +ev_progress_message_area_get_type +EV_PROGRESS_MESSAGE_AREA_CLASS +EV_IS_PROGRESS_MESSAGE_AREA_CLASS +EV_PROGRESS_MESSAGE_AREA_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-metadata</FILE> +EvMetadata +EvMetadataClass +ev_metadata_new +ev_metadata_get_string +ev_metadata_set_string +ev_metadata_get_int +ev_metadata_set_int +ev_metadata_get_double +ev_metadata_set_double +ev_metadata_get_boolean +ev_metadata_set_boolean +ev_is_metadata_supported_for_file +<SUBSECTION Standard> +EV_METADATA +EV_IS_METADATA +EV_TYPE_METADATA +ev_metadata_get_type +EV_METADATA_CLASS +</SECTION> + +<SECTION> +<FILE>ev-window</FILE> +<TITLE>EvWindow</TITLE> +EvWindowRunMode +EvPrintRange +EvPrintPageSet +EvWindow +EvWindowClass +EvWindowPrivate +ev_window_new +ev_window_get_uri +ev_window_open_uri +ev_window_open_document +ev_window_is_empty +ev_window_print_range +<SUBSECTION Standard> +EV_WINDOW +EV_IS_WINDOW +EV_TYPE_WINDOW +ev_window_get_type +EV_WINDOW_CLASS +EV_IS_WINDOW_CLASS +EV_WINDOW_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-history</FILE> +<TITLE>EvHistory</TITLE> +EvHistory +EvHistoryPrivate +EvHistoryClass +ev_history_new +ev_history_add_link +ev_history_get_link_nth +ev_history_get_n_links +<SUBSECTION Standard> +EV_HISTORY +EV_IS_HISTORY +EV_TYPE_HISTORY +ev_history_get_type +EV_HISTORY_CLASS +EV_IS_HISTORY_CLASS +EV_HISTORY_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-sidebar-layers</FILE> +<TITLE>EvSidebarLayers</TITLE> +EvSidebarLayers +EvSidebarLayersClass +EvSidebarLayersPrivate +ev_sidebar_layers_new +<SUBSECTION Standard> +EV_SIDEBAR_LAYERS +EV_IS_SIDEBAR_LAYERS +EV_TYPE_SIDEBAR_LAYERS +ev_sidebar_layers_get_type +EV_SIDEBAR_LAYERS_CLASS +EV_IS_SIDEBAR_LAYERS_CLASS +EV_SIDEBAR_LAYERS_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-password-view</FILE> +<TITLE>EvPasswordView</TITLE> +EvPasswordView +EvPasswordViewClass +EvPasswordViewPrivate +ev_password_view_new +ev_password_view_set_uri +ev_password_view_ask_password +ev_password_view_get_password +ev_password_view_get_password_save_flags +<SUBSECTION Standard> +EV_PASSWORD_VIEW +EV_IS_PASSWORD_VIEW +EV_TYPE_PASSWORD_VIEW +ev_password_view_get_type +</SECTION> + +<SECTION> +<FILE>eggfindbar</FILE> +<TITLE>EggFindBar</TITLE> +EggFindBar +EggFindBarClass +EggFindBarPrivate +egg_find_bar_new +egg_find_bar_set_search_string +egg_find_bar_get_search_string +egg_find_bar_set_case_sensitive +egg_find_bar_get_case_sensitive +egg_find_bar_get_all_matches_color +egg_find_bar_get_current_match_color +egg_find_bar_set_status_text +<SUBSECTION Standard> +EGG_FIND_BAR +EGG_IS_FIND_BAR +EGG_TYPE_FIND_BAR +egg_find_bar_get_type +EGG_FIND_BAR_CLASS +EGG_IS_FIND_BAR_CLASS +EGG_FIND_BAR_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-media-player-keys</FILE> +EvMediaPlayerKeys +EvMediaPlayerKeysClass +ev_media_player_keys_new +ev_media_player_keys_focused +<SUBSECTION Standard> +EV_MEDIA_PLAYER_KEYS +EV_IS_MEDIA_PLAYER_KEYS +EV_TYPE_MEDIA_PLAYER_KEYS +ev_media_player_keys_get_type +EV_MEDIA_PLAYER_KEYS_CLASS +EV_IS_MEDIA_PLAYER_KEYS_CLASS +EV_MEDIA_PLAYER_KEYS_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-navigation-action</FILE> +<TITLE>EvNavigationAction</TITLE> +EvNavigationAction +EvNavigationActionPrivate +EvNavigationActionClass +ev_navigation_action_set_history +<SUBSECTION Standard> +EV_NAVIGATION_ACTION +EV_IS_NAVIGATION_ACTION +EV_TYPE_NAVIGATION_ACTION +ev_navigation_action_get_type +EV_NAVIGATION_ACTION_CLASS +EV_IS_NAVIGATION_ACTION_CLASS +EV_NAVIGATION_ACTION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-file-monitor</FILE> +<TITLE>EvFileMonitor</TITLE> +EvFileMonitor +EvFileMonitorClass +EvFileMonitorPrivate +ev_file_monitor_new +<SUBSECTION Standard> +EV_FILE_MONITOR +EV_IS_FILE_MONITOR +EV_TYPE_FILE_MONITOR +ev_file_monitor_get_type +EV_FILE_MONITOR_CLASS +EV_IS_FILE_MONITOR_CLASS +EV_FILE_MONITOR_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-page-action</FILE> +<TITLE>EvPageAction</TITLE> +EvPageAction +EvPageActionPrivate +EvPageActionClass +ev_page_action_set_model +ev_page_action_set_links_model +ev_page_action_grab_focus +<SUBSECTION Standard> +EV_PAGE_ACTION +EV_IS_PAGE_ACTION +EV_TYPE_PAGE_ACTION +ev_page_action_get_type +EV_PAGE_ACTION_CLASS +EV_IS_PAGE_ACTION_CLASS +EV_PAGE_ACTION_GET_CLASS +</SECTION> + +<SECTION> +<FILE>ev-window-title</FILE> +EvWindowTitle +EvWindowTitleType +ev_window_title_new +ev_window_title_set_type +ev_window_title_set_document +ev_window_title_set_uri +ev_window_title_free +</SECTION> + +<SECTION> +<FILE>ev-navigation-action-widget</FILE> +<TITLE>EvNavigationActionWidget</TITLE> +EV_TYPE_NAVIGATION_ACTION_WIDGET +EV_NAVIGATION_ACTION_WIDGET +EvNavigationActionWidget +EvNavigationActionWidgetClass +ev_navigation_action_widget_get_type +ev_navigation_action_widget_set_menu +</SECTION> + +<SECTION> +<FILE>ev-keyring</FILE> +ev_keyring_is_available +ev_keyring_lookup_password +ev_keyring_save_password +</SECTION> + +<SECTION> +<FILE>ev-utils</FILE> +ev_pixbuf_add_shadow +ev_print_region_contents +ev_gui_menu_position_tree_selection +get_num_monitors +get_screen_dpi +file_chooser_dialog_add_writable_pixbuf_formats +get_gdk_pixbuf_format_by_extension +</SECTION> + +<SECTION> +<FILE>ev-page-action-widget</FILE> +<TITLE>EvPageActionWidget</TITLE> +EV_TYPE_PAGE_ACTION_WIDGET +EV_PAGE_ACTION_WIDGET +EvPageActionWidget +EvPageActionWidgetClass +ev_page_action_widget_get_type +ev_page_action_widget_update_links_model +ev_page_action_widget_set_model +ev_page_action_widget_grab_focus +</SECTION> diff --git a/help/reference/shell/evince.types b/help/reference/shell/evince.types new file mode 100644 index 00000000..dea7db50 --- /dev/null +++ b/help/reference/shell/evince.types @@ -0,0 +1,24 @@ +egg_find_bar_get_type +ev_application_get_type +ev_file_monitor_get_type +ev_history_get_type +ev_media_player_keys_get_type +ev_message_area_get_type +ev_metadata_get_type +ev_navigation_action_get_type +ev_navigation_action_widget_get_type +ev_open_recent_action_get_type +ev_page_action_get_type +ev_page_action_widget_get_type +ev_password_view_get_type +ev_progress_message_area_get_type +ev_properties_dialog_get_type +ev_properties_fonts_get_type +ev_properties_license_get_type +ev_sidebar_attachments_get_type +ev_sidebar_get_type +ev_sidebar_layers_get_type +ev_sidebar_links_get_type +ev_sidebar_page_get_type +ev_sidebar_thumbnails_get_type +ev_window_get_type diff --git a/help/reference/shell/version.xml.in b/help/reference/shell/version.xml.in new file mode 100644 index 00000000..27323dad --- /dev/null +++ b/help/reference/shell/version.xml.in @@ -0,0 +1 @@ +@VERSION@ \ No newline at end of file diff --git a/help/ru/ru.po b/help/ru/ru.po new file mode 100644 index 00000000..ce24a89c --- /dev/null +++ b/help/ru/ru.po @@ -0,0 +1,1238 @@ +# Russian translation for Evince documentation. +# +# Copyright 2008, Free Software Foundation Inc. + + +msgid "" +msgstr "" +"Project-Id-Version: evince 0.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-04-06 03:16+0100\n" +"PO-Revision-Date: 2008-07-20 01:14+0400\n" +"Last-Translator: Nickolay V. Shmyrev <nshmyrev@yandex.ru>\n" +"Language-Team: Russian <mate-cyr@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Š ŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ ŠæŠ¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š“Š»Ń ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince ŠæŠ¾Š·Š²Š¾Š»ŃŠµŃ ŠæŃŠ¾ŃŠ¼Š°ŃŃŠøŠ²Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ " +"ŃŠ°Š·Š»ŠøŃŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ¾Š², ŃŠ°ŠŗŠøŃ ŠŗŠ°Šŗ ŃŠ°Š¹Š»Ń Š² ŃŠ¾ŃŠ¼Š°ŃŠµ PDF Šø PostScript" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "ŠŠøŠŗŠ¾Š»Š°Š¹ Š. ŠØŠ¼ŃŃŃŠ²" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "ŠŃŠ¾ŠµŠŗŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠ¾Š²Š°Š½ŠøŃ MATE" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Š”Š»ŠµŠ“ŃŃŃŠøŠ¼ ŃŠ°Š·ŃŠµŃŠ°ŠµŃŃŃ ŠŗŠ¾ŠæŠøŃŠ¾Š²Š°ŃŃ, ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŃŃ Šø Š¼Š¾Š“ŠøŃŠøŃŠøŃŠ¾Š²Š°ŃŃ ŃŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŃŠø " +"ŃŃŠ»Š¾Š²ŠøŠø ŃŠ¾Š±Š»ŃŠ“ŠµŠ½ŠøŃ GNU Free Documentation License (GFDL), Š²ŠµŃŃŠøŠø 1.1 ŠøŠ»Šø " +"Š»ŃŠ±Š¾Š¹ Š±Š¾Š»ŠµŠµ ŠæŠ¾Š·Š“Š½ŠµŠ¹ Š¾ŠæŃŠ±Š»ŠøŠŗŠ¾Š²Š°Š½Š½Š¾Š¹ Š°ŃŃŠ¾ŃŠøŠ°ŃŠøŠµŠ¹ ŃŠ²Š¾Š±Š¾Š“Š½Š¾Š³Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Š¼Š½Š¾Š³Š¾ " +"Š¾Š±ŠµŃŠæŠµŃŠµŠ½ŠøŃ Š²ŠµŃŃŠøŠµŠ¹ Š±ŠµŠ· Š½ŠµŠøŠ·Š¼ŠµŠ½ŃŠµŠ¼ŃŃ ŃŠ°ŃŃŠµŠ¹, Š±ŠµŠ· ŃŠµŠŗŃŃŠ¾Š² Š½Š° Š¾Š±Š»Š¾Š¶ŠŗŠ°Ń . ŠŃ " +"Š¼Š¾Š¶ŠµŃŠµ Š½Š°Š¹ŃŠø ŠŗŠ¾ŠæŠøŃ Š»ŠøŃŠµŠ½Š·ŠøŠø ŠæŠ¾ ŃŃŠ¾Š¹ <ulink type=\"help\" url=\"ghelp:fdl" +"\">ŃŃŃŠ»ŠŗŠµ</ulink> ŠøŠ»Šø Š² ŃŠ°Š¹Š»Šµ COPYING-DOCS, ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŠµŠ¼Š¾Š¼ Ń ŃŃŠøŠ¼ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š¼." + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"ŠŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ²Š»ŃŠµŃŃŃ ŃŠ°ŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŠø MATE ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŠµŠ¼Š¾Š¹ ŠæŠ¾Š“ " +"Š»ŠøŃŠµŠ½Š·ŠøŠµŠ¹ GFDL. ŠŃŠ»Šø Š²Ń Ń Š¾ŃŠøŃŠµ ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŃŃ ŃŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š¾ŃŠ“ŠµŠ»ŃŠ½Š¾ Š¾Ń " +"Š¾Š±ŃŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŠø, Š²Ń Š“Š¾Š»Š¶Š½Ń ŠæŃŠøŠ»Š¾Š¶ŠøŃŃ ŠŗŠ¾ŠæŠøŃ Š»ŠøŃŠµŠ½Š·ŠøŠø Šŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ, ŠŗŠ°Šŗ " +"Š½Š°ŠæŠøŃŠ°Š½Š¾ Š² ŃŠ°ŃŃŠø 6 Š»ŠøŃŠµŠ½Š·ŠøŠø." + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"ŠŠµŠŗŠ¾ŃŠ¾ŃŃŠµ ŠøŠ¼ŠµŠ½Š° Šø Š¼Š°ŃŠŗŠø ŠøŃŠæŠ¾Š»ŃŠ·ŃŃŃŃŃ ŠŗŠ¾Š¼ŠæŠ°Š½ŠøŃŠ¼Šø Š“Š»Ń Š¾Š±Š¾Š·Š½Š°ŃŠµŠ½ŠøŃ ŠøŃ ŠæŃŠ¾Š“ŃŠŗŃŠ¾Š² " +"Šø ŃŃŠ»ŃŠ³ Šø ŃŠ²Š»ŃŃŃŃŃ ŃŠ¾ŃŠ³Š¾Š²ŃŠ¼Šø Š¼Š°ŃŠŗŠ°Š¼Šø. ŠŃŠø Š¼Š°ŃŠŗŠø ŠæŃŠøŃŃŃŃŃŠ²ŃŃŃ Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŠø " +"Šø ŃŠ»ŠµŠ½Ń ŠæŃŠ¾ŠµŠŗŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠ¾Š²Š°Š½ŠøŃ MATE Š·Š½Š°ŃŃ Š¾Š± ŃŃŠ¾Š¼. ŠŠ¼ŠµŠ½Š° Š²ŃŠ“ŠµŠ»ŃŃŃŃŃ " +"Š·Š°Š³Š»Š°Š²Š½ŃŠ¼Šø Š±ŃŠŗŠ²Š°Š¼Šø ŠøŠ»Šø Š½Š°ŃŠ°Š»ŃŠ½Š¾Š¹ Š·Š°Š³Š»Š°Š²Š½Š¾Š¹ Š±ŃŠŗŠ²Š¾Š¹." + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ Š ŠŠ”ŠŠ ŠŠ”Š¢Š ŠŠŠÆŠŠ¢Š”ŠÆ \"ŠŠŠ ŠŠ”Š¢Š¬\", ŠŠŠ ŠŠ”ŠÆŠŠŠ„ ŠŠŠ ŠŠŠ¢ŠŠ, ŠŠ ŠŠŠ£ŠŠŠŠŠ«Š„ ŠŠŠ " +"Š£ŠŠŠ”ŠŠŠŠŠŠŠŠŠ«Š„, ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠŠ, ŠŠŠ ŠŠŠ¢ŠŠ Š¢ŠŠŠ, Š§Š¢Š ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠ " +"ŠŠŠŠŠ¤ŠŠ¦ŠŠ ŠŠŠŠŠŠŠÆ ŠŠŠ Š”ŠŠÆ ŠŠŠŠ£ŠŠŠŠ¢Š Š”ŠŠŠŠŠŠŠ ŠŠ¢ ŠŠŠ¤ŠŠŠ¢ŠŠ, Š¢ŠŠŠ¬ŠŠ ŠŠŠÆ " +"Š”ŠŠŠ¦ŠŠŠŠ¬ŠŠŠŠ ŠŠ”ŠŠŠŠ¬ŠŠŠŠŠŠŠÆ, ŠŠ ŠŠŠŠŠ®Š§ŠŠ©ŠŠŠ Š Š”ŠŠŠ Š ŠŠ”ŠŠ ŠŠŠ§ŠŠ”Š¢ŠŠ, " +"ŠŠŠŠ£Š ŠŠ¢ŠŠŠ”Š¢Š ŠŠŠ Š”ŠŠŠ¢ŠŠŠ¢Š”Š¢ŠŠŠÆ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠŠŠŠŠŠŠŠ«Š„ ŠŠŠ Š”ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š " +"ŠŠŠØŠŠ Š¢Š ŠŠŠŠŠŠŠŠÆŠ. ŠŠ”ŠŠ ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠ ŠŠŠŠŠ¤ŠŠ¦ŠŠ ŠŠŠŠŠŠŠÆ ŠŠŠ Š”ŠŠÆ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠŠŠ¢ " +"ŠŠŠŠŠ”Š¢ŠŠ¢ŠŠ, ŠŠ« (Š ŠŠ ŠŠŠ¢ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠŠ ŠŠŠŠŠ©ŠŠŠŠ) ŠŠŠŠŠŠ« Š”ŠŠŠ ŠŠ ŠŠŠŠŠŠ¢Š¬ " +"Š£Š”ŠŠŠŠÆ Š ŠŠŠ ŠŠŠ ŠŠŠŠ¢ŠŠ, ŠŠŠ Š ŠŠŠ¦ŠŠ ŠŠŠ ŠŠŠ”Š”Š¢ŠŠŠŠŠŠŠŠŠ®. ŠŠ¢Š ŠŠ ŠŠŠ£ŠŠ ŠŠŠŠŠŠŠ " +"Š”ŠŠ”Š¢ŠŠŠŠÆŠŠ¢ Š”Š£Š©ŠŠ”Š¢ŠŠŠŠŠ£Š® Š§ŠŠ”Š¢Š¬ ŠŠŠ¦ŠŠŠŠŠ. ŠŠŠŠ£ŠŠŠŠ¢ ŠŠ ŠŠŠŠŠŠ ŠŠ”ŠŠŠŠ¬ŠŠŠŠŠ¢Š¬Š”ŠÆ " +"ŠŠŠ ŠŠŠŠŠŠŠ ŠŠ ŠŠŠ£ŠŠ ŠŠŠŠŠŠŠÆ Š" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ŠŠ ŠŠ Š ŠŠŠŠŠ„ ŠŠŠ”Š¢ŠŠÆŠ¢ŠŠŠ¬Š”Š¢ŠŠŠ„ Š ŠŠ ŠŠ Š ŠŠŠŠŠ ŠŠŠŠŠŠŠŠ Š”ŠŠŠ”ŠŠŠ, ŠŠ ŠŠ ŠŠŠŠŠŠ£ " +"Š”ŠŠŠŠŠØŠŠŠŠ® ŠŠŠ ŠŠ Š£ŠŠŠ ŠŠ ŠŠ§ŠŠŠ, ŠŠŠ¢ŠŠ , Š”ŠŠŠŠŠ¢ŠŠŠ¬ ŠŠŠ ŠŠŠŠŠ©ŠŠŠŠ ŠŠ ŠŠŠ”Š£Š¢ " +"ŠŠ¢ŠŠŠ¢Š”Š¢ŠŠŠŠŠŠ”Š¢Š¬ ŠŠ ŠŠ ŠÆŠŠŠ, ŠŠŠ”ŠŠŠŠŠŠ, Š”ŠŠŠ¦ŠŠŠŠ¬ŠŠŠ, Š”ŠŠ£Š§ŠŠŠŠŠ ŠŠŠ " +"ŠŠ ŠŠŠŠŠŠŠ ŠŠŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠŠ ŠŠ®ŠŠŠŠ Š”ŠŠŠŠ”Š¢ŠŠ, ŠŠŠŠ®Š§ŠŠÆ ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠŠÆ ŠŠŠ¢ŠŠ Š® " +"Š ŠŠŠ£Š¢ŠŠ¦ŠŠ, Š ŠŠŠŠ¢ŠŠ”ŠŠŠ”ŠŠŠŠŠ”Š¢Š, ŠŠŠŠŠ¬Š®Š¢ŠŠ ŠŠ«Š Š”ŠŠŠ ŠŠŠ ŠŠŠŠ ŠŠŠŠŠ¬ŠŠŠ " +"ŠŠŠŠŠŠŠŠŠŠ”Š¢ŠŠŠ, ŠŠŠŠ”Š¢Š ŠŠŠ ŠŠ ŠŠ¢ŠŠŠŠ¬ŠŠŠ”Š¢Š. ŠŠŠŠŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠŠÆ Š ŠŠŠ¢ŠŠ Š ŠŠ " +"ŠŠŠŠ£Š¢ ŠŠ«Š¢Š¬ ŠŠŠŠŠŠŠŠŠ« ŠŠ ŠŠŠ¢ŠŠ Š ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠŠŠŠ¤ŠŠ¦ŠŠ ŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠ " +"ŠŠŠŠ£ŠŠŠŠ¢Š, ŠŠŠŠ ŠŠ”ŠŠ Š”Š¢ŠŠ ŠŠŠ ŠŠ«ŠŠ ŠŠ ŠŠŠŠ¤ŠŠ ŠŠŠ ŠŠŠŠŠ Š ŠŠŠŠŠŠŠŠŠ”Š¢Š Š¢ŠŠŠŠ„ " +"ŠŠŠŠ ŠŠŠŠŠŠŠ." + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ Š ŠŠŠŠŠŠŠŠŠ«Š ŠŠŠ Š”ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠ ŠŠŠ”Š¢ŠŠŠŠÆŠ®Š¢Š”ŠÆ ŠŠŠŠ¬ŠŠŠŠŠ¢ŠŠŠ® ŠŠŠ " +"ŠŠŠ¦ŠŠŠŠŠŠ GNU FREE DOCUMENTATION LICENSE Š” Š£ŠŠŠŠŠŠŠŠŠŠŠ Š Š¢ŠŠ, Š§Š¢Š " +"<placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠ¾Š²Š°Š½ŠøŃ MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "ŠŠøŠŗŠ¾Š»Š°Š¹ Š." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "ŠØŠ¼ŃŃŃŠ²" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ ŠæŠ¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince Š²ŠµŃŃŠøŃ 1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ ŠæŠ¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince Š²ŠµŃŃŠøŃ 1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "" +"ŠŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ Š¾ŠæŠøŃŃŠ²Š°ŠµŃ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince Š²ŠµŃŃŠøŠø 0.2" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "ŠŠ±ŃŠ°ŃŠ½Š°Ń ŃŠ²ŃŠ·Ń" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"ŠŠ»Ń ŃŠ¾Š³Š¾ ŃŃŠ¾Š±Ń ŃŠ¾Š¾Š±ŃŠøŃŃ Š¾ ŠæŃŠ¾Š±Š»ŠµŠ¼Šµ ŠøŠ»Šø ŃŠ“ŠµŠ»Š°ŃŃ ŠæŃŠµŠ“Š»Š¾Š¶ŠµŠ½ŠøŠµ Š“Š»Ń ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ " +"Evince ŠøŠ»Šø ŠæŠ¾ ŃŃŠ¾Š¼Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ, ŃŠ»ŠµŠ“ŃŠ¹ŃŠµ ŠøŠ½ŃŃŃŃŠŗŃŠøŠ¼ ŠæŠ¾ <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">ŠŠ±ŃŠ°ŃŠ½Š¾Š¹ ŃŠ²ŃŠ·Šø MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "ŠŃŠ¾ŃŠ¼Š¾ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ²Š¾ Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "ŠŠ²ŠµŠ“ŠµŠ½ŠøŠµ" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</application> ŠæŠ¾Š·Š²Š¾Š»ŃŠµŃ Š²Š°Š¼ ŠæŃŠ¾ŃŠ¼Š°ŃŃŠøŠ²Š°ŃŃ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ°Š·Š»ŠøŃŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ¾Š², ŃŠ°ŠŗŠøŃ ŠŗŠ°Šŗ ŃŠ°Š¹Š»Ń Portable Document Format (PDF) " +"Šø Postscript. ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</application> ŃŠ»ŠµŠ“ŃŠµŃ " +"ŃŃŠ°Š½Š“Š°ŃŃŠ°Š¼ MATE Šø Freedesktop.org Šø ŠæŃŠµŠ“Š»Š°Š³Š°ŠµŃ ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŠµŠ»Ń ŠæŠ¾Š»Š½ŃŃ " +"ŠøŠ½ŃŠµŠ³ŃŠ°ŃŠøŃ Š² ŃŠ°Š±Š¾ŃŃŃ ŃŃŠµŠ“Ń." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "ŠŠ°ŃŠ°Š»Š¾ ŃŠ°Š±Š¾ŃŃ" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "ŠŠ°ŠæŃŃŠŗ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince" + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</application> Š·Š°ŠæŃŃŠŗŠ°ŠµŃŃŃ, ŠŗŠ¾Š³Š“Š° Š²Ń " +"Š¾ŃŠŗŃŃŠ²Š°ŠµŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ° PDF ŠøŠ»Šø PostScript." + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"Š¢Š°ŠŗŠ¶Šµ Š¼Š¾Š¶Š½Š¾ Š·Š°ŠæŃŃŃŠøŃŃ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</application> ŠøŠ· " +"ŠŗŠ¾Š¼Š°Š½Š“Š½Š¾Š¹ ŃŃŃŠ¾ŠŗŠø, Š²ŃŠæŠ¾Š»Š½ŠøŠ² ŠŗŠ¾Š¼Š°Š½Š“Ń <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "ŠŠ¾ŃŠ»Šµ Š·Š°ŠæŃŃŠŗŠ° ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"ŠŠ¾Š³Š“Š° Š²Ń Š·Š°ŠæŃŃŃŠøŃŠµ <application>ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Evince</application>, ŠæŠ¾ŃŠ²ŠøŃŃŃ " +"ŃŠ»ŠµŠ“ŃŃŃŠµŠµ Š¾ŠŗŠ½Š¾." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "ŠŠ»Š°Š²Š½Š¾Šµ Š¾ŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"ŠŠ¾ŠŗŠ°Š·ŃŠ²Š°ŠµŃ Š³Š»Š°Š²Š½Š¾Šµ Š¾ŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Evince. Š ŃŃŠ¾Š¼ Š¾ŠŗŠ½Šµ " +"ŠµŃŃŃ Š·Š°Š³Š¾Š»Š¾Š²Š¾Šŗ, ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š², ŃŠ°Š±Š¾ŃŠ°Ń Š¾Š±Š»Š°ŃŃŃ, Š¼ŠµŠ½Ń. ŠŠµŠ½Ń ŃŠ¾Š“ŠµŃŠ¶ŠøŃ " +"ŠæŠ¾Š“ŠæŃŠ½ŠŗŃŃ Š¤Š°Š¹Š», ŠŃŠ°Š²ŠŗŠ°, ŠŠøŠ“, ŠŠµŃŠµŃ Š¾Š“ Šø Š”ŠæŃŠ°Š²ŠŗŠ°." + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"ŠŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</application> ŃŠ¾Š“ŠµŃŠ¶ŠøŃ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ " +"ŃŠ»ŠµŠ¼ŠµŠ½ŃŃ:" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "ŠŠµŠ½Ń" + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"ŠŠµŠ½Ń ŃŠ¾Š“ŠµŃŠ¶ŠøŃ Š²ŃŠµ Š“ŠµŠ¹ŃŃŠ²ŠøŃ, ŠŗŠ¾ŃŠ¾ŃŃŠµ Š²Ń Š¼Š¾Š¶ŠµŃŠµ ŠæŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŃ Š½Š°Š“ Š“Š¾ŠŗŃŠ¼ŠµŃŠ¾Š¼ Š² " +"ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠø ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² <application>Evince</application>" + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "ŠŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" +"ŠŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š² ŃŠ¾Š“ŠµŃŠ¶ŠøŃ Š½Š°ŠøŠ±Š¾Š»ŠµŠµ ŃŠ°ŃŃŠ¾ ŃŠæŠ¾ŃŃŠµŠ±Š»ŃŠµŠ¼ŃŠµ Š“ŠµŠ¹ŃŃŠ²ŠøŃ ŠøŠ· Š¼ŠµŠ½Ń." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Š Š°Š±Š¾ŃŠ°Ń Š¾Š±Š»Š°ŃŃŃ" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "Š Š°Š±Š¾ŃŠ°Ń Š¾Š±Š»Š°ŃŃŃ Š¾ŃŠ¾Š±ŃŠ°Š¶Š°ŠµŃ ŃŠ¾Š“ŠµŃŠ¶ŠøŠ¼Š¾Šµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "ŠŃŠ°ŃŠøŃŠµŃŠŗŠøŠ¹ ŠŗŠ¾Š¼ŠæŠ¾Š½ŠµŠ½Ń" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "ŠŠµŠ¹ŃŃŠ²ŠøŠµ" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "ŠŠŗŠ½Š¾" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"ŠŠµŃŠµŠ½ŠµŃŠøŃŠµ ŃŠ°Š¹Š» Š² Š¾ŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</application> ŠøŠ· " +"Š“ŃŃŠ³Š¾Š³Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ, ŃŠ°ŠŗŠ¾Š³Š¾ ŠŗŠ°Šŗ ŃŠ°Š¹Š»Š¾Š²ŃŠ¹ Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃ." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "ŠŠ²Š¾Š¹Š½Š¾Š¹ ŃŠµŠ»ŃŃŠŗ Š½Š° ŠøŠ¼ŠµŠ½Šø ŃŠ°Š¹Š»Š° Š² Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŠµ ŃŠ°Š¹Š»Š¾Š²" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"ŠŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŃŠŗŃŃŃŃ</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "ŠŃŃŃŃŃŠµ ŠŗŠ»Š°Š²ŠøŃŠø" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "ŠŠ°Š¶Š¼ŠøŃŠµ <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"Š ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠø <application>Evince</application>, Š²Ń Š¼Š¾Š¶ŠµŃŠµ ŠæŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŃ " +"Š“ŠµŠ¹ŃŃŠ²ŠøŃ Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠøŠ¼Šø ŃŠæŠ¾ŃŠ¾Š±Š°Š¼Šø. ŠŠ°ŠæŃŠøŠ¼ŠµŃ, Š¼Š¾Š¶Š½Š¾ Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ»ŠµŠ“ŃŃŃŠøŠ¼ " +"Š¾Š±ŃŠ°Š·Š¾Š¼: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "ŠŃŠ¾ ŃŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾ Š¾ŠæŠøŃŃŠ²Š°ŠµŃ ŃŃŠ½ŠŗŃŠøŠ¾Š½Š°Š»ŃŠ½Š¾ŃŃŃ, Š“Š¾ŃŃŃŠæŠ½ŃŃ ŠøŠ· Š¼ŠµŠ½Ń" + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "ŠŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŠµ" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "ŠŃŠŗŃŃŃŠøŠµ" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "ŠŠ»Ń ŃŠ¾Š³Š¾, ŃŃŠ¾Š±Ń Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, Š²ŃŠæŠ¾Š»Š½ŠøŃŠµ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ ŃŠ°Š³Šø:" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "Š Š“ŠøŠ°Š»Š¾Š³Šµ <guilabel>ŠŃŠŗŃŃŃŃ ŃŠ°Š¹Š»</guilabel> Š²ŃŠ±ŠµŃŠøŃŠµ Š½ŃŠ¶Š½ŃŠ¹ ŃŠ°Š¹Š»." + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"ŠŠ°Š¶Š¼ŠøŃŠµ <guibutton>ŠŃŠŗŃŃŃŃ</guibutton>. ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</" +"application> ŠæŠ¾ŠŗŠ°Š¶ŠµŃ ŠøŠ¼Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š² ŃŠøŃŃŠ»ŃŠ½Š¾Š¹ ŃŃŃŠ¾ŠŗŠµ Š¾ŠŗŠ½Š°." + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"ŠŠ»Ń ŃŠ¾Š³Š¾, ŃŃŠ¾Š±Ń Š¾ŃŠŗŃŃŃŃ Š“ŃŃŠ³Š¾Š¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ " +"<menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŃŠŗŃŃŃŃ</guimenuitem></" +"menuchoice> ŃŠ½Š¾Š²Š°. ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ <application>Evince</application> ŃŠ¾Š·Š“Š°ŠµŃ " +"Š½Š¾Š²Š¾Šµ Š¾ŠŗŠ½Š¾ Š“Š»Ń ŠŗŠ°Š¶Š“Š¾Š³Š¾ Š½Š¾Š²Š¾Š³Š¾ ŃŠ°Š¹Š»Š°." + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"ŠŃŠ»Šø Š²Ń ŠæŠ¾ŠæŃŃŠ°ŠµŃŠµŃŃ Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, ŃŠ¾ŃŠ¼Š°Ń ŠŗŠ¾ŃŠ¾ŃŠ¾Š³Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ " +"<application>Evince</application> Š½Šµ ŃŠ°ŃŠæŠ¾Š·Š½Š°ŃŃ, ŠæŠ¾ŃŠ²ŠøŃŃŃ Š“ŠøŠ°Š»Š¾Š³, ŠøŠ·Š²ŠµŃŠ°ŃŃŠøŠ¹ " +"Š¾Š± Š¾ŃŠøŠ±ŠŗŠµ." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "ŠŠµŃŠµŠ¼ŠµŃŠµŠ½ŠøŃ" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "ŠŃ Š¼Š¾Š¶ŠµŃŠµ ŠæŠµŃŠµŠ¼ŠµŃŠ°ŃŃŃŃ ŠæŠ¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ»ŠµŠ“ŃŃŃŠøŠ¼Šø ŃŠæŠ¾ŃŠ¾Š±Š°Š¼Šø:" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠµŃ Š¾Š“Š° Šŗ ŃŠ»ŠµŠ“ŃŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ, Š²ŃŠ±ŠµŃŠøŃŠµ Š² Š¼ŠµŠ½Ń " +"<menuchoice><guimenu>ŠŠµŃŠµŃ Š¾Š“</guimenu><guimenuitem>Š”Š»ŠµŠ“ŃŃŃŠ°Ń</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠµŃ Š¾Š“Š° Šŗ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ, Š²ŃŠ±ŠµŃŠøŃŠµ Š² Š¼ŠµŠ½Ń " +"<menuchoice><guimenu>ŠŠµŃŠµŃ Š¾Š“</guimenu><guimenuitem>ŠŃŠµŠ“ŃŠ“ŃŃŠ°Ń</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠµŃ Š¾Š“Š° Šŗ ŠæŠµŃŠ²Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµ, Š²ŃŠ±ŠµŃŠøŃŠµ Š² Š¼ŠµŠ½Ń " +"<menuchoice><guimenu>ŠŠµŃŠµŃ Š¾Š“</guimenu><guimenuitem>ŠŠ°ŃŠ°Š»Š¾</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠµŃ Š¾Š“Š° Šŗ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ, Š²ŃŠ±ŠµŃŠøŃŠµ Š² Š¼ŠµŠ½Ń " +"<menuchoice><guimenu>ŠŠµŃŠµŃ Š¾Š“</guimenu><guimenuitem>ŠŠ¾Š½ŠµŃ</guimenuitem></" +"menuchoice>." + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠµŃ Š¾Š“Š° Šŗ Š·Š°Š“Š°Š½Š½Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµ, Š²Š²ŠµŠ“ŠøŃŠµ ŠµŃ Š½Š¾Š¼ŠµŃ ŠøŠ»Šø Š¼ŠµŃŠŗŃ Š² ŃŠµŠŗŃŃŠ¾Š²Š¾Š¼ " +"ŠæŠ¾Š»Šµ Š½Š° ŠæŠ°Š½ŠµŠ»Šø ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½Š¾Š² Šø Š½Š°Š¶Š¼ŠøŃŠµ <keycap>ŠŠ²Š¾Š“</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃ" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"ŠŠ»Ń Š¾ŃŠ¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ ŃŠŗŃŃŃŠ¾Š³Š¾ ŃŠ¾Š“ŠµŃŠ¶ŠøŠ¼Š¾Š³Š¾ ŃŃŃŠ°Š½ŠøŃŃ, ŠøŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ " +"Š“ŠµŠ¹ŃŃŠ²ŠøŃ:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "ŠŃŠ¾ŠŗŃŃŃŠøŠ²Š°Š¹ŃŠµ Š¾ŠŗŠ½Š¾ Ń ŠæŠ¾Š¼Š¾ŃŃŃ ŃŃŃŠµŠ»Š¾Šŗ ŠøŠ»Šø ŠæŃŠ¾Š±ŠµŠ»Š° Š½Š° ŠŗŠ»Š°Š²ŠøŠ°ŃŃŃŠµ." + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"ŠŠ°Ń Š²Š°ŃŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŃŠµŠ“Š½ŠµŠ¹ ŠŗŠ½Š¾ŠæŠŗŠ¾Š¹ Š¼ŃŃŠø Šø ŠæŠµŃŠµŃŠ°ŃŠøŃŠµ Š² ŠæŃŠ¾ŃŠøŠ²Š¾ŠæŠ¾Š»Š¾Š¶Š½Š¾Š¼ Š¶ŠµŠ»Š°ŠµŠ¼Š¾Š¼Ń " +"Š½Š°ŠæŃŠ°Š²Š»ŠµŠ½ŠøŠø. ŠŠ°ŠæŃŠøŠ¼ŠµŃ, ŃŃŠ¾Š±Ń ŠæŃŠ¾ŠŗŃŃŃŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š²Š½ŠøŠ·, ŠæŠµŃŠµŃŠ°ŃŠøŃŠµ ŃŠ°Š±Š¾ŃŃŃ " +"Š¾Š±Š»Š°ŃŃŃ Šŗ Š²ŠµŃŃ Ń Š¾ŠŗŠ½Š°." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŃŠ»ŠµŠ¼ŠµŠ½ŃŃ ŠæŃŠ¾ŠŗŃŃŃŠŗŠø Š¾ŠŗŠ½Š°." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "ŠŠ·Š¼ŠµŠ½ŠµŠ½ŠøŠµ ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "ŠŠ»Ń ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ ŃŠ“ŠµŠ»Š°Š¹ŃŠµ ŃŠ»ŠµŠ“ŃŃŃŠµŠµ:" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŃŠ²ŠµŠ»ŠøŃŠµŠ½ŠøŃ ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</" +"guimenu><guimenuitem>Š£Š²ŠµŠ»ŠøŃŠøŃŃ</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŃŠ¼ŠµŠ½ŃŃŠµŠ½ŠøŃ ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</" +"guimenu><guimenuitem>Š£Š¼ŠµŠ½ŃŃŠøŃŃ</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŃŠ¾Š³Š¾, ŃŃŠ¾Š±Ń ŃŠ“ŠµŠ»Š°ŃŃ ŃŠøŃŠøŠ½Ń ŃŃŃŠ°Š½ŠøŃŃ ŃŠ°Š²Š½Š¾Š¹ ŃŠøŃŠøŠ½Šµ Š¾ŠŗŠ½Š° ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ " +"<application>Evince</application>, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</" +"guimenu><guimenuitem>ŠŠ¾ ŃŠøŃŠøŠ½Šµ</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŃŠ¾Š³Š¾, ŃŃŠ¾Š±Ń ŃŠ¼ŠµŃŃŠøŃŃ ŃŃŃŠ°Š½ŠøŃŃ Š² Š¾ŠŗŠ½Šµ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</" +"application>, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</" +"guimenu><guimenuitem>Š£Š¼ŠµŃŃŠøŃŃ Š² Š¾ŠŗŠ½Šµ</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Š§ŃŠ¾Š±Ń ŃŠ°Š·Š²ŠµŃŠ½ŃŃŃ Š¾ŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</application> Š½Š° Š²ŠµŃŃ " +"ŃŠŗŃŠ°Š½, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</guimenu><guimenuitem>ŠŠ¾ Š²ŠµŃŃ " +"ŃŠŗŃŠ°Š½</guimenuitem></menuchoice>. Š§ŃŠ¾Š±Ń Š²ŠµŃŠ½ŃŃŃŃŃ Šŗ Š½Š°ŃŠ°Š»ŃŠ½Š¾Š¼Ń ŃŠ¾ŃŃŠ¾ŃŠ½ŠøŃ, " +"Š½Š°Š¶Š¼ŠøŃŠµ Š½Š° ŠŗŠ½Š¾ŠæŠŗŃ <guibutton>ŠŃŠ¹ŃŠø ŠøŠ· ŠæŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Š°</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "ŠŃŠ¾ŃŠ¼Š¾ŃŃ ŃŃŃŠ°Š½ŠøŃ ŠøŠ»Šø ŃŃŃŃŠŗŃŃŃŃ" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" +"ŠŠ»Ń ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° ŃŃŃŠ°Š½ŠøŃ ŠøŠ»Šø ŃŃŃŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠæŃŠ¾ŠøŠ·Š²ŠµŠ“ŠøŃŠµ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ Š“ŠµŠ¹ŃŃŠ²ŠøŃ:" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"ŠŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>ŠŠøŠ“</guimenu><guimenuitem>ŠŠ¾ŠŗŠ¾Š²Š°Ń ŠæŠ°Š½ŠµŠ»Ń</" +"guimenuitem></menuchoice> ŠøŠ»Šø Š½Š°Š¶Š¼ŠøŃŠµ <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š²ŃŠ±Š¾ŃŠ° Š½ŃŠ¶Š½Š¾Š³Š¾ ŃŠ»ŠµŠ¼ŠµŠ½ŃŠ° - ŃŃŃŃŠŗŃŃŃŃ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠøŠ»Šø ŃŃŃŠ°Š½ŠøŃ Š½Š° Š±Š¾ŠŗŠ¾Š²Š¾Š¹ ŠæŠ°Š½ŠµŠ»Šø." + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŠæŠ¾Š»Š¾ŃŃ ŠæŃŠ¾ŠŗŃŃŃŠŗŠø Š½Š° Š±Š¾ŠŗŠ¾Š²Š¾Š¹ ŠæŠ°Š½ŠµŠ»Šø Š“Š»Ń Š¾ŃŠ¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ ŃŃŠµŠ±ŃŠµŠ¼Š¾Š¹ " +"ŃŃŃŠ»ŠŗŠø ŠøŠ»Šø ŃŃŃŠ°Š½ŠøŃŃ." + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"Š©ŃŠ»ŠŗŠ½ŠøŃŠµ Š¼ŃŃŃŃ Š½Š° ŃŠ»ŠµŠ¼ŠµŠ½ŃŠµ ŃŃŠ¾Š±Ń Š¾ŃŠ¾Š±ŃŠ°Š·ŠøŃŃ ŠµŠ³Š¾ Š² Š¾ŃŠ½Š¾Š²Š½Š¾Š¹ Š¾Š±Š»Š°ŃŃŠø. ŠŠ°Š¶Š¼ŠøŃŠµ " +"Š½Š° ŃŃŃŠ°Š½ŠøŃŃ ŃŃŠ¾Š±Ń ŠæŠ¾ŠŗŠ°Š·Š°ŃŃ ŠµŃ." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š°" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ° ŃŠ²Š¾Š¹ŃŃŠ² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>Š”Š²Š¾Š¹ŃŃŠ²Š°</guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"ŠŠøŠ°Š»Š¾Š³ <guilabel>Š”Š²Š¾Š¹ŃŃŠ²Š°</guilabel> ŠæŠ¾ŠŗŠ°Š·ŃŠ²Š°ŠµŃ Š²ŃŃ Š“Š¾ŃŃŃŠæŠ½ŃŃ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "ŠŠµŃŠ°ŃŃ" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŠæŠµŃŠ°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠµŃŠ°ŃŃ</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"ŠŃŠ»Šø Š²Ń Š½Šµ Š¼Š¾Š¶ŠµŃŠµ Š²ŃŠ±ŃŠ°ŃŃ <guimenuitem>ŠŠµŃŠ°ŃŃ</guimenuitem> Š² Š¼ŠµŠ½Ń, Š·Š½Š°ŃŠøŃ " +"Š°Š²ŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š·Š°ŠæŃŠµŃŠøŠ» ŠµŠ³Š¾ ŠæŠµŃŠ°ŃŃ. Š§ŃŠ¾Š±Ń ŠæŠ¾Š»ŃŃŠøŃŃ Š²Š¾Š·Š¼Š¾Š¶Š½Š¾ŃŃŃ Š½Š°ŠæŠµŃŠ°ŃŠ°ŃŃ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, Š²Ń Š“Š¾Š»Š¶Š½Ń Š²Š²ŠµŃŃŠø Š³Š»Š°Š²Š½ŃŠ¹ ŠæŠ°ŃŠ¾Š»Ń ŠæŃŠø Š¾ŃŠŗŃŃŃŠøŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. Š”Š¼Š¾ŃŃŠøŃŠµ " +"ŃŠ°ŃŃŃ <xref linkend=\"evince-password\"/> Š³Š“Šµ Š¾ŠæŠøŃŠ°Š½Š° ŃŠ°Š±Š¾ŃŠ° Ń Š·Š°ŃŠøŃŃŠ½Š½ŃŠ¼Šø " +"ŃŠ°Š¹Š»Š°Š¼Šø." + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "ŠŠøŠ°Š»Š¾Š³ <guilabel>ŠŠµŃŠ°ŃŃ</guilabel> ŠøŠ¼ŠµŠµŃ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ Š²ŠŗŠ»Š°Š“ŠŗŠø:" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "ŠŠ°Š“Š°Š½ŠøŠµ" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "ŠŃŠøŠ½ŃŠµŃ" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "ŠŃŠ¼Š°Š³Š°" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "ŠŃŠ¾Š¼ŠµŠ¶ŃŃŠ¾Šŗ ŃŃŃŠ°Š½ŠøŃ" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"ŠŃŠ±ŠµŃŠøŃŠµ Š¾Š“Š½Ń ŠøŠ· ŃŠ»ŠµŠ“ŃŃŃŠøŃ Š²Š¾Š·Š¼Š¾Š¶Š½Š¾ŃŃŠµŠ¹ Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ ŠŗŠ¾Š»ŠøŃŠµŃŃŠ²Š° ŠæŠµŃŠ°ŃŠ°ŠµŠ¼ŃŃ " +"ŃŃŃŠ°Š½ŠøŃ:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "ŠŃŠµ" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "ŠŃŠ±ŠµŃŠøŃŠµ ŃŃŃ Š²Š¾Š·Š¼Š¾Š¶Š½Š¾ Š“Š»Ń ŠæŠµŃŠ°ŃŠø Š²ŃŠµŃ ŃŃŃŠ°Š½ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Š”ŃŃŠ°Š½ŠøŃŃ Š¾Ń" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"ŠŃŠ±ŠµŃŠøŃŠµ ŃŃŠ¾Ń Š²Š°ŃŠøŠ°Š½Ń Š“Š»Ń ŠæŠµŃŠ°ŃŠø Š·Š°Š“Š°Š½Š½Š¾Š³Š¾ ŠæŃŠ¾Š¼ŠµŠ¶ŃŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃ. ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ " +"ŠæŠ¾Š»Ń Š²Š²Š¾Š“Š° ŃŠøŃŠµŠ» Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ ŠæŠµŃŠ²Š¾Š¹ Šø ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŃ ŠæŃŠ¾Š¼ŠµŠ¶ŃŃŠŗŠ°." + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŃŃŠ¾Ń Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š²ŃŠ±Š¾ŃŠ° Š½ŃŠ¶Š½Š¾Š³Š¾ ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"Š¤ŃŠ½ŠŗŃŠøŃ <guilabel>Š”Š¾Š·Š“Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń PDF</guilabel> Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ Š² ŃŃŠ¾Š¹ " +"Š²ŠµŃŃŠøŠø ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŃŃŠ¾Ń Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ Š½Š°ŃŃŃŠ¾ŠµŠŗ ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"ŠŠ»Ń Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø ŠæŃŠøŠ½ŃŠµŃŠ°, Š½Š°Š¶Š¼ŠøŃŠµ <guibutton>ŠŠ°ŃŃŃŠ¾ŠøŃŃ</guibutton>. ŠŠ°ŠæŃŠøŠ¼ŠµŃ, " +"Š¼Š¾Š¶Š½Š¾ Š²ŃŠŗŠ»ŃŃŠ°ŃŃ ŠøŠ»Šø Š²ŃŠŗŠ»ŃŃŠ°ŃŃ Š“ŃŠæŠ»ŠµŠŗŃŠ½ŃŠ¹ ŃŠµŠ¶ŠøŠ¼, ŠæŠ»Š°Š½ŠøŃŠ¾Š²Š°ŃŃ ŠæŠµŃŠ°ŃŃ ŠæŠ¾ " +"ŃŠ°ŃŠæŠøŃŠ°Š½ŠøŃ, ŠµŃŠ»Šø ŃŃŠ° ŃŃŠ½ŠŗŃŠøŠ¾Š½Š°Š»ŃŠ½Š¾ŃŃŃ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ ŠæŃŠøŠ½ŃŠµŃŠ¾Š¼." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "ŠŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š²ŃŠ±Š¾ŃŠ° Š¾Š“Š½Š¾Š³Š¾ ŠøŠ· ŠæŃŠøŠ½ŃŠµŃŠ¾Š²:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "ŠŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŃŠæŠ¾Š»ŃŠ·ŃŃ ŃŠøŃŃŠµŠ¼Ń ŠæŠµŃŠ°ŃŠø CUPS." + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"ŠŃŠ»Šø Š²ŃŠ±ŃŠ°Š½Š½ŃŠ¹ ŠæŃŠøŠ½ŃŠµŃ ŃŠ°Š±Š¾ŃŠ°ŠµŃ ŃŠµŃŠµŠ· ŃŠøŃŃŠµŠ¼Ń CUPS, ŠµŠ“ŠøŠ½ŃŃŠ²ŠµŠ½Š½Š¾Š¹ Š¼ŠµŃŠŗŠ¾Š¹ Š² " +"ŠæŠ¾Š»Šµ Š±ŃŠ“ŠµŃ <guilabel>CUPS</guilabel>." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "ŠŃŠæŃŠ°Š²ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŃŃŠ¼Š¾ Š½Š° ŠæŃŠøŠ½ŃŠµŃ." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Š¤Š°Š¹Š»" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "ŠŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š² ŃŠ°Š¹Š» PostScript." + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"ŠŠ°Š¶Š¼ŠøŃŠµ <guibutton>Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ°Šŗ</guibutton> Šø Š²Š²ŠµŠ“ŠøŃŠµ ŠæŃŃŃ Šŗ ŃŠ¾Š·Š“Š°Š²Š°ŠµŠ¼Š¾Š¼Ń " +"ŃŠ°Š¹Š»Ń Š² ŠæŠ¾ŃŠ²ŠøŠ²ŃŠµŠ¼ŃŃ Š“ŠøŠ°Š»Š¾Š³Šµ." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "ŠŃŃŠ³Š¾Šµ" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "ŠŠ°Š“Š°ŃŃ ŠŗŠ¾Š¼Š°Š½Š“Ń Š“Š»Ń ŠæŠµŃŠ°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "ŠŠ°Š“Š°Š¹ŃŠµ ŠŗŠ¾Š¼Š°Š½Š“Ń Š² ŠæŠ¾Š»Šµ Š²Š²Š¾Š“Š°. ŠŠµ Š·Š°Š±ŃŠ“ŃŃŠµ ŠæŃŠ¾ Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŃ." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Š”Š¾ŃŃŠ¾ŃŠ½ŠøŠµ" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"ŠŃŠ° ŃŃŠ½ŠŗŃŠøŃ Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ Š² ŃŃŠ¾Š¹ Š²ŠµŃŃŠøŠø <application>Evince</" +"application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Š¢ŠøŠæ" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "ŠŠ¾Š¼Š¼ŠµŠ½ŃŠ°ŃŠøŠ¹" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Š Š°Š·Š¼ŠµŃ Š±ŃŠ¼Š°Š³Šø" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š²ŃŠ±Š¾ŃŠ° ŃŠ°Š·Š¼ŠµŃŠ° Š±ŃŠ¼Š°Š³Šø Š“Š»Ń ŠæŠµŃŠ°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "ŠØŠøŃŠøŠ½Š°" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŠæŠ¾Š»Šµ Š²Š²Š¾Š“Š° ŃŠøŃŠµŠ» Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ ŃŠøŃŠøŠ½Ń Š±ŃŠ¼Š°Š³Šø. ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ " +"Š“Š¾ŠæŠ¾Š»Š½ŠøŃŠµŠ»ŃŠ½ŃŠ¹ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ ŠµŠ“ŠøŠ½ŠøŃ ŠøŠ·Š¼ŠµŃŠµŠ½ŠøŃ." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "ŠŃŃŠ¾ŃŠ°" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ ŠæŠ¾Š»Šµ Š²Š²Š¾Š“Š° ŃŠøŃŠµŠ» Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ Š²ŃŃŠ¾ŃŃ Š±ŃŠ¼Š°Š³Šø." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "ŠŃŠøŠµŠ½ŃŠ°ŃŠøŃ ŠæŠ¾Š“Š°ŃŠø" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŠø Š±ŃŠ¼Š°Š³Šø Š² ŠæŃŠøŠ½ŃŠµŃŠµ." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "ŠŃŠøŠµŠ½ŃŠ°ŃŠøŃ ŃŃŃŠ°Š½ŠøŃ" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š·Š°Š“Š°Š½ŠøŃ Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŠø ŃŃŃŠ°Š½ŠøŃ." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Š Š°ŃŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠµŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š“Š»Ń Š²ŃŠ±Š¾ŃŠ° ŃŠ°ŃŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŃ ŃŃŃŠ°Š½ŠøŃ. " +"ŠŃŠµŠ“Š²Š°ŃŠøŃŠµŠ»ŃŠ½Š¾ ŃŠµŠ·ŃŠ»ŃŃŠ°Ń ŠæŠ¾ŠŗŠ°Š·ŃŠ²Š°ŠµŃŃŃ Š² Š¾Š±Š»Š°ŃŃŠø <guilabel>ŠŠ±ŃŠ°Š·ŠµŃ</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "ŠŠ¾ŃŠ¾Šŗ ŠæŠµŃŠ°ŃŠø" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ Š²ŃŠæŠ°Š“Š°ŃŃŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ ŃŃŠ¾Š±Ń Š²ŃŠ±ŃŠ°ŃŃ ŠæŠ¾ŃŠ¾Šŗ ŠæŠµŃŠ°ŃŠø." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Š”Š¾Š·Š“Š°Š½ŠøŠµ ŠŗŠ¾ŠæŠøŠø" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "ŠŠ»Ń ŃŠ¾Š·Š“Š°Š½ŠøŃ ŠŗŠ¾ŠæŠøŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, Š²ŃŠæŠ¾Š»Š½ŠøŃŠµ ŃŠ»ŠµŠ“ŃŃŃŠµŠµ:" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"ŠŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ</" +"guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"ŠŠ²ŠµŠ“ŠøŃŠµ Š½Š¾Š²Š¾Šµ ŠøŠ¼Ń ŃŠ°Š¹Š»Š° Š² ŠæŠ¾Š»Šµ Š²Š²Š¾Š“Š° <guilabel>ŠŠ¼Ń</guilabel> Š² Š“ŠøŠ°Š»Š¾Š³Šµ " +"<guilabel>Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ</guilabel> dialog." + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"ŠŃŠ»Šø Š½ŠµŠ¾Š±Ń Š¾Š“ŠøŠ¼Š¾, Š·Š°Š“Š°Š¹ŃŠµ ŃŠ°ŃŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµ Š½Š¾Š²Š¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. ŠŠ¾ ŃŠ¼Š¾Š»ŃŠ°Š½ŠøŃ, ŠŗŠ¾ŠæŠøŠø " +"ŃŠ¾Ń ŃŠ°Š½ŃŃŃŃŃ Š² Š“Š¾Š¼Š°ŃŠ½ŠøŠ¹ ŠŗŠ°ŃŠ°Š»Š¾Š³ ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŠµŠ»Ń." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "ŠŠ°Š¶Š¼ŠøŃŠµ <guibutton>Š”Š¾Ń ŃŠ°Š½ŠøŃŃ</guibutton>" + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Š Š°Š±Š¾ŃŠ° Ń Š·Š°ŃŠøŃŃŠ½Š½ŃŠ¼Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°Š¼Šø" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"ŠŠ²ŃŠ¾Ń Š¼Š¾Š¶ŠµŃ ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŃ ŃŠ»ŠµŠ“ŃŃŃŠøŠµ ŃŃŠ¾Š²Š½Šø Š“Š¾ŃŃŃŠæŠ° Š“Š»Ń Š·Š°ŃŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "ŠŠ°ŃŠ¾Š»Ń ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŠµŠ»Ń ŠŗŠ¾ŃŠ¾ŃŃŠ¹ ŠæŠ¾Š·Š²Š¾Š»ŃŠµŃ Š“ŃŃŠ³ŠøŠ¼ ŃŠøŃŠ°ŃŃ ŃŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"ŠŠ»Š°Š²Š½ŃŠ¹ ŠæŠ°ŃŠ¾Š»Ń ŠŗŠ¾ŃŠ¾ŃŃŠ¹ ŠæŠ¾Š·Š²Š¾Š»ŃŠµŃ Š“ŃŃŠ³ŠøŠ¼ ŠæŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŃ Š“Š¾ŠæŠ¾Š»Š½ŠøŃŠµŠ»ŃŠ½ŃŠµ Š“ŠµŠ¹ŃŃŠ²ŠøŃ, " +"Š½Š°ŠæŃŠøŠ¼ŠµŃ, ŠæŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"ŠŠ¾Š³Š“Š° Š²Ń ŠæŃŃŠ°ŠµŃŠµŃŃ Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, Š·Š°ŃŠøŃŃŠ½Š½ŃŠ¹ ŠæŠ°ŃŠ¾Š»ŠµŠ¼, " +"<application>Evince</application> ŠæŃŠµŠ“ŃŃŠ°Š²ŠøŃ Š“ŠøŠ°Š»Š¾Š³. ŠŠ²ŠµŠ“ŠøŃŠµ ŠæŠ°ŃŠ¾Š»Ń " +"ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŠµŠ»Ń ŠøŠ»Šø Š³Š»Š°Š²Š½ŃŠ¹ ŠæŠ°ŃŠ¾Š»Ń Š² ŠæŠ¾Š»Šµ Š²Š²Š¾Š“Š° ŠæŠ°ŃŠ¾Š»Ń, ŠæŠ¾ŃŠ¾Š¼ Š½Š°Š¶Š¼ŠøŃŠµ Š½Š° ŠŗŠ½Š¾ŠæŠŗŃ " +"<guibutton>ŠŠ</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "ŠŠ°Š²ŠµŃŃŠµŠ½ŠøŠµ ŃŠ°Š±Š¾ŃŃ" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń ŃŠ¾Š³Š¾, ŃŃŠ¾Š±Ń Š·Š°ŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, Š²ŃŠ±ŠµŃŠøŃŠµ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠ°ŠŗŃŃŃŃ</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"ŠŃŠ»Šø Š·Š°ŠŗŃŃŃŠ¾ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠµ Š¾ŠŗŠ½Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ <application>Evince</application>, " +"ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š·Š°Š²ŠµŃŃŠøŃ ŃŠ°Š±Š¾ŃŃ." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "ŠŃŃŃŃŃŠµ ŠŗŠ»Š°Š²ŠøŃŠø" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "" +"ŠŠøŠ¶Šµ ŠæŠµŃŠµŃŠøŃŠ»ŠµŠ½Ń ŠŗŠ»Š°Š²ŠøŠ°ŃŃŃŠ½ŃŠµ ŠŗŠ¾Š¼Š±ŠøŠ½Š°ŃŠøŠø <application>Evince</" +"application>." + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "ŠŠ»Š°Š²ŠøŠ°ŃŃŃŠ½ŃŠµ ŠŗŠ¾Š¼Š±ŠøŠ½Š°ŃŠøŠø" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:682(keycap) C/evince.xml:701(keycap) +#: C/evince.xml:747(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "ŠŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ ŃŠµŠŗŃŃŠµŠ³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "ŠŠ°ŠæŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "ŠŠ°ŠŗŃŃŃŃ Š¾ŠŗŠ½Š¾" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Š”ŠŗŠ¾ŠæŠøŃŠ¾Š²Š°ŃŃ Š²ŃŠ“ŠµŠ»ŠµŠ½ŠøŠµ" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "ŠŃŠ“ŠµŠ»ŠøŃŃ Š²ŃŃ" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (ŃŠ»ŠµŃ)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "ŠŠ°Š¹ŃŠø ŃŠ»Š¾Š²Š¾ ŠøŠ»Šø ŃŃŠ°Š·Ń Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: C/evince.xml:682(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:683(para) +msgid "Find next" +msgstr "ŠŠ°Š¹ŃŠø ŃŠ»ŠµŠ“ŃŃŃŠµŠµ Š²Ń Š¾Š¶Š“ŠµŠ½ŠøŠµ ŃŠ»Š¾Š²Š°" + +#: C/evince.xml:687(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (Š·Š½Š°Šŗ ŠæŠ»ŃŃ)" + +#: C/evince.xml:688(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:689(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:691(para) +msgid "Zoom in" +msgstr "Š£Š²ŠµŠ»ŠøŃŠøŃŃ Š¼Š°ŃŃŃŠ°Š±" + +#: C/evince.xml:695(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo>. (Š·Š½Š°Šŗ Š¼ŠøŠ½ŃŃ)" + +#: C/evince.xml:696(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:698(para) +msgid "Zoom out" +msgstr "Š£Š¼ŠµŠ½ŃŃŠøŃŃ Š¼Š°ŃŃŃŠ°Š±" + +#: C/evince.xml:701(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:702(para) +msgid "Reload the document" +msgstr "ŠŠµŃŠµŃŠøŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: C/evince.xml:706(keycap) C/evince.xml:731(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:707(para) +msgid "Go to the previous page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: C/evince.xml:710(keycap) C/evince.xml:735(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:711(para) +msgid "Go to the next page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŠ»ŠµŠ“ŃŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: C/evince.xml:715(keycap) C/evince.xml:723(keycap) +msgid "Space" +msgstr "ŠŃŠ¾Š±ŠµŠ»" + +#: C/evince.xml:716(keycap) C/evince.xml:723(keycap) C/evince.xml:725(keycap) +#: C/evince.xml:731(keycap) C/evince.xml:735(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:716(keycap) C/evince.xml:724(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:717(keycap) C/evince.xml:725(keycap) +msgid "Return" +msgstr "Return" + +#: C/evince.xml:719(para) +msgid "Scroll forward" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠøŃŃ Š²ŠæŠµŃŃŠ“" + +#: C/evince.xml:727(para) +msgid "Scroll backward" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠøŃŃ Š½Š°Š·Š°Š“" + +#: C/evince.xml:732(para) +msgid "Go a bunch of pages up" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š½Š° Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠ¾ ŃŃŃŠ°Š½ŠøŃ Š²Š²ŠµŃŃ " + +#: C/evince.xml:736(para) +msgid "Go a bunch of pages down" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š½Š° Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠ¾ ŃŃŃŠ°Š½ŠøŃ Š²Š½ŠøŠ·" + +#: C/evince.xml:739(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:740(para) +msgid "Go to the first page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠµŃŠ²Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: C/evince.xml:743(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:744(para) +msgid "Go to the last page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: C/evince.xml:747(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:748(para) +msgid "Go to page by number or label" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŃŃŠ°Š½ŠøŃŠµ ŠæŠ¾ Š½Š¾Š¼ŠµŃŃ ŠøŠ»Šø ŠæŠ¾ Š¼ŠµŃŠŗŠµ" + +#: C/evince.xml:751(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:752(para) +msgid "Help" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŃŠæŃŠ°Š²ŠŗŃ" + +#: C/evince.xml:755(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:756(para) +msgid "Run document as presentation" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š² ŃŠµŠ¶ŠøŠ¼ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŠø" + +#: C/evince.xml:759(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:760(para) +msgid "Show or hide the side pane" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŠøŠ»Šø ŃŠŗŃŃŃŃ Š±Š¾ŠŗŠ¾Š²ŃŃ ŠæŠ°Š½ŠµŠ»Ń" + +#: C/evince.xml:763(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:764(para) +msgid "Toggle fullscreen mode" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š² ŠæŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½ŃŠ¹ ŃŠµŠ¶ŠøŠ¼" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"ŠŠøŠŗŠ¾Š»Š°Š¹ Š. ŠØŠ¼ŃŃŃŠ², 2006\n" +"Š¢ŠøŠ¼ŃŃ Š . Š”Š°Š»ŠøŃ Š¾Š², 2008" diff --git a/help/sl/sl.po b/help/sl/sl.po new file mode 100644 index 00000000..28c3701c --- /dev/null +++ b/help/sl/sl.po @@ -0,0 +1,906 @@ +# Slovenian translation for evince-help. +# This file is distributed under the same license as the evince-help package. +# Andrej ŽnidarÅ”iÄ <andrej.znidarsic@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: Evince documentation\n" +"POT-Creation-Date: 2010-04-25 16:28+0000\n" +"PO-Revision-Date: \n" +"Last-Translator: Andrej ŽnidarÅ”iÄ <andrej.znidarsic@gmail.com>\n" +"Language-Team: Slovenian MATE Translation Team <mate-si@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\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" +"X-Poedit-SourceCharset: utf-8\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "PriroÄnik Evince pregledovalnika dokumentov" + +#: C/evince.xml:27(para) +msgid "The Evince Document Viewer application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "Evince pregledovalnik dokumentov vam omogoÄa ogled dokumentov razliÄnih vrst kot sta datoteki Prenosljiva vrsta dokumenta (PDF) in datoteke PostScript " + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) +#: C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) +#: C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) +#: C/evince.xml:67(orgname) +#: C/evince.xml:93(para) +#: C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Projekt dokumentacije MATE" + +#: C/evince.xml:2(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +msgstr "Dano je dovoljenje za kopiranje, distribuiranje in/ali spreminjanje tega dokumenta pod pogoji GNU Free Documentation License (GFDL) razliÄice 1.1 ali katerekoli kasnejÅ”e razliÄice, ki jo je objavila Free Software Foundation brez stalnih odsekov, besedila naslovnice in zadnje strani. Kopijo GFDL lahko najdete na tej <ulink type=\"help\" url=\"ghelp:fdl\">povezavi</ulink> ali v datoteki COPYING-DOCS distribuirani s tem priroÄnikom." + +#: C/evince.xml:12(para) +msgid "This manual is part of a collection of MATE manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license." +msgstr "Ta priroÄnik je del zbirke priroÄnikov MATE distribuiranih pod GFDL. V primeru da želite ta priroÄnik distribuirati loÄeno od zbirke, lahko to storite z dodajanjem kopije licence priroÄnika, kot je opisano v odseku 6 licence." + +#: C/evince.xml:19(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any MATE documentation, and the members of the MATE Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters." +msgstr "Veliko imen podjetja uporabljajo za loÄevanje njihovih produktov in storitev, zato si jih lastijo kot blagovne znamke. Kjer se ta mena pojavijo v katerikoli dokumentaciji MATE in Älani dokumentacijskega projekta MATE vedo za njih, so imena v velikih Ärkah ali pa se zaÄnejo z velikimi Ärkami." + +#: C/evince.xml:35(para) +msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" + +#: C/evince.xml:55(para) +msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES." +msgstr "" + +#: C/evince.xml:28(para) +msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>" +msgstr "DOKUMENT IN SPREMENJENE RAZLIÄICE DOKUMENTA SO ZAGOTOVLJENE POD POGOJI GNU FREE DOCUMENTATION LICENCE Z NADALJNJIM RAZUMEVANJEM DA: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Dokumentacijska ekipa MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "PriroÄnik Evince pregledovalnika dokumentov r 1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "05.04.2008" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "PriroÄnik Evince pregledovalnika dokumentov r 1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "06.04.2005" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Ta priroÄnik opisuje Evince pregledovalnik dokumentov razliÄico 0.2" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Odziv" + +#: C/evince.xml:110(para) +msgid "To report a bug or make a suggestion regarding the Evince Document Viewer application or this manual, follow the directions in the <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "Za poroÄilo hroÅ”Äa ali predloga glede Evince pregledovalnika dokumentov ali tega priroÄnika sledite smernicam na <ulink url=\"ghelp:mate-feedback\" type=\"help\">Strani odziva MATE </ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Evince pregledovalnik dokumentov" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Uvod" + +#: C/evince.xml:129(para) +msgid "The <application>Evince Document Viewer</application> application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. <application>Evince Document Viewer</application> follows Freedesktop.org and MATE standards to provide integration with Desktop Environment." +msgstr "Program <application>Evince pregledovalnik dokumentov</application> vam omogoÄa ogled dokumentov razliÄnih vrst kot so datoteke Prenosljiva vrsta dokumenta (PDF) in PostScript. <application>Evince pregledovalnik dokumentov</application> sledi Freedestop.org in MATE standardom za vkljuÄitev v namizno okolje." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Kako zaÄeti" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Za zagon Evince pregledovalnika dokumentov" + +#: C/evince.xml:140(para) +msgid "<application>Evince Document Viewer</application> starts when you open a document such as a PDF or PostScript file." +msgstr "<application>Evince pregledovalnik dokumentov</application> se zažene, ko odprete dokument kot je datoteka PDF ali PostScript." + +#: C/evince.xml:141(para) +msgid "Alternatively, you can start <application>Evince Document Viewer</application> from the command line, with the command: <command>evince</command>." +msgstr "Dodatno lahko <application>Evince pregledovalnik dokumentov</application> zaženete v ukazni vrstici z ukazom: <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Ko zaženete Evince pregledovalnik dokumentov" + +#: C/evince.xml:147(para) +msgid "When you start <application>Evince Document Viewer</application>, the following window is displayed." +msgstr "Ob zagonu <application>Evince pregledovalnika dokumentov</application> je prikazano naslednje okno." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Okno Evince pregledovalnika dokumentov " + +#: C/evince.xml:158(phrase) +msgid "Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "Pokaže glavno okno Evince pregledovalnika dokumentov. Vsebuje naslovno vrstico, menijsko vrstico, orodno vrstico in podroÄje prikaza. Menijska vrstica vsebuje menije Datoteka, Uredi, Pogled in PomoÄ." + +#: C/evince.xml:164(para) +msgid "The <application>Evince Document Viewer</application> window contains the following elements:" +msgstr "Okno <application>Evince pregledovalnika dokumentov</application> vsebuje naslednje predmete:" + +#: C/evince.xml:168(term) +#: C/evince.xml:216(para) +msgid "Menubar" +msgstr "Menijska vrstica" + +#: C/evince.xml:170(para) +msgid "The menus on the menubar contain all of the commands that you need to work with documents in <application>Evince Document Viewer</application>." +msgstr "Meniji v menijski vrstici vsebujejo vse ukaze, ki jih potrebujete za delo z dokumenti v <application>Evince pregledovalniku dokumentov</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Orodna vrstica" + +#: C/evince.xml:176(para) +msgid "The toolbar contains a subset of the commands that you can access from the menubar." +msgstr "Orodna vrstica vsebuje podniz ukazov dostopnih iz menijske vrstice." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "PodroÄje prikaza" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "PodroÄje prikaza prikaže dokument." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Sestavni del UV" + +#: C/evince.xml:198(para) +#: C/evince.xml:646(para) +msgid "Action" +msgstr "Dejanje" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Okno" + +#: C/evince.xml:207(para) +msgid "Drag a file into the <application>Evince Document Viewer</application> window from another application such as a file manager." +msgstr "Povlecite datoteko v okno <application>Evince pregledovalnika dokumentov</application> iz drugega programa kot je upravljalnik datotek." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Dvokliknite na ime datoteke v upravljalniku datotek" + +#: C/evince.xml:217(para) +#: C/evince.xml:244(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>." +msgstr "Izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Odpri</guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Tipkovne bližnjice" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Pritisnite <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "In <application>Evince Document Viewer</application>, you can perform the same action in several ways. For example, you can open a document in the following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" +msgstr "V <application>Evince pregledovalniku dokumentov</application> lahko isto dejanje izvedete na veÄ naÄinov. Dokument lahko na primer odprete na naslednje naÄine: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Ta priroÄnik opisuje zmožnosti iz menijske vrstice." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "Uporaba" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Za odpiranje dokumenta" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Za odpiranje dokumenta izvedite naslednje korake:" + +#: C/evince.xml:248(para) +msgid "In the <guilabel>Open Document</guilabel> dialog, select the file you want to open." +msgstr "V pogovornemu oknu <guilabel>Odpri dokument</guilabel> izberite datoteko, ki jo želite odpreti." + +#: C/evince.xml:253(para) +msgid "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</application> displays the name of the document in the titlebar of the window." +msgstr "Kliknite <guibutton>Odpri</guibutton>. <application>Evince pregledovalnik dokumentov</application> prikaže ime dokumenta v naslovni vrstici okna." + +#: C/evince.xml:258(para) +msgid "To open another document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. <application>Evince Document Viewer</application> opens each file in a new window." +msgstr "Za odprtje drugega dokumenta ponovno izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Odpri</guimenuitem></menuchoice>. <application>Evince pregledovalnik dokumentov</application> odpre vsako datoteko v svojemu oknu." + +#: C/evince.xml:261(para) +msgid "If you try to open a document with format that <application>Evince Document Viewer</application> does not recognize, the application displays an error message." +msgstr "V primeru da pokusite odpreti vrsto dokumenta, ki ga <application>Evince pregledovalnik dokumentov</application> ne prepozna, program prikaže sporoÄilo o napaki. " + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Za krmarjenje skozi dokument" + +# najprej sem imel kot sledi, amapk se mi zdi resniÄno pregrdo ... +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Skozi datoteko lahko krmarite na naslednje naÄine:" + +#: C/evince.xml:271(para) +msgid "To view the next page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "Za ogled naslednje strani izberite <menuchoice><guimenu>Pojdi</guimenu><guimenuitem>Naslednja stran</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "To view the previous page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "Za ogled predhodne strani izberite <menuchoice><guimenu>Pojdi</guimenu><guimenuitem>Predhodna stran</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "To view the first page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "Za ogled prve strani v dokumentu izberite <menuchoice><guimenu>Pojdi</guimenu><guimenuitem>Prva stran</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "To view the last page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "Za ogled zadnje strani v dokumentu izberite <menuchoice><guimenu>Pojdi</guimenu><guimenuitem>Zadnja stran</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>." +msgstr "Za ogled doloÄene strani vnesite Å”tevilko ali oznako strani v besedilno polje v orodni vrstici in pritisnite <keycap>Povratno tipko</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Za drsanje strani" + +#: C/evince.xml:295(para) +msgid "To display the page contents that are not currently displayed in the display area, use the following methods:" +msgstr "Za prikaz vsebine strani, ki trenutno ni prikazana v podroÄju prikaza, uporabite naslednje naÄine:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Uporabite smerne tipke ali preslednico na tipkovnici." + +#: C/evince.xml:301(para) +msgid "Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window." +msgstr "Povlecite podroÄje prikaza s klikom srednjega miÅ”kinega gumba nekje v dokumentu in premikom miÅ”ke. Na primer za drsanje navzdol po strani, povlecite podroÄje prikaza navzgor v oknu." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "Uporabite drsnike v oknu." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Za spremembo velikosti strani" + +#: C/evince.xml:312(para) +msgid "You can use the following methods to resize a page in the <application>Evince Document Viewer</application> display area:" +msgstr "Za spremembo velikosti strani v podroÄju prikaza <application>Evince pregledovalnika dokumentov</application> lahko uporabite naslednje naÄine:" + +#: C/evince.xml:317(para) +msgid "To increase the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "Za poveÄanje velikosti strani izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Približaj</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "To decrease the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "Za zmanjÅ”anje velikosti strani izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Oddalji</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "To resize a page to have the same width as the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "Za spremembo Å”irine strani na Å”irino podroÄja prikaza <application>Evince pregledovalnika dokumentov</application> izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Prilagojeno Å”irini strani</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "To resize a page to fit within the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "Za spremembo velikosti strani v podroÄju prikaza <application>Evince pregledovalnika dokumentov</application> izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Prilagojeno zaslonu</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "To resize the <application>Evince Document Viewer</application> window to have the same width and height as the screen, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></menuchoice>. To resize the <application>Evince Document Viewer</application> window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button." +msgstr "Za spremembo velikosti okna <application>Evince pregledovalnika dokumentov</application> na enako Å”irino in viÅ”ino kot zaslon izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Celozaslonski naÄin</guimenuitem></menuchoice>. Za spremembo velikosti okna <application>Evince pregledovalnika dokumentov</application> nazaj na izvorno velikost kliknite na gumb <guibutton>Zapusti celozaslonski naÄin</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Za ogled strani ali zgradbe dokumenta" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Za ogled zaznamkov ali strani izvedite naslednje korake:" + +#: C/evince.xml:350(para) +msgid "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "Izberite <menuchoice><guimenu>Pogled</guimenu><guimenuitem>Stranska vrstica</guimenuitem></menuchoice> ali pritisnite <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane." +msgstr "Za izbiro ali naj bo v stranskemu pladnju prikazana zgradba dokumenta ali strani uporabite spustni seznam." + +#: C/evince.xml:360(para) +msgid "Use the side-pane scrollbars to display the required item or page in the side pane." +msgstr "Za prikaz predmeta ali strani v stranskemu pladnju uporabite drsnike stranskega pladnja." + +#: C/evince.xml:365(para) +msgid "Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document." +msgstr "Kliknite na vnos za krmarjenje na to mesto v dokumentu. Kliknite na stran za krmarjenje na to stran v dokumentu." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Za ogled lastnosti dokumenta" + +#: C/evince.xml:372(para) +msgid "To view the properties of a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "Za ogled lastnosti dokumenta izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Lastnosti</guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "Pogovorno okno <guilabel>Lastnosti</guilabel> prikaže vse podrobnosti na voljo" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Za tiskanje dokumetna" + +#: C/evince.xml:385(para) +msgid "To print a Document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "Za tiskanje dokumenta izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Natisni</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend=\"evince-password\"/> for more information about password-protected files." +msgstr "V primeru da ne morete izbrati predmeta menija <guimenuitem>Natisni</guimenuitem> je avtor dokumenta za ta dokument onemogoÄil možnost tiska. Za omogoÄitev možnosti tiskanja morate pri odpiranju dokumenta vnesti glavno geslo. Oglejte si <xref linkend=\"evince-password\"/> za veÄ podrobnosti o z geslom zaÅ”Äitenih datotekah." + +#: C/evince.xml:393(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "Pogovorno okno <guilabel>Natisni</guilabel> vsebuje naslednje zavihke:" + +#: C/evince.xml:399(link) +#: C/evince.xml:415(title) +msgid "Job" +msgstr "Delo" + +#: C/evince.xml:404(link) +#: C/evince.xml:437(title) +#: C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Tiskalnik" + +#: C/evince.xml:409(link) +#: C/evince.xml:531(title) +msgid "Paper" +msgstr "Papir" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Obseg tiskanja" + +#: C/evince.xml:419(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "Izberite eno od naslednjih možnost za doloÄitev koliko strani naj bo natisnjenih:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Vse" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Izberite to možnost za tisk vseh strani v dokumentu." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Strani od" + +#: C/evince.xml:427(para) +msgid "Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range." +msgstr "Izberite to možnost za tiskanje izbranega obsega strani v dokumentu. Uporabite vrtilna polja za navedbo prve in zadnje strani obsega." + +#: C/evince.xml:441(para) +msgid "Use this drop-down list to select the printer to which you want to print the document." +msgstr "Uporabite ta spustni seznam za izbiro tiskalnika s katerim želite natisniti dokument." + +#: C/evince.xml:443(para) +msgid "The <guilabel>Create a PDF document</guilabel> option is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "Možnost <guilabel>Ustvari dokument PDF</guilabel> v tej razliÄici <application>Evince pregledovalnika dokumentov</application> ni podprta." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Nastavitve" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "Uporabite ta spustni seznam za izbiro nastavitev tiskalnika." + +#: C/evince.xml:453(para) +msgid "To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer." +msgstr "Za nastavitev tiskalnika, kliknite <guibutton>Nastavi</guibutton>. OmogoÄite ali onemogoÄite lahko dvostransko tiskanje ali razporedite zamaknjeno tiskanje, Äe tiskalnik podpira to zmožnost." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Mesto" + +#: C/evince.xml:459(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "Uporabite za spustni seznam za izbiro enega od naslednjih ciljev tiskanja:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Natisne dokument s tiskalnikom CUPS." + +#: C/evince.xml:470(para) +msgid "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list." +msgstr "V primeru da je izbrani tiskalnik tiskalnik CUPS, je <guilabel>CUPS</guilabel> edini vnos v spustnemu seznamu." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Natisne dokument na tiskalniku." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Datoteka" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Natisne dokument v datoteko PostScript." + +#: C/evince.xml:490(para) +msgid "Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file." +msgstr "Kliknite <guibutton>Shrani kot</guibutton> za prikaz pogovornega okna, kjer navedete ime in mesto datoteke PostScript." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Po meri" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Za tiskanje dokumenta uporabi navedeni ukaz." + +#: C/evince.xml:501(para) +msgid "Type the name of the command in the text box. Include all command-line arguments." +msgstr "VpiÅ”ite ime ukaza v besedilno polje. VkljuÄuje vse argumente ukazne vrstice." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Stanje" + +#: C/evince.xml:511(para) +#: C/evince.xml:517(para) +#: C/evince.xml:523(para) +msgid "This functionality is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "Ta zmožnost v tej razliÄici <application>Evince pregledovalnika dokumentov</application> ni podprta." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Vrsta" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Opomba" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Velikost papirja" + +#: C/evince.xml:535(para) +msgid "Use this drop-down list to select the size of the paper to which you want to print the document." +msgstr "Uporabite ta spustni seznam za izbiro velikosti papirja na katerega želite natisnite dokument." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Å irina" + +#: C/evince.xml:540(para) +msgid "Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit." +msgstr "Uporabite to vrtilno polje za navedbo Å”irine papirja. Uporabite sosednji spustni seznam za spremembo merske enote." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "ViÅ”ina" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Uporabite to vrtilno polje za navedbo viÅ”ine papirja." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Usmerjenost vira" + +#: C/evince.xml:550(para) +msgid "Use this drop-down list to select the orientation of the paper in the printer." +msgstr "Uporabite ta spustni seznam za izbiro usmerjenosti papirja v tiskalniku." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Usmerjenost strani" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Uporabite ta spustni seznam za izbiro usmerjenosti strani." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Postavitev" + +#: C/evince.xml:560(para) +msgid "Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "Uporabite ta spustni seznam za izbiro postavitve strani. Predogled vsake postavitve, ki jo izberete, je prikazan v podroÄju <guilabel>Predogled</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Predal s papirjem" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Uporabite ta spustni seznam za izbiro predala s papirjem." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Za kopiranje dokumenta" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Za kopiranje datoteko izvedite naslednje korake:" + +#: C/evince.xml:580(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</guimenuitem></menuchoice>." +msgstr "Izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Shrani kopijo</guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog." +msgstr "V polje <guilabel>Ime datoteke</guilabel> v pogovornemu oknu <guilabel>Shrani kopijo</guilabel> vpiÅ”ite novo ime datoteke." + +#: C/evince.xml:588(para) +msgid "If necessary, specify the location of the copied document. By default, copies are saved in your home directory." +msgstr "Navedite mesto kopiranega dokumenta. Privzeto so kopije shranjene v domaÄi mapi." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Kliknite <guibutton>Shrani</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Delo z dokumenti zaÅ”Äitenimi z geslom" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "Avtor lahko uporabi naslednje ravni gesla za zaÅ”Äito dokumenta:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "UporabniÅ”ko geslo, ki drugim dovoljuje le branje dokumenta." + +#: C/evince.xml:612(para) +msgid "Master password that allows others to perform additional actions, such as print the document." +msgstr "Glavno geslo, ki drugim omogoÄa izvajanje dodatnih dejanj kot je tiskanje dokumenta." + +#: C/evince.xml:616(para) +msgid "When you try to open a password-protected document, <application>Evince Document Viewer</application> displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "Ko poskusite odpreti z geslom zaÅ”Äiten dokument, <application>Evince pregledovalnik dokumentov</application> prikaže pogovorno okno varnosti. V polje <guilabel>Vnesite geslo dokumenta</guilabel> vpiÅ”ite uporabniÅ”ko geslo ali glavno geslo in nato kliknite <guibutton>Odpri dokument</application>. " + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Za zaprtje dokumenta" + +#: C/evince.xml:624(para) +msgid "To close a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "Za zaprtje dokumenta izberite <menuchoice><guimenu>Datoteka</guimenu><guimenuitem>Zapri</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "If the window is the last <application>Evince Document Viewer</application> window open, the application exits." +msgstr "V primeru da je okno zadnje odprto okno <application>Evince pregledovalnika dokumentov</application> se program zapre." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Bližnjice" + +#: C/evince.xml:636(para) +msgid "Below is a list of all shortcuts present in <application>Evince Document Viewer</application>:" +msgstr "Spodaj je seznam vseh bližnjic prisotnih v <application>Evince pregledovalniku dokumentov</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Bližnjica" + +#: C/evince.xml:651(keycap) +#: C/evince.xml:655(keycap) +#: C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) +#: C/evince.xml:667(keycap) +#: C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) +#: C/evince.xml:683(keycap) +#: C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Odpri obstojeÄi dokument" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Shrani kopijo trenutnega dokumenta" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Natisni dokument" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "Zapri okno" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Kopiraj izbor" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Izberi vse" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (poÅ”evnica)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "PoiÅ”Äi besedo ali reklo v dokumentu" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "PoiÅ”Äi naslednje" + +#: C/evince.xml:690(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (znak plus)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Približaj" + +#: C/evince.xml:698(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (znak minus)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Oddalji" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Ponovno naloži dokument" + +#: C/evince.xml:709(keycap) +#: C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "Pojdi na predhodno stran" + +#: C/evince.xml:713(keycap) +#: C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "Pojdi na naslednjo stran" + +#: C/evince.xml:718(keycap) +#: C/evince.xml:726(keycap) +msgid "Space" +msgstr "Preslednica" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:726(keycap) +#: C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) +#: C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Dvigalka" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Povratna tipka" + +#: C/evince.xml:720(keycap) +#: C/evince.xml:728(keycap) +msgid "Return" +msgstr "Vnosna tipka" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Drsaj naprej" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Drsaj nazaj" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "Pojdi sveženj strani navzgor" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "Pojdi sveženj strani navzdol" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Domov" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "Pojdi na prvo stran" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "Konec" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "Pojdi na zadnjo stran" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "Pojdi na stran po Å”tevilki ali oznaki" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "PomoÄ" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Zaženi dokument kot predstavitev" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Prikaži ali skrij stranski pladenj" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Preklopi celozaslonski naÄin" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2 +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Andrej ŽnidarÅ”iÄ <andrej.znidarsic@gmail.com>, 2010" + diff --git a/help/sr/sr.po b/help/sr/sr.po new file mode 100644 index 00000000..7c9ccbfc --- /dev/null +++ b/help/sr/sr.po @@ -0,0 +1,1626 @@ +# Serbian translation of caja +# Courtesy of Prevod.org team (http://prevod.org/) -- 2005. +# +# This file is distributed under the same license as the caja package. +# +# Maintainer: ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org> +# +msgid "" +msgstr "" +"Project-Id-Version: Evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-24 21:37-0400\n" +"PO-Revision-Date: 2005-07-24 06:42+0200\n" +"Last-Translator: ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org>\n" +"Language-Team: Serbian (sr) <gnom@prevod.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: ../C/evince.xml:158(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" + +#: ../C/evince.xml:25(title) ../C/evince.xml:85(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Š£ŠæŃŃŃŃŠ²Š¾ Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince 1.0" + +#: ../C/evince.xml:27(para) +msgid "User manual for the Evince Document Viewer." +msgstr "Š£ŠæŃŃŃŃŠ²Š¾ Š·Š° ŠŗŠ¾ŃŠøŃŠ½ŠøŠŗŠµ ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince." + +#: ../C/evince.xml:30(year) +msgid "2005" +msgstr "2005" + +#: ../C/evince.xml:31(holder) ../C/evince.xml:88(para) +msgid "Nickolay V. Shmyrev" +msgstr "ŠŠøŠŗŠ¾Š»Š°Ń Š. ŠØŠ¼ŠøŃŠµŠ²" + +#: ../C/evince.xml:34(year) +msgid "2004" +msgstr "2004" + +#: ../C/evince.xml:35(holder) ../C/evince.xml:58(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: ../C/evince.xml:46(publishername) ../C/evince.xml:64(orgname) +#: ../C/evince.xml:89(para) +msgid "MATE Documentation Project" +msgstr "ŠŠ¾Š“ŃŃ Š²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²Š°ŃŠ° ŠŠ½Š¾Š¼Š°" + +#: ../C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"ŠŠ¾Š·Š²Š¾ŃŠµŠ½Š¾ ŃŠ¼Š½Š¾Š¶Š°Š²Š°ŃŠµ, ŃŠøŃŠµŃŠµ(ŃŠ°ŃŃŃŃŠ°ŃŠµ), Š²ŃŃŠµŃŠµ(ŃŠ½Š¾ŃŠµŃŠµ) ŠøŠ·Š¼ŠµŠ½Š° Ń Š¾Š²Š°Ń " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾Š“ ŃŃŠ»Š¾Š²ŠøŠ¼Š° ŠŠ½Ń-Š¾Š²Šµ Š”Š»Š¾Š±Š¾Š“Š½Šµ ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŠ¾Š½Šµ ŠŠ¾Š·Š²Š¾Š»Šµ (ŠŠ”ŠŠ), " +"Š²ŠµŃŠ·ŠøŃŠµ 1.1 ŠøŠ»Šø Š±ŠøŠ»Š¾ ŠŗŠ¾ŃŠµ Š½Š°ŠŗŠ½Š°Š“Š½Šµ Š²ŠµŃŠ·ŠøŃŠµ Š±ŠµŠ· ŠøŠ½Š²Š°ŃŠøŃŠ°Š½ŃŠ½ŠøŃ Š¾Š“ŠµŃŠ°ŠŗŠ°, ŃŠµŠŗŃŃŠ° " +"Š½Š° Š½Š°ŃŠ»Š¾Š²Š½Š¾Ń Šø ŠæŠ¾ŃŠ»ŠµŠ“ŃŠ¾Ń ŃŃŃŠ°Š½Šø, Š° ŠŗŠ¾ŃŃ ŃŠµ Š¾Š±ŃŠ°Š²ŠøŠ»Š° ŠŠ°Š“ŃŠ¶Š±ŠøŠ½Š° Š”Š»Š¾Š±Š¾Š“Š½Š¾Š³ " +"Š”Š¾ŃŃŠ²ŠµŃŠ°. ŠŃŠøŠ¼ŠµŃŠ°Šŗ ŠŠ”ŠŠ-Šµ Š¼Š¾Š¶Šµ ŃŠµ ŠæŃŠ¾Š½Š°ŃŠø Š½Š° Š¾Š²Š¾Ń <ulink type=\"help\" url=" +"\"ghelp:fdl\">Š°Š“ŃŠµŃŠø</ulink> ŠøŠ»Šø Ń Š“Š°ŃŠ¾ŃŠµŃŠø COPYING-DOCS ŠŗŠ¾ŃŠ° ŃŠµ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½Š°" +"(Š¼Š¾Š¶Šµ ŃŠµ ŠæŃŠ¾Š½Š°ŃŠø) ŃŠ· Š¾Š²Š¾ ŃŠæŃŃŃŃŠ²Š¾." + +#: ../C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"ŠŠ²Š¾ ŃŠæŃŃŃŃŠ²Š¾ ŠæŃŠµŠ“ŃŃŠ°Š²ŃŠ° Š“ŠµŠ¾ Š·Š±ŠøŃŠŗŠµ ŠŠ½Š¾Š¼Š¾Š²ŠøŃ ŃŠæŃŃŃŃŠ°Š²Š° ŠŗŠ¾ŃŠ° ŃŠµ ŃŠ°Š·Š“ŠµŃŃŃŃ ŠæŠ¾Š“ " +"ŃŃŠ»Š¾Š²ŠøŠ¼Š° ŠŠ”ŠŠ-Šµ. Š£ŠŗŠ¾Š»ŠøŠŗŠ¾ Š½Š°Š¼ŠµŃŠ°Š²Š°ŃŠµ Š“Š° Š“Š°ŃŠµ ŠæŃŠ¾ŃŠ»ŠµŠ“ŠøŃŠµ Š¾Š²Š¾ ŃŠæŃŃŃŃŠ²Š¾ Š¾Š“Š²Š¾ŃŠµŠ½Š¾ " +"Š¾Š“ Š·Š±ŠøŃŠŗŠµ, ŃŠ¾ Š¼Š¾Š¶ŠµŃŠµ ŃŃŠøŠ½ŠøŃŠø ŃŠ· ŠæŃŠøŠ»Š°Š³Š°ŃŠµ ŠæŃŠøŠ¼ŠµŃŠŗŠ° Š“Š¾Š·Š²Š¾Š»Šµ ŃŠ· ŃŠæŃŃŃŃŠ²Š¾, ŠŗŠ°Š¾ " +"ŃŃŠ¾ ŃŠµ Š¾ŠæŠøŃŠ°Š½Š¾ Ń Š¾Š“ŠµŃŠŗŃ 6 Š“Š¾Š·Š²Š¾Š»Šµ." + +#: ../C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"ŠŠ½Š¾Š³Šø Š½Š°Š·ŠøŠ²Šø ŠŗŠ¾ŃŠµ ŠŗŠ¾Š¼ŠæŠ°Š½ŠøŃŠµ ŠŗŠ¾ŃŠøŃŃŠµ Ń ŃŠøŃŃ ŠæŃŠµŠæŠ¾Š·Š½Š°ŃŃŠøŠ²Š¾ŃŃŠø ŃŠ²Š¾ŃŠøŃ ŠæŃŠ¾ŠøŠ·Š²Š¾Š“Š° " +"Šø ŃŃŠ»ŃŠ³Š° ŠæŃŠµŠ“ŃŃŠ°Š²ŃŠ°ŃŃ ŃŠ¾Š±Š½Šµ Š¼Š°ŃŠŗŠµ. ŠŠ°Š“Š°(ŃŠŗŠ¾Š»ŠøŠŗŠ¾) ŃŠµ ŃŠ°ŠŗŠ²Šø Š½Š°Š·ŠøŠ²Šø ŠæŠ¾ŃŠ°Š²ŃŃŃŃ" +"(ŃŠæŠ¾Š¼ŠøŃŃ) Ń Š±ŠøŠ»Š¾ ŠŗŠ¾ŃŠµŠ¼ ŠŠ½Š¾Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ, Š° ŃŠ»Š°Š½Š¾Š²Šø ŠŠ½Š¾Š¼Š¾Š²Š¾Š³ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŠ¾Š½Š¾Š³ " +"ŠæŃŠ¾ŃŠµŠŗŃŠ° ŠøŠ¼Š°ŃŃ ŃŠ°Š·Š½Š°ŃŠ° Š¾ ŃŠ¾Š¼Šµ, ŃŠ°Š“Š° ŃŃ Š½Š°Š·ŠøŠ²Šø ŠøŃŠæŠøŃŠ°Š½Šø Š²ŠµŠ»ŠøŠŗŠøŠ¼ ŃŠ»Š¾Š²ŠøŠ¼Š° ŠøŠ»Šø " +"ŃŠ° Š²ŠµŠ»ŠøŠŗŠøŠ¼ ŠæŠ¾ŃŠµŃŠ½ŠøŠ¼ ŃŠ»Š¾Š²ŠøŠ¼Š°." + +#: ../C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ŠŠ ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠ”Š¢Š£ŠŠŠ Š”Š Š”ŠŠŠ Š”ŠŠŠŠŠ ŠŠŠŠ ŠŠ Š ŠŠŠØŠŠ Š”Š¢Š ŠŠŠŠŠ ŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠ " +"ŠŠŠŠ”Š¢ŠŠ, ŠŠŠŠ ŠŠŠ ŠŠŠ ŠŠ§ŠŠŠ ŠŠŠ ŠŠ, Š£ŠŠŠ£Š§Š£ŠŠ£Š§Š ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠ, ŠŠŠŠ”Š¢ŠŠ ŠŠ ŠŠ " +"ŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠŠ ŠŠŠ ŠŠŠŠŠ”Š¢ŠŠ¢ŠŠŠ, Š”ŠŠ ŠŠŠŠ ŠŠ " +"Š¢Š ŠŠŠØŠ¢Š, Š”ŠŠ Š”ŠŠ”Š„ŠŠŠŠ Š ŠŠ ŠŠŠ Š£ŠØŠŠŠ ŠŠŠŠŠŠ”ŠŠ ŠŠŠ ŠŠ. Š¦ŠŠŠŠŠ£ŠŠŠ Š ŠŠŠŠ ŠŠŠŠ Š”Š " +"ŠŠŠŠŠ”Š ŠŠ ŠŠŠŠŠŠ¢ŠŠ¢, Š¢ŠŠ§ŠŠŠ”Š¢ Š ŠŠŠŠŠ¢(Š£Š§ŠŠŠŠ) ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠ " +"ŠŠŠ ŠŠŠŠ Š”ŠŠŠ”Š ŠŠŠ ŠŠ”ŠŠŠ. Š£ŠŠŠŠŠŠ Š”Š Š£ ŠŠŠŠ ŠŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ ŠŠŠ ŠŠŠŠŠŠŠ " +"ŠŠŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠ”Š¢ŠŠ¢ŠŠ(ŠŠ ŠŠØŠŠ) ŠŠŠŠ ŠŠŠŠ ŠŠ Š”Š¢Š, ŠŠŠ ŠŠ”ŠŠŠ (Š ŠŠ " +"ŠŠ£Š¢ŠŠ ŠŠŠŠŠ ŠŠ ŠŠŠ ŠŠŠŠ, ŠŠŠŠ ŠŠŠŠ ŠŠ Š£ŠŠ ŠŠ£Š¢ŠŠ ŠŠŠ Š”ŠŠ ŠŠŠŠŠ) Š”ŠŠŠ”Š Š”ŠŠ " +"Š¢Š ŠŠØŠŠŠŠ ŠŠŠŠŠ„ŠŠŠŠŠ Š”ŠŠ ŠŠŠ”ŠŠ ŠŠŠ, ŠŠŠŠ ŠŠŠŠ ŠŠŠ ŠŠ”ŠŠ ŠŠŠŠ. ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠ " +"ŠŠŠŠ”Š¢ŠŠ ŠŠ ŠŠŠ”Š¢ŠŠŠŠ Š”ŠŠ”Š¢ŠŠŠŠ ŠŠŠ ŠŠŠ ŠŠŠŠŠŠŠ. Š£ŠŠŠ¢Š ŠŠŠ ŠŠŠŠ ŠŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š " +"ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠŠŠŠ ŠŠ”ŠŠ ŠŠŠ Š£Š”ŠŠŠŠŠŠ ŠŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠ " +"ŠŠŠŠ”Š¢ŠŠ." + +#: ../C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ŠŠ ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠŠ”Š¢ŠŠŠ ŠŠŠ ŠŠŠŠŠŠ£, ŠŠŠŠ ŠŠŠŠ ŠŠ ŠØŠŠŠ (ŠŠŠ ŠŠŠŠŠ Š) Š£ŠŠŠŠŠ Š, " +"ŠŠŠ ŠŠ ŠŠŠŠ ŠŠŠŠ ŠŠ Š£ŠŠ ŠŠŠ§ŠŠ, ŠŠ£Š¢ŠŠ (ŠŠ ŠŠŠŠŠ¢ŠŠ ŠŠŠ ŠŠŠŠ), Š”ŠŠ ŠŠŠŠŠ ŠŠŠ " +"ŠŠ”ŠŠŠ Š£Š§ŠŠŠŠŠŠ¦ ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠŠ, ŠŠŠ¢Š ŠŠŠŠŠŠŠŠ§ ŠŠŠŠ ŠŠŠŠ " +"ŠŠ ŠŠŠŠŠŠŠŠŠ„ Š”Š¢Š ŠŠŠ ŠŠŃŠ Š”ŠŠŠ”ŠŠ¢Š ŠŠŠ¢ŠŠ ŠŠŠŠŠŠ£ ŠŠŠŠŠŠŠ ŠŠŠ”Š¢ ŠŠ ŠŠŠ”Š¢ŠŠŠ " +"ŠŠŠ ŠŠŠ¢ŠŠ, ŠŠŠŠŠ ŠŠŠ¢ŠŠ, ŠŠŠ”ŠŠŠŠ, Š”ŠŠ£Š§ŠŠŠŠ ŠŠŠ Š¢ŠŠŠ ŠŠŠ”Š¢ŠŠŠ ŠŠØŠ¢ŠŠŠŠŠ ŠŠŠŠ ŠŠŠŠ " +"ŠŠ Š”Š¢Š Š£ŠŠŠ£Š§Š£ŠŠ£ŠŠ, ŠŠŠ ŠŠŠ ŠŠŠŠ§ŠŠŠ, ŠØŠ¢ŠŠ¢Š£ ŠŠŠŠŠ”ŠŠŠ£ Š£ŠŠŠŠŠ£ Š¤ŠŠ ŠŠ, ŠŠ ŠŠ”Š¢ŠŠŠŠ£ " +"ŠŠ ŠŠŠŠŠŠŠŠ, ŠŠ¢ŠŠŠŠŠŠŠŠ Š ŠŠŠ Š ŠŠ§Š£ŠŠŠ Š ŠŠŠ ŠŠŠŠ Š ŠŠŠ Š ŠŠ Š”ŠŠ ŠŠ”Š¢ŠŠŠ ŠØŠ¢ŠŠ¢Š ŠŠŠ " +"ŠŠ£ŠŠŠ¢ŠŠ ŠŠŠ”Š¢ŠŠŠ Š£Š”ŠŠŠ ŠŠŠ ŠŠØŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š Š ŠŠŠŠŠŠŠ„ ŠŠŠŠŠŠŠŠŠ„ ŠŠŠ ŠŠŠŠ Š§ŠŠ Š " +"ŠŠŠ ŠŠ ŠŠØŠ¢ŠŠŠŠŠ Š”Š¢Š ŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠØŠ¢ŠŠŠ Š ŠŠŠŠ£ŠŠŠŠ”Š¢Š ŠŠŠ”Š¢ŠŠŠŠ Š¢Š ŠØŠ¢ŠŠ¢Š." + +# Š¾Š²Š° ŠæŠ¾ŃŃŠŗŠ° ŃŠµ ŃŠµ Š¼Š°Š»Š¾ ŠøŠ·Š¼ŠµŠ½ŠøŃŠø ŠŗŠ°Š“Š° ŃŠµ Š“Š¾ŠæŃŠ½Šø xml2po Š±Š¾ŃŠ¾Š¼ Š“ŠµŃŠøŠ½ŠøŃŠøŃŠ¾Š¼ Š·Š° Š¾Š·Š½Š°ŠŗŠµ Ń ŠŠ¾ŠŗŠ±ŃŠŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŠ¼Š°: +# ŠæŠ¾ŃŠ°Š²ŠøŃŠµ ŃŠµ ŃŠ°Š¼Š¾ ŃŠµŠ“Š°Š½ <placeholder-1/> ŃŠ¼ŠµŃŃŠ¾ ŃŠøŃŠ°Š²Š¾Š³ <orderedlist> +#: ../C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢ Š ŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠŠ Š”Š£ ŠŠŠ”Š¢Š£ŠŠŠ ŠŠŠ Š£Š”ŠŠŠŠŠŠ ŠŠŠ£-ŠŠŠ " +"Š”ŠŠŠŠŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢ŠŠ¦ŠŠŠŠ ŠŠŠŠŠŠŠ Š£Š ŠŠŠŠŠ¢ŠŠ£ Š”ŠŠŠŠŠ”ŠŠŠ”Š¢ ŠŠ: <placeholder-1/>" + +#: ../C/evince.xml:56(firstname) +msgid "Sun" +msgstr "Sun" + +#: ../C/evince.xml:57(surname) +msgid "MATE Documentation Team" +msgstr "Š¢ŠøŠ¼ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²Š°ŃŠµ ŠŠ½Š¾Š¼Š°" + +#: ../C/evince.xml:61(firstname) +msgid "Nickolay V." +msgstr "ŠŠøŠŗŠ¾Š»Š°Ń Š." + +#: ../C/evince.xml:62(surname) +msgid "Shmyrev" +msgstr "ŠØŠ¼ŠøŃŠµŠ²" + +#: ../C/evince.xml:65(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: ../C/evince.xml:86(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: ../C/evince.xml:94(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "ŠŠ²Š¾ ŃŠæŃŃŃŃŠ²Š¾ Š¾ŠæŠøŃŃŃŠµ ŠøŠ·Š“Š°ŃŠµ 0.2 ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince" + +#: ../C/evince.xml:97(title) +msgid "Feedback" +msgstr "Š”Š°ŃŠ°Š“ŃŠ°" + +#: ../C/evince.xml:98(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"ŠŠ° ŠæŃŠøŃŠ°Š²ŠøŃŠµ Š³ŃŠµŃŠŗŃ ŠøŠ»Šø ŃŃŠøŠ½ŠøŃŠµ ŠæŃŠµŠ“Š»Š¾Š³ Ń Š²ŠµŠ·Šø ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince " +"ŠøŠ»Šø Š¾Š²Š¾Š³ ŃŠæŃŃŃŃŠ²Š°, ŠæŃŠ°ŃŠøŃŠµ ŃŠæŃŃŃŃŠ²Š° ŃŠ° <ulink url=\"ghelp:mate-feedback\" " +"type=\"help\">ŃŃŃŠ°Š½Šµ Š·Š° ŃŃŠµŃŃŠ²Š¾Š²Š°ŃŠµ Ń ŠŠ½Š¾Š¼Ń</ulink>." + +#: ../C/evince.xml:105(primary) +msgid "Evince Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince" + +#: ../C/evince.xml:108(primary) +msgid "evince" +msgstr "evince" + +#: ../C/evince.xml:116(title) +msgid "Introduction" +msgstr "Š£Š²Š¾Š“" + +#: ../C/evince.xml:117(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" + +#: ../C/evince.xml:124(title) +msgid "Getting Started" +msgstr "ŠŠ°ŠŗŠ¾ ŠæŠ¾ŃŠµŃŠø" + +#: ../C/evince.xml:127(title) +msgid "To Start Evince Document Viewer" +msgstr "ŠŠ° ŠæŠ¾ŠŗŃŠµŠ½ŠµŃŠµ ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° Evince" + +#: ../C/evince.xml:128(para) +msgid "" +"You can start <application>Evince Document Viewer</application> in the " +"following ways:" +msgstr "" + +#: ../C/evince.xml:132(term) +msgid "<guimenu>Applications</guimenu> menu" +msgstr "ŠŠµŠ½Šø <guimenu>ŠŃŠ¾Š³ŃŠ°Š¼Šø</guimenu>" + +#: ../C/evince.xml:134(para) +msgid "" +"Choose <menuchoice><guisubmenu>Graphics</guisubmenu><guimenuitem>Evince " +"Document Viewer</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:139(term) +msgid "Command line" +msgstr "ŠŠ°ŃŠµŠ“Š±Š°" + +#: ../C/evince.xml:141(para) +msgid "Execute the following command: <command>evince</command>" +msgstr "" + +#: ../C/evince.xml:149(title) +msgid "When You Start Evince Document Viewer" +msgstr "" + +#: ../C/evince.xml:150(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" + +#: ../C/evince.xml:154(title) +msgid "Evince Document Viewer Window" +msgstr "" + +#: ../C/evince.xml:161(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" + +#: ../C/evince.xml:167(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" + +#: ../C/evince.xml:171(term) ../C/evince.xml:219(para) +msgid "Menubar" +msgstr "" + +#: ../C/evince.xml:173(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:177(term) +msgid "Toolbar" +msgstr "ŠŠøŠ½ŠøŃŠ° ŃŠ° Š°Š»Š°ŃŠøŠ¼Š°" + +#: ../C/evince.xml:179(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "" + +#: ../C/evince.xml:183(term) +msgid "Display area" +msgstr "" + +#: ../C/evince.xml:185(para) +msgid "The display area displays the document." +msgstr "" + +#: ../C/evince.xml:199(para) +msgid "UI Component" +msgstr "" + +#: ../C/evince.xml:201(para) +msgid "Action" +msgstr "ŠŠŗŃŠøŃŠ°" + +#: ../C/evince.xml:206(para) +msgid "Window" +msgstr "ŠŃŠ¾Š·Š¾Ń" + +#: ../C/evince.xml:210(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" + +#: ../C/evince.xml:213(para) +msgid "Double-click on the file name in the file manager" +msgstr "" + +#: ../C/evince.xml:220(para) ../C/evince.xml:247(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" + +#: ../C/evince.xml:224(para) +msgid "Shortcut keys" +msgstr "" + +#: ../C/evince.xml:225(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" + +#: ../C/evince.xml:190(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><thead><row valign=\"top\"><entry " +"colname=\"COLSPEC0\"><placeholder-1/></entry><entry colname=\"COLSPEC1\" " +"align=\"left\"><placeholder-2/></entry></row></thead><tbody><row valign=\"top" +"\"><placeholder-3/><entry><placeholder-4/></entry></row><row valign=\"top" +"\"><placeholder-5/><entry><placeholder-6/></entry></row><row valign=\"top" +"\"><placeholder-7/><placeholder-8/></row></tbody></tgroup></informaltable>" +msgstr "" + +#: ../C/evince.xml:231(para) +msgid "This manual documents functionality from the menubar." +msgstr "" + +#: ../C/evince.xml:239(title) +msgid "Usage" +msgstr "" + +#: ../C/evince.xml:243(title) +msgid "To Open a File" +msgstr "" + +#: ../C/evince.xml:244(para) +msgid "To open a File, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:251(para) +msgid "" +"In the <guilabel>Load file</guilabel> dialog, select the file you want to " +"open." +msgstr "" + +#: ../C/evince.xml:256(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" + +#: ../C/evince.xml:261(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" + +#: ../C/evince.xml:264(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" + +#: ../C/evince.xml:270(title) +msgid "To Navigate Through a Document" +msgstr "" + +#: ../C/evince.xml:271(para) +msgid "You can navigate through a file as follows:" +msgstr "" + +#: ../C/evince.xml:274(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:278(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:282(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:286(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:290(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" + +#: ../C/evince.xml:297(title) +msgid "To Scroll a Page" +msgstr "" + +#: ../C/evince.xml:298(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" + +#: ../C/evince.xml:301(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "" + +#: ../C/evince.xml:304(para) +msgid "" +"Drag the display area in the opposite direction to the direction in which " +"you want to scroll. For example, to scroll down the page, drag the display " +"area upwards in the window." +msgstr "" + +#: ../C/evince.xml:307(para) +msgid "Use the scrollbars on the window." +msgstr "" + +#: ../C/evince.xml:314(title) +msgid "To Change the Page Size" +msgstr "" + +#: ../C/evince.xml:315(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" + +#: ../C/evince.xml:320(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:325(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:330(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:335(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:340(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" + +#: ../C/evince.xml:348(title) +msgid "To View Pages or Document Structore" +msgstr "" + +#: ../C/evince.xml:349(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:353(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" + +#: ../C/evince.xml:358(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" + +#: ../C/evince.xml:363(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" + +#: ../C/evince.xml:368(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" + +#: ../C/evince.xml:374(title) +msgid "To View the Properties of a Document" +msgstr "" + +#: ../C/evince.xml:375(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:381(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" + +#: ../C/evince.xml:387(title) +msgid "To Print a Document" +msgstr "" + +#: ../C/evince.xml:388(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:392(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" + +#: ../C/evince.xml:396(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "" + +#: ../C/evince.xml:402(link) ../C/evince.xml:418(title) +msgid "Job" +msgstr "ŠŠ¾ŃŠ°Š¾" + +#: ../C/evince.xml:407(link) ../C/evince.xml:440(title) +#: ../C/evince.xml:442(guilabel) +msgid "Printer" +msgstr "ŠØŃŠ°Š¼ŠæŠ°Ń" + +#: ../C/evince.xml:412(link) ../C/evince.xml:534(title) +msgid "Paper" +msgstr "ŠŠ°ŠæŠøŃ" + +#: ../C/evince.xml:420(guilabel) +msgid "Print range" +msgstr "" + +#: ../C/evince.xml:422(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" + +#: ../C/evince.xml:425(guilabel) +msgid "All" +msgstr "Š”Š²Šµ" + +#: ../C/evince.xml:426(para) +msgid "Select this option to print all of the pages in the document." +msgstr "" + +#: ../C/evince.xml:429(guilabel) +msgid "Pages From" +msgstr "" + +#: ../C/evince.xml:430(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" + +#: ../C/evince.xml:444(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" + +#: ../C/evince.xml:446(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:452(guilabel) +msgid "Settings" +msgstr "ŠŠ¾Š“ŠµŃŠ°Š²Š°ŃŠ°" + +#: ../C/evince.xml:454(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "" + +#: ../C/evince.xml:456(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" + +#: ../C/evince.xml:460(guilabel) +msgid "Location" +msgstr "ŠŠµŃŃŠ¾" + +#: ../C/evince.xml:462(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" + +#: ../C/evince.xml:467(guilabel) +msgid "CUPS" +msgstr "" + +#: ../C/evince.xml:469(para) +msgid "Print the document to a CUPS printer." +msgstr "" + +#: ../C/evince.xml:473(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" + +# bug: is this a command name, or what? +#: ../C/evince.xml:480(guilabel) +msgid "lpr" +msgstr "lpr" + +#: ../C/evince.xml:482(para) +msgid "Print the document to a printer." +msgstr "" + +#: ../C/evince.xml:488(guilabel) +msgid "File" +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../C/evince.xml:490(para) +msgid "Print the document to a PostScript file." +msgstr "" + +#: ../C/evince.xml:493(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" + +#: ../C/evince.xml:499(guilabel) +msgid "Custom" +msgstr "ŠŃŠ¾ŠøŠ·Š²Š¾ŃŠ½Š¾" + +#: ../C/evince.xml:501(para) +msgid "Use the specified command to print the document." +msgstr "" + +#: ../C/evince.xml:504(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "" + +#: ../C/evince.xml:512(guilabel) +msgid "State" +msgstr "Š”ŃŠ°ŃŠµ" + +#: ../C/evince.xml:514(para) ../C/evince.xml:520(para) +#: ../C/evince.xml:526(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" + +#: ../C/evince.xml:518(guilabel) +msgid "Type" +msgstr "Š¢ŠøŠæ" + +#: ../C/evince.xml:524(guilabel) +msgid "Comment" +msgstr "ŠŃŠøŠ¼ŠµŠ“Š±Š°" + +#: ../C/evince.xml:536(guilabel) +msgid "Paper size" +msgstr "" + +#: ../C/evince.xml:538(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" + +#: ../C/evince.xml:541(guilabel) +msgid "Width" +msgstr "ŠØŠøŃŠøŠ½Š°" + +#: ../C/evince.xml:543(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" + +#: ../C/evince.xml:546(guilabel) +msgid "Height" +msgstr "ŠŠøŃŠøŠ½Š°" + +#: ../C/evince.xml:548(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "" + +#: ../C/evince.xml:551(guilabel) +msgid "Feed orientation" +msgstr "" + +#: ../C/evince.xml:553(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "" + +#: ../C/evince.xml:556(guilabel) +msgid "Page orientation" +msgstr "" + +#: ../C/evince.xml:558(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "" + +#: ../C/evince.xml:561(guilabel) +msgid "Layout" +msgstr "ŠŠ·Š³Š»ŠµŠ“" + +#: ../C/evince.xml:563(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" + +#: ../C/evince.xml:566(guilabel) +msgid "Paper Tray" +msgstr "" + +#: ../C/evince.xml:568(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "" + +#: ../C/evince.xml:578(title) +msgid "To Copy a Document" +msgstr "" + +#: ../C/evince.xml:579(para) +msgid "To copy a file, perform the following steps:" +msgstr "" + +#: ../C/evince.xml:583(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:588(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" + +#: ../C/evince.xml:591(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" + +#: ../C/evince.xml:596(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "" + +#: ../C/evince.xml:605(title) +msgid "To Work With Password-Protected Documents" +msgstr "" + +#: ../C/evince.xml:606(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" + +#: ../C/evince.xml:611(para) +msgid "User password that allows others only to read the document." +msgstr "" + +#: ../C/evince.xml:615(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" + +#: ../C/evince.xml:619(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" + +#: ../C/evince.xml:626(title) +msgid "To Close a Document" +msgstr "" + +#: ../C/evince.xml:627(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:629(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" + +#: ../C/evince.xml:632(para) +msgid "" +"To quit <application>Evince Document Viewer</application> at any time, no " +"matter how many windows are open, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Quit</guimenuitem></menuchoice>." +msgstr "" + +#: ../C/evince.xml:634(para) +msgid "" +"When you quit, <application>Evince Document Viewer</application> closes all " +"documents opened in the current session." +msgstr "" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: ../C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org>\n" +"\n" +"Prevod.org ā ŠæŃŠµŠ²Š¾Š“ Š½Š° ŃŃŠæŃŠŗŠø ŃŠµŠ·ŠøŠŗ." + +#~ msgid "_Remove Toolbar" +#~ msgstr "_Š£ŠŗŠ»Š¾Š½Šø Š°Š»Š°ŃŠŗŠµ" + +#~ msgid "Separator" +#~ msgstr "Š Š°Š·Š“Š²Š°ŃŠ°Ń" + +#~ msgid "Best Fit" +#~ msgstr "ŠŠ°ŃŠ±Š¾ŃŠµ ŃŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#~ msgid "Fit Page Width" +#~ msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŠæŃŠµŠ¼Š° ŃŠøŃŠøŠ½Šø ŃŃŃŠ°Š½ŠøŃŠµ" + +#~ msgid "50%" +#~ msgstr "50%" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "100%" +#~ msgstr "100%" + +#~ msgid "125%" +#~ msgstr "125%" + +#~ msgid "150%" +#~ msgstr "150%" + +#~ msgid "175%" +#~ msgstr "175%" + +#~ msgid "200%" +#~ msgstr "200%" + +#~ msgid "300%" +#~ msgstr "300%" + +#~ msgid "400%" +#~ msgstr "400%" + +#~ msgid "Document Viewer" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#~ msgid "View multipage documents" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š²ŠøŃŠµŃŃŃŠ°Š½ŠøŃŠ½Šµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "_Password:" +#~ msgstr "_ŠŠ¾Š·ŠøŠ½ŠŗŠ°:" + +#~ msgid "<b>Author:</b>" +#~ msgstr "<b>ŠŃŃŠ¾Ń:</b>" + +#~ msgid "<b>Created:</b>" +#~ msgstr "<b>ŠŠ°ŠæŃŠ°Š²ŃŠµŠ½:</b> " + +#~ msgid "<b>Creator:</b>" +#~ msgstr "<b>Š¢Š²Š¾ŃŠ°Ń:</b>" + +#~ msgid "<b>Format:</b>" +#~ msgstr "<b>ŠŠ±Š»ŠøŠŗ:</b>" + +#~ msgid "<b>Keywords:</b>" +#~ msgstr "<b>ŠŃŃŃŠ½Šµ ŃŠµŃŠø:</b>" + +#~ msgid "<b>Modified:</b>" +#~ msgstr "<b>ŠŠµŃŠ°Š½:</b>" + +#~ msgid "<b>Number of Pages:</b>" +#~ msgstr "<b>ŠŃŠ¾Ń ŃŃŃŠ°Š½Š°:</b>" + +#~ msgid "<b>Optimized:</b>" +#~ msgstr "<b>ŠŠæŃŠøŠ¼ŠøŠ·Š¾Š²Š°Š½Š¾:</b>" + +#~ msgid "<b>Producer:</b>" +#~ msgstr "<b>ŠŃŠ¾ŠøŠ·Š²Š¾ŃŠ°Ń:</b>" + +#~ msgid "<b>Security:</b>" +#~ msgstr "<b>ŠŠµŠ·Š±ŠµŠ“Š½Š¾ŃŃ:</b>" + +#~ msgid "<b>Subject:</b>" +#~ msgstr "<b>Š¢ŠµŠ¼Š°:</b> " + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>ŠŠ°ŃŠ»Š¾Š²:</b>" + +#~ msgid "Default sidebar size" +#~ msgstr "ŠŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Š° Š±Š¾ŃŠ½Šµ ŃŃŠ°ŠŗŠµ" + +#~ msgid "Show sidebar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ" + +#~ msgid "Show statusbar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Show toolbar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "ŠŠ¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š±Š¾ŃŠ½Š° ŃŃŠ°Š²ŠŗŠ° ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠøŠ½Š“ŠµŠŗŃ Šø ŃŠæŠøŃŠ°Šŗ ŃŠ»ŠøŃŠøŃŠ° ŃŃŃŠ°Š½Š°. " +#~ "ŠŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Š° ŠæŠ¾ŃŃŠ°Š²ŃŠ° ŃŠøŃŠøŠ½Ń Š±Š¾ŃŠ½Šµ ŃŃŠ°ŠŗŠµ Ń ŃŠ°ŃŠŗŠ°Š¼Š° Ń Š¾Š“Š½Š¾ŃŃ Š½Š° " +#~ "ŃŃŃŠ°Š½Ń ŠæŃŠ¾Š·Š¾ŃŠ°. ŠŃŠøŃ Š²Š°ŃŠ° ŃŠµ Š±ŠøŠ»Š¾ ŠŗŠ¾ŃŠø ŃŠµŠ¾ Š±ŃŠ¾Ń, Š° Š±Š¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š½ŠøŠŗŠ°Š“ " +#~ "Š½ŠµŃŠµ ŃŠ¼Š°ŃŠøŃŠø ŠøŃŠæŠ¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ Š½ŠµŠ¾ŠæŃ Š¾Š“Š½Šµ Š·Š° ŠæŃŠøŠŗŠ°Š· ŃŠ»ŠøŃŠøŃŠ° ŠøŠ»Šø ŠøŠ½Š“ŠµŠŗŃŠ°. " +#~ "ŠŠµŠ»ŠøŠŗŠµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø ŃŠµ ŃŃŠøŠ½ŠøŃŠø Š“Š° Š±Š¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° Š·Š°ŃŠ·Š¼Šµ ŃŃŠ¾ ŃŠµ Š¼Š¾Š³ŃŃŠµ Š²ŠøŃŠµ " +#~ "ŠæŃŠ¾ŃŃŠ¾ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š· ŃŃŃŠ°Š½ŠøŃŠµ Ń Š¾Š“Š½Š¾ŃŃ Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Ń ŠæŃŠ¾Š·Š¾ŃŠ°." + +# bug: dot missing +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "ŠŠ¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š±Š¾ŃŠ½Š° ŃŃŠ°Š²ŠŗŠ° ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠøŠ½Š“ŠµŠŗŃ Šø ŃŠæŠøŃŠ°Šŗ ŃŠ»ŠøŃŠøŃŠ° ŃŃŃŠ°Š½Š°. " +#~ "ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠµŠ½Š¾ ŃŠøŠ½Šø Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ " +#~ "ŠæŃŠøŠŗŠ°Š·Š°Š½Š¾Š¼ Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŃŠ°ŠŗŃŠøŠ²Š° Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ." + +# bug: dot missing +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default." +#~ msgstr "" +#~ "ŠŠ¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š±Š¾ŃŠ½Š° ŃŃŠ°Š²ŠŗŠ° ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠøŠ½Š“ŠµŠŗŃ Šø ŃŠæŠøŃŠ°Šŗ ŃŠ»ŠøŃŠøŃŠ° ŃŃŃŠ°Š½Š°. " +#~ "ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŠæŃŠøŠŗŠ°Š·ŃŃŠµ Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ " +#~ "Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŃŠ°ŠŗŃŠøŠ²Š° Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ." + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "ŠŠøŠ½ŠøŃŠ° ŃŠ° ŃŃŠ°ŃŠµŠ¼ ŃŠµ ŃŠ¾Š±ŠøŃŠ°ŃŠµŠ½Š° ŃŃŠ°ŠŗŠ° Ń Š“Š½Ń ŠŗŠ¾ŃŠ° ŠæŃŠøŠŗŠ°Š·ŃŃŠµ Š“Š¾Š“Š°ŃŠ½Šµ ŠæŠ¾Š“Š°ŃŠŗŠµ " +#~ "Š¾ Š²ŠµŠ·Š°Š¼Š° Šø Š“ŃŃŠ³ŠøŠ¼ Š°ŠŗŃŠøŃŠ°Š¼Š°. ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ " +#~ "ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŠæŃŠøŠŗŠ°Š·ŃŃŠµ Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼ Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ " +#~ "ŃŠ°ŠŗŃŠøŠ²Š° Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "Š¢ŃŠ°ŠŗŠ° ŃŠ° Š°Š»Š°ŃŠ¾Š¼ ŃŠµ ŃŠ¾Š±ŠøŃŠ°ŃŠµŠ½Š° ŃŃŠ°ŠŗŠ° Ń Š²ŃŃ Ń ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠµ Š·Š° " +#~ "Š½Š°Š²ŠøŠ³Š°ŃŠøŃŃ Šø ŃŠ²ŠµŃŠ°ŃŠµ. ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ " +#~ "ŠæŃŠøŠŗŠ°Š·ŃŃŠµ ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼ Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŃŠ°ŠŗŃŠøŠ²Š° ŃŃŠ°ŠŗŃ ŃŠ° " +#~ "Š°Š»Š°ŃŠ¾Š¼." + +#~ msgid "File not available" +#~ msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° Š½ŠøŃŠµ Š“Š¾ŃŃŃŠæŠ½Š°" + +#~ msgid "DVI document has incorrect format" +#~ msgstr "DVI Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠµ Š½ŠµŠøŃŠæŃŠ°Š²Š½Š¾Š³ Š¾Š±Š»ŠøŠŗŠ°" + +#~ msgid "Yes" +#~ msgstr "ŠŠ°" + +#~ msgid "No" +#~ msgstr "ŠŠµ" + +#~ msgid "No name" +#~ msgstr "ŠŠµŠ· ŠøŠ¼ŠµŠ½Š°" + +#~ msgid "Document" +#~ msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "None" +#~ msgstr "ŠŠøŃŃŠ°" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "ŠŠøŃŠ¼Š¾" + +#~ msgid "Tabloid" +#~ msgstr "Š¢Š°Š±Š»Š¾ŠøŠ“" + +#~ msgid "Ledger" +#~ msgstr "ŠŃŠ°Š³" + +#~ msgid "Legal" +#~ msgstr "ŠŃŠ°Š²Š½Š¾" + +#~ msgid "Statement" +#~ msgstr "ŠŠ·ŃŠ°Š²Š°" + +#~ msgid "Executive" +#~ msgstr "ŠŠ·Š²ŃŃŠ½Šø" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Š¤Š¾Š»ŠøŃŠ°" + +#~ msgid "Quarto" +#~ msgstr "ŠŠ²Š°ŃŃŠ¾" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "No document loaded." +#~ msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½ŠøŃŠµ ŃŃŠøŃŠ°Š½." + +#~ msgid "Broken pipe." +#~ msgstr "ŠŃŠµŠŗŠøŠ½ŃŃŠ° Š²ŠµŠ·Š°." + +#~ msgid "Interpreter failed." +#~ msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø Š¾Š±ŃŠ°Š“Šø." + +#~ msgid "Error while decompressing file %s:\n" +#~ msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø Š¾ŃŠæŠ°ŠŗŠøŠ²Š°ŃŃ Š“Š°ŃŠ¾ŃŠµŠŗŠµ %s:\n" + +#~ msgid "Cannot open file %s.\n" +#~ msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ Š“Š°ŃŠ¾ŃŠµŠŗŃ %s.\n" + +#~ msgid "File is not readable." +#~ msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠµ Š½ŠøŃŠµ ŃŠøŃŃŠøŠ²Š°." + +#~ msgid "Document loaded." +#~ msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŃŠøŃŠ°Š½." + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Š£Š³ŃŠµŠ¶Š“ŠµŠ½Šø ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ" + +#~ msgid "PostScript" +#~ msgstr "ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ" + +#~ msgid "Search string" +#~ msgstr "Š¢ŃŠ°Š¶Šø Š½ŠøŃŠŗŃ" + +# bug: since when do the strings have names? +#~ msgid "The name of the string to be found" +#~ msgstr "ŠŠ¼Šµ Š½ŠøŃŠŗŠµ ŠŗŠ¾ŃŃ ŃŃŠ°Š¶ŠøŃŠø" + +#~ msgid "Case sensitive" +#~ msgstr "ŠŠ°Š²ŠøŃŠ½Š¾ Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ŠŠ¾ŃŃŠ°Š²ŃŠµŠ½Š¾ Š·Š° ŠæŃŠµŃŃŠ°Š³Ń ŠŗŠ¾ŃŠ° Š·Š°Š²ŠøŃŠø Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#~ msgid "Highlight color" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ°" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ° Š·Š° ŃŠ²Š° ŠæŠ¾ŠŗŠ»Š°ŠæŠ°ŃŠ°" + +#~ msgid "Current color" +#~ msgstr "Š¢ŠµŠŗŃŃŠ° Š±Š¾ŃŠ°" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ° Š·Š° ŃŠµŠŗŃŃŠµ ŠæŠ¾ŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#~ msgid "F_ind:" +#~ msgstr "Š_Š°ŃŠø:" + +#~ msgid "_Previous" +#~ msgstr "_ŠŃŠµŃŃ Š¾Š“Š½Šø" + +#~ msgid "_Next" +#~ msgstr "_Š”Š»ŠµŠ“ŠµŃŠø" + +#~ msgid "C_ase Sensitive" +#~ msgstr "Š_Š°Š²ŠøŃŠ½Š¾ Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#~ msgid "Unknown MIME Type" +#~ msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° ŠŠŠŠ Š²ŃŃŃŠ°" + +#~ msgid "Unhandled MIME type: '%s'" +#~ msgstr "ŠŠµŠæŃŠøŃ Š²Š°ŃŠµŠ½Š° ŠŠŠŠ Š²ŃŃŃŠ°: ā%sā" + +#~ msgid "All Documents" +#~ msgstr "Š”Š²Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#~ msgid "PostScript Documents" +#~ msgstr "ŠŠ¾ŃŃŃŠŗŃŠøŠæŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#~ msgid "PDF Documents" +#~ msgstr "PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#~ msgid "Images" +#~ msgstr "Š”Š»ŠøŠŗŠµ" + +#~ msgid "DVI Documents" +#~ msgstr "DVI Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#~ msgid "Djvu Documents" +#~ msgstr "Djvu Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#~ msgid "All Files" +#~ msgstr "Š”Š²Šµ Š“Š°ŃŠ¾ŃŠµŠŗŠµ" + +#~ msgid "(%d of %d)" +#~ msgstr "(%d Š¾Š“ %d)" + +#~ msgid "of %d" +#~ msgstr " Š¾Š“ %d" + +#~ msgid "Unable to find glade file" +#~ msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŃŠµŠ¼ ŠŠ»ŠµŃŠ“ Š“Š°ŃŠ¾ŃŠµŠŗŃ" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŃŠµŠ¼ ŠŠ»ŠµŃŠ“ Š“Š°ŃŠ¾ŃŠµŠŗŃ ā%sā. ŠŃŠ¾Š²ŠµŃŠøŃŠµ Š“Š° Š»Šø ŃŠµ Š²Š°ŃŠ° ŠøŠ½ŃŃŠ°Š»Š°ŃŠøŃŠ° " +#~ "ŠæŠ¾ŃŠæŃŠ½Š°." + +#~ msgid "Password required" +#~ msgstr "ŠŠ¾Š·ŠøŠ½ŠŗŠ° ŃŠµ Š¾Š±Š°Š²ŠµŠ·Š½Š°" + +#~ msgid "" +#~ "The document <i>%s</i> is locked and requires a password before it can be " +#~ "opened." +#~ msgstr "" +#~ "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń <i>%s</i> ŃŠµ Š·Š°ŠŗŃŃŃŠ°Š½ Šø Š½ŠµŠ¾ŠæŃ Š¾Š“Š½Š° ŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŠ° ŠæŃŠµ Š½ŠµŠ³Š¾ ŃŃŠ¾ ŃŠµ " +#~ "Š¼Š¾Š¶Šµ Š¾ŃŠ²Š¾ŃŠøŃŠø." + +#~ msgid "Incorrect password" +#~ msgstr "ŠŠµŠøŃŠæŃŠ°Š²Š½Š° Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#~ msgid "" +#~ "This document is locked and can only be read by entering the correct " +#~ "password." +#~ msgstr "" +#~ "ŠŠ²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠµ Š·Š°ŠŗŃŃŃŠ°Š½ Šø Š¼Š¾Š¶Šµ ŃŠµ ŠæŃŠ¾ŃŠøŃŠ°ŃŠø ŃŠµŠ“ŠøŠ½Š¾ ŃŠ· ŃŠ½Š¾Ń ŠøŃŠæŃŠ°Š²Š½Šµ " +#~ "Š»Š¾Š·ŠøŠ½ŠŗŠµ." + +#~ msgid "_Unlock Document" +#~ msgstr "_ŠŃŠŗŃŃŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "Properties" +#~ msgstr "ŠŃŠ¾Š±ŠøŠ½Šµ" + +#~ msgid "General" +#~ msgstr "ŠŠæŃŃŠµ" + +#~ msgid "Fonts" +#~ msgstr "Š¤Š¾Š½ŃŠ¾Š²Šø" + +#~ msgid "Name" +#~ msgstr "ŠŠ¼Šµ" + +#~ msgid "Gathering font information... %3d%%" +#~ msgstr "Š”ŠŗŃŠæŃŠ°Š¼ ŠæŠ¾Š“Š°ŃŠŗŠµ Š¾ ŃŠ¾Š½ŃŠ¾Š²ŠøŠ¼Š°... %3d%%" + +#~ msgid "Loading..." +#~ msgstr "Š£ŃŠøŃŠ°Š²Š°ŃŠµ..." + +#~ msgid "Print..." +#~ msgstr "ŠØŃŠ°Š¼ŠæŠ°ŃŠµ..." + +#~ msgid "Index" +#~ msgstr "ŠŠ¾ŠæŠøŃ" + +#~ msgid "Thumbnails" +#~ msgstr "ŠŠ°Š»Šø ŠæŃŠøŠŗŠ°Š·Šø" + +#~ msgid "Go to page %s" +#~ msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Ń %s" + +#~ msgid "%d found on this page" +#~ msgid_plural "%d found on this page" +#~ msgstr[0] "%d ŠæŠ¾Š³Š¾Š“Š°Šŗ Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" +#~ msgstr[1] "%d ŠæŠ¾Š³Š¾ŃŠŗŠ° Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" +#~ msgstr[2] "%d ŠæŠ¾Š³Š¾Š“Š°ŠŗŠ° Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" + +#~ msgid "Not found" +#~ msgstr "ŠŠøŃŠµ Š½Š°ŃŠµŠ½Š¾" + +#~ msgid "%3d%% remaining to search" +#~ msgstr "ŠŃŠµŠ¾ŃŃŠ°Š»Š¾ Š“Š° ŠæŃŠµŃŃŠ°Š¶Šø %3d%%" + +#~ msgid "Unable to open document" +#~ msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° ā Š»Š¾Š·ŠøŠ½ŠŗŠ° ŃŠµ Š¾Š±Š°Š²ŠµŠ·Š½Š°" + +#~ msgid "%s - Password Required" +#~ msgstr "%s ā Š»Š¾Š·ŠøŠ½ŠŗŠ° ŃŠµ Š¾Š±Š°Š²ŠµŠ·Š½Š°" + +#~ msgid "Loading document. Please wait" +#~ msgstr "Š£ŃŠøŃŠ°Š²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń. Š”Š°ŃŠµŠŗŠ°ŃŃŠµ" + +#~ msgid "Open document" +#~ msgstr "ŠŃŠ²Š¾ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "The file could not be saved as \"%s\"." +#~ msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° ŃŠµ Š½Šµ Š¼Š¾Š¶Šµ ŃŠ°ŃŃŠ²Š°ŃŠø ŠŗŠ°Š¾ ā%sā." + +#~ msgid "Save a Copy" +#~ msgstr "Š”Š°ŃŃŠ²Š°Ń ŃŠ¼Š½Š¾Š¶Š°Šŗ" + +#~ msgid "Print" +#~ msgstr "ŠØŃŠ°Š¼ŠæŠ°Ń" + +#~ msgid "Pages" +#~ msgstr "Š”ŃŃŠ°Š½ŠøŃŠµ" + +#~ msgid "Printing is not supported on this printer." +#~ msgstr "ŠØŃŠ°Š¼ŠæŠ°ŃŠµ Š½ŠøŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½Š¾ Š·Š° Š¾Š²Š°Ń ŃŃŠ°Š¼ŠæŠ°Ń." + +#~ msgid "" +#~ "You were trying to print to a printer using the \"%s\" driver. This " +#~ "program requires a PostScript printer driver." +#~ msgstr "" +#~ "ŠŠ¾ŠŗŃŃŠ°Š»Šø ŃŃŠµ Š“Š° ŃŃŠ°Š¼ŠæŠ°ŃŠµ ŠŗŠ¾ŃŠøŃŃŠµŃŠø ā%sā Š“ŃŠ°ŃŠ²ŠµŃ. ŠŠ²Š°Ń ŠæŃŠ¾Š³ŃŠ°Š¼ Š·Š°Ń ŃŠµŠ²Š° " +#~ "ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ Š“ŃŠ°ŃŠ²ŠµŃ Š·Š° ŃŃŠ°Š¼ŠæŠ°Ń." + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "ŠŠ¾Š³ŃŃŠ½Š¾ŃŃ ŠæŃŠµŃŃŠ°Š¶ŠøŠ²Š°ŃŠ° Š½ŠµŃŠµ ŃŠ°Š“ŠøŃŠø Š·Š° Š¾Š²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Š¢ŃŠ°Š¶ŠµŃŠµ ŃŠµŠŗŃŃŠ° ŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½Š¾ ŃŠ°Š¼Š¾ Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ." + +#~ msgid "Leave Fullscreen" +#~ msgstr "ŠŠµ ŠæŃŠµŠŗŠ¾ ŃŠµŠ»Š¾Š³ ŠµŠŗŃŠ°Š½Š°" + +#~ msgid "Toolbar editor" +#~ msgstr "Š£ŃŠµŃŠøŠ²Š°ŃŠµ Š°Š»Š°ŃŠŗŠø" + +#~ msgid "" +#~ "PostScript and PDF File Viewer.\n" +#~ "Using poppler %s (%s)" +#~ msgstr "" +#~ "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ Šø PDF Š“Š°ŃŠ¾ŃŠµŠŗŠ°.\n" +#~ "ŠŠ¾ŃŠøŃŃŠø poppler %s (%s)" + +#~ msgid "" +#~ "Evince is free software; you can redistribute it and/or modify\n" +#~ "it under the terms of the GNU General Public License as published by\n" +#~ "the Free Software Foundation; either version 2 of the License, or\n" +#~ "(at your option) any later version.\n" +#~ msgstr "" +#~ "Evince ŃŠµ ŃŠ»Š¾Š±Š¾Š“Š°Š½ ŃŠ¾ŃŃŠ²ŠµŃ; Š¼Š¾Š¶ŠµŃŠµ Š³Š° ŃŠ°ŃŠæŠ¾Š“ŠµŃŠøŠ²Š°ŃŠø Šø/ŠøŠ»Šø Š³Š° Š¼ŠµŃŠ°ŃŠø\n" +#~ "ŠæŠ¾Š“ ŃŃŠ»Š¾Š²ŠøŠ¼Š° ŠŠŠ£ ŠŠæŃŃŠµ ŠŠ°Š²Š½Šµ ŠŠøŃŠµŠ½ŃŠµ (GNU GPL) ŠŗŠ°ŠŗŠ¾ ŃŠµ Š¾Š±ŃŠ°Š²ŃŃŃŠµ \n" +#~ "ŠŠ°Š“ŃŠ¶Š±ŠøŠ½Š° Š·Š° Š”Š»Š¾Š±Š¾Š“Š½Šø Š”Š¾ŃŃŠ²ŠµŃ (FSF); Š±ŠøŠ»Š¾ Š²ŠµŃŠ·ŠøŃŠµ 2 ŃŠµ ŠŠøŃŠµŠ½ŃŠµ, Š±ŠøŠ»Š¾\n" +#~ "(ŠæŠ¾ Š²Š°ŃŠµŠ¼ Š½Š°Ń Š¾ŃŠµŃŃ) Š±ŠøŠ»Š¾ ŠŗŠ¾ŃŠµ Š½Š¾Š²ŠøŃŠµ Š²ŠµŃŠ·ŠøŃŠµ.\n" + +#~ msgid "" +#~ "Evince is distributed in the hope that it will be useful,\n" +#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +#~ "GNU General Public License for more details.\n" +#~ msgstr "" +#~ "Evince ŃŠµ ŃŠ°ŃŠæŠ¾Š“ŠµŃŃŃŠµ Ń Š½Š°Š“Šø Š“Š° ŃŠµ Š±ŠøŃŠø Š¾Š“ ŠŗŠ¾ŃŠøŃŃŠø, Š°Š»Šø ŠŠŠ\n" +#~ "ŠŠŠŠŠŠŠ„ ŠŠŠ ŠŠŠ¦ŠŠŠ; ŃŠ°Šŗ Šø Š±ŠµŠ· ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Šµ Š³Š°ŃŠ°Š½ŃŠøŃŠµ \n" +#~ "ŠŠŠ ŠŠ”ŠŠŠ”Š¢Š ŠøŠ»Šø ŠŠ ŠŠŠŠŠŠŠŠŠŠ”Š¢Š ŠŠŠ ŠŠŠŠŠŠ ŠŠŠŠŠŠ. ŠŠøŠ“ŠøŃŠµ ŠŠŠ£ \n" +#~ "ŠŠæŃŃŃ ŠŠ°Š²Š½Ń ŠŠøŃŠµŠ½ŃŃ Š·Š° Š²ŠøŃŠµ Š“ŠµŃŠ°ŃŠ°.\n" + +#~ msgid "" +#~ "You should have received a copy of the GNU General Public License\n" +#~ "along with Evince; if not, write to the Free Software Foundation, Inc.,\n" +#~ "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +#~ msgstr "" +#~ "Š¢ŃŠµŠ±Š°Š»Šø ŃŃŠµ Š“Š° ŠæŃŠøŠ¼ŠøŃŠµ ŠæŃŠøŠ¼ŠµŃŠ°Šŗ ŠŠŠ£ ŠŠæŃŃŠµ ŠŠ°Š²Š½Šµ ŠŠøŃŠµŠ½ŃŠµ ŃŠ· Evince; Š°ŠŗŠ¾\n" +#~ "Š½ŠøŃŃŠµ, ŠæŠøŃŠøŃŠµ ŠŠ°Š“ŃŠ¶Š±ŠøŠ½Šø Š·Š° Š”Š»Š¾Š±Š¾Š“Š½Šø Š”Š¾ŃŃŠ²ŠµŃ (Free Software Foundation, " +#~ "Inc.), \n" +#~ "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#~ msgid "Evince" +#~ msgstr "Evince" + +#~ msgid "Ā© 1996-2005 The Evince authors" +#~ msgstr "Š”Š²Š° ŠæŃŠ°Š²Š° Š·Š°Š“ŃŠ¶Š°Š½Š° Ā© 1996ā2005 ŠŃŃŠ¾ŃŠø Evince-Š°" + +#~ msgid "_File" +#~ msgstr "_ŠŠ°ŃŠ¾ŃŠµŠŗŠ°" + +#~ msgid "_Edit" +#~ msgstr "_Š£ŃŠµŃŠøŠ²Š°ŃŠµ" + +#~ msgid "_View" +#~ msgstr "Š_ŃŠµŠ³Š»ŠµŠ“" + +#~ msgid "_Go" +#~ msgstr "_ŠŠ“Šø" + +#~ msgid "_Help" +#~ msgstr "_ŠŠ¾Š¼Š¾Ń" + +#~ msgid "Open an existing document" +#~ msgstr "ŠŃŠ²Š¾ŃŠø ŠæŠ¾ŃŃŠ¾ŃŠµŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "_Save a Copy..." +#~ msgstr "_Š”Š°ŃŃŠ²Š°Ń ŃŠ¼Š½Š¾Š¶Š°Šŗ..." + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Š”Š°ŃŃŠ²Š°Ń ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾Š“ Š½Š¾Š²ŠøŠ¼ ŠøŠ¼ŠµŠ½Š¾Š¼" + +#~ msgid "Print this document" +#~ msgstr "ŠŠ“ŃŃŠ°Š¼ŠæŠ°Ń Š¾Š²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "View the properties of this document" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š¾ŃŠ¾Š±ŠøŠ½Šµ Š¾Š²Š¾Š³ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#~ msgid "Close this window" +#~ msgstr "ŠŠ°ŃŠ²Š¾ŃŠø Š¾Š²Š°Ń ŠæŃŠ¾Š·Š¾Ń" + +#~ msgid "Copy text from the document" +#~ msgstr "Š£Š¼Š½Š¾Š¶Šø ŃŠµŠŗŃŃ ŠøŠ· Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#~ msgid "Select _All" +#~ msgstr "ŠŠ·Š°Š±ŠµŃŠø _ŃŠ²Šµ" + +#~ msgid "Select the entire page" +#~ msgstr "ŠŠ·Š°Š±ŠµŃŠø ŃŠµŠ»Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "Find a word or phrase in the document" +#~ msgstr "ŠŠ°ŃŠø ŃŠµŃ ŠøŠ»Šø ŠøŠ·ŃŠ°Š· Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#~ msgid "Find Ne_xt" +#~ msgstr "ŠŃŠ¾Š½Š°ŃŠø _ŃŠ»ŠµŠ“ŠµŃŠµ" + +#~ msgid "Find next occurrence of the word or phrase" +#~ msgstr "ŠŃŠ¾Š½Š°ŃŠø ŃŠ»ŠµŠ“ŠµŃŃ ŠæŠ¾ŃŠ°Š²Ń ŃŠµŃŠø ŠøŠ»Šø ŠøŠ·ŃŠ°Š·Š°" + +#~ msgid "T_oolbar" +#~ msgstr "_ŠŠ»Š°ŃŠŗŠµ" + +#~ msgid "Customize the toolbar" +#~ msgstr "ŠŃŠøŠ»Š°Š³Š¾Š“Šø ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#~ msgid "Rotate _Left" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń _Š»ŠµŠ²Š¾" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š°Š»ŠµŠ²Š¾" + +#~ msgid "Rotate _Right" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń _Š“ŠµŃŠ½Š¾" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š°Š“ŠµŃŠ½Š¾" + +#~ msgid "Enlarge the document" +#~ msgstr "Š£Š²ŠµŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "Shrink the document" +#~ msgstr "Š£Š¼Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "_Reload" +#~ msgstr "_ŠŃŠ²ŠµŠ¶Šø" + +#~ msgid "Reload the document" +#~ msgstr "ŠŠ·Š½Š¾Š²Š° ŃŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "_Previous Page" +#~ msgstr "_ŠŃŠµŃŃ Š¾Š“Š½Š° ŃŃŃŠ°Š½Š°" + +#~ msgid "Go to the previous page" +#~ msgstr "ŠŠ“Šø Š½Š° ŠæŃŠµŃŃ Š¾Š“Š½Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "_Next Page" +#~ msgstr "_Š”Š»ŠµŠ“ŠµŃŠ° ŃŃŃŠ°Š½Š°" + +#~ msgid "Go to the next page" +#~ msgstr "ŠŠ“Šø Š½Š° ŃŠ»ŠµŠ“ŠµŃŃ ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "_First Page" +#~ msgstr "_ŠŃŠ²Š° ŃŃŃŠ°Š½Š°" + +#~ msgid "Go to the first page" +#~ msgstr "ŠŠ“Šø Š½Š° ŠæŃŠ²Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "_Last Page" +#~ msgstr "_ŠŠ¾ŃŠ»ŠµŠ“ŃŠ° ŃŃŃŠ°Š½Š°" + +#~ msgid "Go to the last page" +#~ msgstr "ŠŠ“Šø Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“ŃŃ ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "_Contents" +#~ msgstr "_Š”Š°Š“ŃŠ¶Š°Ń" + +#~ msgid "Display help for the viewer application" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠæŠ¾Š¼Š¾Ń Š·Š° ŠæŃŠ¾Š³ŃŠ°Š¼ ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ°" + +#~ msgid "_About" +#~ msgstr "_Š ŠæŃŠ¾Š³ŃŠ°Š¼Ń" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø Š·Š°ŃŠ»ŃŠ³Šµ ŃŠ²Š¾ŃŠ°ŃŠ° ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#~ msgid "Leave fullscreen mode" +#~ msgstr "ŠŠµ ŠæŃŠµŠŗŠ¾ ŃŠµŠ»Š¾Š³ ŠµŠŗŃŠ°Š½Š°" + +#~ msgid "Scroll one page forward" +#~ msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š½Ń ŃŃŃŠ°Š½Ń ŃŠ½Š°ŠæŃŠµŠ“" + +#~ msgid "Scroll one page backward" +#~ msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š½Ń ŃŃŃŠ°Š½Ń ŃŠ½Š°Š·Š°Š“" + +#~ msgid "Focus the page selector" +#~ msgstr "Š¤Š¾ŠŗŃŃŠøŃŠ°Ń ŠøŠ·Š±ŠøŃŠ°Ń ŃŃŃŠ°Š½ŠøŃŠµ" + +#~ msgid "Go ten pages backward" +#~ msgstr "ŠŠ“Šø 10 ŃŃŃŠ°Š½Š° ŃŠ½Š°Š·Š°Š“" + +#~ msgid "Go ten pages forward" +#~ msgstr "ŠŠ“Šø 10 ŃŃŃŠ°Š½Š° ŃŠ½Š°ŠæŃŠµŠ“" + +#~ msgid "_Toolbar" +#~ msgstr "ŠŠ»Š°_ŃŠŗŠµ" + +#~ msgid "Show or hide the toolbar" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#~ msgid "_Statusbar" +#~ msgstr "ŠŠøŠ½ŠøŃŠ° ŃŠ° _ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Side _pane" +#~ msgstr "ŠŠ¾ŃŠ½Š° _ŠæŠ¾Š²ŃŃ" + +#~ msgid "Show or hide the side pane" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ Š±Š¾ŃŠ½Ń ŠæŠ¾Š²ŃŃ" + +#~ msgid "_Continuous" +#~ msgstr "_ŠŠµŠæŃŠµŠŗŠøŠ“Š½Š¾" + +#~ msgid "Show the entire document" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŃŠøŃŠ°Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "_Dual" +#~ msgstr "ŠŠ¾ _Š“Š²Šµ" + +#~ msgid "Show two pages at once" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŃŠ²Šµ ŃŃŃŠ°Š½ŠøŃŠµ Š¾Š“ŃŠµŠ“Š½Š¾Š¼" + +#~ msgid "_Fullscreen" +#~ msgstr "_Š¦ŠµŠ¾ ŠµŠŗŃŠ°Š½" + +#~ msgid "Expand the window to fill the screen" +#~ msgstr "Š Š°ŃŠøŃŠø ŠæŃŠ¾Š·Š¾Ń Š“Š° ŠæŠ¾ŠæŃŠ½Šø ŃŠµŠ¾ ŠµŠŗŃŠ°Š½" + +#~ msgid "_Presentation" +#~ msgstr "_ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠµ" + +#~ msgid "Run document as a presentation" +#~ msgstr "ŠŃŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠŗŠ°Š¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃ" + +#~ msgid "_Best Fit" +#~ msgstr "ŠŠ°Ń_Š±Š¾ŃŠµ ŃŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#~ msgid "Make the current document fill the window" +#~ msgstr "ŠŠµŠŗŠ° ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾ŠæŃŠ½Šø ŠæŃŠ¾Š·Š¾Ń" + +#~ msgid "Fit Page _Width" +#~ msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŠæŃŠµŠ¼Š° _ŃŠøŃŠøŠ½Šø" + +#~ msgid "Make the current document fill the window width" +#~ msgstr "ŠŠµŠŗŠ° ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾ŠæŃŠ½Šø ŃŠøŃŠøŠ½Ń ŠæŃŠ¾Š·Š¾ŃŠ°" + +#~ msgid "Page" +#~ msgstr "Š”ŃŃŠ°Š½ŠøŃŠ°" + +#~ msgid "Select Page" +#~ msgstr "ŠŠ·Š°Š±ŠµŃŠø ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "Zoom" +#~ msgstr "Š£Š²ŠµŃŠ°Ń" + +#~ msgid "Adjust the zoom level" +#~ msgstr "ŠŃŠøŠ»Š°Š³Š¾Š“Šø Š½ŠøŠ²Š¾ ŃŠ²ŠµŃŠ°ŃŠ°" + +#~ msgid "Previous" +#~ msgstr "ŠŃŠµŃŃ Š¾Š“Š½Š°" + +#~ msgid "Next" +#~ msgstr "Š”Š»ŠµŠ“ŠµŃŠ°" + +#~ msgid "Zoom In" +#~ msgstr "Š£Š²ŠµŃŠ°Ń" + +#~ msgid "Zoom Out" +#~ msgstr "Š£Š¼Š°ŃŠø" + +#~ msgid "Fit Width" +#~ msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŃŠøŃŠøŠ½Ń" + +#~ msgid "The page of the document to display." +#~ msgstr "Š”ŃŃŠ°Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š·." + +#~ msgid "PAGE" +#~ msgstr "Š”Š¢Š ŠŠŠ" + +#~ msgid "" +#~ "Boolean options available, true enables thumbnailing and false disables " +#~ "the creation of new thumbnails" +#~ msgstr "" +#~ "ŠŠ¾ŃŃŃŠæŠ½Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ ŃŠŗŃŃŃŃŃŠµ ŠæŃŠøŠŗŠ°Š· ŃŠ»ŠøŃŠøŃŠ° Š·Š° " +#~ "ŃŃŃŠ°Š½Šµ, Š° ŠøŃŠŗŃŃŃŠøŠ²Š°ŃŠµ Š·Š°ŃŃŃŠ°Š²ŃŠ° ŠæŃŠ°Š²ŃŠµŃŠµ Š½Š¾Š²ŠøŃ ŃŠ»ŠøŃŠøŃŠ°" + +#~ msgid "Enable thumbnailing of PDF Documents" +#~ msgstr "Š£ŠŗŃŃŃŠø ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#~ msgid "Thumbnail command for PDF Documents" +#~ msgstr "ŠŠ°ŃŠµŠ“Š±Š° Š·Š° ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#~ msgid "" +#~ "Valid command plus arguments for the PDF Document thumbnailer. See " +#~ "caja thumbnailer documentation for more information." +#~ msgstr "" +#~ "ŠŃŠæŃŠ°Š²Š½Š° Š½Š°ŃŠµŠ“Š±Š° ŃŠ· Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠµ Š·Š° ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ. " +#~ "ŠŠ¾Š³Š»ŠµŠ“Š°ŃŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃŃ Š·Š° ŃŠ»ŠøŃŠøŃŠµ ŠøŠ· ŠŠ°ŃŃŠøŠ»ŃŃŠ° Š·Š° Š²ŠøŃŠµ ŠæŠ¾Š“Š°ŃŠ°ŠŗŠ°." diff --git a/help/sv/figures/evince_start_window.png b/help/sv/figures/evince_start_window.png new file mode 100644 index 00000000..7f386a72 Binary files /dev/null and b/help/sv/figures/evince_start_window.png differ diff --git a/help/sv/sv.po b/help/sv/sv.po new file mode 100644 index 00000000..65da10d9 --- /dev/null +++ b/help/sv/sv.po @@ -0,0 +1,900 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: evince doc\n" +"POT-Creation-Date: 2009-04-30 12:12+0000\n" +"PO-Revision-Date: 2009-08-23 23:07+0100\n" +"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Handbok fƶr Dokumentvisaren Evince" + +#: C/evince.xml:27(para) +msgid "The Evince Document Viewer application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "Dokumentvisaren Evince lĆ„ter dig visa dokument av olika format sĆ„som Portable Document Format-filer (PDF) och PostScript-filer" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) +#: C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) +#: C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) +#: C/evince.xml:67(orgname) +#: C/evince.xml:93(para) +#: C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Dokumentationsprojekt fƶr MATE" + +#: C/evince.xml:2(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +msgstr "TillstĆ„nd att kopiera, distribuera och/eller modifiera detta dokument ges under villkoren i GNU Free Documentation License (GFDL), version 1.1 eller senare, utgivet av Free Software Foundation utan standardavsnitt och omslagstexter. En kopia av GFDL finns att hƤmta pĆ„ denna <ulink type=\"help\" url=\"ghelp:fdl\">lƤnk</ulink> eller i filen COPYING-DOCS som medfƶljer denna handbok." + +#: C/evince.xml:12(para) +msgid "This manual is part of a collection of MATE manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license." +msgstr "Denna handbok utgƶr en av flera MATE-handbƶcker som distribueras under villkoren i GFDL. Om du vill distribuera denna handbok separat frĆ„n ƶvriga handbƶcker kan du gƶra detta genom att lƤgga till en kopia av licensavtalet i handboken enligt instruktionerna i avsnitt 6 i licensavtalet." + +#: C/evince.xml:19(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any MATE documentation, and the members of the MATE Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters." +msgstr "Flera namn pĆ„ produkter och tjƤnster Ƥr registrerade varumƤrken. I de fall dessa namn fƶrekommer i MATE-dokumentation - och medlemmarna i MATE-dokumentationsprojektet Ƥr medvetna om dessa varumƤrken - Ƥr de skrivna med versaler eller med inledande versal." + +#: C/evince.xml:35(para) +msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "DOKUMENTET TILLHANDAHĆ LLS I \"BEFINTLIGT SKICK\" UTAN NĆ GRA SOM HELST GARANTIER, VARE SIG UTTRYCKLIGA ELLER UNDERFĆRSTĆ DDA, INKLUSIVE, MEN INTE BEGRĆNSAT TILL, GARANTIER ATT DOKUMENTET ELLER EN MODIFIERAD VERSION AV DOKUMENTET INTE INNEHĆ LLER NĆ GRA FELAKTIGHETER, ĆR LĆMPLIGT FĆR ETT VISST ĆNDAMĆ L ELLER INTE STRIDER MOT LAG. HELA RISKEN VAD GĆLLER KVALITET, EXAKTHET OCH UTFĆRANDE AV DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET LIGGER HELT OCH HĆ LLET PĆ ANVĆNDAREN. OM ETT DOKUMENT ELLER EN MODIFIERAD VERSION AV ETT DOKUMENT SKULLE VISA SIG INNEHĆ LLA FELAKTIGHETER I NĆ GOT HĆNSEENDE ĆR DET DU (INTE DEN URSPRUNGLIGA SKRIBENTEN, FĆRFATTAREN ELLER NĆ GON ANNAN MEDARBETARE) SOM FĆ R STĆ FĆR ALLA EVENTUELLA KOSTNADER FĆR SERVICE, REPARATIONER ELLER KORRIGERINGAR. DENNA GARANTIFRISKRIVNING UTGĆR EN VĆSENTLIG DEL AV DETTA LICENSAVTAL. DETTA INNEBĆR ATT ALL ANVĆNDNING AV ETT DOKUMENT ELLER EN MODIFIERAD VERSION AV ETT DOKUMENT BEVILJAS ENDAST UNDER DENNA ANSVARSFRISKRIVNING;" + +#: C/evince.xml:55(para) +msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES." +msgstr "UNDER INGA OMSTĆNDIGHETER ELLER INOM RAMEN FĆR NĆ GON LAGSTIFTNING, OAVSETT OM DET GĆLLER KRĆNKNING (INKLUSIVE VĆ RDSLĆSHET), KONTRAKT ELLER DYLIKT, SKA FĆRFATTAREN, DEN URSPRUNGLIGA SKRIBENTEN ELLER ANNAN MEDARBETARE ELLER Ć TERFĆRSĆLJARE AV DOKUMENTET ELLER AV EN MODIFIERAD VERSION AV DOKUMENTET ELLER NĆ GON LEVERANTĆR TILL NĆ GON AV NĆMNDA PARTER STĆLLAS ANSVARIG GENTEMOT NĆ GON FĆR NĆ GRA DIREKTA, INDIREKTA, SĆRSKILDA ELLER OFĆRUTSEDDA SKADOR ELLER FĆLJDSKADOR AV NĆ GOT SLAG, INKLUSIVE, MEN INTE BEGRĆNSAT TILL, SKADOR BETRĆFFANDE FĆRLORAD GOODWILL, HINDER I ARBETET, DATORHAVERI ELLER NĆ GRA ANDRA TĆNKBARA SKADOR ELLER FĆRLUSTER SOM KAN UPPKOMMA PĆ GRUND AV ELLER RELATERAT TILL ANVĆNDNINGEN AV DOKUMENTET ELLER MODIFIERADE VERSIONER AV DOKUMENTET, ĆVEN OM PART SKA HA BLIVIT INFORMERAD OM MĆJLIGHETEN TILL SĆ DANA SKADOR." + +#: C/evince.xml:28(para) +msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>" +msgstr "DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET TILLHANDAHĆ LLS UNDER VILLKOREN I GNU FREE DOCUMENTATION LICENSE ENDAST UNDER FĆLJANDE FĆRUTSĆTTNINGAR: <placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Suns" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE-dokumentationsteam" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Handbok fƶr Dokumentvisaren Evince v1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Handbok fƶr Dokumentvisaren Evince v1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Den hƤr handboken beskriver version 0.2 av Dokumentvisaren Evince" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Ć terkoppling" + +#: C/evince.xml:110(para) +msgid "To report a bug or make a suggestion regarding the Evince Document Viewer application or this manual, follow the directions in the <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "Fƶr att rapportera ett fel eller komma med ett fƶrslag angĆ„ende Dokumentvisaren Evince eller denna handbok, fƶlj instruktionerna pĆ„ <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE:s Ć„terkopplingssida</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Dokumentvisaren Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Introduktion" + +#: C/evince.xml:129(para) +msgid "The <application>Evince Document Viewer</application> application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. <application>Evince Document Viewer</application> follows Freedesktop.org and MATE standards to provide integration with Desktop Environment." +msgstr "Programmet <application>Dokumentvisaren Evince</application> lĆ„ter dig visa dokument av olika format, sĆ„som Portable Document Format-filer (PDF) och PostScript-filer. <application>Dokumentvisaren Evince</application> fƶljer standarderna frĆ„n Freedesktop.org och MATE fƶr att tillhandahĆ„lla integration med skrivbordsmiljƶn." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "Komma igĆ„ng" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Starta Dokumentvisaren Evince" + +#: C/evince.xml:140(para) +msgid "<application>Evince Document Viewer</application> starts when you open a document such as a PDF or PostScript file." +msgstr "<application>Dokumentvisaren Evince</application> startar nƤr du ƶppnar ett dokument sĆ„som en PDF- eller PostScript-fil." + +#: C/evince.xml:141(para) +msgid "Alternatively, you can start <application>Evince Document Viewer</application> from the command line, with the command: <command>evince</command>." +msgstr "Alternativt kan du starta <application>Dokumentvisaren Evince</application> frĆ„n kommandoraden, med kommandot: <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "NƤr du startar Dokumentvisaren Evince" + +#: C/evince.xml:147(para) +msgid "When you start <application>Evince Document Viewer</application>, the following window is displayed." +msgstr "NƤr du startar <application>Dokumentvisaren Evince</application> kommer fƶljande fƶnster att visas." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Dokumentvisaren Evince-fƶnstret" + +#: C/evince.xml:158(phrase) +msgid "Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "Visar huvudfƶnstret i Dokumentvisaren Evince. InnehĆ„ller titelrad, menyrad, verktygsrad och visningsruta. Menyraden innehĆ„ller menyerna Arkiv, Redigera, Visa, GĆ„ och HjƤlp." + +#: C/evince.xml:164(para) +msgid "The <application>Evince Document Viewer</application> window contains the following elements:" +msgstr "Fƶnstret i <application>Dokumentvisaren Evince</application> innehĆ„ller fƶljande element:" + +#: C/evince.xml:168(term) +#: C/evince.xml:216(para) +msgid "Menubar" +msgstr "Menyrad" + +#: C/evince.xml:170(para) +msgid "The menus on the menubar contain all of the commands that you need to work with documents in <application>Evince Document Viewer</application>." +msgstr "Menyerna pĆ„ menyraden innehĆ„ller alla kommandon som du behƶver fƶr att arbeta med dokument i <application>Dokumentvisaren Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Verktygsrad" + +#: C/evince.xml:176(para) +msgid "The toolbar contains a subset of the commands that you can access from the menubar." +msgstr "Verktygsraden innehĆ„ller en mindre uppsƤttning kommandon som du kan komma Ć„t frĆ„n menyraden." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "Visningsrutan" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "Visningsrutan visar dokumentet." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "Komponent" + +#: C/evince.xml:198(para) +#: C/evince.xml:646(para) +msgid "Action" +msgstr "Ć tgƤrd" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Fƶnster" + +#: C/evince.xml:207(para) +msgid "Drag a file into the <application>Evince Document Viewer</application> window from another application such as a file manager." +msgstr "Dra en fil till fƶnstret fƶr <application>Dokumentvisaren Evince</application> frĆ„n ett annat program, sĆ„som en filhanterare." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Dubbelklicka pĆ„ filnamnet i filhanteraren" + +#: C/evince.xml:217(para) +#: C/evince.xml:244(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>." +msgstr "VƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Ćppna</guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "Snabbtangenter" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Tryck pĆ„ <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "In <application>Evince Document Viewer</application>, you can perform the same action in several ways. For example, you can open a document in the following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" +msgstr "I <application>Dokumentvisaren Evince</application>, kan du genomfƶra samma Ć„tgƤrd pĆ„ flera olika sƤtt. Till exempel kan du ƶppna ett dokument pĆ„ fƶljande sƤtt: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Den hƤr handboken dokumenterar funktionaliteten pĆ„ menyraden." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "AnvƤndning" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Ćppna ett dokument" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Genomfƶr fƶljande steg fƶr att ƶppna ett dokument:" + +#: C/evince.xml:248(para) +msgid "In the <guilabel>Open Document</guilabel> dialog, select the file you want to open." +msgstr "I dialogrutan <guilabel>Ćppna dokument</guilabel>, vƤlj filen som du vill ƶppna." + +#: C/evince.xml:253(para) +msgid "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</application> displays the name of the document in the titlebar of the window." +msgstr "Klicka pĆ„ <guibutton>Ćppna</guibutton>. <application>Dokumentvisaren Evince</application> visar namnet pĆ„ dokumentet i titelraden pĆ„ fƶnstret." + +#: C/evince.xml:258(para) +msgid "To open another document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. <application>Evince Document Viewer</application> opens each file in a new window." +msgstr "Fƶr att ƶppna ett annat dokument, vƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Ćppna</guimenuitem></menuchoice> igen. <application>Dokumentvisaren Evince</application> ƶppnar varje fil i ett nytt fƶnster." + +#: C/evince.xml:261(para) +msgid "If you try to open a document with format that <application>Evince Document Viewer</application> does not recognize, the application displays an error message." +msgstr "Om du fƶrsƶker att ƶppna ett dokument med ett format som <application>Dokumentvisaren Evince</application> inte kƤnner till, kommer programmet att visa ett felmeddelande." + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Navigera genom ett dokument" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Du kan navigera genom en fil pĆ„ fƶljande sƤtt:" + +#: C/evince.xml:271(para) +msgid "To view the next page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "Fƶr att visa nƤsta sida, vƤlj <menuchoice><guimenu>GĆ„</guimenu><guimenuitem>NƤsta sida</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "To view the previous page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "Fƶr att visa fƶregĆ„ende sida, vƤlj <menuchoice><guimenu>GĆ„</guimenu><guimenuitem>FƶregĆ„ende sida</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "To view the first page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "Fƶr att visa fƶrsta sida i dokumentet, vƤlj <menuchoice><guimenu>GĆ„</guimenu><guimenuitem>Fƶrsta sidan</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "To view the last page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "Fƶr att visa sista sidan i dokumentet, vƤlj <menuchoice><guimenu>GĆ„</guimenu><guimenuitem>Sista sidan</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>." +msgstr "Fƶr att visa en specifik sida, ange sidans nummer eller sidetikett i textrutan pĆ„ verktygsraden, tryck sedan pĆ„ <keycap>Return</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Rulla en sida" + +#: C/evince.xml:295(para) +msgid "To display the page contents that are not currently displayed in the display area, use the following methods:" +msgstr "AnvƤnd fƶljande metoder fƶr att visa sidinnehĆ„llet som fƶr nƤrvarande inte visas i visningsrutan:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "AnvƤnd piltangenterna eller blankstegstangenten pĆ„ tangentbordet." + +#: C/evince.xml:301(para) +msgid "Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window." +msgstr "Dra visningsrutan genom att klicka med mittenknappen pĆ„ musen nĆ„gonstans i dokumentet och flytta sedan musen. Till exempel, fƶr att rulla nedĆ„t i sidan, dra visningsrutan uppĆ„t i fƶnstret." + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "AnvƤnd rullisterna i fƶnstret." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Ćndra sidstorleken" + +#: C/evince.xml:312(para) +msgid "You can use the following methods to resize a page in the <application>Evince Document Viewer</application> display area:" +msgstr "Du kan anvƤnda fƶljande metoder fƶr att fƶrstora eller fƶrminska en sida i visningsrutan i <application>Dokumentvisaren Evince</application>:" + +#: C/evince.xml:317(para) +msgid "To increase the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "Fƶr att ƶka sidstorleken, vƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>Zooma in</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "To decrease the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "Fƶr att minska sidstorleken, vƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>Zooma ut</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "To resize a page to have the same width as the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "Fƶr att fƶrstora eller fƶrminska en sida till samma bredd som visningsrutan i <application>Dokumentvisaren Evince</application>, vƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>Anpassa till sidbredd</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "To resize a page to fit within the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "Fƶr att fƶrstora eller fƶrminska en sida fƶr att passa in i visningsrutan i <application>Dokumentvisaren Evince</application>, vƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>BƤsta anpassning</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "To resize the <application>Evince Document Viewer</application> window to have the same width and height as the screen, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></menuchoice>. To resize the <application>Evince Document Viewer</application> window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button." +msgstr "Fƶr att fƶrstora fƶnstret i <application>Dokumentvisaren Evince</application> till att ha samma bredd och hƶjd som skƤrmen, vƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>HelskƤrm</guimenuitem></menuchoice>. Fƶr att fƶrstora eller fƶrminska fƶnstret i <application>Dokumentvisaren Evince</application> till att ha ursprunglig storlek, klicka pĆ„ knappen <guibutton>LƤmna helskƤrmslƤget</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Visa sidor eller dokumentstruktur" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Genomfƶr fƶljande steg fƶr att visa bokmƤrken eller sidor:" + +#: C/evince.xml:350(para) +msgid "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "VƤlj <menuchoice><guimenu>Visa</guimenu><guimenuitem>Sidopanel</guimenuitem></menuchoice> eller tryck pĆ„ <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane." +msgstr "AnvƤnd rullgardinslistan i sidopanels huvud fƶr att vƤlja huruvida dokumentstruktur eller sidor i sidopanelen ska visas." + +#: C/evince.xml:360(para) +msgid "Use the side-pane scrollbars to display the required item or page in the side pane." +msgstr "AnvƤnd sidopanelens rullister fƶr att visa det begƤrda objektet eller sidan i sidopanelen." + +#: C/evince.xml:365(para) +msgid "Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document." +msgstr "Klicka pĆ„ ett objekt fƶr att navigera till den platsen i dokumentet. Klicka pĆ„ en sida fƶr att navigera till den sidan i dokumentet." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Visa egenskaperna fƶr ett dokument" + +#: C/evince.xml:372(para) +msgid "To view the properties of a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "Fƶr att visa egenskaperna fƶr ett dokument, vƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Egenskaper</guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "Dialogrutan <guilabel>Egenskaper</guilabel> visar all information som finns tillgƤnglig" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Skriv ut ett dokument" + +#: C/evince.xml:385(para) +msgid "To print a Document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "Fƶr att skriva ut ett dokument, vƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Skriv ut</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend=\"evince-password\"/> for more information about password-protected files." +msgstr "Om du inte kan vƤlja menyobjektet <guimenuitem>Skriv ut</guimenuitem>, kan fƶrfattaren av dokumentet inaktiverat utskriftsalternativet fƶr det hƤr dokumentet. Fƶr att aktivera utskriftsalternativet mĆ„ste du mata in huvudlƶsenordet nƤr du ƶppnar dokumentet. Se <xref linkend=\"evince-password\"/> fƶr mer information om lƶsenordsskyddade filer." + +#: C/evince.xml:393(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "Dialogrutan <guilabel>Skriv ut</guilabel> har fƶljande flikade sektioner:" + +#: C/evince.xml:399(link) +#: C/evince.xml:415(title) +msgid "Job" +msgstr "Jobb" + +#: C/evince.xml:404(link) +#: C/evince.xml:437(title) +#: C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "Skrivare" + +#: C/evince.xml:409(link) +#: C/evince.xml:531(title) +msgid "Paper" +msgstr "Papper" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Utskriftsintervall" + +#: C/evince.xml:419(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "VƤlj ett av fƶljande alternativ fƶr att bestƤmma hur mĆ„nga sidor som ska skrivas ut:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Alla" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "VƤlj det hƤr alternativet fƶr att skriva ut alla sidorna i dokumentet." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Sidor frĆ„n" + +#: C/evince.xml:427(para) +msgid "Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range." +msgstr "VƤlj det hƤr alternativet fƶr att skriva ut det valda intervallet av sidor i dokumentet. AnvƤnd vƤljaren fƶr att ange fƶrsta och sista sidan i intervallet." + +#: C/evince.xml:441(para) +msgid "Use this drop-down list to select the printer to which you want to print the document." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja skrivaren till vilken du vill skriva ut dokumentet." + +#: C/evince.xml:443(para) +msgid "The <guilabel>Create a PDF document</guilabel> option is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "Alternativet <guilabel>Skapa ett PDF-dokument</guilabel> stƶds inte av den hƤr versionen av <application>Dokumentvisaren Evince</application>." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "InstƤllningar" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja skrivarinstƤllningar." + +#: C/evince.xml:453(para) +msgid "To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer." +msgstr "Fƶr att konfigurera skrivaren, klicka pĆ„ <guibutton>Konfigurera</guibutton>. Till exempel kan du aktivera eller inaktivera dubbelsidig utskrift, eller schemalƤgga utskriften, om funktionaliteten stƶds av skrivaren." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Plats" + +#: C/evince.xml:459(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja ett av fƶljande utskriftsmĆ„l:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "Skriv ut dokumentet pĆ„ en CUPS-skrivare." + +#: C/evince.xml:470(para) +msgid "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list." +msgstr "Om den valda skrivaren Ƥr en CUPS-skrivare, Ƥr <guilabel>CUPS</guilabel> det enda objektet i den hƤr rullgardinslistan." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "Skriv ut dokumentet pĆ„ en skrivare." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "Fil" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "Skriv ut dokumentet till en PostScript-fil." + +#: C/evince.xml:490(para) +msgid "Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file." +msgstr "Klicka pĆ„ <guibutton>Spara som</guibutton> fƶr att visa en dialogruta dƤr du anger namnet och platsen fƶr PostScript-filen." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "Anpassad" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "AnvƤnd det angivna kommandot fƶr att skriva ut dokumentet." + +#: C/evince.xml:501(para) +msgid "Type the name of the command in the text box. Include all command-line arguments." +msgstr "Skriv in namnet pĆ„ kommandot i textrutan. Inkludera alla kommandoradsargument." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "TillstĆ„nd" + +#: C/evince.xml:511(para) +#: C/evince.xml:517(para) +#: C/evince.xml:523(para) +msgid "This functionality is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "Den hƤr funktionaliteten stƶds inte i den hƤr versionen av <application>Dokumentvisaren Evince</application>." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Typ" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Kommentar" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "Pappersstorlek" + +#: C/evince.xml:535(para) +msgid "Use this drop-down list to select the size of the paper to which you want to print the document." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja storleken pĆ„ pappret till vilket du vill skriva ut dokumentet." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Bredd" + +#: C/evince.xml:540(para) +msgid "Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit." +msgstr "AnvƤnd den hƤr vƤljaren fƶr att ange bredden pĆ„ pappret. AnvƤnd den nƤrliggande rullgardinslistan fƶr att Ƥndra mƤtenheten." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Hƶjd" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "AnvƤnd den hƤr vƤljaren fƶr att ange hƶjden pĆ„ pappret." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "Matningsorientering" + +#: C/evince.xml:550(para) +msgid "Use this drop-down list to select the orientation of the paper in the printer." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja orienteringen pĆ„ pappret i skrivaren." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "Sidorientering" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja sidorienteringen." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "Layout" + +#: C/evince.xml:560(para) +msgid "Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja sidlayouten. En fƶrhandsvisning av varje layout som du vƤljer visas i rutan <guilabel>Fƶrhandsgranskning</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "Utskriftsfack" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "AnvƤnd den hƤr rullgardinslistan fƶr att vƤlja utskriftsfacket." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Kopiera ett dokument" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Genomfƶr fƶljande steg fƶr att kopiera en fil:" + +#: C/evince.xml:580(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</guimenuitem></menuchoice>." +msgstr "VƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara en kopia</guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog." +msgstr "Ange filnamnet i textrutan <guilabel>Filnamn</guilabel> i dialogrutan <guilabel>Spara en kopia</guilabel>." + +#: C/evince.xml:588(para) +msgid "If necessary, specify the location of the copied document. By default, copies are saved in your home directory." +msgstr "Om det behƶvs, ange platsen fƶr dokumentkopian. Som standard sparas kopior i din hemkatalog." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Klicka pĆ„ <guibutton>Spara</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "Arbeta med lƶsenordsskyddade dokument" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "En fƶrfattare kan anvƤnda fƶljande lƶsenordsnivĆ„er fƶr att skydda ett dokument." + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "AnvƤndarlƶsenord som endast lĆ„ter andra lƤsa dokumentet." + +#: C/evince.xml:612(para) +msgid "Master password that allows others to perform additional actions, such as print the document." +msgstr "Huvudlƶsenord som lĆ„ter andra genomfƶra ytterligare Ć„tgƤrder, sĆ„som att skriva ut dokumentet." + +#: C/evince.xml:616(para) +msgid "When you try to open a password-protected document, <application>Evince Document Viewer</application> displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "NƤr du fƶrsƶker att ƶppna ett lƶsenordsskyddat dokument, kommer <application>Dokumentvisaren Evince</application> att visa en sƤkerhetsdialogruta. Ange antingen anvƤndarlƶsenordet eller huvudlƶsenordet i textrutan <guilabel>Ange lƶsenord fƶr dokumentet</guilabel>, klicka sedan pĆ„ <guibutton>Ćppna dokument</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "StƤnga ett dokument" + +#: C/evince.xml:624(para) +msgid "To close a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "Fƶr att stƤnga ett dokument, vƤlj <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>StƤng</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "If the window is the last <application>Evince Document Viewer</application> window open, the application exits." +msgstr "Om fƶnstret Ƥr det sista ƶppnade fƶnstret av <application>Dokumentvisaren Evince</application>, kommer programmet att avslutas." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "Snabbtangenter" + +#: C/evince.xml:636(para) +msgid "Below is a list of all shortcuts present in <application>Evince Document Viewer</application>:" +msgstr "Nedan Ƥr en lista ƶver alla snabbtangenter som finns i <application>Dokumentvisaren Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "Snabbtangent" + +#: C/evince.xml:651(keycap) +#: C/evince.xml:655(keycap) +#: C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) +#: C/evince.xml:667(keycap) +#: C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) +#: C/evince.xml:683(keycap) +#: C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Ćppna ett befintligt dokument" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "Spara en kopia av aktuellt dokument" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "Skriv ut dokument" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "StƤng fƶnster" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "Kopiera markering" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Markera allt" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (snedstreck)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "Sƶk efter ett ord eller fras i dokumentet" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +#| msgid "F" +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "Sƶk nƤsta" + +#: C/evince.xml:690(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plustecken)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "Zooma in" + +#: C/evince.xml:698(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minustecken)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Zooma ut" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "LƤs om dokumentet" + +#: C/evince.xml:709(keycap) +#: C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "GĆ„ fƶregĆ„ende sida" + +#: C/evince.xml:713(keycap) +#: C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "GĆ„ till nƤsta sida" + +#: C/evince.xml:718(keycap) +#: C/evince.xml:726(keycap) +msgid "Space" +msgstr "Blanksteg" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:726(keycap) +#: C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) +#: C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Skift" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Backsteg" + +#: C/evince.xml:720(keycap) +#: C/evince.xml:728(keycap) +msgid "Return" +msgstr "Return" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Rulla framĆ„t" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Rulla bakĆ„t" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "GĆ„ ett antal sidor upp" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "GĆ„ ett antal sidor ned" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "GĆ„ till fƶrsta sidan" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "GĆ„ till sista sidan" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "GĆ„ till sida efter siffra eller etikett" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "HjƤlp" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Kƶr dokumentet som presentation" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "Visa eller dƶlj sidopanelen" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "VƤxla helskƤrmslƤge" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Daniel Nylander <po@danielnylander.se>, 2006, 2008, 2009" + diff --git a/help/uk/figures/evince_start_window.png b/help/uk/figures/evince_start_window.png new file mode 100644 index 00000000..bd210bef Binary files /dev/null and b/help/uk/figures/evince_start_window.png differ diff --git a/help/uk/uk.po b/help/uk/uk.po new file mode 100644 index 00000000..0348aa39 --- /dev/null +++ b/help/uk/uk.po @@ -0,0 +1,998 @@ +# Ukrainian translation to evince. +# Copyright (C) Free Software Foundation, 2005 +# This file is distributed under the same license as the epiphany package. +# Maxim Dziumanenko <dziumanenko@gmail.com>, 2005-2006. +# +msgid "" +msgstr "" +"Project-Id-Version: evince manual\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-14 07:47+0400\n" +"PO-Revision-Date: 2007-03-11 21:19+0300\n" +"Last-Translator: Maxim Dziumanenko <dziumanenko@gmail.com>\n" +"Language-Team: Ukrainian <uk@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: ../C/evince.xml:146(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: ../C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "ŠŠ¾Š²ŃŠ“ŠŗŠ° Š· ŠæŠµŃŠµŠ³Š»ŃŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince" + +#: ../C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "" +"ŠŃŠ¾Š³ŃŠ°Š¼Š° <application>ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince</application> Š“Š¾Š·Š²Š¾Š»ŃŃ " +"ŠæŠµŃŠµŠ³Š»ŃŠ“Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø ŃŃŠ·Š½ŠøŃ ŃŠ¾ŃŠ¼Š°ŃŃŠ², Š½Š°ŠæŃŠøŠŗŠ»Š°Š“ ŃŠ°Š¹Š»ŃŠ² Portable Document " +"Format (PDF) ŃŠø PostScript." + +#: ../C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: ../C/evince.xml:34(holder) ../C/evince.xml:91(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: ../C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: ../C/evince.xml:38(holder) ../C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: ../C/evince.xml:49(publishername) ../C/evince.xml:67(orgname) +#: ../C/evince.xml:92(para) +msgid "MATE Documentation Project" +msgstr "ŠŃŠ¾ŠµŠŗŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²Š°Š½Š½Ń MATE" + +#: ../C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"ŠŠ¾Š·Š²Š¾Š»ŃŃŃŃŃŃ ŠŗŠ¾ŠæŃŃŠ²Š°ŃŠø, ŃŠ¾Š·ŠæŠ¾Š²ŃŃŠ“Š¶ŃŠ²Š°ŃŠø ŃŠ°/Š°Š±Š¾ Š·Š¼ŃŠ½ŃŠ²Š°ŃŠø ŃŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š° " +"ŃŠ¼Š¾Š²Š°Ń Š»ŃŃŠµŠ½Š·ŃŃ GNU Free Documentation License (GFDL), Š²ŠµŃŃŃŃ 1.1 Š°Š±Š¾ Š±ŃŠ“Ń-" +"ŃŠŗŠ¾Ń ŃŃŠ°ŃŃŠ¾Ń Š²ŠµŃŃŃŃ, ŃŠ¾ Š¾ŠæŃŠ±Š»ŃŠŗŠ¾Š²Š°Š½Š° Free Software Foundation Š±ŠµŠ· " +"ŃŠ½Š²Š°ŃŃŠ°Š½ŃŠ½ŠøŃ ŃŠ¾Š·Š“ŃŠ»ŃŠ², ŃŠµŠŗŃŃŃ ŃŠøŃŃŠ»ŃŠ½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø, ŃŠ° ŃŠµŠŗŃŃŃ ŃŃŠ½Š°Š»ŃŠ½Š¾Ń " +"ŃŃŠ¾ŃŃŠ½ŠŗŠø. ŠŠ¾ŠæŃŃ GFDL Š¼Š¾Š¶Š½Š° Š·Š½Š°Š¹ŃŠø <ulink type=\"help\" url=\"ghelp:fdl\">Š·Š° " +"Š°Š“ŃŠµŃŠ¾Ń</ulink> Š°Š±Š¾ Ń ŃŠ°Š¹Š»Ń COPYING-DOCS, ŃŠ¾ ŠæŠ¾ŃŃŠ°ŃŠ°ŃŃŃŃŃ Š· ŃŃŃŃ Š“Š¾Š²ŃŠ“ŠŗŠ¾Ń." + +#: ../C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Š¦Ń Š“Š¾Š²ŃŠ“ŠŗŠ° Ń ŃŠ°ŃŃŠøŠ½Š¾Ń Š·Š±ŃŃŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŃŃ Š· MATE, ŃŠ¾ ŠæŠ¾ŃŃŠ°ŃŠ°ŃŃŃŃŃ Š½Š° ŃŠ¼Š¾Š²Š°Ń " +"Š»ŃŃŠµŠ½Š·ŃŃ GFDL. ŠÆŠŗŃŠ¾ Š²Šø Š±Š°Š¶Š°ŃŃŠµ ŃŠ¾Š·ŠæŠ¾Š²ŃŃŠ“Š¶ŃŠ²Š°ŃŠø ŃŃ Š“Š¾Š²ŃŠ“ŠŗŃ Š¾ŠŗŃŠµŠ¼Š¾ Š²ŃŠ“ Š·Š±ŃŃŠŗŠø, " +"Š¼Š¾Š¶ŠµŃŠµ ŃŠµ Š·ŃŠ¾Š±ŠøŃŠø Š“Š¾Š“Š°Š²ŃŠø Š“Š¾ Š“Š¾Š²ŃŠ“ŠŗŠø ŠŗŠ¾ŠæŃŃ Š»ŃŃŠµŠ½Š·ŃŃ, ŃŠŗ Š¾ŠæŠøŃŠ°Š½Š¾ Ń ŠæŃŠ½ŠŗŃŃ 6 " +"Š»ŃŃŠµŠ½Š·ŃŃ." + +#: ../C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"ŠŃŠ»ŃŃŃŃŃŃ Š½Š°Š·Š², ŃŠ¾ Š²ŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŃŃŃ ŠŗŠ¾Š¼ŠæŠ°Š½ŃŃŠ¼Šø Š“Š»Ń ŃŠ¾Š·ŠæŠ¾Š²ŃŃŠ“Š¶ŠµŠ½Š½Ń ŃŃ " +"ŠæŃŠ¾Š“ŃŠŗŃŃŠ² ŃŠ° ŠæŠ¾ŃŠ»ŃŠ³ Ń ŃŠ¾ŃŠ³Š¾Š²ŠøŠ¼Šø Š¼Š°ŃŠŗŠ°Š¼Šø. ŠÆŠŗŃŠ¾ ŃŠ°ŠŗŃ Š½Š°Š·Š²Šø Š·ŃŃŃŃŃŃŠ°ŃŃŃŃŃ Ń " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŃŃ Š· MATE ŃŠ° ŃŃŠ°ŃŠ½ŠøŠŗŠ°Š¼ ŠæŃŠ¾ŠµŠŗŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²Š°Š½Š½Ń MATE Š²ŃŠ“Š¾Š¼Š¾, ŃŠ¾ " +"Š²Š¾Š½Šø Ń ŃŠ¾ŃŠ³Š¾Š²ŠøŠ¼Šø Š¼Š°ŃŠŗŠ°Š¼Šø, ŃŠ¾Š“Ń ŃŃ Š½Š°Š·Š²Šø ŠæŠøŃŃŃŃŃŃ Š²ŠµŠ»ŠøŠŗŠøŠ¼Šø Š»ŃŃŠµŃŠ°Š¼Šø Š°Š±Š¾ " +"ŠæŠ¾ŃŠøŠ½Š°ŃŃŃŃŃ Š· Š²ŠµŠ»ŠøŠŗŠ¾Ń Š»ŃŃŠµŃŠø." + +#: ../C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ ŠŠŠŠŠŠ¢Š¬Š”ŠÆ \"ŠÆŠ Š\", ŠŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠ„ ŠŠŠ ŠŠŠ¢ŠŠ, ŠÆŠŠŠŠ„ Š§Š ŠŠŠÆŠŠŠŠ„, " +"ŠŠŠŠ®Š§ŠŠ®Š§Š, ŠŠŠ ŠŠ ŠŠŠŠŠŠ£Š®Š§ŠŠ”Š¬, ŠŠŠ ŠŠŠ¢ŠŠ Š©Š Š¦ŠŠ ŠŠŠŠ£ŠŠŠŠ¢ Š§Š ŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠÆ " +"ŠŠŠŠ£ŠŠŠŠ¢Š ŠŠŠŠ¬ŠŠ ŠŠŠ ŠŠŠ¤ŠŠŠ¢ŠŠ, ŠŠ ŠŠŠŠ¢ŠŠ ŠŠ ŠŠ ŠŠŠŠŠ£, ŠŠŠŠŠŠŠŠŠŠ®Š¢Š¬ ŠŠŠŠŠŠ ŠŠŠ¢Š " +"ŠŠŠ ŠŠ ŠŠŠ Š£ŠØŠ£Š®Š¢Š¬ Š§ŠŠŠ”Š¬ ŠŠ ŠŠŠ. ŠŠŠ”Š¬ Š ŠŠŠŠ ŠŠ ŠÆŠŠŠ”Š¢Š¬, Š¢ŠŠ§ŠŠŠ”Š¢Š¬, Š¢Š Š§ŠŠŠŠŠ”Š¢Š¬ " +"Š¦Š¬ŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ ŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠŠŠ„ ŠŠŠ Š”ŠŠ ŠŠŠŠŠ¢Š¬ ŠŠ ŠŠŠ”. ŠÆŠŠ©Š ŠŠ£ŠŠ¬-ŠÆŠŠŠ " +"ŠŠŠŠ£ŠŠŠŠ¢ Š§Š ŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠÆ ŠŠ£ŠŠ£Š¢Š¬ ŠŠŠŠŠŠŠ ŠŠŠ¤ŠŠŠ¢ŠŠŠŠ Š£ ŠŠ£ŠŠ¬-ŠÆŠŠŠŠ£ " +"ŠŠŠŠŠŠØŠŠŠŠ, ŠŠ (ŠŠ ŠŠŠ§ŠŠ¢ŠŠŠŠŠ Š£ŠŠŠŠŠŠ§, ŠŠŠ¢ŠŠ ŠŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠ Š”ŠŠŠŠŠŠ¢ŠŠ ) ŠŠŠ ŠŠ¢Š " +"ŠŠ Š”ŠŠŠ ŠŠŠ¢Š ŠŠ¢Š ŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠ ŠŠŠŠŠ„ŠŠŠŠ ŠŠŠ”ŠŠ£ŠŠŠŠ£ŠŠŠŠŠÆ, Š ŠŠŠŠŠ¢ Š§Š ŠŠŠŠ ŠŠŠŠŠŠŠÆ. " +"Š¦ŠÆ ŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠ ŠŠŠ¢ŠŠ Š”ŠŠŠŠŠŠ ŠŠŠŠŠŠŠ£ Š§ŠŠ”Š¢ŠŠŠ£ Š¦ŠŠŠ ŠŠŠ¦ŠŠŠŠŠ. ŠŠ " +"ŠŠŠŠ£Š”ŠŠŠŠ¢Š¬Š”ŠÆ ŠŠŠŠŠ ŠŠ”Š¢ŠŠŠŠÆ Š¦Š¬ŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ ŠŠŠ ŠŠŠŠ ŠŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠ ŠŠŠ " +"ŠŠ ŠŠŠŠÆŠ¢Š¢ŠÆ Š¦ŠŠŠ ŠŠŠŠŠŠŠ; Š¢Š" + +#: ../C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ŠŠ ŠŠ ŠÆŠŠŠ„ ŠŠŠ”Š¢ŠŠŠŠ Š¢Š ŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠŠ ŠŠŠŠŠŠŠŠŠŠ”Š¢ŠŠ, Š§Š Š¢Š ŠŠ ŠŠŠŠŠÆŠŠ”Š¬ŠŠŠ " +"ŠŠŠŠŠŠŠŠŠŠŠ¬ŠŠŠ”Š¢Š (ŠŠŠŠ®Š§ŠŠ®Š§Š Š„ŠŠŠŠ¢ŠŠŠ”Š¢Š¬), ŠŠŠŠŠŠŠ Š£, Š§Š Š§ŠŠŠŠ”Š¬ ŠŠŠØŠŠŠ, ŠŠŠ¢ŠŠ , " +"ŠŠŠ§ŠŠ¢ŠŠŠŠŠ Š£ŠŠŠŠŠŠ§, ŠŠ£ŠŠ¬-ŠÆŠŠŠ Š”ŠŠŠŠŠŠ¢ŠŠ , ŠŠŠ ŠŠŠ”Š¢Š ŠŠ'Š®Š¢ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ Š§Š " +"ŠŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£, ŠŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠ ŠŠŠ”Š¢ŠŠ§ŠŠŠ¬ŠŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠ Š Š¦ŠŠ„ " +"Š”Š¢ŠŠ ŠŠ, ŠŠ ŠŠŠ”Š ŠŠŠŠŠŠŠŠŠŠŠ¬ŠŠŠ”Š¢Š¬ ŠŠŠ ŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠ® ŠŠ”ŠŠŠŠ® ŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠ ŠŠ ŠÆŠŠ, " +"ŠŠŠŠ ŠÆŠŠ, ŠŠ”ŠŠŠŠŠŠ, ŠŠŠŠŠŠŠŠŠ, ŠŠŠ ŠŠ”Š¢ŠŠ¢ŠŠ ŠŠŠŠ¢ŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠŠŠ Š„ŠŠ ŠŠŠ¢ŠŠ Š£ " +"ŠŠŠŠ®Š§ŠŠ®Š§Š, ŠŠŠ ŠŠ ŠŠŠŠŠŠ£Š®Š§ŠŠ”Š¬, ŠŠŠŠ¢ŠŠŠŠ ŠŠŠ ŠŠ¢Š ŠŠ¢Š ŠŠ ŠŠ”Š¢ŠŠŠ£, ŠŠ£ŠŠŠŠŠ Š ŠŠŠŠ¢Š, " +"ŠŠŠŠŠ ŠŠŠ ŠŠŠ”ŠŠ ŠŠŠŠŠ”Š¢ŠŠ ŠŠŠŠ'Š®Š¢ŠŠ Š, ŠŠŠ ŠŠ£ŠŠ¬-ŠÆŠŠ ŠŠŠØŠ ŠŠŠŠ¢ŠŠ ŠŠŠ ŠŠ¢Š ŠŠ¢Š Š©Š " +"ŠŠŠŠŠŠŠ ŠŠŠŠŠŠŠŠŠ”ŠŠ ŠŠŠ ŠŠŠŠ”ŠŠŠŠŠ ŠŠŠŠŠ ŠŠ”Š¢ŠŠŠŠÆ Š¦Š¬ŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ Š¢Š ŠŠŠŠŠŠŠŠ„ " +"ŠŠŠ Š”ŠŠ Š¦Š¬ŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£, ŠŠŠŠŠ¢Š¬ ŠÆŠŠ©Š Š¦Š Š”Š¢ŠŠ ŠŠŠ, ŠŠŠŠŠŠŠ, ŠŠ£ŠŠ ŠŠ ŠŠŠŠ¤ŠŠ ŠŠŠŠŠŠ " +"ŠŠ Š ŠŠŠŠŠŠŠŠ”Š¢Š¬ Š¢ŠŠŠŠ„ ŠŠŠŠ¢ŠŠŠ." + +#: ../C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ŠŠŠŠ£ŠŠŠŠ¢ Š¢Š ŠŠŠŠŠŠŠ ŠŠŠ Š”ŠŠ Š¦Š¬ŠŠŠ ŠŠŠŠ£ŠŠŠŠ¢Š£ ŠŠŠ”Š¢ŠŠ§ŠŠ®Š¢Š¬Š”ŠÆ ŠŠ Š£ŠŠŠŠŠ„ ŠŠŠŠ¬ŠŠŠ " +"ŠŠŠ¦ŠŠŠŠŠ ŠŠŠÆ ŠŠŠŠ£ŠŠŠŠ¢ŠŠ¦ŠŠ GNU Š ŠŠŠŠŠŠ¬ŠØŠŠ Š ŠŠŠ£ŠŠŠŠŠÆŠ Š©Š: <placeholder-1/>" + +#: ../C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: ../C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²Š°Š½Š½Ń MATE" + +#: ../C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "ŠŠøŠŗŠ¾Š»Š°Š¹ Š." + +#: ../C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "ŠØŠ¼ŠøŃŃŠ¾Š²" + +#: ../C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: ../C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "ŠŠ¾Š²ŃŠ“ŠŗŠ° Š· ŠæŠµŃŠµŠ³Š»ŃŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince Š²ŠµŃŃŃŃ 1.0" + +#: ../C/evince.xml:89(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: ../C/evince.xml:97(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "Š£ ŃŃŠ¾Š¼Ń Š“Š¾Š²ŃŠ“Š½ŠøŠŗŃ Š¾ŠæŠøŃŃŃŃŃŃŃ ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince Š²ŠµŃŃŃŃ 0.2." + +#: ../C/evince.xml:100(title) +msgid "Feedback" +msgstr "ŠŠ²Š¾ŃŠ¾ŃŠ½ŠøŠ¹ Š·Š²'ŃŠ·Š¾Šŗ" + +#: ../C/evince.xml:101(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"Š©Š¾Š± ŃŠæŠ¾Š²ŃŃŃŠøŃŠø ŠæŃŠ¾ ŠæŠ¾Š¼ŠøŠ»ŠŗŃ Š°Š±Š¾ Š²Š½ŠµŃŃŠø ŠæŃŠ¾ŠæŠ¾Š·ŠøŃŃŃ Š²ŃŠ“Š½Š¾ŃŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø " +"ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince Š°Š±Š¾ ŃŃŃŃ Š“Š¾Š²ŃŠ“ŠŗŠø, Š“Š¾ŃŃŠøŠ¼ŃŠ¹ŃŠµŃŃ ŃŠ½ŃŃŃŃŠŗŃŃŠ¹ Š½Š° " +"ŃŃŠ¾ŃŃŠ½ŃŃ <ulink url=\"ghelp:mate-feedback\" type=\"help\">ŠŠ²Š¾ŃŠ¾ŃŠ½ŠøŠ¹ Š·Š²'ŃŠ·Š¾Šŗ " +"Š· MATE</ulink>." + +#: ../C/evince.xml:108(primary) +msgid "Evince Document Viewer" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š° ŠæŠµŃŠµŠ³Š»ŃŠ“Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince" + +#: ../C/evince.xml:111(primary) +msgid "evince" +msgstr "evince" + +#: ../C/evince.xml:119(title) +msgid "Introduction" +msgstr "ŠŃŃŃŠæ" + +#: ../C/evince.xml:120(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"ŠŃŠ¾Š³ŃŠ°Š¼Š° <application>ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince</application> Š“Š¾Š·Š²Š¾Š»ŃŃ " +"ŠæŠµŃŠµŠ³Š»ŃŠ“Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø ŃŃŠ·Š½ŠøŃ ŃŠ¾ŃŠ¼Š°ŃŃŠ², Š½Š°ŠæŃŠøŠŗŠ»Š°Š“ ŃŠ°Š¹Š»ŃŠ² Portable Document " +"Format (PDF) ŃŠø PostScript. Š£ Š·Š°Š±ŠµŠ·ŠæŠµŃŠµŠ½Š½Ń ŃŠ½ŃŠµŠ³ŃŠ°ŃŃŃ Š· ŃŠ¾Š±Š¾ŃŠøŠ¼ ŃŠµŃŠµŠ“Š¾Š²ŠøŃŠµŠ¼ " +"<application>ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince</application> Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š°Ń " +"ŃŃŠ°Š½Š“Š°ŃŃŠ°Š¼ Freedesktop.org ŃŠ° MATE." + +#: ../C/evince.xml:127(title) +msgid "Getting Started" +msgstr "ŠŠ¾ŃŠ°ŃŠ¾Šŗ ŃŠ¾Š±Š¾ŃŠø" + +#: ../C/evince.xml:130(title) +msgid "To Start Evince Document Viewer" +msgstr "ŠŠ°ŠæŃŃŠŗ ŠæŃŠ¾Š³ŃŠ°Š¼Šø Evince" + +#: ../C/evince.xml:131(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"ŠŃŠø Š²ŃŠ“ŠŗŃŠøŠ²Š°Š½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠøŠæŃŠ² PDF ŃŠø PostScript Š²ŃŠ“ŠŗŃŠøŠ²Š°ŃŃŃŃŃ Š²ŃŠŗŠ½Š¾ " +"ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</application>:" + +#: ../C/evince.xml:132(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"<application>Evince</application> ŃŠ°ŠŗŠ¾Š¶ Š¼Š¾Š¶Š½Š° Š·Š°ŠæŃŃŃŠøŃŠø Š· ŠŗŠ¾Š¼Š°Š½Š“Š½Š¾Š³Š¾ ŃŃŠ“ŠŗŠ°." + +#: ../C/evince.xml:137(title) +msgid "When You Start Evince Document Viewer" +msgstr "ŠŃŃŠ»Ń ŠæŠµŃŃŠ¾Š³Š¾ Š·Š°ŠæŃŃŠŗŃ ŠæŃŠ¾Š³ŃŠ°Š¼Šø Evince" + +#: ../C/evince.xml:138(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"ŠŃŃŠ»Ń Š·Š°ŠæŃŃŠŗŃ ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince</" +"application> Š²ŃŠ“ŠŗŃŠøŃŃŃŃŃ Š½Š°ŃŃŃŠæŠ½Šµ Š²ŃŠŗŠ½Š¾." + +#: ../C/evince.xml:142(title) +msgid "Evince Document Viewer Window" +msgstr "ŠŃŠŗŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø ŠæŠµŃŠµŠ³Š»ŃŠ“Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince." + +#: ../C/evince.xml:149(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"ŠŠ¾ŠŗŠ°Š·Š°Š½Š¾ Š³Š¾Š»Š¾Š²Š½Šµ Š²ŃŠŗŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince. ŠŃŠŗŠ½Š¾ Š¼ŃŃŃŠøŃŃ " +"Š·Š°Š³Š¾Š»Š¾Š²Š¾Šŗ, ŠæŠ°Š½ŠµŠ»Ń Š¼ŠµŠ½Ń, ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ² ŃŠ° Š¾Š±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń. ŠŠµŠ½Ń " +"Š¼ŃŃŃŠøŃŃ ŠæŃŠ½ŠŗŃŠø Š¤Š°Š¹Š», ŠŃŠ°Š²ŠŗŠ°, ŠŠøŠ³Š»ŃŠ“, ŠŠµŃŠµŠ¹ŃŠø ŃŠ° ŠŠ¾Š²ŃŠ“ŠŗŠ°." + +#: ../C/evince.xml:155(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "" +"ŠŃŠŗŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>ŠŠµŃŠµŠ³Š»ŃŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Evince</application> " +"Š¼ŃŃŃŠøŃŃ Š½Š°ŃŃŃŠæŠ½Ń ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠø:" + +#: ../C/evince.xml:159(term) ../C/evince.xml:207(para) +msgid "Menubar" +msgstr "ŠŠ°Š½ŠµŠ»Ń Š¼ŠµŠ½Ń" + +#: ../C/evince.xml:161(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"ŠŠµŠ½Ń Š¼ŃŃŃŠøŃŃ ŃŃŃ Š½ŠµŠ¾Š±Ń ŃŠ“Š½Ń Š“Š»Ń ŃŠ¾Š±Š¾ŃŠø Š· Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°Š¼Šø ŠŗŠ¾Š¼Š°Š½Š“Šø Ń ŠæŃŠ¾Š³ŃŠ°Š¼Ń " +"<application>Evince</application>." + +#: ../C/evince.xml:165(term) +msgid "Toolbar" +msgstr "ŠŠ°Š½ŠµŠ»Ń Š¼ŠµŠ½Ń" + +#: ../C/evince.xml:167(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "ŠŠ°Š½ŠµŠ»Ń Š¼ŠµŠ½Ń Š¼ŃŃŃŠøŃŃ ŠæŃŠ“Š½Š°Š±ŃŃ Š“Š¾ŃŃŃŠæŠ½ŠøŃ Ń Š¼ŠµŠ½Ń ŠŗŠ¾Š¼Š°Š½Š“." + +#: ../C/evince.xml:171(term) +msgid "Display area" +msgstr "ŠŠ±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń" + +#: ../C/evince.xml:173(para) +msgid "The display area displays the document." +msgstr "ŠŠ±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń ŠæŠ¾ŠŗŠ°Š·ŃŃ Š²Š¼ŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ." + +#: ../C/evince.xml:187(para) +msgid "UI Component" +msgstr "ŠŃŠ°ŃŃŃŠ½ŠøŠ¹ ŠŗŠ¾Š¼ŠæŠ¾Š½ŠµŠ½Ń" + +#: ../C/evince.xml:189(para) +msgid "Action" +msgstr "ŠŃŃ" + +#: ../C/evince.xml:194(para) +msgid "Window" +msgstr "ŠŃŠŗŠ½Š¾" + +#: ../C/evince.xml:198(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"ŠŠµŃŠµŃŃŠ³Š½ŃŃŃ ŃŠ°Š¹Š» Ń Š²ŃŠŗŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</application> Š· ŃŠ½ŃŠ¾Ń " +"ŠæŃŠ¾Š³ŃŠ°Š¼Šø, Š½Š°ŠæŃŠøŠŗŠ»Š°Š“, Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŠ° ŃŠ°Š¹Š»ŃŠ²." + +#: ../C/evince.xml:201(para) +msgid "Double-click on the file name in the file manager" +msgstr "ŠŠ²ŃŃŃ ŠŗŠ»Š°ŃŠ½ŃŃŃ Š½Š° Š½Š°Š·Š²Ń ŃŠ°Š¹Š»Ń Ń ŃŠ°Š¹Š»Š¾Š²Š¾Š¼Ń Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŃ" + +#: ../C/evince.xml:208(para) ../C/evince.xml:235(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"ŠŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŃŠ“ŠŗŃŠøŃŠø</" +"guimenuitem></menuchoice>." + +#: ../C/evince.xml:212(para) +msgid "Shortcut keys" +msgstr "ŠŠ¾Š¼Š±ŃŠ½Š°ŃŃŃ ŠŗŠ»Š°Š²ŃŃ" + +#: ../C/evince.xml:213(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŃŃŃ <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: ../C/evince.xml:178(para) +#, fuzzy +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><thead><row valign=\"top\"><entry " +"colname=\"COLSPEC0\"><placeholder-1/></entry><entry colname=\"COLSPEC1\" " +"align=\"left\"><placeholder-2/></entry></row></thead><tbody><row valign=\"top" +"\"><placeholder-3/><entry><placeholder-4/></entry></row><row valign=\"top" +"\"><placeholder-5/><entry><placeholder-6/></entry></row><row valign=\"top" +"\"><placeholder-7/><placeholder-8/></row></tbody></tgroup></informaltable>" +msgstr "" +"Š£ ŠæŃŠ¾Š³ŃŠ°Š¼Ń <application>Evince</application> Š¾Š“Š½Ń Š¹ ŃŃ ŃŠ°Š¼Ń Š“ŃŃ Š¼Š¾Š¶Š½Š° " +"Š²ŠøŠŗŠ¾Š½ŃŠ²Š°ŃŠø ŠŗŃŠ»ŃŠŗŠ¾Š¼Š° ŃŠæŠ¾ŃŠ¾Š±Š°Š¼Šø. ŠŠ°ŠæŃŠøŠŗŠ»Š°Š“, Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š¼Š¾Š¶Š½Š° Š²ŃŠ“ŠŗŃŠøŃŠø Š½Š°ŃŃŃŠæŠ½ŠøŠ¼ " +"ŃŠøŠ½Š¾Š¼: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=" +"\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=" +"\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></" +"informaltable>" + +#: ../C/evince.xml:219(para) +msgid "This manual documents functionality from the menubar." +msgstr "Š£ ŃŃŠ¾Š¼Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š¾ŠæŠøŃŃŃŃŃŃŃ Š“ŃŃ Š· Š²ŠøŠŗŠ¾ŃŠøŃŃŠ°Š½Š½ŃŠ¼ Š¼ŠµŠ½Ń." + +#: ../C/evince.xml:227(title) +msgid "Usage" +msgstr "ŠŠøŠŗŠ¾ŃŠøŃŃŠ°Š½Š½Ń" + +#: ../C/evince.xml:231(title) +msgid "To Open A Document" +msgstr "ŠŃŠ“ŠŗŃŠøŠ²Š°Š½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../C/evince.xml:232(para) +msgid "To open a document, perform the following steps:" +msgstr "Š©Š¾Š± Š²ŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š²ŠøŠŗŠ¾Š½Š°Š¹ŃŠµ Š½Š°ŃŃŃŠæŠ½Ń ŠŗŃŠ¾ŠŗŠø:" + +#: ../C/evince.xml:239(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "" +"Š£ Š“ŃŠ°Š»Š¾Š³Š¾Š²Š¾Š¼Ń Š²ŃŠŗŠ½Ń <guilabel>ŠŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń</guilabel> Š²ŠøŠ±ŠµŃŃŃŃ " +"ŠæŠ¾ŃŃŃŠ±Š½ŠøŠ¹ ŃŠ°Š¹Š»." + +#: ../C/evince.xml:244(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŃŃŃ <guibutton>ŠŃŠ“ŠŗŃŠøŃŠø</guibutton>. <application>Evince</application> " +"Š²ŃŠ“Š¾Š±ŃŠ°Š·ŠøŃŃ Š½Š°Š·Š²Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Ń Š·Š°Š³Š¾Š»Š¾Š²ŠŗŃ Š²ŃŠŗŠ½Š°." + +#: ../C/evince.xml:249(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"Š©Š¾Š± Š²ŃŠ“ŠŗŃŠøŃŠø ŃŠ½ŃŠøŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š·Š½Š¾Š²Ń Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŃŠ“ŠŗŃŠøŃŠø</guimenuitem></menuchoice>. " +"<application>Evince</application> Š²ŃŠ“ŠŗŃŠøŠ²Š°Ń ŠŗŠ¾Š¶ŠµŠ½ ŃŠ°Š¹Š» Ń Š½Š¾Š²Š¾Š¼Ń Š²ŃŠŗŠ½Ń." + +#: ../C/evince.xml:252(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"ŠÆŠŗŃŠ¾ Š²Šø Š²ŃŠ“ŠŗŃŠøŠ²Š°ŃŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ń Š½ŠµŠ²ŃŠ“Š¾Š¼Š¾Š¼Ń ŠæŃŠ¾Š³ŃŠ°Š¼Ń ŃŠ¾ŃŠ¼Š°ŃŃ, Š²ŃŠ“Š¾Š±ŃŠ°Š·ŠøŃŃŃŃ " +"ŠæŠ¾Š²ŃŠ“Š¾Š¼Š»ŠµŠ½Š½Ń ŠæŃŠ¾ ŠæŠ¾Š¼ŠøŠ»ŠŗŃ." + +#: ../C/evince.xml:258(title) +msgid "To Navigate Through a Document" +msgstr "ŠŠ°Š²ŃŠ³Š°ŃŃŃ ŠæŠ¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../C/evince.xml:259(para) +msgid "You can navigate through a file as follows:" +msgstr "ŠŠµŃŠµŠ¼ŃŃŃŠ²Š°ŃŠøŃŃ ŠæŠ¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š¼Š¾Š¶Š½Š° Š½Š°ŃŃŃŠæŠ½ŠøŠ¼ ŃŠøŠ½Š¾Š¼:" + +#: ../C/evince.xml:262(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ¹ŃŠø Š“Š¾ Š½Š°ŃŃŃŠæŠ½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø, Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠµŃŠµŠ¹ŃŠø</" +"guimenu><guimenuitem>ŠŠæŠµŃŠµŠ“</guimenuitem></menuchoice>." + +#: ../C/evince.xml:266(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠµŃŠµŠ¹ŃŠø</" +"guimenu><guimenuitem>ŠŠ°Š·Š°Š“</guimenuitem></menuchoice>." + +#: ../C/evince.xml:270(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠµŃŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠµŃŠµŠ¹ŃŠø</" +"guimenu><guimenuitem>ŠŠ¾ŃŠ°ŃŠ¾Šŗ</guimenuitem></menuchoice>." + +#: ../C/evince.xml:274(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ¹ŃŠø Š“Š¾ Š¾ŃŃŠ°Š½Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠµŃŠµŠ¹ŃŠø</" +"guimenu><guimenuitem>ŠŃŠ½ŠµŃŃ</guimenuitem></menuchoice>." + +#: ../C/evince.xml:278(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠµŠ²Š½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²Š²ŠµŠ“ŃŃŃ ŃŃ Š½Š¾Š¼ŠµŃ Š°Š±Š¾ ŠæŠ¾Š·Š½Š°ŃŠŗŃ Ń ŃŠµŠŗŃŃŠ¾Š²Š¾Š¼Ń " +"ŠæŠ¾Š»Ń Š½Š° ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ² ŃŠ° Š½Š°ŃŠøŃŠ½ŃŃŃ <keycap>Enter</keycap>." + +#: ../C/evince.xml:285(title) +msgid "To Scroll a Page" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../C/evince.xml:286(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "" +"ŠŠµŃŠµŠ³Š»ŃŠ½ŃŃŠø Š²Š¼ŃŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø, ŃŠŗŠøŠ¹ Š½Šµ ŃŠ¼ŃŃŃŠøŠ²ŃŃ Ń Š¾Š±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń, Š¼Š¾Š¶Š½Š° " +"ŃŠ°ŠŗŠøŠ¼ ŃŠøŠ½Š¾Š¼:" + +#: ../C/evince.xml:289(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Š”ŠŗŠ¾ŃŠøŃŃŠ°Š¹ŃŠµŃŃ ŠŗŠ»Š°Š²ŃŃŠ°Š¼Šø Š·Ń ŃŃŃŃŠ»ŠŗŠ°Š¼Šø." + +#: ../C/evince.xml:292(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"ŠŠµŃŠµŃŃŠ³Š½ŃŃŃ Š¾Š±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń Ń Š½Š°ŠæŃŃŠ¼ŠŗŃ ŠæŃŠ¾ŃŠøŠ»ŠµŠ¶Š½Š¾Š¼Ń Š“Š¾ Š½Š°ŠæŃŃŠ¼ŠŗŃ ŠŗŃŠ“Šø Š²Šø " +"Ń Š¾ŃŠµŃŠµ ŠæŃŠ¾ŠŗŃŃŃŠøŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŃ. ŠŠ°ŠæŃŠøŠŗŠ»Š°Š“, ŃŠ¾Š± ŠæŃŠ¾ŠŗŃŃŃŠøŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŃ Š²Š½ŠøŠ·, " +"ŠæŠµŃŠµŃŃŠ³Š½ŃŃŃ Š¾Š±Š»Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń Š²ŃŠŗŠ½Š° Š²Š³Š¾ŃŃ." + +#: ../C/evince.xml:295(para) +msgid "Use the scrollbars on the window." +msgstr "Š”ŠŗŠ¾ŃŠøŃŃŠ°Š¹ŃŠµŃŃ ŃŠ¼ŃŠ³Š°Š¼Šø ŠæŃŠ¾ŠŗŃŃŃŠŗŠø Š²ŃŠŗŠ½Š°." + +#: ../C/evince.xml:302(title) +msgid "To Change the Page Size" +msgstr "ŠŠ¼ŃŠ½Š° ŃŠ¾Š·Š¼ŃŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../C/evince.xml:303(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"ŠŠ¼ŃŠ½ŠøŃŠø ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø Ń Š²ŃŠŗŠ½Ń ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</application> " +"Š¼Š¾Š¶Š½Š° ŃŠ°Šŗ:" + +#: ../C/evince.xml:308(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń Š·Š±ŃŠ»ŃŃŠµŠ½Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</" +"guimenu><guimenuitem>ŠŠ±ŃŠ»ŃŃŠøŃŠø</guimenuitem></menuchoice>." + +#: ../C/evince.xml:313(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"ŠŠ»Ń Š·Š¼ŠµŠ½ŃŠµŠ½Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</" +"guimenu><guimenuitem>ŠŠ¼ŠµŠ½ŃŠøŃŠø</guimenuitem></menuchoice>." + +#: ../C/evince.xml:318(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± Š·Š¼ŃŠ½ŠøŃŠø ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø ŃŠ°Šŗ, ŃŠ¾Š± ŃŃ ŃŠøŃŠøŠ½Š° Š“Š¾ŃŃŠ²Š½ŃŠ²Š°Š»Š° ŃŠøŃŠøŠ½Ń Š¾Š±Š»Š°ŃŃŃ " +"Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń ŠæŃŠ¾Š³ŃŠ°Š¼Šø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</" +"guimenu><guimenuitem>ŠŠ¾ ŃŠøŃŠøŠ½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø</guimenuitem></menuchoice>." + +#: ../C/evince.xml:323(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± Š·Š¼ŃŠ½ŠøŃŠø ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø ŃŠ°Šŗ, ŃŠ¾Š± ŃŃ ŃŠ¾Š·Š¼ŃŃ Š“Š¾ŃŃŠ²Š½ŃŠ²Š°Š² Š¾Š±Š»Š°ŃŃŃ " +"Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń ŠæŃŠ¾Š³ŃŠ°Š¼Šø Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</" +"guimenu><guimenuitem>ŠŠ¾ ŃŠøŃŠøŠ½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø</guimenuitem></menuchoice>." + +#: ../C/evince.xml:328(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"Š©Š¾Š± Š·Š¼ŃŠ½ŠøŃŠø ŃŠ¾Š·Š¼ŃŃ Š²ŃŠ½ŠŗŠ° ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</application> Š“Š¾ " +"ŃŠ¾Š·Š¼ŃŃŃŠ² ŠµŠŗŃŠ°Š½Ń Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</" +"guimenu><guimenuitem>ŠŠ° ŠæŠ¾Š²Š½ŠøŠ¹ ŠµŠŗŃŠ°Š½</guimenuitem></menuchoice>. ŠŠ»Ń " +"Š²ŃŠ“Š½Š¾Š²Š»ŠµŠ½Š½Ń ŠæŠ¾ŃŠ°ŃŠŗŠ¾Š²Š¾Š³Š¾ ŃŠ¾Š·Š¼ŃŃŃ Š²ŃŠŗŠ½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</" +"application> Š½Š°ŃŠøŃŠ½ŃŃŃ ŠŗŠ½Š¾ŠæŠŗŃ <guibutton>ŠŠøŠ¹ŃŠø Š· ŠæŠ¾Š²Š½Š¾ŠµŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Ń</" +"guibutton>." + +#: ../C/evince.xml:336(title) +msgid "To View Pages or Document Structure" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ ŃŃŠ¾ŃŃŠ½Š¾Šŗ ŃŠø ŃŃŃŃŠŗŃŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../C/evince.xml:337(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "ŠŠ»Ń ŠæŠµŃŠµŠ³Š»ŃŠ“Ń Š·Š°ŠŗŠ»Š°Š“Š¾Šŗ ŃŠø ŃŃŠ¾ŃŃŠ½Š¾Šŗ Š²ŠøŠŗŠ¾Š½Š°Š¹ŃŠµ Š½Š°ŃŃŃŠæŠ½Ń Š“ŃŃ:" + +#: ../C/evince.xml:341(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"ŠŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>ŠŠøŠ³Š»ŃŠ“</guimenu><guimenuitem>ŠŃŃŠ½Š° ŠæŠ°Š½ŠµŠ»Ń</" +"guimenuitem></menuchoice> Š°Š±Š¾ Š½Š°ŃŠøŃŠ½ŃŃŃ <keycap>F9</keycap>." + +#: ../C/evince.xml:346(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "" +"ŠŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŠø ŃŠ¾Š·ŠŗŃŠøŠ²Š½ŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Ń Š·Š°Š³Š¾Š»Š¾Š²ŠŗŃ Š±ŃŃŠ½Š¾Ń ŠæŠ°Š½ŠµŠ»Ń Š²ŠŗŠ°Š¶ŃŃŃ ŃŠø " +"Š²ŃŠ“Š¾Š±ŃŠ°Š¶Š°ŃŠø Ń Š±ŃŃŠ½ŃŠ¹ ŠæŠ°Š½ŠµŠ»Ń ŃŃŃŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, Š°Š±Š¾ Š¶ ŃŃŠ¾ŃŃŠ½ŠŗŠø." + +#: ../C/evince.xml:351(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "" +"ŠŠ¾ŃŠøŃŃŃŠ¹ŃŠµŃŃ ŃŠ¼ŃŠ³Š¾Ń ŠæŃŠ¾ŠŗŃŃŃŠŗŠø Š±ŃŃŠ½Š¾Ń ŠæŠ°Š½ŠµŠ»Ń Š“Š»Ń Š²ŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń ŠæŠ¾ŃŃŃŠ±Š½Š¾Š³Š¾ " +"ŠæŃŠ½ŠŗŃŃ Š°Š±Š¾ ŃŃŠ¾ŃŃŠ½ŠŗŠø." + +#: ../C/evince.xml:356(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "" +"ŠŠ»Š°ŃŠ½ŃŃŃ Š½Š° ŠµŠ»ŠµŠ¼ŠµŠ½ŃŃ Š“Š»Ń ŠæŠµŃŠµŃ Š¾Š“Ń Ń Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Šµ Š¼ŃŃŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. ŠŠ°ŃŠøŃŠ½ŃŃŃ Š½Š° " +"ŃŃŠ¾ŃŃŠ½ŃŃ Š“Š»Ń ŠæŠµŃŠµŃ Š¾Š“Ń Š“Š¾ ŃŃŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ." + +#: ../C/evince.xml:362(title) +msgid "To View the Properties of a Document" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ Š²Š»Š°ŃŃŠøŠ²Š¾ŃŃŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../C/evince.xml:363(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± ŠæŠµŃŠµŠ³Š»ŃŠ½ŃŃŠø Š²Š»Š°ŃŃŠøŠ²Š¾ŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠ»Š°ŃŃŠøŠ²Š¾ŃŃŃ</guimenuitem></menuchoice>." + +#: ../C/evince.xml:369(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "" +"Š£ŃŃ Š½Š°ŃŠ²Š½Š° ŃŠ½ŃŠ¾ŃŠ¼Š°ŃŃŃ Š²ŃŠ“Š¾Š±ŃŠ°Š·ŠøŃŃŃŃ Ń Š“ŃŠ°Š»Š¾Š³Š¾Š²Š¾Š¼Ń Š²ŃŠŗŠ½Ń " +"<guilabel>ŠŠ»Š°ŃŃŠøŠ²Š¾ŃŃŃ</guilabel>" + +#: ../C/evince.xml:375(title) +msgid "To Print a Document" +msgstr "ŠŃŃŠŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../C/evince.xml:376(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± Š½Š°Š“ŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŃŃŠŗ</guimenuitem></menuchoice>." + +#: ../C/evince.xml:380(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"ŠÆŠŗŃŠ¾ Š²Šø Š½Šµ Š¼Š¾Š¶ŠµŃŠµ Š²ŠøŠ±ŃŠ°ŃŠø ŠæŃŠ½ŠŗŃ Š¼ŠµŠ½Ń <guimenuitem>ŠŃŃŠŗ</guimenuitem>, Š°Š²ŃŠ¾Ń " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š·Š°Š±Š¾ŃŠ¾Š½ŠøŠ² Š“ŃŃŠŗ ŃŃŠ¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ. Š©Š¾Š± Š½Š°Š“ŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŃŠµŠ±Š° " +"Š²Š²ŠµŃŃŠø ŠæŠ°ŃŠ¾Š»Ń Š“Š¾ Š²ŃŠ“ŠŗŃŠøŃŠ¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ. ŠŠ¾ŠŗŠ»Š°Š“Š½ŃŃŠµ ŠæŃŠ¾ Š·Š°Ń ŠøŃŠµŠ½Ń ŠæŠ°ŃŠ¾Š»ŠµŠ¼ ŃŠ°Š¹Š»Šø " +"Š“ŠøŠ²ŃŃŃŃŃ Ń <xref linkend=\"evince-password\"/>." + +#: ../C/evince.xml:384(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "ŠŃŠ°Š»Š¾Š³Š¾Š²Šµ Š²ŃŠŗŠ½Š¾ <guilabel>ŠŃŃŠŗ</guilabel> Š¼Š°Ń Š½Š°ŃŃŃŠæŠ½Ń Š²ŠŗŠ»Š°Š“ŠŗŠø:" + +#: ../C/evince.xml:390(link) ../C/evince.xml:406(title) +msgid "Job" +msgstr "ŠŠ°Š²Š“Š°Š½Š½Ń" + +#: ../C/evince.xml:395(link) ../C/evince.xml:428(title) +#: ../C/evince.xml:430(guilabel) +msgid "Printer" +msgstr "ŠŃŠøŠ½ŃŠµŃ" + +#: ../C/evince.xml:400(link) ../C/evince.xml:522(title) +msgid "Paper" +msgstr "ŠŠ°ŠæŃŃ" + +#: ../C/evince.xml:408(guilabel) +msgid "Print range" +msgstr "ŠŃŃŠŗŃŠ²Š°ŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../C/evince.xml:410(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "" +"ŠŠ»Ń Š²ŠøŠ·Š½Š°ŃŠµŠ½Š½Ń ŠŗŃŠ»ŃŠŗŠ¾ŃŃŃ ŃŃŠ¾ŃŃŠ½Š¾Šŗ Š“Š»Ń Š“ŃŃŠŗŃ Š²ŠøŠ±ŠµŃŃŃŃ Š¾Š“ŠøŠ½ Š· Š½Š°ŃŃŃŠæŠ½ŠøŃ " +"ŠæŠ°ŃŠ°Š¼ŠµŃŃŃŠ²:" + +#: ../C/evince.xml:413(guilabel) +msgid "All" +msgstr "ŠŃŃ" + +#: ../C/evince.xml:414(para) +msgid "Select this option to print all of the pages in the document." +msgstr "ŠŃŠ“Š¼ŃŃŃŃŠµ ŃŠµŠ¹ ŠæŠ°ŃŠ°Š¼ŠµŃŃ Š“Š»Ń Š“ŃŃŠŗŃŠ²Š°Š½Š½Ń ŃŃŃŃ ŃŃŠ¾ŃŃŠ½Š¾Šŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../C/evince.xml:417(guilabel) +msgid "Pages From" +msgstr "ŠŠ¾ŃŠ¾ŃŠ½Ń" + +#: ../C/evince.xml:418(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"ŠŃŠ“Š¼ŃŃŃŃŠµ ŃŠµŠ¹ ŠæŠ°ŃŠ°Š¼ŠµŃŃ Š“Š»Ń Š“ŃŃŠŗŃŠ²Š°Š½Š½Ń Š“ŃŠ°ŠæŠ°Š·Š¾Š½Ń ŃŃŠ¾ŃŃŠ½Š¾Šŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. " +"ŠŠ¾ŃŠøŃŃŃŃŃŠøŃŃ ŠæŠ¾Š»ŠµŠ¼ Š·Ń ŃŃŃŃŠ»ŠŗŠ°Š¼Šø Š²ŠŗŠ°Š¶ŃŃŃ ŠæŠµŃŃŃ ŃŠ° Š¾ŃŃŠ°Š½Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š“ŃŠ°ŠæŠ°Š·Š¾Š½Ń." + +#: ../C/evince.xml:432(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "" +"ŠŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŠø ŃŠ¾Š·ŠŗŃŠøŠ²Š½ŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š²ŠøŠ±ŠµŃŃŃŃ ŠæŃŠøŠ½ŃŠµŃ, Š½Š° ŃŠŗŠøŠ¹ ŃŃŠµŠ±Š° Š½Š°Š“ŃŃŠŗŃŠ²Š°ŃŠø " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../C/evince.xml:434(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"ŠŠ°ŃŠ°Š¼ŠµŃŃ <guilabel>Š”ŃŠ²Š¾ŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń PDF</guilabel> Š½Šµ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ Ń ŃŃŠ¹ " +"Š²ŠµŃŃŃŃ ŠæŃŠ¾Š³ŃŠ°Š¼Šø." + +#: ../C/evince.xml:440(guilabel) +msgid "Settings" +msgstr "ŠŠ°ŃŠ°Š¼ŠµŃŃŠø" + +#: ../C/evince.xml:442(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "ŠŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŠø ŃŠ¾Š·ŠŗŃŠøŠ²Š½ŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š²ŠøŠ±ŠµŃŃŃŃ ŠæŠ°ŃŠ°Š¼ŠµŃŃŠø ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: ../C/evince.xml:444(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"ŠŠ»Ń Š½Š°Š»Š°ŃŃŠ¾Š²ŃŠ²Š°Š½Š½Ń ŠæŃŠøŠ½ŃŠµŃŠ° Š½Š°ŃŠøŃŠ½ŃŃŃ <guibutton>ŠŠ°Š»Š°ŃŃŃŠ²Š°ŃŠø</guibutton>. " +"ŠŠ°ŠæŃŠøŠŗŠ»Š°Š“, Š¼Š¾Š¶Š½Š° ŃŠ²ŃŠ¼ŠŗŠ½ŃŃŠø Š°Š±Š¾ Š²ŠøŠ¼ŠŗŠ½ŃŃŠø Š“ŃŠæŠ»ŠµŠŗŃŠ½ŠøŠ¹ Š“ŃŃŠŗ, Š°Š±Š¾ Š²ŃŠ“ŠŗŠ»Š°ŃŃŠø Š“ŃŃŠŗ " +"Š“Š¾ ŠæŠµŠ²Š½Š¾Š³Š¾ ŃŠ°ŃŃ, ŃŠŗŃŠ¾ ŃŃ ŃŃŠ½ŠŗŃŃŠ¾Š½Š°Š»ŃŠ½ŃŃŃŃ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ ŠæŃŠøŠ½ŃŠµŃŠ¾Š¼." + +#: ../C/evince.xml:448(guilabel) +msgid "Location" +msgstr "Š Š¾Š·ŃŠ°ŃŃŠ²Š°Š½Š½Ń" + +#: ../C/evince.xml:450(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "" +"ŠŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŠø ŃŠ¾Š·ŠŗŃŠøŠ²Š½ŠøŠ¹ ŃŠæŠøŃŠ¾Šŗ Š²ŠøŠ±ŠµŃŃŃŃ Š¾Š“Š½Ń Š· Š½Š°ŃŃŃŠæŠ½ŠøŃ ŃŃŠ»ŠµŠ¹ Š“Š»Ń Š“ŃŃŠŗŃ:" + +#: ../C/evince.xml:455(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: ../C/evince.xml:457(para) +msgid "Print the document to a CUPS printer." +msgstr "ŠŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š° ŠæŃŠøŠ½ŃŠµŃ CUPS." + +#: ../C/evince.xml:461(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"ŠÆŠŗŃŠ¾ Š²ŠøŠ“ŃŠ»ŠµŠ½ŠøŠ¹ ŠæŃŠøŠ½ŃŠµŃ Ń ŠæŃŠøŠ½ŃŠµŃŠ¾Š¼ CUPS, ŃŠ¾Š“Ń Ń ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Ń " +"ŃŠ“ŠøŠ½ŠøŠ¹ ŠµŠ»ŠµŠ¼ŠµŠ½Ń - <guilabel>CUPS</guilabel>." + +#: ../C/evince.xml:468(guilabel) +msgid "lpr" +msgstr "lpr" + +#: ../C/evince.xml:470(para) +msgid "Print the document to a printer." +msgstr "ŠŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š° ŠæŃŠøŠ½ŃŠµŃ." + +#: ../C/evince.xml:476(guilabel) +msgid "File" +msgstr "Š¤Š°Š¹Š»" + +#: ../C/evince.xml:478(para) +msgid "Print the document to a PostScript file." +msgstr "ŠŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ń ŃŠ°Š¹Š» PostScript." + +#: ../C/evince.xml:481(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"ŠŠ°ŃŠøŃŠ½ŃŃŃ <guibutton>ŠŠ±ŠµŃŠµŠ³ŃŠø ŃŠŗ</guibutton> ŃŠ¾Š± Š²ŃŠ“ŠŗŃŠøŃŠø Š“ŃŠ°Š»Š¾Š³Š¾Š²Šµ Š²ŃŠŗŠ½Š¾," +"ŃŠŗŠ¾Š¼Ń Š²ŠŗŠ°Š·ŃŃŃŃŃŃ Š½Š°Š·Š²Š° ŃŠ° ŃŠ¾Š·ŃŠ°ŃŃŠ²Š°Š½Š½Ń ŃŠ°Š¹Š»Ń PostScript." + +#: ../C/evince.xml:487(guilabel) +msgid "Custom" +msgstr "ŠŠ½ŃŠøŠ¹" + +#: ../C/evince.xml:489(para) +msgid "Use the specified command to print the document." +msgstr "ŠŠ»Ń Š“ŃŃŠŗŃ Š½Š° ŠæŃŠøŠ½ŃŠµŃ Š²ŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃŃŃŃŃ Š²ŠŗŠ°Š·Š°Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š°." + +#: ../C/evince.xml:492(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "ŠŠ²ŠµŠ“ŃŃŃ Ń ŃŠµŠŗŃŃŠ¾Š²Š¾Š¼Ń ŠæŠ¾Š»Ń Š½Š°Š·Š²Ń ŠŗŠ¾Š¼Š°Š½Š“Šø ŃŠ° ŃŃ Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠø." + +#: ../C/evince.xml:500(guilabel) +msgid "State" +msgstr "Š”ŃŠ°Š½" + +#: ../C/evince.xml:502(para) ../C/evince.xml:508(para) +#: ../C/evince.xml:514(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "" +"Š¦Ń ŃŃŠ½ŠŗŃŃŠ¾Š½Š°Š»ŃŠ½ŃŃŃŃ Š½Šµ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ ŃŃŃŃ Š²ŠµŃŃŃŃŃ ŠæŃŠ¾Š³ŃŠ°Š¼Šø " +"<application>Evince</application>." + +#: ../C/evince.xml:506(guilabel) +msgid "Type" +msgstr "Š¢ŠøŠæ" + +#: ../C/evince.xml:512(guilabel) +msgid "Comment" +msgstr "ŠŠ¾Š¼ŠµŠ½ŃŠ°Ń" + +#: ../C/evince.xml:524(guilabel) +msgid "Paper size" +msgstr "Š Š¾Š·Š¼ŃŃ Š°ŃŠŗŃŃŠ°" + +#: ../C/evince.xml:526(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "" +"Š£ ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Š¼Š¾Š¶Š½Š° Š²ŠøŠ±ŃŠ°ŃŠø ŃŠ¾Š·Š¼ŃŃ Š°ŃŠŗŃŃŃŠ², Š½Š° ŃŠŗŃ Š²Šø " +"Š·Š±ŠøŃŠ°ŃŃŠµŃŃ Š“ŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../C/evince.xml:529(guilabel) +msgid "Width" +msgstr "ŠØŠøŃŠøŠ½Š°" + +#: ../C/evince.xml:531(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "" +"Š£ ŃŃŠ¾Š¼Ń ŠæŠ¾Š»Ń Š· ŠæŃŠ¾ŠŗŃŃŃŠŗŠ¾Ń Š²ŠøŠ·Š½Š°ŃŠ°ŃŃŃŃŃ ŃŠøŃŠøŠ½Š° ŃŃŠ¾ŃŃŠ½ŠŗŠø. ŠŠ“ŠøŠ½ŠøŃŃ Š²ŠøŠ¼ŃŃŃ Š¼Š¾Š¶Š½Š° " +"Š·Š¼ŃŠ½ŠøŃŠø Ń ŃŠ¾Š·ŃŠ°ŃŠ¾Š²Š°Š½Š¾Š¼Ń Š»ŃŠ²Š¾ŃŃŃ ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ." + +#: ../C/evince.xml:534(guilabel) +msgid "Height" +msgstr "ŠŠøŃŠ¾ŃŠ°" + +#: ../C/evince.xml:536(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "Š£ ŃŃŠ¾Š¼Ń ŠæŠ¾Š»Ń Š· ŠæŃŠ¾ŠŗŃŃŃŠŗŠ¾Ń Š²ŠøŠ·Š½Š°ŃŠ°ŃŃŃŃŃ Š²ŠøŃŠ¾ŃŠ° ŃŃŠ¾ŃŃŠ½ŠŗŠø." + +#: ../C/evince.xml:539(guilabel) +msgid "Feed orientation" +msgstr "ŠŃŃŃŠ½ŃŠ°ŃŃŃ ŠæŠ¾Š“Š°ŃŃ" + +#: ../C/evince.xml:541(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "Š£ ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Š²ŠøŠ±ŠµŃŃŃŃ Š¾ŃŃŃŠ½ŃŠ°ŃŃŃ ŠæŠ°ŠæŠµŃŃ Ń ŠæŃŠøŠ½ŃŠµŃŃ." + +#: ../C/evince.xml:544(guilabel) +msgid "Page orientation" +msgstr "ŠŃŃŃŠ½ŃŠ°ŃŃŃ Š°ŃŠŗŃŃŠ°" + +#: ../C/evince.xml:546(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "Š£ ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Š²ŠøŠ±ŠµŃŃŃŃ Š¾ŃŃŃŠ½ŃŠ°ŃŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø." + +#: ../C/evince.xml:549(guilabel) +msgid "Layout" +msgstr "Š”Ń ŠµŠ¼Š° ŃŠ¾Š·ŃŠ°ŃŃŠ²Š°Š½Š½Ń" + +#: ../C/evince.xml:551(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"Š£ ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Š²ŠøŠ±ŠµŃŃŃŃ ŃŃ ŠµŠ¼Ń ŃŠ¾Š·ŃŠ°ŃŃŠ²Š°Š½Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø. ŠŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¹ " +"Š²ŠøŠ³Š»ŃŠ“ ŠŗŠ¾Š¼ŠæŠ¾Š½ŃŠ²Š°Š½Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø Š²ŃŠ“Š¾Š±ŃŠ°Š¶Š°ŃŃŃŃŃ Ń ŠæŠ¾Š»Ń <guilabel>ŠŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¹ " +"ŠæŠµŃŠµŠ³Š»ŃŠ“</guilabel>." + +#: ../C/evince.xml:554(guilabel) +msgid "Paper Tray" +msgstr "ŠŠ¾ŃŠ¾Šŗ" + +#: ../C/evince.xml:556(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "Š£ ŃŃŠ¾Š¼Ń ŃŠ¾Š·ŠŗŃŠøŠ²Š½Š¾Š¼Ń ŃŠæŠøŃŠŗŃ Š²ŠŗŠ°Š¶ŃŃŃ Š»Š¾ŃŠ¾Šŗ Š· ŠæŠ°ŠæŠµŃŠ¾Š¼." + +#: ../C/evince.xml:566(title) +msgid "To Copy a Document" +msgstr "ŠŠ¾ŠæŃŃŠ²Š°Š½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../C/evince.xml:567(para) +msgid "To copy a file, perform the following steps:" +msgstr "ŠŠ»Ń ŠŗŠ¾ŠæŃŃŠ²Š°Š½Š½Ń ŃŠ°Š¹Š»Ń Š²ŠøŠŗŠ¾Š½Š°Š¹ŃŠµ Š½Š°ŃŃŃŠæŠ½Ń ŠŗŃŠ¾ŠŗŠø:" + +#: ../C/evince.xml:571(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"ŠŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</guimenu><guimenuitem>ŠŠ±ŠµŃŠµŠ³ŃŠø ŠŗŠ¾ŠæŃŃ</" +"guimenuitem></menuchoice>." + +#: ../C/evince.xml:576(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"ŠŠ²ŠµŠ“ŃŃŃ Š½Š°Š·Š²Ń Š½Š¾Š²Š¾Š³Š¾ ŃŠ°Š¹Š»Ń Ń ŃŠµŠŗŃŃŠ¾Š²Š¾Š¼Ń ŠæŠ¾Š»Ń <guilabel>ŠŠ°Š·Š²Š°</guilabel> " +"Š“ŃŠ°Š»Š¾Š³Š¾Š²Š¾Š³Š¾ Š²ŃŠŗŠ½Š° <guilabel>ŠŠ±ŠµŃŠµŠ³ŃŠø ŠŗŠ¾ŠæŃŃ</guilabel>." + +#: ../C/evince.xml:579(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "" +"ŠŃŠø ŠæŠ¾ŃŃŠµŠ±Ń, Š²ŠŗŠ°Š¶ŃŃŃ ŃŠ¾Š·ŃŠ°ŃŃŠ²Š°Š½Š½Ń ŠŗŠ¾ŠæŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. Š¢ŠøŠæŠ¾Š²Š¾ ŠŗŠ¾ŠæŃŃ Š·Š±ŠµŃŃŠ³Š°ŃŃŃŃŃ " +"Ń Š²Š°ŃŠ¾Š¼Ń Š“Š¾Š¼Š°ŃŠ½ŃŠ¾Š¼Ń ŠŗŠ°ŃŠ°Š»Š¾Š·Ń." + +#: ../C/evince.xml:584(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "ŠŠ°ŃŠøŃŠ½ŃŃŃ <guibutton>ŠŠ±ŠµŃŠµŠ³ŃŠø</guibutton>." + +#: ../C/evince.xml:593(title) +msgid "To Work With Password-Protected Documents" +msgstr "Š Š¾Š±Š¾ŃŠ° ŃŠ· Š·Š°Ń ŠøŃŠµŠ½ŠøŠ¼Šø ŠæŠ°ŃŠ¾Š»ŠµŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°Š¼Šø" + +#: ../C/evince.xml:594(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "" +"ŠŠ²ŃŠ¾Ń Š¼Š¾Š¶Šµ Š²ŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŠ²Š°ŃŠø Š“Š»Ń Š·Š°Ń ŠøŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½Š°ŃŃŃŠæŠ½Ń ŃŃŠ²Š½Ń ŠæŠ°ŃŠ¾Š»ŃŠ²:" + +#: ../C/evince.xml:599(para) +msgid "User password that allows others only to read the document." +msgstr "ŠŠ°ŃŠ¾Š»Ń, ŃŠ¾ Š“Š¾Š·Š²Š¾Š»ŃŃ ŃŠøŃŠ°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../C/evince.xml:603(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "" +"ŠŠ¾Š»Š¾Š²Š½ŠøŠ¹ ŠæŠ°ŃŠ¾Š»Ń, ŃŠ¾ Š“Š¾Š·Š²Š¾Š»ŃŃ Š²ŠøŠŗŠ¾Š½ŃŠ²Š°ŃŠø Š“Š¾Š“Š°ŃŠŗŠ¾Š²Ń Š“ŃŃ, Š½Š°ŠæŃŠøŠŗŠ»Š°Š“ Š“ŃŃŠŗ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../C/evince.xml:607(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"ŠŠ¾Š»Šø Š²Šø Š½Š°Š¼Š°Š³Š°ŃŃŠµŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š·Š°Ń ŠøŃŠµŠ½ŠøŠ¹ ŠæŠ°ŃŠ¾Š»ŠµŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, " +"<application>Evince</application> Š²ŃŠ“Š¾Š±ŃŠ°Š¶Š°Ń Š²ŃŠŗŠ½Š¾ Š±ŠµŠ·ŠæŠµŠŗŠø. ŠŠ²ŠµŠ“ŃŃŃ Ń " +"ŃŠµŠŗŃŃŠ¾Š²Š¾Š¼Ń ŠæŠ¾Š»Ń Š°Š±Š¾ ŠæŠ°ŃŠ¾Š»Ń, Š°Š±Š¾ Š³Š¾Š»Š¾Š²Š½ŠøŠ¹ ŠæŠ°ŃŠ¾Š»Ń, ŠæŠ¾ŃŃŠ¼ Š½Š°ŃŠøŃŠ½ŃŃŃ " +"<guibutton>ŠŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń</guibutton>." + +#: ../C/evince.xml:614(title) +msgid "To Close a Document" +msgstr "ŠŠ°ŠŗŃŠøŠ²Š°Š½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../C/evince.xml:615(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"Š©Š¾Š± Š·Š°ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń, Š²ŠøŠ±ŠµŃŃŃŃ <menuchoice><guimenu>Š¤Š°Š¹Š»</" +"guimenu><guimenuitem>ŠŠ°ŠŗŃŠøŃŠø</guimenuitem></menuchoice>." + +#: ../C/evince.xml:617(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"ŠÆŠŗŃŠ¾ ŃŠµ Š²ŃŠŗŠ½Š¾ - Š¾ŃŃŠ°Š½Š½Ń Š²ŃŠ“ŠŗŃŠøŃŠµ Š²ŃŠŗŠ½Š¾ ŠæŃŠ¾Š³ŃŠ°Š¼Šø <application>Evince</" +"application>, ŠæŃŠ¾Š³ŃŠ°Š¼Š° Š·Š°Š²ŠµŃŃŃŃŃŃŃŃ." + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: ../C/evince.xml:0(None) +msgid "translator-credits" +msgstr "ŠŠ°ŠŗŃŠøŠ¼ ŠŠ·ŃŠ¼Š°Š½ŠµŠ½ŠŗŠ¾ <dziumanenko@gmail.com>" diff --git a/help/vi/vi.po b/help/vi/vi.po new file mode 100644 index 00000000..825f5ac3 --- /dev/null +++ b/help/vi/vi.po @@ -0,0 +1,898 @@ +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"POT-Creation-Date: 2009-06-12 20:11+0000\n" +"PO-Revision-Date: 2009-06-21 13:19+1000\n" +"Last-Translator: Nguyį» n ÄƬnh Trung <nguyendinhtrung141@gmail.com>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "@@image: 'figures/evince_start_window.png'; md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "HĘ°į»ng dįŗ«n sį» dį»„ng bį» xem tĆ i liį»u Evince" + +#: C/evince.xml:27(para) +msgid "The Evince Document Viewer application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files" +msgstr "Bį» xem tĆ i liį»u Evince giĆŗp bįŗ”n xem nhiį»u Äį»nh dįŗ”ng tĆ i liį»u nhĘ° Portable Document Format (PDF) vĆ PostScript" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) +#: C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) +#: C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) +#: C/evince.xml:67(orgname) +#: C/evince.xml:93(para) +#: C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "Dį»± Ć”n TĆ i liį»u MATE" + +#: C/evince.xml:2(para) +msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +msgstr "ÄĘ°į»£c phĆ©p sao chĆ©p, phĆ¢n phį»i vĆ /hoįŗ·c thay Äį»i tĆ i liį»u nĆ y theo nhį»Æng Äiį»u khoįŗ£n cį»§a Giįŗ„y phĆ©p TĆ i liį»u Tį»± do GNU (GNU Free Documentation License - GFDL), phiĆŖn bįŗ£n 1.1 hoįŗ·c vį» sau, ÄĘ°į»£c cĆ“ng bį» bį»i Free Software Foundation khĆ“ng kĆØm Invariant Sections, khĆ“ng Front-Cover Texts vĆ khĆ“ng Back-Cover Texts. Bįŗ”n cĆ³ thį» lįŗ„y mį»t bįŗ£n sao cį»§a GFDL tįŗ”i <ulink type=\"help\" url=\"ghelp:fdl\">liĆŖn kįŗæt nĆ y</ulink> hoįŗ·c trong tįŗp tin COPYING-DOCS phĆ¢n phį»i kĆØm vį»i tĆ i liį»u nĆ y." + +#: C/evince.xml:12(para) +msgid "This manual is part of a collection of MATE manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license." +msgstr "TĆ i liį»u nĆ y lĆ mį»t phįŗ§n cį»§a bį» tĆ i liį»u MATE, phĆ¢n phį»i vį»i GFDL. Nįŗæu bįŗ”n muį»n phĆ¢n phį»i chį» riĆŖng tĆ i liį»u nĆ y, bįŗ”n cĆ³ thį» lĆ m thįŗæ bįŗ±ng cĆ”ch thĆŖm mį»t bįŗ£n sao giįŗ„y phĆ©p vĆ o tĆ i liį»u, theo mĆ“ tįŗ£ į» phįŗ§n 6 cį»§a giįŗ„y phĆ©p." + +#: C/evince.xml:19(para) +msgid "Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any MATE documentation, and the members of the MATE Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters." +msgstr "Nhiį»u tĆŖn ÄĘ°į»£c dĆ¹ng bį»i cĆ“ng ty Äį» phĆ¢n biį»t sįŗ£n phįŗ©m vĆ dį»ch vį»„ cį»§a hį» lĆ nhĆ£n hiį»u thĘ°Ę”ng mįŗ”i. Nhį»Æng nĘ”i xuįŗ„t hiį»n nhį»Æng tĆŖn nĆ y trong tĆ i liį»u, vĆ dį»± Ć”n tĆ i liį»u MATE biįŗæt, sįŗ½ ÄĘ°į»£c viįŗæt hoa hoįŗ·c chį»Æ Äįŗ§u viįŗæt hoa." + +#: C/evince.xml:35(para) +msgid "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" + +#: C/evince.xml:55(para) +msgid "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES." +msgstr "" + +#: C/evince.xml:28(para) +msgid "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: <placeholder-1/>" +msgstr "" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "Äį»i tĆ i liį»u MATE" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "HĘ°į»ng dįŗ«n sį» dį»„ng Bį» xem tĆ i liį»u Evince V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008-04-05" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "HĘ°į»ng dįŗ«n sį» dį»„ng Bį» xem tĆ i liį»u Evince V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005-04-06" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "TĆ i liį»u nĆ y mĆ“ tįŗ£ Bį» xem tĆ i liį»u Evince phiĆŖn bįŗ£n 0.2" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "Phįŗ£n hį»i" + +#: C/evince.xml:110(para) +msgid "To report a bug or make a suggestion regarding the Evince Document Viewer application or this manual, follow the directions in the <ulink url=\"ghelp:mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "Äį» thĆ“ng bĆ”o lį»i hoįŗ·c cĆ³ Äį» nghį» liĆŖn quan Äįŗæn į»©ng dį»„ng Evince hoįŗ·c tĆ i liį»u nĆ y, vui lĆ²ng lĆ m theo hĘ°į»ng dįŗ«n trong <ulink url=\"ghelp:mate-feedback\" type=\"help\">Trang phįŗ£n hį»i MATE</ulink>." + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Bį» xem tĆ i liį»u Evince" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "Giį»i thiį»u" + +#: C/evince.xml:129(para) +msgid "The <application>Evince Document Viewer</application> application enables you to view documents of various formats like Portable Document Format (PDF) files and PostScript files. <application>Evince Document Viewer</application> follows Freedesktop.org and MATE standards to provide integration with Desktop Environment." +msgstr "<application>Bį» xem tĆ i liį»u Evince</application> giĆŗp bįŗ”n xem nhiį»u Äį»nh dįŗ”ng tĆ i liį»u nhĘ° Portable Document Format (PDF) vĆ PostScript. <application>Evince</application> ÄĘ°į»£c tĆch hį»£p vį»i mĆ“i trĘ°į»ng lĆ m viį»c theo tiĆŖu chuįŗ©n mĆ Freedesktop.org vĆ dį»± Ć”n MATE Äį» xuįŗ„t." + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "TƬm hiį»u Evince" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "Äį» khį»i Äį»ng Bį» xem tĆ i liį»u Evince" + +#: C/evince.xml:140(para) +msgid "<application>Evince Document Viewer</application> starts when you open a document such as a PDF or PostScript file." +msgstr "<application>Bį» xem tĆ i liį»u Evince</application> sįŗ½ tį»± Äį»ng chįŗ”y mį»i khi bįŗ”n mį» mį»t tĆ i liį»u dįŗ”ng PDF hoįŗ·c PostScript." + +#: C/evince.xml:141(para) +msgid "Alternatively, you can start <application>Evince Document Viewer</application> from the command line, with the command: <command>evince</command>." +msgstr "Tuy nhiĆŖn, bįŗ”n cĆ³ thį» mį» <application>Evince</application> bįŗ±ng nhiį»u cĆ”ch khĆ”c, nhĘ° gƵ lį»nh: <command>evince</command>." + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "Khi khį»i Äį»ng Evince" + +#: C/evince.xml:147(para) +msgid "When you start <application>Evince Document Viewer</application>, the following window is displayed." +msgstr "Khi chįŗ”y <application>Bį» xem tĆ i liį»u Evince</application>, cį»a sį» sau sįŗ½ hiį»n lĆŖn." + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Cį»a sį» Evince" + +#: C/evince.xml:158(phrase) +msgid "Shows Evince Document Viewer main window. Contains titlebar, menubar, toolbar and display area. Menubar contains File, Edit, View, Go and Help menus." +msgstr "Cį»a sį» chĆnh cį»§a Evince. CĆ”c thĆ nh phįŗ§n: thanh tiĆŖu Äį», thanh trƬnh ÄĘ”n, thanh cĆ“ng cį»„ vĆ vĆ¹ng hiį»n thį». Thanh trƬnh ÄĘ”n bao gį»m cĆ”c mį»„c Tįŗp tin, Hiį»u chį»nh, Xem, Di chuyį»n vĆ Trį»£ giĆŗp." + +#: C/evince.xml:164(para) +msgid "The <application>Evince Document Viewer</application> window contains the following elements:" +msgstr "Cį»a sį» chĘ°Ę”ng trƬnh <application>Evince</application> bao gį»m cĆ”c thĆ nh phįŗ§n sau ÄĆ¢y:" + +#: C/evince.xml:168(term) +#: C/evince.xml:216(para) +msgid "Menubar" +msgstr "Thanh trƬnh ÄĘ”n" + +#: C/evince.xml:170(para) +msgid "The menus on the menubar contain all of the commands that you need to work with documents in <application>Evince Document Viewer</application>." +msgstr "Thanh trƬnh ÄĘ”n chį»©a tįŗ„t cįŗ£ cĆ”c lį»nh Äį» bįŗ”n sį» dį»„ng khi lĆ m viį»c vį»i cĆ”c tĆ i liį»u trong <application>Bį» xem tĆ i liį»u Evince</application>." + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "Thanh cĆ“ng cį»„" + +#: C/evince.xml:176(para) +msgid "The toolbar contains a subset of the commands that you can access from the menubar." +msgstr "Thanh cĆ“ng cį»„ chį»©a cĆ”c nĆŗt lį»nh cho phĆ©p bįŗ”n truy cįŗp nhanh chĆ³ng vĆ o cĆ”c lį»nh trĆŖn thanh trƬnh ÄĘ”n." + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "VĆ¹ng hiį»n thį»" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "VĆ¹ng hiį»n thį» ÄĘ°į»£c dĆ¹ng Äį» trƬnh bĆ y nį»i dung tĆ i liį»u." + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "CĆ”c thĆ nh phįŗ§n cį»§a giao diį»n ngĘ°į»i dĆ¹ng" + +#: C/evince.xml:198(para) +#: C/evince.xml:646(para) +msgid "Action" +msgstr "HĆ nh Äį»ng" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "Cį»a sį»" + +#: C/evince.xml:207(para) +msgid "Drag a file into the <application>Evince Document Viewer</application> window from another application such as a file manager." +msgstr "KĆ©o mį»t tįŗp tin tį»« mį»t į»©ng dį»„ng khĆ”c, nhĘ° bį» Quįŗ£n lĆ½ tįŗp tin chįŗ³ng hįŗ”n, vĆ o trong cį»a sį» <application>Bį» xem tĆ i liį»u Evince</application>." + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "Bįŗ„m ÄĆŗp chuį»t trĆ”i lĆŖn tĆŖn tįŗp tin trong Bį» quįŗ£n lĆ½ tįŗp tin" + +#: C/evince.xml:217(para) +#: C/evince.xml:244(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>." +msgstr "Chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>Mį»</guimenuitem></menuchoice>." + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "CĆ”c phĆm tįŗÆt" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "Nhįŗ„n tį» hį»£p phĆm <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." + +#: C/evince.xml:187(para) +msgid "In <application>Evince Document Viewer</application>, you can perform the same action in several ways. For example, you can open a document in the following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" +msgstr "Trong <application>Evince</application>, bįŗ”n cĆ³ thį» thį»±c hiį»n mį»t hĆ nh Äį»ng theo nhiį»u cĆ”ch khĆ”c nhau. VĆ dį»„, bįŗ”n cĆ³ thį» mį» mį»t tĆ i liį»u bįŗ±ng mį»t trong cĆ”c cĆ”ch sau: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "Bįŗ”n cĆ³ thį» mį» tĆ i liį»u hĘ°į»ng dįŗ«n nĆ y tį»« thanh trƬnh ÄĘ”n." + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "CĆ”ch dĆ¹ng" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "Äį» mį» mį»t tĆ i liį»u" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "Äį» mį» mį»t tĆ i liį»u, hĆ£y thį»±c hiį»n cĆ”c bĘ°į»c sau:" + +#: C/evince.xml:248(para) +msgid "In the <guilabel>Open Document</guilabel> dialog, select the file you want to open." +msgstr "Trong hį»p thoįŗ”i <guilabel>Mį» tĆ i liį»u</guilabel>, chį»n tįŗp tin bįŗ”n cįŗ§n mį»." + +#: C/evince.xml:253(para) +msgid "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</application> displays the name of the document in the titlebar of the window." +msgstr "Nhįŗ„n nĆŗt <guibutton>Mį»</guibutton>. <application>Evince</application> sįŗ½ hiį»n thį» tĆŖn tįŗp tin ÄĘ°į»£c mį» trong phįŗ§n thanh tiĆŖu Äį» cį»§a cį»a sį» chĘ°Ę”ng trƬnh." + +#: C/evince.xml:258(para) +msgid "To open another document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. <application>Evince Document Viewer</application> opens each file in a new window." +msgstr "Äį» mį» mį»t tĆ i liį»u khĆ”c, hĆ£y chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>Mį»</guimenuitem></menuchoice> thĆŖm lįŗ§n nį»Æa. <application>Bį» xem tĆ i liį»u Evince</application> sįŗ½ mį» mį»i tįŗp tin trong mį»t cį»a sį» riĆŖng biį»t." + +#: C/evince.xml:261(para) +msgid "If you try to open a document with format that <application>Evince Document Viewer</application> does not recognize, the application displays an error message." +msgstr "Nįŗæu <application>Evince</application> khĆ“ng nhįŗn dįŗ”ng ÄĘ°į»£c Äį»nh dįŗ”ng cį»§a tĆ i liį»u bįŗ”n chį»n Äį» xem, chĘ°Ę”ng trƬnh sįŗ½ phĆ”t mį»t thĆ“ng bĆ”o lį»i. " + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "Äį» di chuyį»n trong tĆ i liį»u" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "Bįŗ”n cĆ³ thį» di chuyį»n Äįŗæn vį» trĆ bįŗ„t kį»³ trong tĆ i liį»u bįŗ±ng cĆ”ch sau:" + +#: C/evince.xml:271(para) +msgid "To view the next page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "Äį» xem trang kįŗæ tiįŗæp, chį»n <menuchoice><guimenu>Di chuyį»n</guimenu><guimenuitem>Trang sau</guimenuitem></menuchoice>." + +#: C/evince.xml:275(para) +msgid "To view the previous page, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "Äį» xem trang trĘ°į»c, chį»n <menuchoice><guimenu>Di chuyį»n</guimenu><guimenuitem>Trang trĘ°į»c</guimenuitem></menuchoice>." + +#: C/evince.xml:279(para) +msgid "To view the first page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "Äį» xem trang Äįŗ§u tiĆŖn, chį»n <menuchoice><guimenu>Di chuyį»n</guimenu><guimenuitem>Trang Äįŗ§u</guimenuitem></menuchoice>." + +#: C/evince.xml:283(para) +msgid "To view the last page in the document, choose <menuchoice><guimenu>Go</guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "Äį» xem trang cuį»i cĆ¹ng, chį»n <menuchoice><guimenu>Di chuyį»n</guimenu><guimenuitem>Trang cuį»i</guimenuitem></menuchoice>." + +#: C/evince.xml:287(para) +msgid "To view a particular page, enter the page number or page label in the text box on the toolbar, then press <keycap>Return</keycap>." +msgstr "Äį» xem mį»t trang bįŗ„t kį»³, hĆ£y nhįŗp sį» trang hoįŗ·c nhĆ£n cį»§a trang vĆ o Ć“ vÄn bįŗ£n į» trĆŖn thanh cĆ“ng cį»„, rį»i nhįŗ„n <keycap>Return</keycap>." + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "Äį» cuį»n trang" + +#: C/evince.xml:295(para) +msgid "To display the page contents that are not currently displayed in the display area, use the following methods:" +msgstr "Äį» xem nį»i dung chĘ°a ÄĘ°į»£c trƬnh bĆ y trong vĆ¹ng hiį»n thį», hĆ£y dĆ¹ng cĆ”c cĆ”ch sau:" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "Nhįŗ„n cĆ”c phĆm mÅ©i tĆŖn hoįŗ·c phĆm cĆ”ch trĆŖn bĆ n phĆm." + +#: C/evince.xml:301(para) +msgid "Drag the display area by clicking with the middle mouse button somewhere in the document and then moving the mouse. For example, to scroll down the page, drag the display area upwards in the window." +msgstr "Dį»ch chuyį»n vĆ¹ng hiį»n thį» bįŗ±ng cĆ”ch nhįŗ„n chuį»t giį»Æa vĆ o trong tĆ i liį»u, rį»i di chuyį»n vį» trĆ con chuį»t. VĆ dį»„, Äį» cuį»n trang xuį»ng phĆa dĘ°į»i, hĆ£y dĆ¹ng chuį»t kĆ©o dį»ch vĆ¹ng hiį»n thį» lĆŖn phĆa trĆŖn. " + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "DĆ¹ng cĆ”c thanh cuį»n cį»§a cį»a sį»." + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "Äį» thay Äį»i kĆch cį»” trang" + +#: C/evince.xml:312(para) +msgid "You can use the following methods to resize a page in the <application>Evince Document Viewer</application> display area:" +msgstr "Bįŗ”n cĆ³ thį» sį» dį»„ng cĆ”c cĆ”ch sau Äį» thay Äį»i kĆch thĘ°į»c trang tĆ i liį»u trong vĆ¹ng hiį»n thį» cį»§a <application>Evince</application>:" + +#: C/evince.xml:317(para) +msgid "To increase the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "Äį» tÄng kĆch cį»” trang, chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>PhĆ³ng to</guimenuitem></menuchoice>." + +#: C/evince.xml:322(para) +msgid "To decrease the page size, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "Äį» giįŗ£m kĆch cį»” trang, chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>Thu nhį»</guimenuitem></menuchoice>." + +#: C/evince.xml:327(para) +msgid "To resize a page to have the same width as the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "Äį» Äįŗ·t kĆch cį»” trang ÄĆŗng bįŗ±ng chiį»u rį»ng cį»§a vĆ¹ng hiį»n thį» trong cį»a sį» <application>Evince</application>, chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>Vį»«a Äį» rį»ng trang</guimenuitem></menuchoice>." + +#: C/evince.xml:332(para) +msgid "To resize a page to fit within the <application>Evince Document Viewer</application> display area, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "Äį» Äįŗ·t kĆch cį»” trang sao cho toĆ n bį» trang vį»«a khĆt trong vĆ¹ng hiį»n thį» cį»§a <application>Evince</application>, chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>Vį»«a khĆt</guimenuitem></menuchoice>." + +#: C/evince.xml:337(para) +msgid "To resize the <application>Evince Document Viewer</application> window to have the same width and height as the screen, choose <menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></menuchoice>. To resize the <application>Evince Document Viewer</application> window to the original size, click on the <guibutton>Exit Full Screen</guibutton> button." +msgstr "Äį» phĆ³ng to cį»a sį» <application>Evince</application> ra toĆ n mĆ n hƬnh, chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>ToĆ n mĆ n hƬnh</guimenuitem></menuchoice>. Äį» thu cį»a sį» <application>Evince</application> vį» kĆch thĘ°į»c cÅ©, nhįŗ„n vĆ o nĆŗt <guibutton>Bį» chįŗæ Äį» toĆ n mĆ n hƬnh</guibutton>." + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "Äį» xem cĆ”c trang hoįŗ·c cįŗ„u trĆŗc cį»§a tĆ i liį»u" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "Äį» xem cĆ”c ÄĆ”nh dįŗ„u hoįŗ·c cĆ”c trang, hĆ£y thį»±c hiį»n cĆ”c bĘ°į»c sau:" + +#: C/evince.xml:350(para) +msgid "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "Chį»n <menuchoice><guimenu>Xem</guimenu><guimenuitem>Khung lį»</guimenuitem></menuchoice> hoįŗ·c nhįŗ„n <keycap>F9</keycap>." + +#: C/evince.xml:355(para) +msgid "Use the drop-down list in the side-pane header to select whether to display document structure or pages in the side pane." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng į» phįŗ§n Äįŗ§u khung lį» Äį» chį»n chįŗæ Äį» hiį»n thį» cįŗ„u trĆŗc tĆ i liį»u, hoįŗ·c xem thį» nį»i dung trang." + +#: C/evince.xml:360(para) +msgid "Use the side-pane scrollbars to display the required item or page in the side pane." +msgstr "DĆ¹ng thanh cuį»n į» bĆŖn phįŗ£i khung lį» Äį» tƬm mį»„c hoįŗ·c trang tĆ i liį»u mƬnh cįŗ§n." + +#: C/evince.xml:365(para) +msgid "Click on an entry to navigate to that location in the document. Click on a page to navigate to that page in the document." +msgstr "Nhįŗ„n vĆ o mį»t mį»„c Äį» di chuyį»n tį»i vį» trĆ tĘ°Ę”ng į»©ng trong tĆ i liį»u. Nhįŗ„n vĆ o mį»t trang Äį» hiį»n thį» nį»i dung cį»§a trang trong vĆ¹ng hiį»n thį»." + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "Äį» xem thuį»c tĆnh tĆ i liį»u" + +#: C/evince.xml:372(para) +msgid "To view the properties of a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "Äį» xem thuį»c tĆnh cį»§a mį»t tĆ i liį»u, hĆ£y chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>ThĆ“ng tin</guimenuitem></menuchoice>." + +#: C/evince.xml:378(para) +msgid "The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "Hį»p thoįŗ”i <guilabel>ThĆ“ng tin</guilabel> xuįŗ„t hiį»n, hiį»n thį» cĆ”c thĆ“ng tin Äi kĆØm tĆ i liį»u" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "Äį» in tĆ i liį»u" + +#: C/evince.xml:385(para) +msgid "To print a Document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "Äį» in mį»t tĆ i liį»u, chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>In</guimenuitem></menuchoice>." + +#: C/evince.xml:389(para) +msgid "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the author of the document has disabled the print option for this document. To enable the print option, you must enter the master password when you open the document. See <xref linkend=\"evince-password\"/> for more information about password-protected files." +msgstr "Trong mį»t sį» trĘ°į»ng hį»£p, nįŗæu tĆ”c giįŗ£ khi tįŗ”o tĆ i liį»u ÄĆ£ Äįŗ·t chįŗæ Äį» cįŗ„m khĆ“ng cho in tĆ i liį»u, bįŗ”n sįŗ½ khĆ“ng chį»n ÄĘ°į»£c lį»nh <guimenuitem>In</guimenuitem>. LĆŗc nĆ y, bįŗ”n phįŗ£i nhįŗp mįŗt khįŗ©u phĆ¹ hį»£p thƬ chĘ°Ę”ng trƬnh mį»i cĆ³ thį» in tĆ i liį»u nĆ y. Xin xem <xref linkend=\"evince-password\"/> Äį» biįŗæt thĆŖm thĆ“ng tin vį» cĆ”ch xį» lĆ½ cĆ”c tįŗp tin ÄĘ°į»£c mĆ£ hĆ³a bįŗ±ng mįŗt khįŗ©u." + +#: C/evince.xml:393(para) +msgid "The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "Hį»p thoįŗ”i <guilabel>In</guilabel> cĆ³ cĆ”c phįŗ§n sau:" + +#: C/evince.xml:399(link) +#: C/evince.xml:415(title) +msgid "Job" +msgstr "" + +#: C/evince.xml:404(link) +#: C/evince.xml:437(title) +#: C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "" + +#: C/evince.xml:409(link) +#: C/evince.xml:531(title) +msgid "Paper" +msgstr "" + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "Phįŗ”m vi in" + +#: C/evince.xml:419(para) +msgid "Select one of the following options to determine how many pages to print:" +msgstr "Chį»n mį»t trong cĆ”c tĆ¹y chį»n į» dĘ°į»i Äį» Äįŗ·t phįŗ”m vi in:" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "Tįŗ„t cįŗ£" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "Chį»n mį»„c nĆ y Äį» in tįŗ„t cįŗ£ cĆ”c trang cį»§a tĆ i liį»u." + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "Tį»« trang" + +#: C/evince.xml:427(para) +msgid "Select this option to print the selected range of pages in the document. Use the spin boxes to specify the first page and last page of the range." +msgstr "Chį»n mį»„c nĆ y Äį» in mį»t vĆ i trang nhįŗ„t Äį»nh cį»§a tĆ i liį»u. DĆ¹ng cĆ”c Ć“ xoay Äį» chį»n trang Äįŗ§u vĆ trang cuį»i cį»§a phįŗ”m vi cįŗ§n in ra." + +#: C/evince.xml:441(para) +msgid "Use this drop-down list to select the printer to which you want to print the document." +msgstr "DĆ¹ng Ć“ danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n mĆ”y in mĆ bįŗ”n muį»n dĆ¹ng Äį» in tĆ i liį»u nĆ y." + +#: C/evince.xml:443(para) +msgid "The <guilabel>Create a PDF document</guilabel> option is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "TĆ¹y chį»n <guilabel>Tįŗ”o tĆ i liį»u PDF</guilabel> chĘ°a ÄĘ°į»£c hį» trį»£ trong phiĆŖn bįŗ£n <application>Evince</application> hiį»n thį»i." + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "Thiįŗæt lįŗp" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» thiįŗæt lįŗp mĆ”y in." + +#: C/evince.xml:453(para) +msgid "To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer." +msgstr "Äį» cįŗ„u hƬnh mĆ”y in, nhįŗ„n vĆ o nĆŗt <guibutton>Thiįŗæt lįŗp</guibutton>. VĆ dį»„, bįŗ”n cĆ³ thį» bįŗt hoįŗ·c tįŗÆt chį»©c nÄng in song cĆ“ng, hoįŗ·c Äįŗ·t thį»i gian trį» thį»±c hiį»n viį»c in, nįŗæu mĆ”y in cį»§a mƬnh cĆ³ tĆnh nÄng nĆ y." + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "Vį» trĆ" + +#: C/evince.xml:459(para) +msgid "Use this drop-down list to select one of the following print destinations:" +msgstr "DĆ¹ng Ć“ danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n mį»t trong cĆ”c ÄĆch in:" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "In tĆ i liį»u ra mĆ”y in CUPS." + +#: C/evince.xml:470(para) +msgid "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the only entry in this drop-down list." +msgstr "Nįŗæu mĆ”y in ÄĘ°į»£c chį»n lĆ mį»t mĆ”y in CUPS, <guilabel>CUPS</guilabel> lĆ mį»„c duy nhįŗ„t cĆ³ trong danh sĆ”ch chį»n." + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "In tĆ i liį»u ra mĆ”y in." + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "File" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "In tĆ i liį»u ra mį»t tįŗp tin PostScript." + +#: C/evince.xml:490(para) +msgid "Click <guibutton>Save As</guibutton> to display a dialog where you specify the name and location of the PostScript file." +msgstr "Nhįŗ„n nĆŗt <guibutton>LĘ°u thĆ nh</guibutton> Äį» hiį»n thį» hį»p thoįŗ”i chį»n tĆŖn vĆ vį» trĆ cį»§a tįŗp tin PostScript sįŗ½ xuįŗ„t ra." + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "TĆ¹y chį»n" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "Tį»± nhįŗp mį»t lį»nh riĆŖng Äį» in tĆ i liį»u." + +#: C/evince.xml:501(para) +msgid "Type the name of the command in the text box. Include all command-line arguments." +msgstr "GƵ tĆŖn lį»nh vĆ cĆ”c tham sį» cį»§a lį»nh vĆ o Ć“ vÄn bįŗ£n." + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "Trįŗ”ng thĆ”i" + +#: C/evince.xml:511(para) +#: C/evince.xml:517(para) +#: C/evince.xml:523(para) +msgid "This functionality is not supported in this version of <application>Evince Document Viewer</application>." +msgstr "TĆnh nÄng nĆ y chĘ°a ÄĘ°į»£c hį» trį»£ trong phiĆŖn bįŗ£n <application>Evince</application> hiį»n thį»i." + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "Loįŗ”i" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "Ghi chĆŗ" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "KĆch thĘ°į»c trang" + +#: C/evince.xml:535(para) +msgid "Use this drop-down list to select the size of the paper to which you want to print the document." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n kĆch thĘ°į»c trang giįŗ„y muį»n dĆ¹ng khi in tĆ i liį»u ra." + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "Chiį»u rį»ng" + +#: C/evince.xml:540(para) +msgid "Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit." +msgstr "DĆ¹ng hį»p xoay nĆ y Äį» chį»n chiį»u rį»ng cį»§a tį» giįŗ„y. Chį»n ÄĘ”n vį» Äo trong Ć“ kįŗæ bĆŖn." + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "Chiį»u cao" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "DĆ¹ng hį»p xoay nĆ y Äį» chį»n chiį»u cao cį»§a tį» giįŗ„y. Chį»n ÄĘ”n vį» Äo trong Ć“ kįŗæ bĆŖn." + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "HĘ°į»ng trang in ra" + +#: C/evince.xml:550(para) +msgid "Use this drop-down list to select the orientation of the paper in the printer." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n hĘ°į»ng giįŗ„y cho mĆ”y in." + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n hĘ°į»ng giįŗ„y." + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "" + +#: C/evince.xml:560(para) +msgid "Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n bį» cį»„c giįŗ„y. CĆ³ thį» xem thį» bį» cį»„c ÄĘ°į»£c chį»n trong vĆ¹ng <guilabel>Xem thį»</guilabel>." + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "DĆ¹ng danh sĆ”ch thįŗ£ xuį»ng nĆ y Äį» chį»n khay giįŗ„y." + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "Äį» sao chĆ©p tĆ i liį»u" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "Äį» sao chĆ©p tĆ i liį»u, hĆ£y thį»±c hiį»n cĆ”c bĘ°į»c sau:" + +#: C/evince.xml:580(para) +msgid "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</guimenuitem></menuchoice>." +msgstr "Chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>LĘ°u mį»t bįŗ£n sao</guimenuitem></menuchoice>." + +#: C/evince.xml:585(para) +msgid "Type the new filename in the <guilabel>Filename</guilabel> text box in the <guilabel>Save a Copy</guilabel> dialog." +msgstr "GƵ tĆŖn tįŗp tin mį»i vĆ o trong Ć“ <guilabel>TĆŖn tįŗp tin</guilabel> cį»§a hį»p thoįŗ”i <guilabel>LĘ°u mį»t bįŗ£n sao</guilabel>." + +#: C/evince.xml:588(para) +msgid "If necessary, specify the location of the copied document. By default, copies are saved in your home directory." +msgstr "Nįŗæu cįŗ§n, chį»n thĘ° mį»„c muį»n dĆ¹ng Äį» lĘ°u bįŗ£n sao. Mįŗ·c Äį»nh lĆ thĘ° mį»„c chĆnh cį»§a bįŗ”n." + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "Nhįŗ„n nĆŗt <guibutton>LĘ°u</guibutton>." + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "LĆ m viį»c vį»i cĆ”c tĆ i liį»u ÄĘ°į»£c bįŗ£o vį» bįŗ±ng mįŗt khįŗ©u" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "Bįŗ±ng mįŗt khįŗ©u, tĆ”c giįŗ£ cĆ³ thį» Äįŗ·t cĆ”c mį»©c bįŗ£o vį» sau Äį»i vį»i tĆ i liį»u:" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "Mįŗt khįŗ©u ngĘ°į»i dĆ¹ng, chį» cho phĆ©p ngĘ°į»i khĆ”c Äį»c tĆ i liį»u." + +#: C/evince.xml:612(para) +msgid "Master password that allows others to perform additional actions, such as print the document." +msgstr "Mįŗt khįŗ©u ngĘ°į»i chį»§, cho phĆ©p ngĘ°į»i khĆ”c thį»±c hiį»n cĆ”c hĆ nh Äį»ng khĆ”c, vĆ dį»„ nhĘ° in tĆ i liį»u chįŗ£ hįŗ”n." + +#: C/evince.xml:616(para) +msgid "When you try to open a password-protected document, <application>Evince Document Viewer</application> displays a security dialog. Type either the user password or the master password in the <guilabel>Enter document password</guilabel> text box, then click <guibutton>Open Document</guibutton>." +msgstr "Khi bįŗ”n mį» mį»t tĆ i liį»u ÄĘ°į»£c bįŗ£o vį» bįŗ±ng mįŗt khįŗ©u, <application>Evince</application> sįŗ½ hiį»n thį» mį»t hį»p thoįŗ”i bįŗ£o mįŗt. Tįŗ”i ÄĆ¢y, hĆ£y nhįŗp mįŗt khįŗ©u ngĘ°į»i dĆ¹ng hoįŗ·c mįŗt khįŗ©u chį»§ vĆ o Ć“ <guilabel>Nhįŗp mįŗt khįŗ©u</guilabel>, sau ÄĆ³ nhįŗ„n <guibutton>Mį» tĆ i liį»u</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "Äį» ÄĆ³ng tĆ i liį»u" + +#: C/evince.xml:624(para) +msgid "To close a document, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "Äį» ÄĆ³ng tĆ i liį»u, chį»n <menuchoice><guimenu>Tįŗp tin</guimenu><guimenuitem>ÄĆ³ng</guimenuitem></menuchoice>." + +#: C/evince.xml:626(para) +msgid "If the window is the last <application>Evince Document Viewer</application> window open, the application exits." +msgstr "Nįŗæu cį»a sį» hiį»n thį»i lĆ cį»a sį» <application>Evince</application> cuį»i cĆ¹ng Äang mį», thao tĆ”c nĆ y sįŗ½ kįŗæt thĆŗc hoįŗ”t Äį»ng cį»§a chĘ°Ę”ng trƬnh." + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "PhĆm tįŗÆt" + +#: C/evince.xml:636(para) +msgid "Below is a list of all shortcuts present in <application>Evince Document Viewer</application>:" +msgstr "Bįŗ£ng dĘ°į»i ÄĆ¢y liį»t kĆŖ tįŗ„t cįŗ£ cĆ”c phĆm tįŗÆt ÄĘ°į»£c sį» dį»„ng trong <application>Bį» xem tĆ i liį»u Evince</application>:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "PhĆm tįŗÆt" + +#: C/evince.xml:651(keycap) +#: C/evince.xml:655(keycap) +#: C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) +#: C/evince.xml:667(keycap) +#: C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) +#: C/evince.xml:683(keycap) +#: C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "Mį» mį»t tĆ i liį»u khĆ”c" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "LĘ°u mį»t bįŗ£n sao cį»§a tĆ i liį»u hiį»n thį»i" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "In tĆ i liį»u" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "ÄĆ³ng cį»a sį»" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "ChĆ©p vĆ¹ng chį»n" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "Chį»n tįŗ„t cįŗ£" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (xuį»c)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "TƬm mį»t tį»« hoįŗ·c cį»„m tį»« trong tĆ i liį»u" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "TƬm tiįŗæp" + +#: C/evince.xml:690(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (dįŗ„u cį»ng)" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "PhĆ³ng to" + +#: C/evince.xml:698(para) +msgid "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (dįŗ„u trį»«)" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "Thu nhį»" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "Nįŗ”p lįŗ”i nį»i dung tĆ i liį»u" + +#: C/evince.xml:709(keycap) +#: C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "Chuyį»n Äįŗæn trang trĘ°į»c" + +#: C/evince.xml:713(keycap) +#: C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "Chuyį»n Äįŗæn trang kįŗæ tiįŗæp" + +#: C/evince.xml:718(keycap) +#: C/evince.xml:726(keycap) +msgid "Space" +msgstr "PhĆm cĆ”ch" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:726(keycap) +#: C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) +#: C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:719(keycap) +#: C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:720(keycap) +#: C/evince.xml:728(keycap) +msgid "Return" +msgstr "Return" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "Cuį»n xuį»ng dĘ°į»i" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "Cuį»n lĆŖn trĆŖn" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "Di chuyį»n xuį»ng dĘ°į»i nhiį»u trang" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "Di chuyį»n lĆŖn trĆŖn nhiį»u trang" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "Chuyį»n Äįŗæn trang Äįŗ§u" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "Chuyį»n Äįŗæn trang cuį»i" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "Chuyį»n Äįŗæn trang bįŗ±ng nhĆ£n hoįŗ·c sį» trang tĘ°Ę”ng į»©ng" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "Xem trį»£ giĆŗp" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "Xem tĆ i liį»u dĘ°į»i dįŗ”ng trƬnh diį» n" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "įŗØn hoįŗ·c hiį»n khung lį»" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "Bįŗt/tįŗÆt chįŗæ Äį» toĆ n mĆ n hƬnh" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2. +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "Nguyį» n ÄƬnh Trung <nguyendinhtrung141@gmail.com>, 2009" + diff --git a/help/zh_CN/zh_CN.po b/help/zh_CN/zh_CN.po new file mode 100644 index 00000000..be4b9ff9 --- /dev/null +++ b/help/zh_CN/zh_CN.po @@ -0,0 +1,1183 @@ +# Chinese (China) help translation for evince. +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Zhang Chen <zhangchn2004@gmail.com>, 2008. +# ę±ę¶ <bill_zt@sina.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"POT-Creation-Date: 2010-07-03 09:08+0000\n" +"PO-Revision-Date: 2010-07-11 21:52+0800\n" +"Last-Translator: ę±ę¶ <bill_zt@sina.com>\n" +"Language-Team: Chinese i18n <i18n-zh@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/evince.xml:155(None) +msgid "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" +msgstr "" +"@@image: 'figures/evince_start_window.png'; " +"md5=7f4da5e33bcac35738a268d93d497d47" + +#: C/evince.xml:25(title) +msgid "Evince Document Viewer Manual" +msgstr "Evince ęę”£ę„ēåØęå" + +#: C/evince.xml:27(para) +msgid "" +"The Evince Document Viewer application enables you to view documents of " +"various formats like Portable Document Format (PDF) files and PostScript " +"files" +msgstr "Evince ęę”£ę„ēåØåÆę„é å¤ē§äøåę ¼å¼(å¦ PDF å PostScript ē)ēęę”£ć" + +#: C/evince.xml:33(year) +msgid "2005" +msgstr "2005" + +#: C/evince.xml:34(holder) C/evince.xml:100(para) +msgid "Nickolay V. Shmyrev" +msgstr "Nickolay V. Shmyrev" + +#: C/evince.xml:37(year) +msgid "2004" +msgstr "2004" + +#: C/evince.xml:38(holder) C/evince.xml:61(orgname) +msgid "Sun Microsystems" +msgstr "Sun Microsystems" + +#: C/evince.xml:49(publishername) C/evince.xml:67(orgname) +#: C/evince.xml:93(para) C/evince.xml:101(para) +msgid "MATE Documentation Project" +msgstr "MATE ęę”£é”¹ē®" + +#: C/evince.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"åƹäŗę¬ęę”£ēå¤å¶ćååå/ęäæ®ę¹åæ é”»éµå¾ŖčŖē±č½Æ件åŗéä¼ (Free Software " +"Foundation) ååøē GNU čŖē±ęę”£č®øåÆčÆ (GFDL) ēę¬ 1.1 ęę“é«ēę¬ļ¼čÆ„č®øåÆčÆę²”" +"ęåŗå®ēéØåćę²”ęå°é¢åč锵ęę¬ćęØåÆ仄åØę¤<ulink type=\"help\" url=\"ghelp:" +"fdl\">é¾ę„</ulink>äøęåØéę¬ęåäøčµ·ååē COPYING-DOCS ę件äøę¾å° GFDL ēåÆ" +"ę¬ć" + +#: C/evince.xml:12(para) +msgid "" +"This manual is part of a collection of MATE manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"ę¬ęåęÆåØ GFDL č®øåÆä¹äøååē MATE ęåéåēäøéØåćå¦ęę³č¦åē¬ååę¤ę" +"åļ¼åÆ仄åØęåäøę·»å čÆ„č®øåÆčÆēäø份åÆę¬ē¶åååļ¼å¦čÆ„č®øåÆčÆēē¬¬ 6 éØåęčæ°ć" + +#: C/evince.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any MATE " +"documentation, and the members of the MATE Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"åäøŖå ¬åøä½æēØēč®øå¤ēØäŗåŗå«å®ä»¬äŗ§ååęå”ēåē§°é½å£°ęäøŗåę ćåØęęē MATE ę" +"ę”£ä»„å MATE ęę”£é”¹ē®ēęåäøļ¼čæäŗåē§°é½ęÆ仄å Ø大ååęÆęé¦åęÆ大åę¾ē¤ŗļ¼ä»č" +"č”Øęå®ä»¬ęÆåę ć" + +#: C/evince.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"ęę”£ęāåę ·āęä¾ļ¼äøęä¾ä»»ä½ęē¤ŗęęē¤ŗēäæčÆļ¼å ę¬ä½äøéäŗļ¼ęę”£ęęę”£ēäæ®ę¹" +"ēę¬ę²”ęééę§ę¹é¢ēē¼ŗé·ćéåē¹å®ē®ēēéēØę§ļ¼ä»„åę²”ęä¾µęč”äøŗćęØå°čŖč”ęæ" +"ę ę¬ęę”£ä»„åęę”£äæ®ę¹ēę¬ēč“Øéćåē”®ę§ä»„åę§č½ę¹é¢ēé£é©ćå¦ęä»»ä½ęę”£ęęę”£" +"äæ®ę¹ēę¬ååØē¼ŗé·ļ¼ęØļ¼čäøęÆęåēē¼åč ćä½č ęę°åäŗŗļ¼å°ęæę ęęåæ éēę" +"å”ćē»“äæ®ęę“ę£ēč“¹ēØćę¤å č“£å£°ęęÆę¬č®øåÆčÆēéč¦ē»ęéØåćå¦ęäøę„åę¤å č“£å£°" +"ęļ¼é£ä¹ęØå°±ę²”ęęå©ä½æēØä»»ä½ęę”£ęęę”£ēäæ®ę¹ēę¬ļ¼å¹¶äø" + +#: C/evince.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ę č®ŗåØä»»ä½ę åµä»„ååØä»»ä½ę³å¾ēč®ŗäøļ¼ę¬ęę”£ęęę”£äæ®ę¹ēę¬ēä½č ćęåēē¼å" +"č ćä»»ä½ę°åäŗŗęä»»ä½ååč ļ¼ęč ä»»ęčæäŗę¹ēä»»ä½ęä¾č é½äøåƹ任ä½äŗŗē±äŗä½æēØę¬" +"ęę”£ęęę”£äæ®ę¹ēę¬å¼čµ·ęåø¦ę„ēä»»ä½ē“ę„ēćé“ę„ēćē¹ę®ēćå¶ē¶ēęē»§åēę失" +"ęæę ä»»ä½ę°äŗļ¼å ę¬ēåæ½ļ¼ćååęå ¶å®ę¹é¢ēč“£ä»»ļ¼čæäŗę失å ę¬ä½äøéäŗäæ”čŖę" +"失ćå·„ä½åę¢ćč®”ē®ęŗå¤±č“„ęę éļ¼ęä»»ä½ä»„åęęå ¶å®ę失ęē±ę¤å¼åēęäøä¹ēøå ³" +"ēę失ļ¼å³ä½æčæäŗę¹å·²č¢«åē„ååØåŗē°ę¤ē±»ę失ēåÆč½ę§ę¶ä¹ęÆå¦ę¤ć" + +#: C/evince.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"<placeholder-1/>" +msgstr "" +"ę¬ęę”£ä»„åęę”£ēäæ®ę¹ēę¬é½ęÆåØéµå¾Ŗ GNU čŖē±ęę”£č®øåÆčÆēę”ę¬¾äøęä¾ļ¼čæč”Øē¤ŗå ·ę" +"仄äøå«ä¹ļ¼<placeholder-1/>" + +#: C/evince.xml:59(firstname) +msgid "Sun" +msgstr "Sun" + +#: C/evince.xml:60(surname) +msgid "MATE Documentation Team" +msgstr "MATE ęę”£å°ē»" + +#: C/evince.xml:64(firstname) +msgid "Nickolay V." +msgstr "Nickolay V." + +#: C/evince.xml:65(surname) +msgid "Shmyrev" +msgstr "Shmyrev" + +#: C/evince.xml:68(email) +msgid "nshmyrev@yandex.ru" +msgstr "nshmyrev@yandex.ru" + +#: C/evince.xml:88(revnumber) +msgid "Evince Document Viewer Manual V1.1" +msgstr "Evince ęę”£ę„ēåØęå V1.1" + +#: C/evince.xml:89(date) +msgid "2008-04-05" +msgstr "2008幓4ę5ę„" + +#: C/evince.xml:91(para) +msgid "Niels Giesen" +msgstr "Niels Giesen" + +#: C/evince.xml:92(para) +msgid "Claude Paroz" +msgstr "Claude Paroz" + +#: C/evince.xml:97(revnumber) +msgid "Evince Document Viewer Manual V1.0" +msgstr "Evince ęę”£ę„ēåØęå V1.0" + +#: C/evince.xml:98(date) +msgid "2005-04-06" +msgstr "2005幓4ę6ę„" + +#: C/evince.xml:106(releaseinfo) +msgid "This manual describes version 0.2 of Evince Document Viewer" +msgstr "ę¤ęåęčæ°ēęÆ0.2ēē Evince ęę”£ę„ēåØć" + +#: C/evince.xml:109(title) +msgid "Feedback" +msgstr "åé¦" + +#: C/evince.xml:110(para) +msgid "" +"To report a bug or make a suggestion regarding the Evince Document Viewer " +"application or this manual, follow the directions in the <ulink url=\"ghelp:" +"mate-feedback\" type=\"help\">MATE Feedback Page</ulink>." +msgstr "" +"ę¬²ę„å bug ęęåŗéåƹ Evince ęę”£ę„ēåØēēØåŗęęåēå»ŗč®®ļ¼čÆ·åē § <ulink url=" +"\"ghelp:mate-feedback\" type=\"help\">MATE åé¦é”µ</ulink>ēęē¤ŗć" + +#: C/evince.xml:117(primary) +msgid "Evince Document Viewer" +msgstr "Evince ęę”£ę„ēåØ" + +#: C/evince.xml:120(primary) +msgid "evince" +msgstr "evince" + +#: C/evince.xml:128(title) +msgid "Introduction" +msgstr "ē®ä»" + +#: C/evince.xml:129(para) +msgid "" +"The <application>Evince Document Viewer</application> application enables " +"you to view documents of various formats like Portable Document Format (PDF) " +"files and PostScript files. <application>Evince Document Viewer</" +"application> follows Freedesktop.org and MATE standards to provide " +"integration with Desktop Environment." +msgstr "" +"<application>Evince ęę”£ę„ēåØ</application>åÆę„é å¤ē§äøåę ¼å¼(å¦ PDF å " +"PostScript ē)ēęę”£ć <application>Evince ęę”£ę„ēåØ</application>éµå¾Ŗ " +"Freedesktop.org äø MATE ę åļ¼ä»„åāę”é¢ēÆå¢āę“åć" + +#: C/evince.xml:136(title) +msgid "Getting Started" +msgstr "ę°ęäøč·Æ" + +#: C/evince.xml:139(title) +msgid "To Start Evince Document Viewer" +msgstr "åÆåØ Evince ęę”£ę„ēåØ " + +#: C/evince.xml:140(para) +msgid "" +"<application>Evince Document Viewer</application> starts when you open a " +"document such as a PDF or PostScript file." +msgstr "" +"<application>Evince ęę”£ę„ēåØ</application>ä¼åØęØęå¼äøäøŖå¦ PDF ę " +"PostScript ę件ä¹ē±»ēęę”£ę¶åÆåØć" + +#: C/evince.xml:141(para) +msgid "" +"Alternatively, you can start <application>Evince Document Viewer</" +"application> from the command line, with the command: <command>evince</" +"command>." +msgstr "" +"ęč ļ¼ęØåÆ仄ä»å½ä»¤č”éļ¼ēØå½ä»¤ <command>evince</command> åÆåØ " +"<application>Evince ęę”£ę„ēåØ</application>ć" + +#: C/evince.xml:146(title) +msgid "When You Start Evince Document Viewer" +msgstr "å½ęØåÆåØ Evince ęę”£ę„ēåØę¶" + +#: C/evince.xml:147(para) +msgid "" +"When you start <application>Evince Document Viewer</application>, the " +"following window is displayed." +msgstr "" +"å½ęØåÆåØ <application>Evince ęę”£ę„ēåØ</application>ę¶ļ¼ä¼ę¾ē¤ŗ仄äøēŖå£ć" + +#: C/evince.xml:151(title) +msgid "Evince Document Viewer Window" +msgstr "Evince ęę”£ę„ēåØēŖå£" + +#: C/evince.xml:158(phrase) +msgid "" +"Shows Evince Document Viewer main window. Contains titlebar, menubar, " +"toolbar and display area. Menubar contains File, Edit, View, Go and Help " +"menus." +msgstr "" +"ę¤å¾å±ē¤ŗäŗ Evince ęę”£ę„ēåØēŖå£ćå ę¬ę é¢ę ļ¼čåę ļ¼å·„å ·ę åę¾ē¤ŗåŗåćčå" +"ę å ę¬ę件ļ¼ē¼č¾ļ¼ę„ēļ¼č½¬å°ååø®å©ēčåć" + +#: C/evince.xml:164(para) +msgid "" +"The <application>Evince Document Viewer</application> window contains the " +"following elements:" +msgstr "Evince ęę”£ę„ēåØēŖå£å ę¬ä»„äøč¦ē“ ļ¼" + +#: C/evince.xml:168(term) C/evince.xml:216(para) +msgid "Menubar" +msgstr "čåę " + +#: C/evince.xml:170(para) +msgid "" +"The menus on the menubar contain all of the commands that you need to work " +"with documents in <application>Evince Document Viewer</application>." +msgstr "" +"čåę éēčåå å«äŗęęęØåØ <application>Evince ęę”£ę„ēåØ</application>éę„" +"é ęę”£ę¶ęéēęęå½ä»¤ć" + +#: C/evince.xml:174(term) +msgid "Toolbar" +msgstr "å·„å ·ę " + +#: C/evince.xml:176(para) +msgid "" +"The toolbar contains a subset of the commands that you can access from the " +"menubar." +msgstr "å·„å ·ę å å«äŗåÆä»čåę éč®æé®ēå ØéØå½ä»¤ēäøäøŖåéć" + +#: C/evince.xml:180(term) +msgid "Display area" +msgstr "ę¾ē¤ŗåŗå" + +#: C/evince.xml:182(para) +msgid "The display area displays the document." +msgstr "ę¾ē¤ŗåŗåč“č“£ę¾ē¤ŗęę”£ć" + +#: C/evince.xml:196(para) +msgid "UI Component" +msgstr "UI ē»ä»¶" + +#: C/evince.xml:198(para) C/evince.xml:646(para) +msgid "Action" +msgstr "åØä½" + +#: C/evince.xml:203(para) +msgid "Window" +msgstr "ēŖå£" + +#: C/evince.xml:207(para) +msgid "" +"Drag a file into the <application>Evince Document Viewer</application> " +"window from another application such as a file manager." +msgstr "" +"å°ę件ä»å¦äøäøŖēØåŗļ¼å¦ę件ē®”ēåØļ¼ęåØč³ <application>Evince ęę”£ę„ēåØ</" +"application>ēŖå£ć" + +#: C/evince.xml:210(para) +msgid "Double-click on the file name in the file manager" +msgstr "åØę件ē®”ēåØäøåå»ę件å" + +#: C/evince.xml:217(para) C/evince.xml:244(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></" +"menuchoice>." +msgstr "" +"éę© <menuchoice><guimenu>ę件</guimenu><guimenuitem>ęå¼</guimenuitem></" +"menuchoice>" + +#: C/evince.xml:221(para) +msgid "Shortcut keys" +msgstr "åæ«ę·é®" + +#: C/evince.xml:222(para) +msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>." +msgstr "ę <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>ć" + +#: C/evince.xml:187(para) +msgid "" +"In <application>Evince Document Viewer</application>, you can perform the " +"same action in several ways. For example, you can open a document in the " +"following ways: <informaltable frame=\"all\"><tgroup cols=\"2\" colsep=\"1\" " +"rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=\"50*\"/><colspec " +"colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/><placeholder-2/></" +"tgroup></informaltable>" +msgstr "" +"åØ <application>Evince ęę”£ę„ēåØ</application>äøļ¼ęØåÆ仄ēØå ē§ę¹å¼ååŗēøååØ" +"ä½ćä¾å¦ļ¼ęØåÆ仄ēØäøåę¹å¼ęå¼äøäøŖęę”£ļ¼<informaltable frame=\"all\"><tgroup " +"cols=\"2\" colsep=\"1\" rowsep=\"1\"><colspec colname=\"COLSPEC0\" colwidth=" +"\"50*\"/><colspec colname=\"COLSPEC1\" colwidth=\"50*\"/><placeholder-1/" +"><placeholder-2/></tgroup></informaltable>" + +#: C/evince.xml:228(para) +msgid "This manual documents functionality from the menubar." +msgstr "ę¤ęåč®°å½äŗčåę ēåč½ć" + +#: C/evince.xml:236(title) +msgid "Usage" +msgstr "ä½æēØ" + +#: C/evince.xml:240(title) +msgid "To Open A Document" +msgstr "ęå¼äøäøŖęę”£" + +#: C/evince.xml:241(para) +msgid "To open a document, perform the following steps:" +msgstr "ę¬²ęå¼äøäøŖęę”£ļ¼ę§č”äøåę„éŖ¤ļ¼" + +#: C/evince.xml:248(para) +msgid "" +"In the <guilabel>Open Document</guilabel> dialog, select the file you want " +"to open." +msgstr "åØ <guilabel>ęå¼ęę”£</guilabel> åƹčÆę”éļ¼éę©ęØę³č¦ęå¼ēę件ć" + +#: C/evince.xml:253(para) +msgid "" +"Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</" +"application> displays the name of the document in the titlebar of the window." +msgstr "" +"åå»<guibutton>ęå¼</guibutton>ć<application>Evince ęę”£ę„ēåØ</application>" +"åØēŖå£ēę é¢ę äøę¾ē¤ŗåŗęę”£ēåå" + +#: C/evince.xml:258(para) +msgid "" +"To open another document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. " +"<application>Evince Document Viewer</application> opens each file in a new " +"window." +msgstr "" +"ę¬²ęå¼å¦äøęę”£ļ¼åꬔéę©<menuchoice><guimenu>ę件</guimenu><guimenuitem>ęå¼" +"</guimenuitem></menuchoice>ć<application>Evince ęę”£ę„ēåØ</application>ä¼é" +"äøåØę°ēŖå£äøęå¼ęÆäøŖę件ć" + +#: C/evince.xml:261(para) +msgid "" +"If you try to open a document with format that <application>Evince Document " +"Viewer</application> does not recognize, the application displays an error " +"message." +msgstr "" +"č„ęØčÆå¾ęå¼äøäøŖ <application>Evince ęę”£ę„ēåØ</application>ę ę³čÆå«ę ¼å¼ēę" +"件ļ¼ę¬ēØåŗä¼ę¾ē¤ŗäøę”éčÆÆę¶ęÆć" + +#: C/evince.xml:267(title) +msgid "To Navigate Through a Document" +msgstr "ęµč§ęę”£" + +#: C/evince.xml:268(para) +msgid "You can navigate through a file as follows:" +msgstr "ęØåÆ仄äøåę¹å¼ęµč§ę件ļ¼" + +#: C/evince.xml:271(para) +msgid "" +"To view the next page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ę„ēäøäø锵ļ¼éę©<menuchoice><guimenu>č½¬å°</guimenu><guimenuitem>äøäø锵</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:275(para) +msgid "" +"To view the previous page, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ę„ēäøäø锵ļ¼éę©<menuchoice><guimenu>č½¬å°</guimenu><guimenuitem>äøäø锵</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:279(para) +msgid "" +"To view the first page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>First Page</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ę„ēē¬¬äø锵ļ¼éę©<menuchoice><guimenu>č½¬å°</guimenu><guimenuitem>ē¬¬äø锵</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:283(para) +msgid "" +"To view the last page in the document, choose <menuchoice><guimenu>Go</" +"guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ę„ēęåäø锵ļ¼éę©<menuchoice><guimenu>č½¬å°</guimenu><guimenuitem>ęåäø锵" +"</guimenuitem></menuchoice>ć" + +#: C/evince.xml:287(para) +msgid "" +"To view a particular page, enter the page number or page label in the text " +"box on the toolbar, then press <keycap>Return</keycap>." +msgstr "" +"ę¬²ę„ēę锵ļ¼åØå·„å ·ę ēęę¬ę”å é®å „锵ē ę锵ę ē¾ļ¼ę<keycap>Return</keycap>" + +#: C/evince.xml:294(title) +msgid "To Scroll a Page" +msgstr "å·åØ锵é¢" + +#: C/evince.xml:295(para) +msgid "" +"To display the page contents that are not currently displayed in the display " +"area, use the following methods:" +msgstr "ę¾ē¤ŗå½åę¾ē¤ŗåŗåéę²”ęę¾ē¤ŗē锵é¢å 容ļ¼åÆēØäøåę¹ę³ļ¼" + +#: C/evince.xml:298(para) +msgid "Use the arrow keys or space key on the keyboard." +msgstr "ēØé®ēēę¹åé®ęē©ŗę ¼é®ć" + +#: C/evince.xml:301(para) +msgid "" +"Drag the display area by clicking with the middle mouse button somewhere in " +"the document and then moving the mouse. For example, to scroll down the " +"page, drag the display area upwards in the window." +msgstr "" +"åØęę”£äøęå¤ęäøé¼ ę äøé®ē¶åē§»åØé¼ ę ļ¼åÆ仄ęåØę¾ē¤ŗåŗåćä¾å¦ļ¼č¦åäøå·åØ锵" +"é¢ļ¼åÆåØēŖå£äøåäøęåØę¾ē¤ŗåŗåć" + +#: C/evince.xml:304(para) +msgid "Use the scrollbars on the window." +msgstr "ä½æēØēŖå£ę»åØę”" + +#: C/evince.xml:311(title) +msgid "To Change the Page Size" +msgstr "ę¹å锵é¢å¤§å°" + +#: C/evince.xml:312(para) +msgid "" +"You can use the following methods to resize a page in the " +"<application>Evince Document Viewer</application> display area:" +msgstr "" +"ęØåÆēØäøåę¹ę³ę¹å <application>Evince ęę”£ę„ēåØ</application>ę¾ē¤ŗåŗåē大" +"å°ļ¼" + +#: C/evince.xml:317(para) +msgid "" +"To increase the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>." +msgstr "" +"ę¬²å¢å¤§é”µé¢å°ŗåÆøļ¼éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>ę¾å¤§</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:322(para) +msgid "" +"To decrease the page size, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>." +msgstr "" +"ę¬²åå°é”µé¢å°ŗåÆøļ¼éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>ē¼©å°</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:327(para) +msgid "" +"To resize a page to have the same width as the <application>Evince Document " +"Viewer</application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>." +msgstr "" +"ę¬²å°é”µé¢å®½åŗ¦č®¾äøŗ <application>Evince ęę”£ę„ēåØ</application>ę¾ē¤ŗåŗåēēøå宽" +"åŗ¦ļ¼éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>éå宽åŗ¦</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:332(para) +msgid "" +"To resize a page to fit within the <application>Evince Document Viewer</" +"application> display area, choose <menuchoice><guimenu>View</" +"guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>." +msgstr "" +"ę¬²å°é”µé¢å¤§å°č®¾äøŗäø <application>Evince ęę”£ę„ēåØ</application>ę¾ē¤ŗåŗåäøč“ļ¼" +"éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>ęéå</guimenuitem></" +"menuchoice>ć" + +#: C/evince.xml:337(para) +msgid "" +"To resize the <application>Evince Document Viewer</application> window to " +"have the same width and height as the screen, choose " +"<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen</guimenuitem></" +"menuchoice>. To resize the <application>Evince Document Viewer</application> " +"window to the original size, click on the <guibutton>Exit Full Screen</" +"guibutton> button." +msgstr "" +"ę¬²å° <application>Evince ęę”£ę„ēåØ</application>ēŖå£å¤§å°č®¾äøŗå±å¹é«åŗ¦å宽åŗ¦ļ¼" +"éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>å Øå±å¹</guimenuitem></" +"menuchoice>ćę¬²å° <application>Evince ęę”£ę„ēåØ</application>ēŖå£å¤§å°ę¢å¤å°" +"åå§å¤§å°ļ¼åå»<guibutton>ē¦»å¼å Øå±</guibutton>ęé®ć" + +#: C/evince.xml:345(title) +msgid "To View Pages or Document Structure" +msgstr "ę„ē锵é¢ęęę”£ē»ę" + +#: C/evince.xml:346(para) +msgid "To view bookmarks or pages, perform the following steps:" +msgstr "ę„ē书ē¾ę锵é¢ļ¼ę§č”äøåę„éŖ¤ļ¼" + +#: C/evince.xml:350(para) +msgid "" +"Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</" +"guimenuitem></menuchoice> or press <keycap>F9</keycap>." +msgstr "" +"éę©<menuchoice><guimenu>ę„ē</guimenu><guimenuitem>ä¾§č¾¹ę </guimenuitem></" +"menuchoice>ę <keycap>F9</keycap>ć" + +#: C/evince.xml:355(para) +msgid "" +"Use the drop-down list in the side-pane header to select whether to display " +"document structure or pages in the side pane." +msgstr "ēØę¤ä¾§č¾¹ę ę é¢ēäøęåč”Øéę©ęÆå¦äŗä¾§č¾¹ę ę¾ē¤ŗęę”£ē»ęę锵é¢ē¼©ē„å¾ć" + +#: C/evince.xml:360(para) +msgid "" +"Use the side-pane scrollbars to display the required item or page in the " +"side pane." +msgstr "ēØä¾§č¾¹ę å·åØę”ę¾ē¤ŗęéč¦ē锹ē®ę锵é¢ć" + +#: C/evince.xml:365(para) +msgid "" +"Click on an entry to navigate to that location in the document. Click on a " +"page to navigate to that page in the document." +msgstr "åå»äøäøŖę”ē®åÆä»„č·³č³ęę”£äøēēøåŗä½ē½®ćåå»äø锵åÆä»„č·³č³ęę”£äøēēøåŗ锵ć" + +#: C/evince.xml:371(title) +msgid "To View the Properties of a Document" +msgstr "ę„ēęę”£å±ę§" + +#: C/evince.xml:372(para) +msgid "" +"To view the properties of a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Properties</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ę„ēęę”£å±ę§ļ¼éę©<menuchoice><guimenu>ę件</guimenu><guimenuitem>å±ę§</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:378(para) +msgid "" +"The <guilabel>Properties</guilabel> dialog displays all information available" +msgstr "<guilabel>å±ę§</guilabel>åƹčÆę”ę¾ē¤ŗęęēåÆēØäæ”ęÆ" + +#: C/evince.xml:384(title) +msgid "To Print a Document" +msgstr "ęå°ęę”£" + +#: C/evince.xml:385(para) +msgid "" +"To print a Document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Print</guimenuitem></menuchoice>." +msgstr "" +"ę¬²ęå°ęę”£ļ¼éę©<menuchoice><guimenu>ę件</guimenu><guimenuitem>ęå°</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:389(para) +msgid "" +"If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the " +"author of the document has disabled the print option for this document. To " +"enable the print option, you must enter the master password when you open " +"the document. See <xref linkend=\"evince-password\"/> for more information " +"about password-protected files." +msgstr "" +"č„ęØę ę³éę©<guimenuitem>ęå°</guimenuitem>čå锹ļ¼čÆ“ęę¤ęę”£ä½č å·²ē¦ę¢ęå°ę¤" +"ęę”£ćč¦åÆēØęå°ēåč½ļ¼ęØęå¼ęę”£ę¶åæ é”»é®å „äø»åÆē ćåč§<xref linkend=" +"\"evince-password\"/>仄äŗč§£ę“å¤å ³äŗåē§åÆäæę¤ę件ēäæ”ęÆć" + +#: C/evince.xml:393(para) +msgid "" +"The <guilabel>Print</guilabel> dialog has the following tabbed sections:" +msgstr "<guilabel>ęå°</guilabel>åƹčÆę”ęäøåå锵ę ē¾ļ¼" + +#: C/evince.xml:399(link) C/evince.xml:415(title) +msgid "Job" +msgstr "ä»»å”" + +#: C/evince.xml:404(link) C/evince.xml:437(title) C/evince.xml:439(guilabel) +msgid "Printer" +msgstr "ęå°ęŗ" + +#: C/evince.xml:409(link) C/evince.xml:531(title) +msgid "Paper" +msgstr "ēŗøå¼ " + +#: C/evince.xml:417(guilabel) +msgid "Print range" +msgstr "čå“" + +#: C/evince.xml:419(para) +msgid "" +"Select one of the following options to determine how many pages to print:" +msgstr "éę©äøåé锹äøēäøäøŖåÆå³å®ęå°ē锵ę°ļ¼" + +#: C/evince.xml:422(guilabel) +msgid "All" +msgstr "å ØéØ" + +#: C/evince.xml:423(para) +msgid "Select this option to print all of the pages in the document." +msgstr "éę©ę¤é”¹ä»„ęå°ęę”£äøēå ØéØ锵é¢ć" + +#: C/evince.xml:426(guilabel) +msgid "Pages From" +msgstr "čå“" + +#: C/evince.xml:427(para) +msgid "" +"Select this option to print the selected range of pages in the document. Use " +"the spin boxes to specify the first page and last page of the range." +msgstr "" +"éę©ę¤é”¹ä»„ęå°ęę”£äøéäøē锵ē čå“ćēØå¾®č°ę”ęå®ē¬¬äø锵åęåäø锵ēčå“ć" + +#: C/evince.xml:441(para) +msgid "" +"Use this drop-down list to select the printer to which you want to print the " +"document." +msgstr "ēØę¤äøęåč”Øéę©ēØ仄ęå°ęę”£ēęå°ęŗć" + +#: C/evince.xml:443(para) +msgid "" +"The <guilabel>Create a PDF document</guilabel> option is not supported in " +"this version of <application>Evince Document Viewer</application>." +msgstr "" +"<guilabel>åå»ŗPDFęę”£</guilabel>é锹åØę¤ēę¬ <application>Evince ęę”£ę„ēåØ</" +"application>äøå°ęŖęÆęć" + +#: C/evince.xml:449(guilabel) +msgid "Settings" +msgstr "č®¾ē½®" + +#: C/evince.xml:451(para) +msgid "Use this drop-down list to select the printer settings." +msgstr "ēØę¤äøęåč”Øéę©ęå°ęŗč®¾ē½®ć" + +#: C/evince.xml:453(para) +msgid "" +"To configure the printer, click <guibutton>Configure</guibutton>. For " +"example, you can enable or disable duplex printing, or schedule delayed " +"printing, if this functionality is supported by the printer." +msgstr "" +"ę¬²é ē½®ęå°ęŗļ¼åå»<guibutton>é ē½®</guibutton>ćä¾å¦ļ¼ęØåÆåØęå°ęŗęÆęēøåŗåč½" +"ēę åµäøåÆēØęē¦ę¢åé¢ęå°ļ¼ęč®¾å®ęå°ę¶é“ć" + +#: C/evince.xml:457(guilabel) +msgid "Location" +msgstr "ä½ē½®" + +#: C/evince.xml:459(para) +msgid "" +"Use this drop-down list to select one of the following print destinations:" +msgstr "ēØę¤äøęåč”Øéę©äøåęå°ē®ę ļ¼" + +#: C/evince.xml:464(guilabel) +msgid "CUPS" +msgstr "CUPS" + +#: C/evince.xml:466(para) +msgid "Print the document to a CUPS printer." +msgstr "å°ęę”£ęå°å°äøå° CUPS ęå°ęŗć" + +#: C/evince.xml:470(para) +msgid "" +"If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the " +"only entry in this drop-down list." +msgstr "" +"å¦ęéäøēęå°ęŗęÆäøå° CUPS ęå°ęŗļ¼<guilabel>CUPS</guilabel> ęÆę¤äøęåč”Øē" +"åÆäøę”ē®ć" + +#: C/evince.xml:477(guilabel) +msgid "lpr" +msgstr "lpr" + +#: C/evince.xml:479(para) +msgid "Print the document to a printer." +msgstr "å°ęę”£ęå°å°äøå°ęå°ęŗć" + +#: C/evince.xml:485(guilabel) +msgid "File" +msgstr "ę件" + +#: C/evince.xml:487(para) +msgid "Print the document to a PostScript file." +msgstr "ęå°ęę”£äøŗäøäøŖ PostScript ę件ć" + +#: C/evince.xml:490(para) +msgid "" +"Click <guibutton>Save As</guibutton> to display a dialog where you specify " +"the name and location of the PostScript file." +msgstr "" +"åå»<guibutton>å¦åäøŗ</guibutton>ļ¼ä¼ę¾ē¤ŗäøäøŖęå® PostScript ę件ēåē§°åä½ē½®" +"åƹčÆę”ć" + +#: C/evince.xml:496(guilabel) +msgid "Custom" +msgstr "čŖå®ä¹" + +#: C/evince.xml:498(para) +msgid "Use the specified command to print the document." +msgstr "ä½æēØē¹å«ēę令ę„ęå°ę件ć" + +#: C/evince.xml:501(para) +msgid "" +"Type the name of the command in the text box. Include all command-line " +"arguments." +msgstr "åØęę¬ę”äøč¾å „å½ä»¤ēååćå ę¬å ØéØå½ä»¤č”åę°ć" + +#: C/evince.xml:509(guilabel) +msgid "State" +msgstr "ē¶ę" + +#: C/evince.xml:511(para) C/evince.xml:517(para) C/evince.xml:523(para) +msgid "" +"This functionality is not supported in this version of <application>Evince " +"Document Viewer</application>." +msgstr "ę¤ēę¬ <application>Evince ęę”£ę„ēåØ</application>äøęÆęę¤é”¹åč½ć" + +#: C/evince.xml:515(guilabel) +msgid "Type" +msgstr "ē±»å" + +#: C/evince.xml:521(guilabel) +msgid "Comment" +msgstr "å¤ę³Ø" + +#: C/evince.xml:533(guilabel) +msgid "Paper size" +msgstr "ēŗøå¼ å¤§å°" + +#: C/evince.xml:535(para) +msgid "" +"Use this drop-down list to select the size of the paper to which you want to " +"print the document." +msgstr "ēØę¤äøęåč”Øéę©ęØę¬²ęå°ęę”£ēØēēŗøå¼ å¤§å°ć" + +#: C/evince.xml:538(guilabel) +msgid "Width" +msgstr "宽åŗ¦" + +#: C/evince.xml:540(para) +msgid "" +"Use this spin box to specify the width of the paper. Use the adjacent drop-" +"down list to change the measurement unit." +msgstr "ēØę¤å¾®č°ę”ęå®ēŗøå¼ å®½åŗ¦ćēØęč¾¹ēäøęåč”Øäæ®ę¹åŗ¦éåä½ć" + +#: C/evince.xml:543(guilabel) +msgid "Height" +msgstr "é«åŗ¦" + +#: C/evince.xml:545(para) +msgid "Use this spin box to specify the height of the paper." +msgstr "ēØę¤å¾®č°ę”ęå®ēŗøå¼ é«åŗ¦ć" + +#: C/evince.xml:548(guilabel) +msgid "Feed orientation" +msgstr "ēŗøå¼ ę¹å" + +#: C/evince.xml:550(para) +msgid "" +"Use this drop-down list to select the orientation of the paper in the " +"printer." +msgstr "ēØäøęåč”Øéę©ęå°ęŗäøēēŗøå¼ ę¹åć" + +#: C/evince.xml:553(guilabel) +msgid "Page orientation" +msgstr "锵é¢ę¹å" + +#: C/evince.xml:555(para) +msgid "Use this drop-down list to select the page orientation." +msgstr "ēØę¤äøęåč”Øéę©é”µé¢ę¹åć" + +#: C/evince.xml:558(guilabel) +msgid "Layout" +msgstr "åøå±" + +#: C/evince.xml:560(para) +msgid "" +"Use this drop-down list to select the page layout. A preview of each layout " +"that you select is displayed in the <guilabel>Preview</guilabel> area." +msgstr "" +"ēØę¤äøęåč”Øéę©é”µé¢åøå±ćęØéę©ēåøå±ēé¢č§ä¼åØ<guilabel>é¢č§</guilabel>åŗå" +"ę¾ē¤ŗåŗę„ć" + +#: C/evince.xml:563(guilabel) +msgid "Paper Tray" +msgstr "ēŗøå¼ ę„ęŗ" + +#: C/evince.xml:565(para) +msgid "Use this drop-down list to select the paper tray." +msgstr "ēØę¤äøęåč”Øéę©ēŗøå¼ ę„ęŗć" + +#: C/evince.xml:575(title) +msgid "To Copy a Document" +msgstr "å¤å¶ęę”£" + +#: C/evince.xml:576(para) +msgid "To copy a file, perform the following steps:" +msgstr "ę¬²å¤å¶äøäøŖę件ļ¼ę§č”äøåę„éŖ¤ļ¼" + +#: C/evince.xml:580(para) +msgid "" +"Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</" +"guimenuitem></menuchoice>." +msgstr "" +"éę©<menuchoice><guimenu>ę件</guimenu><guimenuitem>äæååÆę¬</guimenuitem></" +"menuchoice>ć" + +#: C/evince.xml:585(para) +msgid "" +"Type the new filename in the <guilabel>Filename</guilabel> text box in the " +"<guilabel>Save a Copy</guilabel> dialog." +msgstr "" +"åØ<guilabel>äæååÆę¬</guilabel>åƹčÆę”ē<guilabel>åē§°</guilabel>ęę¬ę”éč¾å „" +"ę件åć" + +#: C/evince.xml:588(para) +msgid "" +"If necessary, specify the location of the copied document. By default, " +"copies are saved in your home directory." +msgstr "å¦ęåæ č¦ļ¼ęå®åÆę¬ęę”£ēä½ē½®ćé»č®¤ēåÆę¬äæååØęØē home ē®å½ć" + +#: C/evince.xml:593(para) +msgid "Click <guibutton>Save</guibutton>." +msgstr "åå»<guibutton>äæå</guibutton>ć" + +#: C/evince.xml:602(title) +msgid "To Work With Password-Protected Documents" +msgstr "åÆē äæę¤ēęę”£ęä½" + +#: C/evince.xml:603(para) +msgid "An author can use the following password levels to protect a document:" +msgstr "ęę”£ēä½č åÆ仄ä½æēØ仄äøåÆē ēēŗ§ę„äæę¤ęę”£ļ¼" + +#: C/evince.xml:608(para) +msgid "User password that allows others only to read the document." +msgstr "令ä»äŗŗåŖč½é čÆ»ęę”£ēēØę·åÆē ć" + +#: C/evince.xml:612(para) +msgid "" +"Master password that allows others to perform additional actions, such as " +"print the document." +msgstr "令ä»äŗŗåÆ仄ę§č”å¦ęå°ęę”£ēéå åØä½ēäø»åÆē ć" + +#: C/evince.xml:616(para) +msgid "" +"When you try to open a password-protected document, <application>Evince " +"Document Viewer</application> displays a security dialog. Type either the " +"user password or the master password in the <guilabel>Enter document " +"password</guilabel> text box, then click <guibutton>Open Document</" +"guibutton>." +msgstr "" +"åƹęØčÆå¾ęå¼äøäøŖęåÆē äæę¤ēęę”£ę¶ļ¼<application>Evince ęę”£ę„ēåØ</" +"application>ä¼ę¾ē¤ŗäøäøŖå®å ØåƹčÆę”ćåØ<guilabel>č¾å „ęę”£åÆē </guilabel>ęę¬ę”äø" +"é®å „ēØę·åÆē ęäø»åÆē ļ¼ē¶åē¹å»<guibutton>ęå¼ęę”£</guibutton>." + +#: C/evince.xml:623(title) +msgid "To Close a Document" +msgstr "å ³éęę”£" + +#: C/evince.xml:624(para) +msgid "" +"To close a document, choose <menuchoice><guimenu>File</" +"guimenu><guimenuitem>Close</guimenuitem></menuchoice>." +msgstr "" +"ę¬²å ³éäøäøŖęę”£ļ¼éę©<menuchoice><guimenu>ę件</guimenu><guimenuitem>å ³é</" +"guimenuitem></menuchoice>ć" + +#: C/evince.xml:626(para) +msgid "" +"If the window is the last <application>Evince Document Viewer</application> " +"window open, the application exits." +msgstr "" +"č„å½åēŖå£ęÆęåäøäøŖęå¼ē <application>Evince ęę”£ę„ēåØ</application>ēŖå£ļ¼" +"ę¬ēØåŗä¼éåŗć" + +#: C/evince.xml:635(title) +msgid "Shortcuts" +msgstr "åæ«ę·é®" + +#: C/evince.xml:636(para) +msgid "" +"Below is a list of all shortcuts present in <application>Evince Document " +"Viewer</application>:" +msgstr "äøåęÆ <application>Evince ęę”£ę„ēåØ</application> äøēęęåæ«ę·é®åč”Ø:" + +#: C/evince.xml:644(para) +msgid "Shortcut" +msgstr "åæ«ę·é®" + +#: C/evince.xml:651(keycap) C/evince.xml:655(keycap) C/evince.xml:659(keycap) +#: C/evince.xml:663(keycap) C/evince.xml:667(keycap) C/evince.xml:671(keycap) +#: C/evince.xml:676(keycap) C/evince.xml:683(keycap) C/evince.xml:704(keycap) +#: C/evince.xml:750(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/evince.xml:651(keycap) +msgid "O" +msgstr "O" + +#: C/evince.xml:652(para) +msgid "Open an existing document" +msgstr "ęå¼äøäøŖå·²ååØēęę”£" + +#: C/evince.xml:655(keycap) +msgid "S" +msgstr "S" + +#: C/evince.xml:656(para) +msgid "Save a copy of the current document" +msgstr "å°å½åęę”£åØåäøŗäøäøŖę°ēę·č“" + +#: C/evince.xml:659(keycap) +msgid "P" +msgstr "P" + +#: C/evince.xml:660(para) +msgid "Print document" +msgstr "ęå°ęę”£" + +#: C/evince.xml:663(keycap) +msgid "W" +msgstr "W" + +#: C/evince.xml:664(para) +msgid "Close window" +msgstr "å ³éēŖå£" + +#: C/evince.xml:667(keycap) +msgid "C" +msgstr "C" + +#: C/evince.xml:668(para) +msgid "Copy selection" +msgstr "å¤å¶éäøēåŗå" + +#: C/evince.xml:671(keycap) +msgid "A" +msgstr "A" + +#: C/evince.xml:672(para) +msgid "Select All" +msgstr "éäøå ØéØåŗå" + +#: C/evince.xml:676(keycap) +msgid "F" +msgstr "F" + +#: C/evince.xml:677(para) +msgid "<keycap>/</keycap> (slash)" +msgstr "<keycap>/</keycap> (ęēŗæ)" + +#: C/evince.xml:679(para) +msgid "Find a word or phrase in the document" +msgstr "åØęę”£äøę„ę¾åčÆęēčÆ" + +#: C/evince.xml:683(keycap) +msgid "G" +msgstr "G" + +#: C/evince.xml:684(keycap) +msgid "F3" +msgstr "F3" + +#: C/evince.xml:686(para) +msgid "Find next" +msgstr "ę„ę¾äøäøäøŖ" + +#: C/evince.xml:690(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo> (plus sign)" +msgstr "" +"ę <keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo>ļ¼å å·ļ¼ć" + +#: C/evince.xml:691(keycap) +msgid "+" +msgstr "+" + +#: C/evince.xml:692(keycap) +msgid "=" +msgstr "=" + +#: C/evince.xml:694(para) +msgid "Zoom in" +msgstr "ę¾å¤§" + +#: C/evince.xml:698(para) +msgid "" +"<keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo> (minus sign)" +msgstr "" +"ę <keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo>ļ¼åå·ļ¼ć" + +#: C/evince.xml:699(keycap) +msgid "-" +msgstr "-" + +#: C/evince.xml:701(para) +msgid "Zoom out" +msgstr "ē¼©å°" + +#: C/evince.xml:704(keycap) +msgid "R" +msgstr "R" + +#: C/evince.xml:705(para) +msgid "Reload the document" +msgstr "éę°č½½å „ęę”£" + +#: C/evince.xml:709(keycap) C/evince.xml:734(keycap) +msgid "Page Up" +msgstr "Page Up" + +#: C/evince.xml:710(para) +msgid "Go to the previous page" +msgstr "č·³č½¬č³äøäø锵" + +#: C/evince.xml:713(keycap) C/evince.xml:738(keycap) +msgid "Page Down" +msgstr "Page Down" + +#: C/evince.xml:714(para) +msgid "Go to the next page" +msgstr "č·³č½¬č³äøäø锵" + +#: C/evince.xml:718(keycap) C/evince.xml:726(keycap) +msgid "Space" +msgstr "Space" + +#: C/evince.xml:719(keycap) C/evince.xml:726(keycap) C/evince.xml:728(keycap) +#: C/evince.xml:734(keycap) C/evince.xml:738(keycap) +msgid "Shift" +msgstr "Shift" + +#: C/evince.xml:719(keycap) C/evince.xml:727(keycap) +msgid "Backspace" +msgstr "Backspace" + +#: C/evince.xml:720(keycap) C/evince.xml:728(keycap) +msgid "Return" +msgstr "Return" + +#: C/evince.xml:722(para) +msgid "Scroll forward" +msgstr "ååę»åØ" + +#: C/evince.xml:730(para) +msgid "Scroll backward" +msgstr "ååę»åØ" + +#: C/evince.xml:735(para) +msgid "Go a bunch of pages up" +msgstr "å¾åēæ»å 锵" + +#: C/evince.xml:739(para) +msgid "Go a bunch of pages down" +msgstr "å¾åēæ»å 锵" + +#: C/evince.xml:742(keycap) +msgid "Home" +msgstr "Home" + +#: C/evince.xml:743(para) +msgid "Go to the first page" +msgstr "č·³č½¬č³ē¬¬äø锵" + +#: C/evince.xml:746(keycap) +msgid "End" +msgstr "End" + +#: C/evince.xml:747(para) +msgid "Go to the last page" +msgstr "č·³č½¬č³ęåäø锵" + +#: C/evince.xml:750(keycap) +msgid "L" +msgstr "L" + +#: C/evince.xml:751(para) +msgid "Go to page by number or label" +msgstr "ę ¹ę®é”µē ę书ē¾č·³č½¬č³ę锵" + +#: C/evince.xml:754(keycap) +msgid "F1" +msgstr "F1" + +#: C/evince.xml:755(para) +msgid "Help" +msgstr "åø®å©" + +#: C/evince.xml:758(keycap) +msgid "F5" +msgstr "F5" + +#: C/evince.xml:759(para) +msgid "Run document as presentation" +msgstr "仄幻ēÆēęØ”å¼ęę¾ęę”£" + +#: C/evince.xml:762(keycap) +msgid "F9" +msgstr "F9" + +#: C/evince.xml:763(para) +msgid "Show or hide the side pane" +msgstr "ę¾ē¤ŗęéčé¢ęæ" + +#: C/evince.xml:766(keycap) +msgid "F11" +msgstr "F11" + +#: C/evince.xml:767(para) +msgid "Toggle fullscreen mode" +msgstr "čæå „å Øå±ęØ”å¼" + +#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2 +#: C/evince.xml:0(None) +msgid "translator-credits" +msgstr "" +"Zhang Chen <zhangchn2004@gmail.com>, 2008\n" +"Tao Zhu <bill_zt@sina.com>, 2010" diff --git a/libdocument/Makefile.am b/libdocument/Makefile.am new file mode 100644 index 00000000..90fd1127 --- /dev/null +++ b/libdocument/Makefile.am @@ -0,0 +1,193 @@ +lib_LTLIBRARIES = libevdocument.la + +NOINST_H_FILES = \ + ev-debug.h \ + ev-module.h + +INST_H_SRC_FILES = \ + ev-annotation.h \ + ev-async-renderer.h \ + ev-attachment.h \ + ev-backends-manager.h \ + ev-document-factory.h \ + ev-document-annotations.h \ + ev-document-attachments.h \ + ev-document-find.h \ + ev-document-fonts.h \ + ev-document-forms.h \ + ev-document.h \ + ev-document-images.h \ + ev-document-info.h \ + ev-document-layers.h \ + ev-document-links.h \ + ev-document-misc.h \ + ev-document-print.h \ + ev-document-security.h \ + ev-document-thumbnails.h \ + ev-document-transition.h \ + ev-document-text.h \ + ev-file-exporter.h \ + ev-file-helpers.h \ + ev-form-field.h \ + ev-image.h \ + ev-init.h \ + ev-layer.h \ + ev-link-action.h \ + ev-link-dest.h \ + ev-link.h \ + ev-mapping-list.h \ + ev-page.h \ + ev-render-context.h \ + ev-selection.h \ + ev-transition-effect.h \ + ev-version.h + +INST_H_FILES = \ + $(INST_H_SRC_FILES) \ + ev-document-type-builtins.h + +headerdir = $(includedir)/evince/$(EV_API_VERSION)/libdocument +header_DATA = $(INST_H_FILES) + +libevdocument_la_SOURCES= \ + ev-annotation.c \ + ev-async-renderer.c \ + ev-attachment.c \ + ev-backends-manager.c \ + ev-layer.c \ + ev-link.c \ + ev-link-action.c \ + ev-link-dest.c \ + ev-image.c \ + ev-init.c \ + ev-document.c \ + ev-document-annotations.c \ + ev-document-attachments.c \ + ev-document-factory.c \ + ev-document-thumbnails.c \ + ev-document-fonts.c \ + ev-document-layers.c \ + ev-document-links.c \ + ev-document-images.c \ + ev-document-print.c \ + ev-document-security.c \ + ev-document-find.c \ + ev-document-transition.c \ + ev-document-forms.c \ + ev-document-type-builtins.c \ + ev-document-text.c \ + ev-form-field.c \ + ev-debug.c \ + ev-file-exporter.c \ + ev-file-helpers.c \ + ev-mapping-list.c \ + ev-module.c \ + ev-page.c \ + ev-render-context.c \ + ev-selection.c \ + ev-transition-effect.c \ + ev-document-misc.c \ + $(NOINST_H_FILES) \ + $(INST_H_FILES) + +libevdocument_la_CPPFLAGS = \ + -DG_LOG_DOMAIN=\"EvinceDocument\" \ + -DEVINCE_UIDIR=\"$(pkgdatadir)\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEV_BACKENDSDIR=\"$(backenddir)\" \ + -DEV_BACKENDSBINARYVERSION=\"$(backend_binary_version)\" \ + -DEVINCE_COMPILATION \ + $(AM_CPPFLAGS) + +libevdocument_la_CFLAGS = \ + $(LIBDOCUMENT_CFLAGS) \ + -I$(top_srcdir)/cut-n-paste/synctex \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(AM_CFLAGS) + +libevdocument_la_LDFLAGS = \ + -version-info $(EV_DOCUMENT_LT_VERSION_INFO) \ + -no-undefined \ + -export-symbols-regex "^ev_*" \ + $(AM_LDFLAGS) + +libevdocument_la_LIBADD = \ + $(LIBDOCUMENT_LIBS) \ + $(top_builddir)/cut-n-paste/synctex/libsynctex.la + + +BUILT_SOURCES = \ + ev-document-type-builtins.c \ + ev-document-type-builtins.h + +CLEANFILES = \ + $(BUILT_SOURCES) \ + stamp-ev-document-type-builtins.h \ + stamp-ev-document-type-builtins.c + +ev-document-type-builtins.h: stamp-ev-document-type-builtins.h + @true +stamp-ev-document-type-builtins.h: ev-document-type-builtins.h.template $(INST_H_SRC_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $< $(filter-out $<,$^) > xgen-etbh \ + && (cmp -s xgen-etbh ev-document-type-builtins.h || cp xgen-etbh ev-document-type-builtins.h ) \ + && rm -f xgen-etbh \ + && echo timestamp > $(@F) + +ev-document-type-builtins.c: stamp-ev-document-type-builtins.c + @true +stamp-ev-document-type-builtins.c: ev-document-type-builtins.c.template $(INST_H_SRC_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $< $(filter-out $<,$^) > xgen-etbc \ + && (cmp -s xgen-etbc ev-document-type-builtins.c || cp xgen-etbc ev-document-type-builtins.c ) \ + && rm -f xgen-etbc \ + && echo timestamp > $(@F) + +EXTRA_DIST = \ + ev-document-type-builtins.c.template \ + ev-document-type-builtins.h.template + +# GObject Introspection + +if ENABLE_INTROSPECTION + +EvinceDocument-$(EV_API_VERSION).gir: libevdocument.la Makefile $(INST_H_FILES) $(filter %.c,$(libevdocument_la_SOURCES)) + $(AM_V_GEN) PKG_CONFIG_PATH=$(top_builddir):$$PKG_CONFIG_PATH \ + $(G_IR_SCANNER) -v --namespace EvinceDocument \ + --strip-prefix=Ev \ + --nsversion=$(EV_API_VERSION) \ + --include=GLib-2.0 \ + --include=Gio-2.0 \ + --include=Gdk-2.0 \ + --include=GdkPixbuf-2.0 \ + --include=Gtk-2.0 \ + --library=evdocument \ + --libtool="$(SAVED_LIBTOOL)" \ + --output $@ \ + --pkg evince-document-$(EV_API_VERSION) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(srcdir) \ + -I$(builddir) \ + -DEVINCE_COMPILATION \ + $(filter %.h,$^) \ + $(filter %.c,$^) + +girdir = $(GIRDIR) +gir_DATA = EvinceDocument-$(EV_API_VERSION).gir + +typelibsdir = $(GIRTYPELIBDIR) +typelibs_DATA = EvinceDocument-$(EV_API_VERSION).typelib + +EXTRA_DIST += $(gir_DATA) +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +%.typelib: %.gir + $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=. \ + $(G_IR_COMPILER_OPTS) \ + $< -o $@ + +endif # ENABLE_INTROSPECTION + +-include $(top_srcdir)/git.mk diff --git a/libdocument/ev-annotation.c b/libdocument/ev-annotation.c new file mode 100644 index 00000000..2d45c4a2 --- /dev/null +++ b/libdocument/ev-annotation.c @@ -0,0 +1,1002 @@ +/* ev-annotation.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-annotation.h" +#include "ev-document-misc.h" +#include "ev-document-type-builtins.h" + +struct _EvAnnotation { + GObject parent; + + EvAnnotationType type; + EvPage *page; + + gchar *contents; + gchar *name; + gchar *modified; + GdkColor color; + +}; + +struct _EvAnnotationClass { + GObjectClass parent_class; +}; + +struct _EvAnnotationMarkupInterface { + GTypeInterface base_iface; +}; + +struct _EvAnnotationText { + EvAnnotation parent; + + gboolean is_open : 1; + EvAnnotationTextIcon icon; +}; + +struct _EvAnnotationTextClass { + EvAnnotationClass parent_class; +}; + +struct _EvAnnotationAttachment { + EvAnnotation parent; + + EvAttachment *attachment; +}; + +struct _EvAnnotationAttachmentClass { + EvAnnotationClass parent_class; +}; + +static void ev_annotation_markup_default_init (EvAnnotationMarkupInterface *iface); +static void ev_annotation_text_markup_iface_init (EvAnnotationMarkupInterface *iface); +static void ev_annotation_attachment_markup_iface_init (EvAnnotationMarkupInterface *iface); + +/* EvAnnotation */ +enum { + PROP_ANNOT_0, + PROP_ANNOT_PAGE, + PROP_ANNOT_CONTENTS, + PROP_ANNOT_NAME, + PROP_ANNOT_MODIFIED, + PROP_ANNOT_COLOR +}; + +/* EvAnnotationMarkup */ +enum { + PROP_MARKUP_0, + PROP_MARKUP_LABEL, + PROP_MARKUP_OPACITY, + PROP_MARKUP_HAS_POPUP, + PROP_MARKUP_RECTANGLE, + PROP_MARKUP_POPUP_IS_OPEN +}; + +/* EvAnnotationText */ +enum { + PROP_TEXT_ICON = PROP_MARKUP_POPUP_IS_OPEN + 1, + PROP_TEXT_IS_OPEN +}; + +/* EvAnnotationAttachment */ +enum { + PROP_ATTACHMENT_ATTACHMENT = PROP_MARKUP_POPUP_IS_OPEN + 1 +}; + +G_DEFINE_ABSTRACT_TYPE (EvAnnotation, ev_annotation, G_TYPE_OBJECT) +G_DEFINE_INTERFACE (EvAnnotationMarkup, ev_annotation_markup, EV_TYPE_ANNOTATION) +G_DEFINE_TYPE_WITH_CODE (EvAnnotationText, ev_annotation_text, EV_TYPE_ANNOTATION, + { + G_IMPLEMENT_INTERFACE (EV_TYPE_ANNOTATION_MARKUP, + ev_annotation_text_markup_iface_init); + }); +G_DEFINE_TYPE_WITH_CODE (EvAnnotationAttachment, ev_annotation_attachment, EV_TYPE_ANNOTATION, + { + G_IMPLEMENT_INTERFACE (EV_TYPE_ANNOTATION_MARKUP, + ev_annotation_attachment_markup_iface_init); + }); + +/* EvAnnotation */ +static void +ev_annotation_finalize (GObject *object) +{ + EvAnnotation *annot = EV_ANNOTATION (object); + + if (annot->page) { + g_object_unref (annot->page); + annot->page = NULL; + } + + if (annot->contents) { + g_free (annot->contents); + annot->contents = NULL; + } + + if (annot->name) { + g_free (annot->name); + annot->name = NULL; + } + + if (annot->modified) { + g_free (annot->modified); + annot->modified = NULL; + } + + G_OBJECT_CLASS (ev_annotation_parent_class)->finalize (object); +} + +static void +ev_annotation_init (EvAnnotation *annot) +{ + annot->type = EV_ANNOTATION_TYPE_UNKNOWN; +} + +static void +ev_annotation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotation *annot = EV_ANNOTATION (object); + + switch (prop_id) { + case PROP_ANNOT_PAGE: + annot->page = g_value_dup_object (value); + break; + case PROP_ANNOT_CONTENTS: + ev_annotation_set_contents (annot, g_value_get_string (value)); + break; + case PROP_ANNOT_NAME: + ev_annotation_set_name (annot, g_value_get_string (value)); + break; + case PROP_ANNOT_MODIFIED: + ev_annotation_set_modified (annot, g_value_get_string (value)); + break; + case PROP_ANNOT_COLOR: + ev_annotation_set_color (annot, g_value_get_pointer (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvAnnotation *annot = EV_ANNOTATION (object); + + switch (prop_id) { + case PROP_ANNOT_CONTENTS: + g_value_set_string (value, ev_annotation_get_contents (annot)); + break; + case PROP_ANNOT_NAME: + g_value_set_string (value, ev_annotation_get_name (annot)); + break; + case PROP_ANNOT_MODIFIED: + g_value_set_string (value, ev_annotation_get_modified (annot)); + break; + case PROP_ANNOT_COLOR: + g_value_set_pointer (value, &annot->color); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_class_init (EvAnnotationClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->finalize = ev_annotation_finalize; + g_object_class->set_property = ev_annotation_set_property; + g_object_class->get_property = ev_annotation_get_property; + + g_object_class_install_property (g_object_class, + PROP_ANNOT_PAGE, + g_param_spec_object ("page", + "Page", + "The page wehere the annotation is", + EV_TYPE_PAGE, + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_ANNOT_CONTENTS, + g_param_spec_string ("contents", + "Contents", + "The annotation contents", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_ANNOT_NAME, + g_param_spec_string ("name", + "Name", + "The annotation unique name", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_ANNOT_MODIFIED, + g_param_spec_string ("modified", + "Modified", + "Last modified date as string", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_ANNOT_COLOR, + g_param_spec_pointer ("color", + "Color", + "The annotation color", + G_PARAM_READWRITE)); +} + +EvAnnotationType +ev_annotation_get_annotation_type (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), 0); + + return annot->type; +} + +EvPage * +ev_annotation_get_page (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), NULL); + + return annot->page; +} + +guint +ev_annotation_get_page_index (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), 0); + + return annot->page->index; +} + +gboolean +ev_annotation_equal (EvAnnotation *annot, + EvAnnotation *other) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + g_return_val_if_fail (EV_IS_ANNOTATION (other), FALSE); + + return (annot == other || g_strcmp0 (annot->name, other->name) == 0); +} + +const gchar * +ev_annotation_get_contents (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), NULL); + + return annot->contents; +} + +gboolean +ev_annotation_set_contents (EvAnnotation *annot, + const gchar *contents) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + + if (g_strcmp0 (annot->contents, contents) == 0) + return FALSE; + + if (annot->contents) + g_free (annot->contents); + annot->contents = contents ? g_strdup (contents) : NULL; + + g_object_notify (G_OBJECT (annot), "contents"); + + return TRUE; +} + +const gchar * +ev_annotation_get_name (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), NULL); + + return annot->name; +} + +gboolean +ev_annotation_set_name (EvAnnotation *annot, + const gchar *name) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + + if (g_strcmp0 (annot->name, name) == 0) + return FALSE; + + if (annot->name) + g_free (annot->name); + annot->name = name ? g_strdup (name) : NULL; + + g_object_notify (G_OBJECT (annot), "name"); + + return TRUE; +} + +const gchar * +ev_annotation_get_modified (EvAnnotation *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), NULL); + + return annot->modified; +} + +gboolean +ev_annotation_set_modified (EvAnnotation *annot, + const gchar *modified) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + + if (g_strcmp0 (annot->modified, modified) == 0) + return FALSE; + + if (annot->modified) + g_free (annot->modified); + annot->modified = modified ? g_strdup (modified) : NULL; + + g_object_notify (G_OBJECT (annot), "modified"); + + return TRUE; +} + +gboolean +ev_annotation_set_modified_from_time (EvAnnotation *annot, + GTime utime) +{ + gchar *modified; + + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + + modified = ev_document_misc_format_date (utime); + + if (g_strcmp0 (annot->modified, modified) == 0) { + g_free (modified); + return FALSE; + } + + if (annot->modified) + g_free (annot->modified); + annot->modified = modified; + + g_object_notify (G_OBJECT (annot), "modified"); + + return TRUE; +} + +void +ev_annotation_get_color (EvAnnotation *annot, + GdkColor *color) +{ + g_return_if_fail (EV_IS_ANNOTATION (annot)); + + if (color) + *color = annot->color; +} + +gboolean +ev_annotation_set_color (EvAnnotation *annot, + const GdkColor *color) +{ + g_return_val_if_fail (EV_IS_ANNOTATION (annot), FALSE); + + if (annot->color.red == color->red && + annot->color.green == color->green && + annot->color.blue == color->blue) + return FALSE; + + if (color) + annot->color = *color; + + g_object_notify (G_OBJECT (annot), "color"); + + return TRUE; +} + +/* EvAnnotationMarkup */ +typedef struct { + gchar *label; + gdouble opacity; + gboolean has_popup; + gboolean popup_is_open; + EvRectangle rectangle; +} EvAnnotationMarkupProps; + +static void +ev_annotation_markup_default_init (EvAnnotationMarkupInterface *iface) +{ + static gboolean initialized = FALSE; + + if (!initialized) { + g_object_interface_install_property (iface, + g_param_spec_string ("label", + "Label", + "Label of the markup annotation", + NULL, + G_PARAM_READWRITE)); + g_object_interface_install_property (iface, + g_param_spec_double ("opacity", + "Opacity", + "Opacity of the markup annotation", + 0, + G_MAXDOUBLE, + 1., + G_PARAM_READWRITE)); + g_object_interface_install_property (iface, + g_param_spec_boolean ("has_popup", + "Has popup", + "Whether the markup annotation has " + "a popup window associated", + TRUE, + G_PARAM_READWRITE)); + g_object_interface_install_property (iface, + g_param_spec_boxed ("rectangle", + "Rectangle", + "The Rectangle of the popup associated " + "to the markup annotation", + EV_TYPE_RECTANGLE, + G_PARAM_READWRITE)); + g_object_interface_install_property (iface, + g_param_spec_boolean ("popup_is_open", + "PopupIsOpen", + "Whether the popup associated to " + "the markup annotation is open", + FALSE, + G_PARAM_READWRITE)); + initialized = TRUE; + } +} + +static void +ev_annotation_markup_props_free (EvAnnotationMarkupProps *props) +{ + g_free (props->label); + g_slice_free (EvAnnotationMarkupProps, props); +} + +static EvAnnotationMarkupProps * +ev_annotation_markup_get_properties (EvAnnotationMarkup *markup) +{ + EvAnnotationMarkupProps *props; + static GQuark props_key = 0; + + if (!props_key) + props_key = g_quark_from_static_string ("ev-annotation-markup-props"); + + props = g_object_get_qdata (G_OBJECT (markup), props_key); + if (!props) { + props = g_slice_new0 (EvAnnotationMarkupProps); + g_object_set_qdata_full (G_OBJECT (markup), + props_key, props, + (GDestroyNotify) ev_annotation_markup_props_free); + } + + return props; +} + +static void +ev_annotation_markup_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotationMarkup *markup = EV_ANNOTATION_MARKUP (object); + + switch (prop_id) { + case PROP_MARKUP_LABEL: + ev_annotation_markup_set_label (markup, g_value_get_string (value)); + break; + case PROP_MARKUP_OPACITY: + ev_annotation_markup_set_opacity (markup, g_value_get_double (value)); + break; + case PROP_MARKUP_HAS_POPUP: + ev_annotation_markup_set_has_popup (markup, g_value_get_boolean (value)); + break; + case PROP_MARKUP_RECTANGLE: + ev_annotation_markup_set_rectangle (markup, g_value_get_boxed (value)); + break; + case PROP_MARKUP_POPUP_IS_OPEN: + ev_annotation_markup_set_popup_is_open (markup, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_markup_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvAnnotationMarkupProps *props; + + props = ev_annotation_markup_get_properties (EV_ANNOTATION_MARKUP (object)); + + switch (prop_id) { + case PROP_MARKUP_LABEL: + g_value_set_string (value, props->label); + break; + case PROP_MARKUP_OPACITY: + g_value_set_double (value, props->opacity); + break; + case PROP_MARKUP_HAS_POPUP: + g_value_set_boolean (value, props->has_popup); + break; + case PROP_MARKUP_RECTANGLE: + g_value_set_boxed (value, &props->rectangle); + break; + case PROP_MARKUP_POPUP_IS_OPEN: + g_value_set_boolean (value, props->popup_is_open); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_markup_class_install_properties (GObjectClass *klass) +{ + klass->set_property = ev_annotation_markup_set_property; + klass->get_property = ev_annotation_markup_get_property; + + g_object_class_override_property (klass, PROP_MARKUP_LABEL, "label"); + g_object_class_override_property (klass, PROP_MARKUP_OPACITY, "opacity"); + g_object_class_override_property (klass, PROP_MARKUP_HAS_POPUP, "has_popup"); + g_object_class_override_property (klass, PROP_MARKUP_RECTANGLE, "rectangle"); + g_object_class_override_property (klass, PROP_MARKUP_POPUP_IS_OPEN, "popup_is_open"); +} + +const gchar * +ev_annotation_markup_get_label (EvAnnotationMarkup *markup) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), NULL); + + props = ev_annotation_markup_get_properties (markup); + return props->label; +} + +gboolean +ev_annotation_markup_set_label (EvAnnotationMarkup *markup, + const gchar *label) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + g_return_val_if_fail (label != NULL, FALSE); + + props = ev_annotation_markup_get_properties (markup); + if (g_strcmp0 (props->label, label) == 0) + return FALSE; + + if (props->label) + g_free (props->label); + props->label = g_strdup (label); + + g_object_notify (G_OBJECT (markup), "label"); + + return TRUE; +} + +gdouble +ev_annotation_markup_get_opacity (EvAnnotationMarkup *markup) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), 1.0); + + props = ev_annotation_markup_get_properties (markup); + return props->opacity; +} + +gboolean +ev_annotation_markup_set_opacity (EvAnnotationMarkup *markup, + gdouble opacity) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + + props = ev_annotation_markup_get_properties (markup); + if (props->opacity == opacity) + return FALSE; + + props->opacity = opacity; + + g_object_notify (G_OBJECT (markup), "opacity"); + + return TRUE; +} + +gboolean +ev_annotation_markup_has_popup (EvAnnotationMarkup *markup) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + + props = ev_annotation_markup_get_properties (markup); + return props->has_popup; +} + +gboolean +ev_annotation_markup_set_has_popup (EvAnnotationMarkup *markup, + gboolean has_popup) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + + props = ev_annotation_markup_get_properties (markup); + if (props->has_popup == has_popup) + return FALSE; + + props->has_popup = has_popup; + + g_object_notify (G_OBJECT (markup), "has-popup"); + + return TRUE; +} + +void +ev_annotation_markup_get_rectangle (EvAnnotationMarkup *markup, + EvRectangle *ev_rect) +{ + EvAnnotationMarkupProps *props; + + g_return_if_fail (EV_IS_ANNOTATION_MARKUP (markup)); + g_return_if_fail (ev_rect != NULL); + + props = ev_annotation_markup_get_properties (markup); + *ev_rect = props->rectangle; +} + +gboolean +ev_annotation_markup_set_rectangle (EvAnnotationMarkup *markup, + const EvRectangle *ev_rect) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + g_return_val_if_fail (ev_rect != NULL, FALSE); + + props = ev_annotation_markup_get_properties (markup); + if (props->rectangle.x1 == ev_rect->x1 && + props->rectangle.y1 == ev_rect->y1 && + props->rectangle.x2 == ev_rect->x2 && + props->rectangle.y2 == ev_rect->y2) + return FALSE; + + props->rectangle = *ev_rect; + + g_object_notify (G_OBJECT (markup), "rectangle"); + + return TRUE; +} + +gboolean +ev_annotation_markup_get_popup_is_open (EvAnnotationMarkup *markup) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + + props = ev_annotation_markup_get_properties (markup); + return props->popup_is_open; +} + +gboolean +ev_annotation_markup_set_popup_is_open (EvAnnotationMarkup *markup, + gboolean is_open) +{ + EvAnnotationMarkupProps *props; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE); + + props = ev_annotation_markup_get_properties (markup); + if (props->popup_is_open == is_open) + return FALSE; + + props->popup_is_open = is_open; + + g_object_notify (G_OBJECT (markup), "popup_is_open"); + + return TRUE; +} + +/* EvAnnotationText */ +static void +ev_annotation_text_init (EvAnnotationText *annot) +{ + EV_ANNOTATION (annot)->type = EV_ANNOTATION_TYPE_TEXT; +} + +static void +ev_annotation_text_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotationText *annot = EV_ANNOTATION_TEXT (object); + + if (prop_id < PROP_ATTACHMENT_ATTACHMENT) { + ev_annotation_markup_set_property (object, prop_id, value, pspec); + return; + } + + switch (prop_id) { + case PROP_TEXT_ICON: + ev_annotation_text_set_icon (annot, g_value_get_enum (value)); + break; + case PROP_TEXT_IS_OPEN: + ev_annotation_text_set_is_open (annot, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_text_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvAnnotationText *annot = EV_ANNOTATION_TEXT (object); + + if (prop_id < PROP_ATTACHMENT_ATTACHMENT) { + ev_annotation_markup_get_property (object, prop_id, value, pspec); + return; + } + + switch (prop_id) { + case PROP_TEXT_ICON: + g_value_set_enum (value, annot->icon); + break; + case PROP_TEXT_IS_OPEN: + g_value_set_boolean (value, annot->is_open); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_text_class_init (EvAnnotationTextClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + ev_annotation_markup_class_install_properties (g_object_class); + + g_object_class->set_property = ev_annotation_text_set_property; + g_object_class->get_property = ev_annotation_text_get_property; + + g_object_class_install_property (g_object_class, + PROP_TEXT_ICON, + g_param_spec_enum ("icon", + "Icon", + "The icon fo the text annotation", + EV_TYPE_ANNOTATION_TEXT_ICON, + EV_ANNOTATION_TEXT_ICON_NOTE, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_TEXT_IS_OPEN, + g_param_spec_boolean ("is_open", + "IsOpen", + "Whether text annot is initially open", + FALSE, + G_PARAM_READWRITE)); +} + +static void +ev_annotation_text_markup_iface_init (EvAnnotationMarkupInterface *iface) +{ +} + +EvAnnotation * +ev_annotation_text_new (EvPage *page) +{ + return EV_ANNOTATION (g_object_new (EV_TYPE_ANNOTATION_TEXT, + "page", page, + NULL)); +} + +EvAnnotationTextIcon +ev_annotation_text_get_icon (EvAnnotationText *text) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_TEXT (text), 0); + + return text->icon; +} + +gboolean +ev_annotation_text_set_icon (EvAnnotationText *text, + EvAnnotationTextIcon icon) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_TEXT (text), FALSE); + + if (text->icon == icon) + return FALSE; + + text->icon = icon; + + g_object_notify (G_OBJECT (text), "icon"); + + return TRUE; +} + +gboolean +ev_annotation_text_get_is_open (EvAnnotationText *text) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_TEXT (text), FALSE); + + return text->is_open; +} + +gboolean +ev_annotation_text_set_is_open (EvAnnotationText *text, + gboolean is_open) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_TEXT (text), FALSE); + + if (text->is_open == is_open) + return FALSE; + + text->is_open = is_open; + + g_object_notify (G_OBJECT (text), "is_open"); + + return TRUE; +} + +/* EvAnnotationAttachment */ +static void +ev_annotation_attachment_finalize (GObject *object) +{ + EvAnnotationAttachment *annot = EV_ANNOTATION_ATTACHMENT (object); + + if (annot->attachment) { + g_object_unref (annot->attachment); + annot->attachment = NULL; + } + + G_OBJECT_CLASS (ev_annotation_attachment_parent_class)->finalize (object); +} + +static void +ev_annotation_attachment_init (EvAnnotationAttachment *annot) +{ + EV_ANNOTATION (annot)->type = EV_ANNOTATION_TYPE_ATTACHMENT; +} + +static void +ev_annotation_attachment_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotationAttachment *annot = EV_ANNOTATION_ATTACHMENT (object); + + if (prop_id < PROP_ATTACHMENT_ATTACHMENT) { + ev_annotation_markup_set_property (object, prop_id, value, pspec); + return; + } + + switch (prop_id) { + case PROP_ATTACHMENT_ATTACHMENT: + ev_annotation_attachment_set_attachment (annot, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_attachment_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvAnnotationAttachment *annot = EV_ANNOTATION_ATTACHMENT (object); + + if (prop_id < PROP_ATTACHMENT_ATTACHMENT) { + ev_annotation_markup_get_property (object, prop_id, value, pspec); + return; + } + + switch (prop_id) { + case PROP_ATTACHMENT_ATTACHMENT: + g_value_set_object (value, annot->attachment); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_attachment_class_init (EvAnnotationAttachmentClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + ev_annotation_markup_class_install_properties (g_object_class); + + g_object_class->set_property = ev_annotation_attachment_set_property; + g_object_class->get_property = ev_annotation_attachment_get_property; + g_object_class->finalize = ev_annotation_attachment_finalize; + + g_object_class_install_property (g_object_class, + PROP_ATTACHMENT_ATTACHMENT, + g_param_spec_object ("attachment", + "Attachment", + "The attachment of the annotation", + EV_TYPE_ATTACHMENT, + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE)); +} + +static void +ev_annotation_attachment_markup_iface_init (EvAnnotationMarkupInterface *iface) +{ +} + +EvAnnotation * +ev_annotation_attachment_new (EvPage *page, + EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), NULL); + + return EV_ANNOTATION (g_object_new (EV_TYPE_ANNOTATION_ATTACHMENT, + "page", page, + "attachment", attachment, + NULL)); +} + +EvAttachment * +ev_annotation_attachment_get_attachment (EvAnnotationAttachment *annot) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_ATTACHMENT (annot), NULL); + + return annot->attachment; +} + +gboolean +ev_annotation_attachment_set_attachment (EvAnnotationAttachment *annot, + EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_ATTACHMENT (annot), FALSE); + + if (annot->attachment == attachment) + return FALSE; + + if (annot->attachment) + g_object_unref (annot->attachment); + annot->attachment = attachment ? g_object_ref (attachment) : NULL; + + g_object_notify (G_OBJECT (annot), "attachment"); + + return TRUE; +} diff --git a/libdocument/ev-annotation.h b/libdocument/ev-annotation.h new file mode 100644 index 00000000..1d5fca3f --- /dev/null +++ b/libdocument/ev-annotation.h @@ -0,0 +1,161 @@ +/* ev-annotation.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_ANNOTATION_H +#define EV_ANNOTATION_H + +#include <glib-object.h> + +#include "ev-document.h" +#include "ev-attachment.h" + +G_BEGIN_DECLS + +/* EvAnnotation */ +#define EV_TYPE_ANNOTATION (ev_annotation_get_type()) +#define EV_ANNOTATION(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION, EvAnnotation)) +#define EV_ANNOTATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION, EvAnnotationClass)) +#define EV_IS_ANNOTATION(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION)) +#define EV_IS_ANNOTATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION)) +#define EV_ANNOTATION_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION, EvAnnotationClass)) + +/* EvAnnotationMarkup */ +#define EV_TYPE_ANNOTATION_MARKUP (ev_annotation_markup_get_type ()) +#define EV_ANNOTATION_MARKUP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_ANNOTATION_MARKUP, EvAnnotationMarkup)) +#define EV_ANNOTATION_MARKUP_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_ANNOTATION_MARKUP, EvAnnotationMarkupInterface)) +#define EV_IS_ANNOTATION_MARKUP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_ANNOTATION_MARKUP)) +#define EV_IS_ANNOTATION_MARKUP_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_ANNOTATION_MARKUP)) +#define EV_ANNOTATION_MARKUP_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_ANNOTATION_MARKUP, EvAnnotationMarkupInterface)) + +/* EvAnnotationText */ +#define EV_TYPE_ANNOTATION_TEXT (ev_annotation_text_get_type()) +#define EV_ANNOTATION_TEXT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION_TEXT, EvAnnotationText)) +#define EV_ANNOTATION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION_TEXT, EvAnnotationTextClass)) +#define EV_IS_ANNOTATION_TEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION_TEXT)) +#define EV_IS_ANNOTATION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_TEXT)) +#define EV_ANNOTATION_TEXT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_TEXT, EvAnnotationTextClass)) + +/* EvAnnotationText */ +#define EV_TYPE_ANNOTATION_ATTACHMENT (ev_annotation_attachment_get_type()) +#define EV_ANNOTATION_ATTACHMENT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachment)) +#define EV_ANNOTATION_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachmentClass)) +#define EV_IS_ANNOTATION_ATTACHMENT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION_ATTACHMENT)) +#define EV_IS_ANNOTATION_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_ATTACHMENT)) +#define EV_ANNOTATION_ATTACHMENT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachmentClass)) + +typedef struct _EvAnnotation EvAnnotation; +typedef struct _EvAnnotationClass EvAnnotationClass; + +typedef struct _EvAnnotationMarkup EvAnnotationMarkup; +typedef struct _EvAnnotationMarkupInterface EvAnnotationMarkupInterface; + +typedef struct _EvAnnotationText EvAnnotationText; +typedef struct _EvAnnotationTextClass EvAnnotationTextClass; + +typedef struct _EvAnnotationAttachment EvAnnotationAttachment; +typedef struct _EvAnnotationAttachmentClass EvAnnotationAttachmentClass; + +typedef enum { + EV_ANNOTATION_TYPE_UNKNOWN, + EV_ANNOTATION_TYPE_TEXT, + EV_ANNOTATION_TYPE_ATTACHMENT +} EvAnnotationType; + +typedef enum { + EV_ANNOTATION_TEXT_ICON_NOTE, + EV_ANNOTATION_TEXT_ICON_COMMENT, + EV_ANNOTATION_TEXT_ICON_KEY, + EV_ANNOTATION_TEXT_ICON_HELP, + EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH, + EV_ANNOTATION_TEXT_ICON_PARAGRAPH, + EV_ANNOTATION_TEXT_ICON_INSERT, + EV_ANNOTATION_TEXT_ICON_CROSS, + EV_ANNOTATION_TEXT_ICON_CIRCLE, + EV_ANNOTATION_TEXT_ICON_UNKNOWN +} EvAnnotationTextIcon; + +/* EvAnnotation */ +GType ev_annotation_get_type (void) G_GNUC_CONST; +EvAnnotationType ev_annotation_get_annotation_type (EvAnnotation *annot); +EvPage *ev_annotation_get_page (EvAnnotation *annot); +guint ev_annotation_get_page_index (EvAnnotation *annot); +gboolean ev_annotation_equal (EvAnnotation *annot, + EvAnnotation *other); +const gchar *ev_annotation_get_contents (EvAnnotation *annot); +gboolean ev_annotation_set_contents (EvAnnotation *annot, + const gchar *contents); +const gchar *ev_annotation_get_name (EvAnnotation *annot); +gboolean ev_annotation_set_name (EvAnnotation *annot, + const gchar *name); +const gchar *ev_annotation_get_modified (EvAnnotation *annot); +gboolean ev_annotation_set_modified (EvAnnotation *annot, + const gchar *modified); +gboolean ev_annotation_set_modified_from_time (EvAnnotation *annot, + GTime utime); +void ev_annotation_get_color (EvAnnotation *annot, + GdkColor *color); +gboolean ev_annotation_set_color (EvAnnotation *annot, + const GdkColor *color); + +/* EvAnnotationMarkup */ +GType ev_annotation_markup_get_type (void) G_GNUC_CONST; +const gchar *ev_annotation_markup_get_label (EvAnnotationMarkup *markup); +gboolean ev_annotation_markup_set_label (EvAnnotationMarkup *markup, + const gchar *label); +gdouble ev_annotation_markup_get_opacity (EvAnnotationMarkup *markup); +gboolean ev_annotation_markup_set_opacity (EvAnnotationMarkup *markup, + gdouble opacity); +gboolean ev_annotation_markup_has_popup (EvAnnotationMarkup *markup); +gboolean ev_annotation_markup_set_has_popup (EvAnnotationMarkup *markup, + gboolean has_popup); +void ev_annotation_markup_get_rectangle (EvAnnotationMarkup *markup, + EvRectangle *ev_rect); +gboolean ev_annotation_markup_set_rectangle (EvAnnotationMarkup *markup, + const EvRectangle *ev_rect); +gboolean ev_annotation_markup_get_popup_is_open (EvAnnotationMarkup *markup); +gboolean ev_annotation_markup_set_popup_is_open (EvAnnotationMarkup *markup, + gboolean is_open); + +/* EvAnnotationText */ +GType ev_annotation_text_get_type (void) G_GNUC_CONST; +EvAnnotation *ev_annotation_text_new (EvPage *page); +EvAnnotationTextIcon ev_annotation_text_get_icon (EvAnnotationText *text); +gboolean ev_annotation_text_set_icon (EvAnnotationText *text, + EvAnnotationTextIcon icon); +gboolean ev_annotation_text_get_is_open (EvAnnotationText *text); +gboolean ev_annotation_text_set_is_open (EvAnnotationText *text, + gboolean is_open); + +/* EvAnnotationAttachment */ +GType ev_annotation_attachment_get_type (void) G_GNUC_CONST; +EvAnnotation *ev_annotation_attachment_new (EvPage *page, + EvAttachment *attachment); +EvAttachment *ev_annotation_attachment_get_attachment (EvAnnotationAttachment *annot); +gboolean ev_annotation_attachment_set_attachment (EvAnnotationAttachment *annot, + EvAttachment *attachment); + +G_END_DECLS + +#endif /* EV_ANNOTATION_H */ diff --git a/libdocument/ev-async-renderer.c b/libdocument/ev-async-renderer.c new file mode 100644 index 00000000..3b8d7b73 --- /dev/null +++ b/libdocument/ev-async-renderer.c @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include "ev-async-renderer.h" +#include "ev-document.h" + +enum +{ + RENDER_FINISHED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_INTERFACE (EvAsyncRenderer, ev_async_renderer, 0) + +static void +ev_async_renderer_default_init (EvAsyncRendererInterface *klass) +{ + static gboolean initialized = FALSE; + + if (!initialized) { + signals[RENDER_FINISHED] = + g_signal_new ("render_finished", + EV_TYPE_ASYNC_RENDERER, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvAsyncRendererInterface, render_finished), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + GDK_TYPE_PIXBUF); + initialized = TRUE; + } +} + +void +ev_async_renderer_render_pixbuf (EvAsyncRenderer *async_renderer, + int page, + double scale, + int rotation) +{ + EvAsyncRendererInterface *iface = EV_ASYNC_RENDERER_GET_IFACE (async_renderer); + + iface->render_pixbuf (async_renderer, page, scale, rotation); +} diff --git a/libdocument/ev-async-renderer.h b/libdocument/ev-async-renderer.h new file mode 100644 index 00000000..4ce3caa7 --- /dev/null +++ b/libdocument/ev-async-renderer.h @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_ASYNC_RENDERER_H +#define EV_ASYNC_RENDERER_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> + +G_BEGIN_DECLS + +#define EV_TYPE_ASYNC_RENDERER (ev_async_renderer_get_type ()) +#define EV_ASYNC_RENDERER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_ASYNC_RENDERER, EvAsyncRenderer)) +#define EV_ASYNC_RENDERER_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_ASYNC_RENDERER, EvAsyncRendererInterface)) +#define EV_IS_ASYNC_RENDERER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_ASYNC_RENDERER)) +#define EV_IS_ASYNC_RENDERER_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_ASYNC_RENDERER)) +#define EV_ASYNC_RENDERER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_ASYNC_RENDERER, EvAsyncRendererInterface)) + +typedef struct _EvAsyncRenderer EvAsyncRenderer; +typedef struct _EvAsyncRendererInterface EvAsyncRendererInterface; + +struct _EvAsyncRendererInterface +{ + GTypeInterface base_iface; + + void (* render_finished) (EvAsyncRenderer *renderer, + GdkPixbuf *pixbuf); + + void (* render_pixbuf) (EvAsyncRenderer *renderer, + int page, + double scale, + int rotation); +}; + +GType ev_async_renderer_get_type (void); +void ev_async_renderer_render_pixbuf (EvAsyncRenderer *renderer, + int page, + double scale, + int rotation); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-attachment.c b/libdocument/ev-attachment.c new file mode 100644 index 00000000..7f41771e --- /dev/null +++ b/libdocument/ev-attachment.c @@ -0,0 +1,439 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <glib/gi18n-lib.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> +#include "ev-file-helpers.h" +#include "ev-attachment.h" + +enum +{ + PROP_0, + PROP_NAME, + PROP_DESCRIPTION, + PROP_MTIME, + PROP_CTIME, + PROP_SIZE, + PROP_DATA +}; + +struct _EvAttachmentPrivate { + gchar *name; + gchar *description; + GTime mtime; + GTime ctime; + gsize size; + gchar *data; + gchar *mime_type; + + GAppInfo *app; + GFile *tmp_file; +}; + +#define EV_ATTACHMENT_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_ATTACHMENT, EvAttachmentPrivate)) + +G_DEFINE_TYPE (EvAttachment, ev_attachment, G_TYPE_OBJECT) + +GQuark +ev_attachment_error_quark (void) +{ + static GQuark error_quark = 0; + + if (error_quark == 0) + error_quark = + g_quark_from_static_string ("ev-attachment-error-quark"); + + return error_quark; +} + +static void +ev_attachment_finalize (GObject *object) +{ + EvAttachment *attachment = EV_ATTACHMENT (object); + + if (attachment->priv->name) { + g_free (attachment->priv->name); + attachment->priv->name = NULL; + } + + if (attachment->priv->description) { + g_free (attachment->priv->description); + attachment->priv->description = NULL; + } + + if (attachment->priv->data) { + g_free (attachment->priv->data); + attachment->priv->data = NULL; + } + + if (attachment->priv->mime_type) { + g_free (attachment->priv->mime_type); + attachment->priv->mime_type = NULL; + } + + if (attachment->priv->app) { + g_object_unref (attachment->priv->app); + attachment->priv->app = NULL; + } + + if (attachment->priv->tmp_file) { + ev_tmp_file_unlink (attachment->priv->tmp_file); + g_object_unref (attachment->priv->tmp_file); + attachment->priv->tmp_file = NULL; + } + + G_OBJECT_CLASS (ev_attachment_parent_class)->finalize (object); +} + +static void +ev_attachment_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *param_spec) +{ + EvAttachment *attachment = EV_ATTACHMENT (object); + + switch (prop_id) { + case PROP_NAME: + attachment->priv->name = g_value_dup_string (value); + break; + case PROP_DESCRIPTION: + attachment->priv->description = g_value_dup_string (value); + break; + case PROP_MTIME: + attachment->priv->mtime = g_value_get_ulong (value); + break; + case PROP_CTIME: + attachment->priv->ctime = g_value_get_ulong (value); + break; + case PROP_SIZE: + attachment->priv->size = g_value_get_uint (value); + break; + case PROP_DATA: + attachment->priv->data = g_value_get_pointer (value); + attachment->priv->mime_type = g_content_type_guess (attachment->priv->name, + (guchar *) attachment->priv->data, + attachment->priv->size, + NULL); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_attachment_class_init (EvAttachmentClass *klass) +{ + GObjectClass *g_object_class; + + g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->set_property = ev_attachment_set_property; + + g_type_class_add_private (g_object_class, sizeof (EvAttachmentPrivate)); + + /* Properties */ + g_object_class_install_property (g_object_class, + PROP_NAME, + g_param_spec_string ("name", + "Name", + "The attachment name", + NULL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_DESCRIPTION, + g_param_spec_string ("description", + "Description", + "The attachment description", + NULL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_MTIME, + g_param_spec_ulong ("mtime", + "ModifiedTime", + "The attachment modification date", + 0, G_MAXULONG, 0, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_CTIME, + g_param_spec_ulong ("ctime", + "CreationTime", + "The attachment creation date", + 0, G_MAXULONG, 0, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_SIZE, + g_param_spec_uint ("size", + "Size", + "The attachment size", + 0, G_MAXUINT, 0, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_DATA, + g_param_spec_pointer ("data", + "Data", + "The attachment data", + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + + g_object_class->finalize = ev_attachment_finalize; +} + +static void +ev_attachment_init (EvAttachment *attachment) +{ + attachment->priv = EV_ATTACHMENT_GET_PRIVATE (attachment); + + attachment->priv->name = NULL; + attachment->priv->description = NULL; + attachment->priv->data = NULL; + attachment->priv->mime_type = NULL; + + attachment->priv->tmp_file = NULL; +} + +EvAttachment * +ev_attachment_new (const gchar *name, + const gchar *description, + GTime mtime, + GTime ctime, + gsize size, + gpointer data) +{ + EvAttachment *attachment; + + attachment = g_object_new (EV_TYPE_ATTACHMENT, + "name", name, + "description", description, + "mtime", mtime, + "ctime", ctime, + "size", size, + "data", data, + NULL); + + return attachment; +} + +const gchar * +ev_attachment_get_name (EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), NULL); + + return attachment->priv->name; +} + +const gchar * +ev_attachment_get_description (EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), NULL); + + return attachment->priv->description; +} + +GTime +ev_attachment_get_modification_date (EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), 0); + + return attachment->priv->mtime; +} + +GTime +ev_attachment_get_creation_date (EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), 0); + + return attachment->priv->ctime; +} + +const gchar * +ev_attachment_get_mime_type (EvAttachment *attachment) +{ + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), NULL); + + return attachment->priv->mime_type; +} + +gboolean +ev_attachment_save (EvAttachment *attachment, + GFile *file, + GError **error) +{ + GFileOutputStream *output_stream; + GError *ioerror = NULL; + gssize written_bytes; + + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), FALSE); + g_return_val_if_fail (G_IS_FILE (file), FALSE); + + output_stream = g_file_replace (file, NULL, FALSE, 0, NULL, &ioerror); + if (output_stream == NULL) { + char *uri; + + uri = g_file_get_uri (file); + g_set_error (error, + EV_ATTACHMENT_ERROR, + ioerror->code, + _("Couldn't save attachment ā%sā: %s"), + uri, + ioerror->message); + + g_error_free (ioerror); + g_free (uri); + + return FALSE; + } + + written_bytes = g_output_stream_write (G_OUTPUT_STREAM (output_stream), + attachment->priv->data, + attachment->priv->size, + NULL, &ioerror); + if (written_bytes == -1) { + char *uri; + + uri = g_file_get_uri (file); + g_set_error (error, + EV_ATTACHMENT_ERROR, + ioerror->code, + _("Couldn't save attachment ā%sā: %s"), + uri, + ioerror->message); + + g_output_stream_close (G_OUTPUT_STREAM (output_stream), NULL, NULL); + g_error_free (ioerror); + g_free (uri); + + return FALSE; + } + + g_output_stream_close (G_OUTPUT_STREAM (output_stream), NULL, NULL); + + return TRUE; + +} + +static gboolean +ev_attachment_launch_app (EvAttachment *attachment, + GdkScreen *screen, + guint32 timestamp, + GError **error) +{ + gboolean result; + GList *files = NULL; + GAppLaunchContext *context = NULL; + GError *ioerror = NULL; + + g_assert (G_IS_FILE (attachment->priv->tmp_file)); + g_assert (G_IS_APP_INFO (attachment->priv->app)); + + files = g_list_prepend (files, attachment->priv->tmp_file); + + context = G_APP_LAUNCH_CONTEXT (gdk_app_launch_context_new ()); + gdk_app_launch_context_set_screen (GDK_APP_LAUNCH_CONTEXT (context), screen); + gdk_app_launch_context_set_timestamp (GDK_APP_LAUNCH_CONTEXT (context), timestamp); + + result = g_app_info_launch (attachment->priv->app, files, + context, &ioerror); + + if (context) + g_object_unref (context); + + if (!result) { + g_set_error (error, + EV_ATTACHMENT_ERROR, + (gint) result, + _("Couldn't open attachment ā%sā: %s"), + attachment->priv->name, + ioerror->message); + + g_list_free (files); + g_error_free (ioerror); + + return FALSE; + } + + g_list_free (files); + + return TRUE; +} + +gboolean +ev_attachment_open (EvAttachment *attachment, + GdkScreen *screen, + guint32 timestamp, + GError **error) +{ + GAppInfo *app_info; + gboolean retval = FALSE; + + g_return_val_if_fail (EV_IS_ATTACHMENT (attachment), FALSE); + + if (!attachment->priv->app) { + app_info = g_app_info_get_default_for_type (attachment->priv->mime_type, FALSE); + attachment->priv->app = app_info; + } + + if (!attachment->priv->app) { + g_set_error (error, + EV_ATTACHMENT_ERROR, + 0, + _("Couldn't open attachment ā%sā"), + attachment->priv->name); + + return FALSE; + } + + if (attachment->priv->tmp_file) { + retval = ev_attachment_launch_app (attachment, screen, + timestamp, error); + } else { + char *template; + GFile *file; + + /* FIXMEchpe: convert to filename encoding first! */ + template = g_strdup_printf ("%s.XXXXXX", ev_attachment_get_name (attachment)); + file = ev_mkstemp_file (template, error); + g_free (template); + + if (file != NULL && ev_attachment_save (attachment, file, error)) { + if (attachment->priv->tmp_file) + g_object_unref (attachment->priv->tmp_file); + attachment->priv->tmp_file = g_object_ref (file); + + retval = ev_attachment_launch_app (attachment, screen, + timestamp, error); + } + + g_object_unref (file); + } + + return retval; +} + diff --git a/libdocument/ev-attachment.h b/libdocument/ev-attachment.h new file mode 100644 index 00000000..79ec1a8b --- /dev/null +++ b/libdocument/ev-attachment.h @@ -0,0 +1,79 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef __EV_ATTACHMENT_H__ +#define __EV_ATTACHMENT_H__ + +#include <glib-object.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + +typedef struct _EvAttachment EvAttachment; +typedef struct _EvAttachmentClass EvAttachmentClass; +typedef struct _EvAttachmentPrivate EvAttachmentPrivate; + +#define EV_TYPE_ATTACHMENT (ev_attachment_get_type()) +#define EV_ATTACHMENT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ATTACHMENT, EvAttachment)) +#define EV_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ATTACHMENT, EvAttachmentClass)) +#define EV_IS_ATTACHMENT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ATTACHMENT)) +#define EV_IS_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ATTACHMENT)) +#define EV_ATTACHMENT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ATTACHMENT, EvAttachmentClass)) + +#define EV_ATTACHMENT_ERROR (ev_attachment_error_quark ()) + +struct _EvAttachment { + GObject base_instance; + + EvAttachmentPrivate *priv; +}; + +struct _EvAttachmentClass { + GObjectClass base_class; +}; + +GType ev_attachment_get_type (void) G_GNUC_CONST; +GQuark ev_attachment_error_quark (void) G_GNUC_CONST; +EvAttachment *ev_attachment_new (const gchar *name, + const gchar *description, + GTime mtime, + GTime ctime, + gsize size, + gpointer data); + +const gchar *ev_attachment_get_name (EvAttachment *attachment); +const gchar *ev_attachment_get_description (EvAttachment *attachment); +GTime ev_attachment_get_modification_date (EvAttachment *attachment); +GTime ev_attachment_get_creation_date (EvAttachment *attachment); +const gchar *ev_attachment_get_mime_type (EvAttachment *attachment); +gboolean ev_attachment_save (EvAttachment *attachment, + GFile *file, + GError **error); +gboolean ev_attachment_open (EvAttachment *attachment, + GdkScreen *screen, + guint32 timestamp, + GError **error); + +G_END_DECLS + +#endif /* __EV_ATTACHMENT_H__ */ diff --git a/libdocument/ev-backends-manager.c b/libdocument/ev-backends-manager.c new file mode 100644 index 00000000..f0b1d902 --- /dev/null +++ b/libdocument/ev-backends-manager.c @@ -0,0 +1,333 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <glib/gstdio.h> + +#include "ev-module.h" +#include "ev-backends-manager.h" + +static GList *ev_backends_list = NULL; + +typedef struct _EvBackendInfo EvBackendInfo; +struct _EvBackendInfo { + gchar *module_name; + GTypeModule *module; + gboolean resident; + + GType type_id; + + gchar *type_desc; + gchar **mime_types; +}; + +#define EV_BACKENDS_GROUP "Evince Backend" +#define EV_BACKENDS_EXTENSION ".evince-backend" + +static gchar *backendsdir = NULL; + +static const gchar * +backends_dir (void) +{ + if (!backendsdir) { +#ifdef G_OS_WIN32 + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + backendsdir = g_build_filename (dir, "lib", "evince", + EV_BACKENDSBINARYVERSION, + "backends", NULL); + g_free (dir); +#else + backendsdir = g_strdup (EV_BACKENDSDIR); +#endif + } + + return backendsdir; +} + +static void +ev_backend_info_free (EvBackendInfo *info) +{ + g_free (info->module_name); + g_free (info->type_desc); + g_strfreev (info->mime_types); + g_free (info); +} + +static EvBackendInfo * +ev_backends_manager_load_backend (const gchar *file) +{ + EvBackendInfo *info; + GKeyFile *backend_file = NULL; + GError *error = NULL; + + backend_file = g_key_file_new (); + if (!g_key_file_load_from_file (backend_file, file, G_KEY_FILE_NONE, &error)) { + g_warning ("Error opening backend file %s: %s", + file, error->message); + g_error_free (error); + g_key_file_free (backend_file); + + return NULL; + } + + info = g_new0 (EvBackendInfo, 1); + info->module_name = g_key_file_get_string (backend_file, EV_BACKENDS_GROUP, + "Module", NULL); + if (!info->module_name) { + g_warning ("Bad evince backend file %s: Could not find 'Module'", + file); + ev_backend_info_free (info); + g_key_file_free (backend_file); + + return NULL; + } + + info->resident = g_key_file_get_boolean (backend_file, EV_BACKENDS_GROUP, + "Resident", NULL); + + info->type_desc = g_key_file_get_locale_string (backend_file, EV_BACKENDS_GROUP, + "TypeDescription", NULL, NULL); + if (!info->type_desc) { + g_warning ("Bad evince backend file %s: Could not find 'TypeDescription'", + file); + ev_backend_info_free (info); + g_key_file_free (backend_file); + + return NULL; + } + + info->mime_types = g_key_file_get_string_list (backend_file, EV_BACKENDS_GROUP, + "MimeType", NULL, NULL); + if (!info->mime_types) { + g_warning ("Bad evince backend file %s: Could not find 'MimeType'", + file); + ev_backend_info_free (info); + g_key_file_free (backend_file); + + return NULL; + } + + g_key_file_free (backend_file); + + return info; +} + +static gboolean +ev_backends_manager_load (void) +{ + GDir *dir; + const gchar *dirent; + GError *error = NULL; + + dir = g_dir_open (backends_dir(), 0, &error); + if (!dir) { + g_warning ("%s", error->message); + g_error_free (error); + + return FALSE; + } + + while ((dirent = g_dir_read_name (dir))) { + EvBackendInfo *info; + gchar *file; + + if (!g_str_has_suffix (dirent, EV_BACKENDS_EXTENSION)) + continue; + + file = g_build_filename (backends_dir(), dirent, NULL); + info = ev_backends_manager_load_backend (file); + g_free (file); + + if (!info) + continue; + + ev_backends_list = g_list_prepend (ev_backends_list, info); + } + + g_dir_close (dir); + + return ev_backends_list != NULL; +} + +/* + * _ev_backends_manager_init: + * + * Initializes the evince backends manager. + * + * Returns: %TRUE if there were any backends found; %FALSE otherwise + */ +gboolean +_ev_backends_manager_init (void) +{ + if (ev_backends_list) + return TRUE; + + return ev_backends_manager_load (); +} + +/* + * _ev_backends_manager_shutdown: + * + * Shuts the evince backends manager down. + */ +void +_ev_backends_manager_shutdown (void) +{ + g_list_foreach (ev_backends_list, (GFunc)ev_backend_info_free, NULL); + g_list_free (ev_backends_list); + ev_backends_list = NULL; + + g_free (backendsdir); +} + +static EvBackendInfo * +ev_backends_manager_get_backend_info (const gchar *mime_type) +{ + GList *l; + + for (l = ev_backends_list; l; l = g_list_next (l)) { + EvBackendInfo *info; + gint i = 0; + const char *mime; + + info = (EvBackendInfo *)l->data; + + while ((mime = info->mime_types[i++])) { + if (g_ascii_strcasecmp (mime, mime_type) == 0) + return info; + } + } + + return NULL; +} + +EvDocument * +ev_backends_manager_get_document (const gchar *mime_type) +{ + EvDocument *document; + EvBackendInfo *info; + + info = ev_backends_manager_get_backend_info (mime_type); + if (!info) + return NULL; + + if (!info->module) { + gchar *path; + + path = g_module_build_path (backends_dir(), info->module_name); + info->module = G_TYPE_MODULE (ev_module_new (path, info->resident)); + g_free (path); + } + + if (!g_type_module_use (info->module)) { + g_warning ("Cannot load backend '%s' since file '%s' cannot be read.", + info->module_name, + ev_module_get_path (EV_MODULE (info->module))); + g_object_unref (G_OBJECT (info->module)); + info->module = NULL; + + return NULL; + } + + document = EV_DOCUMENT (ev_module_new_object (EV_MODULE (info->module))); + g_type_module_unuse (info->module); + + return document; +} + +static EvBackendInfo * +get_document_backend_info (EvDocument *document) +{ + GList *l; + + for (l = ev_backends_list; l; l = g_list_next (l)) { + EvBackendInfo *info; + GType type_id; + + info = (EvBackendInfo *)l->data; + + if (!info->module) + continue; + + type_id = ev_module_get_object_type (EV_MODULE (info->module)); + + if (G_TYPE_CHECK_INSTANCE_TYPE (document, type_id)) { + return info; + } + } + + return NULL; +} + +const gchar * +ev_backends_manager_get_document_module_name (EvDocument *document) +{ + EvBackendInfo *info; + + info = get_document_backend_info (document); + return info ? info->module_name : NULL; +} + +static EvTypeInfo * +ev_type_info_new (const gchar *desc, const gchar **mime_types) +{ + EvTypeInfo *info; + + info = g_new (EvTypeInfo, 1); + + info->desc = desc; + info->mime_types = mime_types; + + return info; +} + +EvTypeInfo * +ev_backends_manager_get_document_type_info (EvDocument *document) +{ + EvBackendInfo *info; + + info = get_document_backend_info (document); + return info ? + ev_type_info_new (info->type_desc, + (const gchar **)info->mime_types) + : NULL; +} + +GList * +ev_backends_manager_get_all_types_info (void) +{ + GList *l; + GList *retval = NULL; + + for (l = ev_backends_list; l; l = g_list_next (l)) { + EvBackendInfo *info; + EvTypeInfo *type_info; + + info = (EvBackendInfo *)l->data; + + type_info = ev_type_info_new (info->type_desc, + (const gchar **)info->mime_types); + retval = g_list_prepend (retval, type_info); + } + + return retval; +} diff --git a/libdocument/ev-backends-manager.h b/libdocument/ev-backends-manager.h new file mode 100644 index 00000000..b2d7d245 --- /dev/null +++ b/libdocument/ev-backends-manager.h @@ -0,0 +1,48 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_BACKENDS_MANAGER +#define EV_BACKENDS_MANAGER + +#include <glib.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +typedef struct _EvTypeInfo { + const gchar *desc; + const gchar **mime_types; +} EvTypeInfo; + +gboolean _ev_backends_manager_init (void); +void _ev_backends_manager_shutdown (void); + +EvDocument *ev_backends_manager_get_document (const gchar *mime_type); +const gchar *ev_backends_manager_get_document_module_name (EvDocument *document); +EvTypeInfo *ev_backends_manager_get_document_type_info (EvDocument *document); +GList *ev_backends_manager_get_all_types_info (void); + +G_END_DECLS + +#endif /* EV_BACKENDS_MANAGER */ diff --git a/libdocument/ev-debug.c b/libdocument/ev-debug.c new file mode 100644 index 00000000..4750c9d3 --- /dev/null +++ b/libdocument/ev-debug.c @@ -0,0 +1,177 @@ +/* + * ev-debug.c + * This file is part of Evince + * + * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence + * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi + * Copyright (C) 2002 - 2005 Paolo Maggi + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* + * Modified by the gedit Team, 1998-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id: gedit-debug.c 4809 2006-04-08 14:46:31Z pborelli $ + */ + +/* Modified by Evince Team */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> + +#include "ev-debug.h" + +#ifdef EV_ENABLE_DEBUG +static EvDebugSection ev_debug = EV_NO_DEBUG; +static EvProfileSection ev_profile = EV_NO_PROFILE; + +static GHashTable *timers = NULL; + +static void +debug_init () +{ + if (g_getenv ("EV_DEBUG") != NULL) { + /* enable all debugging */ + ev_debug = ~EV_NO_DEBUG; + return; + } + + if (g_getenv ("EV_DEBUG_JOBS") != NULL) + ev_debug |= EV_DEBUG_JOBS; +} + +static void +profile_init () +{ + if (g_getenv ("EV_PROFILE") != NULL) { + /* enable all profiling */ + ev_profile = ~EV_NO_PROFILE; + } else { + if (g_getenv ("EV_PROFILE_JOBS") != NULL) + ev_profile |= EV_PROFILE_JOBS; + } + + if (ev_profile) { + timers = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) g_timer_destroy); + } +} + +void +_ev_debug_init () +{ + debug_init (); + profile_init (); +} + +void +_ev_debug_shutdown () +{ + if (timers) { + g_hash_table_destroy (timers); + timers = NULL; + } +} + +void +ev_debug_message (EvDebugSection section, + const gchar *file, + gint line, + const gchar *function, + const gchar *format, ...) +{ + if (G_UNLIKELY (ev_debug & section)) { + gchar *msg = NULL; + + if (format) { + va_list args; + + va_start (args, format); + msg = g_strdup_vprintf (format, args); + va_end (args); + } + + g_print ("%s:%d (%s) %s\n", file, line, function, msg ? msg : ""); + + fflush (stdout); + + g_free (msg); + } +} + +void +ev_profiler_start (EvProfileSection section, + const gchar *format, ...) +{ + if (G_UNLIKELY (ev_profile & section)) { + GTimer *timer; + gchar *name; + va_list args; + + if (!format) + return; + + va_start (args, format); + name = g_strdup_vprintf (format, args); + va_end (args); + + timer = g_hash_table_lookup (timers, name); + if (!timer) { + timer = g_timer_new (); + g_hash_table_insert (timers, g_strdup (name), timer); + } else { + g_timer_start (timer); + } + } +} + +void +ev_profiler_stop (EvProfileSection section, + const gchar *format, ...) +{ + if (G_UNLIKELY (ev_profile & section)) { + GTimer *timer; + gchar *name; + va_list args; + gdouble seconds; + + if (!format) + return; + + va_start (args, format); + name = g_strdup_vprintf (format, args); + va_end (args); + + timer = g_hash_table_lookup (timers, name); + if (!timer) + return; + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_print ("[ %s ] %f s elapsed\n", name, seconds); + fflush (stdout); + } +} + +#endif /* EV_ENABLE_DEBUG */ diff --git a/libdocument/ev-debug.h b/libdocument/ev-debug.h new file mode 100644 index 00000000..cf252431 --- /dev/null +++ b/libdocument/ev-debug.h @@ -0,0 +1,106 @@ +/* + * ev-debug.h + * This file is part of Evince + * + * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence + * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi + * Copyright (C) 2002 - 2005 Paolo Maggi + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* + * Modified by the gedit Team, 1998-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id: gedit-debug.h 4809 2006-04-08 14:46:31Z pborelli $ + */ + +/* Modified by Evince Team */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef __EV_DEBUG_H__ +#define __EV_DEBUG_H__ + +#include <glib-object.h> + +#define EV_GET_TYPE_NAME(instance) g_type_name_from_instance ((gpointer)instance) + +#ifndef EV_ENABLE_DEBUG + +#define _ev_debug_init() +#define _ev_debug_shutdown() +#if defined(G_HAVE_GNUC_VARARGS) +#define ev_debug_message(section, format, args...) G_STMT_START { } G_STMT_END +#define ev_profiler_start(format, args...) G_STMT_START { } G_STMT_END +#define ev_profiler_stop(format, args...) G_STMT_START { } G_STMT_END +#elif defined(G_HAVE_ISO_VARARGS) +#define ev_debug_message(...) G_STMT_START { } G_STMT_END +#define ev_profiler_start(...) G_STMT_START { } G_STMT_END +#define ev_profiler_stop(...) G_STMT_START { } G_STMT_END +#else /* no varargs macros */ +static void ev_debug_message(EvDebugSection section, const gchar *file, gint line, const gchar *function, const gchar *format, ...) {} +static void ev_profiler_start(EvProfileSection section, const gchar *format, ...) {} +static void ev_profiler_stop(EvProfileSection section, const gchar *format, ...) {} +#endif + +#else /* ENABLE_DEBUG */ + +G_BEGIN_DECLS + +/* + * Set an environmental var of the same name to turn on + * debugging output. Setting EV_DEBUG will turn on all + * sections. + */ +typedef enum { + EV_NO_DEBUG = 0, + EV_DEBUG_JOBS = 1 << 0 +} EvDebugSection; + +#define DEBUG_JOBS EV_DEBUG_JOBS, __FILE__, __LINE__, G_STRFUNC + +/* + * Set an environmental var of the same name to turn on + * profiling. Setting EV_PROFILE will turn on all + * sections. + */ +typedef enum { + EV_NO_PROFILE = 0, + EV_PROFILE_JOBS = 1 << 0 +} EvProfileSection; + +void _ev_debug_init (void); +void _ev_debug_shutdown (void); + +void ev_debug_message (EvDebugSection section, + const gchar *file, + gint line, + const gchar *function, + const gchar *format, ...) G_GNUC_PRINTF(5, 6); +void ev_profiler_start (EvProfileSection section, + const gchar *format, ...) G_GNUC_PRINTF(2, 3); +void ev_profiler_stop (EvProfileSection section, + const gchar *format, ...) G_GNUC_PRINTF(2, 3); + +G_END_DECLS + +#endif /* EV_ENABLE_DEBUG */ +#endif /* __EV_DEBUG_H__ */ diff --git a/libdocument/ev-document-annotations.c b/libdocument/ev-document-annotations.c new file mode 100644 index 00000000..f153f3eb --- /dev/null +++ b/libdocument/ev-document-annotations.c @@ -0,0 +1,75 @@ +/* ev-document-annotations.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "ev-document-annotations.h" + +G_DEFINE_INTERFACE (EvDocumentAnnotations, ev_document_annotations, 0) + +static void +ev_document_annotations_default_init (EvDocumentAnnotationsInterface *klass) +{ +} + +EvMappingList * +ev_document_annotations_get_annotations (EvDocumentAnnotations *document_annots, + EvPage *page) +{ + EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots); + + return iface->get_annotations (document_annots, page); +} + +gboolean +ev_document_annotations_document_is_modified (EvDocumentAnnotations *document_annots) +{ + EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots); + + return (iface->document_is_modified) ? iface->document_is_modified (document_annots) : FALSE; +} + +void +ev_document_annotations_save_annotation (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvAnnotationsSaveMask mask) +{ + EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots); + + iface->save_annotation (document_annots, annot, mask); +} + +void +ev_document_annotations_add_annotation (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvRectangle *rect) +{ + EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots); + + if (iface->add_annotation) + iface->add_annotation (document_annots, annot, rect); +} + +gboolean +ev_document_annotations_can_add_annotation (EvDocumentAnnotations *document_annots) +{ + EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots); + + return iface->add_annotation != NULL; +} diff --git a/libdocument/ev-document-annotations.h b/libdocument/ev-document-annotations.h new file mode 100644 index 00000000..55f7c0c1 --- /dev/null +++ b/libdocument/ev-document-annotations.h @@ -0,0 +1,99 @@ +/* ev-document-annotations.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_ANNOTATIONS_H +#define EV_DOCUMENT_ANNOTATIONS_H + +#include <glib-object.h> + +#include "ev-document.h" +#include "ev-annotation.h" +#include "ev-mapping-list.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_ANNOTATIONS (ev_document_annotations_get_type ()) +#define EV_DOCUMENT_ANNOTATIONS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_ANNOTATIONS, EvDocumentAnnotations)) +#define EV_DOCUMENT_ANNOTATIONS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_ANNOTATIONS, EvDocumentAnnotationsInterface)) +#define EV_IS_DOCUMENT_ANNOTATIONS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_ANNOTATIONS)) +#define EV_IS_DOCUMENT_ANNOTATIONS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_ANNOTATIONS)) +#define EV_DOCUMENT_ANNOTATIONS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_ANNOTATIONS, EvDocumentAnnotationsInterface)) + +typedef enum { + EV_ANNOTATIONS_SAVE_NONE = 0, + EV_ANNOTATIONS_SAVE_CONTENTS = 1 << 0, + EV_ANNOTATIONS_SAVE_COLOR = 1 << 1, + + /* Markup Annotations */ + EV_ANNOTATIONS_SAVE_LABEL = 1 << 2, + EV_ANNOTATIONS_SAVE_OPACITY = 1 << 3, + EV_ANNOTATIONS_SAVE_POPUP_RECT = 1 << 4, + EV_ANNOTATIONS_SAVE_POPUP_IS_OPEN = 1 << 5, + + /* Text Annotations */ + EV_ANNOTATIONS_SAVE_TEXT_IS_OPEN = 1 << 6, + EV_ANNOTATIONS_SAVE_TEXT_ICON = 1 << 7, + + /* Attachment Annotations */ + EV_ANNOTATIONS_SAVE_ATTACHMENT = 1 << 8, + + /* Save all */ + EV_ANNOTATIONS_SAVE_ALL = (1 << 9) - 1 +} EvAnnotationsSaveMask; + +typedef struct _EvDocumentAnnotations EvDocumentAnnotations; +typedef struct _EvDocumentAnnotationsInterface EvDocumentAnnotationsInterface; + +struct _EvDocumentAnnotationsInterface +{ + GTypeInterface base_iface; + + /* Methods */ + EvMappingList *(* get_annotations) (EvDocumentAnnotations *document_annots, + EvPage *page); + gboolean (* document_is_modified) (EvDocumentAnnotations *document_annots); + void (* add_annotation) (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvRectangle *rect); + void (* save_annotation) (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvAnnotationsSaveMask mask); +}; + +GType ev_document_annotations_get_type (void) G_GNUC_CONST; +EvMappingList *ev_document_annotations_get_annotations (EvDocumentAnnotations *document_annots, + EvPage *page); +gboolean ev_document_annotations_document_is_modified (EvDocumentAnnotations *document_annots); +void ev_document_annotations_add_annotation (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvRectangle *rect); +void ev_document_annotations_save_annotation (EvDocumentAnnotations *document_annots, + EvAnnotation *annot, + EvAnnotationsSaveMask mask); +gboolean ev_document_annotations_can_add_annotation (EvDocumentAnnotations *document_annots); + +G_END_DECLS + +#endif /* EV_DOCUMENT_ANNOTATIONS_H */ + diff --git a/libdocument/ev-document-attachments.c b/libdocument/ev-document-attachments.c new file mode 100644 index 00000000..bb3cb2ae --- /dev/null +++ b/libdocument/ev-document-attachments.c @@ -0,0 +1,49 @@ +/* ev-document-attachments.c + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-attachments.h" +#include "ev-document.h" + +G_DEFINE_INTERFACE (EvDocumentAttachments, ev_document_attachments, 0) + +static void +ev_document_attachments_default_init (EvDocumentAttachmentsInterface *klass) +{ +} + +gboolean +ev_document_attachments_has_attachments (EvDocumentAttachments *document_attachments) +{ + EvDocumentAttachmentsInterface *iface = EV_DOCUMENT_ATTACHMENTS_GET_IFACE (document_attachments); + + return iface->has_attachments (document_attachments); +} + +GList * +ev_document_attachments_get_attachments (EvDocumentAttachments *document_attachments) +{ + EvDocumentAttachmentsInterface *iface = EV_DOCUMENT_ATTACHMENTS_GET_IFACE (document_attachments); + + return iface->get_attachments (document_attachments); +} + + diff --git a/libdocument/ev-document-attachments.h b/libdocument/ev-document-attachments.h new file mode 100644 index 00000000..4b491495 --- /dev/null +++ b/libdocument/ev-document-attachments.h @@ -0,0 +1,59 @@ +/* ev-document-attachments.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_ATTACHMENTS_H +#define EV_DOCUMENT_ATTACHMENTS_H + +#include <glib-object.h> +#include <glib.h> + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_ATTACHMENTS (ev_document_attachments_get_type ()) +#define EV_DOCUMENT_ATTACHMENTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_ATTACHMENTS, EvDocumentAttachments)) +#define EV_DOCUMENT_ATTACHMENTS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_ATTACHMENTS, EvDocumentAttachmentsInterface)) +#define EV_IS_DOCUMENT_ATTACHMENTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_ATTACHMENTS)) +#define EV_IS_DOCUMENT_ATTACHMENTS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_ATTACHMENTS)) +#define EV_DOCUMENT_ATTACHMENTS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_ATTACHMENTS, EvDocumentAttachmentsInterface)) + +typedef struct _EvDocumentAttachments EvDocumentAttachments; +typedef struct _EvDocumentAttachmentsInterface EvDocumentAttachmentsInterface; + +struct _EvDocumentAttachmentsInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* has_attachments) (EvDocumentAttachments *document_attachments); + GList *(* get_attachments) (EvDocumentAttachments *document_attachments); +}; + +GType ev_document_attachments_get_type (void) G_GNUC_CONST; + +gboolean ev_document_attachments_has_attachments (EvDocumentAttachments *document_attachments); +GList *ev_document_attachments_get_attachments (EvDocumentAttachments *document_attachments); + +G_END_DECLS + +#endif /* EV_DOCUMENT_ATTACHMENTS_H */ diff --git a/libdocument/ev-document-factory.c b/libdocument/ev-document-factory.c new file mode 100644 index 00000000..0ace5ec8 --- /dev/null +++ b/libdocument/ev-document-factory.c @@ -0,0 +1,397 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#include <gio/gio.h> +#include <glib/gstdio.h> +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> + +#include "ev-backends-manager.h" +#include "ev-document-factory.h" +#include "ev-file-helpers.h" + +#ifdef ENABLE_PIXBUF +static GList* +gdk_pixbuf_mime_type_list () +{ + GSList *formats, *list; + GList *result = NULL; + + formats = gdk_pixbuf_get_formats (); + for (list = formats; list != NULL; list = list->next) { + GdkPixbufFormat *format = list->data; + gchar **mime_types; + + if (gdk_pixbuf_format_is_disabled (format)) + continue; + + mime_types = gdk_pixbuf_format_get_mime_types (format); + result = g_list_prepend (result, mime_types); + } + g_slist_free (formats); + + return result; +} + +/* Would be nice to have this in gdk-pixbuf */ +static gboolean +mime_type_supported_by_gdk_pixbuf (const gchar *mime_type) +{ + GList *mime_types; + GList *list; + gboolean retval = FALSE; + + mime_types = gdk_pixbuf_mime_type_list (); + for (list = mime_types; list; list = list->next) { + gchar **mtypes = (gchar **)list->data; + const gchar *mtype; + gint i = 0; + + while ((mtype = mtypes[i++])) { + if (strcmp (mtype, mime_type) == 0) { + retval = TRUE; + break; + } + } + } + + g_list_foreach (mime_types, (GFunc)g_strfreev, NULL); + g_list_free (mime_types); + + return retval; +} +#endif /* ENABLE_PIXBUF */ + +static EvCompressionType +get_compression_from_mime_type (const gchar *mime_type) +{ + gchar type[3]; + gchar *p; + + if (!(p = g_strrstr (mime_type, "/"))) + return EV_COMPRESSION_NONE; + + if (sscanf (++p, "x-%2s%*s", type) == 1) { + if (g_ascii_strcasecmp (type, "gz") == 0) + return EV_COMPRESSION_GZIP; + else if (g_ascii_strcasecmp (type, "bz") == 0) + return EV_COMPRESSION_BZIP2; + } + + return EV_COMPRESSION_NONE; +} + + +/* + * get_document_from_uri: + * @uri: the document URI + * @fast: whether to use fast MIME type detection + * @compression: a location to store the document's compression type + * @error: a #GError location to store an error, or %NULL + * + * Creates a #EvDocument instance for the document at @uri, using either + * fast or slow MIME type detection. If a document could be created, + * @compression is filled in with the document's compression type. + * On error, %NULL is returned and @error filled in. + * + * Returns: a new #EvDocument instance, or %NULL on error with @error filled in + */ +static EvDocument * +get_document_from_uri (const char *uri, + gboolean fast, + EvCompressionType *compression, + GError **error) +{ + EvDocument *document = NULL; + gchar *mime_type = NULL; + GError *err = NULL; + + *compression = EV_COMPRESSION_NONE; + + mime_type = ev_file_get_mime_type (uri, fast, &err); + + if (mime_type == NULL) { + g_free (mime_type); + + if (err == NULL) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Unknown MIME Type")); + } else { + g_propagate_error (error, err); + } + + return NULL; + } + + document = ev_backends_manager_get_document (mime_type); + +#ifdef ENABLE_PIXBUF + if (!document && mime_type_supported_by_gdk_pixbuf (mime_type)) + document = ev_backends_manager_get_document ("image/*"); +#endif /* ENABLE_PIXBUF */ + + if (document == NULL) { + gchar *content_type, *mime_desc = NULL; + + content_type = g_content_type_from_mime_type (mime_type); + if (content_type) + mime_desc = g_content_type_get_description (content_type); + + g_set_error (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("File type %s (%s) is not supported"), + mime_desc ? mime_desc : "-", mime_type); + g_free (mime_desc); + g_free (content_type); + g_free (mime_type); + + return NULL; + } + + *compression = get_compression_from_mime_type (mime_type); + + g_free (mime_type); + + return document; +} + +static void +free_uncompressed_uri (gchar *uri_unc) +{ + if (!uri_unc) + return; + + ev_tmp_uri_unlink (uri_unc); + g_free (uri_unc); +} + +/** + * ev_document_factory_get_document: + * @uri: an URI + * @error: a #GError location to store an error, or %NULL + * + * Creates a #EvDocument for the document at @uri; or, if no backend handling + * the document's type is found, or an error occurred on opening the document, + * returns %NULL and fills in @error. + * If the document is encrypted, it is returned but also @error is set to + * %EV_DOCUMENT_ERROR_ENCRYPTED. + * + * Returns: a new #EvDocument, or %NULL. + */ +EvDocument * +ev_document_factory_get_document (const char *uri, GError **error) +{ + EvDocument *document; + int result; + EvCompressionType compression; + gchar *uri_unc = NULL; + GError *err = NULL; + + g_return_val_if_fail (uri != NULL, NULL); + + document = get_document_from_uri (uri, TRUE, &compression, &err); + g_assert (document != NULL || err != NULL); + + if (document != NULL) { + uri_unc = ev_file_uncompress (uri, compression, &err); + if (uri_unc) { + g_object_set_data_full (G_OBJECT (document), + "uri-uncompressed", + uri_unc, + (GDestroyNotify) free_uncompressed_uri); + } else if (err != NULL) { + /* Error uncompressing file */ + g_object_unref (document); + g_propagate_error (error, err); + return NULL; + } + + result = ev_document_load (document, uri_unc ? uri_unc : uri, &err); + + if (result == FALSE || err) { + if (err && + g_error_matches (err, EV_DOCUMENT_ERROR, EV_DOCUMENT_ERROR_ENCRYPTED)) { + g_propagate_error (error, err); + return document; + } + /* else fall through to slow mime code section below */ + } else { + return document; + } + + g_object_unref (document); + document = NULL; + } + + /* Try again with slow mime detection */ + g_clear_error (&err); + uri_unc = NULL; + + document = get_document_from_uri (uri, FALSE, &compression, &err); + if (document == NULL) { + g_assert (err != NULL); + g_propagate_error (error, err); + return NULL; + } + + uri_unc = ev_file_uncompress (uri, compression, &err); + if (uri_unc) { + g_object_set_data_full (G_OBJECT (document), + "uri-uncompressed", + uri_unc, + (GDestroyNotify) free_uncompressed_uri); + } else if (err != NULL) { + /* Error uncompressing file */ + g_propagate_error (error, err); + + g_object_unref (document); + return NULL; + } + + result = ev_document_load (document, uri_unc ? uri_unc : uri, &err); + if (result == FALSE) { + if (err == NULL) { + /* FIXME: this really should not happen; the backend should + * always return a meaningful error. + */ + g_set_error_literal (&err, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Unknown MIME Type")); + } else if (g_error_matches (err, EV_DOCUMENT_ERROR, EV_DOCUMENT_ERROR_ENCRYPTED)) { + g_propagate_error (error, err); + return document; + } + + g_object_unref (document); + document = NULL; + + g_propagate_error (error, err); + } + + return document; +} + +static void +file_filter_add_mime_types (EvTypeInfo *info, GtkFileFilter *filter) +{ + const gchar *mime_type; + gint i = 0; + +#ifdef ENABLE_PIXBUF + if (g_ascii_strcasecmp (info->mime_types[0], "image/*") == 0) { + GList *pixbuf_types, *l; + + pixbuf_types = gdk_pixbuf_mime_type_list (); + for (l = pixbuf_types; l; l = g_list_next (l)) { + gchar **mime_types = (gchar **)l->data; + gint j = 0; + + while ((mime_type = mime_types[j++])) + gtk_file_filter_add_mime_type (filter, mime_type); + + g_strfreev (mime_types); + } + g_list_free (pixbuf_types); + + return; + } +#endif /* ENABLE_PIXBUF */ + + while ((mime_type = info->mime_types[i++])) + gtk_file_filter_add_mime_type (filter, mime_type); +} + +/** + * ev_document_factory_add_filters: + * @chooser: a #GtkFileChooser + * @document: a #EvDocument, or %NULL + * + * Adds some file filters to @chooser. + + * Always add a "All documents" format. + * + * If @document is not %NULL, adds a #GtkFileFilter for @document's MIME type. + * + * If @document is %NULL, adds a #GtkFileFilter for each document type that evince + * can handle. + */ +void +ev_document_factory_add_filters (GtkWidget *chooser, EvDocument *document) +{ + GList *all_types; + GtkFileFilter *filter; + GtkFileFilter *default_filter; + GtkFileFilter *document_filter; + + g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser)); + g_return_if_fail (document == NULL || EV_IS_DOCUMENT (document)); + + all_types = ev_backends_manager_get_all_types_info (); + + default_filter = document_filter = filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("All Documents")); + g_list_foreach (all_types, (GFunc)file_filter_add_mime_types, filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); + + if (document) { + EvTypeInfo *info; + + info = ev_backends_manager_get_document_type_info (document); + default_filter = filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, info->desc); + file_filter_add_mime_types (info, filter); + g_free (info); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); + } else { + GList *l; + + for (l = all_types; l; l = g_list_next (l)){ + EvTypeInfo *info; + + info = (EvTypeInfo *)l->data; + + default_filter = filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, info->desc); + file_filter_add_mime_types (info, filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); + } + } + + g_list_foreach (all_types, (GFunc)g_free, NULL); + g_list_free (all_types); + + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("All Files")); + gtk_file_filter_add_pattern (filter, "*"); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); + + gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), + document == NULL ? document_filter : default_filter); +} diff --git a/libdocument/ev-document-factory.h b/libdocument/ev-document-factory.h new file mode 100644 index 00000000..501eb2f3 --- /dev/null +++ b/libdocument/ev-document-factory.h @@ -0,0 +1,39 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005, Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_FACTORY_H +#define EV_DOCUMENT_FACTORY_H + +#include <gtk/gtk.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +EvDocument* ev_document_factory_get_document (const char *uri, GError **error); +void ev_document_factory_add_filters (GtkWidget *chooser, EvDocument *document); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-document-find.c b/libdocument/ev-document-find.c new file mode 100644 index 00000000..0b5fac01 --- /dev/null +++ b/libdocument/ev-document-find.c @@ -0,0 +1,42 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include "ev-document-find.h" + +G_DEFINE_INTERFACE (EvDocumentFind, ev_document_find, 0) + +static void +ev_document_find_default_init (EvDocumentFindInterface *klass) +{ +} + +GList * +ev_document_find_find_text (EvDocumentFind *document_find, + EvPage *page, + const gchar *text, + gboolean case_sensitive) +{ + EvDocumentFindInterface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); + + return iface->find_text (document_find, page, text, case_sensitive); +} + diff --git a/libdocument/ev-document-find.h b/libdocument/ev-document-find.h new file mode 100644 index 00000000..dcc3438e --- /dev/null +++ b/libdocument/ev-document-find.h @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_FIND_H +#define EV_DOCUMENT_FIND_H + +#include <glib-object.h> +#include <glib.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_FIND (ev_document_find_get_type ()) +#define EV_DOCUMENT_FIND(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_FIND, EvDocumentFind)) +#define EV_DOCUMENT_FIND_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_FIND, EvDocumentFindInterface)) +#define EV_IS_DOCUMENT_FIND(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_FIND)) +#define EV_IS_DOCUMENT_FIND_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_FIND)) +#define EV_DOCUMENT_FIND_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_FIND, EvDocumentFindInterface)) + +typedef struct _EvDocumentFind EvDocumentFind; +typedef struct _EvDocumentFindInterface EvDocumentFindInterface; + +struct _EvDocumentFindInterface +{ + GTypeInterface base_iface; + + /* Methods */ + GList *(* find_text) (EvDocumentFind *document_find, + EvPage *page, + const gchar *text, + gboolean case_sensitive); +}; + +GType ev_document_find_get_type (void) G_GNUC_CONST; +GList *ev_document_find_find_text (EvDocumentFind *document_find, + EvPage *page, + const gchar *text, + gboolean case_sensitive); + +G_END_DECLS + +#endif /* EV_DOCUMENT_FIND_H */ diff --git a/libdocument/ev-document-fonts.c b/libdocument/ev-document-fonts.c new file mode 100644 index 00000000..ca019055 --- /dev/null +++ b/libdocument/ev-document-fonts.c @@ -0,0 +1,59 @@ +/* ev-document-fonts.h + * this file is part of evince, a mate document_fonts viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Marco Pesenti Gritti <mpg@redhat.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-fonts.h" + +G_DEFINE_INTERFACE (EvDocumentFonts, ev_document_fonts, 0) + +static void +ev_document_fonts_default_init (EvDocumentFontsInterface *klass) +{ +} + +double +ev_document_fonts_get_progress (EvDocumentFonts *document_fonts) +{ + EvDocumentFontsInterface *iface = EV_DOCUMENT_FONTS_GET_IFACE (document_fonts); + + return iface->get_progress (document_fonts); +} + +gboolean +ev_document_fonts_scan (EvDocumentFonts *document_fonts, + int n_pages) +{ + EvDocumentFontsInterface *iface = EV_DOCUMENT_FONTS_GET_IFACE (document_fonts); + + return iface->scan (document_fonts, n_pages); +} + +void +ev_document_fonts_fill_model (EvDocumentFonts *document_fonts, + GtkTreeModel *model) +{ + EvDocumentFontsInterface *iface = EV_DOCUMENT_FONTS_GET_IFACE (document_fonts); + + iface->fill_model (document_fonts, model); +} diff --git a/libdocument/ev-document-fonts.h b/libdocument/ev-document-fonts.h new file mode 100644 index 00000000..81401c00 --- /dev/null +++ b/libdocument/ev-document-fonts.h @@ -0,0 +1,78 @@ +/* ev-document-fonts.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Marco Pesenti Gritti <mpg@redhat.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_FONTS_H +#define EV_DOCUMENT_FONTS_H + +#include <glib-object.h> +#include <glib.h> +#include <gtk/gtk.h> + +#include "ev-document.h" +#include "ev-link.h" + +G_BEGIN_DECLS + + +#define EV_TYPE_DOCUMENT_FONTS (ev_document_fonts_get_type ()) +#define EV_DOCUMENT_FONTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_FONTS, EvDocumentFonts)) +#define EV_DOCUMENT_FONTS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_FONTS, EvDocumentFontsInterface)) +#define EV_IS_DOCUMENT_FONTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_FONTS)) +#define EV_IS_DOCUMENT_FONTS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_FONTS)) +#define EV_DOCUMENT_FONTS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_FONTS, EvDocumentFontsInterface)) + +typedef struct _EvDocumentFonts EvDocumentFonts; +typedef struct _EvDocumentFontsInterface EvDocumentFontsInterface; + +enum { + EV_DOCUMENT_FONTS_COLUMN_NAME, + EV_DOCUMENT_FONTS_COLUMN_DETAILS, + EV_DOCUMENT_FONTS_COLUMN_NUM_COLUMNS +}; + +struct _EvDocumentFontsInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* scan) (EvDocumentFonts *document_fonts, + int n_pages); + double (* get_progress) (EvDocumentFonts *document_fonts); + void (* fill_model) (EvDocumentFonts *document_fonts, + GtkTreeModel *model); +}; + +GType ev_document_fonts_get_type (void); +gboolean ev_document_fonts_scan (EvDocumentFonts *document_fonts, + int n_pages); +double ev_document_fonts_get_progress (EvDocumentFonts *document_fonts); +void ev_document_fonts_fill_model (EvDocumentFonts *document_fonts, + GtkTreeModel *model); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-document-forms.c b/libdocument/ev-document-forms.c new file mode 100644 index 00000000..809cefb1 --- /dev/null +++ b/libdocument/ev-document-forms.c @@ -0,0 +1,161 @@ +/* ev-document-forms.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-document-forms.h" + +G_DEFINE_INTERFACE (EvDocumentForms, ev_document_forms, 0) + +static void +ev_document_forms_default_init (EvDocumentFormsInterface *klass) +{ +} + +EvMappingList * +ev_document_forms_get_form_fields (EvDocumentForms *document_forms, + EvPage *page) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->get_form_fields (document_forms, page); +} + +gboolean +ev_document_forms_document_is_modified (EvDocumentForms *document_forms) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return (iface->document_is_modified) ? iface->document_is_modified (document_forms) : FALSE; +} + +gchar * +ev_document_forms_form_field_text_get_text (EvDocumentForms *document_forms, + EvFormField *field) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_text_get_text (document_forms, field); +} + +void +ev_document_forms_form_field_text_set_text (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_text_set_text (document_forms, field, text); +} + +gboolean +ev_document_forms_form_field_button_get_state (EvDocumentForms *document_forms, + EvFormField *field) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_button_get_state (document_forms, field); +} + +void +ev_document_forms_form_field_button_set_state (EvDocumentForms *document_forms, + EvFormField *field, + gboolean state) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_button_set_state (document_forms, field, state); +} + +gchar * +ev_document_forms_form_field_choice_get_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_choice_get_item (document_forms, field, index); +} + +gint +ev_document_forms_form_field_choice_get_n_items (EvDocumentForms *document_forms, + EvFormField *field) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_choice_get_n_items (document_forms, field); +} + +gboolean +ev_document_forms_form_field_choice_is_item_selected (EvDocumentForms *document_forms, + EvFormField *field, + gint index) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_choice_is_item_selected (document_forms, field, index); +} + +void +ev_document_forms_form_field_choice_select_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_choice_select_item (document_forms, field, index); +} + +void +ev_document_forms_form_field_choice_toggle_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_choice_toggle_item (document_forms, field, index); +} + +void +ev_document_forms_form_field_choice_unselect_all (EvDocumentForms *document_forms, + EvFormField *field) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_choice_unselect_all (document_forms, field); +} + +void +ev_document_forms_form_field_choice_set_text (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + iface->form_field_choice_set_text (document_forms, field, text); +} + +gchar * +ev_document_forms_form_field_choice_get_text (EvDocumentForms *document_forms, + EvFormField *field) +{ + EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms); + + return iface->form_field_choice_get_text (document_forms, field); +} diff --git a/libdocument/ev-document-forms.h b/libdocument/ev-document-forms.h new file mode 100644 index 00000000..c47ff3f4 --- /dev/null +++ b/libdocument/ev-document-forms.h @@ -0,0 +1,128 @@ +/* ev-document-forms.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_FORMS_H +#define EV_DOCUMENT_FORMS_H + +#include <glib-object.h> + +#include "ev-document.h" +#include "ev-form-field.h" +#include "ev-mapping-list.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_FORMS (ev_document_forms_get_type ()) +#define EV_DOCUMENT_FORMS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_FORMS, EvDocumentForms)) +#define EV_DOCUMENT_FORMS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_FORMS, EvDocumentFormsInterface)) +#define EV_IS_DOCUMENT_FORMS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_FORMS)) +#define EV_IS_DOCUMENT_FORMS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_FORMS)) +#define EV_DOCUMENT_FORMS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_FORMS, EvDocumentFormsInterface)) + +typedef struct _EvDocumentForms EvDocumentForms; +typedef struct _EvDocumentFormsInterface EvDocumentFormsInterface; + +struct _EvDocumentFormsInterface +{ + GTypeInterface base_iface; + + /* Methods */ + EvMappingList *(* get_form_fields) (EvDocumentForms *document_forms, + EvPage *page); + gboolean (* document_is_modified) (EvDocumentForms *document_forms); + gchar *(* form_field_text_get_text) (EvDocumentForms *document_forms, + EvFormField *field); + void (* form_field_text_set_text) (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text); + gboolean (* form_field_button_get_state) (EvDocumentForms *document_forms, + EvFormField *field); + void (* form_field_button_set_state) (EvDocumentForms *document_forms, + EvFormField *field, + gboolean state); + gchar *(* form_field_choice_get_item) (EvDocumentForms *document_forms, + EvFormField *field, + gint index); + gint (* form_field_choice_get_n_items) (EvDocumentForms *document_forms, + EvFormField *field); + gboolean (* form_field_choice_is_item_selected) (EvDocumentForms *document_forms, + EvFormField *field, + gint index); + void (* form_field_choice_select_item) (EvDocumentForms *document_forms, + EvFormField *field, + gint index); + void (* form_field_choice_toggle_item) (EvDocumentForms *document_forms, + EvFormField *field, + gint index); + void (* form_field_choice_unselect_all) (EvDocumentForms *document_forms, + EvFormField *field); + void (* form_field_choice_set_text) (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text); + gchar *(* form_field_choice_get_text) (EvDocumentForms *document_forms, + EvFormField *field); +}; + +GType ev_document_forms_get_type (void) G_GNUC_CONST; +EvMappingList *ev_document_forms_get_form_fields (EvDocumentForms *document_forms, + EvPage *page); +gboolean ev_document_forms_document_is_modified (EvDocumentForms *document_forms); + +gchar *ev_document_forms_form_field_text_get_text (EvDocumentForms *document_forms, + EvFormField *field); +void ev_document_forms_form_field_text_set_text (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text); + +gboolean ev_document_forms_form_field_button_get_state (EvDocumentForms *document_forms, + EvFormField *field); +void ev_document_forms_form_field_button_set_state (EvDocumentForms *document_forms, + EvFormField *field, + gboolean state); + +gchar *ev_document_forms_form_field_choice_get_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index); +gint ev_document_forms_form_field_choice_get_n_items (EvDocumentForms *document_forms, + EvFormField *field); +gboolean ev_document_forms_form_field_choice_is_item_selected (EvDocumentForms *document_forms, + EvFormField *field, + gint index); +void ev_document_forms_form_field_choice_select_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index); +void ev_document_forms_form_field_choice_toggle_item (EvDocumentForms *document_forms, + EvFormField *field, + gint index); +void ev_document_forms_form_field_choice_unselect_all (EvDocumentForms *document_forms, + EvFormField *field); +void ev_document_forms_form_field_choice_set_text (EvDocumentForms *document_forms, + EvFormField *field, + const gchar *text); +gchar *ev_document_forms_form_field_choice_get_text (EvDocumentForms *document_forms, + EvFormField *field); + +G_END_DECLS + +#endif /* EV_DOCUMENT_FORMS_H */ diff --git a/libdocument/ev-document-images.c b/libdocument/ev-document-images.c new file mode 100644 index 00000000..09bf5dae --- /dev/null +++ b/libdocument/ev-document-images.c @@ -0,0 +1,47 @@ +/* ev-document-images.c + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-document-images.h" + +G_DEFINE_INTERFACE (EvDocumentImages, ev_document_images, 0) + +static void +ev_document_images_default_init (EvDocumentImagesInterface *klass) +{ +} + +EvMappingList * +ev_document_images_get_image_mapping (EvDocumentImages *document_images, + EvPage *page) +{ + EvDocumentImagesInterface *iface = EV_DOCUMENT_IMAGES_GET_IFACE (document_images); + + return iface->get_image_mapping (document_images, page); +} + +GdkPixbuf * +ev_document_images_get_image (EvDocumentImages *document_images, + EvImage *image) +{ + EvDocumentImagesInterface *iface = EV_DOCUMENT_IMAGES_GET_IFACE (document_images); + + return iface->get_image (document_images, image); +} diff --git a/libdocument/ev-document-images.h b/libdocument/ev-document-images.h new file mode 100644 index 00000000..18fac92a --- /dev/null +++ b/libdocument/ev-document-images.h @@ -0,0 +1,65 @@ +/* ev-document-images.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_IMAGES_H +#define EV_DOCUMENT_IMAGES_H + +#include <glib-object.h> +#include <glib.h> + +#include "ev-document.h" +#include "ev-image.h" +#include "ev-mapping-list.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_IMAGES (ev_document_images_get_type ()) +#define EV_DOCUMENT_IMAGES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_IMAGES, EvDocumentImages)) +#define EV_DOCUMENT_IMAGES_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_IMAGES, EvDocumentImagesInterface)) +#define EV_IS_DOCUMENT_IMAGES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_IMAGES)) +#define EV_IS_DOCUMENT_IMAGES_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_IMAGES)) +#define EV_DOCUMENT_IMAGES_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_IMAGES, EvDocumentImagesInterface)) + +typedef struct _EvDocumentImages EvDocumentImages; +typedef struct _EvDocumentImagesInterface EvDocumentImagesInterface; + +struct _EvDocumentImagesInterface { + GTypeInterface base_iface; + + /* Methods */ + EvMappingList *(* get_image_mapping) (EvDocumentImages *document_images, + EvPage *page); + GdkPixbuf *(* get_image) (EvDocumentImages *document_images, + EvImage *image); +}; + +GType ev_document_images_get_type (void) G_GNUC_CONST; +EvMappingList *ev_document_images_get_image_mapping (EvDocumentImages *document_images, + EvPage *page); +GdkPixbuf *ev_document_images_get_image (EvDocumentImages *document_images, + EvImage *image); + +G_END_DECLS + +#endif /* EV_DOCUMENT_IMAGES_H */ diff --git a/libdocument/ev-document-info.h b/libdocument/ev-document-info.h new file mode 100644 index 00000000..0f55d212 --- /dev/null +++ b/libdocument/ev-document-info.h @@ -0,0 +1,154 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_INFO_H +#define EV_DOCUMENT_INFO_H + +#include <glib-object.h> +#include <glib.h> + +G_BEGIN_DECLS + +typedef struct _EvDocumentInfo EvDocumentInfo; +typedef struct _EvDocumentLicense EvDocumentLicense; + +#define EV_TYPE_DOCUMENT_INFO (ev_document_info_get_type()) + +typedef enum +{ + EV_DOCUMENT_LAYOUT_SINGLE_PAGE, + EV_DOCUMENT_LAYOUT_ONE_COLUMN, + EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT, + EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT, + EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT, + EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT +} EvDocumentLayout; + +typedef enum +{ + EV_DOCUMENT_MODE_NONE, + EV_DOCUMENT_MODE_USE_OC, + EV_DOCUMENT_MODE_USE_THUMBS, + EV_DOCUMENT_MODE_FULL_SCREEN, + EV_DOCUMENT_MODE_USE_ATTACHMENTS, + EV_DOCUMENT_MODE_PRESENTATION = EV_DOCUMENT_MODE_FULL_SCREEN /* Will these be different? */ +} EvDocumentMode; + +typedef enum +{ + EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR = 1 << 0, + EV_DOCUMENT_UI_HINT_HIDE_MENUBAR = 1 << 1, + EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI = 1 << 2, + EV_DOCUMENT_UI_HINT_FIT_WINDOW = 1 << 3, + EV_DOCUMENT_UI_HINT_CENTER_WINDOW = 1 << 4, + EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE = 1 << 5, + EV_DOCUMENT_UI_HINT_DIRECTION_RTL = 1 << 6 +} EvDocumentUIHints; + +/* This define is needed because glib-mkenums chokes with multiple lines */ +#define PERMISSIONS_FULL (EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT \ + | EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY \ + | EV_DOCUMENT_PERMISSIONS_OK_TO_COPY \ + | EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES) + +typedef enum +{ + EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT = 1 << 0, + EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY = 1 << 1, + EV_DOCUMENT_PERMISSIONS_OK_TO_COPY = 1 << 2, + EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES = 1 << 3, + EV_DOCUMENT_PERMISSIONS_FULL = PERMISSIONS_FULL +} EvDocumentPermissions; + +typedef enum +{ + EV_DOCUMENT_INFO_TITLE = 1 << 0, + EV_DOCUMENT_INFO_FORMAT = 1 << 1, + EV_DOCUMENT_INFO_AUTHOR = 1 << 2, + EV_DOCUMENT_INFO_SUBJECT = 1 << 3, + EV_DOCUMENT_INFO_KEYWORDS = 1 << 4, + EV_DOCUMENT_INFO_LAYOUT = 1 << 5, + EV_DOCUMENT_INFO_CREATOR = 1 << 6, + EV_DOCUMENT_INFO_PRODUCER = 1 << 7, + EV_DOCUMENT_INFO_CREATION_DATE = 1 << 8, + EV_DOCUMENT_INFO_MOD_DATE = 1 << 9, + EV_DOCUMENT_INFO_LINEARIZED = 1 << 10, + EV_DOCUMENT_INFO_START_MODE = 1 << 11, + EV_DOCUMENT_INFO_UI_HINTS = 1 << 12, + EV_DOCUMENT_INFO_PERMISSIONS = 1 << 13, + EV_DOCUMENT_INFO_N_PAGES = 1 << 14, + EV_DOCUMENT_INFO_SECURITY = 1 << 15, + EV_DOCUMENT_INFO_PAPER_SIZE = 1 << 16, + EV_DOCUMENT_INFO_LICENSE = 1 << 17, + +} EvDocumentInfoFields; + +struct _EvDocumentInfo +{ + char *title; + char *format; /* eg, "pdf-1.5" */ + char *author; + char *subject; + char *keywords; + char *creator; + char *producer; + char *linearized; + char *security; + GTime creation_date; + GTime modified_date; + EvDocumentLayout layout; + EvDocumentMode mode; + guint ui_hints; + guint permissions; + int n_pages; + double paper_height; + double paper_width; + EvDocumentLicense *license; + + /* Mask of all the valid fields */ + guint fields_mask; +}; + +GType ev_document_info_get_type (void) G_GNUC_CONST; +EvDocumentInfo *ev_document_info_copy (EvDocumentInfo *info); +void ev_document_info_free (EvDocumentInfo *info); + +/* EvDocumentLicense */ +#define EV_TYPE_DOCUMENT_LICENSE (ev_document_license_get_type()) +struct _EvDocumentLicense { + gchar *text; + gchar *uri; + gchar *web_statement; +}; +GType ev_document_license_get_type (void) G_GNUC_CONST; +EvDocumentLicense *ev_document_license_new (void); +EvDocumentLicense *ev_document_license_copy (EvDocumentLicense *license); +void ev_document_license_free (EvDocumentLicense *license); +const gchar *ev_document_license_get_text (EvDocumentLicense *license); +const gchar *ev_document_license_get_uri (EvDocumentLicense *license); +const gchar *ev_document_license_get_web_statement (EvDocumentLicense *license); + +G_END_DECLS + +#endif /* EV_DOCUMENT_INFO_H */ diff --git a/libdocument/ev-document-layers.c b/libdocument/ev-document-layers.c new file mode 100644 index 00000000..17684881 --- /dev/null +++ b/libdocument/ev-document-layers.c @@ -0,0 +1,74 @@ +/* ev-document-layers.c + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-layers.h" +#include "ev-document.h" + +G_DEFINE_INTERFACE (EvDocumentLayers, ev_document_layers, 0) + +static void +ev_document_layers_default_init (EvDocumentLayersInterface *klass) +{ +} + +gboolean +ev_document_layers_has_layers (EvDocumentLayers *document_layers) +{ + EvDocumentLayersInterface *iface = EV_DOCUMENT_LAYERS_GET_IFACE (document_layers); + + return iface->has_layers (document_layers); +} + +GtkTreeModel * +ev_document_layers_get_layers (EvDocumentLayers *document_layers) +{ + EvDocumentLayersInterface *iface = EV_DOCUMENT_LAYERS_GET_IFACE (document_layers); + + return iface->get_layers (document_layers); +} + +void +ev_document_layers_show_layer (EvDocumentLayers *document_layers, + EvLayer *layer) +{ + EvDocumentLayersInterface *iface = EV_DOCUMENT_LAYERS_GET_IFACE (document_layers); + + iface->show_layer (document_layers, layer); +} + +void +ev_document_layers_hide_layer (EvDocumentLayers *document_layers, + EvLayer *layer) +{ + EvDocumentLayersInterface *iface = EV_DOCUMENT_LAYERS_GET_IFACE (document_layers); + + iface->hide_layer (document_layers, layer); +} + +gboolean +ev_document_layers_layer_is_visible (EvDocumentLayers *document_layers, + EvLayer *layer) +{ + EvDocumentLayersInterface *iface = EV_DOCUMENT_LAYERS_GET_IFACE (document_layers); + + return iface->layer_is_visible (document_layers, layer); +} diff --git a/libdocument/ev-document-layers.h b/libdocument/ev-document-layers.h new file mode 100644 index 00000000..395a6130 --- /dev/null +++ b/libdocument/ev-document-layers.h @@ -0,0 +1,85 @@ +/* ev-document-layers.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_LAYERS_H +#define EV_DOCUMENT_LAYERS_H + +#include <glib-object.h> +#include <glib.h> +#include <gtk/gtk.h> + +#include "ev-layer.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_LAYERS (ev_document_layers_get_type ()) +#define EV_DOCUMENT_LAYERS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_LAYERS, EvDocumentLayers)) +#define EV_DOCUMENT_LAYERS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_LAYERS, EvDocumentLayersInterface)) +#define EV_IS_DOCUMENT_LAYERS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_LAYERS)) +#define EV_IS_DOCUMENT_LAYERS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_LAYERS)) +#define EV_DOCUMENT_LAYERS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_LAYERS, EvDocumentLayersInterface)) + +typedef struct _EvDocumentLayers EvDocumentLayers; +typedef struct _EvDocumentLayersInterface EvDocumentLayersInterface; + +enum { + EV_DOCUMENT_LAYERS_COLUMN_TITLE, + EV_DOCUMENT_LAYERS_COLUMN_LAYER, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, + EV_DOCUMENT_LAYERS_COLUMN_ENABLED, + EV_DOCUMENT_LAYERS_COLUMN_SHOWTOGGLE, + EV_DOCUMENT_LAYERS_COLUMN_RBGROUP, + EV_DOCUMENT_LAYERS_N_COLUMNS +}; + +struct _EvDocumentLayersInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* has_layers) (EvDocumentLayers *document_layers); + GtkTreeModel *(* get_layers) (EvDocumentLayers *document_layers); + + void (* show_layer) (EvDocumentLayers *document_layers, + EvLayer *layer); + void (* hide_layer) (EvDocumentLayers *document_layers, + EvLayer *layer); + gboolean (* layer_is_visible) (EvDocumentLayers *document_layers, + EvLayer *layer); +}; + +GType ev_document_layers_get_type (void) G_GNUC_CONST; + +gboolean ev_document_layers_has_layers (EvDocumentLayers *document_layers); +GtkTreeModel *ev_document_layers_get_layers (EvDocumentLayers *document_layers); +void ev_document_layers_show_layer (EvDocumentLayers *document_layers, + EvLayer *layer); +void ev_document_layers_hide_layer (EvDocumentLayers *document_layers, + EvLayer *layer); +gboolean ev_document_layers_layer_is_visible (EvDocumentLayers *document_layers, + EvLayer *layer); + +G_END_DECLS + +#endif /* EV_DOCUMENT_LAYERS_H */ diff --git a/libdocument/ev-document-links.c b/libdocument/ev-document-links.c new file mode 100644 index 00000000..19a2b7e1 --- /dev/null +++ b/libdocument/ev-document-links.c @@ -0,0 +1,129 @@ +/* ev-document-links.h + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-links.h" + +G_DEFINE_INTERFACE (EvDocumentLinks, ev_document_links, 0) + +static void +ev_document_links_default_init (EvDocumentLinksInterface *klass) +{ +} + +gboolean +ev_document_links_has_document_links (EvDocumentLinks *document_links) +{ + EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links); + gboolean retval; + + retval = iface->has_document_links (document_links); + + return retval; +} + +GtkTreeModel * +ev_document_links_get_links_model (EvDocumentLinks *document_links) +{ + EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links); + GtkTreeModel *retval; + + retval = iface->get_links_model (document_links); + + return retval; +} + +EvMappingList * +ev_document_links_get_links (EvDocumentLinks *document_links, + EvPage *page) +{ + EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links); + + return iface->get_links (document_links, page); +} + +EvLinkDest * +ev_document_links_find_link_dest (EvDocumentLinks *document_links, + const gchar *link_name) +{ + EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links); + EvLinkDest *retval; + + ev_document_doc_mutex_lock (); + retval = iface->find_link_dest (document_links, link_name); + ev_document_doc_mutex_unlock (); + + return retval; +} + +/* Helper functions */ +gint +ev_document_links_get_dest_page (EvDocumentLinks *document_links, + EvLinkDest *dest) +{ + gint page = -1; + + switch (ev_link_dest_get_dest_type (dest)) { + case EV_LINK_DEST_TYPE_NAMED: { + EvLinkDest *dest2; + + dest2 = ev_document_links_find_link_dest (document_links, + ev_link_dest_get_named_dest (dest)); + if (dest2) { + page = ev_link_dest_get_page (dest2); + g_object_unref (dest2); + } + } + break; + case EV_LINK_DEST_TYPE_PAGE_LABEL: + ev_document_find_page_by_label (EV_DOCUMENT (document_links), + ev_link_dest_get_page_label (dest), + &page); + break; + default: + page = ev_link_dest_get_page (dest); + } + + return page; +} + +gchar * +ev_document_links_get_dest_page_label (EvDocumentLinks *document_links, + EvLinkDest *dest) +{ + gchar *label = NULL; + + if (ev_link_dest_get_dest_type (dest) == EV_LINK_DEST_TYPE_PAGE_LABEL) { + label = g_strdup (ev_link_dest_get_page_label (dest)); + } else { + gint page; + + page = ev_document_links_get_dest_page (document_links, dest); + if (page != -1) + label = ev_document_get_page_label (EV_DOCUMENT (document_links), + page); + } + + return label; +} diff --git a/libdocument/ev-document-links.h b/libdocument/ev-document-links.h new file mode 100644 index 00000000..3e28bfd6 --- /dev/null +++ b/libdocument/ev-document-links.h @@ -0,0 +1,87 @@ +/* ev-document-links.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_LINKS_H +#define EV_DOCUMENT_LINKS_H + +#include <glib-object.h> +#include <glib.h> +#include <gtk/gtk.h> + +#include "ev-document.h" +#include "ev-link.h" +#include "ev-mapping-list.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_LINKS (ev_document_links_get_type ()) +#define EV_DOCUMENT_LINKS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_LINKS, EvDocumentLinks)) +#define EV_DOCUMENT_LINKS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_LINKS, EvDocumentLinksInterface)) +#define EV_IS_DOCUMENT_LINKS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_LINKS)) +#define EV_IS_DOCUMENT_LINKS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_LINKS)) +#define EV_DOCUMENT_LINKS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_LINKS, EvDocumentLinksInterface)) + +typedef struct _EvDocumentLinks EvDocumentLinks; +typedef struct _EvDocumentLinksInterface EvDocumentLinksInterface; + +enum { + EV_DOCUMENT_LINKS_COLUMN_MARKUP, + EV_DOCUMENT_LINKS_COLUMN_LINK, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, + EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, + EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS +}; + +struct _EvDocumentLinksInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* has_document_links) (EvDocumentLinks *document_links); + GtkTreeModel *(* get_links_model) (EvDocumentLinks *document_links); + EvMappingList *(* get_links) (EvDocumentLinks *document_links, + EvPage *page); + EvLinkDest *(* find_link_dest) (EvDocumentLinks *document_links, + const gchar *link_name); +}; + +GType ev_document_links_get_type (void) G_GNUC_CONST; +gboolean ev_document_links_has_document_links (EvDocumentLinks *document_links); +GtkTreeModel *ev_document_links_get_links_model (EvDocumentLinks *document_links); + +EvMappingList *ev_document_links_get_links (EvDocumentLinks *document_links, + EvPage *page); +EvLinkDest *ev_document_links_find_link_dest (EvDocumentLinks *document_links, + const gchar *link_name); +gint ev_document_links_get_dest_page (EvDocumentLinks *document_links, + EvLinkDest *dest); +gchar *ev_document_links_get_dest_page_label (EvDocumentLinks *document_links, + EvLinkDest *dest); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c new file mode 100644 index 00000000..d597127f --- /dev/null +++ b/libdocument/ev-document-misc.c @@ -0,0 +1,400 @@ +/* + * Copyright (C) 2009 Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (c) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <string.h> +#include <math.h> + +#include <gtk/gtk.h> + +#include "ev-document-misc.h" + +/* Returns a new GdkPixbuf that is suitable for placing in the thumbnail view. + * It is four pixels wider and taller than the source. If source_pixbuf is not + * NULL, then it will fill the return pixbuf with the contents of + * source_pixbuf. + */ +static GdkPixbuf * +create_thumbnail_frame (int width, + int height, + GdkPixbuf *source_pixbuf, + gboolean fill_bg) +{ + GdkPixbuf *retval; + guchar *data; + gint rowstride; + int i; + int width_r, height_r; + + if (source_pixbuf) + g_return_val_if_fail (GDK_IS_PIXBUF (source_pixbuf), NULL); + + if (source_pixbuf) { + width_r = gdk_pixbuf_get_width (source_pixbuf); + height_r = gdk_pixbuf_get_height (source_pixbuf); + } else { + width_r = width; + height_r = height; + } + + /* make sure no one is passing us garbage */ + g_assert (width_r >= 0 && height_r >= 0); + + retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, 8, + width_r + 4, + height_r + 4); + + /* make it black and fill in the middle */ + data = gdk_pixbuf_get_pixels (retval); + rowstride = gdk_pixbuf_get_rowstride (retval); + + gdk_pixbuf_fill (retval, 0x000000ff); + if (fill_bg) { + for (i = 1; i < height_r + 1; i++) + memset (data + (rowstride * i) + 4, 0xffffffff, width_r * 4); + } + + /* copy the source pixbuf */ + if (source_pixbuf) + gdk_pixbuf_copy_area (source_pixbuf, 0, 0, + width_r, + height_r, + retval, + 1, 1); + /* Add the corner */ + data [(width_r + 2) * 4 + 3] = 0; + data [(width_r + 3) * 4 + 3] = 0; + data [(width_r + 2) * 4 + (rowstride * 1) + 3] = 0; + data [(width_r + 3) * 4 + (rowstride * 1) + 3] = 0; + + data [(height_r + 2) * rowstride + 3] = 0; + data [(height_r + 3) * rowstride + 3] = 0; + data [(height_r + 2) * rowstride + 4 + 3] = 0; + data [(height_r + 3) * rowstride + 4 + 3] = 0; + + return retval; +} + +GdkPixbuf * +ev_document_misc_get_thumbnail_frame (int width, + int height, + GdkPixbuf *source_pixbuf) +{ + return create_thumbnail_frame (width, height, source_pixbuf, TRUE); +} + +GdkPixbuf * +ev_document_misc_get_loading_thumbnail (int width, + int height, + gboolean inverted_colors) +{ + return create_thumbnail_frame (width, height, NULL, !inverted_colors); +} + +void +ev_document_misc_get_page_border_size (gint page_width, + gint page_height, + GtkBorder *border) +{ + g_assert (border); + + border->left = 1; + border->top = 1; + if (page_width < 100) { + border->right = 2; + border->bottom = 2; + } else if (page_width < 500) { + border->right = 3; + border->bottom = 3; + } else { + border->right = 4; + border->bottom = 4; + } +} + + +void +ev_document_misc_paint_one_page (cairo_t *cr, + GtkWidget *widget, + GdkRectangle *area, + GtkBorder *border, + gboolean highlight, + gboolean inverted_colors) +{ + GtkStyle *style = gtk_widget_get_style (widget); + GtkStateType state = gtk_widget_get_state (widget); + + gdk_cairo_set_source_color (cr, highlight ? &style->text[state] : &style->dark[state]); + gdk_cairo_rectangle (cr, area); + cairo_fill (cr); + + if (inverted_colors) + cairo_set_source_rgb (cr, 0, 0, 0); + else + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_rectangle (cr, + area->x + border->left, + area->y + border->top, + area->width - (border->left + border->right), + area->height - (border->top + border->bottom)); + cairo_fill (cr); + + gdk_cairo_set_source_color (cr, &style->mid[state]); + cairo_rectangle (cr, + area->x, + area->y + area->height - (border->bottom - border->top), + border->bottom - border->top, + border->bottom - border->top); + cairo_fill (cr); + + cairo_rectangle (cr, + area->x + area->width - (border->right - border->left), + area->y, + border->right - border->left, + border->right - border->left); + cairo_fill (cr); +} + +cairo_surface_t * +ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_image_surface_create (gdk_pixbuf_get_has_alpha (pixbuf) ? + CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24, + gdk_pixbuf_get_width (pixbuf), + gdk_pixbuf_get_height (pixbuf)); + cr = cairo_create (surface); + gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0); + cairo_paint (cr); + cairo_destroy (cr); + + return surface; +} + +GdkPixbuf * +ev_document_misc_pixbuf_from_surface (cairo_surface_t *surface) +{ + GdkPixbuf *pixbuf; + cairo_surface_t *image; + cairo_t *cr; + gboolean has_alpha; + gint width, height; + cairo_format_t surface_format; + gint pixbuf_n_channels; + gint pixbuf_rowstride; + guchar *pixbuf_pixels; + gint x, y; + + width = cairo_image_surface_get_width (surface); + height = cairo_image_surface_get_height (surface); + + surface_format = cairo_image_surface_get_format (surface); + has_alpha = (surface_format == CAIRO_FORMAT_ARGB32); + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, 8, + width, height); + pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf); + pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf); + pixbuf_pixels = gdk_pixbuf_get_pixels (pixbuf); + + image = cairo_image_surface_create_for_data (pixbuf_pixels, + surface_format, + width, height, + pixbuf_rowstride); + cr = cairo_create (image); + cairo_set_source_surface (cr, surface, 0, 0); + + if (has_alpha) + cairo_mask_surface (cr, surface, 0, 0); + else + cairo_paint (cr); + + cairo_destroy (cr); + cairo_surface_destroy (image); + + for (y = 0; y < height; y++) { + guchar *p = pixbuf_pixels + y * pixbuf_rowstride; + + for (x = 0; x < width; x++) { + guchar tmp; + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + tmp = p[0]; + p[0] = p[2]; + p[2] = tmp; + p[3] = (has_alpha) ? p[3] : 0xff; +#else + tmp = p[0]; + p[0] = p[1]; + p[1] = p[2]; + p[2] = p[3]; + p[3] = (has_alpha) ? tmp : 0xff; +#endif + p += pixbuf_n_channels; + } + } + + return pixbuf; +} + +cairo_surface_t * +ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface, + gint dest_width, + gint dest_height, + gint dest_rotation) +{ + cairo_surface_t *new_surface; + cairo_t *cr; + gint width, height; + gint new_width = dest_width; + gint new_height = dest_height; + + width = cairo_image_surface_get_width (surface); + height = cairo_image_surface_get_height (surface); + + if (dest_width == width && + dest_height == height && + dest_rotation == 0) { + return cairo_surface_reference (surface); + } + + if (dest_rotation == 90 || dest_rotation == 270) { + new_width = dest_height; + new_height = dest_width; + } + + new_surface = cairo_surface_create_similar (surface, + cairo_surface_get_content (surface), + new_width, new_height); + + cr = cairo_create (new_surface); + switch (dest_rotation) { + case 90: + cairo_translate (cr, new_width, 0); + break; + case 180: + cairo_translate (cr, new_width, new_height); + break; + case 270: + cairo_translate (cr, 0, new_height); + break; + default: + cairo_translate (cr, 0, 0); + } + + if (dest_width != width || dest_height != height) { + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_BILINEAR); + cairo_scale (cr, + (gdouble)dest_width / width, + (gdouble)dest_height / height); + } + + cairo_rotate (cr, dest_rotation * G_PI / 180.0); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_paint (cr); + cairo_destroy (cr); + + return new_surface; +} + +void +ev_document_misc_invert_surface (cairo_surface_t *surface) { + cairo_t *cr; + + cr = cairo_create (surface); + + /* white + DIFFERENCE -> invert */ + cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE); + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint(cr); + cairo_destroy (cr); +} + +void +ev_document_misc_invert_pixbuf (GdkPixbuf *pixbuf) +{ + guchar *data, *p; + guint width, height, x, y, rowstride, n_channels; + + n_channels = gdk_pixbuf_get_n_channels (pixbuf); + g_assert (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB); + g_assert (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8); + + /* First grab a pointer to the raw pixel data. */ + data = gdk_pixbuf_get_pixels (pixbuf); + + /* Find the number of bytes per row (could be padded). */ + rowstride = gdk_pixbuf_get_rowstride (pixbuf); + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + for (x = 0; x < width; x++) { + for (y = 0; y < height; y++) { + /* Calculate pixel's offset into the data array. */ + p = data + x * n_channels + y * rowstride; + /* Change the RGB values*/ + p[0] = 255 - p[0]; + p[1] = 255 - p[1]; + p[2] = 255 - p[2]; + } + } +} + +gdouble +ev_document_misc_get_screen_dpi (GdkScreen *screen) +{ + gdouble dp, di; + + /*diagonal in pixels*/ + dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen)); + + /*diagonal in inches*/ + di = hypot (gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm (screen)) / 25.4; + + return (dp / di); +} + +/* Returns a locale specific date and time representation */ +gchar * +ev_document_misc_format_date (GTime utime) +{ + time_t time = (time_t) utime; + char s[256]; + const char fmt_hack[] = "%c"; + size_t len; +#ifdef HAVE_LOCALTIME_R + struct tm t; + if (time == 0 || !localtime_r (&time, &t)) return NULL; + len = strftime (s, sizeof (s), fmt_hack, &t); +#else + struct tm *t; + if (time == 0 || !(t = localtime (&time)) ) return NULL; + len = strftime (s, sizeof (s), fmt_hack, t); +#endif + + if (len == 0 || s[0] == '\0') return NULL; + + return g_locale_to_utf8 (s, -1, NULL, NULL, NULL); +} diff --git a/libdocument/ev-document-misc.h b/libdocument/ev-document-misc.h new file mode 100644 index 00000000..dfce2e2e --- /dev/null +++ b/libdocument/ev-document-misc.h @@ -0,0 +1,67 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_MISC_H +#define EV_DOCUMENT_MISC_H + +#include <cairo.h> + +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +GdkPixbuf *ev_document_misc_get_thumbnail_frame (int width, + int height, + GdkPixbuf *source_pixbuf); +GdkPixbuf *ev_document_misc_get_loading_thumbnail (int width, + int height, + gboolean inverted_colors); +void ev_document_misc_get_page_border_size (gint page_width, + gint page_height, + GtkBorder *border); +void ev_document_misc_paint_one_page (cairo_t *cr, + GtkWidget *widget, + GdkRectangle *area, + GtkBorder *border, + gboolean highlight, + gboolean inverted_colors); + +cairo_surface_t *ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf); +GdkPixbuf *ev_document_misc_pixbuf_from_surface (cairo_surface_t *surface); +cairo_surface_t *ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface, + gint dest_width, + gint dest_height, + gint dest_rotation); +void ev_document_misc_invert_surface (cairo_surface_t *surface); +void ev_document_misc_invert_pixbuf (GdkPixbuf *pixbuf); + +gdouble ev_document_misc_get_screen_dpi (GdkScreen *screen); + +gchar *ev_document_misc_format_date (GTime utime); + +G_END_DECLS + +#endif /* EV_DOCUMENT_MISC_H */ diff --git a/libdocument/ev-document-print.c b/libdocument/ev-document-print.c new file mode 100644 index 00000000..185121c5 --- /dev/null +++ b/libdocument/ev-document-print.c @@ -0,0 +1,41 @@ +/* ev-document-print.c + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document.h" +#include "ev-document-print.h" + +G_DEFINE_INTERFACE (EvDocumentPrint, ev_document_print, 0) + +static void +ev_document_print_default_init (EvDocumentPrintInterface *klass) +{ +} + +void +ev_document_print_print_page (EvDocumentPrint *document_print, + EvPage *page, + cairo_t *cr) +{ + EvDocumentPrintInterface *iface = EV_DOCUMENT_PRINT_GET_IFACE (document_print); + + iface->print_page (document_print, page, cr); +} diff --git a/libdocument/ev-document-print.h b/libdocument/ev-document-print.h new file mode 100644 index 00000000..319f557c --- /dev/null +++ b/libdocument/ev-document-print.h @@ -0,0 +1,59 @@ +/* ev-document-print.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_DOCUMENT_PRINT_H +#define EV_DOCUMENT_PRINT_H + +#include <glib-object.h> +#include <cairo.h> + +#include "ev-page.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_PRINT (ev_document_print_get_type ()) +#define EV_DOCUMENT_PRINT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_PRINT, EvDocumentPrint)) +#define EV_DOCUMENT_PRINT_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_PRINT, EvDocumentPrintInterface)) +#define EV_IS_DOCUMENT_PRINT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_PRINT)) +#define EV_IS_DOCUMENT_PRINT_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_PRINT)) +#define EV_DOCUMENT_PRINT_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_PRINT, EvDocumentPrintInterface)) + +typedef struct _EvDocumentPrint EvDocumentPrint; +typedef struct _EvDocumentPrintInterface EvDocumentPrintInterface; + +struct _EvDocumentPrintInterface +{ + GTypeInterface base_iface; + + /* Methods */ + void (* print_page) (EvDocumentPrint *document_print, + EvPage *page, + cairo_t *cr); +}; + +GType ev_document_print_get_type (void) G_GNUC_CONST; + +void ev_document_print_print_page (EvDocumentPrint *document_print, + EvPage *page, + cairo_t *cr); + +G_END_DECLS + +#endif /* EV_DOCUMENT_PRINT_H */ diff --git a/libdocument/ev-document-security.c b/libdocument/ev-document-security.c new file mode 100644 index 00000000..0b8f552e --- /dev/null +++ b/libdocument/ev-document-security.c @@ -0,0 +1,48 @@ +/* ev-document-links.h + * this file is part of evince, a mate document_links viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-security.h" + +G_DEFINE_INTERFACE (EvDocumentSecurity, ev_document_security, 0) + +static void +ev_document_security_default_init (EvDocumentSecurityInterface *klass) +{ +} + +gboolean +ev_document_security_has_document_security (EvDocumentSecurity *document_security) +{ + EvDocumentSecurityInterface *iface = EV_DOCUMENT_SECURITY_GET_IFACE (document_security); + return iface->has_document_security (document_security); +} + +void +ev_document_security_set_password (EvDocumentSecurity *document_security, + const char *password) +{ + EvDocumentSecurityInterface *iface = EV_DOCUMENT_SECURITY_GET_IFACE (document_security); + iface->set_password (document_security, password); +} diff --git a/libdocument/ev-document-security.h b/libdocument/ev-document-security.h new file mode 100644 index 00000000..c64dc64b --- /dev/null +++ b/libdocument/ev-document-security.h @@ -0,0 +1,67 @@ +/* ev-document-security.h + * this file is part of evince, a mate pdf viewer + * + * Copyright (C) 2005 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_SECURITY_H +#define EV_DOCUMENT_SECURITY_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + + +#define EV_TYPE_DOCUMENT_SECURITY (ev_document_security_get_type ()) +#define EV_DOCUMENT_SECURITY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurity)) +#define EV_DOCUMENT_SECURITY_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurityInterface)) +#define EV_IS_DOCUMENT_SECURITY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_SECURITY)) +#define EV_IS_DOCUMENT_SECURITY_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_SECURITY)) +#define EV_DOCUMENT_SECURITY_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurityInterface)) + +typedef struct _EvDocumentSecurity EvDocumentSecurity; +typedef struct _EvDocumentSecurityInterface EvDocumentSecurityInterface; + +struct _EvDocumentSecurityInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* has_document_security) (EvDocumentSecurity *document_security); + void (* set_password) (EvDocumentSecurity *document_security, + const char *password); +}; + +GType ev_document_security_get_type (void); +gboolean ev_document_security_has_document_security (EvDocumentSecurity *document_security); +void ev_document_security_set_password (EvDocumentSecurity *document_security, + const char *password); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-document-text.c b/libdocument/ev-document-text.c new file mode 100644 index 00000000..56c1a563 --- /dev/null +++ b/libdocument/ev-document-text.c @@ -0,0 +1,70 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2010 Yaco Sistemas, Daniel Garcia <danigm@yaco.es> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "config.h" + +#include "ev-document-text.h" + +G_DEFINE_INTERFACE (EvDocumentText, ev_document_text, 0) + +static void +ev_document_text_default_init (EvDocumentTextInterface *klass) +{ +} + +gchar * +ev_document_text_get_text (EvDocumentText *document_text, + EvPage *page) +{ + EvDocumentTextInterface *iface = EV_DOCUMENT_TEXT_GET_IFACE (document_text); + + if (!iface->get_text) + return NULL; + + return iface->get_text (document_text, page); +} + + +gboolean +ev_document_text_get_text_layout (EvDocumentText *document_text, + EvPage *page, + EvRectangle **areas, + guint *n_areas) +{ + EvDocumentTextInterface *iface = EV_DOCUMENT_TEXT_GET_IFACE (document_text); + + if (!iface->get_text_layout) + return FALSE; + + return iface->get_text_layout (document_text, page, areas, n_areas); +} + +cairo_region_t * +ev_document_text_get_text_mapping (EvDocumentText *document_text, + EvPage *page) +{ + EvDocumentTextInterface *iface = EV_DOCUMENT_TEXT_GET_IFACE (document_text); + + if (!iface->get_text_mapping) + return NULL; + + return iface->get_text_mapping (document_text, page); +} diff --git a/libdocument/ev-document-text.h b/libdocument/ev-document-text.h new file mode 100644 index 00000000..abf1cc76 --- /dev/null +++ b/libdocument/ev-document-text.h @@ -0,0 +1,75 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2010 Yaco Sistemas, Daniel Garcia <danigm@yaco.es> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_TEXT_H +#define EV_DOCUMENT_TEXT_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_TEXT (ev_document_text_get_type ()) +#define EV_DOCUMENT_TEXT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_TEXT, EvDocumentText)) +#define EV_DOCUMENT_TEXT_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_TEXT, EvDocumentTextInterface)) +#define EV_IS_DOCUMENT_TEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_TEXT)) +#define EV_IS_DOCUMENT_TEXT_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_TEXT)) +#define EV_DOCUMENT_TEXT_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_TEXT, EvDocumentTextInterface)) + +typedef struct _EvDocumentText EvDocumentText; +typedef struct _EvDocumentTextInterface EvDocumentTextInterface; + +struct _EvDocumentTextInterface +{ + GTypeInterface base_iface; + + /* Methods */ + cairo_region_t *(* get_text_mapping) (EvDocumentText *document_text, + EvPage *page); + gchar *(* get_text) (EvDocumentText *document_text, + EvPage *page); + gboolean (* get_text_layout) (EvDocumentText *document_text, + EvPage *page, + EvRectangle **areas, + guint *n_areas); +}; + +GType ev_document_text_get_type (void) G_GNUC_CONST; + +gchar *ev_document_text_get_text (EvDocumentText *document_text, + EvPage *page); +gboolean ev_document_text_get_text_layout (EvDocumentText *document_text, + EvPage *page, + EvRectangle **areas, + guint *n_areas); +cairo_region_t *ev_document_text_get_text_mapping (EvDocumentText *document_text, + EvPage *page); + +G_END_DECLS + +#endif /* EV_DOCUMENT_TEXT_H */ diff --git a/libdocument/ev-document-thumbnails.c b/libdocument/ev-document-thumbnails.c new file mode 100644 index 00000000..9482e09e --- /dev/null +++ b/libdocument/ev-document-thumbnails.c @@ -0,0 +1,63 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Anders Carlsson <andersca@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <config.h> +#include "ev-document-thumbnails.h" +#include "ev-document.h" + +G_DEFINE_INTERFACE (EvDocumentThumbnails, ev_document_thumbnails, 0) + +static void +ev_document_thumbnails_default_init (EvDocumentThumbnailsInterface *klass) +{ +} + +GdkPixbuf * +ev_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border) +{ + EvDocumentThumbnailsInterface *iface; + + g_return_val_if_fail (EV_IS_DOCUMENT_THUMBNAILS (document), NULL); + g_return_val_if_fail (EV_IS_RENDER_CONTEXT (rc), NULL); + + iface = EV_DOCUMENT_THUMBNAILS_GET_IFACE (document); + + return iface->get_thumbnail (document, rc, border); +} + +void +ev_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height) +{ + EvDocumentThumbnailsInterface *iface; + + g_return_if_fail (EV_IS_DOCUMENT_THUMBNAILS (document)); + g_return_if_fail (EV_IS_RENDER_CONTEXT (rc)); + g_return_if_fail (width != NULL); + g_return_if_fail (height != NULL); + + iface = EV_DOCUMENT_THUMBNAILS_GET_IFACE (document); + iface->get_dimensions (document, rc, width, height); +} + diff --git a/libdocument/ev-document-thumbnails.h b/libdocument/ev-document-thumbnails.h new file mode 100644 index 00000000..bf663eed --- /dev/null +++ b/libdocument/ev-document-thumbnails.h @@ -0,0 +1,69 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Anders Carlsson + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_THUMBNAILS_H +#define EV_DOCUMENT_THUMBNAILS_H + +#include <gdk-pixbuf/gdk-pixbuf.h> + +#include "ev-render-context.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_THUMBNAILS (ev_document_thumbnails_get_type ()) +#define EV_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnails)) +#define EV_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnailsInterface)) +#define EV_IS_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_THUMBNAILS)) +#define EV_IS_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_THUMBNAILS)) +#define EV_DOCUMENT_THUMBNAILS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnailsInterface)) + +typedef struct _EvDocumentThumbnails EvDocumentThumbnails; +typedef struct _EvDocumentThumbnailsInterface EvDocumentThumbnailsInterface; + +struct _EvDocumentThumbnailsInterface { + GTypeInterface base_iface; + + /* Methods */ + GdkPixbuf * (* get_thumbnail) (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border); + void (* get_dimensions) (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height); +}; + +GType ev_document_thumbnails_get_type (void) G_GNUC_CONST; + +GdkPixbuf *ev_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, + EvRenderContext *rc, + gboolean border); +void ev_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, + EvRenderContext *rc, + gint *width, + gint *height); + +G_END_DECLS + +#endif /* EV_DOCUMENT_THUMBNAILS_H */ diff --git a/libdocument/ev-document-transition.c b/libdocument/ev-document-transition.c new file mode 100644 index 00000000..d8345f2c --- /dev/null +++ b/libdocument/ev-document-transition.c @@ -0,0 +1,57 @@ +/* ev-document-transition.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-document-transition.h" + +G_DEFINE_INTERFACE (EvDocumentTransition, ev_document_transition, 0) + +static void +ev_document_transition_default_init (EvDocumentTransitionInterface *klass) +{ +} + +gdouble +ev_document_transition_get_page_duration (EvDocumentTransition *document_trans, + gint page) +{ + EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans); + + if (iface->get_page_duration) + return iface->get_page_duration (document_trans, page); + + return -1; +} + +EvTransitionEffect * +ev_document_transition_get_effect (EvDocumentTransition *document_trans, + gint page) +{ + EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans); + EvTransitionEffect *effect = NULL; + + if (iface->get_effect) + effect = iface->get_effect (document_trans, page); + + if (!effect) + return ev_transition_effect_new (EV_TRANSITION_EFFECT_REPLACE, NULL); + + return effect; +} diff --git a/libdocument/ev-document-transition.h b/libdocument/ev-document-transition.h new file mode 100644 index 00000000..d7d3f1fd --- /dev/null +++ b/libdocument/ev-document-transition.h @@ -0,0 +1,64 @@ +/* ev-document-transition.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_TRANSITION_H +#define EV_DOCUMENT_TRANSITION_H + +#include <glib-object.h> + +#include "ev-document.h" +#include "ev-transition-effect.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_TRANSITION (ev_document_transition_get_type ()) +#define EV_DOCUMENT_TRANSITION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_TRANSITION, EvDocumentTransition)) +#define EV_DOCUMENT_TRANSITION_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_TRANSITION, EvDocumentTransitionInterface)) +#define EV_IS_DOCUMENT_TRANSITION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_TRANSITION)) +#define EV_IS_DOCUMENT_TRANSITION_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_TRANSITION)) +#define EV_DOCUMENT_TRANSITION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_TRANSITION, EvDocumentTransitionInterface)) + +typedef struct _EvDocumentTransition EvDocumentTransition; +typedef struct _EvDocumentTransitionInterface EvDocumentTransitionInterface; + +struct _EvDocumentTransitionInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gdouble (* get_page_duration) (EvDocumentTransition *document_trans, + gint page); + EvTransitionEffect * (* get_effect) (EvDocumentTransition *document_trans, + gint page); +}; + +GType ev_document_transition_get_type (void) G_GNUC_CONST; +gdouble ev_document_transition_get_page_duration (EvDocumentTransition *document_trans, + gint page); +EvTransitionEffect * ev_document_transition_get_effect (EvDocumentTransition *document_trans, + gint page); + +G_END_DECLS + +#endif /* EV_DOCUMENT_TRANSITION_H */ diff --git a/libdocument/ev-document-type-builtins.c.template b/libdocument/ev-document-type-builtins.c.template new file mode 100644 index 00000000..c355aff5 --- /dev/null +++ b/libdocument/ev-document-type-builtins.c.template @@ -0,0 +1,44 @@ +/*** BEGIN file-header ***/ +#include <config.h> + +#include "ev-document-type-builtins.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +#include "@filename@" +/*** END file-production ***/ + + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = \ + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ + +/*** END file-tail ***/ diff --git a/libdocument/ev-document-type-builtins.h.template b/libdocument/ev-document-type-builtins.h.template new file mode 100644 index 00000000..4b70c87c --- /dev/null +++ b/libdocument/ev-document-type-builtins.h.template @@ -0,0 +1,29 @@ +/*** BEGIN file-header ***/ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_TYPE_BUILTINS_H +#define EV_DOCUMENT_TYPE_BUILTINS_H + +#include <glib-object.h> + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define EV_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* !EV_DOCUMENT_TYPE_BUILTINS_H */ +/*** END file-tail ***/ diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c new file mode 100644 index 00000000..70349dcb --- /dev/null +++ b/libdocument/ev-document.c @@ -0,0 +1,867 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2009 Carlos Garcia Campos + * Copyright (C) 2004 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include <stdlib.h> +#include <string.h> + +#include "ev-document.h" +#include "synctex_parser.h" + +#define EV_DOCUMENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_DOCUMENT, EvDocumentPrivate)) + +typedef struct _EvPageSize +{ + gdouble width; + gdouble height; +} EvPageSize; + +struct _EvDocumentPrivate +{ + gchar *uri; + + gint n_pages; + + gboolean uniform; + gdouble uniform_width; + gdouble uniform_height; + + gdouble max_width; + gdouble max_height; + gdouble min_width; + gdouble min_height; + gint max_label; + + gchar **page_labels; + EvPageSize *page_sizes; + EvDocumentInfo *info; + + synctex_scanner_t synctex_scanner; +}; + +static gint _ev_document_get_n_pages (EvDocument *document); +static void _ev_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height); +static gchar *_ev_document_get_page_label (EvDocument *document, + EvPage *page); +static EvDocumentInfo *_ev_document_get_info (EvDocument *document); +static gboolean _ev_document_support_synctex (EvDocument *document); + +GMutex *ev_doc_mutex = NULL; +GMutex *ev_fc_mutex = NULL; + +G_DEFINE_ABSTRACT_TYPE (EvDocument, ev_document, G_TYPE_OBJECT) + +GQuark +ev_document_error_quark (void) +{ + static GQuark q = 0; + if (q == 0) + q = g_quark_from_static_string ("ev-document-error-quark"); + + return q; +} + +static EvPage * +ev_document_impl_get_page (EvDocument *document, + gint index) +{ + return ev_page_new (index); +} + +static EvDocumentInfo * +ev_document_impl_get_info (EvDocument *document) +{ + return g_new0 (EvDocumentInfo, 1); +} + +static void +ev_document_finalize (GObject *object) +{ + EvDocument *document = EV_DOCUMENT (object); + + if (document->priv->uri) { + g_free (document->priv->uri); + document->priv->uri = NULL; + } + + if (document->priv->page_sizes) { + g_free (document->priv->page_sizes); + document->priv->page_sizes = NULL; + } + + if (document->priv->page_labels) { + gint i; + + for (i = 0; i < document->priv->n_pages; i++) { + g_free (document->priv->page_labels[i]); + } + g_free (document->priv->page_labels); + document->priv->page_labels = NULL; + } + + if (document->priv->info) { + ev_document_info_free (document->priv->info); + document->priv->info = NULL; + } + + if (document->priv->synctex_scanner) { + synctex_scanner_free (document->priv->synctex_scanner); + document->priv->synctex_scanner = NULL; + } + + G_OBJECT_CLASS (ev_document_parent_class)->finalize (object); +} + +static void +ev_document_init (EvDocument *document) +{ + document->priv = EV_DOCUMENT_GET_PRIVATE (document); + + /* Assume all pages are the same size until proven otherwise */ + document->priv->uniform = TRUE; +} + +static void +ev_document_class_init (EvDocumentClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (g_object_class, sizeof (EvDocumentPrivate)); + + klass->get_page = ev_document_impl_get_page; + klass->get_info = ev_document_impl_get_info; + klass->get_backend_info = NULL; + + g_object_class->finalize = ev_document_finalize; +} + +GMutex * +ev_document_get_doc_mutex (void) +{ + if (ev_doc_mutex == NULL) { + ev_doc_mutex = g_mutex_new (); + } + return ev_doc_mutex; +} + +void +ev_document_doc_mutex_lock (void) +{ + g_mutex_lock (ev_document_get_doc_mutex ()); +} + +void +ev_document_doc_mutex_unlock (void) +{ + g_mutex_unlock (ev_document_get_doc_mutex ()); +} + +gboolean +ev_document_doc_mutex_trylock (void) +{ + return g_mutex_trylock (ev_document_get_doc_mutex ()); +} + +GMutex * +ev_document_get_fc_mutex (void) +{ + if (ev_fc_mutex == NULL) { + ev_fc_mutex = g_mutex_new (); + } + return ev_fc_mutex; +} + +void +ev_document_fc_mutex_lock (void) +{ + g_mutex_lock (ev_document_get_fc_mutex ()); +} + +void +ev_document_fc_mutex_unlock (void) +{ + g_mutex_unlock (ev_document_get_fc_mutex ()); +} + +gboolean +ev_document_fc_mutex_trylock (void) +{ + return g_mutex_trylock (ev_document_get_fc_mutex ()); +} + +/** + * ev_document_load: + * @document: a #EvDocument + * @uri: the document's URI + * @error: a #GError location to store an error, or %NULL + * + * Loads @document from @uri. + * + * On failure, %FALSE is returned and @error is filled in. + * If the document is encrypted, EV_DEFINE_ERROR_ENCRYPTED is returned. + * If the backend cannot load the specific document, EV_DOCUMENT_ERROR_INVALID + * is returned. Other errors are possible too, depending on the backend + * used to load the document and the URI, e.g. #GIOError, #GFileError, and + * #GConvertError. + * + * Returns: %TRUE on success, or %FALSE on failure. + */ +gboolean +ev_document_load (EvDocument *document, + const char *uri, + GError **error) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + gboolean retval; + GError *err = NULL; + + retval = klass->load (document, uri, &err); + if (!retval) { + if (err) { + g_propagate_error (error, err); + } else { + g_warning ("%s::EvDocument::load returned FALSE but did not fill in @error; fix the backend!\n", + G_OBJECT_TYPE_NAME (document)); + + /* So upper layers don't crash */ + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + "Internal error in backend"); + } + } else { + gint i; + EvDocumentPrivate *priv = document->priv; + + /* Cache some info about the document to avoid + * going to the backends since it requires locks + */ + priv->uri = g_strdup (uri); + priv->n_pages = _ev_document_get_n_pages (document); + + for (i = 0; i < priv->n_pages; i++) { + EvPage *page = ev_document_get_page (document, i); + gdouble page_width = 0; + gdouble page_height = 0; + EvPageSize *page_size; + gchar *page_label; + + _ev_document_get_page_size (document, page, &page_width, &page_height); + + if (i == 0) { + priv->uniform_width = page_width; + priv->uniform_height = page_height; + priv->max_width = priv->uniform_width; + priv->max_height = priv->uniform_height; + priv->min_width = priv->uniform_width; + priv->min_height = priv->uniform_height; + } else if (priv->uniform && + (priv->uniform_width != page_width || + priv->uniform_height != page_height)) { + /* It's a different page size. Backfill the array. */ + int j; + + priv->page_sizes = g_new0 (EvPageSize, priv->n_pages); + + for (j = 0; j < i; j++) { + page_size = &(priv->page_sizes[j]); + page_size->width = priv->uniform_width; + page_size->height = priv->uniform_height; + } + priv->uniform = FALSE; + } + if (!priv->uniform) { + page_size = &(priv->page_sizes[i]); + + page_size->width = page_width; + page_size->height = page_height; + + if (page_width > priv->max_width) + priv->max_width = page_width; + if (page_width < priv->min_width) + priv->min_width = page_width; + + if (page_height > priv->max_height) + priv->max_height = page_height; + if (page_height < priv->min_height) + priv->min_height = page_height; + } + + page_label = _ev_document_get_page_label (document, page); + if (page_label) { + if (!priv->page_labels) + priv->page_labels = g_new0 (gchar *, priv->n_pages); + + priv->page_labels[i] = page_label; + priv->max_label = MAX (priv->max_label, + g_utf8_strlen (page_label, 256)); + } + + g_object_unref (page); + } + + priv->info = _ev_document_get_info (document); + if (_ev_document_support_synctex (document)) { + gchar *filename; + + filename = g_filename_from_uri (uri, NULL, NULL); + if (filename != NULL) { + priv->synctex_scanner = + synctex_scanner_new_with_output_file (filename, NULL, 1); + g_free (filename); + } + } + } + + return retval; +} + +/** + * ev_document_save: + * @document: + * @uri: the target URI + * @error: a #GError location to store an error, or %NULL + * + * Saves @document to @uri. + * + * Returns: %TRUE on success, or %FALSE on error with @error filled in + */ +gboolean +ev_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->save (document, uri, error); +} + +EvPage * +ev_document_get_page (EvDocument *document, + gint index) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->get_page (document, index); +} + +static gboolean +_ev_document_support_synctex (EvDocument *document) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->support_synctex ? klass->support_synctex (document) : FALSE; +} + +gboolean +ev_document_has_synctex (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + return document->priv->synctex_scanner != NULL; +} + +/** + * ev_document_synctex_backward_search: + * @document: + * @page: the target page + * @x: + * @y: + * + * Peforms a Synctex backward search to obtain the TeX input file, line and + * (possibly) column corresponding to the position (@x,@y) (in 72dpi + * coordinates) in the @page of @document. + * + * Returns: A pointer to the EvSourceLink structure that holds the result. @NULL if synctex + * is not enabled for the document or no result is found. + * The EvSourceLink pointer should be freed with g_free after it is used. + */ +EvSourceLink * +ev_document_synctex_backward_search (EvDocument *document, + gint page_index, + gfloat x, + gfloat y) +{ + EvSourceLink *result = NULL; + synctex_scanner_t scanner; + + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + scanner = document->priv->synctex_scanner; + if (!scanner) + return NULL; + + if (synctex_edit_query (scanner, page_index + 1, x, y) > 0) { + synctex_node_t node; + + /* We assume that a backward search returns either zero or one result_node */ + node = synctex_next_result (scanner); + if (node != NULL) { + result = g_new (EvSourceLink, 1); + result->filename = synctex_scanner_get_name (scanner, + synctex_node_tag (node)); + result->line = synctex_node_line (node); + result->col = synctex_node_column (node); + } + } + + return result; +} + +/** + * ev_document_synctex_forward_search: + * @document: + * @source_link: + * + * Peforms a Synctex forward search to obtain the area in the document + * corresponding to the position @line and @column number in the source Tex file + * + * Returns: An EvMapping with the page number and area corresponfing to + * the given line in the source file. It must be free with g_free when done + */ +EvMapping * +ev_document_synctex_forward_search (EvDocument *document, + EvSourceLink *link) +{ + EvMapping *result = NULL; + synctex_scanner_t scanner; + + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + scanner = document->priv->synctex_scanner; + if (!scanner) + return NULL; + + if (synctex_display_query (scanner, link->filename, link->line, link->col) > 0) { + synctex_node_t node; + gint page; + + if ((node = synctex_next_result (scanner))) { + result = g_new (EvMapping, 1); + + page = synctex_node_page (node) - 1; + result->data = GINT_TO_POINTER (page); + + result->area.x1 = synctex_node_box_visible_h (node); + result->area.y1 = synctex_node_box_visible_v (node) - + synctex_node_box_visible_height (node); + result->area.x2 = synctex_node_box_visible_width (node) + result->area.x1; + result->area.y2 = synctex_node_box_visible_depth (node) + + synctex_node_box_visible_height (node) + result->area.y1; + } + } + + return result; +} + +static gint +_ev_document_get_n_pages (EvDocument *document) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->get_n_pages (document); +} + +gint +ev_document_get_n_pages (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), 0); + + return document->priv->n_pages; +} + +static void +_ev_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + klass->get_page_size (document, page, width, height); +} + +void +ev_document_get_page_size (EvDocument *document, + gint page_index, + double *width, + double *height) +{ + g_return_if_fail (EV_IS_DOCUMENT (document)); + g_return_if_fail (page_index >= 0 || page_index < document->priv->n_pages); + + if (width) + *width = document->priv->uniform ? + document->priv->uniform_width : + document->priv->page_sizes[page_index].width; + if (height) + *height = document->priv->uniform ? + document->priv->uniform_height : + document->priv->page_sizes[page_index].height; +} + +static gchar * +_ev_document_get_page_label (EvDocument *document, + EvPage *page) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->get_page_label ? + klass->get_page_label (document, page) : NULL; +} + +gchar * +ev_document_get_page_label (EvDocument *document, + gint page_index) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + g_return_val_if_fail (page_index >= 0 || page_index < document->priv->n_pages, NULL); + + return (document->priv->page_labels && document->priv->page_labels[page_index]) ? + g_strdup (document->priv->page_labels[page_index]) : + g_strdup_printf ("%d", page_index + 1); +} + +static EvDocumentInfo * +_ev_document_get_info (EvDocument *document) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->get_info (document); +} + +EvDocumentInfo * +ev_document_get_info (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + return document->priv->info; +} + +gboolean +ev_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + if (klass->get_backend_info == NULL) + return FALSE; + + return klass->get_backend_info (document, info); +} + +cairo_surface_t * +ev_document_render (EvDocument *document, + EvRenderContext *rc) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + return klass->render (document, rc); +} + +const gchar * +ev_document_get_uri (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + return document->priv->uri; +} + +const gchar * +ev_document_get_title (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + return (document->priv->info->fields_mask & EV_DOCUMENT_INFO_TITLE) ? + document->priv->info->title : NULL; +} + +gboolean +ev_document_is_page_size_uniform (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), TRUE); + + return document->priv->uniform; +} + +void +ev_document_get_max_page_size (EvDocument *document, + gdouble *width, + gdouble *height) +{ + g_return_if_fail (EV_IS_DOCUMENT (document)); + + if (width) + *width = document->priv->max_width; + if (height) + *height = document->priv->max_height; +} + +void +ev_document_get_min_page_size (EvDocument *document, + gdouble *width, + gdouble *height) +{ + g_return_if_fail (EV_IS_DOCUMENT (document)); + + if (width) + *width = document->priv->min_width; + if (height) + *height = document->priv->min_height; +} + +gboolean +ev_document_check_dimensions (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + return (document->priv->max_width > 0 && document->priv->max_height > 0); +} + +gint +ev_document_get_max_label_len (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), -1); + + return document->priv->max_label; +} + +gboolean +ev_document_has_text_page_labels (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + return document->priv->page_labels != NULL; +} + +gboolean +ev_document_find_page_by_label (EvDocument *document, + const gchar *page_label, + gint *page_index) +{ + gint i, page; + glong value; + gchar *endptr = NULL; + EvDocumentPrivate *priv = document->priv; + + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + g_return_val_if_fail (page_label != NULL, FALSE); + g_return_val_if_fail (page_index != NULL, FALSE); + + /* First, look for a literal label match */ + for (i = 0; priv->page_labels && i < priv->n_pages; i ++) { + if (priv->page_labels[i] != NULL && + ! strcmp (page_label, priv->page_labels[i])) { + *page_index = i; + return TRUE; + } + } + + /* Second, look for a match with case insensitively */ + for (i = 0; priv->page_labels && i < priv->n_pages; i++) { + if (priv->page_labels[i] != NULL && + ! strcasecmp (page_label, priv->page_labels[i])) { + *page_index = i; + return TRUE; + } + } + + /* Next, parse the label, and see if the number fits */ + value = strtol (page_label, &endptr, 10); + if (endptr[0] == '\0') { + /* Page number is an integer */ + page = MIN (G_MAXINT, value); + + /* convert from a page label to a page offset */ + page --; + if (page >= 0 && page < priv->n_pages) { + *page_index = page; + return TRUE; + } + } + + return FALSE; +} + +/* EvDocumentInfo */ +EV_DEFINE_BOXED_TYPE (EvDocumentInfo, ev_document_info, ev_document_info_copy, ev_document_info_free) + +EvDocumentInfo * +ev_document_info_copy (EvDocumentInfo *info) +{ + EvDocumentInfo *copy; + + g_return_val_if_fail (info != NULL, NULL); + + copy = g_new0 (EvDocumentInfo, 1); + copy->title = g_strdup (info->title); + copy->format = g_strdup (info->format); + copy->author = g_strdup (info->author); + copy->subject = g_strdup (info->subject); + copy->keywords = g_strdup (info->keywords); + copy->security = g_strdup (info->security); + copy->creator = g_strdup (info->creator); + copy->producer = g_strdup (info->producer); + copy->linearized = g_strdup (info->linearized); + + copy->creation_date = info->creation_date; + copy->modified_date = info->modified_date; + copy->layout = info->layout; + copy->mode = info->mode; + copy->ui_hints = info->ui_hints; + copy->permissions = info->permissions; + copy->n_pages = info->n_pages; + copy->license = ev_document_license_copy (info->license); + + copy->fields_mask = info->fields_mask; + + return copy; +} + +void +ev_document_info_free (EvDocumentInfo *info) +{ + if (info == NULL) + return; + + g_free (info->title); + g_free (info->format); + g_free (info->author); + g_free (info->subject); + g_free (info->keywords); + g_free (info->creator); + g_free (info->producer); + g_free (info->linearized); + g_free (info->security); + ev_document_license_free (info->license); + + g_free (info); +} + +/* EvDocumentLicense */ +EV_DEFINE_BOXED_TYPE (EvDocumentLicense, ev_document_license, ev_document_license_copy, ev_document_license_free) + +EvDocumentLicense * +ev_document_license_new (void) +{ + return g_new0 (EvDocumentLicense, 1); +} + +EvDocumentLicense * +ev_document_license_copy (EvDocumentLicense *license) +{ + EvDocumentLicense *new_license; + + if (!license) + return NULL; + + new_license = ev_document_license_new (); + + if (license->text) + new_license->text = g_strdup (license->text); + if (license->uri) + new_license->uri = g_strdup (license->uri); + if (license->web_statement) + new_license->web_statement = g_strdup (license->web_statement); + + return new_license; +} + +void +ev_document_license_free (EvDocumentLicense *license) +{ + if (!license) + return; + + g_free (license->text); + g_free (license->uri); + g_free (license->web_statement); + + g_free (license); +} + +const gchar * +ev_document_license_get_text (EvDocumentLicense *license) +{ + return license->text; +} + +const gchar * +ev_document_license_get_uri (EvDocumentLicense *license) +{ + return license->uri; +} + +const gchar * +ev_document_license_get_web_statement (EvDocumentLicense *license) +{ + return license->web_statement; +} + +/* EvRectangle */ +EV_DEFINE_BOXED_TYPE (EvRectangle, ev_rectangle, ev_rectangle_copy, ev_rectangle_free) + +EvRectangle * +ev_rectangle_new (void) +{ + return g_new0 (EvRectangle, 1); +} + +EvRectangle * +ev_rectangle_copy (EvRectangle *rectangle) +{ + EvRectangle *new_rectangle; + + g_return_val_if_fail (rectangle != NULL, NULL); + + new_rectangle = g_new (EvRectangle, 1); + *new_rectangle = *rectangle; + + return new_rectangle; +} + +void +ev_rectangle_free (EvRectangle *rectangle) +{ + g_free (rectangle); +} + +/* Compares two rects. returns 0 if they're equal */ +#define EPSILON 0.0000001 + +gint +ev_rect_cmp (EvRectangle *a, + EvRectangle *b) +{ + if (a == b) + return 0; + if (a == NULL || b == NULL) + return 1; + + return ! ((ABS (a->x1 - b->x1) < EPSILON) && + (ABS (a->y1 - b->y1) < EPSILON) && + (ABS (a->x2 - b->x2) < EPSILON) && + (ABS (a->y2 - b->y2) < EPSILON)); +} diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h new file mode 100644 index 00000000..a3fe0727 --- /dev/null +++ b/libdocument/ev-document.h @@ -0,0 +1,303 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2009 Carlos Garcia Campos + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_DOCUMENT_H +#define EV_DOCUMENT_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> +#include <cairo.h> + +#include "ev-document-info.h" +#include "ev-page.h" +#include "ev-render-context.h" + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT (ev_document_get_type ()) +#define EV_DOCUMENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT, EvDocument)) +#define EV_DOCUMENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT, EvDocumentClass)) +#define EV_IS_DOCUMENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT)) +#define EV_IS_DOCUMENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT)) +#define EV_DOCUMENT_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), EV_TYPE_DOCUMENT, EvDocumentClass)) + +typedef struct _EvDocument EvDocument; +typedef struct _EvDocumentClass EvDocumentClass; +typedef struct _EvDocumentPrivate EvDocumentPrivate; + +#define EV_DOCUMENT_ERROR ev_document_error_quark () +#define EV_DOC_MUTEX_LOCK (ev_document_doc_mutex_lock ()) +#define EV_DOC_MUTEX_UNLOCK (ev_document_doc_mutex_unlock ()) + +typedef enum +{ + EV_DOCUMENT_ERROR_INVALID, + EV_DOCUMENT_ERROR_ENCRYPTED +} EvDocumentError; + +typedef struct { + double x; + double y; +} EvPoint; + +typedef struct _EvRectangle EvRectangle; +typedef struct _EvMapping EvMapping; + +typedef struct _EvDocumentBackendInfo EvDocumentBackendInfo; +struct _EvDocumentBackendInfo +{ + const gchar *name; + const gchar *version; +}; + +typedef struct { + const gchar *filename; + gint line; + gint col; +} EvSourceLink; + +struct _EvDocument +{ + GObject base; + + EvDocumentPrivate *priv; +}; + +struct _EvDocumentClass +{ + GObjectClass base_class; + + /* Virtual Methods */ + gboolean (* load) (EvDocument *document, + const char *uri, + GError **error); + gboolean (* save) (EvDocument *document, + const char *uri, + GError **error); + gint (* get_n_pages) (EvDocument *document); + EvPage * (* get_page) (EvDocument *document, + gint index); + void (* get_page_size) (EvDocument *document, + EvPage *page, + double *width, + double *height); + gchar * (* get_page_label) (EvDocument *document, + EvPage *page); + cairo_surface_t * (* render) (EvDocument *document, + EvRenderContext *rc); + EvDocumentInfo * (* get_info) (EvDocument *document); + gboolean (* get_backend_info)(EvDocument *document, + EvDocumentBackendInfo *info); + gboolean (* support_synctex) (EvDocument *document); +}; + +GType ev_document_get_type (void) G_GNUC_CONST; +GQuark ev_document_error_quark (void); + +/* Document mutex */ +GMutex *ev_document_get_doc_mutex (void); +void ev_document_doc_mutex_lock (void); +void ev_document_doc_mutex_unlock (void); +gboolean ev_document_doc_mutex_trylock (void); + +/* FontConfig mutex */ +GMutex *ev_document_get_fc_mutex (void); +void ev_document_fc_mutex_lock (void); +void ev_document_fc_mutex_unlock (void); +gboolean ev_document_fc_mutex_trylock (void); + +EvDocumentInfo *ev_document_get_info (EvDocument *document); +gboolean ev_document_get_backend_info (EvDocument *document, + EvDocumentBackendInfo *info); +gboolean ev_document_load (EvDocument *document, + const char *uri, + GError **error); +gboolean ev_document_save (EvDocument *document, + const char *uri, + GError **error); +gint ev_document_get_n_pages (EvDocument *document); +EvPage *ev_document_get_page (EvDocument *document, + gint index); +void ev_document_get_page_size (EvDocument *document, + gint page_index, + double *width, + double *height); +gchar *ev_document_get_page_label (EvDocument *document, + gint page_index); +cairo_surface_t *ev_document_render (EvDocument *document, + EvRenderContext *rc); +const gchar *ev_document_get_uri (EvDocument *document); +const gchar *ev_document_get_title (EvDocument *document); +gboolean ev_document_is_page_size_uniform (EvDocument *document); +void ev_document_get_max_page_size (EvDocument *document, + gdouble *width, + gdouble *height); +void ev_document_get_min_page_size (EvDocument *document, + gdouble *width, + gdouble *height); +gboolean ev_document_check_dimensions (EvDocument *document); +gint ev_document_get_max_label_len (EvDocument *document); +gboolean ev_document_has_text_page_labels (EvDocument *document); +gboolean ev_document_find_page_by_label (EvDocument *document, + const gchar *page_label, + gint *page_index); +gboolean ev_document_has_synctex (EvDocument *document); + +EvSourceLink *ev_document_synctex_backward_search + (EvDocument *document, + gint page_index, + gfloat x, + gfloat y); + +EvMapping *ev_document_synctex_forward_search + (EvDocument *document, + EvSourceLink *source_link); + +gint ev_rect_cmp (EvRectangle *a, + EvRectangle *b); + +#define EV_TYPE_RECTANGLE (ev_rectangle_get_type ()) +struct _EvRectangle +{ + gdouble x1; + gdouble y1; + gdouble x2; + gdouble y2; +}; + +GType ev_rectangle_get_type (void) G_GNUC_CONST; +EvRectangle *ev_rectangle_new (void); +EvRectangle *ev_rectangle_copy (EvRectangle *ev_rect); +void ev_rectangle_free (EvRectangle *ev_rect); + +struct _EvMapping { + EvRectangle area; + gpointer data; +}; + +/* convenience macro to ease interface addition in the CODE + * section of EV_BACKEND_REGISTER_WITH_CODE (this macro relies on + * the g_define_type_id present within EV_BACKEND_REGISTER_WITH_CODE()). + * usage example: + * EV_BACKEND_REGISTER_WITH_CODE (PdfDocument, pdf_document, + * EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + * pdf_document_document_thumbnails_iface_init)); + */ +#define EV_BACKEND_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init) { \ + const GInterfaceInfo g_implement_interface_info = { \ + (GInterfaceInitFunc) iface_init, NULL, NULL \ + }; \ + g_type_module_add_interface (module, \ + g_define_type_id, \ + TYPE_IFACE, \ + &g_implement_interface_info); \ +} + +/* + * Utility macro used to register backends + * + * use: EV_BACKEND_REGISTER_WITH_CODE(BackendName, backend_name, CODE) + */ +#define EV_BACKEND_REGISTER_WITH_CODE(BackendName, backend_name, CODE) \ + \ +static GType g_define_type_id = 0; \ + \ +GType \ +backend_name##_get_type (void) \ +{ \ + return g_define_type_id; \ +} \ + \ +static void backend_name##_init (BackendName *self); \ +static void backend_name##_class_init (BackendName##Class *klass); \ +static gpointer backend_name##_parent_class = NULL; \ +static void backend_name##_class_intern_init (gpointer klass) \ +{ \ + backend_name##_parent_class = g_type_class_peek_parent (klass); \ + backend_name##_class_init ((BackendName##Class *) klass); \ +} \ + \ +G_MODULE_EXPORT GType \ +register_evince_backend (GTypeModule *module) \ +{ \ + const GTypeInfo our_info = { \ + sizeof (BackendName##Class), \ + NULL, /* base_init */ \ + NULL, /* base_finalize */ \ + (GClassInitFunc) backend_name##_class_intern_init, \ + NULL, \ + NULL, /* class_data */ \ + sizeof (BackendName), \ + 0, /* n_preallocs */ \ + (GInstanceInitFunc) backend_name##_init \ + }; \ + \ + /* Initialise the i18n stuff */ \ + bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); \ + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); \ + \ + g_define_type_id = g_type_module_register_type (module, \ + EV_TYPE_DOCUMENT, \ + #BackendName, \ + &our_info, \ + (GTypeFlags)0); \ + \ + CODE \ + \ + return g_define_type_id; \ +} + +/* + * Utility macro used to register backend + * + * use: EV_BACKEND_REGISTER(BackendName, backend_name) + */ +#define EV_BACKEND_REGISTER(BackendName, backend_name) \ + EV_BACKEND_REGISTER_WITH_CODE(BackendName, backend_name, ;) + +/* + * A convenience macro for boxed type implementations, which defines a + * type_name_get_type() function registering the boxed type. + */ +#define EV_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) \ +GType \ +type_name##_get_type (void) \ +{ \ + static volatile gsize g_define_type_id__volatile = 0; \ + if (g_once_init_enter (&g_define_type_id__volatile)) { \ + GType g_define_type_id = \ + g_boxed_type_register_static (g_intern_static_string (#TypeName), \ + (GBoxedCopyFunc) copy_func, \ + (GBoxedFreeFunc) free_func); \ + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + } \ + return g_define_type_id__volatile; \ +} + +G_END_DECLS + +#endif /* EV_DOCUMENT_H */ diff --git a/libdocument/ev-file-exporter.c b/libdocument/ev-file-exporter.c new file mode 100644 index 00000000..c6ca7e12 --- /dev/null +++ b/libdocument/ev-file-exporter.c @@ -0,0 +1,84 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-file-exporter.h" +#include "ev-document.h" + +G_DEFINE_INTERFACE (EvFileExporter, ev_file_exporter, 0) + +static void +ev_file_exporter_default_init (EvFileExporterInterface *klass) +{ +} + +void +ev_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + iface->begin (exporter, fc); +} + +void +ev_file_exporter_begin_page (EvFileExporter *exporter) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + if (iface->begin_page) + iface->begin_page (exporter); +} + +void +ev_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + iface->do_page (exporter, rc); +} + +void +ev_file_exporter_end_page (EvFileExporter *exporter) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + if (iface->end_page) + iface->end_page (exporter); +} + +void +ev_file_exporter_end (EvFileExporter *exporter) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + iface->end (exporter); +} + +EvFileExporterCapabilities +ev_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + return iface->get_capabilities (exporter); +} diff --git a/libdocument/ev-file-exporter.h b/libdocument/ev-file-exporter.h new file mode 100644 index 00000000..b1434e4d --- /dev/null +++ b/libdocument/ev-file-exporter.h @@ -0,0 +1,101 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_FILE_EXPORTER_H +#define EV_FILE_EXPORTER_H + +#include <glib-object.h> + +#include "ev-render-context.h" + +G_BEGIN_DECLS + +typedef enum { + EV_FILE_FORMAT_UNKNOWN, + EV_FILE_FORMAT_PS, + EV_FILE_FORMAT_PDF +} EvFileExporterFormat; + +typedef enum { + EV_FILE_EXPORTER_CAN_PAGE_SET = 1 << 0, + EV_FILE_EXPORTER_CAN_COPIES = 1 << 1, + EV_FILE_EXPORTER_CAN_COLLATE = 1 << 2, + EV_FILE_EXPORTER_CAN_REVERSE = 1 << 3, + EV_FILE_EXPORTER_CAN_SCALE = 1 << 4, + EV_FILE_EXPORTER_CAN_GENERATE_PDF = 1 << 5, + EV_FILE_EXPORTER_CAN_GENERATE_PS = 1 << 6, + EV_FILE_EXPORTER_CAN_PREVIEW = 1 << 7, + EV_FILE_EXPORTER_CAN_NUMBER_UP = 1 << 8 +} EvFileExporterCapabilities; + +typedef struct { + EvFileExporterFormat format; + const gchar *filename; + gint first_page; + gint last_page; + gdouble paper_width; + gdouble paper_height; + gboolean duplex; + gint pages_per_sheet; +} EvFileExporterContext; + +#define EV_TYPE_FILE_EXPORTER (ev_file_exporter_get_type ()) +#define EV_FILE_EXPORTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_FILE_EXPORTER, EvFileExporter)) +#define EV_FILE_EXPORTER_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_FILE_EXPORTER, EvFileExporterInterface)) +#define EV_IS_FILE_EXPORTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_FILE_EXPORTER)) +#define EV_IS_FILE_EXPORTER_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_FILE_EXPORTER)) +#define EV_FILE_EXPORTER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_FILE_EXPORTER, EvFileExporterInterface)) + +typedef struct _EvFileExporter EvFileExporter; +typedef struct _EvFileExporterInterface EvFileExporterInterface; + +struct _EvFileExporterInterface { + GTypeInterface base_iface; + + /* Methods */ + void (* begin) (EvFileExporter *exporter, + EvFileExporterContext *fc); + void (* begin_page) (EvFileExporter *exporter); + void (* do_page) (EvFileExporter *exporter, + EvRenderContext *rc); + void (* end_page) (EvFileExporter *exporter); + void (* end) (EvFileExporter *exporter); + EvFileExporterCapabilities (* get_capabilities) (EvFileExporter *exporter); +}; + +GType ev_file_exporter_get_type (void) G_GNUC_CONST; +void ev_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc); +void ev_file_exporter_begin_page (EvFileExporter *exporter); +void ev_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc); +void ev_file_exporter_end_page (EvFileExporter *exporter); +void ev_file_exporter_end (EvFileExporter *exporter); +EvFileExporterCapabilities ev_file_exporter_get_capabilities (EvFileExporter *exporter); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-file-helpers.c b/libdocument/ev-file-helpers.c new file mode 100644 index 00000000..b6ecb244 --- /dev/null +++ b/libdocument/ev-file-helpers.c @@ -0,0 +1,683 @@ +/* + * Copyright (C) 2002 Jorn Baayen + * Copyright Ā© 2009 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <stdlib.h> +#include <sys/types.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> + +#include <glib.h> +#include <glib/gstdio.h> +#include <glib/gi18n-lib.h> + +#include "ev-file-helpers.h" + +static gchar *tmp_dir = NULL; + +/* + * ev_dir_ensure_exists: + * @dir: the directory name + * @mode: permissions to use when creating the directory + * @error: a location to store a #GError + * + * Create @dir recursively with permissions @mode. + * + * Returns: %TRUE on success, or %FALSE on error with @error filled in + */ +static gboolean +_ev_dir_ensure_exists (const gchar *dir, + int mode, + GError **error) +{ + int errsv; + char *display_name; + + g_return_val_if_fail (dir != NULL, FALSE); + + errno = 0; + if (g_mkdir_with_parents (dir, mode) == 0) + return TRUE; + + errsv = errno; + if (errsv == EEXIST && g_file_test (dir, G_FILE_TEST_IS_DIR)) + return TRUE; + + display_name = g_filename_display_name (dir); + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errsv), + "Failed to create directory '%s': %s", + display_name, g_strerror (errsv)); + g_free (display_name); + + return FALSE; +} + +/* + * _ev_tmp_dir: + * @error: a location to store a #GError + * + * Returns the tmp directory. + * + * Returns: the tmp directory, or %NULL with @error filled in if the + * directory could not be created + */ +static const char * +_ev_tmp_dir (GError **error) +{ + + if (tmp_dir == NULL) { + gchar *dirname, *prgname; + + prgname = g_get_prgname (); + dirname = g_strdup_printf ("%s-%u", prgname ? prgname : "unknown", getpid ()); + tmp_dir = g_build_filename (g_get_tmp_dir (), dirname, NULL); + g_free (dirname); + } + + if (!_ev_dir_ensure_exists (tmp_dir, 0700, error)) + return NULL; + + return tmp_dir; +} + +void +_ev_file_helpers_init (void) +{ +} + +void +_ev_file_helpers_shutdown (void) +{ + if (tmp_dir != NULL) + g_rmdir (tmp_dir); + + g_free (tmp_dir); + tmp_dir = NULL; +} + +/** + * ev_mkstemp: + * @template: a template string; must contain 'XXXXXX', but not necessarily as a suffix + * @file_name: a location to store the filename of the temp file + * @error: a location to store a #GError + * + * Creates a temp file in the evince temp directory. + * + * Returns: a file descriptor to the newly created temp file name, or %-1 + * on error with @error filled in + */ +int +ev_mkstemp (const char *template, + char **file_name, + GError **error) +{ + const char *tmp; + char *name; + int fd; + + if ((tmp = _ev_tmp_dir (error)) == NULL) + return -1; + + name = g_build_filename (tmp, template, NULL); + fd = g_mkstemp (name); + + if (fd == -1) { + int errsv = errno; + + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errsv), + _("Failed to create a temporary file: %s"), + g_strerror (errsv)); + + g_free (name); + return -1; + } + + if (file_name) + *file_name = name; + + return fd; +} + +static void +close_fd_cb (gpointer fdptr) +{ + int fd = GPOINTER_TO_INT (fdptr); + + close (fd); +} + +/** + * ev_mkstemp_file: + * @template: a template string; must contain 'XXXXXX', but not necessarily as a suffix + * @error: a location to store a #GError + * + * Creates a temp #GFile in the evince temp directory. See ev_mkstemp() for more information. + * + * Returns: a newly allocated #GFile for the newly created temp file name, or %NULL + * on error with @error filled in + */ +GFile * +ev_mkstemp_file (const char *template, + GError **error) +{ + char *file_name; + int fd; + GFile *file; + + fd = ev_mkstemp (template, &file_name, error); + if (fd == -1) + return NULL; + + file = g_file_new_for_path (file_name); + g_free (file_name); + + g_object_set_data_full (G_OBJECT (file), "ev-mkstemp-fd", + GINT_TO_POINTER (fd), (GDestroyNotify) close_fd_cb); + + return file; +} + +/** + * This function is copied from + * http://bugzilla.mate.org/show_bug.cgi?id=524831 + * and renamed from g_mkdtemp to _ev_g_mkdtemp. + * + * If/when this function gets added to glib, it can be removed from + * evince' sources. + * + * + * g_mkdtemp: + * @tmpl: template directory name + * + * Creates a temporary directory. See the mkdtemp() documentation + * on most UNIX-like systems. + * + * The parameter is a string that should follow the rules for + * mkdtemp() templates, i.e. contain the string "XXXXXX". g_mkdtemp() + * is slightly more flexible than mkdtemp() in that the sequence does + * not have to occur at the very end of the template. The X string + * will be modified to form the name of a directory that didn't + * already exist. The string should be in the GLib file name + * encoding. Most importantly, on Windows it should be in UTF-8. + * + * Return value: If a temporary directory was successfully created, + * @tmpl will be returned with the XXXXXX string modified in such a + * way as to make the path unique. In case of errors, %NULL is + * returned. + */ +static gchar * +_ev_g_mkdtemp (gchar *tmpl) +{ + static const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + static const int NLETTERS = sizeof (letters) - 1; + static int counter = 0; + char *XXXXXX; + GTimeVal tv; + glong value; + int count; + + /* find the last occurrence of "XXXXXX" */ + XXXXXX = g_strrstr (tmpl, "XXXXXX"); + + if (!XXXXXX || strncmp (XXXXXX, "XXXXXX", 6)) + { + errno = EINVAL; + return NULL; + } + + /* Get some more or less random data. */ + g_get_current_time (&tv); + value = (tv.tv_usec ^ tv.tv_sec) + counter++; + + for (count = 0; count < 100; value += 7777, ++count) + { + glong v = value; + + /* Fill in the random bits. */ + XXXXXX[0] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[1] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[2] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[3] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[4] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[5] = letters[v % NLETTERS]; + + /* tmpl is in UTF-8 on Windows, thus use g_mkdir() */ + if (g_mkdir (tmpl, 0700) == 0) + return tmpl; + + if (errno != EEXIST) + /* Any other error will apply also to other names we might + * try, and there are 2^32 or so of them, so give up now. + */ + return NULL; + } + + /* We got out of the loop because we ran out of combinations to try. */ + errno = EEXIST; + return NULL; +} + +/** + * ev_mkdtemp: + * @template: a template string; must end in 'XXXXXX' + * @error: a location to store a #GError + * + * Creates a temp directory in the evince temp directory. + * + * Returns: a newly allocated string with the temp directory name, or %NULL + * on error with @error filled in + */ +gchar * +ev_mkdtemp (const char *template, + GError **error) +{ + const char *tmp; + char *name; + + if ((tmp = _ev_tmp_dir (error)) == NULL) + return NULL; + + name = g_build_filename (tmp, template, NULL); + if (_ev_g_mkdtemp (name) == NULL) { + int errsv = errno; + + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errsv), + _("Failed to create a temporary directory: %s"), + g_strerror (errsv)); + + g_free (name); + return NULL; + } + + return name; +} + +/* Remove a local temp file created by evince */ +void +ev_tmp_filename_unlink (const gchar *filename) +{ + if (!filename) + return; + + if (!tmp_dir) + return; + + if (g_str_has_prefix (filename, tmp_dir)) { + g_unlink (filename); + } +} + +void +ev_tmp_file_unlink (GFile *file) +{ + gboolean res; + GError *error = NULL; + + if (!file) + return; + + res = g_file_delete (file, NULL, &error); + if (!res) { + char *uri; + + uri = g_file_get_uri (file); + g_warning ("Unable to delete temp file %s: %s\n", uri, error->message); + g_free (uri); + g_error_free (error); + } +} + +void +ev_tmp_uri_unlink (const gchar *uri) +{ + GFile *file; + + if (!uri) + return; + + file = g_file_new_for_uri (uri); + if (!g_file_is_native (file)) { + g_warning ("Attempting to delete non native uri: %s\n", uri); + g_object_unref (file); + return; + } + + ev_tmp_file_unlink (file); + g_object_unref (file); +} + +gboolean +ev_file_is_temp (GFile *file) +{ + gchar *path; + gboolean retval; + + if (!g_file_is_native (file)) + return FALSE; + + path = g_file_get_path (file); + if (!path) + return FALSE; + + retval = g_str_has_prefix (path, g_get_tmp_dir ()); + g_free (path); + + return retval; +} + +/** + * ev_xfer_uri_simple: + * @from: the source URI + * @to: the target URI + * @error: a #GError location to store an error, or %NULL + * + * Performs a g_file_copy() from @from to @to. + * + * Returns: %TRUE on success, or %FALSE on error with @error filled in + */ +gboolean +ev_xfer_uri_simple (const char *from, + const char *to, + GError **error) +{ + GFile *source_file; + GFile *target_file; + gboolean result; + + if (!from) + return TRUE; + + g_return_val_if_fail (to != NULL, TRUE); + + source_file = g_file_new_for_uri (from); + target_file = g_file_new_for_uri (to); + + result = g_file_copy (source_file, target_file, + G_FILE_COPY_TARGET_DEFAULT_PERMS | + G_FILE_COPY_OVERWRITE, + NULL, NULL, NULL, error); + + g_object_unref (target_file); + g_object_unref (source_file); + + return result; +} + +static gchar * +get_mime_type_from_uri (const gchar *uri, GError **error) +{ + GFile *file; + GFileInfo *file_info; + const gchar *content_type; + gchar *mime_type = NULL; + + file = g_file_new_for_uri (uri); + file_info = g_file_query_info (file, + G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + 0, NULL, error); + g_object_unref (file); + + if (file_info == NULL) + return NULL; + + content_type = g_file_info_get_content_type (file_info); + if (content_type) { + mime_type = g_content_type_get_mime_type (content_type); + } + + g_object_unref (file_info); + return mime_type; +} + +static gchar * +get_mime_type_from_data (const gchar *uri, GError **error) +{ +#ifndef G_OS_WIN32 + GFile *file; + GFileInputStream *input_stream; + gssize size_read; + guchar buffer[1024]; + gboolean retval; + gchar *content_type, *mime_type; + + file = g_file_new_for_uri (uri); + + input_stream = g_file_read (file, NULL, error); + if (!input_stream) { + g_object_unref (file); + return NULL; + } + + size_read = g_input_stream_read (G_INPUT_STREAM (input_stream), + buffer, sizeof (buffer), NULL, error); + if (size_read == -1) { + g_object_unref (input_stream); + g_object_unref (file); + return NULL; + } + + retval = g_input_stream_close (G_INPUT_STREAM (input_stream), NULL, error); + + g_object_unref (input_stream); + g_object_unref (file); + if (!retval) + return NULL; + + content_type = g_content_type_guess (NULL, /* no filename */ + buffer, size_read, + NULL); + if (!content_type) + return NULL; + + mime_type = g_content_type_get_mime_type (content_type); + g_free (content_type); + return mime_type; +#else + /* + * On Windows, the implementation of g_content_type_guess() is too limited at the moment, so we do not + * use it and fall back to get_mime_type_from_uri() + */ + return get_mime_type_from_uri (uri, error); +#endif /* G_OS_WIN32 */ +} + +/** + * ev_file_get_mime_type: + * @uri: the URI + * @fast: whether to use fast MIME type detection + * @error: a #GError location to store an error, or %NULL + * + * Note: on unknown MIME types, this may return NULL without @error + * being filled in. + * + * Returns: a newly allocated string with the MIME type of the file at + * @uri, or %NULL on error or if the MIME type could not be determined + */ +gchar * +ev_file_get_mime_type (const gchar *uri, + gboolean fast, + GError **error) +{ + return fast ? get_mime_type_from_uri (uri, error) : get_mime_type_from_data (uri, error); +} + +/* Compressed files support */ +#define BZIPCOMMAND "bzip2" +#define GZIPCOMMAND "gzip" +#define N_ARGS 4 +#define BUFFER_SIZE 1024 + +static gchar * +compression_run (const gchar *uri, + EvCompressionType type, + gboolean compress, + GError **error) +{ + gchar *argv[N_ARGS]; + gchar *uri_dst = NULL; + gchar *filename, *filename_dst = NULL; + gchar *cmd; + gint fd, pout; + GError *err = NULL; + + if (type == EV_COMPRESSION_NONE) + return NULL; + + cmd = g_find_program_in_path ((type == EV_COMPRESSION_BZIP2) ? BZIPCOMMAND : GZIPCOMMAND); + if (!cmd) { + /* FIXME: better error codes! */ + /* FIXME: i18n later */ + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, + "Failed to find the \"%s\" command in the search path.", + type == EV_COMPRESSION_BZIP2 ? BZIPCOMMAND : GZIPCOMMAND); + return NULL; + } + + filename = g_filename_from_uri (uri, NULL, error); + if (!filename) { + g_free (cmd); + return NULL; + } + + fd = ev_mkstemp ("comp.XXXXXX", &filename_dst, error); + if (fd == -1) { + g_free (cmd); + g_free (filename); + + return NULL; + } + + argv[0] = cmd; + argv[1] = compress ? "-c" : "-cd"; + argv[2] = filename; + argv[3] = NULL; + + if (g_spawn_async_with_pipes (NULL, argv, NULL, + G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, + NULL, &pout, NULL, &err)) { + GIOChannel *in, *out; + gchar buf[BUFFER_SIZE]; + GIOStatus read_st, write_st; + gsize bytes_read, bytes_written; + + in = g_io_channel_unix_new (pout); + g_io_channel_set_encoding (in, NULL, NULL); + out = g_io_channel_unix_new (fd); + g_io_channel_set_encoding (out, NULL, NULL); + + do { + read_st = g_io_channel_read_chars (in, buf, + BUFFER_SIZE, + &bytes_read, + error); + if (read_st == G_IO_STATUS_NORMAL) { + write_st = g_io_channel_write_chars (out, buf, + bytes_read, + &bytes_written, + error); + if (write_st == G_IO_STATUS_ERROR) + break; + } else if (read_st == G_IO_STATUS_ERROR) { + break; + } + } while (bytes_read > 0); + + g_io_channel_unref (in); + g_io_channel_unref (out); + } + + close (fd); + + if (err) { + g_propagate_error (error, err); + } else { + uri_dst = g_filename_to_uri (filename_dst, NULL, error); + } + + g_free (cmd); + g_free (filename); + g_free (filename_dst); + + return uri_dst; +} + +/** + * ev_file_uncompress: + * @uri: a file URI + * @type: the compression type + * @error: a #GError location to store an error, or %NULL + * + * Uncompresses the file at @uri. + * + * If @type is %EV_COMPRESSION_NONE, it does nothing and returns %NULL. + * + * Otherwise, it returns the filename of a + * temporary file containing the decompressed data from the file at @uri. + * On error it returns %NULL and fills in @error. + * + * It is the caller's responsibility to unlink the temp file after use. + * + * Returns: a newly allocated string URI, or %NULL on error + */ +gchar * +ev_file_uncompress (const gchar *uri, + EvCompressionType type, + GError **error) +{ + g_return_val_if_fail (uri != NULL, NULL); + + return compression_run (uri, type, FALSE, error); +} + +/** + * ev_file_compress: + * @uri: a file URI + * @type: the compression type + * @error: a #GError location to store an error, or %NULL + * + * Compresses the file at @uri. + + * If @type is %EV_COMPRESSION_NONE, it does nothing and returns %NULL. + * + * Otherwise, it returns the filename of a + * temporary file containing the compressed data from the file at @uri. + * + * On error it returns %NULL and fills in @error. + * + * It is the caller's responsibility to unlink the temp file after use. + * + * Returns: a newly allocated string URI, or %NULL on error + */ +gchar * +ev_file_compress (const gchar *uri, + EvCompressionType type, + GError **error) +{ + g_return_val_if_fail (uri != NULL, NULL); + + return compression_run (uri, type, TRUE, error); +} diff --git a/libdocument/ev-file-helpers.h b/libdocument/ev-file-helpers.h new file mode 100644 index 00000000..fffae03f --- /dev/null +++ b/libdocument/ev-file-helpers.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2002 Jorn Baayen + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_FILE_HELPERS_H +#define EV_FILE_HELPERS_H + +#include <glib.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + +typedef enum { + EV_COMPRESSION_NONE, + EV_COMPRESSION_BZIP2, + EV_COMPRESSION_GZIP +} EvCompressionType; + +void _ev_file_helpers_init (void); + +void _ev_file_helpers_shutdown (void); + +int ev_mkstemp (const char *template, + char **file_name, + GError **error); +GFile *ev_mkstemp_file (const char *template, + GError **error); +gchar *ev_mkdtemp (const char *template, + GError **error); +void ev_tmp_filename_unlink (const gchar *filename); +void ev_tmp_file_unlink (GFile *file); +void ev_tmp_uri_unlink (const gchar *uri); +gboolean ev_file_is_temp (GFile *file); +gboolean ev_xfer_uri_simple (const char *from, + const char *to, + GError **error); + +gchar *ev_file_get_mime_type (const gchar *uri, + gboolean fast, + GError **error); + +gchar *ev_file_uncompress (const gchar *uri, + EvCompressionType type, + GError **error); +gchar *ev_file_compress (const gchar *uri, + EvCompressionType type, + GError **error); + + +G_END_DECLS + +#endif /* EV_FILE_HELPERS_H */ diff --git a/libdocument/ev-form-field.c b/libdocument/ev-form-field.c new file mode 100644 index 00000000..7bea0035 --- /dev/null +++ b/libdocument/ev-form-field.c @@ -0,0 +1,209 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2006 Julien Rebetez + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-form-field.h" + +static void ev_form_field_init (EvFormField *field); +static void ev_form_field_class_init (EvFormFieldClass *klass); +static void ev_form_field_text_init (EvFormFieldText *field_text); +static void ev_form_field_text_class_init (EvFormFieldTextClass *klass); +static void ev_form_field_button_init (EvFormFieldButton *field_button); +static void ev_form_field_button_class_init (EvFormFieldButtonClass *klass); +static void ev_form_field_choice_init (EvFormFieldChoice *field_choice); +static void ev_form_field_choice_class_init (EvFormFieldChoiceClass *klass); +static void ev_form_field_signature_init (EvFormFieldSignature *field_choice); +static void ev_form_field_signature_class_init (EvFormFieldSignatureClass *klass); + +G_DEFINE_ABSTRACT_TYPE (EvFormField, ev_form_field, G_TYPE_OBJECT) +G_DEFINE_TYPE (EvFormFieldText, ev_form_field_text, EV_TYPE_FORM_FIELD) +G_DEFINE_TYPE (EvFormFieldButton, ev_form_field_button, EV_TYPE_FORM_FIELD) +G_DEFINE_TYPE (EvFormFieldChoice, ev_form_field_choice, EV_TYPE_FORM_FIELD) +G_DEFINE_TYPE (EvFormFieldSignature, ev_form_field_signature, EV_TYPE_FORM_FIELD) + +static void +ev_form_field_init (EvFormField *field) +{ + field->page = NULL; + field->changed = FALSE; + field->is_read_only = FALSE; +} + +static void +ev_form_field_finalize (GObject *object) +{ + EvFormField *field = EV_FORM_FIELD (object); + + g_object_unref (field->page); + field->page = NULL; + + (* G_OBJECT_CLASS (ev_form_field_parent_class)->finalize) (object); +} + +static void +ev_form_field_class_init (EvFormFieldClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_form_field_finalize; +} + +static void +ev_form_field_text_finalize (GObject *object) +{ + EvFormFieldText *field_text = EV_FORM_FIELD_TEXT (object); + + if (field_text->text) { + g_free (field_text->text); + field_text->text = NULL; + } + + (* G_OBJECT_CLASS (ev_form_field_text_parent_class)->finalize) (object); +} + +static void +ev_form_field_text_init (EvFormFieldText *field_text) +{ +} + +static void +ev_form_field_text_class_init (EvFormFieldTextClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_form_field_text_finalize; +} + +static void +ev_form_field_button_init (EvFormFieldButton *field_button) +{ +} + +static void +ev_form_field_button_class_init (EvFormFieldButtonClass *klass) +{ +} + +static void +ev_form_field_choice_finalize (GObject *object) +{ + EvFormFieldChoice *field_choice = EV_FORM_FIELD_CHOICE (object); + + if (field_choice->selected_items) { + g_list_free (field_choice->selected_items); + field_choice->selected_items = NULL; + } + + if (field_choice->text) { + g_free (field_choice->text); + field_choice->text = NULL; + } + + (* G_OBJECT_CLASS (ev_form_field_choice_parent_class)->finalize) (object); +} + +static void +ev_form_field_choice_init (EvFormFieldChoice *field_choice) +{ +} + +static void +ev_form_field_choice_class_init (EvFormFieldChoiceClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_form_field_choice_finalize; +} + +static void +ev_form_field_signature_init (EvFormFieldSignature *field_signature) +{ +} + +static void +ev_form_field_signature_class_init (EvFormFieldSignatureClass *klass) +{ +} + +EvFormField * +ev_form_field_text_new (gint id, + EvFormFieldTextType type) +{ + EvFormField *field; + + g_return_val_if_fail (id >= 0, NULL); + g_return_val_if_fail (type >= EV_FORM_FIELD_TEXT_NORMAL && + type <= EV_FORM_FIELD_TEXT_FILE_SELECT, NULL); + + field = EV_FORM_FIELD (g_object_new (EV_TYPE_FORM_FIELD_TEXT, NULL)); + field->id = id; + EV_FORM_FIELD_TEXT (field)->type = type; + + return field; +} + +EvFormField * +ev_form_field_button_new (gint id, + EvFormFieldButtonType type) +{ + EvFormField *field; + + g_return_val_if_fail (id >= 0, NULL); + g_return_val_if_fail (type >= EV_FORM_FIELD_BUTTON_PUSH && + type <= EV_FORM_FIELD_BUTTON_RADIO, NULL); + + field = EV_FORM_FIELD (g_object_new (EV_TYPE_FORM_FIELD_BUTTON, NULL)); + field->id = id; + EV_FORM_FIELD_BUTTON (field)->type = type; + + return field; +} + +EvFormField * +ev_form_field_choice_new (gint id, + EvFormFieldChoiceType type) +{ + EvFormField *field; + + g_return_val_if_fail (id >= 0, NULL); + g_return_val_if_fail (type >= EV_FORM_FIELD_CHOICE_COMBO && + type <= EV_FORM_FIELD_CHOICE_LIST, NULL); + + field = EV_FORM_FIELD (g_object_new (EV_TYPE_FORM_FIELD_CHOICE, NULL)); + field->id = id; + EV_FORM_FIELD_CHOICE (field)->type = type; + + return field; +} + +EvFormField * +ev_form_field_signature_new (gint id) +{ + EvFormField *field; + + g_return_val_if_fail (id >= 0, NULL); + + field = EV_FORM_FIELD (g_object_new (EV_TYPE_FORM_FIELD_SIGNATURE, NULL)); + field->id = id; + + return field; +} + diff --git a/libdocument/ev-form-field.h b/libdocument/ev-form-field.h new file mode 100644 index 00000000..06948dc1 --- /dev/null +++ b/libdocument/ev-form-field.h @@ -0,0 +1,214 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Julien Rebetez + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_FORM_FIELD_H +#define EV_FORM_FIELD_H + +#include <glib-object.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + +#define EV_TYPE_FORM_FIELD (ev_form_field_get_type()) +#define EV_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD, EvFormField)) +#define EV_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD, EvFormFieldClass)) +#define EV_IS_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD)) +#define EV_IS_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD)) +#define EV_FORM_FIELD_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD, EvFormFieldClass)) + +#define EV_TYPE_FORM_FIELD_TEXT (ev_form_field_text_get_type()) +#define EV_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldText)) +#define EV_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldTextClass)) +#define EV_IS_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_TEXT)) +#define EV_IS_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_TEXT)) +#define EV_FORM_FIELD_TEXT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldTextClass)) + +#define EV_TYPE_FORM_FIELD_BUTTON (ev_form_field_button_get_type()) +#define EV_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButton)) +#define EV_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButtonClass)) +#define EV_IS_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_BUTTON)) +#define EV_IS_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_BUTTON)) +#define EV_FORM_FIELD_BUTTON_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButtonClass)) + +#define EV_TYPE_FORM_FIELD_CHOICE (ev_form_field_choice_get_type()) +#define EV_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoice)) +#define EV_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoiceClass)) +#define EV_IS_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_CHOICE)) +#define EV_IS_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_CHOICE)) +#define EV_FORM_FIELD_CHOICE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoiceClass)) + +#define EV_TYPE_FORM_FIELD_SIGNATURE (ev_form_field_signature_get_type()) +#define EV_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignature)) +#define EV_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignatureClass)) +#define EV_IS_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_SIGNATURE)) +#define EV_IS_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_SIGNATURE)) +#define EV_FORM_FIELD_SIGNATURE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignatureClass)) + +typedef struct _EvFormField EvFormField; +typedef struct _EvFormFieldClass EvFormFieldClass; + +typedef struct _EvFormFieldText EvFormFieldText; +typedef struct _EvFormFieldTextClass EvFormFieldTextClass; + +typedef struct _EvFormFieldButton EvFormFieldButton; +typedef struct _EvFormFieldButtonClass EvFormFieldButtonClass; + +typedef struct _EvFormFieldChoice EvFormFieldChoice; +typedef struct _EvFormFieldChoiceClass EvFormFieldChoiceClass; + +typedef struct _EvFormFieldSignature EvFormFieldSignature; +typedef struct _EvFormFieldSignatureClass EvFormFieldSignatureClass; + +typedef enum +{ + EV_FORM_FIELD_TEXT_NORMAL, + EV_FORM_FIELD_TEXT_MULTILINE, + EV_FORM_FIELD_TEXT_FILE_SELECT +} EvFormFieldTextType; + +typedef enum +{ + EV_FORM_FIELD_BUTTON_PUSH, + EV_FORM_FIELD_BUTTON_CHECK, + EV_FORM_FIELD_BUTTON_RADIO +} EvFormFieldButtonType; + +typedef enum +{ + EV_FORM_FIELD_CHOICE_COMBO, + EV_FORM_FIELD_CHOICE_LIST +} EvFormFieldChoiceType; + +struct _EvFormField +{ + GObject parent; + + gint id; + gboolean is_read_only; + gdouble font_size; + + EvPage *page; + gboolean changed; +}; + +struct _EvFormFieldClass +{ + GObjectClass parent_class; +}; + +struct _EvFormFieldText +{ + EvFormField partent; + + EvFormFieldTextType type; + + gboolean do_spell_check : 1; + gboolean do_scroll : 1; + gboolean comb : 1; + gboolean is_rich_text : 1; + gboolean is_password; + + gint max_len; + gchar *text; +}; + +struct _EvFormFieldTextClass +{ + EvFormFieldClass partent_class; +}; + +struct _EvFormFieldButton +{ + EvFormField partent; + + EvFormFieldButtonType type; + + gboolean state; +}; + +struct _EvFormFieldButtonClass +{ + EvFormFieldClass partent_class; +}; + +struct _EvFormFieldChoice +{ + EvFormField partent; + + EvFormFieldChoiceType type; + + gboolean multi_select : 1; + gboolean is_editable : 1; + gboolean do_spell_check : 1; + gboolean commit_on_sel_change : 1; + + GList *selected_items; + gchar *text; +}; + +struct _EvFormFieldChoiceClass +{ + EvFormFieldClass partent_class; +}; + +struct _EvFormFieldSignature +{ + EvFormField partent; + + /* TODO */ +}; + +struct _EvFormFieldSignatureClass +{ + EvFormFieldClass partent_class; +}; + +/* EvFormField base class */ +GType ev_form_field_get_type (void) G_GNUC_CONST; + +/* EvFormFieldText */ +GType ev_form_field_text_get_type (void) G_GNUC_CONST; +EvFormField *ev_form_field_text_new (gint id, + EvFormFieldTextType type); + +/* EvFormFieldButton */ +GType ev_form_field_button_get_type (void) G_GNUC_CONST; +EvFormField *ev_form_field_button_new (gint id, + EvFormFieldButtonType type); + +/* EvFormFieldChoice */ +GType ev_form_field_choice_get_type (void) G_GNUC_CONST; +EvFormField *ev_form_field_choice_new (gint id, + EvFormFieldChoiceType type); + +/* EvFormFieldSignature */ +GType ev_form_field_signature_get_type (void) G_GNUC_CONST; +EvFormField *ev_form_field_signature_new (gint id); + + +G_END_DECLS + +#endif /* !EV_FORM_FIELD_H */ + diff --git a/libdocument/ev-image.c b/libdocument/ev-image.c new file mode 100644 index 00000000..19ffed51 --- /dev/null +++ b/libdocument/ev-image.c @@ -0,0 +1,181 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <glib/gstdio.h> +#include <unistd.h> + +#include "ev-document-misc.h" +#include "ev-file-helpers.h" +#include "ev-image.h" + +struct _EvImagePrivate { + gint page; + gint id; + GdkPixbuf *pixbuf; + gchar *tmp_uri; +}; + +#define EV_IMAGE_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_IMAGE, EvImagePrivate)) + +G_DEFINE_TYPE (EvImage, ev_image, G_TYPE_OBJECT) + +static void +ev_image_finalize (GObject *object) +{ + EvImage *image = EV_IMAGE (object); + + if (image->priv->pixbuf) { + g_object_unref (image->priv->pixbuf); + image->priv->pixbuf = NULL; + } + + if (image->priv->tmp_uri) { + gchar *filename; + + filename = g_filename_from_uri (image->priv->tmp_uri, NULL, NULL); + ev_tmp_filename_unlink (filename); + g_free (filename); + g_free (image->priv->tmp_uri); + image->priv->tmp_uri = NULL; + } + + (* G_OBJECT_CLASS (ev_image_parent_class)->finalize) (object); +} + +static void +ev_image_class_init (EvImageClass *klass) +{ + GObjectClass *g_object_class; + + g_object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (g_object_class, sizeof (EvImagePrivate)); + + g_object_class->finalize = ev_image_finalize; +} + +static void +ev_image_init (EvImage *image) +{ + image->priv = EV_IMAGE_GET_PRIVATE (image); +} + +EvImage * +ev_image_new (gint page, + gint img_id) +{ + EvImage *image; + + image = EV_IMAGE (g_object_new (EV_TYPE_IMAGE, NULL)); + image->priv->page = page; + image->priv->id = img_id; + + return image; +} + +EvImage * +ev_image_new_from_pixbuf (GdkPixbuf *pixbuf) +{ + EvImage *image; + + g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); + + image = EV_IMAGE (g_object_new (EV_TYPE_IMAGE, NULL)); + image->priv->pixbuf = g_object_ref (pixbuf); + + return image; +} + +gint +ev_image_get_page (EvImage *image) +{ + g_return_val_if_fail (EV_IS_IMAGE (image), -1); + + return image->priv->page; +} + +gint +ev_image_get_id (EvImage *image) +{ + g_return_val_if_fail (EV_IS_IMAGE (image), -1); + + return image->priv->id; +} + +GdkPixbuf * +ev_image_get_pixbuf (EvImage *image) +{ + g_return_val_if_fail (EV_IS_IMAGE (image), NULL); + g_return_val_if_fail (GDK_IS_PIXBUF (image->priv->pixbuf), NULL); + + return image->priv->pixbuf; +} + +const gchar * +ev_image_save_tmp (EvImage *image, + GdkPixbuf *pixbuf) +{ + GError *error = NULL; + gchar *filename = NULL; + int fd; + + g_return_val_if_fail (EV_IS_IMAGE (image), NULL); + g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); + + if (image->priv->tmp_uri) + return image->priv->tmp_uri; + + if ((fd = ev_mkstemp ("image.XXXXXX", &filename, &error)) == -1) + goto had_error; + + gdk_pixbuf_save (pixbuf, filename, + "png", &error, + "compression", "3", NULL); + close (fd); + + if (!error) { + image->priv->tmp_uri = g_filename_to_uri (filename, NULL, &error); + if (image->priv->tmp_uri == NULL) + goto had_error; + + g_free (filename); + + return image->priv->tmp_uri; + } + + had_error: + + /* Erro saving image */ + g_warning ("Error saving image: %s", error->message); + g_error_free (error); + g_free (filename); + + return NULL; +} + +const gchar * +ev_image_get_tmp_uri (EvImage *image) +{ + g_return_val_if_fail (EV_IS_IMAGE (image), NULL); + + return image->priv->tmp_uri; +} diff --git a/libdocument/ev-image.h b/libdocument/ev-image.h new file mode 100644 index 00000000..c3227c96 --- /dev/null +++ b/libdocument/ev-image.h @@ -0,0 +1,68 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef __EV_IMAGE_H__ +#define __EV_IMAGE_H__ + +#include <glib-object.h> +#include <gdk/gdk.h> + +G_BEGIN_DECLS + +typedef struct _EvImage EvImage; +typedef struct _EvImageClass EvImageClass; +typedef struct _EvImagePrivate EvImagePrivate; + +#define EV_TYPE_IMAGE (ev_image_get_type()) +#define EV_IMAGE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_IMAGE, EvImage)) +#define EV_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_IMAGE, EvImageClass)) +#define EV_IS_IMAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_IMAGE)) +#define EV_IS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_IMAGE)) +#define EV_IMAGE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_IMAGE, EvImageClass)) + +struct _EvImage { + GObject base_instance; + + EvImagePrivate *priv; +}; + +struct _EvImageClass { + GObjectClass base_class; +}; + +GType ev_image_get_type (void) G_GNUC_CONST; +EvImage *ev_image_new (gint page, + gint img_id); +EvImage *ev_image_new_from_pixbuf (GdkPixbuf *pixbuf); + +gint ev_image_get_id (EvImage *image); +gint ev_image_get_page (EvImage *image); +GdkPixbuf *ev_image_get_pixbuf (EvImage *image); +const gchar *ev_image_save_tmp (EvImage *image, + GdkPixbuf *pixbuf); +const gchar *ev_image_get_tmp_uri (EvImage *image); + + +G_END_DECLS + +#endif /* __EV_IMAGE_H__ */ diff --git a/libdocument/ev-init.c b/libdocument/ev-init.c new file mode 100644 index 00000000..31863357 --- /dev/null +++ b/libdocument/ev-init.c @@ -0,0 +1,154 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright Ā© 2009 Christian Persch + * + * Evince 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. + * + * Evince 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. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <glib.h> +#include <glib/gi18n-lib.h> +#ifdef G_OS_WIN32 +#include <windows.h> +#endif + +#include "ev-init.h" +#include "ev-backends-manager.h" +#include "ev-debug.h" +#include "ev-file-helpers.h" + +static int ev_init_count; + +#ifdef G_OS_WIN32 + +static HMODULE evdocument_dll = NULL; +static gchar *locale_dir = NULL; + +#ifdef DLL_EXPORT +BOOL WINAPI +DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved) +{ + if (fdwReason == DLL_PROCESS_ATTACH) + evdocument_dll = hinstDLL; + + return TRUE; +} +#endif + +static const gchar * +_ev_win32_get_locale_dir (HMODULE module) +{ + if (locale_dir) + return locale_dir; + + gchar *install_dir = NULL, *utf8_locale_dir; + gchar *retval = NULL; + + if (evdocument_dll != NULL) + install_dir = + g_win32_get_package_installation_directory_of_module (module); + + if (install_dir) { + utf8_locale_dir = g_build_filename (install_dir, + "share", "locale", NULL); + + locale_dir = g_win32_locale_filename_from_utf8 (utf8_locale_dir); + + g_free (install_dir); + g_free (utf8_locale_dir); + } + + if (!locale_dir) + locale_dir = g_strdup (""); +} + +#endif + +const gchar * +ev_get_locale_dir (void) +{ +#ifdef G_OS_WIN32 + return _ev_win32_get_locale_dir (evdocument_dll); +#else + return MATELOCALEDIR; +#endif +} + +/** + * ev_init: + * + * Initializes the evince document library, and binds the evince + * gettext domain. + * + * You must call this before calling any other function in the evince + * document library. + * + * Returns: %TRUE if any backends were found; %FALSE otherwise + */ +gboolean +ev_init (void) +{ + static gboolean have_backends; + + if (ev_init_count++ > 0) + return have_backends; + + /* set up translation catalog */ + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir ()); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + + _ev_debug_init (); + _ev_file_helpers_init (); + have_backends = _ev_backends_manager_init (); + + return have_backends; +} + +/** + * ev_shutdown: + * + * Shuts the evince document library down. + */ +void +ev_shutdown (void) +{ + g_assert (_ev_is_initialized ()); + + if (--ev_init_count > 0) + return; + +#ifdef G_OS_WIN32 + if (locale_dir != NULL) + g_free(locale_dir); +#endif + + _ev_backends_manager_shutdown (); + _ev_file_helpers_shutdown (); + _ev_debug_shutdown (); +} + +/* + * _ev_is_initialized: + * + * Returns: %TRUE if the evince document library has been initialized + */ +gboolean +_ev_is_initialized (void) +{ + return ev_init_count > 0; +} diff --git a/libdocument/ev-init.h b/libdocument/ev-init.h new file mode 100644 index 00000000..b9cddf4f --- /dev/null +++ b/libdocument/ev-init.h @@ -0,0 +1,41 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright Ā© 2009 Christian Persch + * + * Evince 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. + * + * Evince 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. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_INIT_H +#define EV_INIT_H + +#include <glib.h> + +G_BEGIN_DECLS + +const gchar* ev_get_locale_dir (void); + +gboolean ev_init (void); + +void ev_shutdown (void); + +gboolean _ev_is_initialized (void); + +G_END_DECLS + +#endif /* EV_INIT_H */ diff --git a/libdocument/ev-layer.c b/libdocument/ev-layer.c new file mode 100644 index 00000000..935268c1 --- /dev/null +++ b/libdocument/ev-layer.c @@ -0,0 +1,86 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-layer.h" + +struct _EvLayerPrivate { + guint id; + gboolean is_parent; + gint rb_group; +}; + +#define EV_LAYER_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_LAYER, EvLayerPrivate)) + +G_DEFINE_TYPE (EvLayer, ev_layer, G_TYPE_OBJECT) + +static void +ev_layer_class_init (EvLayerClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (g_object_class, sizeof (EvLayerPrivate)); +} + +static void +ev_layer_init (EvLayer *layer) +{ + layer->priv = EV_LAYER_GET_PRIVATE (layer); +} + +EvLayer * +ev_layer_new (guint layer_id, + gboolean is_parent, + gint rb_group) +{ + EvLayer *layer; + + layer = EV_LAYER (g_object_new (EV_TYPE_LAYER, NULL)); + layer->priv->id = layer_id; + layer->priv->is_parent = is_parent; + layer->priv->rb_group = rb_group; + + return layer; +} + +guint +ev_layer_get_id (EvLayer *layer) +{ + g_return_val_if_fail (EV_IS_LAYER (layer), 0); + + return layer->priv->id; +} + +gboolean +ev_layer_is_parent (EvLayer *layer) +{ + g_return_val_if_fail (EV_IS_LAYER (layer), FALSE); + + return layer->priv->is_parent; +} + +gint +ev_layer_get_rb_group (EvLayer *layer) +{ + g_return_val_if_fail (EV_IS_LAYER (layer), 0); + + return layer->priv->rb_group; +} diff --git a/libdocument/ev-layer.h b/libdocument/ev-layer.h new file mode 100644 index 00000000..809c4701 --- /dev/null +++ b/libdocument/ev-layer.h @@ -0,0 +1,62 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef __EV_LAYER_H__ +#define __EV_LAYER_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _EvLayer EvLayer; +typedef struct _EvLayerClass EvLayerClass; +typedef struct _EvLayerPrivate EvLayerPrivate; + +#define EV_TYPE_LAYER (ev_layer_get_type()) +#define EV_LAYER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LAYER, EvLayer)) +#define EV_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LAYER, EvLayerClass)) +#define EV_IS_LAYER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LAYER)) +#define EV_IS_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LAYER)) +#define EV_LAYER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LAYER, EvLayerClass)) + +struct _EvLayer { + GObject base_instance; + + EvLayerPrivate *priv; +}; + +struct _EvLayerClass { + GObjectClass base_class; +}; + +GType ev_layer_get_type (void) G_GNUC_CONST; +EvLayer *ev_layer_new (guint layer_id, + gboolean is_parent, + gint rb_group); +guint ev_layer_get_id (EvLayer *layer); +gboolean ev_layer_is_parent (EvLayer *layer); +gint ev_layer_get_rb_group (EvLayer *layer); + +G_END_DECLS + +#endif /* __EV_LAYER_H__ */ diff --git a/libdocument/ev-link-action.c b/libdocument/ev-link-action.c new file mode 100644 index 00000000..9ebc9a30 --- /dev/null +++ b/libdocument/ev-link-action.c @@ -0,0 +1,341 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-link-action.h" +#include "ev-document-type-builtins.h" + +enum { + PROP_0, + PROP_TYPE, + PROP_DEST, + PROP_URI, + PROP_FILENAME, + PROP_PARAMS, + PROP_NAME +}; + +struct _EvLinkAction { + GObject base_instance; + + EvLinkActionPrivate *priv; +}; + +struct _EvLinkActionClass { + GObjectClass base_class; +}; + +struct _EvLinkActionPrivate { + EvLinkActionType type; + EvLinkDest *dest; + gchar *uri; + gchar *filename; + gchar *params; + gchar *name; +}; + +G_DEFINE_TYPE (EvLinkAction, ev_link_action, G_TYPE_OBJECT) + +#define EV_LINK_ACTION_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_LINK_ACTION, EvLinkActionPrivate)) + +EvLinkActionType +ev_link_action_get_action_type (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), 0); + + return self->priv->type; +} + +EvLinkDest * +ev_link_action_get_dest (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL); + + return self->priv->dest; +} + +const gchar * +ev_link_action_get_uri (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL); + + return self->priv->uri; +} + +const gchar * +ev_link_action_get_filename (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL); + + return self->priv->filename; +} + +const gchar * +ev_link_action_get_params (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL); + + return self->priv->params; +} + +const gchar * +ev_link_action_get_name (EvLinkAction *self) +{ + g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL); + + return self->priv->name; +} + +static void +ev_link_action_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *param_spec) +{ + EvLinkAction *self; + + self = EV_LINK_ACTION (object); + + switch (prop_id) { + case PROP_TYPE: + g_value_set_enum (value, self->priv->type); + break; + case PROP_DEST: + g_value_set_pointer (value, self->priv->dest); + break; + case PROP_URI: + g_value_set_string (value, self->priv->uri); + break; + case PROP_FILENAME: + g_value_set_string (value, self->priv->filename); + break; + case PROP_PARAMS: + g_value_set_string (value, self->priv->params); + break; + case PROP_NAME: + g_value_set_string (value, self->priv->name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_action_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *param_spec) +{ + EvLinkAction *self = EV_LINK_ACTION (object); + + switch (prop_id) { + case PROP_TYPE: + self->priv->type = g_value_get_enum (value); + break; + case PROP_DEST: + self->priv->dest = g_value_get_pointer (value); + break; + case PROP_URI: + g_free (self->priv->uri); + self->priv->uri = g_value_dup_string (value); + break; + case PROP_FILENAME: + g_free (self->priv->filename); + self->priv->filename = g_value_dup_string (value); + break; + case PROP_PARAMS: + g_free (self->priv->params); + self->priv->params = g_value_dup_string (value); + break; + case PROP_NAME: + g_free (self->priv->name); + self->priv->name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_action_finalize (GObject *object) +{ + EvLinkActionPrivate *priv; + + priv = EV_LINK_ACTION (object)->priv; + + if (priv->dest) { + g_object_unref (priv->dest); + priv->dest = NULL; + } + + if (priv->uri) { + g_free (priv->uri); + priv->uri = NULL; + } + + if (priv->filename) { + g_free (priv->filename); + priv->filename = NULL; + } + + if (priv->params) { + g_free (priv->params); + priv->params = NULL; + } + + if (priv->name) { + g_free (priv->name); + priv->name = NULL; + } + + G_OBJECT_CLASS (ev_link_action_parent_class)->finalize (object); +} + +static void +ev_link_action_init (EvLinkAction *ev_link_action) +{ + ev_link_action->priv = EV_LINK_ACTION_GET_PRIVATE (ev_link_action); + + ev_link_action->priv->dest = NULL; + ev_link_action->priv->uri = NULL; + ev_link_action->priv->filename = NULL; + ev_link_action->priv->params = NULL; + ev_link_action->priv->name = NULL; +} + +static void +ev_link_action_class_init (EvLinkActionClass *ev_link_action_class) +{ + GObjectClass *g_object_class; + + g_object_class = G_OBJECT_CLASS (ev_link_action_class); + + g_object_class->set_property = ev_link_action_set_property; + g_object_class->get_property = ev_link_action_get_property; + + g_object_class->finalize = ev_link_action_finalize; + + g_type_class_add_private (g_object_class, sizeof (EvLinkActionPrivate)); + + g_object_class_install_property (g_object_class, + PROP_TYPE, + g_param_spec_enum ("type", + "Action Type", + "The link action type", + EV_TYPE_LINK_ACTION_TYPE, + EV_LINK_ACTION_TYPE_GOTO_DEST, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_DEST, + g_param_spec_pointer ("dest", + "Action destination", + "The link action destination", + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_URI, + g_param_spec_string ("uri", + "Link Action URI", + "The link action URI", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_FILENAME, + g_param_spec_string ("filename", + "Filename", + "The link action filename", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_PARAMS, + g_param_spec_string ("params", + "Params", + "The link action params", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_NAME, + g_param_spec_string ("name", + "Name", + "The link action name", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); +} + +EvLinkAction * +ev_link_action_new_dest (EvLinkDest *dest) +{ + return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION, + "dest", dest, + "type", EV_LINK_ACTION_TYPE_GOTO_DEST, + NULL)); +} + +EvLinkAction * +ev_link_action_new_remote (EvLinkDest *dest, + const gchar *filename) +{ + return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION, + "dest", dest, + "filename", filename, + "type", EV_LINK_ACTION_TYPE_GOTO_REMOTE, + NULL)); +} + +EvLinkAction * +ev_link_action_new_external_uri (const gchar *uri) +{ + return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION, + "uri", uri, + "type", EV_LINK_ACTION_TYPE_EXTERNAL_URI, + NULL)); +} + +EvLinkAction * +ev_link_action_new_launch (const gchar *filename, + const gchar *params) +{ + return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION, + "filename", filename, + "params", params, + "type", EV_LINK_ACTION_TYPE_LAUNCH, + NULL)); +} + +EvLinkAction * +ev_link_action_new_named (const gchar *name) +{ + return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION, + "name", name, + "type", EV_LINK_ACTION_TYPE_NAMED, + NULL)); +} diff --git a/libdocument/ev-link-action.h b/libdocument/ev-link-action.h new file mode 100644 index 00000000..6940a53b --- /dev/null +++ b/libdocument/ev-link-action.h @@ -0,0 +1,73 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_LINK_ACTION_H +#define EV_LINK_ACTION_H + +#include <glib-object.h> +#include "ev-link-dest.h" + +G_BEGIN_DECLS + +typedef struct _EvLinkAction EvLinkAction; +typedef struct _EvLinkActionClass EvLinkActionClass; +typedef struct _EvLinkActionPrivate EvLinkActionPrivate; + +#define EV_TYPE_LINK_ACTION (ev_link_action_get_type()) +#define EV_LINK_ACTION(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LINK_ACTION, EvLinkAction)) +#define EV_LINK_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LINK_ACTION, EvLinkActionClass)) +#define EV_IS_LINK_ACTION(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LINK_ACTION)) +#define EV_IS_LINK_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK_ACTION)) +#define EV_LINK_ACTION_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LINK_ACTION, EvLinkActionClass)) + +typedef enum { + EV_LINK_ACTION_TYPE_GOTO_DEST, + EV_LINK_ACTION_TYPE_GOTO_REMOTE, + EV_LINK_ACTION_TYPE_EXTERNAL_URI, + EV_LINK_ACTION_TYPE_LAUNCH, + EV_LINK_ACTION_TYPE_NAMED + /* We'll probably fill this in more as we support the other types of + * actions */ +} EvLinkActionType; + +GType ev_link_action_get_type (void) G_GNUC_CONST; + +EvLinkActionType ev_link_action_get_action_type (EvLinkAction *self); +EvLinkDest *ev_link_action_get_dest (EvLinkAction *self); +const gchar *ev_link_action_get_uri (EvLinkAction *self); +const gchar *ev_link_action_get_filename (EvLinkAction *self); +const gchar *ev_link_action_get_params (EvLinkAction *self); +const gchar *ev_link_action_get_name (EvLinkAction *self); + +EvLinkAction *ev_link_action_new_dest (EvLinkDest *dest); +EvLinkAction *ev_link_action_new_remote (EvLinkDest *dest, + const gchar *filename); +EvLinkAction *ev_link_action_new_external_uri (const gchar *uri); +EvLinkAction *ev_link_action_new_launch (const gchar *filename, + const gchar *params); +EvLinkAction *ev_link_action_new_named (const gchar *name); + +G_END_DECLS + +#endif /* EV_LINK_ACTION_H */ diff --git a/libdocument/ev-link-dest.c b/libdocument/ev-link-dest.c new file mode 100644 index 00000000..f73f99f7 --- /dev/null +++ b/libdocument/ev-link-dest.c @@ -0,0 +1,511 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-link-dest.h" +#include "ev-document-type-builtins.h" + +enum { + PROP_0, + PROP_TYPE, + PROP_PAGE, + PROP_LEFT, + PROP_TOP, + PROP_BOTTOM, + PROP_RIGHT, + PROP_ZOOM, + PROP_CHANGE, + PROP_NAMED, + PROP_PAGE_LABEL +}; + +typedef enum { + EV_DEST_CHANGE_TOP = 1 << 0, + EV_DEST_CHANGE_LEFT = 1 << 1, + EV_DEST_CHANGE_ZOOM = 1 << 2 +} EvDestChange; + +struct _EvLinkDest { + GObject base_instance; + + EvLinkDestPrivate *priv; +}; + +struct _EvLinkDestClass { + GObjectClass base_class; +}; + +struct _EvLinkDestPrivate { + EvLinkDestType type; + int page; + double top; + double left; + double bottom; + double right; + double zoom; + EvDestChange change; + gchar *named; + gchar *page_label; +}; + +G_DEFINE_TYPE (EvLinkDest, ev_link_dest, G_TYPE_OBJECT) + +#define EV_LINK_DEST_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_LINK_DEST, EvLinkDestPrivate)) + +EvLinkDestType +ev_link_dest_get_dest_type (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + return self->priv->type; +} + +gint +ev_link_dest_get_page (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), -1); + + return self->priv->page; +} + +gdouble +ev_link_dest_get_top (EvLinkDest *self, + gboolean *change_top) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + if (change_top) + *change_top = (self->priv->change & EV_DEST_CHANGE_TOP); + + return self->priv->top; +} + +gdouble +ev_link_dest_get_left (EvLinkDest *self, + gboolean *change_left) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + if (change_left) + *change_left = (self->priv->change & EV_DEST_CHANGE_LEFT); + + return self->priv->left; +} + +gdouble +ev_link_dest_get_bottom (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + return self->priv->bottom; +} + +gdouble +ev_link_dest_get_right (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + return self->priv->right; +} + +gdouble +ev_link_dest_get_zoom (EvLinkDest *self, + gboolean *change_zoom) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), 0); + + if (change_zoom) + *change_zoom = (self->priv->change & EV_DEST_CHANGE_ZOOM); + + return self->priv->zoom; +} + +const gchar * +ev_link_dest_get_named_dest (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), NULL); + + return self->priv->named; +} + +const gchar * +ev_link_dest_get_page_label (EvLinkDest *self) +{ + g_return_val_if_fail (EV_IS_LINK_DEST (self), NULL); + + return self->priv->page_label; +} + +static void +ev_link_dest_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *param_spec) +{ + EvLinkDest *self; + + self = EV_LINK_DEST (object); + + switch (prop_id) { + case PROP_TYPE: + g_value_set_enum (value, self->priv->type); + break; + case PROP_PAGE: + g_value_set_int (value, self->priv->page); + break; + case PROP_TOP: + g_value_set_double (value, self->priv->top); + break; + case PROP_LEFT: + g_value_set_double (value, self->priv->left); + break; + case PROP_BOTTOM: + g_value_set_double (value, self->priv->bottom); + break; + case PROP_RIGHT: + g_value_set_double (value, self->priv->left); + break; + case PROP_ZOOM: + g_value_set_double (value, self->priv->zoom); + break; + case PROP_CHANGE: + g_value_set_uint (value, self->priv->change); + break; + case PROP_NAMED: + g_value_set_string (value, self->priv->named); + break; + case PROP_PAGE_LABEL: + g_value_set_string (value, self->priv->page_label); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_dest_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *param_spec) +{ + EvLinkDest *self = EV_LINK_DEST (object); + + switch (prop_id) { + case PROP_TYPE: + self->priv->type = g_value_get_enum (value); + break; + case PROP_PAGE: + self->priv->page = g_value_get_int (value); + break; + case PROP_TOP: + self->priv->top = g_value_get_double (value); + break; + case PROP_LEFT: + self->priv->left = g_value_get_double (value); + break; + case PROP_BOTTOM: + self->priv->bottom = g_value_get_double (value); + break; + case PROP_RIGHT: + self->priv->right = g_value_get_double (value); + break; + case PROP_ZOOM: + self->priv->zoom = g_value_get_double (value); + break; + case PROP_CHANGE: + self->priv->change = g_value_get_uint (value); + break; + case PROP_NAMED: + self->priv->named = g_value_dup_string (value); + break; + case PROP_PAGE_LABEL: + self->priv->page_label = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_dest_finalize (GObject *object) +{ + EvLinkDestPrivate *priv; + + priv = EV_LINK_DEST (object)->priv; + + if (priv->named) { + g_free (priv->named); + priv->named = NULL; + } + if (priv->page_label) { + g_free (priv->page_label); + priv->page_label = NULL; + } + + G_OBJECT_CLASS (ev_link_dest_parent_class)->finalize (object); +} + +static void +ev_link_dest_init (EvLinkDest *ev_link_dest) +{ + ev_link_dest->priv = EV_LINK_DEST_GET_PRIVATE (ev_link_dest); + + ev_link_dest->priv->named = NULL; +} + +static void +ev_link_dest_class_init (EvLinkDestClass *ev_link_dest_class) +{ + GObjectClass *g_object_class; + + g_object_class = G_OBJECT_CLASS (ev_link_dest_class); + + g_object_class->set_property = ev_link_dest_set_property; + g_object_class->get_property = ev_link_dest_get_property; + + g_object_class->finalize = ev_link_dest_finalize; + + g_type_class_add_private (g_object_class, sizeof (EvLinkDestPrivate)); + + g_object_class_install_property (g_object_class, + PROP_TYPE, + g_param_spec_enum ("type", + "Dest Type", + "The destination type", + EV_TYPE_LINK_DEST_TYPE, + EV_LINK_DEST_TYPE_UNKNOWN, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_PAGE, + g_param_spec_int ("page", + "Dest Page", + "The destination page", + -1, + G_MAXINT, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_LEFT, + g_param_spec_double ("left", + "Left coordinate", + "The left coordinate", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_TOP, + g_param_spec_double ("top", + "Top coordinate", + "The top coordinate", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_BOTTOM, + g_param_spec_double ("bottom", + "Bottom coordinate", + "The bottom coordinate", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_RIGHT, + g_param_spec_double ("right", + "Right coordinate", + "The right coordinate", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (g_object_class, + PROP_ZOOM, + g_param_spec_double ("zoom", + "Zoom", + "Zoom", + 0, + G_MAXDOUBLE, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_CHANGE, + g_param_spec_uint ("change", + "Change", + "Wether top, left, and zoom should be changed", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_NAMED, + g_param_spec_string ("named", + "Named destination", + "The named destination", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_PAGE_LABEL, + g_param_spec_string ("page_label", + "Label of the page", + "The label of the destination page", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); +} + +EvLinkDest * +ev_link_dest_new_page (gint page) +{ + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_PAGE, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_xyz (gint page, + gdouble left, + gdouble top, + gdouble zoom, + gboolean change_left, + gboolean change_top, + gboolean change_zoom) +{ + EvDestChange change = 0; + + if (change_left) + change |= EV_DEST_CHANGE_LEFT; + if (change_top) + change |= EV_DEST_CHANGE_TOP; + if (change_zoom) + change |= EV_DEST_CHANGE_ZOOM; + + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_XYZ, + "left", left, + "top", top, + "zoom", zoom, + "change", change, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_fit (gint page) +{ + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_FIT, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_fith (gint page, + gdouble top, + gboolean change_top) +{ + EvDestChange change = 0; + + if (change_top) + change |= EV_DEST_CHANGE_TOP; + + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_FITH, + "top", top, + "change", change, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_fitv (gint page, + gdouble left, + gboolean change_left) +{ + EvDestChange change = 0; + + if (change_left) + change |= EV_DEST_CHANGE_LEFT; + + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_FITV, + "left", left, + "change", change, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_fitr (gint page, + gdouble left, + gdouble bottom, + gdouble right, + gdouble top) +{ + EvDestChange change = EV_DEST_CHANGE_TOP | EV_DEST_CHANGE_LEFT; + + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page", page, + "type", EV_LINK_DEST_TYPE_FITR, + "left", left, + "bottom", bottom, + "right", right, + "top", top, + "change", change, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_named (const gchar *named_dest) +{ + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "named", named_dest, + "type", EV_LINK_DEST_TYPE_NAMED, + NULL)); +} + +EvLinkDest * +ev_link_dest_new_page_label (const gchar *page_label) +{ + return EV_LINK_DEST (g_object_new (EV_TYPE_LINK_DEST, + "page_label", page_label, + "type", EV_LINK_DEST_TYPE_PAGE_LABEL, + NULL)); +} diff --git a/libdocument/ev-link-dest.h b/libdocument/ev-link-dest.h new file mode 100644 index 00000000..2288d32c --- /dev/null +++ b/libdocument/ev-link-dest.h @@ -0,0 +1,95 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_LINK_DEST_H +#define EV_LINK_DEST_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _EvLinkDest EvLinkDest; +typedef struct _EvLinkDestClass EvLinkDestClass; +typedef struct _EvLinkDestPrivate EvLinkDestPrivate; + +#define EV_TYPE_LINK_DEST (ev_link_dest_get_type()) +#define EV_LINK_DEST(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LINK_DEST, EvLinkDest)) +#define EV_LINK_DEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LINK_DEST, EvLinkDestClass)) +#define EV_IS_LINK_DEST(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LINK_DEST)) +#define EV_IS_LINK_DEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK_DEST)) +#define EV_LINK_DEST_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LINK_DEST, EvLinkDestClass)) + +typedef enum { + EV_LINK_DEST_TYPE_PAGE, + EV_LINK_DEST_TYPE_XYZ, + EV_LINK_DEST_TYPE_FIT, + EV_LINK_DEST_TYPE_FITH, + EV_LINK_DEST_TYPE_FITV, + EV_LINK_DEST_TYPE_FITR, + EV_LINK_DEST_TYPE_NAMED, + EV_LINK_DEST_TYPE_PAGE_LABEL, + EV_LINK_DEST_TYPE_UNKNOWN +} EvLinkDestType; + +GType ev_link_dest_get_type (void) G_GNUC_CONST; + +EvLinkDestType ev_link_dest_get_dest_type (EvLinkDest *self); +gint ev_link_dest_get_page (EvLinkDest *self); +gdouble ev_link_dest_get_top (EvLinkDest *self, + gboolean *change_top); +gdouble ev_link_dest_get_left (EvLinkDest *self, + gboolean *change_left); +gdouble ev_link_dest_get_bottom (EvLinkDest *self); +gdouble ev_link_dest_get_right (EvLinkDest *self); +gdouble ev_link_dest_get_zoom (EvLinkDest *self, + gboolean *change_zoom); +const gchar *ev_link_dest_get_named_dest (EvLinkDest *self); +const gchar *ev_link_dest_get_page_label (EvLinkDest *self); + +EvLinkDest *ev_link_dest_new_page (gint page); +EvLinkDest *ev_link_dest_new_xyz (gint page, + gdouble left, + gdouble top, + gdouble zoom, + gboolean change_left, + gboolean change_top, + gboolean change_zoom); +EvLinkDest *ev_link_dest_new_fit (gint page); +EvLinkDest *ev_link_dest_new_fith (gint page, + gdouble top, + gboolean change_top); +EvLinkDest *ev_link_dest_new_fitv (gint page, + gdouble left, + gboolean change_left); +EvLinkDest *ev_link_dest_new_fitr (gint page, + gdouble left, + gdouble bottom, + gdouble right, + gdouble top); +EvLinkDest *ev_link_dest_new_named (const gchar *named_dest); +EvLinkDest *ev_link_dest_new_page_label (const gchar *page_label); + +G_END_DECLS + +#endif /* EV_LINK_DEST_H */ diff --git a/libdocument/ev-link.c b/libdocument/ev-link.c new file mode 100644 index 00000000..b521e68c --- /dev/null +++ b/libdocument/ev-link.c @@ -0,0 +1,202 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-link.h" + +enum { + PROP_0, + PROP_TITLE, + PROP_ACTION +}; + +struct _EvLink { + GObject base_instance; + EvLinkPrivate *priv; +}; + +struct _EvLinkClass { + GObjectClass base_class; +}; + +struct _EvLinkPrivate { + gchar *title; + EvLinkAction *action; +}; + +G_DEFINE_TYPE (EvLink, ev_link, G_TYPE_OBJECT) + +#define EV_LINK_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_LINK, EvLinkPrivate)) + +const gchar * +ev_link_get_title (EvLink *self) +{ + g_return_val_if_fail (EV_IS_LINK (self), NULL); + + return self->priv->title; +} + +EvLinkAction * +ev_link_get_action (EvLink *self) +{ + g_return_val_if_fail (EV_IS_LINK (self), NULL); + + return self->priv->action; +} + +static void +ev_link_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *param_spec) +{ + EvLink *self; + + self = EV_LINK (object); + + switch (prop_id) { + case PROP_TITLE: + g_value_set_string (value, self->priv->title); + break; + case PROP_ACTION: + g_value_set_pointer (value, self->priv->action); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *param_spec) +{ + EvLink *self = EV_LINK (object); + + switch (prop_id) { + case PROP_TITLE: + self->priv->title = g_value_dup_string (value); + break; + case PROP_ACTION: + self->priv->action = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, + prop_id, + param_spec); + break; + } +} + +static void +ev_link_finalize (GObject *object) +{ + EvLinkPrivate *priv; + + priv = EV_LINK (object)->priv; + + if (priv->title) { + g_free (priv->title); + priv->title = NULL; + } + + if (priv->action) { + g_object_unref (priv->action); + priv->action = NULL; + } + + G_OBJECT_CLASS (ev_link_parent_class)->finalize (object); +} + +static void +ev_link_init (EvLink *ev_link) +{ + ev_link->priv = EV_LINK_GET_PRIVATE (ev_link); + + ev_link->priv->title = NULL; + ev_link->priv->action = NULL; +} + +static void +ev_link_class_init (EvLinkClass *ev_window_class) +{ + GObjectClass *g_object_class; + + g_object_class = G_OBJECT_CLASS (ev_window_class); + + g_object_class->set_property = ev_link_set_property; + g_object_class->get_property = ev_link_get_property; + + g_object_class->finalize = ev_link_finalize; + + g_type_class_add_private (g_object_class, sizeof (EvLinkPrivate)); + + g_object_class_install_property (g_object_class, + PROP_TITLE, + g_param_spec_string ("title", + "Link Title", + "The link title", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_ACTION, + g_param_spec_pointer ("action", + "Link Action", + "The link action", + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); +} + +EvLink * +ev_link_new (const char *title, + EvLinkAction *action) +{ + return EV_LINK (g_object_new (EV_TYPE_LINK, + "title", title, + "action", action, + NULL)); +} + +gint +ev_link_get_page (EvLink *link) +{ + EvLinkAction *action; + EvLinkDest *dest; + + action = ev_link_get_action (link); + if (!action) + return -1; + + if (ev_link_action_get_action_type (action) != + EV_LINK_ACTION_TYPE_GOTO_DEST) + return -1; + + dest = ev_link_action_get_dest (action); + if (dest) + return ev_link_dest_get_page (dest); + + return -1; +} diff --git a/libdocument/ev-link.h b/libdocument/ev-link.h new file mode 100644 index 00000000..9da28c9b --- /dev/null +++ b/libdocument/ev-link.h @@ -0,0 +1,55 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc. + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_LINK_H +#define EV_LINK_H + +#include <glib-object.h> +#include "ev-document.h" +#include "ev-link-action.h" + +G_BEGIN_DECLS + +typedef struct _EvLink EvLink; +typedef struct _EvLinkClass EvLinkClass; +typedef struct _EvLinkPrivate EvLinkPrivate; + +#define EV_TYPE_LINK (ev_link_get_type()) +#define EV_LINK(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LINK, EvLink)) +#define EV_LINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LINK, EvLinkClass)) +#define EV_IS_LINK(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LINK)) +#define EV_IS_LINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK)) +#define EV_LINK_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LINK, EvLinkClass)) + +GType ev_link_get_type (void) G_GNUC_CONST; + +EvLink *ev_link_new (const gchar *title, + EvLinkAction *action); + +const gchar *ev_link_get_title (EvLink *self); +EvLinkAction *ev_link_get_action (EvLink *self); +gint ev_link_get_page (EvLink *link); + +G_END_DECLS + +#endif /* !EV_LINK_H */ diff --git a/libdocument/ev-mapping-list.c b/libdocument/ev-mapping-list.c new file mode 100644 index 00000000..50ee9b77 --- /dev/null +++ b/libdocument/ev-mapping-list.c @@ -0,0 +1,146 @@ +/* ev-mapping.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "ev-mapping-list.h" + +struct _EvMappingList { + guint page; + GList *list; + GDestroyNotify data_destroy_func; + volatile gint ref_count; +}; + +EvMapping * +ev_mapping_list_find (EvMappingList *mapping_list, + gconstpointer data) +{ + GList *list; + + for (list = mapping_list->list; list; list = list->next) { + EvMapping *mapping = list->data; + + if (mapping->data == data) + return mapping; + } + + return NULL; +} + +EvMapping * +ev_mapping_list_find_custom (EvMappingList *mapping_list, + gconstpointer data, + GCompareFunc func) +{ + GList *list; + + for (list = mapping_list->list; list; list = list->next) { + EvMapping *mapping = list->data; + + if (!func (mapping->data, data)) + return mapping; + } + + return NULL; +} + +gpointer +ev_mapping_list_get_data (EvMappingList *mapping_list, + gdouble x, + gdouble y) +{ + GList *list; + + for (list = mapping_list->list; list; list = list->next) { + EvMapping *mapping = list->data; + + if ((x >= mapping->area.x1) && + (y >= mapping->area.y1) && + (x <= mapping->area.x2) && + (y <= mapping->area.y2)) { + return mapping->data; + } + } + + return NULL; +} + +GList * +ev_mapping_list_get_list (EvMappingList *mapping_list) +{ + return mapping_list ? mapping_list->list : NULL; +} + +guint +ev_mapping_list_get_page (EvMappingList *mapping_list) +{ + return mapping_list->page; +} + +EvMappingList * +ev_mapping_list_new (guint page, + GList *list, + GDestroyNotify data_destroy_func) +{ + EvMappingList *mapping_list; + + g_return_val_if_fail (data_destroy_func != NULL, NULL); + + mapping_list = g_slice_new (EvMappingList); + mapping_list->page = page; + mapping_list->list = list; + mapping_list->data_destroy_func = data_destroy_func; + mapping_list->ref_count = 1; + + return mapping_list; +} + +EvMappingList * +ev_mapping_list_ref (EvMappingList *mapping_list) +{ + g_return_val_if_fail (mapping_list != NULL, NULL); + g_return_val_if_fail (mapping_list->ref_count > 0, mapping_list); + + g_atomic_int_add (&mapping_list->ref_count, 1); + + return mapping_list; +} + +static void +mapping_list_free_foreach (EvMapping *mapping, + GDestroyNotify destroy_func) +{ + destroy_func (mapping->data); + g_free (mapping); +} + +void +ev_mapping_list_unref (EvMappingList *mapping_list) +{ + g_return_if_fail (mapping_list != NULL); + g_return_if_fail (mapping_list->ref_count > 0); + + if (g_atomic_int_exchange_and_add (&mapping_list->ref_count, -1) - 1 == 0) { + g_list_foreach (mapping_list->list, + (GFunc)mapping_list_free_foreach, + mapping_list->data_destroy_func); + g_list_free (mapping_list->list); + g_slice_free (EvMappingList, mapping_list); + } +} diff --git a/libdocument/ev-mapping-list.h b/libdocument/ev-mapping-list.h new file mode 100644 index 00000000..c86aee5e --- /dev/null +++ b/libdocument/ev-mapping-list.h @@ -0,0 +1,53 @@ +/* ev-mapping.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_MAPPING_LIST_H +#define EV_MAPPING_LIST_H + +#include "ev-document.h" + +G_BEGIN_DECLS + +typedef struct _EvMappingList EvMappingList; + +EvMappingList *ev_mapping_list_new (guint page, + GList *list, + GDestroyNotify data_destroy_func); +EvMappingList *ev_mapping_list_ref (EvMappingList *mapping_list); +void ev_mapping_list_unref (EvMappingList *mapping_list); + +guint ev_mapping_list_get_page (EvMappingList *mapping_list); +GList *ev_mapping_list_get_list (EvMappingList *mapping_list); +EvMapping *ev_mapping_list_find (EvMappingList *mapping_list, + gconstpointer data); +EvMapping *ev_mapping_list_find_custom (EvMappingList *mapping_list, + gconstpointer data, + GCompareFunc func); +gpointer ev_mapping_list_get_data (EvMappingList *mapping_list, + gdouble x, + gdouble y); + +G_END_DECLS + +#endif /* EV_MAPPING_LIST_H */ diff --git a/libdocument/ev-module.c b/libdocument/ev-module.c new file mode 100644 index 00000000..330da2cc --- /dev/null +++ b/libdocument/ev-module.c @@ -0,0 +1,196 @@ +/* + * ev-module.c + * This file is part of Evince + * + * Copyright (C) 2005 - Paolo Maggi + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* This is a modified version of ephy-module.c from Epiphany source code. + * Here the original copyright assignment: + * + * Copyright (C) 2003 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + */ + +/* + * Modified by the gedit Team, 2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id: gedit-module.c 5367 2006-12-17 14:29:49Z pborelli $ + */ + +/* Modified by evince team */ + +#include "config.h" + +#include "ev-module.h" + +#include <gmodule.h> + +typedef struct _EvModuleClass EvModuleClass; + +struct _EvModuleClass { + GTypeModuleClass parent_class; +}; + +struct _EvModule { + GTypeModule parent_instance; + + GModule *library; + gboolean resident; + + gchar *path; + GType type; +}; + +typedef GType (*EvModuleRegisterFunc) (GTypeModule *); + +static void ev_module_init (EvModule *action); +static void ev_module_class_init (EvModuleClass *class); + +G_DEFINE_TYPE (EvModule, ev_module, G_TYPE_TYPE_MODULE) + +static gboolean +ev_module_load (GTypeModule *gmodule) +{ + EvModule *module = EV_MODULE (gmodule); + EvModuleRegisterFunc register_func; + + module->library = g_module_open (module->path, 0); + + if (!module->library) { + g_warning ("%s", g_module_error ()); + + return FALSE; + } + + /* extract symbols from the lib */ + if (!g_module_symbol (module->library, "register_evince_backend", + (void *) ®ister_func)) { + g_warning ("%s", g_module_error ()); + g_module_close (module->library); + + return FALSE; + } + + /* symbol can still be NULL even though g_module_symbol + * returned TRUE */ + if (!register_func) { + g_warning ("Symbol 'register_evince_backend' should not be NULL"); + g_module_close (module->library); + + return FALSE; + } + + module->type = register_func (gmodule); + + if (module->type == 0) { + g_warning ("Invalid evince backend contained by module %s", module->path); + + return FALSE; + } + + if (module->resident) + g_module_make_resident (module->library); + + return TRUE; +} + +static void +ev_module_unload (GTypeModule *gmodule) +{ + EvModule *module = EV_MODULE (gmodule); + + g_module_close (module->library); + + module->library = NULL; + module->type = 0; +} + +const gchar * +ev_module_get_path (EvModule *module) +{ + g_return_val_if_fail (EV_IS_MODULE (module), NULL); + + return module->path; +} + +GObject * +ev_module_new_object (EvModule *module) +{ + g_return_val_if_fail (EV_IS_MODULE (module), NULL); + + if (module->type == 0) + return NULL; + + return g_object_new (module->type, NULL); +} + +GType +ev_module_get_object_type (EvModule *module) +{ + g_return_val_if_fail (EV_IS_MODULE (module), 0); + + return module->type; +} + +static void +ev_module_init (EvModule *module) +{ +} + +static void +ev_module_finalize (GObject *object) +{ + EvModule *module = EV_MODULE (object); + + g_free (module->path); + + G_OBJECT_CLASS (ev_module_parent_class)->finalize (object); +} + +static void +ev_module_class_init (EvModuleClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (class); + + object_class->finalize = ev_module_finalize; + + module_class->load = ev_module_load; + module_class->unload = ev_module_unload; +} + +EvModule * +ev_module_new (const gchar *path, + gboolean resident) +{ + EvModule *result; + + g_return_val_if_fail (path != NULL && path[0] != '\0', NULL); + + result = g_object_new (EV_TYPE_MODULE, NULL); + + g_type_module_set_name (G_TYPE_MODULE (result), path); + result->path = g_strdup (path); + result->resident = resident; + + return result; +} diff --git a/libdocument/ev-module.h b/libdocument/ev-module.h new file mode 100644 index 00000000..8ac33626 --- /dev/null +++ b/libdocument/ev-module.h @@ -0,0 +1,74 @@ +/* + * ev-module.h + * This file is part of Evince + * + * Copyright (C) 2005 - Paolo Maggi + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +/* This is a modified version of gedit-module.h from Epiphany source code. + * Here the original copyright assignment: + * + * Copyright (C) 2003 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + */ + +/* + * Modified by the gedit Team, 2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id: gedit-module.h 5263 2006-10-08 14:26:02Z pborelli $ + */ + +/* Modified by Evince Team */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef EV_MODULE_H +#define EV_MODULE_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_MODULE (ev_module_get_type ()) +#define EV_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_MODULE, EvModule)) +#define EV_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_MODULE, EvModuleClass)) +#define EV_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_MODULE)) +#define EV_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EV_TYPE_MODULE)) +#define EV_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EV_TYPE_MODULE, EvModuleClass)) + +typedef struct _EvModule EvModule; + +GType ev_module_get_type (void) G_GNUC_CONST; + +EvModule *ev_module_new (const gchar *path, + gboolean resident); + +const gchar *ev_module_get_path (EvModule *module); + +GObject *ev_module_new_object (EvModule *module); + +GType ev_module_get_object_type (EvModule *module); + +G_END_DECLS + +#endif /* EV_MODULE_H */ diff --git a/libdocument/ev-page.c b/libdocument/ev-page.c new file mode 100644 index 00000000..3e122332 --- /dev/null +++ b/libdocument/ev-page.c @@ -0,0 +1,62 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-page.h" + +G_DEFINE_TYPE (EvPage, ev_page, G_TYPE_OBJECT) + +static void +ev_page_init (EvPage *page) +{ +} + +static void +ev_page_finalize (GObject *object) +{ + EvPage *page = EV_PAGE (object); + + if (page->backend_destroy_func) { + page->backend_destroy_func (page->backend_page); + page->backend_destroy_func = NULL; + } + page->backend_page = NULL; + + (* G_OBJECT_CLASS (ev_page_parent_class)->finalize) (object); +} + +static void +ev_page_class_init (EvPageClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_page_finalize; +} + +EvPage * +ev_page_new (gint index) +{ + EvPage *page; + + page = EV_PAGE (g_object_new (EV_TYPE_PAGE, NULL)); + page->index = index; + + return page; +} diff --git a/libdocument/ev-page.h b/libdocument/ev-page.h new file mode 100644 index 00000000..5365107a --- /dev/null +++ b/libdocument/ev-page.h @@ -0,0 +1,63 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_PAGE_H +#define EV_PAGE_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PAGE (ev_page_get_type()) +#define EV_PAGE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PAGE, EvPage)) +#define EV_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PAGE, EvPageClass)) +#define EV_IS_PAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PAGE)) +#define EV_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PAGE)) +#define EV_PAGE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PAGE, EvPageClass)) + +typedef struct _EvPage EvPage; +typedef struct _EvPageClass EvPageClass; + +typedef gpointer EvBackendPage; +typedef GDestroyNotify EvBackendPageDestroyFunc; + +struct _EvPage { + GObject base_instance; + + gint index; + + EvBackendPage backend_page; + EvBackendPageDestroyFunc backend_destroy_func; +}; + +struct _EvPageClass { + GObjectClass base_class; +}; + +GType ev_page_get_type (void) G_GNUC_CONST; + +EvPage *ev_page_new (gint index); + +G_END_DECLS + +#endif /* EV_PAGE_H */ diff --git a/libdocument/ev-render-context.c b/libdocument/ev-render-context.c new file mode 100644 index 00000000..79dfa962 --- /dev/null +++ b/libdocument/ev-render-context.c @@ -0,0 +1,101 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Jonathan Blandford <jrb@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-render-context.h" + +static void ev_render_context_init (EvRenderContext *rc); +static void ev_render_context_class_init (EvRenderContextClass *class); + + +G_DEFINE_TYPE (EvRenderContext, ev_render_context, G_TYPE_OBJECT); + +static void ev_render_context_init (EvRenderContext *rc) { /* Do Nothing */ } + +static void +ev_render_context_dispose (GObject *object) +{ + EvRenderContext *rc; + + rc = (EvRenderContext *) object; + + if (rc->page) { + g_object_unref (rc->page); + rc->page = NULL; + } + + (* G_OBJECT_CLASS (ev_render_context_parent_class)->dispose) (object); +} + +static void +ev_render_context_class_init (EvRenderContextClass *class) +{ + GObjectClass *oclass; + + oclass = G_OBJECT_CLASS (class); + + oclass->dispose = ev_render_context_dispose; +} + +EvRenderContext * +ev_render_context_new (EvPage *page, + gint rotation, + gdouble scale) +{ + EvRenderContext *rc; + + rc = (EvRenderContext *) g_object_new (EV_TYPE_RENDER_CONTEXT, NULL); + + rc->page = page ? g_object_ref (page) : NULL; + rc->rotation = rotation; + rc->scale = scale; + + return rc; +} + +void +ev_render_context_set_page (EvRenderContext *rc, + EvPage *page) +{ + g_return_if_fail (rc != NULL); + g_return_if_fail (EV_IS_PAGE (page)); + + if (rc->page) + g_object_unref (rc->page); + rc->page = g_object_ref (page); +} + +void +ev_render_context_set_rotation (EvRenderContext *rc, + int rotation) +{ + g_return_if_fail (rc != NULL); + + rc->rotation = rotation; +} + +void +ev_render_context_set_scale (EvRenderContext *rc, + gdouble scale) +{ + g_return_if_fail (rc != NULL); + + rc->scale = scale; +} + diff --git a/libdocument/ev-render-context.h b/libdocument/ev-render-context.h new file mode 100644 index 00000000..b7a5bf71 --- /dev/null +++ b/libdocument/ev-render-context.h @@ -0,0 +1,70 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Jonathan Blandford <jrb@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_RENDER_CONTEXT_H +#define EV_RENDER_CONTEXT_H + +#include <glib-object.h> + +#include "ev-page.h" + +G_BEGIN_DECLS + +typedef struct _EvRenderContext EvRenderContext; +typedef struct _EvRenderContextClass EvRenderContextClass; + +#define EV_TYPE_RENDER_CONTEXT (ev_render_context_get_type()) +#define EV_RENDER_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_RENDER_CONTEXT, EvRenderContext)) +#define EV_RENDER_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_RENDER_CONTEXT, EvRenderContextClass)) +#define EV_IS_RENDER_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_RENDER_CONTEXT)) + +struct _EvRenderContextClass +{ + GObjectClass klass; +}; + +struct _EvRenderContext +{ + GObject parent; + + EvPage *page; + gint rotation; + gdouble scale; +}; + + +GType ev_render_context_get_type (void) G_GNUC_CONST; +EvRenderContext *ev_render_context_new (EvPage *page, + gint rotation, + gdouble scale); +void ev_render_context_set_page (EvRenderContext *rc, + EvPage *page); +void ev_render_context_set_rotation (EvRenderContext *rc, + gint rotation); +void ev_render_context_set_scale (EvRenderContext *rc, + gdouble scale); + + +G_END_DECLS + +#endif /* !EV_RENDER_CONTEXT */ diff --git a/libdocument/ev-selection.c b/libdocument/ev-selection.c new file mode 100644 index 00000000..49e56eb4 --- /dev/null +++ b/libdocument/ev-selection.c @@ -0,0 +1,77 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005 Red Hat, Inc. + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include "ev-selection.h" + +G_DEFINE_INTERFACE (EvSelection, ev_selection, 0) + +static void +ev_selection_default_init (EvSelectionInterface *klass) +{ +} + +void +ev_selection_render_selection (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base) +{ + EvSelectionInterface *iface = EV_SELECTION_GET_IFACE (selection); + + if (!iface->render_selection) + return; + + iface->render_selection (selection, rc, + surface, + points, old_points, + style, + text, base); +} + +gchar * +ev_selection_get_selected_text (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points) +{ + EvSelectionInterface *iface = EV_SELECTION_GET_IFACE (selection); + + return iface->get_selected_text (selection, page, style, points); +} + +cairo_region_t * +ev_selection_get_selection_region (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points) +{ + EvSelectionInterface *iface = EV_SELECTION_GET_IFACE (selection); + + if (!iface->get_selection_region) + return NULL; + + return iface->get_selection_region (selection, rc, style, points); +} diff --git a/libdocument/ev-selection.h b/libdocument/ev-selection.h new file mode 100644 index 00000000..dff12e0a --- /dev/null +++ b/libdocument/ev-selection.h @@ -0,0 +1,93 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2000-2003 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef EV_SELECTION_H +#define EV_SELECTION_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> +#include "ev-document.h" + +G_BEGIN_DECLS + +#define EV_TYPE_SELECTION (ev_selection_get_type ()) +#define EV_SELECTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_SELECTION, EvSelection)) +#define EV_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_SELECTION, EvSelectionInterface)) +#define EV_IS_SELECTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_SELECTION)) +#define EV_IS_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_SELECTION)) +#define EV_SELECTION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_SELECTION, EvSelectionInterface)) + +typedef enum { + EV_SELECTION_STYLE_GLYPH, + EV_SELECTION_STYLE_WORD, + EV_SELECTION_STYLE_LINE +} EvSelectionStyle; + +typedef struct _EvSelection EvSelection; +typedef struct _EvSelectionInterface EvSelectionInterface; + +struct _EvSelectionInterface +{ + GTypeInterface base_iface; + + void (* render_selection) (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base); + gchar * (* get_selected_text) (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points); + cairo_region_t * (* get_selection_region) (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points); +}; + +GType ev_selection_get_type (void) G_GNUC_CONST; +void ev_selection_render_selection (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base); +gchar *ev_selection_get_selected_text (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points); +cairo_region_t *ev_selection_get_selection_region (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points); + +G_END_DECLS + +#endif diff --git a/libdocument/ev-transition-effect.c b/libdocument/ev-transition-effect.c new file mode 100644 index 00000000..72bd67c2 --- /dev/null +++ b/libdocument/ev-transition-effect.c @@ -0,0 +1,224 @@ +/* ev-transition-effect.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-transition-effect.h" + +#include "ev-document-type-builtins.h" + +#define EV_TRANSITION_EFFECT_GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_TRANSITION_EFFECT, EvTransitionEffectPrivate)) + +typedef struct EvTransitionEffectPrivate EvTransitionEffectPrivate; + +struct EvTransitionEffectPrivate { + EvTransitionEffectType type; + EvTransitionEffectAlignment alignment; + EvTransitionEffectDirection direction; + + gint duration; + gint angle; + gdouble scale; + + guint rectangular : 1; +}; + +enum { + PROP_0, + PROP_TYPE, + PROP_ALIGNMENT, + PROP_DIRECTION, + PROP_DURATION, + PROP_ANGLE, + PROP_SCALE, + PROP_RECTANGULAR +}; + +G_DEFINE_TYPE (EvTransitionEffect, ev_transition_effect, G_TYPE_OBJECT) + +static void +ev_transition_effect_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvTransitionEffectPrivate *priv; + + priv = EV_TRANSITION_EFFECT_GET_PRIV (object); + + switch (prop_id) { + case PROP_TYPE: + priv->type = g_value_get_enum (value); + break; + case PROP_ALIGNMENT: + priv->alignment = g_value_get_enum (value); + break; + case PROP_DIRECTION: + priv->direction = g_value_get_enum (value); + break; + case PROP_DURATION: + priv->duration = g_value_get_int (value); + break; + case PROP_ANGLE: + priv->angle = g_value_get_int (value); + break; + case PROP_SCALE: + priv->scale = g_value_get_double (value); + break; + case PROP_RECTANGULAR: + priv->rectangular = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_transition_effect_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvTransitionEffectPrivate *priv; + + priv = EV_TRANSITION_EFFECT_GET_PRIV (object); + + switch (prop_id) { + case PROP_TYPE: + g_value_set_enum (value, priv->type); + break; + case PROP_ALIGNMENT: + g_value_set_enum (value, priv->alignment); + break; + case PROP_DIRECTION: + g_value_set_enum (value, priv->direction); + break; + case PROP_DURATION: + g_value_set_int (value, priv->duration); + break; + case PROP_ANGLE: + g_value_set_int (value, priv->angle); + break; + case PROP_SCALE: + g_value_set_double (value, priv->scale); + break; + case PROP_RECTANGULAR: + g_value_set_enum (value, priv->rectangular); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_transition_effect_init (EvTransitionEffect *effect) +{ + EvTransitionEffectPrivate *priv; + + priv = EV_TRANSITION_EFFECT_GET_PRIV (effect); + + priv->scale = 1.; +} + +static void +ev_transition_effect_class_init (EvTransitionEffectClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = ev_transition_effect_set_property; + object_class->get_property = ev_transition_effect_get_property; + + g_object_class_install_property (object_class, + PROP_TYPE, + g_param_spec_enum ("type", + "Effect type", + "Page transition effect type", + EV_TYPE_TRANSITION_EFFECT_TYPE, + EV_TRANSITION_EFFECT_REPLACE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_ALIGNMENT, + g_param_spec_enum ("alignment", + "Effect alignment", + "Alignment for the effect", + EV_TYPE_TRANSITION_EFFECT_ALIGNMENT, + EV_TRANSITION_ALIGNMENT_HORIZONTAL, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DIRECTION, + g_param_spec_enum ("direction", + "Effect direction", + "Direction for the effect", + EV_TYPE_TRANSITION_EFFECT_DIRECTION, + EV_TRANSITION_DIRECTION_INWARD, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DURATION, + g_param_spec_int ("duration", + "Effect duration", + "Effect duration in seconds", + 0, G_MAXINT, 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_ANGLE, + g_param_spec_int ("angle", + "Effect angle", + "Effect angle in degrees, counted " + "counterclockwise from left to right", + 0, 360, 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_SCALE, + g_param_spec_double ("scale", + "Effect scale", + "Scale at which the effect is applied", + 0., 1., 1., + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_RECTANGULAR, + g_param_spec_boolean ("rectangular", + "Rectangular area", + "Whether the covered area is rectangular", + FALSE, + G_PARAM_READWRITE)); + + g_type_class_add_private (klass, sizeof (EvTransitionEffectPrivate)); +} + +EvTransitionEffect * +ev_transition_effect_new (EvTransitionEffectType type, + const gchar *first_property_name, + ...) +{ + GObject *object; + va_list args; + + object = g_object_new (EV_TYPE_TRANSITION_EFFECT, + "type", type, + NULL); + + va_start (args, first_property_name); + g_object_set_valist (object, first_property_name, args); + va_end (args); + + return EV_TRANSITION_EFFECT (object); +} diff --git a/libdocument/ev-transition-effect.h b/libdocument/ev-transition-effect.h new file mode 100644 index 00000000..23591a51 --- /dev/null +++ b/libdocument/ev-transition-effect.h @@ -0,0 +1,87 @@ +/* ev-transition-effect.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-document.h> can be included directly." +#endif + +#ifndef __EV_TRANSITION_EFFECT_H__ +#define __EV_TRANSITION_EFFECT_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_TRANSITION_EFFECT (ev_transition_effect_get_type ()) +#define EV_TRANSITION_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_TRANSITION_EFFECT, EvTransitionEffect)) +#define EV_TRANSITION_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_TRANSITION_EFFECT, EvTransitionEffectClass)) +#define EV_IS_TRANSITION_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_TRANSITION_EFFECT)) +#define EV_IS_TRANSITION_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_TRANSITION_EFFECT)) +#define EV_TRANSITION_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_TRANSITION_EFFECT, EvTransitionEffectClass)) + +typedef enum { + EV_TRANSITION_EFFECT_REPLACE, + EV_TRANSITION_EFFECT_SPLIT, + EV_TRANSITION_EFFECT_BLINDS, + EV_TRANSITION_EFFECT_BOX, + EV_TRANSITION_EFFECT_WIPE, + EV_TRANSITION_EFFECT_DISSOLVE, + EV_TRANSITION_EFFECT_GLITTER, + EV_TRANSITION_EFFECT_FLY, + EV_TRANSITION_EFFECT_PUSH, + EV_TRANSITION_EFFECT_COVER, + EV_TRANSITION_EFFECT_UNCOVER, + EV_TRANSITION_EFFECT_FADE +} EvTransitionEffectType; + +typedef enum { + EV_TRANSITION_ALIGNMENT_HORIZONTAL, + EV_TRANSITION_ALIGNMENT_VERTICAL +} EvTransitionEffectAlignment; + +typedef enum { + EV_TRANSITION_DIRECTION_INWARD, + EV_TRANSITION_DIRECTION_OUTWARD +} EvTransitionEffectDirection; + + +typedef struct EvTransitionEffect EvTransitionEffect; +typedef struct EvTransitionEffectClass EvTransitionEffectClass; + +struct EvTransitionEffect +{ + GObject parent_instance; +}; + +struct EvTransitionEffectClass +{ + GObjectClass parent_class; +}; + + +GType ev_transition_effect_get_type (void) G_GNUC_CONST; + +EvTransitionEffect *ev_transition_effect_new (EvTransitionEffectType type, + const gchar *first_property_name, + ...); + +G_END_DECLS + +#endif /* __EV_TRANSITION_EFFECT_H__ */ diff --git a/libdocument/ev-version.h.in b/libdocument/ev-version.h.in new file mode 100644 index 00000000..97cf0a98 --- /dev/null +++ b/libdocument/ev-version.h.in @@ -0,0 +1,69 @@ +/* + * Copyright Ā© 2009 Christian Persch + * + * 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. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_VERSION_H +#define EV_VERSION_H + +/** + * SECTION:ev-version + * @short_description: Library version checks + * + * These macros enable compile time checks of the library version. + */ + +/** + * EV_MAJOR_VERSION: + * + * The major version number of the EV library + * (e.g. in version 3.1.4 this is 3). + */ + +#define EV_MAJOR_VERSION (@EV_MAJOR_VERSION@) + +/** + * EV_MINOR_VERSION: + * + * The minor version number of the EV library + * (e.g. in version 3.1.4 this is 1). + */ +#define EV_MINOR_VERSION (@EV_MINOR_VERSION@) + +/** + * EV_MICRO_VERSION: + * + * The micro version number of the EV library + * (e.g. in version 3.1.4 this is 4). + */ +#define EV_MICRO_VERSION (@EV_MICRO_VERSION@) + +/** + * EV_CHECK_VERSION: + * @major: required major version + * @minor: required minor version + * @micro: required micro version + * + * Macro to check the library version at compile time. + * It returns <literal>1</literal> if the version of EV is greater or + * equal to the required one, and <literal>0</literal> otherwise. + */ +#define EV_CHECK_VERSION(major,minor,micro) \ + (EV_MAJOR_VERSION > (major) || \ + (EV_MAJOR_VERSION == (major) && EV_MINOR_VERSION > (minor)) || \ + (EV_MAJOR_VERSION == (major) && EV_MINOR_VERSION == (minor) && EV_MICRO_VERSION >= (micro))) + +#endif /* #ifndef EV_VERSION_H */ diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am new file mode 100644 index 00000000..28097018 --- /dev/null +++ b/libmisc/Makefile.am @@ -0,0 +1,22 @@ +noinst_LTLIBRARIES = libevmisc.la + +libevmisc_la_SOURCES = \ + ev-page-action.c \ + ev-page-action.h \ + ev-page-action-widget.c \ + ev-page-action-widget.h + +libevmisc_la_CFLAGS = \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -I$(top_srcdir)/libview \ + $(SHELL_CORE_CFLAGS) \ + $(WARNING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +libevmisc_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(top_builddir)/libview/libevview.la + +-include $(top_srcdir)/git.mk diff --git a/libmisc/ev-page-action-widget.c b/libmisc/ev-page-action-widget.c new file mode 100644 index 00000000..2bc74e60 --- /dev/null +++ b/libmisc/ev-page-action-widget.c @@ -0,0 +1,495 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include <string.h> +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include <evince-document.h> +#include "ev-page-action.h" +#include "ev-page-action-widget.h" + +/* Widget we pass back */ +static void ev_page_action_widget_init (EvPageActionWidget *action_widget); +static void ev_page_action_widget_class_init (EvPageActionWidgetClass *action_widget); + +enum +{ + WIDGET_ACTIVATE_LINK, + WIDGET_N_SIGNALS +}; + +struct _EvPageActionWidget +{ + GtkToolItem parent; + + EvDocument *document; + EvDocumentModel *doc_model; + + GtkWidget *entry; + GtkWidget *label; + guint signal_id; + GtkTreeModel *filter_model; + GtkTreeModel *model; +}; + +static guint widget_signals[WIDGET_N_SIGNALS] = {0, }; + +G_DEFINE_TYPE (EvPageActionWidget, ev_page_action_widget, GTK_TYPE_TOOL_ITEM) + +static void +update_pages_label (EvPageActionWidget *action_widget, + gint page) +{ + char *label_text; + gint n_pages; + + n_pages = ev_document_get_n_pages (action_widget->document); + if (ev_document_has_text_page_labels (action_widget->document)) { + label_text = g_strdup_printf (_("(%d of %d)"), page + 1, n_pages); + } else { + label_text = g_strdup_printf (_("of %d"), n_pages); + } + gtk_label_set_text (GTK_LABEL (action_widget->label), label_text); + g_free (label_text); +} + +static void +ev_page_action_widget_set_current_page (EvPageActionWidget *action_widget, + gint page) +{ + if (page >= 0) { + gchar *page_label; + + gtk_entry_set_width_chars (GTK_ENTRY (action_widget->entry), + CLAMP (ev_document_get_max_label_len (action_widget->document), + 6, 12)); + + page_label = ev_document_get_page_label (action_widget->document, page); + gtk_entry_set_text (GTK_ENTRY (action_widget->entry), page_label); + gtk_editable_set_position (GTK_EDITABLE (action_widget->entry), -1); + g_free (page_label); + + } else { + gtk_entry_set_text (GTK_ENTRY (action_widget->entry), ""); + } + + update_pages_label (action_widget, page); +} + +static void +page_changed_cb (EvDocumentModel *model, + gint old_page, + gint new_page, + EvPageActionWidget *action_widget) +{ + ev_page_action_widget_set_current_page (action_widget, new_page); +} + +static gboolean +page_scroll_cb (EvPageActionWidget *action_widget, GdkEventScroll *event) +{ + EvDocumentModel *model = action_widget->doc_model; + gint pageno; + + pageno = ev_document_model_get_page (model); + if ((event->direction == GDK_SCROLL_DOWN) && + (pageno < ev_document_get_n_pages (action_widget->document) - 1)) + pageno++; + if ((event->direction == GDK_SCROLL_UP) && (pageno > 0)) + pageno--; + ev_document_model_set_page (model, pageno); + + return TRUE; +} + +static void +activate_cb (EvPageActionWidget *action_widget) +{ + EvDocumentModel *model; + const char *text; + EvLinkDest *link_dest; + EvLinkAction *link_action; + EvLink *link; + gchar *link_text; + gint current_page; + + model = action_widget->doc_model; + current_page = ev_document_model_get_page (model); + + text = gtk_entry_get_text (GTK_ENTRY (action_widget->entry)); + + link_dest = ev_link_dest_new_page_label (text); + link_action = ev_link_action_new_dest (link_dest); + link_text = g_strdup_printf ("Page: %s", text); + link = ev_link_new (link_text, link_action); + + g_signal_emit (action_widget, widget_signals[WIDGET_ACTIVATE_LINK], 0, link); + + g_object_unref (link); + g_free (link_text); + + if (current_page == ev_document_model_get_page (model)) + ev_page_action_widget_set_current_page (action_widget, current_page); +} + +static void +ev_page_action_widget_init (EvPageActionWidget *action_widget) +{ + GtkWidget *hbox; + AtkObject *obj; + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_set_spacing (GTK_BOX (hbox), 6); + + action_widget->entry = gtk_entry_new (); + gtk_widget_add_events (action_widget->entry, + GDK_BUTTON_MOTION_MASK); + gtk_entry_set_width_chars (GTK_ENTRY (action_widget->entry), 5); + gtk_entry_set_text (GTK_ENTRY (action_widget->entry), ""); + g_signal_connect_swapped (action_widget->entry, "scroll-event", + G_CALLBACK (page_scroll_cb), + action_widget); + g_signal_connect_swapped (action_widget->entry, "activate", + G_CALLBACK (activate_cb), + action_widget); + + obj = gtk_widget_get_accessible (action_widget->entry); + atk_object_set_name (obj, "page-label-entry"); + + gtk_box_pack_start (GTK_BOX (hbox), action_widget->entry, + FALSE, FALSE, 0); + gtk_widget_show (action_widget->entry); + + action_widget->label = gtk_label_new (NULL); + gtk_box_pack_start (GTK_BOX (hbox), action_widget->label, + FALSE, FALSE, 0); + gtk_widget_show (action_widget->label); + + gtk_container_set_border_width (GTK_CONTAINER (action_widget), 6); + gtk_container_add (GTK_CONTAINER (action_widget), hbox); + gtk_widget_show (hbox); + + gtk_widget_show (GTK_WIDGET (action_widget)); +} + +static void +ev_page_action_widget_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvPageActionWidget *action_widget) +{ + EvDocument *document = ev_document_model_get_document (model); + + g_object_ref (document); + if (action_widget->document) + g_object_unref (action_widget->document); + action_widget->document = document; + + if (action_widget->signal_id > 0) { + g_signal_handler_disconnect (action_widget->doc_model, + action_widget->signal_id); + action_widget->signal_id = 0; + } + action_widget->signal_id = + g_signal_connect_object (action_widget->doc_model, + "page-changed", + G_CALLBACK (page_changed_cb), + action_widget, 0); + + ev_page_action_widget_set_current_page (action_widget, + ev_document_model_get_page (model)); +} + +void +ev_page_action_widget_set_model (EvPageActionWidget *action_widget, + EvDocumentModel *model) +{ + if (action_widget->doc_model) { + g_object_remove_weak_pointer (G_OBJECT (action_widget->doc_model), + (gpointer)&action_widget->doc_model); + } + action_widget->doc_model = model; + g_object_add_weak_pointer (G_OBJECT (model), + (gpointer)&action_widget->doc_model); + + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_page_action_widget_document_changed_cb), + action_widget); +} + +static void +ev_page_action_widget_finalize (GObject *object) +{ + EvPageActionWidget *action_widget = EV_PAGE_ACTION_WIDGET (object); + + if (action_widget->doc_model != NULL) { + if (action_widget->signal_id > 0) { + g_signal_handler_disconnect (action_widget->doc_model, + action_widget->signal_id); + action_widget->signal_id = 0; + } + g_object_remove_weak_pointer (G_OBJECT (action_widget->doc_model), + (gpointer)&action_widget->doc_model); + action_widget->doc_model = NULL; + } + + if (action_widget->document) { + g_object_unref (action_widget->document); + action_widget->document = NULL; + } + + G_OBJECT_CLASS (ev_page_action_widget_parent_class)->finalize (object); +} + +static void +ev_page_action_widget_class_init (EvPageActionWidgetClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->finalize = ev_page_action_widget_finalize; + + widget_signals[WIDGET_ACTIVATE_LINK] = + g_signal_new ("activate_link", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvPageActionWidgetClass, activate_link), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); + +} + +static gboolean +match_selected_cb (GtkEntryCompletion *completion, + GtkTreeModel *filter_model, + GtkTreeIter *filter_iter, + EvPageActionWidget *proxy) +{ + EvLink *link; + GtkTreeIter *iter; + + gtk_tree_model_get (filter_model, filter_iter, + 0, &iter, + -1); + gtk_tree_model_get (proxy->model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + g_signal_emit (proxy, widget_signals[WIDGET_ACTIVATE_LINK], 0, link); + + if (link) + g_object_unref (link); + + gtk_tree_iter_free (iter); + + return TRUE; +} + + +static void +display_completion_text (GtkCellLayout *cell_layout, + GtkCellRenderer *renderer, + GtkTreeModel *filter_model, + GtkTreeIter *filter_iter, + EvPageActionWidget *proxy) +{ + EvLink *link; + GtkTreeIter *iter; + + gtk_tree_model_get (filter_model, filter_iter, + 0, &iter, + -1); + gtk_tree_model_get (proxy->model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + g_object_set (renderer, "text", ev_link_get_title (link), NULL); + + if (link) + g_object_unref (link); + + gtk_tree_iter_free (iter); +} + +static gboolean +match_completion (GtkEntryCompletion *completion, + const gchar *key, + GtkTreeIter *filter_iter, + EvPageActionWidget *proxy) +{ + EvLink *link; + GtkTreeIter *iter; + const gchar *text = NULL; + + gtk_tree_model_get (gtk_entry_completion_get_model (completion), + filter_iter, + 0, &iter, + -1); + gtk_tree_model_get (proxy->model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + + if (link) { + text = ev_link_get_title (link); + g_object_unref (link); + } + + gtk_tree_iter_free (iter); + + if (text && key) { + gchar *normalized_text; + gchar *normalized_key; + gchar *case_normalized_text; + gchar *case_normalized_key; + gboolean retval = FALSE; + + normalized_text = g_utf8_normalize (text, -1, G_NORMALIZE_ALL); + normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); + case_normalized_text = g_utf8_casefold (normalized_text, -1); + case_normalized_key = g_utf8_casefold (normalized_key, -1); + + if (strstr (case_normalized_text, case_normalized_key)) + retval = TRUE; + + g_free (normalized_text); + g_free (normalized_key); + g_free (case_normalized_text); + g_free (case_normalized_key); + + return retval; + } + + return FALSE; +} + +/* user data to set on the widget. */ +#define EPA_FILTER_MODEL_DATA "epa-filter-model" + +static gboolean +build_new_tree_cb (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + GtkTreeModel *filter_model = GTK_TREE_MODEL (data); + EvLink *link; + EvLinkAction *action; + EvLinkActionType type; + + gtk_tree_model_get (model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (!link) + return FALSE; + + action = ev_link_get_action (link); + if (!action) { + g_object_unref (link); + return FALSE; + } + + type = ev_link_action_get_action_type (action); + + if (type == EV_LINK_ACTION_TYPE_GOTO_DEST) { + GtkTreeIter filter_iter; + + gtk_list_store_append (GTK_LIST_STORE (filter_model), &filter_iter); + gtk_list_store_set (GTK_LIST_STORE (filter_model), &filter_iter, + 0, iter, + -1); + } + + g_object_unref (link); + + return FALSE; +} + +static GtkTreeModel * +get_filter_model_from_model (GtkTreeModel *model) +{ + GtkTreeModel *filter_model; + + filter_model = + (GtkTreeModel *) g_object_get_data (G_OBJECT (model), EPA_FILTER_MODEL_DATA); + if (filter_model == NULL) { + filter_model = (GtkTreeModel *) gtk_list_store_new (1, GTK_TYPE_TREE_ITER); + + gtk_tree_model_foreach (model, + build_new_tree_cb, + filter_model); + g_object_set_data_full (G_OBJECT (model), EPA_FILTER_MODEL_DATA, filter_model, g_object_unref); + } + + return filter_model; +} + + +void +ev_page_action_widget_update_links_model (EvPageActionWidget *proxy, GtkTreeModel *model) +{ + GtkTreeModel *filter_model; + GtkEntryCompletion *completion; + GtkCellRenderer *renderer; + + if (!model) + return; + + /* Magik */ + proxy->model = model; + filter_model = get_filter_model_from_model (model); + + completion = gtk_entry_completion_new (); + g_object_set (G_OBJECT (completion), + "popup-set-width", FALSE, + "model", filter_model, + NULL); + + g_signal_connect (completion, "match-selected", G_CALLBACK (match_selected_cb), proxy); + gtk_entry_completion_set_match_func (completion, + (GtkEntryCompletionMatchFunc) match_completion, + proxy, NULL); + + /* Set up the layout */ + renderer = (GtkCellRenderer *) + g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, + "ellipsize", PANGO_ELLIPSIZE_END, + "width_chars", 30, + NULL); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (completion), renderer, TRUE); + gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (completion), + renderer, + (GtkCellLayoutDataFunc) display_completion_text, + proxy, NULL); + gtk_entry_set_completion (GTK_ENTRY (proxy->entry), completion); + + g_object_unref (completion); +} + +void +ev_page_action_widget_grab_focus (EvPageActionWidget *proxy) +{ + gtk_widget_grab_focus (proxy->entry); +} + diff --git a/libmisc/ev-page-action-widget.h b/libmisc/ev-page-action-widget.h new file mode 100644 index 00000000..cf33b551 --- /dev/null +++ b/libmisc/ev-page-action-widget.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <evince-view.h> + +#include <gtk/gtk.h> + +#define EV_TYPE_PAGE_ACTION_WIDGET (ev_page_action_widget_get_type ()) +#define EV_PAGE_ACTION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PAGE_ACTION_WIDGET, EvPageActionWidget)) + +typedef struct _EvPageActionWidget EvPageActionWidget; +typedef struct _EvPageActionWidgetClass EvPageActionWidgetClass; + +struct _EvPageActionWidgetClass +{ + GtkToolItemClass parent_class; + + void (* activate_link) (EvPageActionWidget *page_action, + EvLink *link); +}; + +GType ev_page_action_widget_get_type (void) G_GNUC_CONST; + +void ev_page_action_widget_update_links_model (EvPageActionWidget *proxy, + GtkTreeModel *model); + +void ev_page_action_widget_set_model (EvPageActionWidget *action_widget, + EvDocumentModel *doc_model); +void ev_page_action_widget_grab_focus (EvPageActionWidget *proxy); diff --git a/libmisc/ev-page-action.c b/libmisc/ev-page-action.c new file mode 100644 index 00000000..ff1f9fee --- /dev/null +++ b/libmisc/ev-page-action.c @@ -0,0 +1,239 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> +#include <stdlib.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-page-action.h" +#include "ev-page-action-widget.h" + +struct _EvPageActionPrivate +{ + EvDocumentModel *doc_model; + GtkTreeModel *model; +}; + + +static void ev_page_action_init (EvPageAction *action); +static void ev_page_action_class_init (EvPageActionClass *class); + +enum +{ + ACTIVATE_LINK, + N_SIGNALS +}; + +static guint signals[N_SIGNALS] = {0, }; + +G_DEFINE_TYPE (EvPageAction, ev_page_action, GTK_TYPE_ACTION) + +#define EV_PAGE_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_PAGE_ACTION, EvPageActionPrivate)) + +enum { + PROP_0, + PROP_MODEL +}; + +static GtkWidget * +create_tool_item (GtkAction *action) +{ + GtkWidget *proxy; + + proxy = g_object_new (EV_TYPE_PAGE_ACTION_WIDGET, NULL); + + return proxy; +} + +static void +update_model (EvPageAction *page, GParamSpec *pspec, EvPageActionWidget *proxy) +{ + ev_page_action_widget_update_links_model (proxy, page->priv->model); +} + +static void +activate_link_cb (EvPageActionWidget *proxy, EvLink *link, EvPageAction *action) +{ + g_signal_emit (action, signals[ACTIVATE_LINK], 0, link); +} + +static void +connect_proxy (GtkAction *action, GtkWidget *proxy) +{ + EvPageAction *page = EV_PAGE_ACTION (action); + + if (GTK_IS_TOOL_ITEM (proxy)) { + ev_page_action_widget_set_model (EV_PAGE_ACTION_WIDGET (proxy), + page->priv->doc_model); + g_signal_connect (proxy, "activate_link", + G_CALLBACK (activate_link_cb), + action); + g_signal_connect_object (action, "notify::model", + G_CALLBACK (update_model), + proxy, 0); + } + + GTK_ACTION_CLASS (ev_page_action_parent_class)->connect_proxy (action, proxy); +} + +static void +ev_page_action_dispose (GObject *object) +{ + EvPageAction *page = EV_PAGE_ACTION (object); + + if (page->priv->model) { + g_object_unref (page->priv->model); + page->priv->model = NULL; + } + + page->priv->doc_model = NULL; + + G_OBJECT_CLASS (ev_page_action_parent_class)->dispose (object); +} + +static void +ev_page_action_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvPageAction *page = EV_PAGE_ACTION (object); + + switch (prop_id) + { + case PROP_MODEL: + ev_page_action_set_links_model (page, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_page_action_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvPageAction *page = EV_PAGE_ACTION (object); + + switch (prop_id) + { + case PROP_MODEL: + g_value_set_object (value, page->priv->model); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +void +ev_page_action_set_model (EvPageAction *page, + EvDocumentModel *model) +{ + g_return_if_fail (EV_IS_PAGE_ACTION (page)); + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (page->priv->doc_model == model) + return; + + page->priv->doc_model = model; +} + +void +ev_page_action_set_links_model (EvPageAction *page, + GtkTreeModel *links_model) +{ + g_return_if_fail (EV_IS_PAGE_ACTION (page)); + g_return_if_fail (GTK_IS_TREE_MODEL (links_model)); + + if (page->priv->model == links_model) + return; + + if (page->priv->model) + g_object_unref (page->priv->model); + page->priv->model = g_object_ref (links_model); + + g_object_notify (G_OBJECT (page), "model"); +} + +void +ev_page_action_grab_focus (EvPageAction *page_action) +{ + GSList *proxies; + + proxies = gtk_action_get_proxies (GTK_ACTION (page_action)); + for (; proxies != NULL; proxies = proxies->next) { + EvPageActionWidget *proxy; + + proxy = EV_PAGE_ACTION_WIDGET (proxies->data); + + if (gtk_widget_get_mapped (GTK_WIDGET (proxy))) + ev_page_action_widget_grab_focus (proxy); + } +} + +static void +ev_page_action_init (EvPageAction *page) +{ + page->priv = EV_PAGE_ACTION_GET_PRIVATE (page); +} + +static void +ev_page_action_class_init (EvPageActionClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkActionClass *action_class = GTK_ACTION_CLASS (class); + + object_class->dispose = ev_page_action_dispose; + object_class->set_property = ev_page_action_set_property; + object_class->get_property = ev_page_action_get_property; + + action_class->toolbar_item_type = GTK_TYPE_TOOL_ITEM; + action_class->create_tool_item = create_tool_item; + action_class->connect_proxy = connect_proxy; + + signals[ACTIVATE_LINK] = g_signal_new ("activate_link", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvPageActionClass, activate_link), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); + + g_object_class_install_property (object_class, + PROP_MODEL, + g_param_spec_object ("model", + "Model", + "Current Links Model", + GTK_TYPE_TREE_MODEL, + G_PARAM_READWRITE)); + + g_type_class_add_private (object_class, sizeof (EvPageActionPrivate)); +} diff --git a/libmisc/ev-page-action.h b/libmisc/ev-page-action.h new file mode 100644 index 00000000..b18db61d --- /dev/null +++ b/libmisc/ev-page-action.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef EV_PAGE_ACTION_H +#define EV_PAGE_ACTION_H + +#include <gtk/gtk.h> + +#include <evince-document.h> +#include <evince-view.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PAGE_ACTION (ev_page_action_get_type ()) +#define EV_PAGE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PAGE_ACTION, EvPageAction)) +#define EV_PAGE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_PAGE_ACTION, EvPageActionClass)) +#define EV_IS_PAGE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_PAGE_ACTION)) +#define EV_IS_PAGE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EV_TYPE_PAGE_ACTION)) +#define EV_PAGE_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EV_TYPE_PAGE_ACTION, EvPageActionClass)) + +typedef struct _EvPageAction EvPageAction; +typedef struct _EvPageActionPrivate EvPageActionPrivate; +typedef struct _EvPageActionClass EvPageActionClass; + +struct _EvPageAction +{ + GtkAction parent; + + /*< private >*/ + EvPageActionPrivate *priv; +}; + +struct _EvPageActionClass +{ + GtkActionClass parent_class; + + void (* activate_link) (EvPageAction *page_action, + EvLink *link); +}; + +GType ev_page_action_get_type (void) G_GNUC_CONST; + +void ev_page_action_set_model (EvPageAction *page_action, + EvDocumentModel *model); +void ev_page_action_set_links_model (EvPageAction *page_action, + GtkTreeModel *links_model); +void ev_page_action_grab_focus (EvPageAction *page_action); + +G_END_DECLS + +#endif diff --git a/libview/Makefile.am b/libview/Makefile.am new file mode 100644 index 00000000..fc1e6205 --- /dev/null +++ b/libview/Makefile.am @@ -0,0 +1,163 @@ +lib_LTLIBRARIES = libevview.la + +NOINST_H_FILES = \ + ev-annotation-window.h \ + ev-loading-window.h \ + ev-page-cache.h \ + ev-pixbuf-cache.h \ + ev-timeline.h \ + ev-transition-animation.h \ + ev-view-accessible.h \ + ev-view-cursor.h \ + ev-view-marshal.h \ + ev-view-private.h + +INST_H_SRC_FILES = \ + ev-document-model.h \ + ev-jobs.h \ + ev-job-scheduler.h \ + ev-print-operation.h \ + ev-stock-icons.h \ + ev-view.h \ + ev-view-presentation.h + +INST_H_FILES = \ + $(INST_H_SRC_FILES) \ + ev-view-type-builtins.h + +headerdir = $(includedir)/evince/$(EV_API_VERSION)/libview +header_DATA = $(INST_H_FILES) + +libevview_la_SOURCES = \ + ev-annotation-window.c \ + ev-document-model.c \ + ev-loading-window.c \ + ev-jobs.c \ + ev-job-scheduler.c \ + ev-page-cache.c \ + ev-pixbuf-cache.c \ + ev-print-operation.c \ + ev-stock-icons.c \ + ev-timeline.c \ + ev-transition-animation.c \ + ev-view.c \ + ev-view-accessible.c \ + ev-view-marshal.c \ + ev-view-cursor.c \ + ev-view-presentation.c \ + ev-view-type-builtins.c \ + $(NOINST_H_FILES) \ + $(INST_H_FILES) + +libevview_la_CPPFLAGS = \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DG_LOG_DOMAIN=\"EvinceView\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DEVINCE_COMPILATION \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libdocument \ + -I$(top_builddir) \ + $(AM_CPPFLAGS) + +libevview_la_CFLAGS = \ + $(LIBVIEW_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(AM_CFLAGS) + +libevview_la_LDFLAGS = \ + -version-info $(EV_VIEW_LT_VERSION_INFO) \ + -no-undefined \ + -export-symbols-regex "^ev_*" \ + $(AM_LDFLAGS) + +libevview_la_LIBADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(LIBVIEW_LIBS) + +BUILT_SOURCES = \ + ev-view-marshal.h \ + ev-view-marshal.c \ + ev-view-type-builtins.c \ + ev-view-type-builtins.h + +CLEANFILES = \ + $(BUILT_SOURCES) \ + stamp-ev-view-type-builtins.h \ + stamp-ev-view-type-builtins.c + +ev-view-marshal.h: $(srcdir)/ev-view-marshal.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=ev_view_marshal $(srcdir)/ev-view-marshal.list --header --internal > $@ + +ev-view-marshal.c: $(srcdir)/ev-view-marshal.list + echo '#include <config.h>' > ev-view-marshal.c + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=ev_view_marshal $(srcdir)/ev-view-marshal.list --header --internal --body >> $@ + +ev-view-type-builtins.h: stamp-ev-view-type-builtins.h + @true +stamp-ev-view-type-builtins.h: ev-view-type-builtins.h.template $(INST_H_SRC_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $< $(filter-out $<,$^) > xgen-etbh \ + && (cmp -s xgen-etbh ev-view-type-builtins.h || cp xgen-etbh ev-view-type-builtins.h ) \ + && rm -f xgen-etbh \ + && echo timestamp > $(@F) + +ev-view-type-builtins.c: stamp-ev-view-type-builtins.c + @true +stamp-ev-view-type-builtins.c: ev-view-type-builtins.c.template $(INST_H_SRC_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $< $(filter-out $<,$^) > xgen-etbc \ + && (cmp -s xgen-etbc ev-view-type-builtins.c || cp xgen-etbc ev-view-type-builtins.c ) \ + && rm -f xgen-etbc \ + && echo timestamp > $(@F) + +EXTRA_DIST = \ + ev-view-type-builtins.c.template \ + ev-view-type-builtins.h.template \ + ev-view-marshal.list + +# GObject Introspection + +if ENABLE_INTROSPECTION + +EvinceView-$(EV_API_VERSION).gir: libevview.la Makefile $(INST_H_FILES) $(filter %.c,$(libevview_la_SOURCES)) + $(AM_V_GEN) PKG_CONFIG_PATH=$(top_builddir):$$PKG_CONFIG_PATH \ + $(G_IR_SCANNER) -v --namespace EvinceView \ + --add-include-path=$(top_builddir)/libdocument \ + --strip-prefix=Ev \ + --nsversion=$(EV_API_VERSION) \ + --include=GLib-2.0 \ + --include=GObject-2.0 \ + --include=Gio-2.0 \ + --include=Gdk-2.0 \ + --include=GdkPixbuf-2.0 \ + --include=Gtk-2.0 \ + --include=EvinceDocument-$(EV_API_VERSION) \ + --library=evview \ + --libtool="$(LIBTOOL)" \ + --output $@ \ + --pkg evince-document-$(EV_API_VERSION) \ + --pkg evince-view-$(EV_API_VERSION) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DEVINCE_COMPILATION \ + $(filter %.h,$^) \ + $(filter %.c,$^) + +girdir = $(GIRDIR) +gir_DATA = EvinceView-$(EV_API_VERSION).gir + +typelibsdir = $(GIRTYPELIBDIR) +typelibs_DATA = EvinceView-$(EV_API_VERSION).typelib + +EXTRA_DIST += $(gir_DATA) +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +%.typelib: %.gir + $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(top_builddir)/libdocument \ + $(G_IR_COMPILER_OPTS) \ + $< -o $@ + +endif # ENABLE_INTROSPECTION + +-include $(top_srcdir)/git.mk diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c new file mode 100644 index 00000000..6ecfafc6 --- /dev/null +++ b/libview/ev-annotation-window.c @@ -0,0 +1,654 @@ +/* ev-annotation-window.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> + +#include "ev-annotation-window.h" +#include "ev-stock-icons.h" +#include "ev-view-marshal.h" +#include "ev-document-misc.h" + +enum { + PROP_0, + PROP_ANNOTATION, + PROP_PARENT +}; + +enum { + CLOSED, + MOVED, + N_SIGNALS +}; + +struct _EvAnnotationWindow { + GtkWindow base_instance; + + EvAnnotation *annotation; + GtkWindow *parent; + + GtkWidget *title; + GtkWidget *close_button; + GtkWidget *text_view; + GtkWidget *resize_se; + GtkWidget *resize_sw; + + gboolean is_open; + EvRectangle rect; + + gboolean in_move; + gint x; + gint y; + gint orig_x; + gint orig_y; +}; + +struct _EvAnnotationWindowClass { + GtkWindowClass base_class; + + void (* closed) (EvAnnotationWindow *window); + void (* moved) (EvAnnotationWindow *window, + gint x, + gint y); +}; + +static guint signals[N_SIGNALS]; + +G_DEFINE_TYPE (EvAnnotationWindow, ev_annotation_window, GTK_TYPE_WINDOW) + +#define EV_ICON_SIZE_ANNOT_WINDOW (ev_annotation_window_get_icon_size()) + +/* Cut and paste from gtkwindow.c */ +static void +send_focus_change (GtkWidget *widget, + gboolean in) +{ + GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); + + fevent->focus_change.type = GDK_FOCUS_CHANGE; + fevent->focus_change.window = gtk_widget_get_window (widget); + fevent->focus_change.in = in; + if (fevent->focus_change.window) + g_object_ref (fevent->focus_change.window); + + gtk_widget_send_focus_change (widget, fevent); + + gdk_event_free (fevent); +} + +static gdouble +get_screen_dpi (EvAnnotationWindow *window) +{ + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + return ev_document_misc_get_screen_dpi (screen); +} + +static GtkIconSize +ev_annotation_window_get_icon_size (void) +{ + static GtkIconSize icon_size = 0; + + if (G_UNLIKELY (icon_size == 0)) + icon_size = gtk_icon_size_register ("ev-icon-size-annot-window", 8, 8); + + return icon_size; +} + +static void +ev_annotation_window_sync_contents (EvAnnotationWindow *window) +{ + gchar *contents; + GtkTextIter start, end; + GtkTextBuffer *buffer; + EvAnnotation *annot = window->annotation; + + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->text_view)); + gtk_text_buffer_get_bounds (buffer, &start, &end); + contents = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + ev_annotation_set_contents (annot, contents); + g_free (contents); +} + +static void +ev_annotation_window_set_color (EvAnnotationWindow *window, + GdkColor *color) +{ + GtkRcStyle *rc_style; + GdkColor gcolor; + + gcolor = *color; + + /* Allocate these colors */ + gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (window)), + &gcolor, FALSE, TRUE); + + /* Apply colors to style */ + rc_style = gtk_widget_get_modifier_style (GTK_WIDGET (window)); + rc_style->base[GTK_STATE_NORMAL] = gcolor; + rc_style->bg[GTK_STATE_PRELIGHT] = gcolor; + rc_style->bg[GTK_STATE_NORMAL] = gcolor; + rc_style->bg[GTK_STATE_ACTIVE] = gcolor; + rc_style->color_flags[GTK_STATE_PRELIGHT] = GTK_RC_BG; + rc_style->color_flags[GTK_STATE_NORMAL] = GTK_RC_BG | GTK_RC_BASE; + rc_style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_BG; + + /* Apply the style to the widgets */ + g_object_ref (rc_style); + gtk_widget_modify_style (GTK_WIDGET (window), rc_style); + gtk_widget_modify_style (window->close_button, rc_style); + gtk_widget_modify_style (window->resize_se, rc_style); + gtk_widget_modify_style (window->resize_sw, rc_style); + g_object_unref (rc_style); +} + +static void +ev_annotation_window_label_changed (EvAnnotationMarkup *annot, + GParamSpec *pspec, + EvAnnotationWindow *window) +{ + const gchar *label = ev_annotation_markup_get_label (annot); + + gtk_window_set_title (GTK_WINDOW (window), label); + gtk_label_set_text (GTK_LABEL (window->title), label); +} + +static void +ev_annotation_window_color_changed (EvAnnotation *annot, + GParamSpec *pspec, + EvAnnotationWindow *window) +{ + GdkColor color; + + ev_annotation_get_color (annot, &color); + ev_annotation_window_set_color (window, &color); +} + +static void +ev_annotation_window_dispose (GObject *object) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (object); + + if (window->annotation) { + ev_annotation_window_sync_contents (window); + g_object_unref (window->annotation); + window->annotation = NULL; + } + + (* G_OBJECT_CLASS (ev_annotation_window_parent_class)->dispose) (object); +} + +static void +ev_annotation_window_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (object); + + switch (prop_id) { + case PROP_ANNOTATION: + window->annotation = g_value_dup_object (value); + break; + case PROP_PARENT: + window->parent = g_value_get_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static gboolean +ev_annotation_window_resize (EvAnnotationWindow *window, + GdkEventButton *event, + GtkWidget *ebox) +{ + if (event->type == GDK_BUTTON_PRESS && event->button == 1) { + gtk_window_begin_resize_drag (GTK_WINDOW (window), + window->resize_sw == ebox ? + GDK_WINDOW_EDGE_SOUTH_WEST : + GDK_WINDOW_EDGE_SOUTH_EAST, + event->button, event->x_root, + event->y_root, event->time); + return TRUE; + } + + return FALSE; +} + +static void +ev_annotation_window_set_resize_cursor (GtkWidget *widget, + EvAnnotationWindow *window) +{ + GdkWindow *gdk_window = gtk_widget_get_window (widget); + + if (!gdk_window) + return; + + if (gtk_widget_is_sensitive (widget)) { + GdkDisplay *display = gtk_widget_get_display (widget); + GdkCursor *cursor; + + cursor = gdk_cursor_new_for_display (display, + widget == window->resize_sw ? + GDK_BOTTOM_LEFT_CORNER : + GDK_BOTTOM_RIGHT_CORNER); + gdk_window_set_cursor (gdk_window, cursor); + gdk_cursor_unref (cursor); + } else { + gdk_window_set_cursor (gdk_window, NULL); + } +} + +static gboolean +text_view_button_press (GtkWidget *widget, + GdkEventButton *event, + EvAnnotationWindow *window) +{ + ev_annotation_window_grab_focus (window); + + return FALSE; +} + +static void +ev_annotation_window_close (EvAnnotationWindow *window) +{ + gtk_widget_hide (GTK_WIDGET (window)); + g_signal_emit (window, signals[CLOSED], 0); +} + +static void +ev_annotation_window_init (EvAnnotationWindow *window) +{ + GtkWidget *vbox, *hbox; + GtkWidget *icon; + GtkWidget *swindow; + + gtk_widget_set_can_focus (GTK_WIDGET (window), TRUE); + + vbox = gtk_vbox_new (FALSE, 0); + + /* Title bar */ + hbox = gtk_hbox_new (FALSE, 0); + + icon = gtk_image_new (); /* FIXME: use the annot icon */ + gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); + gtk_widget_show (icon); + + window->title = gtk_label_new (NULL); + gtk_box_pack_start (GTK_BOX (hbox), window->title, TRUE, TRUE, 0); + gtk_widget_show (window->title); + + window->close_button = gtk_button_new (); + gtk_button_set_relief (GTK_BUTTON (window->close_button), GTK_RELIEF_NONE); + gtk_container_set_border_width (GTK_CONTAINER (window->close_button), 0); + g_signal_connect_swapped (window->close_button, "clicked", + G_CALLBACK (ev_annotation_window_close), + window); + icon = gtk_image_new_from_stock (EV_STOCK_CLOSE, EV_ICON_SIZE_ANNOT_WINDOW); + gtk_container_add (GTK_CONTAINER (window->close_button), icon); + gtk_widget_show (icon); + + gtk_box_pack_start (GTK_BOX (hbox), window->close_button, FALSE, FALSE, 0); + gtk_widget_show (window->close_button); + + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + /* Contents */ + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + window->text_view = gtk_text_view_new (); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (window->text_view), GTK_WRAP_WORD); + g_signal_connect (window->text_view, "button_press_event", + G_CALLBACK (text_view_button_press), + window); + gtk_container_add (GTK_CONTAINER (swindow), window->text_view); + gtk_widget_show (window->text_view); + + gtk_box_pack_start (GTK_BOX (vbox), swindow, TRUE, TRUE, 0); + gtk_widget_show (swindow); + + /* Resize bar */ + hbox = gtk_hbox_new (FALSE, 0); + + window->resize_sw = gtk_event_box_new (); + gtk_widget_add_events (window->resize_sw, GDK_BUTTON_PRESS_MASK); + g_signal_connect_swapped (window->resize_sw, "button-press-event", + G_CALLBACK (ev_annotation_window_resize), + window); + g_signal_connect (window->resize_sw, "realize", + G_CALLBACK (ev_annotation_window_set_resize_cursor), + window); + + icon = gtk_image_new_from_stock (EV_STOCK_RESIZE_SW, EV_ICON_SIZE_ANNOT_WINDOW); + gtk_container_add (GTK_CONTAINER (window->resize_sw), icon); + gtk_widget_show (icon); + gtk_box_pack_start (GTK_BOX (hbox), window->resize_sw, FALSE, FALSE, 0); + gtk_widget_show (window->resize_sw); + + window->resize_se = gtk_event_box_new (); + gtk_widget_add_events (window->resize_se, GDK_BUTTON_PRESS_MASK); + g_signal_connect_swapped (window->resize_se, "button-press-event", + G_CALLBACK (ev_annotation_window_resize), + window); + g_signal_connect (window->resize_se, "realize", + G_CALLBACK (ev_annotation_window_set_resize_cursor), + window); + + icon = gtk_image_new_from_stock (EV_STOCK_RESIZE_SE, EV_ICON_SIZE_ANNOT_WINDOW); + gtk_container_add (GTK_CONTAINER (window->resize_se), icon); + gtk_widget_show (icon); + gtk_box_pack_end (GTK_BOX (hbox), window->resize_se, FALSE, FALSE, 0); + gtk_widget_show (window->resize_se); + + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + gtk_container_add (GTK_CONTAINER (window), vbox); + gtk_container_set_border_width (GTK_CONTAINER (window), 0); + gtk_widget_show (vbox); + + gtk_widget_add_events (GTK_WIDGET (window), + GDK_BUTTON_PRESS_MASK | + GDK_KEY_PRESS_MASK); + gtk_widget_set_app_paintable (GTK_WIDGET (window), TRUE); + + gtk_container_set_border_width (GTK_CONTAINER (window), 2); + + gtk_window_set_accept_focus (GTK_WINDOW (window), TRUE); + gtk_window_set_decorated (GTK_WINDOW (window), FALSE); + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); + gtk_window_set_skip_pager_hint (GTK_WINDOW (window), TRUE); + gtk_window_set_resizable (GTK_WINDOW (window), TRUE); +} + +static GObject * +ev_annotation_window_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvAnnotationWindow *window; + EvAnnotation *annot; + EvAnnotationMarkup *markup; + const gchar *contents; + const gchar *label; + GdkColor color; + EvRectangle *rect; + gdouble scale; + + object = G_OBJECT_CLASS (ev_annotation_window_parent_class)->constructor (type, + n_construct_properties, + construct_params); + window = EV_ANNOTATION_WINDOW (object); + annot = window->annotation; + markup = EV_ANNOTATION_MARKUP (annot); + + gtk_window_set_transient_for (GTK_WINDOW (window), window->parent); + gtk_window_set_destroy_with_parent (GTK_WINDOW (window), FALSE); + + label = ev_annotation_markup_get_label (markup); + window->is_open = ev_annotation_markup_get_popup_is_open (markup); + ev_annotation_markup_get_rectangle (markup, &window->rect); + + rect = &window->rect; + + /* Rectangle is at doc resolution (72.0) */ + scale = get_screen_dpi (window) / 72.0; + gtk_window_resize (GTK_WINDOW (window), + (gint)((rect->x2 - rect->x1) * scale), + (gint)((rect->y2 - rect->y1) * scale)); + + ev_annotation_get_color (annot, &color); + ev_annotation_window_set_color (window, &color); + gtk_widget_set_name (GTK_WIDGET (window), ev_annotation_get_name (annot)); + gtk_window_set_title (GTK_WINDOW (window), label); + gtk_label_set_text (GTK_LABEL (window->title), label); + + contents = ev_annotation_get_contents (annot); + if (contents) { + GtkTextBuffer *buffer; + + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->text_view)); + gtk_text_buffer_set_text (buffer, contents, -1); + } + + g_signal_connect (annot, "notify::label", + G_CALLBACK (ev_annotation_window_label_changed), + window); + g_signal_connect (annot, "notify::color", + G_CALLBACK (ev_annotation_window_color_changed), + window); + + return object; +} + +static gboolean +ev_annotation_window_button_press_event (GtkWidget *widget, + GdkEventButton *event) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget); + + if (event->type == GDK_BUTTON_PRESS && event->button == 1) { + window->in_move = TRUE; + window->x = event->x_root - event->x; + window->y = event->y_root - event->y; + gtk_window_begin_move_drag (GTK_WINDOW (widget), + event->button, + event->x_root, + event->y_root, + event->time); + return TRUE; + } + + return FALSE; +} + +static gboolean +ev_annotation_window_configure_event (GtkWidget *widget, + GdkEventConfigure *event) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget); + + if (window->in_move && + (window->x != event->x || window->y != event->y)) { + window->x = event->x; + window->y = event->y; + } + + return GTK_WIDGET_CLASS (ev_annotation_window_parent_class)->configure_event (widget, event); +} + +static gboolean +ev_annotation_window_focus_in_event (GtkWidget *widget, + GdkEventFocus *event) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget); + + if (window->in_move) { + if (window->orig_x != window->x || window->orig_y != window->y) { + window->orig_x = window->x; + window->orig_y = window->y; + g_signal_emit (window, signals[MOVED], 0, window->x, window->y); + } + window->in_move = FALSE; + } + + return FALSE; +} + +static gboolean +ev_annotation_window_focus_out_event (GtkWidget *widget, + GdkEventFocus *event) +{ + EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget); + + ev_annotation_window_sync_contents (window); + + return FALSE; +} + +static void +ev_annotation_window_class_init (EvAnnotationWindowClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *gtk_widget_class = GTK_WIDGET_CLASS (klass); + + g_object_class->constructor = ev_annotation_window_constructor; + g_object_class->set_property = ev_annotation_window_set_property; + g_object_class->dispose = ev_annotation_window_dispose; + + gtk_widget_class->button_press_event = ev_annotation_window_button_press_event; + gtk_widget_class->configure_event = ev_annotation_window_configure_event; + gtk_widget_class->focus_in_event = ev_annotation_window_focus_in_event; + gtk_widget_class->focus_out_event = ev_annotation_window_focus_out_event; + + g_object_class_install_property (g_object_class, + PROP_ANNOTATION, + g_param_spec_object ("annotation", + "Annotation", + "The annotation associated to the window", + EV_TYPE_ANNOTATION_MARKUP, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (g_object_class, + PROP_PARENT, + g_param_spec_object ("parent", + "Parent", + "The parent window", + GTK_TYPE_WINDOW, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + signals[CLOSED] = + g_signal_new ("closed", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvAnnotationWindowClass, closed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, G_TYPE_NONE); + signals[MOVED] = + g_signal_new ("moved", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvAnnotationWindowClass, moved), + NULL, NULL, + ev_view_marshal_VOID__INT_INT, + G_TYPE_NONE, 2, + G_TYPE_INT, G_TYPE_INT); +} + +/* Public methods */ +GtkWidget * +ev_annotation_window_new (EvAnnotation *annot, + GtkWindow *parent) +{ + GtkWidget *window; + + g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (annot), NULL); + g_return_val_if_fail (GTK_IS_WINDOW (parent), NULL); + + window = g_object_new (EV_TYPE_ANNOTATION_WINDOW, + "annotation", annot, + "parent", parent, + NULL); + return window; +} + +EvAnnotation * +ev_annotation_window_get_annotation (EvAnnotationWindow *window) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_WINDOW (window), NULL); + + return window->annotation; +} + +void +ev_annotation_window_set_annotation (EvAnnotationWindow *window, + EvAnnotation *annot) +{ + g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); + g_return_if_fail (EV_IS_ANNOTATION (annot)); + + if (annot == window->annotation) + return; + + g_object_unref (window->annotation); + window->annotation = g_object_ref (annot); + ev_annotation_window_sync_contents (window); + g_object_notify (G_OBJECT (window), "annotation"); +} + +gboolean +ev_annotation_window_is_open (EvAnnotationWindow *window) +{ + g_return_val_if_fail (EV_IS_ANNOTATION_WINDOW (window), FALSE); + + return window->is_open; +} + +void +ev_annotation_window_get_rectangle (EvAnnotationWindow *window, + EvRectangle *rect) +{ + g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); + g_return_if_fail (rect != NULL); + + *rect = window->rect; +} + +void +ev_annotation_window_set_rectangle (EvAnnotationWindow *window, + const EvRectangle *rect) +{ + g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); + g_return_if_fail (rect != NULL); + + window->rect = *rect; +} + +void +ev_annotation_window_grab_focus (EvAnnotationWindow *window) +{ + g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); + + if (!gtk_widget_has_focus (window->text_view)) { + gtk_widget_grab_focus (GTK_WIDGET (window)); + send_focus_change (window->text_view, TRUE); + } +} + +void +ev_annotation_window_ungrab_focus (EvAnnotationWindow *window) +{ + g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); + + if (gtk_widget_has_focus (window->text_view)) { + send_focus_change (window->text_view, FALSE); + } + + ev_annotation_window_sync_contents (window); +} diff --git a/libview/ev-annotation-window.h b/libview/ev-annotation-window.h new file mode 100644 index 00000000..267a6a61 --- /dev/null +++ b/libview/ev-annotation-window.h @@ -0,0 +1,57 @@ +/* ev-annotation-window.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2007 IƱigo Martinez <inigomartinez@gmail.com> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_ANNOTATION_WINDOW_H +#define EV_ANNOTATION_WINDOW_H + +#include <gtk/gtk.h> + +#include "ev-annotation.h" + +G_BEGIN_DECLS + +typedef struct _EvAnnotationWindow EvAnnotationWindow; +typedef struct _EvAnnotationWindowClass EvAnnotationWindowClass; + +#define EV_TYPE_ANNOTATION_WINDOW (ev_annotation_window_get_type()) +#define EV_ANNOTATION_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION_WINDOW, EvAnnotationWindow)) +#define EV_ANNOTATION_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION_WINDOW, EvAnnotationWindowClass)) +#define EV_IS_ANNOTATION_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION_WINDOW)) +#define EV_IS_ANNOTATION_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_WINDOW)) +#define EV_ANNOTATION_WINDOW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_WINDOW, EvAnnotationWindowClass)) + +GType ev_annotation_window_get_type (void) G_GNUC_CONST; +GtkWidget *ev_annotation_window_new (EvAnnotation *annot, + GtkWindow *parent); +EvAnnotation *ev_annotation_window_get_annotation (EvAnnotationWindow *window); +void ev_annotation_window_set_annotation (EvAnnotationWindow *window, + EvAnnotation *annot); +gboolean ev_annotation_window_is_open (EvAnnotationWindow *window); +void ev_annotation_window_get_rectangle (EvAnnotationWindow *window, + EvRectangle *rect); +void ev_annotation_window_set_rectangle (EvAnnotationWindow *window, + const EvRectangle *rect); +void ev_annotation_window_grab_focus (EvAnnotationWindow *window); +void ev_annotation_window_ungrab_focus (EvAnnotationWindow *window); + +G_END_DECLS + +#endif /* EV_ANNOTATION_WINDOW_H */ diff --git a/libview/ev-document-model.c b/libview/ev-document-model.c new file mode 100644 index 00000000..a15ab5ca --- /dev/null +++ b/libview/ev-document-model.c @@ -0,0 +1,571 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "ev-document-model.h" +#include "ev-view-type-builtins.h" +#include "ev-view-marshal.h" + +struct _EvDocumentModel +{ + GObject base; + + EvDocument *document; + gint n_pages; + + gint page; + gint rotation; + gdouble scale; + EvSizingMode sizing_mode; + guint continuous : 1; + guint dual_page : 1; + guint fullscreen : 1; + guint inverted_colors : 1; + + gdouble max_scale; + gdouble min_scale; +}; + +struct _EvDocumentModelClass +{ + GObjectClass base_class; + + /* Signals */ + void (* page_changed) (EvDocumentModel *model, + gint old_page, + gint new_page); +}; + +enum { + PROP_0, + PROP_DOCUMENT, + PROP_PAGE, + PROP_ROTATION, + PROP_INVERTED_COLORS, + PROP_SCALE, + PROP_SIZING_MODE, + PROP_CONTINUOUS, + PROP_DUAL_PAGE, + PROP_FULLSCREEN +}; + +enum +{ + PAGE_CHANGED, + N_SIGNALS +}; + +static guint signals[N_SIGNALS] = { 0 }; + +G_DEFINE_TYPE (EvDocumentModel, ev_document_model, G_TYPE_OBJECT) + +static void +ev_document_model_finalize (GObject *object) +{ + EvDocumentModel *model = EV_DOCUMENT_MODEL (object); + + if (model->document) { + g_object_unref (model->document); + model->document = NULL; + } + + G_OBJECT_CLASS (ev_document_model_parent_class)->finalize (object); +} + +static void +ev_document_model_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvDocumentModel *model = EV_DOCUMENT_MODEL (object); + + switch (prop_id) { + case PROP_DOCUMENT: + ev_document_model_set_document (model, (EvDocument *)g_value_get_object (value)); + break; + case PROP_PAGE: + ev_document_model_set_page (model, g_value_get_int (value)); + break; + case PROP_ROTATION: + ev_document_model_set_rotation (model, g_value_get_int (value)); + break; + case PROP_INVERTED_COLORS: + ev_document_model_set_inverted_colors (model, g_value_get_boolean (value)); + break; + case PROP_SCALE: + ev_document_model_set_scale (model, g_value_get_double (value)); + break; + case PROP_SIZING_MODE: + ev_document_model_set_sizing_mode (model, g_value_get_enum (value)); + break; + case PROP_CONTINUOUS: + ev_document_model_set_continuous (model, g_value_get_boolean (value)); + break; + case PROP_DUAL_PAGE: + ev_document_model_set_dual_page (model, g_value_get_boolean (value)); + break; + case PROP_FULLSCREEN: + ev_document_model_set_fullscreen (model, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_document_model_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvDocumentModel *model = EV_DOCUMENT_MODEL (object); + + switch (prop_id) { + case PROP_DOCUMENT: + g_value_set_object (value, model->document); + break; + case PROP_PAGE: + g_value_set_int (value, model->page); + break; + case PROP_ROTATION: + g_value_set_int (value, model->rotation); + break; + case PROP_INVERTED_COLORS: + g_value_set_boolean (value, model->inverted_colors); + break; + case PROP_SCALE: + g_value_set_double (value, model->scale); + break; + case PROP_SIZING_MODE: + g_value_set_enum (value, model->sizing_mode); + break; + case PROP_CONTINUOUS: + g_value_set_boolean (value, ev_document_model_get_continuous (model)); + break; + case PROP_DUAL_PAGE: + g_value_set_boolean (value, ev_document_model_get_dual_page (model)); + break; + case PROP_FULLSCREEN: + g_value_set_boolean (value, ev_document_model_get_fullscreen (model)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_document_model_class_init (EvDocumentModelClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->get_property = ev_document_model_get_property; + g_object_class->set_property = ev_document_model_set_property; + g_object_class->finalize = ev_document_model_finalize; + + /* Properties */ + g_object_class_install_property (g_object_class, + PROP_DOCUMENT, + g_param_spec_object ("document", + "Document", + "The current document", + EV_TYPE_DOCUMENT, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_PAGE, + g_param_spec_int ("page", + "Page", + "Current page", + -1, G_MAXINT, -1, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_ROTATION, + g_param_spec_int ("rotation", + "Rotation", + "Current rotation angle", + 0, 360, 0, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_INVERTED_COLORS, + g_param_spec_boolean ("inverted-colors", + "Inverted Colors", + "Whether document is displayed with inverted colors", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_SCALE, + g_param_spec_double ("scale", + "Scale", + "Current scale factor", + 0., G_MAXDOUBLE, 1., + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_SIZING_MODE, + g_param_spec_enum ("sizing-mode", + "Sizing Mode", + "Current sizing mode", + EV_TYPE_SIZING_MODE, + EV_SIZING_FIT_WIDTH, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_CONTINUOUS, + g_param_spec_boolean ("continuous", + "Continuous", + "Whether document is displayed in continuous mode", + TRUE, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_DUAL_PAGE, + g_param_spec_boolean ("dual-page", + "Dual Page", + "Whether document is displayed in dual page mode", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (g_object_class, + PROP_FULLSCREEN, + g_param_spec_boolean ("fullscreen", + "Fullscreen", + "Whether document is displayed in fullscreen mode", + FALSE, + G_PARAM_READWRITE)); + + /* Signals */ + signals [PAGE_CHANGED] = + g_signal_new ("page-changed", + EV_TYPE_DOCUMENT_MODEL, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvDocumentModelClass, page_changed), + NULL, NULL, + ev_view_marshal_VOID__INT_INT, + G_TYPE_NONE, 2, + G_TYPE_INT, G_TYPE_INT); +} + +static void +ev_document_model_init (EvDocumentModel *model) +{ + model->page = -1; + model->scale = 1.; + model->sizing_mode = EV_SIZING_FIT_WIDTH; + model->continuous = TRUE; + model->inverted_colors = FALSE; + model->min_scale = 0.; + model->max_scale = G_MAXDOUBLE; +} + +EvDocumentModel * +ev_document_model_new (void) +{ + return g_object_new (EV_TYPE_DOCUMENT_MODEL, NULL); +} + +EvDocumentModel * +ev_document_model_new_with_document (EvDocument *document) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + return g_object_new (EV_TYPE_DOCUMENT_MODEL, "document", document, NULL); +} + +void +ev_document_model_set_document (EvDocumentModel *model, + EvDocument *document) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + g_return_if_fail (EV_IS_DOCUMENT (document)); + + if (document == model->document) + return; + + if (model->document) + g_object_unref (model->document); + model->document = g_object_ref (document); + + model->n_pages = ev_document_get_n_pages (document); + ev_document_model_set_page (model, CLAMP (model->page, 0, + model->n_pages - 1)); + + g_object_notify (G_OBJECT (model), "document"); +} + +EvDocument * +ev_document_model_get_document (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), NULL); + + return model->document; +} + +void +ev_document_model_set_page (EvDocumentModel *model, + gint page) +{ + gint old_page; + + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (model->page == page) + return; + if (page < 0 || (model->document && page >= model->n_pages)) + return; + + old_page = model->page; + model->page = page; + g_signal_emit (model, signals[PAGE_CHANGED], 0, old_page, page); + + g_object_notify (G_OBJECT (model), "page"); +} + +void +ev_document_model_set_page_by_label (EvDocumentModel *model, + const gchar *page_label) +{ + gint page; + + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + g_return_if_fail (model->document != NULL); + + if (ev_document_find_page_by_label (model->document, page_label, &page)) + ev_document_model_set_page (model, page); +} + +gint +ev_document_model_get_page (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), -1); + + return model->page; +} + +void +ev_document_model_set_scale (EvDocumentModel *model, + gdouble scale) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + scale = CLAMP (scale, + model->sizing_mode == EV_SIZING_FREE ? + model->min_scale : 0, model->max_scale); + + if (scale == model->scale) + return; + + model->scale = scale; + + g_object_notify (G_OBJECT (model), "scale"); +} + +gdouble +ev_document_model_get_scale (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), 1.0); + + return model->scale; +} + +void +ev_document_model_set_max_scale (EvDocumentModel *model, + gdouble max_scale) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (max_scale == model->max_scale) + return; + + model->max_scale = max_scale; + + if (model->scale > max_scale) + ev_document_model_set_scale (model, max_scale); +} + +gdouble +ev_document_model_get_max_scale (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), 1.0); + + return model->max_scale; +} + +void +ev_document_model_set_min_scale (EvDocumentModel *model, + gdouble min_scale) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (min_scale == model->min_scale) + return; + + model->min_scale = min_scale; + + if (model->scale < min_scale) + ev_document_model_set_scale (model, min_scale); +} + +gdouble +ev_document_model_get_min_scale (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), 0.); + + return model->min_scale; +} + +void +ev_document_model_set_sizing_mode (EvDocumentModel *model, + EvSizingMode mode) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (mode == model->sizing_mode) + return; + + model->sizing_mode = mode; + + g_object_notify (G_OBJECT (model), "sizing-mode"); +} + +EvSizingMode +ev_document_model_get_sizing_mode (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), EV_SIZING_FIT_WIDTH); + + return model->sizing_mode; +} + +void +ev_document_model_set_rotation (EvDocumentModel *model, + gint rotation) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (rotation >= 360) + rotation -= 360; + else if (rotation < 0) + rotation += 360; + + if (rotation == model->rotation) + return; + + model->rotation = rotation; + + g_object_notify (G_OBJECT (model), "rotation"); +} + +gint +ev_document_model_get_rotation (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), 0); + + return model->rotation; +} + +void +ev_document_model_set_inverted_colors (EvDocumentModel *model, + gboolean inverted_colors) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (inverted_colors == model->inverted_colors) + return; + + model->inverted_colors = inverted_colors; + + g_object_notify (G_OBJECT (model), "inverted-colors"); +} + +gboolean +ev_document_model_get_inverted_colors (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), FALSE); + + return model->inverted_colors; +} + +void +ev_document_model_set_continuous (EvDocumentModel *model, + gboolean continuous) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + continuous = continuous != FALSE; + + if (continuous == model->continuous) + return; + + model->continuous = continuous; + + g_object_notify (G_OBJECT (model), "continuous"); +} + +gboolean +ev_document_model_get_continuous (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), TRUE); + + return model->continuous; +} + +void +ev_document_model_set_dual_page (EvDocumentModel *model, + gboolean dual_page) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + dual_page = dual_page != FALSE; + + if (dual_page == model->dual_page) + return; + + model->dual_page = dual_page; + + g_object_notify (G_OBJECT (model), "dual-page"); +} + +gboolean +ev_document_model_get_dual_page (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), FALSE); + + return model->dual_page; +} + +void +ev_document_model_set_fullscreen (EvDocumentModel *model, + gboolean fullscreen) +{ + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + fullscreen = fullscreen != FALSE; + + if (fullscreen == model->fullscreen) + return; + + model->fullscreen = fullscreen; + + g_object_notify (G_OBJECT (model), "fullscreen"); +} + +gboolean +ev_document_model_get_fullscreen (EvDocumentModel *model) +{ + g_return_val_if_fail (EV_IS_DOCUMENT_MODEL (model), FALSE); + + return model->fullscreen; +} diff --git a/libview/ev-document-model.h b/libview/ev-document-model.h new file mode 100644 index 00000000..05525ebe --- /dev/null +++ b/libview/ev-document-model.h @@ -0,0 +1,87 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_DOCUMENT_MODEL_H__ +#define __EV_DOCUMENT_MODEL_H__ + +#include <glib-object.h> +#include <evince-document.h> + +G_BEGIN_DECLS + +#define EV_TYPE_DOCUMENT_MODEL (ev_document_model_get_type ()) +#define EV_DOCUMENT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_DOCUMENT_MODEL, EvDocumentModel)) +#define EV_IS_DOCUMENT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_DOCUMENT_MODEL)) + +typedef enum { + EV_SIZING_BEST_FIT, + EV_SIZING_FIT_WIDTH, + EV_SIZING_FREE, +} EvSizingMode; + +typedef struct _EvDocumentModel EvDocumentModel; +typedef struct _EvDocumentModelClass EvDocumentModelClass; + +GType ev_document_model_get_type (void) G_GNUC_CONST; +EvDocumentModel *ev_document_model_new (void); +EvDocumentModel *ev_document_model_new_with_document (EvDocument *document); + +void ev_document_model_set_document (EvDocumentModel *model, + EvDocument *document); +EvDocument *ev_document_model_get_document (EvDocumentModel *model); +void ev_document_model_set_page (EvDocumentModel *model, + gint page); +void ev_document_model_set_page_by_label (EvDocumentModel *model, + const gchar *page_label); +gint ev_document_model_get_page (EvDocumentModel *model); +void ev_document_model_set_scale (EvDocumentModel *model, + gdouble scale); +gdouble ev_document_model_get_scale (EvDocumentModel *model); +void ev_document_model_set_max_scale (EvDocumentModel *model, + gdouble max_scale); +gdouble ev_document_model_get_max_scale (EvDocumentModel *model); +void ev_document_model_set_min_scale (EvDocumentModel *model, + gdouble min_scale); +gdouble ev_document_model_get_min_scale (EvDocumentModel *model); +void ev_document_model_set_sizing_mode (EvDocumentModel *model, + EvSizingMode mode); +EvSizingMode ev_document_model_get_sizing_mode (EvDocumentModel *model); +void ev_document_model_set_rotation (EvDocumentModel *model, + gint rotation); +gint ev_document_model_get_rotation (EvDocumentModel *model); +void ev_document_model_set_inverted_colors (EvDocumentModel *model, + gboolean inverted_colors); +gboolean ev_document_model_get_inverted_colors (EvDocumentModel *model); +void ev_document_model_set_continuous (EvDocumentModel *model, + gboolean continuous); +gboolean ev_document_model_get_continuous (EvDocumentModel *model); +void ev_document_model_set_dual_page (EvDocumentModel *model, + gboolean dual_page); +gboolean ev_document_model_get_dual_page (EvDocumentModel *model); +void ev_document_model_set_fullscreen (EvDocumentModel *model, + gboolean fullscreen); +gboolean ev_document_model_get_fullscreen (EvDocumentModel *model); + +G_END_DECLS + +#endif /* __EV_DOCUMENT_MODEL_H__ */ diff --git a/libview/ev-job-scheduler.c b/libview/ev-job-scheduler.c new file mode 100644 index 00000000..f874832f --- /dev/null +++ b/libview/ev-job-scheduler.c @@ -0,0 +1,305 @@ +/* ev-job-scheduler.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "ev-debug.h" +#include "ev-job-scheduler.h" + +typedef struct _EvSchedulerJob { + EvJob *job; + EvJobPriority priority; + GSList *job_link; +} EvSchedulerJob; + +G_LOCK_DEFINE_STATIC(job_list); +static GSList *job_list = NULL; + +static gpointer ev_job_thread_proxy (gpointer data); +static void ev_scheduler_thread_job_cancelled (EvSchedulerJob *job, + GCancellable *cancellable); + +/* EvJobQueue */ +static GQueue queue_urgent = G_QUEUE_INIT; +static GQueue queue_high = G_QUEUE_INIT; +static GQueue queue_low = G_QUEUE_INIT; +static GQueue queue_none = G_QUEUE_INIT; + +static GCond *job_queue_cond = NULL; +static GMutex *job_queue_mutex = NULL; +static GQueue *job_queue[EV_JOB_N_PRIORITIES] = { + &queue_urgent, + &queue_high, + &queue_low, + &queue_none +}; + +static void +ev_job_queue_push (EvSchedulerJob *job, + EvJobPriority priority) +{ + ev_debug_message (DEBUG_JOBS, "%s priority %d", EV_GET_TYPE_NAME (job->job), priority); + + g_mutex_lock (job_queue_mutex); + + g_queue_push_tail (job_queue[priority], job); + g_cond_broadcast (job_queue_cond); + + g_mutex_unlock (job_queue_mutex); +} + +static EvSchedulerJob * +ev_job_queue_get_next_unlocked (void) +{ + gint i; + EvSchedulerJob *job = NULL; + + for (i = EV_JOB_PRIORITY_URGENT; i < EV_JOB_N_PRIORITIES; i++) { + job = (EvSchedulerJob *) g_queue_pop_head (job_queue[i]); + if (job) + break; + } + + ev_debug_message (DEBUG_JOBS, "%s", job ? EV_GET_TYPE_NAME (job->job) : "No jobs in queue"); + + return job; +} + +static gpointer +ev_job_scheduler_init (gpointer data) +{ + job_queue_cond = g_cond_new (); + job_queue_mutex = g_mutex_new (); + g_thread_create (ev_job_thread_proxy, NULL, FALSE, NULL); + + return NULL; +} + +static void +ev_scheduler_job_list_add (EvSchedulerJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job->job)); + + G_LOCK (job_list); + + job_list = g_slist_prepend (job_list, job); + job->job_link = job_list; + + G_UNLOCK (job_list); +} + +static void +ev_scheduler_job_list_remove (EvSchedulerJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job->job)); + + G_LOCK (job_list); + + job_list = g_slist_delete_link (job_list, job->job_link); + + G_UNLOCK (job_list); +} + +static void +ev_scheduler_job_free (EvSchedulerJob *job) +{ + if (!job) + return; + + g_object_unref (job->job); + g_free (job); +} + +static void +ev_scheduler_job_destroy (EvSchedulerJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job->job)); + + if (job->job->run_mode == EV_JOB_RUN_MAIN_LOOP) { + g_signal_handlers_disconnect_by_func (job->job, + G_CALLBACK (ev_scheduler_job_destroy), + job); + } else { + g_signal_handlers_disconnect_by_func (job->job->cancellable, + G_CALLBACK (ev_scheduler_thread_job_cancelled), + job); + } + + ev_scheduler_job_list_remove (job); + ev_scheduler_job_free (job); +} + +static void +ev_scheduler_thread_job_cancelled (EvSchedulerJob *job, + GCancellable *cancellable) +{ + GList *list; + + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job->job)); + + g_mutex_lock (job_queue_mutex); + + /* If the job is not still running, + * remove it from the job queue and job list. + * If the job is currently running, it will be + * destroyed as soon as it finishes. + */ + list = g_queue_find (job_queue[job->priority], job); + if (list) { + g_queue_delete_link (job_queue[job->priority], list); + g_mutex_unlock (job_queue_mutex); + ev_scheduler_job_destroy (job); + } else { + g_mutex_unlock (job_queue_mutex); + } +} + +static void +ev_job_thread (EvJob *job) +{ + gboolean result; + + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job)); + + do { + if (g_cancellable_is_cancelled (job->cancellable)) + result = FALSE; + else + result = ev_job_run (job); + } while (result); +} + +static gboolean +ev_job_idle (EvJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s", EV_GET_TYPE_NAME (job)); + + if (g_cancellable_is_cancelled (job->cancellable)) + return FALSE; + + return ev_job_run (job); +} + +static gpointer +ev_job_thread_proxy (gpointer data) +{ + while (TRUE) { + EvSchedulerJob *job; + + g_mutex_lock (job_queue_mutex); + job = ev_job_queue_get_next_unlocked (); + if (!job) { + g_cond_wait (job_queue_cond, job_queue_mutex); + g_mutex_unlock (job_queue_mutex); + continue; + } + g_mutex_unlock (job_queue_mutex); + + ev_job_thread (job->job); + ev_scheduler_job_destroy (job); + } + + return NULL; +} + +void +ev_job_scheduler_push_job (EvJob *job, + EvJobPriority priority) +{ + static GOnce once_init = G_ONCE_INIT; + EvSchedulerJob *s_job; + + g_once (&once_init, ev_job_scheduler_init, NULL); + + ev_debug_message (DEBUG_JOBS, "%s pirority %d", EV_GET_TYPE_NAME (job), priority); + + s_job = g_new0 (EvSchedulerJob, 1); + s_job->job = g_object_ref (job); + s_job->priority = priority; + + ev_scheduler_job_list_add (s_job); + + switch (ev_job_get_run_mode (job)) { + case EV_JOB_RUN_THREAD: + g_signal_connect_swapped (job->cancellable, "cancelled", + G_CALLBACK (ev_scheduler_thread_job_cancelled), + s_job); + ev_job_queue_push (s_job, priority); + break; + case EV_JOB_RUN_MAIN_LOOP: + g_signal_connect_swapped (job, "finished", + G_CALLBACK (ev_scheduler_job_destroy), + s_job); + g_signal_connect_swapped (job, "cancelled", + G_CALLBACK (ev_scheduler_job_destroy), + s_job); + g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc)ev_job_idle, + g_object_ref (job), + (GDestroyNotify)g_object_unref); + break; + default: + g_assert_not_reached (); + } +} + +void +ev_job_scheduler_update_job (EvJob *job, + EvJobPriority priority) +{ + GSList *l; + EvSchedulerJob *s_job = NULL; + gboolean need_resort = FALSE; + + /* Main loop jobs are scheduled inmediately */ + if (ev_job_get_run_mode (job) == EV_JOB_RUN_MAIN_LOOP) + return; + + ev_debug_message (DEBUG_JOBS, "%s pirority %d", EV_GET_TYPE_NAME (job), priority); + + G_LOCK (job_list); + + for (l = job_list; l; l = l->next) { + s_job = (EvSchedulerJob *)l->data; + + if (s_job->job == job) { + need_resort = (s_job->priority != priority); + break; + } + } + + G_UNLOCK (job_list); + + if (need_resort) { + GList *list; + + g_mutex_lock (job_queue_mutex); + + list = g_queue_find (job_queue[s_job->priority], s_job); + if (list) { + ev_debug_message (DEBUG_JOBS, "Moving job %s from pirority %d to %d", + EV_GET_TYPE_NAME (job), s_job->priority, priority); + g_queue_delete_link (job_queue[s_job->priority], list); + g_queue_push_tail (job_queue[priority], s_job); + g_cond_broadcast (job_queue_cond); + } + + g_mutex_unlock (job_queue_mutex); + } +} + diff --git a/libview/ev-job-scheduler.h b/libview/ev-job-scheduler.h new file mode 100644 index 00000000..b099a66f --- /dev/null +++ b/libview/ev-job-scheduler.h @@ -0,0 +1,48 @@ +/* ev-job-scheduler.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef EV_JOB_SCHEDULER_H +#define EV_JOB_SCHEDULER_H + +#include <glib.h> +#include "ev-jobs.h" + +G_BEGIN_DECLS + +typedef enum { + EV_JOB_PRIORITY_URGENT, /* Rendering current page range */ + EV_JOB_PRIORITY_HIGH, /* Rendering current thumbnail range */ + EV_JOB_PRIORITY_LOW, /* Rendering pages not in current range */ + EV_JOB_PRIORITY_NONE, /* Any other job: load, save, print, ... */ + EV_JOB_N_PRIORITIES +} EvJobPriority; + +void ev_job_scheduler_push_job (EvJob *job, + EvJobPriority priority); +void ev_job_scheduler_update_job (EvJob *job, + EvJobPriority priority); + +G_END_DECLS + +#endif /* EV_JOB_SCHEDULER_H */ diff --git a/libview/ev-jobs.c b/libview/ev-jobs.c new file mode 100644 index 00000000..ffb2d729 --- /dev/null +++ b/libview/ev-jobs.c @@ -0,0 +1,1577 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-jobs.h" +#include "ev-document-thumbnails.h" +#include "ev-document-links.h" +#include "ev-document-images.h" +#include "ev-document-forms.h" +#include "ev-file-exporter.h" +#include "ev-document-factory.h" +#include "ev-document-misc.h" +#include "ev-file-helpers.h" +#include "ev-document-fonts.h" +#include "ev-document-security.h" +#include "ev-document-find.h" +#include "ev-document-layers.h" +#include "ev-document-print.h" +#include "ev-document-annotations.h" +#include "ev-document-attachments.h" +#include "ev-document-text.h" +#include "ev-debug.h" + +#include <errno.h> +#include <glib/gstdio.h> +#include <glib/gi18n-lib.h> +#include <unistd.h> + +static void ev_job_init (EvJob *job); +static void ev_job_class_init (EvJobClass *class); +static void ev_job_links_init (EvJobLinks *job); +static void ev_job_links_class_init (EvJobLinksClass *class); +static void ev_job_attachments_init (EvJobAttachments *job); +static void ev_job_attachments_class_init (EvJobAttachmentsClass *class); +static void ev_job_annots_init (EvJobAnnots *job); +static void ev_job_annots_class_init (EvJobAnnotsClass *class); +static void ev_job_render_init (EvJobRender *job); +static void ev_job_render_class_init (EvJobRenderClass *class); +static void ev_job_page_data_init (EvJobPageData *job); +static void ev_job_page_data_class_init (EvJobPageDataClass *class); +static void ev_job_thumbnail_init (EvJobThumbnail *job); +static void ev_job_thumbnail_class_init (EvJobThumbnailClass *class); +static void ev_job_load_init (EvJobLoad *job); +static void ev_job_load_class_init (EvJobLoadClass *class); +static void ev_job_save_init (EvJobSave *job); +static void ev_job_save_class_init (EvJobSaveClass *class); +static void ev_job_find_init (EvJobFind *job); +static void ev_job_find_class_init (EvJobFindClass *class); +static void ev_job_layers_init (EvJobLayers *job); +static void ev_job_layers_class_init (EvJobLayersClass *class); +static void ev_job_export_init (EvJobExport *job); +static void ev_job_export_class_init (EvJobExportClass *class); +static void ev_job_print_init (EvJobPrint *job); +static void ev_job_print_class_init (EvJobPrintClass *class); + +enum { + CANCELLED, + FINISHED, + LAST_SIGNAL +}; + +enum { + FONTS_UPDATED, + FONTS_LAST_SIGNAL +}; + +enum { + FIND_UPDATED, + FIND_LAST_SIGNAL +}; + +static guint job_signals[LAST_SIGNAL] = { 0 }; +static guint job_fonts_signals[FONTS_LAST_SIGNAL] = { 0 }; +static guint job_find_signals[FIND_LAST_SIGNAL] = { 0 }; + +G_DEFINE_ABSTRACT_TYPE (EvJob, ev_job, G_TYPE_OBJECT) +G_DEFINE_TYPE (EvJobLinks, ev_job_links, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobAttachments, ev_job_attachments, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobAnnots, ev_job_annots, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobRender, ev_job_render, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobPageData, ev_job_page_data, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobThumbnail, ev_job_thumbnail, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobFonts, ev_job_fonts, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobLoad, ev_job_load, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobSave, ev_job_save, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobFind, ev_job_find, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobLayers, ev_job_layers, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobExport, ev_job_export, EV_TYPE_JOB) +G_DEFINE_TYPE (EvJobPrint, ev_job_print, EV_TYPE_JOB) + +/* EvJob */ +static void +ev_job_init (EvJob *job) +{ + job->cancellable = g_cancellable_new (); +} + +static void +ev_job_dispose (GObject *object) +{ + EvJob *job; + + job = EV_JOB (object); + + if (job->document) { + g_object_unref (job->document); + job->document = NULL; + } + + if (job->cancellable) { + g_object_unref (job->cancellable); + job->cancellable = NULL; + } + + if (job->error) { + g_error_free (job->error); + job->error = NULL; + } + + (* G_OBJECT_CLASS (ev_job_parent_class)->dispose) (object); +} + +static void +ev_job_class_init (EvJobClass *class) +{ + GObjectClass *oclass; + + oclass = G_OBJECT_CLASS (class); + + oclass->dispose = ev_job_dispose; + + job_signals[CANCELLED] = + g_signal_new ("cancelled", + EV_TYPE_JOB, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvJobClass, cancelled), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + job_signals [FINISHED] = + g_signal_new ("finished", + EV_TYPE_JOB, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EvJobClass, finished), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +static gboolean +emit_finished (EvJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + job->idle_finished_id = 0; + + if (job->cancelled) { + ev_debug_message (DEBUG_JOBS, "%s (%p) job was cancelled, do not emit finished", EV_GET_TYPE_NAME (job), job); + } else { + ev_profiler_stop (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + g_signal_emit (job, job_signals[FINISHED], 0); + } + + return FALSE; +} + +static void +ev_job_emit_finished (EvJob *job) +{ + ev_debug_message (DEBUG_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + if (g_cancellable_is_cancelled (job->cancellable)) { + ev_debug_message (DEBUG_JOBS, "%s (%p) job was cancelled, returning", EV_GET_TYPE_NAME (job), job); + return; + } + + job->finished = TRUE; + + if (job->run_mode == EV_JOB_RUN_THREAD) { + job->idle_finished_id = + g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc)emit_finished, + g_object_ref (job), + (GDestroyNotify)g_object_unref); + } else { + ev_profiler_stop (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + g_signal_emit (job, job_signals[FINISHED], 0); + } +} + +gboolean +ev_job_run (EvJob *job) +{ + EvJobClass *class = EV_JOB_GET_CLASS (job); + + return class->run (job); +} + +void +ev_job_cancel (EvJob *job) +{ + if (job->cancelled || (job->finished && job->idle_finished_id == 0)) + return; + + ev_debug_message (DEBUG_JOBS, "job %s (%p) cancelled", EV_GET_TYPE_NAME (job), job); + ev_profiler_stop (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + /* This should never be called from a thread */ + job->cancelled = TRUE; + g_cancellable_cancel (job->cancellable); + g_signal_emit (job, job_signals[CANCELLED], 0); +} + +void +ev_job_failed (EvJob *job, + GQuark domain, + gint code, + const gchar *format, + ...) +{ + va_list args; + gchar *message; + + if (job->failed || job->finished) + return; + + ev_debug_message (DEBUG_JOBS, "job %s (%p) failed", EV_GET_TYPE_NAME (job), job); + + job->failed = TRUE; + + va_start (args, format); + message = g_strdup_vprintf (format, args); + va_end (args); + + job->error = g_error_new_literal (domain, code, message); + g_free (message); + + ev_job_emit_finished (job); +} + +void +ev_job_failed_from_error (EvJob *job, + GError *error) +{ + if (job->failed || job->finished) + return; + + ev_debug_message (DEBUG_JOBS, "job %s (%p) failed", EV_GET_TYPE_NAME (job), job); + + job->failed = TRUE; + job->error = g_error_copy (error); + + ev_job_emit_finished (job); +} + +void +ev_job_succeeded (EvJob *job) +{ + if (job->finished) + return; + + ev_debug_message (DEBUG_JOBS, "job %s (%p) succeeded", EV_GET_TYPE_NAME (job), job); + + job->failed = FALSE; + ev_job_emit_finished (job); +} + +gboolean +ev_job_is_finished (EvJob *job) +{ + return job->finished; +} + +gboolean +ev_job_is_failed (EvJob *job) +{ + return job->failed; +} + +EvJobRunMode +ev_job_get_run_mode (EvJob *job) +{ + return job->run_mode; +} + +void +ev_job_set_run_mode (EvJob *job, + EvJobRunMode run_mode) +{ + job->run_mode = run_mode; +} + +/* EvJobLinks */ +static void +ev_job_links_init (EvJobLinks *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_links_dispose (GObject *object) +{ + EvJobLinks *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_LINKS (object); + + if (job->model) { + g_object_unref (job->model); + job->model = NULL; + } + + (* G_OBJECT_CLASS (ev_job_links_parent_class)->dispose) (object); +} + +static gboolean +ev_job_links_run (EvJob *job) +{ + EvJobLinks *job_links = EV_JOB_LINKS (job); + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + job_links->model = ev_document_links_get_links_model (EV_DOCUMENT_LINKS (job->document)); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_links_class_init (EvJobLinksClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_links_dispose; + job_class->run = ev_job_links_run; +} + +EvJob * +ev_job_links_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_LINKS, NULL); + job->document = g_object_ref (document); + + return job; +} + +/* EvJobAttachments */ +static void +ev_job_attachments_init (EvJobAttachments *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_attachments_dispose (GObject *object) +{ + EvJobAttachments *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_ATTACHMENTS (object); + + if (job->attachments) { + g_list_foreach (job->attachments, (GFunc)g_object_unref, NULL); + g_list_free (job->attachments); + job->attachments = NULL; + } + + (* G_OBJECT_CLASS (ev_job_attachments_parent_class)->dispose) (object); +} + +static gboolean +ev_job_attachments_run (EvJob *job) +{ + EvJobAttachments *job_attachments = EV_JOB_ATTACHMENTS (job); + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + job_attachments->attachments = + ev_document_attachments_get_attachments (EV_DOCUMENT_ATTACHMENTS (job->document)); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_attachments_class_init (EvJobAttachmentsClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_attachments_dispose; + job_class->run = ev_job_attachments_run; +} + +EvJob * +ev_job_attachments_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_ATTACHMENTS, NULL); + job->document = g_object_ref (document); + + return job; +} + +/* EvJobAnnots */ +static void +ev_job_annots_init (EvJobAnnots *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_annots_dispose (GObject *object) +{ + EvJobAnnots *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_ANNOTS (object); + + if (job->annots) { + g_list_foreach (job->annots, (GFunc)ev_mapping_list_unref, NULL); + g_list_free (job->annots); + job->annots = NULL; + } + + G_OBJECT_CLASS (ev_job_annots_parent_class)->dispose (object); +} + +static gboolean +ev_job_annots_run (EvJob *job) +{ + EvJobAnnots *job_annots = EV_JOB_ANNOTS (job); + gint i; + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + for (i = 0; i < ev_document_get_n_pages (job->document); i++) { + EvMappingList *mapping_list; + EvPage *page; + + page = ev_document_get_page (job->document, i); + mapping_list = ev_document_annotations_get_annotations (EV_DOCUMENT_ANNOTATIONS (job->document), + page); + g_object_unref (page); + + if (mapping_list) + job_annots->annots = g_list_prepend (job_annots->annots, mapping_list); + } + ev_document_doc_mutex_unlock (); + + job_annots->annots = g_list_reverse (job_annots->annots); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_annots_class_init (EvJobAnnotsClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_annots_dispose; + job_class->run = ev_job_annots_run; +} + +EvJob * +ev_job_annots_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_ANNOTS, NULL); + job->document = g_object_ref (document); + + return job; +} + +/* EvJobRender */ +static void +ev_job_render_init (EvJobRender *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_render_dispose (GObject *object) +{ + EvJobRender *job; + + job = EV_JOB_RENDER (object); + + ev_debug_message (DEBUG_JOBS, "page: %d (%p)", job->page, job); + + if (job->surface) { + cairo_surface_destroy (job->surface); + job->surface = NULL; + } + + if (job->selection) { + cairo_surface_destroy (job->selection); + job->selection = NULL; + } + + if (job->selection_region) { + cairo_region_destroy (job->selection_region); + job->selection_region = NULL; + } + + (* G_OBJECT_CLASS (ev_job_render_parent_class)->dispose) (object); +} + +static gboolean +ev_job_render_run (EvJob *job) +{ + EvJobRender *job_render = EV_JOB_RENDER (job); + EvPage *ev_page; + EvRenderContext *rc; + + ev_debug_message (DEBUG_JOBS, "page: %d (%p)", job_render->page, job); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + + ev_profiler_start (EV_PROFILE_JOBS, "Rendering page %d", job_render->page); + + ev_document_fc_mutex_lock (); + + ev_page = ev_document_get_page (job->document, job_render->page); + rc = ev_render_context_new (ev_page, job_render->rotation, job_render->scale); + g_object_unref (ev_page); + + job_render->surface = ev_document_render (job->document, rc); + /* If job was cancelled during the page rendering, + * we return now, so that the thread is finished ASAP + */ + if (g_cancellable_is_cancelled (job->cancellable)) { + ev_document_fc_mutex_unlock (); + ev_document_doc_mutex_unlock (); + g_object_unref (rc); + + return FALSE; + } + + if (job_render->include_selection && EV_IS_SELECTION (job->document)) { + ev_selection_render_selection (EV_SELECTION (job->document), + rc, + &(job_render->selection), + &(job_render->selection_points), + NULL, + job_render->selection_style, + &(job_render->text), &(job_render->base)); + job_render->selection_region = + ev_selection_get_selection_region (EV_SELECTION (job->document), + rc, + job_render->selection_style, + &(job_render->selection_points)); + } + + g_object_unref (rc); + + ev_document_fc_mutex_unlock (); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_render_class_init (EvJobRenderClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_render_dispose; + job_class->run = ev_job_render_run; +} + +EvJob * +ev_job_render_new (EvDocument *document, + gint page, + gint rotation, + gdouble scale, + gint width, + gint height) +{ + EvJobRender *job; + + ev_debug_message (DEBUG_JOBS, "page: %d", page); + + job = g_object_new (EV_TYPE_JOB_RENDER, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->page = page; + job->rotation = rotation; + job->scale = scale; + job->target_width = width; + job->target_height = height; + + return EV_JOB (job); +} + +void +ev_job_render_set_selection_info (EvJobRender *job, + EvRectangle *selection_points, + EvSelectionStyle selection_style, + GdkColor *text, + GdkColor *base) +{ + job->include_selection = TRUE; + + job->selection_points = *selection_points; + job->selection_style = selection_style; + job->text = *text; + job->base = *base; +} + +/* EvJobPageData */ +static void +ev_job_page_data_init (EvJobPageData *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static gboolean +ev_job_page_data_run (EvJob *job) +{ + EvJobPageData *job_pd = EV_JOB_PAGE_DATA (job); + EvPage *ev_page; + + ev_debug_message (DEBUG_JOBS, "page: %d (%p)", job_pd->page, job); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + ev_page = ev_document_get_page (job->document, job_pd->page); + + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT_MAPPING) && EV_IS_DOCUMENT_TEXT (job->document)) + job_pd->text_mapping = + ev_document_text_get_text_mapping (EV_DOCUMENT_TEXT (job->document), ev_page); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT) && EV_IS_DOCUMENT_TEXT (job->document)) + job_pd->text = + ev_document_text_get_text (EV_DOCUMENT_TEXT (job->document), ev_page); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT) && EV_IS_DOCUMENT_TEXT (job->document)) + ev_document_text_get_text_layout (EV_DOCUMENT_TEXT (job->document), + ev_page, + &(job_pd->text_layout), + &(job_pd->text_layout_length)); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_LINKS) && EV_IS_DOCUMENT_LINKS (job->document)) + job_pd->link_mapping = + ev_document_links_get_links (EV_DOCUMENT_LINKS (job->document), ev_page); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_FORMS) && EV_IS_DOCUMENT_FORMS (job->document)) + job_pd->form_field_mapping = + ev_document_forms_get_form_fields (EV_DOCUMENT_FORMS (job->document), + ev_page); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_IMAGES) && EV_IS_DOCUMENT_IMAGES (job->document)) + job_pd->image_mapping = + ev_document_images_get_image_mapping (EV_DOCUMENT_IMAGES (job->document), + ev_page); + if ((job_pd->flags & EV_PAGE_DATA_INCLUDE_ANNOTS) && EV_IS_DOCUMENT_ANNOTATIONS (job->document)) + job_pd->annot_mapping = + ev_document_annotations_get_annotations (EV_DOCUMENT_ANNOTATIONS (job->document), + ev_page); + g_object_unref (ev_page); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_page_data_class_init (EvJobPageDataClass *class) +{ + EvJobClass *job_class = EV_JOB_CLASS (class); + + job_class->run = ev_job_page_data_run; +} + +EvJob * +ev_job_page_data_new (EvDocument *document, + gint page, + EvJobPageDataFlags flags) +{ + EvJobPageData *job; + + ev_debug_message (DEBUG_JOBS, "%d", page); + + job = g_object_new (EV_TYPE_JOB_PAGE_DATA, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->page = page; + job->flags = flags; + + return EV_JOB (job); +} + +/* EvJobThumbnail */ +static void +ev_job_thumbnail_init (EvJobThumbnail *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_thumbnail_dispose (GObject *object) +{ + EvJobThumbnail *job; + + job = EV_JOB_THUMBNAIL (object); + + ev_debug_message (DEBUG_JOBS, "%d (%p)", job->page, job); + + if (job->thumbnail) { + g_object_unref (job->thumbnail); + job->thumbnail = NULL; + } + + (* G_OBJECT_CLASS (ev_job_thumbnail_parent_class)->dispose) (object); +} + +static gboolean +ev_job_thumbnail_run (EvJob *job) +{ + EvJobThumbnail *job_thumb = EV_JOB_THUMBNAIL (job); + EvRenderContext *rc; + EvPage *page; + + ev_debug_message (DEBUG_JOBS, "%d (%p)", job_thumb->page, job); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + + page = ev_document_get_page (job->document, job_thumb->page); + rc = ev_render_context_new (page, job_thumb->rotation, job_thumb->scale); + g_object_unref (page); + + job_thumb->thumbnail = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (job->document), + rc, TRUE); + g_object_unref (rc); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_thumbnail_class_init (EvJobThumbnailClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_thumbnail_dispose; + job_class->run = ev_job_thumbnail_run; +} + +EvJob * +ev_job_thumbnail_new (EvDocument *document, + gint page, + gint rotation, + gdouble scale) +{ + EvJobThumbnail *job; + + ev_debug_message (DEBUG_JOBS, "%d", page); + + job = g_object_new (EV_TYPE_JOB_THUMBNAIL, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->page = page; + job->rotation = rotation; + job->scale = scale; + + return EV_JOB (job); +} + +/* EvJobFonts */ +static void +ev_job_fonts_init (EvJobFonts *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_MAIN_LOOP; +} + +static gboolean +ev_job_fonts_run (EvJob *job) +{ + EvJobFonts *job_fonts = EV_JOB_FONTS (job); + EvDocumentFonts *fonts = EV_DOCUMENT_FONTS (job->document); + + ev_debug_message (DEBUG_JOBS, NULL); + + /* Do not block the main loop */ + if (!ev_document_doc_mutex_trylock ()) + return TRUE; + + if (!ev_document_fc_mutex_trylock ()) + return TRUE; + +#ifdef EV_ENABLE_DEBUG + /* We use the #ifdef in this case because of the if */ + if (ev_document_fonts_get_progress (fonts) == 0) + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); +#endif + + job_fonts->scan_completed = !ev_document_fonts_scan (fonts, 20); + g_signal_emit (job_fonts, job_fonts_signals[FONTS_UPDATED], 0, + ev_document_fonts_get_progress (fonts)); + + ev_document_fc_mutex_unlock (); + ev_document_doc_mutex_unlock (); + + if (job_fonts->scan_completed) + ev_job_succeeded (job); + + return !job_fonts->scan_completed; +} + +static void +ev_job_fonts_class_init (EvJobFontsClass *class) +{ + EvJobClass *job_class = EV_JOB_CLASS (class); + + job_class->run = ev_job_fonts_run; + + job_fonts_signals[FONTS_UPDATED] = + g_signal_new ("updated", + EV_TYPE_JOB_FONTS, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvJobFontsClass, updated), + NULL, NULL, + g_cclosure_marshal_VOID__DOUBLE, + G_TYPE_NONE, + 1, G_TYPE_DOUBLE); +} + +EvJob * +ev_job_fonts_new (EvDocument *document) +{ + EvJobFonts *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_FONTS, NULL); + + EV_JOB (job)->document = g_object_ref (document); + + return EV_JOB (job); +} + +/* EvJobLoad */ +static void +ev_job_load_init (EvJobLoad *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_load_dispose (GObject *object) +{ + EvJobLoad *job = EV_JOB_LOAD (object); + + ev_debug_message (DEBUG_JOBS, "%s", job->uri); + + if (job->uri) { + g_free (job->uri); + job->uri = NULL; + } + + if (job->password) { + g_free (job->password); + job->password = NULL; + } + + (* G_OBJECT_CLASS (ev_job_load_parent_class)->dispose) (object); +} + +static gboolean +ev_job_load_run (EvJob *job) +{ + EvJobLoad *job_load = EV_JOB_LOAD (job); + GError *error = NULL; + + ev_debug_message (DEBUG_JOBS, "%s", job_load->uri); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_fc_mutex_lock (); + + /* This job may already have a document even if the job didn't complete + because, e.g., a password is required - if so, just reload rather than + creating a new instance */ + if (job->document) { + const gchar *uncompressed_uri; + + if (job_load->password) { + ev_document_security_set_password (EV_DOCUMENT_SECURITY (job->document), + job_load->password); + } + + job->failed = FALSE; + job->finished = FALSE; + g_clear_error (&job->error); + + uncompressed_uri = g_object_get_data (G_OBJECT (job->document), + "uri-uncompressed"); + ev_document_load (job->document, + uncompressed_uri ? uncompressed_uri : job_load->uri, + &error); + } else { + job->document = ev_document_factory_get_document (job_load->uri, + &error); + } + + ev_document_fc_mutex_unlock (); + + if (error) { + ev_job_failed_from_error (job, error); + g_error_free (error); + } else { + ev_job_succeeded (job); + } + + return FALSE; +} + +static void +ev_job_load_class_init (EvJobLoadClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_load_dispose; + job_class->run = ev_job_load_run; +} + +EvJob * +ev_job_load_new (const gchar *uri) +{ + EvJobLoad *job; + + ev_debug_message (DEBUG_JOBS, "%s", uri); + + job = g_object_new (EV_TYPE_JOB_LOAD, NULL); + job->uri = g_strdup (uri); + + return EV_JOB (job); +} + +void +ev_job_load_set_uri (EvJobLoad *job, const gchar *uri) +{ + ev_debug_message (DEBUG_JOBS, "%s", uri); + + if (job->uri) + g_free (job->uri); + job->uri = g_strdup (uri); +} + +void +ev_job_load_set_password (EvJobLoad *job, const gchar *password) +{ + ev_debug_message (DEBUG_JOBS, NULL); + + if (job->password) + g_free (job->password); + job->password = password ? g_strdup (password) : NULL; +} + +/* EvJobSave */ +static void +ev_job_save_init (EvJobSave *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_save_dispose (GObject *object) +{ + EvJobSave *job = EV_JOB_SAVE (object); + + ev_debug_message (DEBUG_JOBS, "%s", job->uri); + + if (job->uri) { + g_free (job->uri); + job->uri = NULL; + } + + if (job->document_uri) { + g_free (job->document_uri); + job->document_uri = NULL; + } + + (* G_OBJECT_CLASS (ev_job_save_parent_class)->dispose) (object); +} + +static gboolean +ev_job_save_run (EvJob *job) +{ + EvJobSave *job_save = EV_JOB_SAVE (job); + gint fd; + gchar *tmp_filename = NULL; + gchar *local_uri; + GError *error = NULL; + + ev_debug_message (DEBUG_JOBS, "uri: %s, document_uri: %s", job_save->uri, job_save->document_uri); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + fd = ev_mkstemp ("saveacopy.XXXXXX", &tmp_filename, &error); + if (fd == -1) { + ev_job_failed_from_error (job, error); + g_error_free (error); + + return FALSE; + } + + ev_document_doc_mutex_lock (); + + /* Save document to temp filename */ + local_uri = g_filename_to_uri (tmp_filename, NULL, &error); + if (local_uri != NULL) { + ev_document_save (job->document, local_uri, &error); + } + + close (fd); + + ev_document_doc_mutex_unlock (); + + if (error) { + g_free (local_uri); + ev_job_failed_from_error (job, error); + g_error_free (error); + + return FALSE; + } + + /* If original document was compressed, + * compress it again before saving + */ + if (g_object_get_data (G_OBJECT (job->document), "uri-uncompressed")) { + EvCompressionType ctype = EV_COMPRESSION_NONE; + const gchar *ext; + gchar *uri_comp; + + ext = g_strrstr (job_save->document_uri, ".gz"); + if (ext && g_ascii_strcasecmp (ext, ".gz") == 0) + ctype = EV_COMPRESSION_GZIP; + + ext = g_strrstr (job_save->document_uri, ".bz2"); + if (ext && g_ascii_strcasecmp (ext, ".bz2") == 0) + ctype = EV_COMPRESSION_BZIP2; + + uri_comp = ev_file_compress (local_uri, ctype, &error); + g_free (local_uri); + g_unlink (tmp_filename); + + if (!uri_comp || error) { + local_uri = NULL; + } else { + local_uri = uri_comp; + } + } + + g_free (tmp_filename); + + if (error) { + g_free (local_uri); + ev_job_failed_from_error (job, error); + g_error_free (error); + + return FALSE; + } + + if (!local_uri) + return FALSE; + + ev_xfer_uri_simple (local_uri, job_save->uri, &error); + ev_tmp_uri_unlink (local_uri); + + if (error) { + ev_job_failed_from_error (job, error); + g_error_free (error); + } else { + ev_job_succeeded (job); + } + + return FALSE; +} + +static void +ev_job_save_class_init (EvJobSaveClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_save_dispose; + job_class->run = ev_job_save_run; +} + +EvJob * +ev_job_save_new (EvDocument *document, + const gchar *uri, + const gchar *document_uri) +{ + EvJobSave *job; + + ev_debug_message (DEBUG_JOBS, "uri: %s, document_uri: %s", uri, document_uri); + + job = g_object_new (EV_TYPE_JOB_SAVE, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->uri = g_strdup (uri); + job->document_uri = g_strdup (document_uri); + + return EV_JOB (job); +} + +/* EvJobFind */ +static void +ev_job_find_init (EvJobFind *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_MAIN_LOOP; +} + +static void +ev_job_find_dispose (GObject *object) +{ + EvJobFind *job = EV_JOB_FIND (object); + + ev_debug_message (DEBUG_JOBS, NULL); + + if (job->text) { + g_free (job->text); + job->text = NULL; + } + + if (job->pages) { + gint i; + + for (i = 0; i < job->n_pages; i++) { + g_list_foreach (job->pages[i], (GFunc)ev_rectangle_free, NULL); + g_list_free (job->pages[i]); + } + + g_free (job->pages); + job->pages = NULL; + } + + (* G_OBJECT_CLASS (ev_job_find_parent_class)->dispose) (object); +} + +static gboolean +ev_job_find_run (EvJob *job) +{ + EvJobFind *job_find = EV_JOB_FIND (job); + EvDocumentFind *find = EV_DOCUMENT_FIND (job->document); + EvPage *ev_page; + GList *matches; + + ev_debug_message (DEBUG_JOBS, NULL); + + /* Do not block the main loop */ + if (!ev_document_doc_mutex_trylock ()) + return TRUE; + +#ifdef EV_ENABLE_DEBUG + /* We use the #ifdef in this case because of the if */ + if (job_find->current_page == job_find->start_page) + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); +#endif + + ev_page = ev_document_get_page (job->document, job_find->current_page); + matches = ev_document_find_find_text (find, ev_page, job_find->text, + job_find->case_sensitive); + g_object_unref (ev_page); + + ev_document_doc_mutex_unlock (); + + if (!job_find->has_results) + job_find->has_results = (matches != NULL); + + job_find->pages[job_find->current_page] = matches; + g_signal_emit (job_find, job_find_signals[FIND_UPDATED], 0, job_find->current_page); + + job_find->current_page = (job_find->current_page + 1) % job_find->n_pages; + if (job_find->current_page == job_find->start_page) { + ev_job_succeeded (job); + + return FALSE; + } + + return TRUE; +} + +static void +ev_job_find_class_init (EvJobFindClass *class) +{ + EvJobClass *job_class = EV_JOB_CLASS (class); + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + job_class->run = ev_job_find_run; + gobject_class->dispose = ev_job_find_dispose; + + job_find_signals[FIND_UPDATED] = + g_signal_new ("updated", + EV_TYPE_JOB_FIND, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvJobFindClass, updated), + NULL, NULL, + g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, + 1, G_TYPE_INT); +} + +EvJob * +ev_job_find_new (EvDocument *document, + gint start_page, + gint n_pages, + const gchar *text, + gboolean case_sensitive) +{ + EvJobFind *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_FIND, NULL); + + EV_JOB (job)->document = g_object_ref (document); + job->start_page = start_page; + job->current_page = start_page; + job->n_pages = n_pages; + job->pages = g_new0 (GList *, n_pages); + job->text = g_strdup (text); + job->case_sensitive = case_sensitive; + job->has_results = FALSE; + + return EV_JOB (job); +} + +gint +ev_job_find_get_n_results (EvJobFind *job, + gint page) +{ + return g_list_length (job->pages[page]); +} + +gdouble +ev_job_find_get_progress (EvJobFind *job) +{ + gint pages_done; + + if (ev_job_is_finished (EV_JOB (job))) + return 1.0; + + if (job->current_page > job->start_page) { + pages_done = job->current_page - job->start_page + 1; + } else if (job->current_page == job->start_page) { + pages_done = job->n_pages; + } else { + pages_done = job->n_pages - job->start_page + job->current_page; + } + + return pages_done / (gdouble) job->n_pages; +} + +gboolean +ev_job_find_has_results (EvJobFind *job) +{ + return job->has_results; +} + +GList ** +ev_job_find_get_results (EvJobFind *job) +{ + return job->pages; +} + +/* EvJobLayers */ +static void +ev_job_layers_init (EvJobLayers *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; +} + +static void +ev_job_layers_dispose (GObject *object) +{ + EvJobLayers *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_LAYERS (object); + + if (job->model) { + g_object_unref (job->model); + job->model = NULL; + } + + (* G_OBJECT_CLASS (ev_job_layers_parent_class)->dispose) (object); +} + +static gboolean +ev_job_layers_run (EvJob *job) +{ + EvJobLayers *job_layers = EV_JOB_LAYERS (job); + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + job_layers->model = ev_document_layers_get_layers (EV_DOCUMENT_LAYERS (job->document)); + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_layers_class_init (EvJobLayersClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_layers_dispose; + job_class->run = ev_job_layers_run; +} + +EvJob * +ev_job_layers_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_LAYERS, NULL); + job->document = g_object_ref (document); + + return job; +} + +/* EvJobExport */ +static void +ev_job_export_init (EvJobExport *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; + job->page = -1; +} + +static void +ev_job_export_dispose (GObject *object) +{ + EvJobExport *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_EXPORT (object); + + if (job->rc) { + g_object_unref (job->rc); + job->rc = NULL; + } + + (* G_OBJECT_CLASS (ev_job_export_parent_class)->dispose) (object); +} + +static gboolean +ev_job_export_run (EvJob *job) +{ + EvJobExport *job_export = EV_JOB_EXPORT (job); + EvPage *ev_page; + + g_assert (job_export->page != -1); + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + ev_document_doc_mutex_lock (); + + ev_page = ev_document_get_page (job->document, job_export->page); + if (job_export->rc) { + job->failed = FALSE; + job->finished = FALSE; + g_clear_error (&job->error); + + ev_render_context_set_page (job_export->rc, ev_page); + } else { + job_export->rc = ev_render_context_new (ev_page, 0, 1.0); + } + g_object_unref (ev_page); + + ev_file_exporter_do_page (EV_FILE_EXPORTER (job->document), job_export->rc); + + ev_document_doc_mutex_unlock (); + + ev_job_succeeded (job); + + return FALSE; +} + +static void +ev_job_export_class_init (EvJobExportClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_export_dispose; + job_class->run = ev_job_export_run; +} + +EvJob * +ev_job_export_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_EXPORT, NULL); + job->document = g_object_ref (document); + + return job; +} + +void +ev_job_export_set_page (EvJobExport *job, + gint page) +{ + job->page = page; +} + +/* EvJobPrint */ +static void +ev_job_print_init (EvJobPrint *job) +{ + EV_JOB (job)->run_mode = EV_JOB_RUN_THREAD; + job->page = -1; +} + +static void +ev_job_print_dispose (GObject *object) +{ + EvJobPrint *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = EV_JOB_PRINT (object); + + if (job->cr) { + cairo_destroy (job->cr); + job->cr = NULL; + } + + (* G_OBJECT_CLASS (ev_job_print_parent_class)->dispose) (object); +} + +static gboolean +ev_job_print_run (EvJob *job) +{ + EvJobPrint *job_print = EV_JOB_PRINT (job); + EvPage *ev_page; + cairo_status_t cr_status; + + g_assert (job_print->page != -1); + g_assert (job_print->cr != NULL); + + ev_debug_message (DEBUG_JOBS, NULL); + ev_profiler_start (EV_PROFILE_JOBS, "%s (%p)", EV_GET_TYPE_NAME (job), job); + + job->failed = FALSE; + job->finished = FALSE; + g_clear_error (&job->error); + + ev_document_doc_mutex_lock (); + + ev_page = ev_document_get_page (job->document, job_print->page); + ev_document_print_print_page (EV_DOCUMENT_PRINT (job->document), + ev_page, job_print->cr); + g_object_unref (ev_page); + + ev_document_doc_mutex_unlock (); + + cr_status = cairo_status (job_print->cr); + if (cr_status == CAIRO_STATUS_SUCCESS) { + ev_job_succeeded (job); + } else { + ev_job_failed (job, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + _("Failed to print page %d: %s"), + job_print->page, + cairo_status_to_string (cr_status)); + } + + return FALSE; +} + +static void +ev_job_print_class_init (EvJobPrintClass *class) +{ + GObjectClass *oclass = G_OBJECT_CLASS (class); + EvJobClass *job_class = EV_JOB_CLASS (class); + + oclass->dispose = ev_job_print_dispose; + job_class->run = ev_job_print_run; +} + +EvJob * +ev_job_print_new (EvDocument *document) +{ + EvJob *job; + + ev_debug_message (DEBUG_JOBS, NULL); + + job = g_object_new (EV_TYPE_JOB_PRINT, NULL); + job->document = g_object_ref (document); + + return job; +} + +void +ev_job_print_set_page (EvJobPrint *job, + gint page) +{ + job->page = page; +} + +void +ev_job_print_set_cairo (EvJobPrint *job, + cairo_t *cr) +{ + if (job->cr == cr) + return; + + if (job->cr) + cairo_destroy (job->cr); + job->cr = cr ? cairo_reference (cr) : NULL; +} diff --git a/libview/ev-jobs.h b/libview/ev-jobs.h new file mode 100644 index 00000000..14b47f78 --- /dev/null +++ b/libview/ev-jobs.h @@ -0,0 +1,502 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_JOBS_H__ +#define __EV_JOBS_H__ + +#include <gio/gio.h> +#include <gtk/gtk.h> +#include <cairo.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +typedef struct _EvJob EvJob; +typedef struct _EvJobClass EvJobClass; + +typedef struct _EvJobRender EvJobRender; +typedef struct _EvJobRenderClass EvJobRenderClass; + +typedef struct _EvJobPageData EvJobPageData; +typedef struct _EvJobPageDataClass EvJobPageDataClass; + +typedef struct _EvJobThumbnail EvJobThumbnail; +typedef struct _EvJobThumbnailClass EvJobThumbnailClass; + +typedef struct _EvJobLinks EvJobLinks; +typedef struct _EvJobLinksClass EvJobLinksClass; + +typedef struct _EvJobAttachments EvJobAttachments; +typedef struct _EvJobAttachmentsClass EvJobAttachmentsClass; + +typedef struct _EvJobAnnots EvJobAnnots; +typedef struct _EvJobAnnotsClass EvJobAnnotsClass; + +typedef struct _EvJobFonts EvJobFonts; +typedef struct _EvJobFontsClass EvJobFontsClass; + +typedef struct _EvJobLoad EvJobLoad; +typedef struct _EvJobLoadClass EvJobLoadClass; + +typedef struct _EvJobSave EvJobSave; +typedef struct _EvJobSaveClass EvJobSaveClass; + +typedef struct _EvJobFind EvJobFind; +typedef struct _EvJobFindClass EvJobFindClass; + +typedef struct _EvJobLayers EvJobLayers; +typedef struct _EvJobLayersClass EvJobLayersClass; + +typedef struct _EvJobExport EvJobExport; +typedef struct _EvJobExportClass EvJobExportClass; + +typedef struct _EvJobPrint EvJobPrint; +typedef struct _EvJobPrintClass EvJobPrintClass; + +#define EV_TYPE_JOB (ev_job_get_type()) +#define EV_JOB(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB, EvJob)) +#define EV_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass)) +#define EV_IS_JOB(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB)) +#define EV_JOB_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_JOB, EvJobClass)) + +#define EV_TYPE_JOB_LINKS (ev_job_links_get_type()) +#define EV_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LINKS, EvJobLinks)) +#define EV_JOB_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LINKS, EvJobLinksClass)) +#define EV_IS_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LINKS)) + +#define EV_TYPE_JOB_ATTACHMENTS (ev_job_attachments_get_type()) +#define EV_JOB_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_ATTACHMENTS, EvJobAttachments)) +#define EV_JOB_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_ATTACHMENTS, EvJobAttachmentsClass)) +#define EV_IS_JOB_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_ATTACHMENTS)) + +#define EV_TYPE_JOB_ANNOTS (ev_job_annots_get_type()) +#define EV_JOB_ANNOTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_ANNOTS, EvJobAnnots)) +#define EV_JOB_ANNOTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_ANNOTS, EvJobAnnotsClass)) +#define EV_IS_JOB_ANNOTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_ANNOTS)) + +#define EV_TYPE_JOB_RENDER (ev_job_render_get_type()) +#define EV_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_RENDER, EvJobRender)) +#define EV_JOB_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_RENDER, EvJobRenderClass)) +#define EV_IS_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_RENDER)) + +#define EV_TYPE_JOB_PAGE_DATA (ev_job_page_data_get_type()) +#define EV_JOB_PAGE_DATA(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PAGE_DATA, EvJobPageData)) +#define EV_JOB_PAGE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PAGE_DATA, EvJobPageDataClass)) +#define EV_IS_JOB_PAGE_DATA(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PAGE_DATA)) + +#define EV_TYPE_JOB_THUMBNAIL (ev_job_thumbnail_get_type()) +#define EV_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnail)) +#define EV_JOB_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass)) +#define EV_IS_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_THUMBNAIL)) + +#define EV_TYPE_JOB_FONTS (ev_job_fonts_get_type()) +#define EV_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FONTS, EvJobFonts)) +#define EV_JOB_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass)) +#define EV_IS_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS)) + +#define EV_TYPE_JOB_LOAD (ev_job_load_get_type()) +#define EV_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LOAD, EvJobLoad)) +#define EV_JOB_LOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LOAD, EvJobLoadClass)) +#define EV_IS_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LOAD)) + +#define EV_TYPE_JOB_SAVE (ev_job_save_get_type()) +#define EV_JOB_SAVE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_SAVE, EvJobSave)) +#define EV_JOB_SAVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_SAVE, EvJobSaveClass)) +#define EV_IS_JOB_SAVE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_SAVE)) + +#define EV_TYPE_JOB_FIND (ev_job_find_get_type()) +#define EV_JOB_FIND(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FIND, EvJobFind)) +#define EV_JOB_FIND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FIND, EvJobFindClass)) +#define EV_IS_JOB_FIND(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FIND)) + +#define EV_TYPE_JOB_LAYERS (ev_job_layers_get_type()) +#define EV_JOB_LAYERS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LAYERS, EvJobLayers)) +#define EV_JOB_LAYERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LAYERS, EvJobLayersClass)) +#define EV_IS_JOB_LAYERS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LAYERS)) + +#define EV_TYPE_JOB_EXPORT (ev_job_export_get_type()) +#define EV_JOB_EXPORT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_EXPORT, EvJobExport)) +#define EV_JOB_EXPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_EXPORT, EvJobExportClass)) +#define EV_IS_JOB_EXPORT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_EXPORT)) + +#define EV_TYPE_JOB_PRINT (ev_job_print_get_type()) +#define EV_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PRINT, EvJobPrint)) +#define EV_JOB_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PRINT, EvJobPrintClass)) +#define EV_IS_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PRINT)) + +typedef enum { + EV_JOB_RUN_THREAD, + EV_JOB_RUN_MAIN_LOOP +} EvJobRunMode; + +struct _EvJob +{ + GObject parent; + + EvDocument *document; + + EvJobRunMode run_mode; + + guint cancelled : 1; + guint finished : 1; + guint failed : 1; + + GError *error; + GCancellable *cancellable; + + guint idle_finished_id; + guint idle_cancelled_id; +}; + +struct _EvJobClass +{ + GObjectClass parent_class; + + gboolean (*run) (EvJob *job); + + /* Signals */ + void (* cancelled) (EvJob *job); + void (* finished) (EvJob *job); +}; + +struct _EvJobLinks +{ + EvJob parent; + + GtkTreeModel *model; +}; + +struct _EvJobLinksClass +{ + EvJobClass parent_class; +}; + +struct _EvJobAttachments +{ + EvJob parent; + + GList *attachments; +}; + +struct _EvJobAttachmentsClass +{ + EvJobClass parent_class; +}; + +struct _EvJobAnnots +{ + EvJob parent; + + GList *annots; +}; + +struct _EvJobAnnotsClass +{ + EvJobClass parent_class; +}; + +struct _EvJobRender +{ + EvJob parent; + + gint page; + gint rotation; + gdouble scale; + + gboolean page_ready; + gint target_width; + gint target_height; + cairo_surface_t *surface; + + gboolean include_selection; + cairo_surface_t *selection; + cairo_region_t *selection_region; + EvRectangle selection_points; + EvSelectionStyle selection_style; + GdkColor base; + GdkColor text; +}; + +struct _EvJobRenderClass +{ + EvJobClass parent_class; +}; + +typedef enum { + EV_PAGE_DATA_INCLUDE_NONE = 0, + EV_PAGE_DATA_INCLUDE_LINKS = 1 << 0, + EV_PAGE_DATA_INCLUDE_TEXT = 1 << 1, + EV_PAGE_DATA_INCLUDE_TEXT_MAPPING = 1 << 2, + EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT = 1 << 3, + EV_PAGE_DATA_INCLUDE_IMAGES = 1 << 4, + EV_PAGE_DATA_INCLUDE_FORMS = 1 << 5, + EV_PAGE_DATA_INCLUDE_ANNOTS = 1 << 6, + EV_PAGE_DATA_INCLUDE_ALL = (1 << 7) - 1 +} EvJobPageDataFlags; + +struct _EvJobPageData +{ + EvJob parent; + + gint page; + EvJobPageDataFlags flags; + + EvMappingList *link_mapping; + EvMappingList *image_mapping; + EvMappingList *form_field_mapping; + EvMappingList *annot_mapping; + cairo_region_t *text_mapping; + gchar *text; + EvRectangle *text_layout; + guint text_layout_length; +}; + +struct _EvJobPageDataClass +{ + EvJobClass parent_class; +}; + +struct _EvJobThumbnail +{ + EvJob parent; + + gint page; + gint rotation; + gdouble scale; + + GdkPixbuf *thumbnail; +}; + +struct _EvJobThumbnailClass +{ + EvJobClass parent_class; +}; + +struct _EvJobFonts +{ + EvJob parent; + gboolean scan_completed; +}; + +struct _EvJobFontsClass +{ + EvJobClass parent_class; + + /* Signals */ + void (* updated) (EvJobFonts *job, + gdouble progress); +}; + +struct _EvJobLoad +{ + EvJob parent; + + gchar *uri; + gchar *password; +}; + +struct _EvJobLoadClass +{ + EvJobClass parent_class; +}; + +struct _EvJobSave +{ + EvJob parent; + + gchar *uri; + gchar *document_uri; +}; + +struct _EvJobSaveClass +{ + EvJobClass parent_class; +}; + +struct _EvJobFind +{ + EvJob parent; + + gint start_page; + gint current_page; + gint n_pages; + GList **pages; + gchar *text; + gboolean case_sensitive; + gboolean has_results; +}; + +struct _EvJobFindClass +{ + EvJobClass parent_class; + + /* Signals */ + void (* updated) (EvJobFind *job, + gint page); +}; + +struct _EvJobLayers +{ + EvJob parent; + + GtkTreeModel *model; +}; + +struct _EvJobLayersClass +{ + EvJobClass parent_class; +}; + +struct _EvJobExport +{ + EvJob parent; + + gint page; + EvRenderContext *rc; +}; + +struct _EvJobExportClass +{ + EvJobClass parent_class; +}; + +struct _EvJobPrint +{ + EvJob parent; + + gint page; + cairo_t *cr; +}; + +struct _EvJobPrintClass +{ + EvJobClass parent_class; +}; + +/* Base job class */ +GType ev_job_get_type (void) G_GNUC_CONST; +gboolean ev_job_run (EvJob *job); +void ev_job_cancel (EvJob *job); +void ev_job_failed (EvJob *job, + GQuark domain, + gint code, + const gchar *format, + ...); +void ev_job_failed_from_error (EvJob *job, + GError *error); +void ev_job_succeeded (EvJob *job); +gboolean ev_job_is_finished (EvJob *job); +gboolean ev_job_is_failed (EvJob *job); +EvJobRunMode ev_job_get_run_mode (EvJob *job); +void ev_job_set_run_mode (EvJob *job, + EvJobRunMode run_mode); + +/* EvJobLinks */ +GType ev_job_links_get_type (void) G_GNUC_CONST; +EvJob *ev_job_links_new (EvDocument *document); + +/* EvJobAttachments */ +GType ev_job_attachments_get_type (void) G_GNUC_CONST; +EvJob *ev_job_attachments_new (EvDocument *document); + +/* EvJobAnnots */ +GType ev_job_annots_get_type (void) G_GNUC_CONST; +EvJob *ev_job_annots_new (EvDocument *document); + +/* EvJobRender */ +GType ev_job_render_get_type (void) G_GNUC_CONST; +EvJob *ev_job_render_new (EvDocument *document, + gint page, + gint rotation, + gdouble scale, + gint width, + gint height); +void ev_job_render_set_selection_info (EvJobRender *job, + EvRectangle *selection_points, + EvSelectionStyle selection_style, + GdkColor *text, + GdkColor *base); +/* EvJobPageData */ +GType ev_job_page_data_get_type (void) G_GNUC_CONST; +EvJob *ev_job_page_data_new (EvDocument *document, + gint page, + EvJobPageDataFlags flags); + +/* EvJobThumbnail */ +GType ev_job_thumbnail_get_type (void) G_GNUC_CONST; +EvJob *ev_job_thumbnail_new (EvDocument *document, + gint page, + gint rotation, + gdouble scale); +/* EvJobFonts */ +GType ev_job_fonts_get_type (void) G_GNUC_CONST; +EvJob *ev_job_fonts_new (EvDocument *document); + +/* EvJobLoad */ +GType ev_job_load_get_type (void) G_GNUC_CONST; +EvJob *ev_job_load_new (const gchar *uri); +void ev_job_load_set_uri (EvJobLoad *load, + const gchar *uri); +void ev_job_load_set_password (EvJobLoad *job, + const gchar *password); + +/* EvJobSave */ +GType ev_job_save_get_type (void) G_GNUC_CONST; +EvJob *ev_job_save_new (EvDocument *document, + const gchar *uri, + const gchar *document_uri); +/* EvJobFind */ +GType ev_job_find_get_type (void) G_GNUC_CONST; +EvJob *ev_job_find_new (EvDocument *document, + gint start_page, + gint n_pages, + const gchar *text, + gboolean case_sensitive); +gint ev_job_find_get_n_results (EvJobFind *job, + gint pages); +gdouble ev_job_find_get_progress (EvJobFind *job); +gboolean ev_job_find_has_results (EvJobFind *job); +GList **ev_job_find_get_results (EvJobFind *job); + +/* EvJobLayers */ +GType ev_job_layers_get_type (void) G_GNUC_CONST; +EvJob *ev_job_layers_new (EvDocument *document); + +/* EvJobExport */ +GType ev_job_export_get_type (void) G_GNUC_CONST; +EvJob *ev_job_export_new (EvDocument *document); +void ev_job_export_set_page (EvJobExport *job, + gint page); +/* EvJobPrint */ +GType ev_job_print_get_type (void) G_GNUC_CONST; +EvJob *ev_job_print_new (EvDocument *document); +void ev_job_print_set_page (EvJobPrint *job, + gint page); +void ev_job_print_set_cairo (EvJobPrint *job, + cairo_t *cr); + +G_END_DECLS + +#endif /* __EV_JOBS_H__ */ diff --git a/libview/ev-loading-window.c b/libview/ev-loading-window.c new file mode 100644 index 00000000..e6352fe9 --- /dev/null +++ b/libview/ev-loading-window.c @@ -0,0 +1,278 @@ +/* ev-loading-window.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> +#include <glib/gi18n.h> +#include "ev-loading-window.h" + +enum { + PROP_0, + PROP_PARENT +}; + +struct _EvLoadingWindow { + GtkWindow base_instance; + + GtkWindow *parent; + + gint x; + gint y; + gint width; + gint height; +}; + +struct _EvLoadingWindowClass { + GtkWindowClass base_class; +}; + +G_DEFINE_TYPE (EvLoadingWindow, ev_loading_window, GTK_TYPE_WINDOW) + +static void +ev_loading_window_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvLoadingWindow *window = EV_LOADING_WINDOW (object); + + switch (prop_id) { + case PROP_PARENT: + window->parent = g_value_get_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_loading_window_init (EvLoadingWindow *window) +{ + GtkWindow *gtk_window = GTK_WINDOW (window); + GtkWidget *widget = GTK_WIDGET (window); + GtkWidget *hbox; + GtkWidget *spinner; + GtkWidget *label; + GtkStyle *style; + GdkColor fg, bg; + const gchar *loading_text = _("Loadingā¦"); + const gchar *fg_color_name = "info_fg_color"; + const gchar *bg_color_name = "info_bg_color"; + + hbox = gtk_hbox_new (FALSE, 12); + + spinner = gtk_spinner_new (); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_box_pack_start (GTK_BOX (hbox), spinner, FALSE, FALSE, 0); + gtk_widget_show (spinner); + + label = gtk_label_new (loading_text); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + gtk_container_add (GTK_CONTAINER (window), hbox); + gtk_widget_show (hbox); + + gtk_widget_set_app_paintable (widget, TRUE); + + gtk_container_set_border_width (GTK_CONTAINER (window), 10); + + gtk_window_set_type_hint (gtk_window, GDK_WINDOW_TYPE_HINT_NOTIFICATION); + gtk_window_set_accept_focus (gtk_window, FALSE); + gtk_window_set_decorated (gtk_window, FALSE); + gtk_window_set_resizable (gtk_window, FALSE); + + style = gtk_widget_get_style (widget); + if (!gtk_style_lookup_color (style, fg_color_name, &fg) || + !gtk_style_lookup_color (style, bg_color_name, &bg)) { + fg.pixel = 0; + fg.red = 0xb800; + fg.green = 0xad00; + fg.blue = 0x9d00; + + bg.pixel = 0; + bg.red = 0xff00; + bg.green = 0xff00; + bg.blue = 0xbf00; + } + + if (!gdk_color_equal (&bg, &style->bg[GTK_STATE_NORMAL])) + gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &bg); + if (!gdk_color_equal (&fg, &style->fg[GTK_STATE_NORMAL])) + gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &fg); +} + +static GObject * +ev_loading_window_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvLoadingWindow *window; + GtkWindow *gtk_window; + + object = G_OBJECT_CLASS (ev_loading_window_parent_class)->constructor (type, + n_construct_properties, + construct_params); + window = EV_LOADING_WINDOW (object); + gtk_window = GTK_WINDOW (window); + + gtk_window_set_transient_for (gtk_window, window->parent); + gtk_window_set_destroy_with_parent (gtk_window, TRUE); + + return object; +} + +static void +_cairo_rounded_rectangle (cairo_t *cr, + gint width, + gint height, + gdouble radius) +{ + cairo_move_to (cr, radius, 0); + cairo_line_to (cr, width - radius, 0); + cairo_curve_to (cr, + width, 0, + width, 0, + width, + radius); + cairo_line_to (cr, width, height - radius); + cairo_curve_to (cr, + width,height, + width, height, + width - radius, + height); + cairo_line_to (cr, radius, height); + cairo_curve_to (cr, + 0, height, + 0, height, + 0, height - radius); + cairo_line_to (cr, 0, radius); + cairo_curve_to (cr, + 0, 0, + 0, 0, + radius, 0); +} + +static void +ev_loading_window_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + EvLoadingWindow *window = EV_LOADING_WINDOW (widget); + GdkPixmap *mask; + cairo_t *cr; + double r; + + GTK_WIDGET_CLASS (ev_loading_window_parent_class)->size_allocate (widget, allocation); + + if (allocation->width == window->width && allocation->height == window->height) + return; + + window->width = allocation->width; + window->height = allocation->height; + + mask = gdk_pixmap_new (NULL, window->width, window->height, 1); + cr = gdk_cairo_create (GDK_DRAWABLE (mask)); + + cairo_save (cr); + cairo_rectangle (cr, 0, 0, window->width, window->height); + cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR); + cairo_fill (cr); + cairo_restore (cr); + + cairo_set_source_rgb (cr, 1., 1., 1.); + r = MIN (window->width, window->height) / 2.; + _cairo_rounded_rectangle (cr, window->width, window->height, r); + cairo_fill (cr); + + cairo_destroy (cr); + + gtk_widget_shape_combine_mask (widget, mask, 0, 0); + g_object_unref (mask); +} + +static void +ev_loading_window_hide (GtkWidget *widget) +{ + EvLoadingWindow *window = EV_LOADING_WINDOW (widget); + + window->x = window->y = 0; + + GTK_WIDGET_CLASS (ev_loading_window_parent_class)->hide (widget); +} + +static void +ev_loading_window_class_init (EvLoadingWindowClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *gtk_widget_class = GTK_WIDGET_CLASS (klass); + + g_object_class->constructor = ev_loading_window_constructor; + g_object_class->set_property = ev_loading_window_set_property; + + gtk_widget_class->size_allocate = ev_loading_window_size_allocate; + gtk_widget_class->hide = ev_loading_window_hide; + + g_object_class_install_property (g_object_class, + PROP_PARENT, + g_param_spec_object ("parent", + "Parent", + "The parent window", + GTK_TYPE_WINDOW, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); +} + +/* Public methods */ +GtkWidget * +ev_loading_window_new (GtkWindow *parent) +{ + GtkWidget *window; + + g_return_val_if_fail (GTK_IS_WINDOW (parent), NULL); + + window = g_object_new (EV_TYPE_LOADING_WINDOW, + "parent", parent, + NULL); + return window; +} + +void +ev_loading_window_get_size (EvLoadingWindow *window, + gint *width, + gint *height) +{ + if (width) *width = window->width; + if (height) *height = window->height; +} + +void +ev_loading_window_move (EvLoadingWindow *window, + gint x, + gint y) +{ + if (x == window->x && y == window->y) + return; + + window->x = x; + window->y = y; + gtk_window_move (GTK_WINDOW (window), x, y); +} diff --git a/libview/ev-loading-window.h b/libview/ev-loading-window.h new file mode 100644 index 00000000..fd8eee61 --- /dev/null +++ b/libview/ev-loading-window.h @@ -0,0 +1,49 @@ +/* ev-loading-window.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_LOADING_WINDOW_H +#define EV_LOADING_WINDOW_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +typedef struct _EvLoadingWindow EvLoadingWindow; +typedef struct _EvLoadingWindowClass EvLoadingWindowClass; + +#define EV_TYPE_LOADING_WINDOW (ev_loading_window_get_type()) +#define EV_LOADING_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LOADING_WINDOW, EvLoadingWindow)) +#define EV_LOADING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LOADING_WINDOW, EvLoadingWindowClass)) +#define EV_IS_LOADING_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LOADING_WINDOW)) +#define EV_IS_LOADING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LOADING_WINDOW)) +#define EV_LOADING_WINDOW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LOADING_WINDOW, EvLoadingWindowClass)) + +GType ev_loading_window_get_type (void) G_GNUC_CONST; +GtkWidget *ev_loading_window_new (GtkWindow *parent); +void ev_loading_window_get_size (EvLoadingWindow *window, + gint *width, + gint *height); +void ev_loading_window_move (EvLoadingWindow *window, + gint x, + gint y); + +G_END_DECLS + +#endif /* EV_LOADING_WINDOW_H */ diff --git a/libview/ev-page-cache.c b/libview/ev-page-cache.c new file mode 100644 index 00000000..c4dc062c --- /dev/null +++ b/libview/ev-page-cache.c @@ -0,0 +1,521 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <glib.h> +#include "ev-jobs.h" +#include "ev-job-scheduler.h" +#include "ev-mapping-list.h" +#include "ev-selection.h" +#include "ev-document-links.h" +#include "ev-document-forms.h" +#include "ev-document-images.h" +#include "ev-document-annotations.h" +#include "ev-document-text.h" +#include "ev-page-cache.h" + +typedef struct _EvPageCacheData { + EvJob *job; + gboolean done : 1; + gboolean dirty : 1; + EvJobPageDataFlags flags; + + EvMappingList *link_mapping; + EvMappingList *image_mapping; + EvMappingList *form_field_mapping; + EvMappingList *annot_mapping; + cairo_region_t *text_mapping; + EvRectangle *text_layout; + guint text_layout_length; + gchar *text; +} EvPageCacheData; + +struct _EvPageCache { + GObject parent; + + EvDocument *document; + EvPageCacheData *page_list; + gint n_pages; + + /* Current range */ + gint start_page; + gint end_page; + + EvJobPageDataFlags flags; +}; + +struct _EvPageCacheClass { + GObjectClass parent_class; +}; + +#define EV_PAGE_DATA_FLAGS_DEFAULT ( \ + EV_PAGE_DATA_INCLUDE_LINKS | \ + EV_PAGE_DATA_INCLUDE_TEXT_MAPPING | \ + EV_PAGE_DATA_INCLUDE_IMAGES | \ + EV_PAGE_DATA_INCLUDE_FORMS | \ + EV_PAGE_DATA_INCLUDE_ANNOTS) + + +static void job_page_data_finished_cb (EvJob *job, + EvPageCache *cache); +static void job_page_data_cancelled_cb (EvJob *job, + EvPageCacheData *data); + +G_DEFINE_TYPE (EvPageCache, ev_page_cache, G_TYPE_OBJECT) + +static void +ev_page_cache_data_free (EvPageCacheData *data) +{ + if (data->job) { + g_object_unref (data->job); + data->job = NULL; + } + + if (data->link_mapping) { + ev_mapping_list_unref (data->link_mapping); + data->link_mapping = NULL; + } + + if (data->image_mapping) { + ev_mapping_list_unref (data->image_mapping); + data->image_mapping = NULL; + } + + if (data->form_field_mapping) { + ev_mapping_list_unref (data->form_field_mapping); + data->form_field_mapping = NULL; + } + + if (data->annot_mapping) { + ev_mapping_list_unref (data->annot_mapping); + data->annot_mapping = NULL; + } + + if (data->text_mapping) { + cairo_region_destroy (data->text_mapping); + data->text_mapping = NULL; + } + + if (data->text_layout) { + g_free (data->text_layout); + data->text_layout = NULL; + data->text_layout_length = 0; + } + + if (data->text) { + g_free (data->text); + data->text = NULL; + } +} + +static void +ev_page_cache_finalize (GObject *object) +{ + EvPageCache *cache = EV_PAGE_CACHE (object); + gint i; + + if (cache->page_list) { + for (i = 0; i < cache->n_pages; i++) { + EvPageCacheData *data; + + data = &cache->page_list[i]; + + if (data->job) { + g_signal_handlers_disconnect_by_func (data->job, + G_CALLBACK (job_page_data_finished_cb), + cache); + g_signal_handlers_disconnect_by_func (data->job, + G_CALLBACK (job_page_data_cancelled_cb), + data); + } + ev_page_cache_data_free (data); + } + + g_free (cache->page_list); + cache->page_list = NULL; + cache->n_pages = 0; + } + + if (cache->document) { + g_object_unref (cache->document); + cache->document = NULL; + } + + G_OBJECT_CLASS (ev_page_cache_parent_class)->finalize (object); +} + +static void +ev_page_cache_init (EvPageCache *cache) +{ +} + +static void +ev_page_cache_class_init (EvPageCacheClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->finalize = ev_page_cache_finalize; +} + +static EvJobPageDataFlags +ev_page_cache_get_flags_for_data (EvPageCache *cache, + EvPageCacheData *data) +{ + EvJobPageDataFlags flags = EV_PAGE_DATA_INCLUDE_NONE; + + if (data->flags == cache->flags && !data->dirty) + return cache->flags; + + /* Flags changed or data is dirty */ + if (cache->flags & EV_PAGE_DATA_INCLUDE_LINKS) { + flags = (data->link_mapping) ? + flags & ~EV_PAGE_DATA_INCLUDE_LINKS : + flags | EV_PAGE_DATA_INCLUDE_LINKS; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_IMAGES) { + flags = (data->image_mapping) ? + flags & ~EV_PAGE_DATA_INCLUDE_IMAGES : + flags | EV_PAGE_DATA_INCLUDE_IMAGES; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_FORMS) { + flags = (data->form_field_mapping) ? + flags & ~EV_PAGE_DATA_INCLUDE_FORMS : + flags | EV_PAGE_DATA_INCLUDE_FORMS; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_ANNOTS) { + flags = (data->annot_mapping) ? + flags & ~EV_PAGE_DATA_INCLUDE_ANNOTS : + flags | EV_PAGE_DATA_INCLUDE_ANNOTS; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_TEXT_MAPPING) { + flags = (data->text_mapping) ? + flags & ~EV_PAGE_DATA_INCLUDE_TEXT_MAPPING : + flags | EV_PAGE_DATA_INCLUDE_TEXT_MAPPING; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_TEXT) { + flags = (data->text) ? + flags & ~EV_PAGE_DATA_INCLUDE_TEXT : + flags | EV_PAGE_DATA_INCLUDE_TEXT; + } + + if (cache->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT) { + flags = (data->text_layout_length > 0) ? + flags & ~EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT : + flags | EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT; + } + + return flags; +} + +EvPageCache * +ev_page_cache_new (EvDocument *document) +{ + EvPageCache *cache; + + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + + cache = EV_PAGE_CACHE (g_object_new (EV_TYPE_PAGE_CACHE, NULL)); + cache->document = g_object_ref (document); + cache->n_pages = ev_document_get_n_pages (document); + cache->flags = EV_PAGE_DATA_FLAGS_DEFAULT; + cache->page_list = g_new0 (EvPageCacheData, cache->n_pages); + + return cache; +} + +static void +job_page_data_finished_cb (EvJob *job, + EvPageCache *cache) +{ + EvJobPageData *job_data = EV_JOB_PAGE_DATA (job); + EvPageCacheData *data; + + data = &cache->page_list[job_data->page]; + + if (job_data->flags & EV_PAGE_DATA_INCLUDE_LINKS) + data->link_mapping = job_data->link_mapping; + if (job_data->flags & EV_PAGE_DATA_INCLUDE_IMAGES) + data->image_mapping = job_data->image_mapping; + if (job_data->flags & EV_PAGE_DATA_INCLUDE_FORMS) + data->form_field_mapping = job_data->form_field_mapping; + if (job_data->flags & EV_PAGE_DATA_INCLUDE_ANNOTS) + data->annot_mapping = job_data->annot_mapping; + if (job_data->flags & EV_PAGE_DATA_INCLUDE_TEXT_MAPPING) + data->text_mapping = job_data->text_mapping; + if (job_data->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT) { + data->text_layout = job_data->text_layout; + data->text_layout_length = job_data->text_layout_length; + } + if (job_data->flags & EV_PAGE_DATA_INCLUDE_TEXT) + data->text = job_data->text; + data->done = TRUE; + data->dirty = FALSE; + + g_object_unref (data->job); + data->job = NULL; +} + +static void +job_page_data_cancelled_cb (EvJob *job, + EvPageCacheData *data) +{ + g_object_unref (data->job); + data->job = NULL; +} + +void +ev_page_cache_set_page_range (EvPageCache *cache, + gint start, + gint end) +{ + gint i; + + if (cache->flags == EV_PAGE_DATA_INCLUDE_NONE) + return; + + cache->start_page = start; + cache->end_page = end; + + for (i = start; i <= end; i++) { + EvPageCacheData *data = &cache->page_list[i]; + EvJobPageDataFlags flags; + + if (data->flags == cache->flags && !data->dirty && (data->done || data->job)) + continue; + + if (data->job) + ev_job_cancel (data->job); + + flags = ev_page_cache_get_flags_for_data (cache, data); + + data->flags = cache->flags; + data->job = ev_job_page_data_new (cache->document, i, flags); + g_signal_connect (data->job, "finished", + G_CALLBACK (job_page_data_finished_cb), + cache); + g_signal_connect (data->job, "cancelled", + G_CALLBACK (job_page_data_cancelled_cb), + data); + ev_job_scheduler_push_job (data->job, EV_JOB_PRIORITY_NONE); + } +} + +EvJobPageDataFlags +ev_page_cache_get_flags (EvPageCache *cache) +{ + return cache->flags; +} + +void +ev_page_cache_set_flags (EvPageCache *cache, + EvJobPageDataFlags flags) +{ + if (cache->flags == flags) + return; + + cache->flags = flags; + + /* Update the current range for new flags */ + ev_page_cache_set_page_range (cache, cache->start_page, cache->end_page); +} + +void +ev_page_cache_mark_dirty (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_if_fail (EV_IS_PAGE_CACHE (cache)); + + data = &cache->page_list[page]; + data->dirty = TRUE; + + /* Update the current range */ + ev_page_cache_set_page_range (cache, cache->start_page, cache->end_page); +} + +EvMappingList * +ev_page_cache_get_link_mapping (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_LINKS)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->link_mapping; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->link_mapping; + + return data->link_mapping; +} + +EvMappingList * +ev_page_cache_get_image_mapping (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_IMAGES)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->image_mapping; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->image_mapping; + + return data->image_mapping; +} + +EvMappingList * +ev_page_cache_get_form_field_mapping (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_FORMS)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->form_field_mapping; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->form_field_mapping; + + return data->form_field_mapping; +} + +EvMappingList * +ev_page_cache_get_annot_mapping (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_ANNOTS)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->annot_mapping; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->annot_mapping; + + return data->annot_mapping; +} + +cairo_region_t * +ev_page_cache_get_text_mapping (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_TEXT_MAPPING)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->text_mapping; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->text_mapping; + + return data->text_mapping; +} + +const gchar * +ev_page_cache_get_text (EvPageCache *cache, + gint page) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_TEXT)) + return NULL; + + data = &cache->page_list[page]; + if (data->done) + return data->text; + + if (data->job) + return EV_JOB_PAGE_DATA (data->job)->text; + + return data->text; +} + +gboolean +ev_page_cache_get_text_layout (EvPageCache *cache, + gint page, + EvRectangle **areas, + guint *n_areas) +{ + EvPageCacheData *data; + + g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), FALSE); + g_return_val_if_fail (page >= 0 && page < cache->n_pages, FALSE); + + if (!(cache->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT)) + return FALSE; + + data = &cache->page_list[page]; + if (data->done) { + *areas = data->text_layout; + *n_areas = data->text_layout_length; + + return TRUE; + } + + if (data->job) { + *areas = EV_JOB_PAGE_DATA (data->job)->text_layout; + *n_areas = EV_JOB_PAGE_DATA (data->job)->text_layout_length; + + return TRUE; + } + + return FALSE; +} diff --git a/libview/ev-page-cache.h b/libview/ev-page-cache.h new file mode 100644 index 00000000..7432e44d --- /dev/null +++ b/libview/ev-page-cache.h @@ -0,0 +1,71 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef EV_PAGE_CACHE_H +#define EV_PAGE_CACHE_H + +#include <glib-object.h> +#include <gdk/gdk.h> +#include <evince-document.h> +#include <evince-view.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PAGE_CACHE (ev_page_cache_get_type ()) +#define EV_PAGE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PAGE_CACHE, EvPageCache)) +#define EV_IS_PAGE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_PAGE_CACHE)) + +typedef struct _EvPageCache EvPageCache; +typedef struct _EvPageCacheClass EvPageCacheClass; + +GType ev_page_cache_get_type (void) G_GNUC_CONST; +EvPageCache *ev_page_cache_new (EvDocument *document); + +void ev_page_cache_set_page_range (EvPageCache *cache, + gint start, + gint end); +EvJobPageDataFlags ev_page_cache_get_flags (EvPageCache *cache); +void ev_page_cache_set_flags (EvPageCache *cache, + EvJobPageDataFlags flags); +void ev_page_cache_mark_dirty (EvPageCache *cache, + gint page); +EvMappingList *ev_page_cache_get_link_mapping (EvPageCache *cache, + gint page); +EvMappingList *ev_page_cache_get_image_mapping (EvPageCache *cache, + gint page); +EvMappingList *ev_page_cache_get_form_field_mapping (EvPageCache *cache, + gint page); +EvMappingList *ev_page_cache_get_annot_mapping (EvPageCache *cache, + gint page); +cairo_region_t *ev_page_cache_get_text_mapping (EvPageCache *cache, + gint page); +const gchar *ev_page_cache_get_text (EvPageCache *cache, + gint page); +gboolean ev_page_cache_get_text_layout (EvPageCache *cache, + gint page, + EvRectangle **areas, + guint *n_areas); + +G_END_DECLS + +#endif /* EV_PAGE_CACHE_H */ diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c new file mode 100644 index 00000000..367f70d7 --- /dev/null +++ b/libview/ev-pixbuf-cache.c @@ -0,0 +1,1192 @@ +#include <config.h> +#include "ev-pixbuf-cache.h" +#include "ev-job-scheduler.h" +#include "ev-view-private.h" + +typedef struct _CacheJobInfo +{ + EvJob *job; + gboolean page_ready; + + /* Region of the page that needs to be drawn */ + cairo_region_t *region; + + /* Data we get from rendering */ + cairo_surface_t *surface; + + /* Selection data. + * Selection_points are the coordinates encapsulated in selection. + * target_points is the target selection size. */ + EvRectangle selection_points; + EvRectangle target_points; + EvSelectionStyle selection_style; + gboolean points_set; + + cairo_surface_t *selection; + cairo_region_t *selection_region; +} CacheJobInfo; + +struct _EvPixbufCache +{ + GObject parent; + + /* We keep a link to our containing view just for style information. */ + GtkWidget *view; + EvDocument *document; + EvDocumentModel *model; + int start_page; + int end_page; + gboolean inverted_colors; + + gsize max_size; + + /* preload_cache_size is the number of pages prior to the current + * visible area that we cache. It's normally 1, but could be 2 in the + * case of twin pages. + */ + int preload_cache_size; + guint job_list_len; + + CacheJobInfo *prev_job; + CacheJobInfo *job_list; + CacheJobInfo *next_job; +}; + +struct _EvPixbufCacheClass +{ + GObjectClass parent_class; + + void (* job_finished) (EvPixbufCache *pixbuf_cache); +}; + + +enum +{ + JOB_FINISHED, + N_SIGNALS, +}; + +static guint signals[N_SIGNALS] = {0, }; + +static void ev_pixbuf_cache_init (EvPixbufCache *pixbuf_cache); +static void ev_pixbuf_cache_class_init (EvPixbufCacheClass *pixbuf_cache); +static void ev_pixbuf_cache_finalize (GObject *object); +static void ev_pixbuf_cache_dispose (GObject *object); +static void job_finished_cb (EvJob *job, + EvPixbufCache *pixbuf_cache); +static CacheJobInfo *find_job_cache (EvPixbufCache *pixbuf_cache, + int page); +static gboolean new_selection_surface_needed(EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + gint page, + gfloat scale); + + +/* These are used for iterating through the prev and next arrays */ +#define FIRST_VISIBLE_PREV(pixbuf_cache) \ + (MAX (0, pixbuf_cache->preload_cache_size - pixbuf_cache->start_page)) +#define VISIBLE_NEXT_LEN(pixbuf_cache) \ + (MIN(pixbuf_cache->preload_cache_size, ev_document_get_n_pages (pixbuf_cache->document) - (1 + pixbuf_cache->end_page))) +#define PAGE_CACHE_LEN(pixbuf_cache) \ + ((pixbuf_cache->end_page - pixbuf_cache->start_page) + 1) + +#define MAX_PRELOADED_PAGES 3 + +G_DEFINE_TYPE (EvPixbufCache, ev_pixbuf_cache, G_TYPE_OBJECT) + +static void +ev_pixbuf_cache_init (EvPixbufCache *pixbuf_cache) +{ + pixbuf_cache->start_page = -1; + pixbuf_cache->end_page = -1; +} + +static void +ev_pixbuf_cache_class_init (EvPixbufCacheClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + + object_class->finalize = ev_pixbuf_cache_finalize; + object_class->dispose = ev_pixbuf_cache_dispose; + + signals[JOB_FINISHED] = + g_signal_new ("job-finished", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvPixbufCacheClass, job_finished), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); +} + +static void +ev_pixbuf_cache_finalize (GObject *object) +{ + EvPixbufCache *pixbuf_cache; + + pixbuf_cache = EV_PIXBUF_CACHE (object); + + if (pixbuf_cache->job_list) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->job_list_len, + pixbuf_cache->job_list); + pixbuf_cache->job_list = NULL; + } + if (pixbuf_cache->prev_job) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->preload_cache_size, + pixbuf_cache->prev_job); + pixbuf_cache->prev_job = NULL; + } + if (pixbuf_cache->next_job) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->preload_cache_size, + pixbuf_cache->next_job); + pixbuf_cache->next_job = NULL; + } + + g_object_unref (pixbuf_cache->model); + + G_OBJECT_CLASS (ev_pixbuf_cache_parent_class)->finalize (object); +} + +static void +dispose_cache_job_info (CacheJobInfo *job_info, + gpointer data) +{ + if (job_info == NULL) + return; + + if (job_info->job) { + g_signal_handlers_disconnect_by_func (job_info->job, + G_CALLBACK (job_finished_cb), + data); + ev_job_cancel (job_info->job); + g_object_unref (job_info->job); + job_info->job = NULL; + } + if (job_info->surface) { + cairo_surface_destroy (job_info->surface); + job_info->surface = NULL; + } + if (job_info->region) { + cairo_region_destroy (job_info->region); + job_info->region = NULL; + } + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + if (job_info->selection_region) { + cairo_region_destroy (job_info->selection_region); + job_info->selection_region = NULL; + } + + job_info->points_set = FALSE; +} + +static void +ev_pixbuf_cache_dispose (GObject *object) +{ + EvPixbufCache *pixbuf_cache; + int i; + + pixbuf_cache = EV_PIXBUF_CACHE (object); + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + dispose_cache_job_info (pixbuf_cache->prev_job + i, pixbuf_cache); + dispose_cache_job_info (pixbuf_cache->next_job + i, pixbuf_cache); + } + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + dispose_cache_job_info (pixbuf_cache->job_list + i, pixbuf_cache); + } + + G_OBJECT_CLASS (ev_pixbuf_cache_parent_class)->dispose (object); +} + + +EvPixbufCache * +ev_pixbuf_cache_new (GtkWidget *view, + EvDocumentModel *model, + gsize max_size) +{ + EvPixbufCache *pixbuf_cache; + + pixbuf_cache = (EvPixbufCache *) g_object_new (EV_TYPE_PIXBUF_CACHE, NULL); + /* This is a backlink, so we don't ref this */ + pixbuf_cache->view = view; + pixbuf_cache->model = g_object_ref (model); + pixbuf_cache->document = ev_document_model_get_document (model); + pixbuf_cache->max_size = max_size; + + return pixbuf_cache; +} + +void +ev_pixbuf_cache_set_max_size (EvPixbufCache *pixbuf_cache, + gsize max_size) +{ + if (pixbuf_cache->max_size == max_size) + return; + + if (pixbuf_cache->max_size > max_size) + ev_pixbuf_cache_clear (pixbuf_cache); + pixbuf_cache->max_size = max_size; +} + +static void +copy_job_to_job_info (EvJobRender *job_render, + CacheJobInfo *job_info, + EvPixbufCache *pixbuf_cache) +{ + if (job_info->surface) { + cairo_surface_destroy (job_info->surface); + } + job_info->surface = cairo_surface_reference (job_render->surface); + if (pixbuf_cache->inverted_colors) { + ev_document_misc_invert_surface (job_info->surface); + } + + job_info->points_set = FALSE; + if (job_render->include_selection) { + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + if (job_info->selection_region) { + cairo_region_destroy (job_info->selection_region); + job_info->selection_region = NULL; + } + + job_info->selection_points = job_render->selection_points; + job_info->selection_region = cairo_region_reference (job_render->selection_region); + job_info->selection = cairo_surface_reference (job_render->selection); + g_assert (job_info->selection_points.x1 >= 0); + job_info->points_set = TRUE; + } + + if (job_info->job) { + g_signal_handlers_disconnect_by_func (job_info->job, + G_CALLBACK (job_finished_cb), + pixbuf_cache); + ev_job_cancel (job_info->job); + g_object_unref (job_info->job); + job_info->job = NULL; + } + + job_info->page_ready = TRUE; +} + +static void +job_finished_cb (EvJob *job, + EvPixbufCache *pixbuf_cache) +{ + CacheJobInfo *job_info; + EvJobRender *job_render = EV_JOB_RENDER (job); + + /* If the job is outside of our interest, we silently discard it */ + if ((job_render->page < (pixbuf_cache->start_page - pixbuf_cache->preload_cache_size)) || + (job_render->page > (pixbuf_cache->end_page + pixbuf_cache->preload_cache_size))) { + g_object_unref (job); + return; + } + + job_info = find_job_cache (pixbuf_cache, job_render->page); + + copy_job_to_job_info (job_render, job_info, pixbuf_cache); + g_signal_emit (pixbuf_cache, signals[JOB_FINISHED], 0, job_info->region); +} + +/* This checks a job to see if the job would generate the right sized pixbuf + * given a scale. If it won't, it removes the job and clears it to NULL. + */ +static void +check_job_size_and_unref (EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + gfloat scale) +{ + gint width, height; + + g_assert (job_info); + + if (job_info->job == NULL) + return; + + _get_page_size_for_scale_and_rotation (job_info->job->document, + EV_JOB_RENDER (job_info->job)->page, + scale, + EV_JOB_RENDER (job_info->job)->rotation, + &width, &height); + if (width == EV_JOB_RENDER (job_info->job)->target_width && + height == EV_JOB_RENDER (job_info->job)->target_height) + return; + + g_signal_handlers_disconnect_by_func (job_info->job, + G_CALLBACK (job_finished_cb), + pixbuf_cache); + ev_job_cancel (job_info->job); + g_object_unref (job_info->job); + job_info->job = NULL; +} + +/* Do all function that copies a job from an older cache to it's position in the + * new cache. It clears the old job if it doesn't have a place. + */ +static void +move_one_job (CacheJobInfo *job_info, + EvPixbufCache *pixbuf_cache, + int page, + CacheJobInfo *new_job_list, + CacheJobInfo *new_prev_job, + CacheJobInfo *new_next_job, + int new_preload_cache_size, + int start_page, + int end_page, + gint priority) +{ + CacheJobInfo *target_page = NULL; + int page_offset; + gint new_priority; + + if (page < (start_page - new_preload_cache_size) || + page > (end_page + new_preload_cache_size)) { + dispose_cache_job_info (job_info, pixbuf_cache); + return; + } + + /* find the target page to copy it over to. */ + if (page < start_page) { + page_offset = (page - (start_page - new_preload_cache_size)); + + g_assert (page_offset >= 0 && + page_offset < new_preload_cache_size); + target_page = new_prev_job + page_offset; + new_priority = EV_JOB_PRIORITY_LOW; + } else if (page > end_page) { + page_offset = (page - (end_page + 1)); + + g_assert (page_offset >= 0 && + page_offset < new_preload_cache_size); + target_page = new_next_job + page_offset; + new_priority = EV_JOB_PRIORITY_LOW; + } else { + page_offset = page - start_page; + g_assert (page_offset >= 0 && + page_offset <= ((end_page - start_page) + 1)); + new_priority = EV_JOB_PRIORITY_URGENT; + target_page = new_job_list + page_offset; + } + + *target_page = *job_info; + job_info->job = NULL; + job_info->region = NULL; + job_info->surface = NULL; + + if (new_priority != priority && target_page->job) { + ev_job_scheduler_update_job (target_page->job, new_priority); + } +} + +static gsize +ev_pixbuf_cache_get_page_size (EvPixbufCache *pixbuf_cache, + gint page_index, + gdouble scale, + gint rotation) +{ + gint width, height; + + _get_page_size_for_scale_and_rotation (pixbuf_cache->document, + page_index, scale, rotation, + &width, &height); + return height * cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, width); +} + +static gint +ev_pixbuf_cache_get_preload_size (EvPixbufCache *pixbuf_cache, + gint start_page, + gint end_page, + gdouble scale, + gint rotation) +{ + gsize range_size = 0; + gint new_preload_cache_size = 0; + gint i; + guint n_pages = ev_document_get_n_pages (pixbuf_cache->document); + + /* Get the size of the current range */ + for (i = start_page; i <= end_page; i++) { + range_size += ev_pixbuf_cache_get_page_size (pixbuf_cache, i, scale, rotation); + } + + if (range_size >= pixbuf_cache->max_size) + return new_preload_cache_size; + + i = 1; + while (((start_page - i > 0) || (end_page + i < n_pages)) && + new_preload_cache_size < MAX_PRELOADED_PAGES) { + gsize page_size; + gboolean updated = FALSE; + + if (end_page + i < n_pages) { + page_size = ev_pixbuf_cache_get_page_size (pixbuf_cache, end_page + i, + scale, rotation); + if (page_size + range_size <= pixbuf_cache->max_size) { + range_size += page_size; + new_preload_cache_size++; + updated = TRUE; + } else { + break; + } + } + + if (start_page - i > 0) { + page_size = ev_pixbuf_cache_get_page_size (pixbuf_cache, start_page - i, + scale, rotation); + if (page_size + range_size <= pixbuf_cache->max_size) { + range_size += page_size; + if (!updated) + new_preload_cache_size++; + } else { + break; + } + } + i++; + } + + return new_preload_cache_size; +} + +static void +ev_pixbuf_cache_update_range (EvPixbufCache *pixbuf_cache, + gint start_page, + gint end_page, + guint rotation, + gdouble scale) +{ + CacheJobInfo *new_job_list; + CacheJobInfo *new_prev_job = NULL; + CacheJobInfo *new_next_job = NULL; + gint new_preload_cache_size; + guint new_job_list_len; + int i, page; + + new_preload_cache_size = ev_pixbuf_cache_get_preload_size (pixbuf_cache, + start_page, + end_page, + scale, + rotation); + if (pixbuf_cache->start_page == start_page && + pixbuf_cache->end_page == end_page && + pixbuf_cache->preload_cache_size == new_preload_cache_size) + return; + + new_job_list_len = (end_page - start_page) + 1; + new_job_list = g_slice_alloc0 (sizeof (CacheJobInfo) * new_job_list_len); + if (new_preload_cache_size > 0) { + new_prev_job = g_slice_alloc0 (sizeof (CacheJobInfo) * new_preload_cache_size); + new_next_job = g_slice_alloc0 (sizeof (CacheJobInfo) * new_preload_cache_size); + } + + /* We go through each job in the old cache and either clear it or move + * it to a new location. */ + + /* Start with the prev cache. */ + page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size; + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page < 0) { + dispose_cache_job_info (pixbuf_cache->prev_job + i, pixbuf_cache); + } else { + move_one_job (pixbuf_cache->prev_job + i, + pixbuf_cache, page, + new_job_list, new_prev_job, new_next_job, + new_preload_cache_size, + start_page, end_page, EV_JOB_PRIORITY_LOW); + } + page ++; + } + + page = pixbuf_cache->start_page; + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache) && page >= 0; i++) { + move_one_job (pixbuf_cache->job_list + i, + pixbuf_cache, page, + new_job_list, new_prev_job, new_next_job, + new_preload_cache_size, + start_page, end_page, EV_JOB_PRIORITY_URGENT); + page ++; + } + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page >= ev_document_get_n_pages (pixbuf_cache->document)) { + dispose_cache_job_info (pixbuf_cache->next_job + i, pixbuf_cache); + } else { + move_one_job (pixbuf_cache->next_job + i, + pixbuf_cache, page, + new_job_list, new_prev_job, new_next_job, + new_preload_cache_size, + start_page, end_page, EV_JOB_PRIORITY_LOW); + } + page ++; + } + + if (pixbuf_cache->job_list) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->job_list_len, + pixbuf_cache->job_list); + } + if (pixbuf_cache->prev_job) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->preload_cache_size, + pixbuf_cache->prev_job); + } + if (pixbuf_cache->next_job) { + g_slice_free1 (sizeof (CacheJobInfo) * pixbuf_cache->preload_cache_size, + pixbuf_cache->next_job); + } + + pixbuf_cache->preload_cache_size = new_preload_cache_size; + pixbuf_cache->job_list_len = new_job_list_len; + + pixbuf_cache->job_list = new_job_list; + pixbuf_cache->prev_job = new_prev_job; + pixbuf_cache->next_job = new_next_job; + + pixbuf_cache->start_page = start_page; + pixbuf_cache->end_page = end_page; +} + +static CacheJobInfo * +find_job_cache (EvPixbufCache *pixbuf_cache, + int page) +{ + int page_offset; + + if (page < (pixbuf_cache->start_page - pixbuf_cache->preload_cache_size) || + page > (pixbuf_cache->end_page + pixbuf_cache->preload_cache_size)) + return NULL; + + if (page < pixbuf_cache->start_page) { + page_offset = (page - (pixbuf_cache->start_page - pixbuf_cache->preload_cache_size)); + + g_assert (page_offset >= 0 && + page_offset < pixbuf_cache->preload_cache_size); + return pixbuf_cache->prev_job + page_offset; + } + + if (page > pixbuf_cache->end_page) { + page_offset = (page - (pixbuf_cache->end_page + 1)); + + g_assert (page_offset >= 0 && + page_offset < pixbuf_cache->preload_cache_size); + return pixbuf_cache->next_job + page_offset; + } + + page_offset = page - pixbuf_cache->start_page; + g_assert (page_offset >= 0 && + page_offset <= PAGE_CACHE_LEN(pixbuf_cache)); + return pixbuf_cache->job_list + page_offset; +} + +static void +ev_pixbuf_cache_clear_job_sizes (EvPixbufCache *pixbuf_cache, + gfloat scale) +{ + int i; + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + check_job_size_and_unref (pixbuf_cache, pixbuf_cache->job_list + i, scale); + } + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + check_job_size_and_unref (pixbuf_cache, pixbuf_cache->prev_job + i, scale); + check_job_size_and_unref (pixbuf_cache, pixbuf_cache->next_job + i, scale); + } +} + +static void +get_selection_colors (GtkWidget *widget, GdkColor **text, GdkColor **base) +{ + GtkStyle *style = gtk_widget_get_style (widget); + + if (gtk_widget_has_focus (widget)) { + *text = &style->text [GTK_STATE_SELECTED]; + *base = &style->base [GTK_STATE_SELECTED]; + } else { + *text = &style->text [GTK_STATE_ACTIVE]; + *base = &style->base [GTK_STATE_ACTIVE]; + } +} + +static void +add_job (EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + cairo_region_t *region, + gint width, + gint height, + gint page, + gint rotation, + gfloat scale, + EvJobPriority priority) +{ + job_info->page_ready = FALSE; + + if (job_info->region) + cairo_region_destroy (job_info->region); + job_info->region = region ? cairo_region_reference (region) : NULL; + + job_info->job = ev_job_render_new (pixbuf_cache->document, + page, rotation, scale, + width, height); + + if (new_selection_surface_needed (pixbuf_cache, job_info, page, scale)) { + GdkColor *text, *base; + + gtk_widget_ensure_style (pixbuf_cache->view); + get_selection_colors (pixbuf_cache->view, &text, &base); + ev_job_render_set_selection_info (EV_JOB_RENDER (job_info->job), + &(job_info->target_points), + job_info->selection_style, + text, base); + } + + g_signal_connect (job_info->job, "finished", + G_CALLBACK (job_finished_cb), + pixbuf_cache); + ev_job_scheduler_push_job (job_info->job, priority); +} + +static void +add_job_if_needed (EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + gint page, + gint rotation, + gfloat scale, + EvJobPriority priority) +{ + gint width, height; + + if (job_info->job) + return; + + _get_page_size_for_scale_and_rotation (pixbuf_cache->document, + page, scale, rotation, + &width, &height); + + if (job_info->surface && + cairo_image_surface_get_width (job_info->surface) == width && + cairo_image_surface_get_height (job_info->surface) == height) + return; + + /* Free old surfaces for non visible pages */ + if (priority == EV_JOB_PRIORITY_LOW) { + if (job_info->surface) { + cairo_surface_destroy (job_info->surface); + job_info->surface = NULL; + } + + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + } + + add_job (pixbuf_cache, job_info, NULL, + width, height, page, rotation, scale, + priority); +} + +static void +ev_pixbuf_cache_add_jobs_if_needed (EvPixbufCache *pixbuf_cache, + gint rotation, + gfloat scale) +{ + CacheJobInfo *job_info; + int page; + int i; + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + job_info = (pixbuf_cache->job_list + i); + page = pixbuf_cache->start_page + i; + + add_job_if_needed (pixbuf_cache, job_info, + page, rotation, scale, + EV_JOB_PRIORITY_URGENT); + } + + for (i = FIRST_VISIBLE_PREV(pixbuf_cache); i < pixbuf_cache->preload_cache_size; i++) { + job_info = (pixbuf_cache->prev_job + i); + page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size + i; + + add_job_if_needed (pixbuf_cache, job_info, + page, rotation, scale, + EV_JOB_PRIORITY_LOW); + } + + for (i = 0; i < VISIBLE_NEXT_LEN(pixbuf_cache); i++) { + job_info = (pixbuf_cache->next_job + i); + page = pixbuf_cache->end_page + 1 + i; + + add_job_if_needed (pixbuf_cache, job_info, + page, rotation, scale, + EV_JOB_PRIORITY_LOW); + } + +} + +void +ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, + gint start_page, + gint end_page, + GList *selection_list) +{ + gdouble scale = ev_document_model_get_scale (pixbuf_cache->model); + gint rotation = ev_document_model_get_rotation (pixbuf_cache->model); + + g_return_if_fail (EV_IS_PIXBUF_CACHE (pixbuf_cache)); + + g_return_if_fail (start_page >= 0 && start_page < ev_document_get_n_pages (pixbuf_cache->document)); + g_return_if_fail (end_page >= 0 && end_page < ev_document_get_n_pages (pixbuf_cache->document)); + g_return_if_fail (end_page >= start_page); + + /* First, resize the page_range as needed. We cull old pages + * mercilessly. */ + ev_pixbuf_cache_update_range (pixbuf_cache, start_page, end_page, rotation, scale); + + /* Then, we update the current jobs to see if any of them are the wrong + * size, we remove them if we need to. */ + ev_pixbuf_cache_clear_job_sizes (pixbuf_cache, scale); + + /* Next, we update the target selection for our pages */ + ev_pixbuf_cache_set_selection_list (pixbuf_cache, selection_list); + + /* Finally, we add the new jobs for all the sizes that don't have a + * pixbuf */ + ev_pixbuf_cache_add_jobs_if_needed (pixbuf_cache, rotation, scale); +} + +void +ev_pixbuf_cache_set_inverted_colors (EvPixbufCache *pixbuf_cache, + gboolean inverted_colors) +{ + gint i; + + if (pixbuf_cache->inverted_colors == inverted_colors) + return; + + pixbuf_cache->inverted_colors = inverted_colors; + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + CacheJobInfo *job_info; + + job_info = pixbuf_cache->prev_job + i; + if (job_info && job_info->surface) + ev_document_misc_invert_surface (job_info->surface); + + job_info = pixbuf_cache->next_job + i; + if (job_info && job_info->surface) + ev_document_misc_invert_surface (job_info->surface); + } + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + CacheJobInfo *job_info; + + job_info = pixbuf_cache->job_list + i; + if (job_info && job_info->surface) + ev_document_misc_invert_surface (job_info->surface); + } +} + +cairo_surface_t * +ev_pixbuf_cache_get_surface (EvPixbufCache *pixbuf_cache, + gint page) +{ + CacheJobInfo *job_info; + + job_info = find_job_cache (pixbuf_cache, page); + if (job_info == NULL) + return NULL; + + if (job_info->page_ready) + return job_info->surface; + + /* We don't need to wait for the idle to handle the callback */ + if (job_info->job && + EV_JOB_RENDER (job_info->job)->page_ready) { + copy_job_to_job_info (EV_JOB_RENDER (job_info->job), job_info, pixbuf_cache); + g_signal_emit (pixbuf_cache, signals[JOB_FINISHED], 0, job_info->region); + } + + return job_info->surface; +} + +static gboolean +new_selection_surface_needed (EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + gint page, + gfloat scale) +{ + if (job_info->selection) { + gint width, height; + gint selection_width, selection_height; + + _get_page_size_for_scale_and_rotation (pixbuf_cache->document, + page, scale, 0, + &width, &height); + + selection_width = cairo_image_surface_get_width (job_info->selection); + selection_height = cairo_image_surface_get_height (job_info->selection); + + if (width != selection_width || height != selection_height) + return TRUE; + } else { + if (job_info->points_set) + return TRUE; + } + + return FALSE; +} + +static void +clear_selection_if_needed (EvPixbufCache *pixbuf_cache, + CacheJobInfo *job_info, + gint page, + gfloat scale) +{ + if (new_selection_surface_needed (pixbuf_cache, job_info, page, scale)) { + if (job_info->selection) + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + job_info->selection_points.x1 = -1; + } +} + +/* Clears the cache of jobs and pixbufs. + */ +void +ev_pixbuf_cache_clear (EvPixbufCache *pixbuf_cache) +{ + int i; + + if (!pixbuf_cache->job_list) + return; + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + dispose_cache_job_info (pixbuf_cache->prev_job + i, pixbuf_cache); + dispose_cache_job_info (pixbuf_cache->next_job + i, pixbuf_cache); + } + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + dispose_cache_job_info (pixbuf_cache->job_list + i, pixbuf_cache); + } +} + + +void +ev_pixbuf_cache_style_changed (EvPixbufCache *pixbuf_cache) +{ + gint i; + + if (!pixbuf_cache->job_list) + return; + + /* FIXME: doesn't update running jobs. */ + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + CacheJobInfo *job_info; + + job_info = pixbuf_cache->prev_job + i; + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + + job_info = pixbuf_cache->next_job + i; + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + } + + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + CacheJobInfo *job_info; + + job_info = pixbuf_cache->job_list + i; + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } + } +} + +cairo_surface_t * +ev_pixbuf_cache_get_selection_surface (EvPixbufCache *pixbuf_cache, + gint page, + gfloat scale, + cairo_region_t **region) +{ + CacheJobInfo *job_info; + + /* the document does not implement the selection interface */ + if (!EV_IS_SELECTION (pixbuf_cache->document)) + return NULL; + + job_info = find_job_cache (pixbuf_cache, page); + if (job_info == NULL) + return NULL; + + /* No selection on this page */ + if (!job_info->points_set) + return NULL; + + /* If we have a running job, we just return what we have under the + * assumption that it'll be updated later and we can scale it as need + * be */ + if (job_info->job && EV_JOB_RENDER (job_info->job)->include_selection) + return job_info->selection; + + /* Now, lets see if we need to resize the image. If we do, we clear the + * old one. */ + clear_selection_if_needed (pixbuf_cache, job_info, page, scale); + + /* Finally, we see if the two scales are the same, and get a new pixbuf + * if needed. We do this synchronously for now. At some point, we + * _should_ be able to get rid of the doc_mutex, so the synchronicity + * doesn't kill us. Rendering a few glyphs should really be fast. + */ + if (ev_rect_cmp (&(job_info->target_points), &(job_info->selection_points))) { + EvRectangle *old_points; + GdkColor *text, *base; + EvRenderContext *rc; + EvPage *ev_page; + + /* we need to get a new selection pixbuf */ + ev_document_doc_mutex_lock (); + if (job_info->selection_points.x1 < 0) { + g_assert (job_info->selection == NULL); + old_points = NULL; + } else { + g_assert (job_info->selection != NULL); + old_points = &(job_info->selection_points); + } + + ev_page = ev_document_get_page (pixbuf_cache->document, page); + rc = ev_render_context_new (ev_page, 0, scale); + g_object_unref (ev_page); + + if (job_info->selection_region) + cairo_region_destroy (job_info->selection_region); + job_info->selection_region = + ev_selection_get_selection_region (EV_SELECTION (pixbuf_cache->document), + rc, job_info->selection_style, + &(job_info->target_points)); + + gtk_widget_ensure_style (pixbuf_cache->view); + + get_selection_colors (pixbuf_cache->view, &text, &base); + + ev_selection_render_selection (EV_SELECTION (pixbuf_cache->document), + rc, &(job_info->selection), + &(job_info->target_points), + old_points, + job_info->selection_style, + text, base); + job_info->selection_points = job_info->target_points; + g_object_unref (rc); + ev_document_doc_mutex_unlock (); + } + if (region) + *region = job_info->selection_region; + return job_info->selection; +} + +static void +update_job_selection (CacheJobInfo *job_info, + EvViewSelection *selection) +{ + job_info->points_set = TRUE; + job_info->target_points = selection->rect; + job_info->selection_style = selection->style; +} + +static void +clear_job_selection (CacheJobInfo *job_info) +{ + job_info->points_set = FALSE; + job_info->selection_points.x1 = -1; + + if (job_info->selection) { + cairo_surface_destroy (job_info->selection); + job_info->selection = NULL; + } +} + +/* This function will reset the selection on pages that no longer have them, and + * will update the target_selection on those that need it. It will _not_ free + * the previous selection_list -- that's up to caller to do. + */ +void +ev_pixbuf_cache_set_selection_list (EvPixbufCache *pixbuf_cache, + GList *selection_list) +{ + EvViewSelection *selection; + GList *list = selection_list; + int page; + int i; + + g_return_if_fail (EV_IS_PIXBUF_CACHE (pixbuf_cache)); + + if (!EV_IS_SELECTION (pixbuf_cache->document)) + return; + + /* We check each area to see what needs updating, and what needs freeing; */ + page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size; + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page < 0) { + page ++; + continue; + } + + selection = NULL; + while (list) { + if (((EvViewSelection *)list->data)->page == page) { + selection = list->data; + break; + } else if (((EvViewSelection *)list->data)->page > page) + break; + list = list->next; + } + + if (selection) + update_job_selection (pixbuf_cache->prev_job + i, selection); + else + clear_job_selection (pixbuf_cache->prev_job + i); + page ++; + } + + page = pixbuf_cache->start_page; + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + selection = NULL; + while (list) { + if (((EvViewSelection *)list->data)->page == page) { + selection = list->data; + break; + } else if (((EvViewSelection *)list->data)->page > page) + break; + list = list->next; + } + + if (selection) + update_job_selection (pixbuf_cache->job_list + i, selection); + else + clear_job_selection (pixbuf_cache->job_list + i); + page ++; + } + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page >= ev_document_get_n_pages (pixbuf_cache->document)) + break; + + selection = NULL; + while (list) { + if (((EvViewSelection *)list->data)->page == page) { + selection = list->data; + break; + } else if (((EvViewSelection *)list->data)->page > page) + break; + list = list->next; + } + + if (selection) + update_job_selection (pixbuf_cache->next_job + i, selection); + else + clear_job_selection (pixbuf_cache->next_job + i); + page ++; + } +} + + +/* Returns what the pixbuf cache thinks is */ + +GList * +ev_pixbuf_cache_get_selection_list (EvPixbufCache *pixbuf_cache) +{ + EvViewSelection *selection; + GList *retval = NULL; + int page; + int i; + + g_return_val_if_fail (EV_IS_PIXBUF_CACHE (pixbuf_cache), NULL); + + /* We check each area to see what needs updating, and what needs freeing; */ + page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size; + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page < 0) { + page ++; + continue; + } + + if (pixbuf_cache->prev_job[i].selection_points.x1 != -1) { + selection = g_new0 (EvViewSelection, 1); + selection->page = page; + selection->rect = pixbuf_cache->prev_job[i].selection_points; + if (pixbuf_cache->prev_job[i].selection_region) + selection->covered_region = cairo_region_reference (pixbuf_cache->prev_job[i].selection_region); + retval = g_list_append (retval, selection); + } + + page ++; + } + + page = pixbuf_cache->start_page; + for (i = 0; i < PAGE_CACHE_LEN (pixbuf_cache); i++) { + if (pixbuf_cache->job_list[i].selection_points.x1 != -1) { + selection = g_new0 (EvViewSelection, 1); + selection->page = page; + selection->rect = pixbuf_cache->job_list[i].selection_points; + if (pixbuf_cache->job_list[i].selection_region) + selection->covered_region = cairo_region_reference (pixbuf_cache->job_list[i].selection_region); + retval = g_list_append (retval, selection); + } + + page ++; + } + + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { + if (page >= ev_document_get_n_pages (pixbuf_cache->document)) + break; + + if (pixbuf_cache->next_job[i].selection_points.x1 != -1) { + selection = g_new0 (EvViewSelection, 1); + selection->page = page; + selection->rect = pixbuf_cache->next_job[i].selection_points; + if (pixbuf_cache->next_job[i].selection_region) + selection->covered_region = cairo_region_reference (pixbuf_cache->next_job[i].selection_region); + retval = g_list_append (retval, selection); + } + + page ++; + } + + return retval; +} + +void +ev_pixbuf_cache_reload_page (EvPixbufCache *pixbuf_cache, + cairo_region_t *region, + gint page, + gint rotation, + gdouble scale) +{ + CacheJobInfo *job_info; + gint width, height; + + job_info = find_job_cache (pixbuf_cache, page); + if (job_info == NULL) + return; + + _get_page_size_for_scale_and_rotation (pixbuf_cache->document, + page, scale, rotation, + &width, &height); + add_job (pixbuf_cache, job_info, region, + width, height, page, rotation, scale, + EV_JOB_PRIORITY_URGENT); +} + + diff --git a/libview/ev-pixbuf-cache.h b/libview/ev-pixbuf-cache.h new file mode 100644 index 00000000..67c2517e --- /dev/null +++ b/libview/ev-pixbuf-cache.h @@ -0,0 +1,89 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* This File is basically an extention of EvView, and is out here just to keep + * ev-view.c from exploding. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_PIXBUF_CACHE_H__ +#define __EV_PIXBUF_CACHE_H__ + +#include <gtk/gtk.h> + +#include <evince-document.h> +#include <evince-view.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PIXBUF_CACHE (ev_pixbuf_cache_get_type ()) +#define EV_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PIXBUF_CACHE, EvPixbufCache)) +#define EV_IS_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_PIXBUF_CACHE)) + + + +/* The coordinates in the rect here are at scale == 1.0, so that we can ignore + * resizings. There is one per page, maximum. + */ +typedef struct { + int page; + EvRectangle rect; + cairo_region_t *covered_region; + EvSelectionStyle style; +} EvViewSelection; + +typedef struct _EvPixbufCache EvPixbufCache; +typedef struct _EvPixbufCacheClass EvPixbufCacheClass; + +GType ev_pixbuf_cache_get_type (void) G_GNUC_CONST; +EvPixbufCache *ev_pixbuf_cache_new (GtkWidget *view, + EvDocumentModel *model, + gsize max_size); +void ev_pixbuf_cache_set_max_size (EvPixbufCache *pixbuf_cache, + gsize max_size); +void ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, + gint start_page, + gint end_page, + GList *selection_list); +cairo_surface_t *ev_pixbuf_cache_get_surface (EvPixbufCache *pixbuf_cache, + gint page); +void ev_pixbuf_cache_clear (EvPixbufCache *pixbuf_cache); +void ev_pixbuf_cache_style_changed (EvPixbufCache *pixbuf_cache); +void ev_pixbuf_cache_reload_page (EvPixbufCache *pixbuf_cache, + cairo_region_t *region, + gint page, + gint rotation, + gdouble scale); +void ev_pixbuf_cache_set_inverted_colors (EvPixbufCache *pixbuf_cache, + gboolean inverted_colors); +/* Selection */ +cairo_surface_t *ev_pixbuf_cache_get_selection_surface (EvPixbufCache *pixbuf_cache, + gint page, + gfloat scale, + cairo_region_t **region); +void ev_pixbuf_cache_set_selection_list (EvPixbufCache *pixbuf_cache, + GList *selection_list); +GList *ev_pixbuf_cache_get_selection_list (EvPixbufCache *pixbuf_cache); + +G_END_DECLS + +#endif /* __EV_PIXBUF_CACHE_H__ */ diff --git a/libview/ev-print-operation.c b/libview/ev-print-operation.c new file mode 100644 index 00000000..d913c7be --- /dev/null +++ b/libview/ev-print-operation.c @@ -0,0 +1,2028 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-print-operation.h" + +#if GTKUNIXPRINT_ENABLED +#include <gtk/gtkunixprint.h> +#endif +#include <glib/gi18n.h> +#include <glib/gstdio.h> +#include <unistd.h> + +#include "ev-jobs.h" +#include "ev-job-scheduler.h" + +enum { + PROP_0, + PROP_DOCUMENT +}; + +enum { + DONE, + BEGIN_PRINT, + STATUS_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +struct _EvPrintOperation { + GObject parent; + + EvDocument *document; + + /* Progress */ + gchar *status; + gdouble progress; +}; + +struct _EvPrintOperationClass { + GObjectClass parent_class; + + void (* set_current_page) (EvPrintOperation *op, + gint current_page); + void (* set_print_settings) (EvPrintOperation *op, + GtkPrintSettings *print_settings); + GtkPrintSettings *(* get_print_settings) (EvPrintOperation *op); + void (* set_default_page_setup) (EvPrintOperation *op, + GtkPageSetup *page_setup); + GtkPageSetup *(* get_default_page_setup) (EvPrintOperation *op); + void (* set_job_name) (EvPrintOperation *op, + const gchar *job_name); + const gchar *(* get_job_name) (EvPrintOperation *op); + void (* run) (EvPrintOperation *op, + GtkWindow *parent); + void (* cancel) (EvPrintOperation *op); + void (* get_error) (EvPrintOperation *op, + GError **error); + void (* set_embed_page_setup) (EvPrintOperation *op, + gboolean embed); + gboolean (* get_embed_page_setup) (EvPrintOperation *op); + + /* signals */ + void (* done) (EvPrintOperation *op, + GtkPrintOperationResult result); + void (* begin_print) (EvPrintOperation *op); + void (* status_changed) (EvPrintOperation *op); +}; + +G_DEFINE_ABSTRACT_TYPE (EvPrintOperation, ev_print_operation, G_TYPE_OBJECT) + +static void +ev_print_operation_finalize (GObject *object) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (object); + + if (op->document) { + g_object_unref (op->document); + op->document = NULL; + } + + if (op->status) { + g_free (op->status); + op->status = NULL; + } + + (* G_OBJECT_CLASS (ev_print_operation_parent_class)->finalize) (object); +} + +static void +ev_print_operation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (object); + + switch (prop_id) { + case PROP_DOCUMENT: + op->document = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_print_operation_init (EvPrintOperation *op) +{ +} + +static void +ev_print_operation_class_init (EvPrintOperationClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->set_property = ev_print_operation_set_property; + g_object_class->finalize = ev_print_operation_finalize; + + g_object_class_install_property (g_object_class, + PROP_DOCUMENT, + g_param_spec_object ("document", + "Document", + "The document to print", + EV_TYPE_DOCUMENT, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + signals[DONE] = + g_signal_new ("done", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvPrintOperationClass, done), + NULL, NULL, + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_PRINT_OPERATION_RESULT); + signals[BEGIN_PRINT] = + g_signal_new ("begin_print", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvPrintOperationClass, begin_print), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + signals[STATUS_CHANGED] = + g_signal_new ("status_changed", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvPrintOperationClass, status_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +/* Public methods */ +void +ev_print_operation_set_current_page (EvPrintOperation *op, + gint current_page) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + g_return_if_fail (current_page >= 0); + + class->set_current_page (op, current_page); +} + +void +ev_print_operation_set_print_settings (EvPrintOperation *op, + GtkPrintSettings *print_settings) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + g_return_if_fail (GTK_IS_PRINT_SETTINGS (print_settings)); + + class->set_print_settings (op, print_settings); +} + +GtkPrintSettings * +ev_print_operation_get_print_settings (EvPrintOperation *op) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); + + return class->get_print_settings (op); +} + +void +ev_print_operation_set_default_page_setup (EvPrintOperation *op, + GtkPageSetup *page_setup) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + g_return_if_fail (GTK_IS_PAGE_SETUP (page_setup)); + + class->set_default_page_setup (op, page_setup); +} + +GtkPageSetup * +ev_print_operation_get_default_page_setup (EvPrintOperation *op) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); + + return class->get_default_page_setup (op); +} + +void +ev_print_operation_set_job_name (EvPrintOperation *op, + const gchar *job_name) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + g_return_if_fail (job_name != NULL); + + class->set_job_name (op, job_name); +} + +const gchar * +ev_print_operation_get_job_name (EvPrintOperation *op) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); + + return class->get_job_name (op); +} + +void +ev_print_operation_run (EvPrintOperation *op, + GtkWindow *parent) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + + class->run (op, parent); +} + +void +ev_print_operation_cancel (EvPrintOperation *op) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + + class->cancel (op); +} + +void +ev_print_operation_get_error (EvPrintOperation *op, + GError **error) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + + class->get_error (op, error); +} + +void +ev_print_operation_set_embed_page_setup (EvPrintOperation *op, + gboolean embed) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_if_fail (EV_IS_PRINT_OPERATION (op)); + + class->set_embed_page_setup (op, embed); +} + +gboolean +ev_print_operation_get_embed_page_setup (EvPrintOperation *op) +{ + EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); + + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), FALSE); + + return class->get_embed_page_setup (op); +} + +const gchar * +ev_print_operation_get_status (EvPrintOperation *op) +{ + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL); + + return op->status ? op->status : ""; +} + +gdouble +ev_print_operation_get_progress (EvPrintOperation *op) +{ + g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), 0.0); + + return op->progress; +} + +static void +ev_print_operation_update_status (EvPrintOperation *op, + gint page, + gint n_pages, + gdouble progress) +{ + if (op->status && op->progress == progress) + return; + + g_free (op->status); + + if (page == -1) { + /* Initial state */ + op->status = g_strdup (_("Preparing to printā¦")); + } else if (page > n_pages) { + op->status = g_strdup (_("Finishingā¦")); + } else { + op->status = g_strdup_printf (_("Printing page %d of %dā¦"), + page, n_pages); + } + + op->progress = MIN (1.0, progress); + + g_signal_emit (op, signals[STATUS_CHANGED], 0); +} + +#if GTKUNIXPRINT_ENABLED + +/* Export interface */ +#define EV_TYPE_PRINT_OPERATION_EXPORT (ev_print_operation_export_get_type()) +#define EV_PRINT_OPERATION_EXPORT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PRINT_OPERATION_EXPORT, EvPrintOperationExport)) +#define EV_PRINT_OPERATION_EXPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PRINT_OPERATION_EXPORT, EvPrintOperationExportClass)) +#define EV_IS_PRINT_OPERATION_EXPORT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PRINT_OPERATION_EXPORT)) + +typedef struct _EvPrintOperationExport EvPrintOperationExport; +typedef struct _EvPrintOperationExportClass EvPrintOperationExportClass; + +static GType ev_print_operation_export_get_type (void) G_GNUC_CONST; + +static void ev_print_operation_export_begin (EvPrintOperationExport *export); +static gboolean export_print_page (EvPrintOperationExport *export); +static void export_cancel (EvPrintOperationExport *export); + +struct _EvPrintOperationExport { + EvPrintOperation parent; + + GtkWindow *parent_window; + EvJob *job_export; + GError *error; + + gboolean print_preview; + gint n_pages; + gint current_page; + GtkPrinter *printer; + GtkPageSetup *page_setup; + GtkPrintSettings *print_settings; + GtkPageSet page_set; + gint copies; + guint collate : 1; + guint reverse : 1; + gint pages_per_sheet; + gint fd; + gchar *temp_file; + gchar *job_name; + gboolean embed_page_setup; + + guint idle_id; + + /* Context */ + EvFileExporterContext fc; + gint n_pages_to_print; + gint uncollated_copies; + gint collated_copies; + gint uncollated, collated, total; + + gint sheet, page_count; + + gint range, n_ranges; + GtkPageRange *ranges; + GtkPageRange one_range; + + gint page, start, end, inc; +}; + +struct _EvPrintOperationExportClass { + EvPrintOperationClass parent_class; +}; + +G_DEFINE_TYPE (EvPrintOperationExport, ev_print_operation_export, EV_TYPE_PRINT_OPERATION) + +/* Internal print queue */ +static GHashTable *print_queue = NULL; + +static void +queue_free (GQueue *queue) +{ + g_queue_foreach (queue, (GFunc)g_object_unref, NULL); + g_queue_free (queue); +} + +static void +ev_print_queue_init (void) +{ + if (G_UNLIKELY (print_queue == NULL)) { + print_queue = g_hash_table_new_full (g_direct_hash, + g_direct_equal, + NULL, + (GDestroyNotify)queue_free); + } +} + +static void +remove_document_queue (gpointer data, + GObject *document) +{ + if (print_queue) + g_hash_table_remove (print_queue, document); +} + +static gboolean +ev_print_queue_is_empty (EvDocument *document) +{ + GQueue *queue; + + queue = g_hash_table_lookup (print_queue, document); + return (!queue || g_queue_is_empty (queue)); +} + +static void +ev_print_queue_push (EvPrintOperation *op) +{ + GQueue *queue; + + queue = g_hash_table_lookup (print_queue, op->document); + if (!queue) { + queue = g_queue_new (); + g_hash_table_insert (print_queue, + op->document, + queue); + g_object_weak_ref (G_OBJECT (op->document), + (GWeakNotify)remove_document_queue, + NULL); + } + + g_queue_push_head (queue, g_object_ref (op)); +} + +static EvPrintOperation * +ev_print_queue_pop (EvDocument *document) +{ + EvPrintOperation *op; + GQueue *queue; + + queue = g_hash_table_lookup (print_queue, document); + if (!queue || g_queue_is_empty (queue)) + return NULL; + + op = g_queue_pop_tail (queue); + g_object_unref (op); + + return op; +} + +static EvPrintOperation * +ev_print_queue_peek (EvDocument *document) +{ + GQueue *queue; + + queue = g_hash_table_lookup (print_queue, document); + if (!queue || g_queue_is_empty (queue)) + return NULL; + + return g_queue_peek_tail (queue); +} + +static void +ev_print_operation_export_set_current_page (EvPrintOperation *op, + gint current_page) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + g_return_if_fail (current_page < export->n_pages); + + export->current_page = current_page; +} + +static void +ev_print_operation_export_set_print_settings (EvPrintOperation *op, + GtkPrintSettings *print_settings) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + if (print_settings == export->print_settings) + return; + + g_object_ref (print_settings); + if (export->print_settings) + g_object_unref (export->print_settings); + export->print_settings = print_settings; +} + +static GtkPrintSettings * +ev_print_operation_export_get_print_settings (EvPrintOperation *op) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + return export->print_settings; +} + +static void +ev_print_operation_export_set_default_page_setup (EvPrintOperation *op, + GtkPageSetup *page_setup) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + if (page_setup == export->page_setup) + return; + + g_object_ref (page_setup); + if (export->page_setup) + g_object_unref (export->page_setup); + export->page_setup = page_setup; +} + +static GtkPageSetup * +ev_print_operation_export_get_default_page_setup (EvPrintOperation *op) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + return export->page_setup; +} + +static void +ev_print_operation_export_set_job_name (EvPrintOperation *op, + const gchar *job_name) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + g_free (export->job_name); + export->job_name = g_strdup (job_name); +} + +static const gchar * +ev_print_operation_export_get_job_name (EvPrintOperation *op) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + return export->job_name; +} + +static void +ev_print_operation_export_set_printer (EvPrintOperationExport *export, + GtkPrinter *printer) +{ + if (printer == export->printer) + return; + + g_object_ref (printer); + if (export->printer) + g_object_unref (export->printer); + export->printer = printer; +} + +static void +find_range (EvPrintOperationExport *export) +{ + GtkPageRange *range; + + range = &export->ranges[export->range]; + + if (export->inc < 0) { + export->start = range->end; + export->end = range->start - 1; + } else { + export->start = range->start; + export->end = range->end + 1; + } +} + +static gboolean +clamp_ranges (EvPrintOperationExport *export) +{ + gint num_of_correct_ranges = 0; + gint n_pages_to_print = 0; + gint i; + gboolean null_flag = FALSE; + + for (i = 0; i < export->n_ranges; i++) { + gint n_pages; + + if ((export->ranges[i].start >= 0) && + (export->ranges[i].start < export->n_pages) && + (export->ranges[i].end >= 0) && + (export->ranges[i].end < export->n_pages)) { + export->ranges[num_of_correct_ranges] = export->ranges[i]; + num_of_correct_ranges++; + } else if ((export->ranges[i].start >= 0) && + (export->ranges[i].start < export->n_pages) && + (export->ranges[i].end >= export->n_pages)) { + export->ranges[i].end = export->n_pages - 1; + export->ranges[num_of_correct_ranges] = export->ranges[i]; + num_of_correct_ranges++; + } else if ((export->ranges[i].end >= 0) && + (export->ranges[i].end < export->n_pages) && + (export->ranges[i].start < 0)) { + export->ranges[i].start = 0; + export->ranges[num_of_correct_ranges] = export->ranges[i]; + num_of_correct_ranges++; + } + + n_pages = export->ranges[i].end - export->ranges[i].start + 1; + if (export->page_set == GTK_PAGE_SET_ALL) { + n_pages_to_print += n_pages; + } else if (n_pages % 2 == 0) { + n_pages_to_print += n_pages / 2; + } else if (export->page_set == GTK_PAGE_SET_EVEN) { + if (n_pages==1 && export->ranges[i].start % 2 == 0) + null_flag = TRUE; + else + n_pages_to_print += export->ranges[i].start % 2 == 0 ? + n_pages / 2 : (n_pages / 2) + 1; + } else if (export->page_set == GTK_PAGE_SET_ODD) { + if (n_pages==1 && export->ranges[i].start % 2 != 0) + null_flag = TRUE; + else + n_pages_to_print += export->ranges[i].start % 2 == 0 ? + (n_pages / 2) + 1 : n_pages / 2; + } + } + + if (null_flag && !n_pages_to_print) { + return FALSE; + } else { + export->n_ranges = num_of_correct_ranges; + export->n_pages_to_print = n_pages_to_print; + return TRUE; + } +} + +static void +get_first_and_last_page (EvPrintOperationExport *export, + gint *first, + gint *last) +{ + gint i; + gint first_page = G_MAXINT; + gint last_page = G_MININT; + gint max_page = export->n_pages - 1; + + if (export->n_ranges == 0) { + *first = 0; + *last = max_page; + + return; + } + + for (i = 0; i < export->n_ranges; i++) { + if (export->ranges[i].start < first_page) + first_page = export->ranges[i].start; + if (export->ranges[i].end > last_page) + last_page = export->ranges[i].end; + } + + *first = MAX (0, first_page); + *last = MIN (max_page, last_page); +} + +static gboolean +export_print_inc_page (EvPrintOperationExport *export) +{ + do { + export->page += export->inc; + + /* note: when NOT collating, page_count is increased in export_print_page */ + if (export->collate) { + export->page_count++; + export->sheet = 1 + (export->page_count - 1) / export->pages_per_sheet; + } + + if (export->page == export->end) { + export->range += export->inc; + if (export->range == -1 || export->range == export->n_ranges) { + export->uncollated++; + + /* when printing multiple collated copies & multiple pages per sheet we want to + * prevent the next copy bleeding into the last sheet of the previous one + * we've reached the last range to be printed now, so this is the time to do it */ + if (export->pages_per_sheet > 1 && export->collate == 1 && + (export->page_count - 1) % export->pages_per_sheet != 0) { + + EvPrintOperation *op = EV_PRINT_OPERATION (export); + ev_document_doc_mutex_lock (); + + /* keep track of all blanks but only actualise those + * which are in the current odd / even sheet set */ + + export->page_count += export->pages_per_sheet - (export->page_count - 1) % export->pages_per_sheet; + if (export->page_set == GTK_PAGE_SET_ALL || + (export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 == 0) || + (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 == 1) ) { + ev_file_exporter_end_page (EV_FILE_EXPORTER (op->document)); + } + ev_document_doc_mutex_unlock (); + export->sheet = 1 + (export->page_count - 1) / export->pages_per_sheet; + } + + if (export->uncollated == export->uncollated_copies) + return FALSE; + + export->range = export->inc < 0 ? export->n_ranges - 1 : 0; + } + find_range (export); + export->page = export->start; + } + + /* in/decrement the page number until we reach the first page on the next EVEN or ODD sheet + * if we're not collating, we have to make sure that this is done only once! */ + } while ( export->collate == 1 && + ((export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 == 1) || + (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 == 0))); + + return TRUE; +} + +static void +ev_print_operation_export_clear_temp_file (EvPrintOperationExport *export) +{ + if (!export->temp_file) + return; + + g_unlink (export->temp_file); + g_free (export->temp_file); + export->temp_file = NULL; +} + +static void +ev_print_operation_export_run_next (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + EvPrintOperation *next; + EvDocument *document; + + /* First pop the current job */ + document = op->document; + ev_print_queue_pop (document); + + next = ev_print_queue_peek (document); + if (next) + ev_print_operation_export_begin (EV_PRINT_OPERATION_EXPORT (next)); +} + +static void +gtk_print_job_finished (GtkPrintJob *print_job, + EvPrintOperationExport *export, + GError *error) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (error) { + g_set_error_literal (&export->error, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + error->message); + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_ERROR); + } else { + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_APPLY); + } + + ev_print_operation_export_clear_temp_file (export); + g_object_unref (print_job); + + ev_print_operation_export_run_next (export); +} + +static void +export_print_done (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + GtkPrintSettings *settings; + EvFileExporterCapabilities capabilities; + GError *error = NULL; + + g_assert (export->temp_file != NULL); + + /* Some printers take into account some print settings, + * and others don't. However we have exported the document + * to a ps or pdf file according to such print settings. So, + * we want to send the exported file to printer with those + * settings set to default values. + */ + settings = gtk_print_settings_copy (export->print_settings); + capabilities = ev_file_exporter_get_capabilities (EV_FILE_EXPORTER (op->document)); + + gtk_print_settings_set_page_ranges (settings, NULL, 0); + gtk_print_settings_set_print_pages (settings, GTK_PRINT_PAGES_ALL); + if (capabilities & EV_FILE_EXPORTER_CAN_COPIES) + gtk_print_settings_set_n_copies (settings, 1); + if (capabilities & EV_FILE_EXPORTER_CAN_PAGE_SET) + gtk_print_settings_set_page_set (settings, GTK_PAGE_SET_ALL); + if (capabilities & EV_FILE_EXPORTER_CAN_SCALE) + gtk_print_settings_set_scale (settings, 1.0); + if (capabilities & EV_FILE_EXPORTER_CAN_COLLATE) + gtk_print_settings_set_collate (settings, FALSE); + if (capabilities & EV_FILE_EXPORTER_CAN_REVERSE) + gtk_print_settings_set_reverse (settings, FALSE); + if (capabilities & EV_FILE_EXPORTER_CAN_NUMBER_UP) { + gtk_print_settings_set_number_up (settings, 1); + gtk_print_settings_set_int (settings, "cups-"GTK_PRINT_SETTINGS_NUMBER_UP, 1); + } + + if (export->print_preview) { + GKeyFile *key_file; + gchar *data = NULL; + gsize data_len; + gchar *print_settings_file = NULL; + + key_file = g_key_file_new (); + + gtk_print_settings_to_key_file (settings, key_file, NULL); + gtk_page_setup_to_key_file (export->page_setup, key_file, NULL); + g_key_file_set_string (key_file, "Print Job", "title", export->job_name); + + data = g_key_file_to_data (key_file, &data_len, &error); + if (data) { + gint fd; + + fd = g_file_open_tmp ("print-settingsXXXXXX", &print_settings_file, &error); + if (!error) + g_file_set_contents (print_settings_file, data, data_len, &error); + close (fd); + + g_free (data); + } + + g_key_file_free (key_file); + + if (!error) { + gint argc; + gchar **argv; + gchar *cmd; + gchar *quoted_filename; + gchar *quoted_settings_filename; + + quoted_filename = g_shell_quote (export->temp_file); + quoted_settings_filename = g_shell_quote (print_settings_file); + cmd = g_strdup_printf ("evince-previewer --unlink-tempfile --print-settings %s %s", + quoted_settings_filename, quoted_filename); + + g_shell_parse_argv (cmd, &argc, &argv, &error); + + g_free (quoted_filename); + g_free (quoted_settings_filename); + g_free (cmd); + + if (!error) { + gdk_spawn_on_screen (gtk_window_get_screen (export->parent_window), + NULL, argv, NULL, + G_SPAWN_SEARCH_PATH, + NULL, NULL, NULL, + &error); + } + + g_strfreev (argv); + } + + if (error) { + if (print_settings_file) + g_unlink (print_settings_file); + g_free (print_settings_file); + } else { + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_APPLY); + /* temp_file will be deleted by the previewer */ + + ev_print_operation_export_run_next (export); + } + } else { + GtkPrintJob *job; + + job = gtk_print_job_new (export->job_name, + export->printer, + settings, + export->page_setup); + gtk_print_job_set_source_file (job, export->temp_file, &error); + if (!error){ + gtk_print_job_send (job, + (GtkPrintJobCompleteFunc)gtk_print_job_finished, + g_object_ref (export), + (GDestroyNotify)g_object_unref); + } + } + g_object_unref (settings); + + if (error) { + g_set_error_literal (&export->error, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + error->message); + g_error_free (error); + ev_print_operation_export_clear_temp_file (export); + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_ERROR); + + ev_print_operation_export_run_next (export); + } +} + +static void +export_print_page_idle_finished (EvPrintOperationExport *export) +{ + export->idle_id = 0; +} + +static void +export_job_finished (EvJobExport *job, + EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (export->pages_per_sheet == 1 || + ( export->page_count % export->pages_per_sheet == 0 && + ( export->page_set == GTK_PAGE_SET_ALL || + ( export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 == 0 ) || + ( export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 == 1 ) ) ) ) { + + ev_document_doc_mutex_lock (); + ev_file_exporter_end_page (EV_FILE_EXPORTER (op->document)); + ev_document_doc_mutex_unlock (); + } + + /* Reschedule */ + export->idle_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc)export_print_page, + export, + (GDestroyNotify)export_print_page_idle_finished); +} + +static void +export_job_cancelled (EvJobExport *job, + EvPrintOperationExport *export) +{ + export_cancel (export); +} + +static void +export_cancel (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (export->idle_id > 0) + g_source_remove (export->idle_id); + export->idle_id = 0; + + if (export->job_export) { + g_signal_handlers_disconnect_by_func (export->job_export, + export_job_finished, + export); + g_signal_handlers_disconnect_by_func (export->job_export, + export_job_cancelled, + export); + g_object_unref (export->job_export); + export->job_export = NULL; + } + + if (export->fd != -1) { + close (export->fd); + export->fd = -1; + } + + ev_print_operation_export_clear_temp_file (export); + + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_CANCEL); + + ev_print_operation_export_run_next (export); +} + +static void +update_progress (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + ev_print_operation_update_status (op, export->total, + export->n_pages_to_print, + export->total / (gdouble)export->n_pages_to_print); +} + +static gboolean +export_print_page (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (!export->temp_file) + return FALSE; /* cancelled */ + + export->total++; + export->collated++; + + /* note: when collating, page_count is increased in export_print_inc_page */ + if (!export->collate) { + export->page_count++; + export->sheet = 1 + (export->page_count - 1) / export->pages_per_sheet; + } + + if (export->collated == export->collated_copies) { + export->collated = 0; + if (!export_print_inc_page (export)) { + ev_document_doc_mutex_lock (); + ev_file_exporter_end (EV_FILE_EXPORTER (op->document)); + ev_document_doc_mutex_unlock (); + + close (export->fd); + export->fd = -1; + update_progress (export); + export_print_done (export); + + return FALSE; + } + } + + /* we're not collating and we've reached a sheet from the wrong sheet set */ + if (!export->collate && + ((export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 != 0) || + (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 != 1))) { + + do { + export->page_count++; + export->collated++; + export->sheet = 1 + (export->page_count - 1) / export->pages_per_sheet; + + if (export->collated == export->collated_copies) { + export->collated = 0; + + if (!export_print_inc_page (export)) { + ev_document_doc_mutex_lock (); + ev_file_exporter_end (EV_FILE_EXPORTER (op->document)); + ev_document_doc_mutex_unlock (); + + close (export->fd); + export->fd = -1; + + update_progress (export); + + export_print_done (export); + return FALSE; + } + } + + } while ((export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 != 0) || + (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 != 1)); + + } + + if (export->pages_per_sheet == 1 || + (export->page_count % export->pages_per_sheet == 1 && + (export->page_set == GTK_PAGE_SET_ALL || + (export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 == 0) || + (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 == 1)))) { + ev_document_doc_mutex_lock (); + ev_file_exporter_begin_page (EV_FILE_EXPORTER (op->document)); + ev_document_doc_mutex_unlock (); + } + + if (!export->job_export) { + export->job_export = ev_job_export_new (op->document); + g_signal_connect (export->job_export, "finished", + G_CALLBACK (export_job_finished), + (gpointer)export); + g_signal_connect (export->job_export, "cancelled", + G_CALLBACK (export_job_cancelled), + (gpointer)export); + } + + ev_job_export_set_page (EV_JOB_EXPORT (export->job_export), export->page); + ev_job_scheduler_push_job (export->job_export, EV_JOB_PRIORITY_NONE); + + update_progress (export); + + return FALSE; +} + +static void +ev_print_operation_export_begin (EvPrintOperationExport *export) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (!export->temp_file) + return; /* cancelled */ + + ev_document_doc_mutex_lock (); + ev_file_exporter_begin (EV_FILE_EXPORTER (op->document), &export->fc); + ev_document_doc_mutex_unlock (); + + export->idle_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc)export_print_page, + export, + (GDestroyNotify)export_print_page_idle_finished); +} + +static void +ev_print_operation_export_print_dialog_response_cb (GtkDialog *dialog, + gint response, + EvPrintOperationExport *export) +{ + GtkPrintPages print_pages; + GtkPrintSettings *print_settings; + GtkPageSetup *page_setup; + GtkPrinter *printer; + gdouble scale; + gdouble width; + gdouble height; + gint first_page; + gint last_page; + const gchar *file_format; + gchar *filename; + GError *error = NULL; + EvPrintOperation *op = EV_PRINT_OPERATION (export); + + if (response != GTK_RESPONSE_OK && + response != GTK_RESPONSE_APPLY) { + gtk_widget_destroy (GTK_WIDGET (dialog)); + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_CANCEL); + + return; + } + + export->print_preview = (response == GTK_RESPONSE_APPLY); + + printer = gtk_print_unix_dialog_get_selected_printer (GTK_PRINT_UNIX_DIALOG (dialog)); + ev_print_operation_export_set_printer (export, printer); + + print_settings = gtk_print_unix_dialog_get_settings (GTK_PRINT_UNIX_DIALOG (dialog)); + ev_print_operation_export_set_print_settings (op, print_settings); + + page_setup = gtk_print_unix_dialog_get_page_setup (GTK_PRINT_UNIX_DIALOG (dialog)); + ev_print_operation_export_set_default_page_setup (op, page_setup); + + if (!gtk_printer_accepts_ps (export->printer)) { + gtk_widget_destroy (GTK_WIDGET (dialog)); + + g_set_error_literal (&export->error, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + _("Printing is not supported on this printer.")); + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_ERROR); + + return; + } + + file_format = gtk_print_settings_get (print_settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT); + + filename = g_strdup_printf ("evince_print.%s.XXXXXX", file_format != NULL ? file_format : ""); + export->fd = g_file_open_tmp (filename, &export->temp_file, &error); + g_free (filename); + if (export->fd <= -1) { + gtk_widget_destroy (GTK_WIDGET (dialog)); + + g_set_error_literal (&export->error, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + error->message); + g_error_free (error); + g_signal_emit (op, signals[DONE], 0, GTK_PRINT_OPERATION_RESULT_ERROR); + + return; + } + + export->current_page = gtk_print_unix_dialog_get_current_page (GTK_PRINT_UNIX_DIALOG (dialog)); + export->page_set = gtk_print_settings_get_page_set (print_settings); + print_pages = gtk_print_settings_get_print_pages (print_settings); + + switch (print_pages) { + case GTK_PRINT_PAGES_CURRENT: + export->ranges = &export->one_range; + + export->ranges[0].start = export->current_page; + export->ranges[0].end = export->current_page; + export->n_ranges = 1; + + break; + case GTK_PRINT_PAGES_RANGES: { + gint i; + + export->ranges = gtk_print_settings_get_page_ranges (print_settings, &export->n_ranges); + for (i = 0; i < export->n_ranges; i++) + if (export->ranges[i].end == -1 || export->ranges[i].end >= export->n_pages) + export->ranges[i].end = export->n_pages - 1; + } + break; + default: + g_warning ("Unsupported print pages setting\n"); + case GTK_PRINT_PAGES_ALL: + export->ranges = &export->one_range; + + export->ranges[0].start = 0; + export->ranges[0].end = export->n_pages - 1; + export->n_ranges = 1; + + break; + } + + if (export->n_ranges < 1 || !clamp_ranges (export)) { + GtkWidget *message_dialog; + + message_dialog = gtk_message_dialog_new (GTK_WINDOW (dialog), + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + "%s", _("Invalid page selection")); + gtk_window_set_title (GTK_WINDOW (message_dialog), _("Warning")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog), + "%s", _("Your print range selection does not include any pages")); + g_signal_connect (message_dialog, "response", + G_CALLBACK (gtk_widget_destroy), + NULL); + gtk_widget_show (message_dialog); + + return; + } else ev_print_operation_update_status (op, -1, -1, 0.0); + + width = gtk_page_setup_get_paper_width (page_setup, GTK_UNIT_POINTS); + height = gtk_page_setup_get_paper_height (page_setup, GTK_UNIT_POINTS); + scale = gtk_print_settings_get_scale (print_settings) * 0.01; + if (scale != 1.0) { + width *= scale; + height *= scale; + } + + export->pages_per_sheet = MAX (1, gtk_print_settings_get_number_up (print_settings)); + + export->copies = gtk_print_settings_get_n_copies (print_settings); + export->collate = gtk_print_settings_get_collate (print_settings); + export->reverse = gtk_print_settings_get_reverse (print_settings); + + if (export->collate) { + export->uncollated_copies = export->copies; + export->collated_copies = 1; + } else { + export->uncollated_copies = 1; + export->collated_copies = export->copies; + } + + if (export->reverse) { + export->range = export->n_ranges - 1; + export->inc = -1; + } else { + export->range = 0; + export->inc = 1; + } + find_range (export); + + export->page = export->start - export->inc; + export->collated = export->collated_copies - 1; + + get_first_and_last_page (export, &first_page, &last_page); + + export->fc.format = file_format && g_ascii_strcasecmp (file_format, "pdf") == 0 ? + EV_FILE_FORMAT_PDF : EV_FILE_FORMAT_PS; + export->fc.filename = export->temp_file; + export->fc.first_page = MIN (first_page, last_page); + export->fc.last_page = MAX (first_page, last_page); + export->fc.paper_width = width; + export->fc.paper_height = height; + export->fc.duplex = FALSE; + export->fc.pages_per_sheet = export->pages_per_sheet; + + if (ev_print_queue_is_empty (op->document)) + ev_print_operation_export_begin (export); + + ev_print_queue_push (op); + + g_signal_emit (op, signals[BEGIN_PRINT], 0); + + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +ev_print_operation_export_run (EvPrintOperation *op, + GtkWindow *parent) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + GtkWidget *dialog; + GtkPrintCapabilities capabilities; + + ev_print_queue_init (); + + export->parent_window = parent; + export->error = NULL; + + dialog = gtk_print_unix_dialog_new (_("Print"), parent); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + + capabilities = GTK_PRINT_CAPABILITY_PREVIEW | + ev_file_exporter_get_capabilities (EV_FILE_EXPORTER (op->document)); + gtk_print_unix_dialog_set_manual_capabilities (GTK_PRINT_UNIX_DIALOG (dialog), + capabilities); + + gtk_print_unix_dialog_set_embed_page_setup (GTK_PRINT_UNIX_DIALOG (dialog), + export->embed_page_setup); + + gtk_print_unix_dialog_set_current_page (GTK_PRINT_UNIX_DIALOG (dialog), + export->current_page); + + gtk_print_unix_dialog_set_settings (GTK_PRINT_UNIX_DIALOG (dialog), + export->print_settings); + + if (export->page_setup) + gtk_print_unix_dialog_set_page_setup (GTK_PRINT_UNIX_DIALOG (dialog), + export->page_setup); + + g_signal_connect (dialog, "response", + G_CALLBACK (ev_print_operation_export_print_dialog_response_cb), + export); + + gtk_window_present (GTK_WINDOW (dialog)); +} + +static void +ev_print_operation_export_cancel (EvPrintOperation *op) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + if (export->job_export && + !ev_job_is_finished (export->job_export)) { + ev_job_cancel (export->job_export); + } else { + export_cancel (export); + } +} + +static void +ev_print_operation_export_get_error (EvPrintOperation *op, + GError **error) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + g_propagate_error (error, export->error); + export->error = NULL; +} + +static void +ev_print_operation_export_set_embed_page_setup (EvPrintOperation *op, + gboolean embed) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + export->embed_page_setup = embed; +} + +static gboolean +ev_print_operation_export_get_embed_page_setup (EvPrintOperation *op) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (op); + + return export->embed_page_setup; +} + +static void +ev_print_operation_export_finalize (GObject *object) +{ + EvPrintOperationExport *export = EV_PRINT_OPERATION_EXPORT (object); + + if (export->idle_id > 0) { + g_source_remove (export->idle_id); + export->idle_id = 0; + } + + if (export->fd != -1) { + close (export->fd); + export->fd = -1; + } + + if (export->ranges) { + if (export->ranges != &export->one_range) + g_free (export->ranges); + export->ranges = NULL; + export->n_ranges = 0; + } + + if (export->temp_file) { + g_free (export->temp_file); + export->temp_file = NULL; + } + + if (export->job_name) { + g_free (export->job_name); + export->job_name = NULL; + } + + if (export->job_export) { + if (!ev_job_is_finished (export->job_export)) + ev_job_cancel (export->job_export); + g_signal_handlers_disconnect_by_func (export->job_export, + export_job_finished, + export); + g_signal_handlers_disconnect_by_func (export->job_export, + export_job_cancelled, + export); + g_object_unref (export->job_export); + export->job_export = NULL; + } + + if (export->error) { + g_error_free (export->error); + export->error = NULL; + } + + if (export->print_settings) { + g_object_unref (export->print_settings); + export->print_settings = NULL; + } + + if (export->page_setup) { + g_object_unref (export->page_setup); + export->page_setup = NULL; + } + + if (export->printer) { + g_object_unref (export->printer); + export->printer = NULL; + } + + (* G_OBJECT_CLASS (ev_print_operation_export_parent_class)->finalize) (object); +} + +static void +ev_print_operation_export_init (EvPrintOperationExport *export) +{ + /* sheets are counted from 1 to be physical */ + export->sheet = 1; +} + +static GObject * +ev_print_operation_export_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvPrintOperationExport *export; + EvPrintOperation *op; + + object = G_OBJECT_CLASS (ev_print_operation_export_parent_class)->constructor (type, + n_construct_properties, + construct_params); + export = EV_PRINT_OPERATION_EXPORT (object); + op = EV_PRINT_OPERATION (object); + export->n_pages = ev_document_get_n_pages (op->document); + + return object; +} + +static void +ev_print_operation_export_class_init (EvPrintOperationExportClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + EvPrintOperationClass *ev_print_op_class = EV_PRINT_OPERATION_CLASS (klass); + + ev_print_op_class->set_current_page = ev_print_operation_export_set_current_page; + ev_print_op_class->set_print_settings = ev_print_operation_export_set_print_settings; + ev_print_op_class->get_print_settings = ev_print_operation_export_get_print_settings; + ev_print_op_class->set_default_page_setup = ev_print_operation_export_set_default_page_setup; + ev_print_op_class->get_default_page_setup = ev_print_operation_export_get_default_page_setup; + ev_print_op_class->set_job_name = ev_print_operation_export_set_job_name; + ev_print_op_class->get_job_name = ev_print_operation_export_get_job_name; + ev_print_op_class->run = ev_print_operation_export_run; + ev_print_op_class->cancel = ev_print_operation_export_cancel; + ev_print_op_class->get_error = ev_print_operation_export_get_error; + ev_print_op_class->set_embed_page_setup = ev_print_operation_export_set_embed_page_setup; + ev_print_op_class->get_embed_page_setup = ev_print_operation_export_get_embed_page_setup; + + g_object_class->constructor = ev_print_operation_export_constructor; + g_object_class->finalize = ev_print_operation_export_finalize; +} + +#endif /* GTKUNIXPRINT_ENABLED */ + +/* Print to cairo interface */ +#define EV_TYPE_PRINT_OPERATION_PRINT (ev_print_operation_print_get_type()) +#define EV_PRINT_OPERATION_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PRINT_OPERATION_PRINT, EvPrintOperationPrint)) +#define EV_PRINT_OPERATION_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PRINT_OPERATION_PRINT, EvPrintOperationPrintClass)) +#define EV_IS_PRINT_OPERATION_PRINT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PRINT_OPERATION_PRINT)) + +typedef struct _EvPrintOperationPrint EvPrintOperationPrint; +typedef struct _EvPrintOperationPrintClass EvPrintOperationPrintClass; + +static GType ev_print_operation_print_get_type (void) G_GNUC_CONST; + +typedef enum { + EV_SCALE_NONE, + EV_SCALE_SHRINK_TO_PRINTABLE_AREA, + EV_SCALE_FIT_TO_PRINTABLE_AREA +} EvPrintScale; + +#define EV_PRINT_SETTING_PAGE_SCALE "evince-print-setting-page-scale" +#define EV_PRINT_SETTING_AUTOROTATE "evince-print-setting-page-autorotate" +#define EV_PRINT_SETTING_PAGE_SIZE "evince-print-setting-page-size" + +struct _EvPrintOperationPrint { + EvPrintOperation parent; + + GtkPrintOperation *op; + gint n_pages_to_print; + gint total; + EvJob *job_print; + gchar *job_name; + + /* Page handling tab */ + GtkWidget *scale_combo; + EvPrintScale page_scale; + GtkWidget *autorotate_button; + gboolean autorotate; + GtkWidget *source_button; + gboolean use_source_size; +}; + +struct _EvPrintOperationPrintClass { + EvPrintOperationClass parent_class; +}; + +G_DEFINE_TYPE (EvPrintOperationPrint, ev_print_operation_print, EV_TYPE_PRINT_OPERATION) + +static void +ev_print_operation_print_set_current_page (EvPrintOperation *op, + gint current_page) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_set_current_page (print->op, current_page); +} + +static void +ev_print_operation_print_set_print_settings (EvPrintOperation *op, + GtkPrintSettings *print_settings) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_set_print_settings (print->op, print_settings); +} + +static GtkPrintSettings * +ev_print_operation_print_get_print_settings (EvPrintOperation *op) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + return gtk_print_operation_get_print_settings (print->op); +} + +static void +ev_print_operation_print_set_default_page_setup (EvPrintOperation *op, + GtkPageSetup *page_setup) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_set_default_page_setup (print->op, page_setup); +} + +static GtkPageSetup * +ev_print_operation_print_get_default_page_setup (EvPrintOperation *op) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + return gtk_print_operation_get_default_page_setup (print->op); +} + +static void +ev_print_operation_print_set_job_name (EvPrintOperation *op, + const gchar *job_name) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + g_free (print->job_name); + print->job_name = g_strdup (job_name); + + gtk_print_operation_set_job_name (print->op, print->job_name); +} + +static const gchar * +ev_print_operation_print_get_job_name (EvPrintOperation *op) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + if (!print->job_name) { + gchar *name; + + g_object_get (print->op, "job_name", &name, NULL); + print->job_name = name; + } + + return print->job_name; +} + +static void +ev_print_operation_print_run (EvPrintOperation *op, + GtkWindow *parent) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_run (print->op, + GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, + parent, NULL); +} + +static void +ev_print_operation_print_cancel (EvPrintOperation *op) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_cancel (print->op); +} + +static void +ev_print_operation_print_get_error (EvPrintOperation *op, + GError **error) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_get_error (print->op, error); +} + +static void +ev_print_operation_print_set_embed_page_setup (EvPrintOperation *op, + gboolean embed) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + gtk_print_operation_set_embed_page_setup (print->op, embed); +} + +static gboolean +ev_print_operation_print_get_embed_page_setup (EvPrintOperation *op) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (op); + + return gtk_print_operation_get_embed_page_setup (print->op); +} + +static void +ev_print_operation_print_begin_print (EvPrintOperationPrint *print, + GtkPrintContext *context) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (print); + gint n_pages; + + n_pages = ev_document_get_n_pages (op->document); + gtk_print_operation_set_n_pages (print->op, n_pages); + ev_print_operation_update_status (op, -1, n_pages, 0); + + g_signal_emit (op, signals[BEGIN_PRINT], 0); +} + +static void +ev_print_operation_print_done (EvPrintOperationPrint *print, + GtkPrintOperationResult result) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (print); + + ev_print_operation_update_status (op, 0, print->n_pages_to_print, 1.0); + + g_signal_emit (op, signals[DONE], 0, result); +} + +static void +ev_print_operation_print_status_changed (EvPrintOperationPrint *print) +{ + GtkPrintStatus status; + + status = gtk_print_operation_get_status (print->op); + if (status == GTK_PRINT_STATUS_GENERATING_DATA) + print->n_pages_to_print = gtk_print_operation_get_n_pages_to_print (print->op); +} + +static void +print_job_finished (EvJobPrint *job, + EvPrintOperationPrint *print) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (print); + + gtk_print_operation_draw_page_finish (print->op); + + print->total++; + ev_print_operation_update_status (op, print->total, + print->n_pages_to_print, + print->total / (gdouble)print->n_pages_to_print); + ev_job_print_set_cairo (job, NULL); +} + +static void +print_job_cancelled (EvJobPrint *job, + EvPrintOperationPrint *print) +{ + gtk_print_operation_cancel (print->op); +} + +static void +ev_print_operation_print_request_page_setup (EvPrintOperationPrint *print, + GtkPrintContext *context, + gint page_nr, + GtkPageSetup *setup) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (print); + gdouble width, height; + GtkPaperSize *paper_size; + + ev_document_get_page_size (op->document, page_nr, + &width, &height); + + if (print->use_source_size) { + paper_size = gtk_paper_size_new_custom ("custom", "custom", + width, height, GTK_UNIT_POINTS); + gtk_page_setup_set_paper_size_and_default_margins (setup, paper_size); + gtk_paper_size_free (paper_size); + } + + if (print->autorotate) { + if (width > height) + gtk_page_setup_set_orientation (setup, GTK_PAGE_ORIENTATION_LANDSCAPE); + else + gtk_page_setup_set_orientation (setup, GTK_PAGE_ORIENTATION_PORTRAIT); + } +} + +static void +_print_context_get_hard_margins (GtkPrintContext *context, + gdouble *top, + gdouble *bottom, + gdouble *left, + gdouble *right) +{ + if (!gtk_print_context_get_hard_margins (context, top, bottom, left, right)) { + *top = 0; + *bottom = 0; + *left = 0; + *right = 0; + } +} + +static void +ev_print_operation_print_draw_page (EvPrintOperationPrint *print, + GtkPrintContext *context, + gint page) +{ + EvPrintOperation *op = EV_PRINT_OPERATION (print); + cairo_t *cr; + gdouble cr_width, cr_height; + gdouble width, height, scale; + gdouble x_scale, y_scale; + gdouble top, bottom, left, right; + + gtk_print_operation_set_defer_drawing (print->op); + + if (!print->job_print) { + print->job_print = ev_job_print_new (op->document); + g_signal_connect (G_OBJECT (print->job_print), "finished", + G_CALLBACK (print_job_finished), + (gpointer)print); + g_signal_connect (G_OBJECT (print->job_print), "cancelled", + G_CALLBACK (print_job_cancelled), + (gpointer)print); + } + + ev_job_print_set_page (EV_JOB_PRINT (print->job_print), page); + + cr = gtk_print_context_get_cairo_context (context); + cr_width = gtk_print_context_get_width (context); + cr_height = gtk_print_context_get_height (context); + ev_document_get_page_size (op->document, page, &width, &height); + + if (print->page_scale == EV_SCALE_NONE) { + /* Center document page on the printed page */ + if (print->autorotate) + cairo_translate (cr, (cr_width - width) / 2, (cr_height - height) / 2); + } else { + _print_context_get_hard_margins (context, &top, &bottom, &left, &right); + + x_scale = (cr_width - left - right) / width; + y_scale = (cr_height - top - bottom) / height; + + if (x_scale < y_scale) + scale = x_scale; + else + scale = y_scale; + + if (print->autorotate) { + double left_right_sides, top_bottom_sides; + + cairo_translate (cr, (cr_width - scale * width) / 2, + (cr_height - scale * height) / 2); + + /* Ensure document page is within the margins. The + * scale guarantees the document will fit in the + * margins so we just need to check each side and + * if it overhangs the margin, translate it to the + * margin. */ + left_right_sides = (cr_width - width*scale)/2; + top_bottom_sides = (cr_height - height*scale)/2; + if (left_right_sides < left) + cairo_translate (cr, left - left_right_sides, 0); + + if (left_right_sides < right) + cairo_translate (cr, -(right - left_right_sides), 0); + + if (top_bottom_sides < top) + cairo_translate (cr, 0, top - top_bottom_sides); + + if (top_bottom_sides < bottom) + cairo_translate (cr, 0, -(bottom - top_bottom_sides)); + } else { + cairo_translate (cr, left, top); + } + + if (print->page_scale == EV_SCALE_FIT_TO_PRINTABLE_AREA || scale < 1.0) { + cairo_scale (cr, scale, scale); + } + } + + ev_job_print_set_cairo (EV_JOB_PRINT (print->job_print), cr); + ev_job_scheduler_push_job (print->job_print, EV_JOB_PRIORITY_NONE); +} + +static GObject * +ev_print_operation_print_create_custom_widget (EvPrintOperationPrint *print, + GtkPrintContext *context) +{ + GtkPrintSettings *settings; + GtkWidget *label; + GtkWidget *table; + EvPrintScale page_scale; + gboolean autorotate; + gboolean use_source_size; + + settings = gtk_print_operation_get_print_settings (print->op); + page_scale = gtk_print_settings_get_int_with_default (settings, EV_PRINT_SETTING_PAGE_SCALE, 1); + autorotate = gtk_print_settings_has_key (settings, EV_PRINT_SETTING_AUTOROTATE) ? + gtk_print_settings_get_bool (settings, EV_PRINT_SETTING_AUTOROTATE) : + TRUE; + use_source_size = gtk_print_settings_get_bool (settings, EV_PRINT_SETTING_PAGE_SIZE); + + table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + label = gtk_label_new (_("Page Scaling:")); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); + gtk_widget_show (label); + + print->scale_combo = gtk_combo_box_new_text (); + gtk_combo_box_append_text (GTK_COMBO_BOX (print->scale_combo), _("None")); + gtk_combo_box_append_text (GTK_COMBO_BOX (print->scale_combo), _("Shrink to Printable Area")); + gtk_combo_box_append_text (GTK_COMBO_BOX (print->scale_combo), _("Fit to Printable Area")); + gtk_combo_box_set_active (GTK_COMBO_BOX (print->scale_combo), page_scale); + gtk_widget_set_tooltip_text (print->scale_combo, + _("Scale document pages to fit the selected printer page. Select from one of the following:\n" + "\n" + "ā¢ \"None\": No page scaling is performed.\n" + "\n" + "ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area" + " are reduced to fit the printable area of the printer page.\n" + "\n" + "ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as" + " required to fit the printable area of the printer page.\n")); + gtk_table_attach (GTK_TABLE (table), print->scale_combo, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); + gtk_widget_show (print->scale_combo); + + print->autorotate_button = gtk_check_button_new_with_label (_("Auto Rotate and Center")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (print->autorotate_button), autorotate); + gtk_widget_set_tooltip_text (print->autorotate_button, + _("Rotate printer page orientation of each page to match orientation of each document page. " + "Document pages will be centered within the printer page.")); + gtk_table_attach (GTK_TABLE (table), print->autorotate_button, 0, 2, 1, 2, GTK_FILL, 0, 0, 0); + gtk_widget_show (print->autorotate_button); + + print->source_button = gtk_check_button_new_with_label (_("Select page size using document page size")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (print->source_button), use_source_size); + gtk_widget_set_tooltip_text (print->source_button, _("When enabled, each page will be printed on " + "the same size paper as the document page.")); + gtk_table_attach (GTK_TABLE (table), print->source_button, 0, 2, 2, 3, GTK_FILL, 0, 0, 0); + gtk_widget_show (print->source_button); + + return G_OBJECT (table); +} + +static void +ev_print_operation_print_custom_widget_apply (EvPrintOperationPrint *print, + GtkPrintContext *context) +{ + GtkPrintSettings *settings; + + print->page_scale = gtk_combo_box_get_active (GTK_COMBO_BOX (print->scale_combo)); + print->autorotate = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (print->autorotate_button)); + print->use_source_size = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (print->source_button)); + settings = gtk_print_operation_get_print_settings (print->op); + gtk_print_settings_set_int (settings, EV_PRINT_SETTING_PAGE_SCALE, print->page_scale); + gtk_print_settings_set_bool (settings, EV_PRINT_SETTING_AUTOROTATE, print->autorotate); + gtk_print_settings_set_bool (settings, EV_PRINT_SETTING_PAGE_SIZE, print->use_source_size); +} + +static void +ev_print_operation_print_finalize (GObject *object) +{ + EvPrintOperationPrint *print = EV_PRINT_OPERATION_PRINT (object); + + if (print->op) { + g_object_unref (print->op); + print->op = NULL; + } + + if (print->job_name) { + g_free (print->job_name); + print->job_name = NULL; + } + + if (print->job_print) { + if (!ev_job_is_finished (print->job_print)) + ev_job_cancel (print->job_print); + g_signal_handlers_disconnect_by_func (print->job_print, + print_job_finished, + print); + g_signal_handlers_disconnect_by_func (print->job_print, + print_job_cancelled, + print); + g_object_unref (print->job_print); + print->job_print = NULL; + } + + (* G_OBJECT_CLASS (ev_print_operation_print_parent_class)->finalize) (object); +} + +static void +ev_print_operation_print_init (EvPrintOperationPrint *print) +{ + print->op = gtk_print_operation_new (); + g_signal_connect_swapped (print->op, "begin_print", + G_CALLBACK (ev_print_operation_print_begin_print), + print); + g_signal_connect_swapped (print->op, "done", + G_CALLBACK (ev_print_operation_print_done), + print); + g_signal_connect_swapped (print->op, "draw_page", + G_CALLBACK (ev_print_operation_print_draw_page), + print); + g_signal_connect_swapped (print->op, "status_changed", + G_CALLBACK (ev_print_operation_print_status_changed), + print); + g_signal_connect_swapped (print->op, "request_page_setup", + G_CALLBACK (ev_print_operation_print_request_page_setup), + print); + g_signal_connect_swapped (print->op, "create_custom_widget", + G_CALLBACK (ev_print_operation_print_create_custom_widget), + print); + g_signal_connect_swapped (print->op, "custom_widget_apply", + G_CALLBACK (ev_print_operation_print_custom_widget_apply), + print); + gtk_print_operation_set_allow_async (print->op, TRUE); + gtk_print_operation_set_use_full_page (print->op, TRUE); + gtk_print_operation_set_unit (print->op, GTK_UNIT_POINTS); + gtk_print_operation_set_custom_tab_label (print->op, _("Page Handling")); +} + +static void +ev_print_operation_print_class_init (EvPrintOperationPrintClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + EvPrintOperationClass *ev_print_op_class = EV_PRINT_OPERATION_CLASS (klass); + + ev_print_op_class->set_current_page = ev_print_operation_print_set_current_page; + ev_print_op_class->set_print_settings = ev_print_operation_print_set_print_settings; + ev_print_op_class->get_print_settings = ev_print_operation_print_get_print_settings; + ev_print_op_class->set_default_page_setup = ev_print_operation_print_set_default_page_setup; + ev_print_op_class->get_default_page_setup = ev_print_operation_print_get_default_page_setup; + ev_print_op_class->set_job_name = ev_print_operation_print_set_job_name; + ev_print_op_class->get_job_name = ev_print_operation_print_get_job_name; + ev_print_op_class->run = ev_print_operation_print_run; + ev_print_op_class->cancel = ev_print_operation_print_cancel; + ev_print_op_class->get_error = ev_print_operation_print_get_error; + ev_print_op_class->set_embed_page_setup = ev_print_operation_print_set_embed_page_setup; + ev_print_op_class->get_embed_page_setup = ev_print_operation_print_get_embed_page_setup; + + g_object_class->finalize = ev_print_operation_print_finalize; +} + +gboolean +ev_print_operation_exists_for_document (EvDocument *document) +{ +#if GTKUNIXPRINT_ENABLED + return (EV_IS_FILE_EXPORTER(document) || EV_IS_DOCUMENT_PRINT(document)); +#else + return EV_IS_DOCUMENT_PRINT(document); +#endif /* GTKUNIXPRINT_ENABLED */ +} + +/* Factory method */ +EvPrintOperation * +ev_print_operation_new (EvDocument *document) +{ + EvPrintOperation *op = NULL; + + g_return_val_if_fail (ev_print_operation_exists_for_document (document), NULL); + + if (EV_IS_DOCUMENT_PRINT (document)) + op = EV_PRINT_OPERATION (g_object_new (EV_TYPE_PRINT_OPERATION_PRINT, + "document", document, NULL)); + else +#if GTKUNIXPRINT_ENABLED + op = EV_PRINT_OPERATION (g_object_new (EV_TYPE_PRINT_OPERATION_EXPORT, + "document", document, NULL)); +#else + op = NULL; +#endif + return op; +} diff --git a/libview/ev-print-operation.h b/libview/ev-print-operation.h new file mode 100644 index 00000000..c01a0995 --- /dev/null +++ b/libview/ev-print-operation.h @@ -0,0 +1,71 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_PRINT_OPERATION_H__ +#define __EV_PRINT_OPERATION_H__ + +#include <gtk/gtk.h> +#include <glib-object.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +typedef struct _EvPrintOperation EvPrintOperation; +typedef struct _EvPrintOperationClass EvPrintOperationClass; + +#define EV_TYPE_PRINT_OPERATION (ev_print_operation_get_type()) +#define EV_PRINT_OPERATION(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PRINT_OPERATION, EvPrintOperation)) +#define EV_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PRINT_OPERATION, EvPrintOperationClass)) +#define EV_IS_PRINT_OPERATION(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PRINT_OPERATION)) +#define EV_PRINT_OPERATION_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PRINT_OPERATION, EvPrintOperationClass)) + +GType ev_print_operation_get_type (void) G_GNUC_CONST; + +gboolean ev_print_operation_exists_for_document (EvDocument *document); +EvPrintOperation *ev_print_operation_new (EvDocument *document); +void ev_print_operation_set_current_page (EvPrintOperation *op, + gint current_page); +void ev_print_operation_set_print_settings (EvPrintOperation *op, + GtkPrintSettings *print_settings); +GtkPrintSettings *ev_print_operation_get_print_settings (EvPrintOperation *op); +void ev_print_operation_set_default_page_setup (EvPrintOperation *op, + GtkPageSetup *page_setup); +GtkPageSetup *ev_print_operation_get_default_page_setup (EvPrintOperation *op); +void ev_print_operation_set_job_name (EvPrintOperation *op, + const gchar *job_name); +const gchar *ev_print_operation_get_job_name (EvPrintOperation *op); +void ev_print_operation_run (EvPrintOperation *op, + GtkWindow *parent); +void ev_print_operation_cancel (EvPrintOperation *op); +void ev_print_operation_get_error (EvPrintOperation *op, + GError **error); +void ev_print_operation_set_embed_page_setup (EvPrintOperation *op, + gboolean embed); +gboolean ev_print_operation_get_embed_page_setup (EvPrintOperation *op); +const gchar *ev_print_operation_get_status (EvPrintOperation *op); +gdouble ev_print_operation_get_progress (EvPrintOperation *op); + +G_END_DECLS + +#endif /* __EV_PRINT_OPERATION_H__ */ diff --git a/libview/ev-stock-icons.c b/libview/ev-stock-icons.c new file mode 100644 index 00000000..47b3943e --- /dev/null +++ b/libview/ev-stock-icons.c @@ -0,0 +1,143 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* Stock icons for Evince + * + * Copyright (C) 2003 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <gtk/gtk.h> + +#include "ev-stock-icons.h" + +typedef struct { + char *stock_id; + char *icon; +} EvStockIcon; + +/* Evince stock icons */ +static const EvStockIcon stock_icons [] = { + { EV_STOCK_ZOOM, "zoom" }, + { EV_STOCK_ZOOM_PAGE, "zoom-fit-height" }, + { EV_STOCK_ZOOM_WIDTH, "zoom-fit-width" }, + { EV_STOCK_VIEW_DUAL, "view-page-facing" }, + { EV_STOCK_VIEW_CONTINUOUS, "view-page-continuous" }, + { EV_STOCK_ROTATE_LEFT, "object-rotate-left"}, + { EV_STOCK_ROTATE_RIGHT, "object-rotate-right"}, + { EV_STOCK_RUN_PRESENTATION, "x-office-presentation"}, + { EV_STOCK_VISIBLE, "eye"}, + { EV_STOCK_RESIZE_SE, "resize-se"}, + { EV_STOCK_RESIZE_SW, "resize-sw"}, + { EV_STOCK_CLOSE, "close"}, + { EV_STOCK_INVERTED_COLORS, "stock_filters-invert"}, + { EV_STOCK_ATTACHMENT, "mail-attachment"} +}; + +static gchar *ev_icons_path; + +static void +ev_stock_icons_add_icons_path_for_screen (GdkScreen *screen) +{ + GtkIconTheme *icon_theme; + + g_return_if_fail (ev_icons_path != NULL); + + icon_theme = screen ? gtk_icon_theme_get_for_screen (screen) : gtk_icon_theme_get_default (); + if (icon_theme) { + gchar **path = NULL; + gint n_paths; + gint i; + + /* GtkIconTheme will then look in Evince custom hicolor dir + * for icons as well as the standard search paths + */ + gtk_icon_theme_get_search_path (icon_theme, &path, &n_paths); + for (i = n_paths - 1; i >= 0; i--) { + if (g_ascii_strcasecmp (ev_icons_path, path[i]) == 0) + break; + } + + if (i < 0) + gtk_icon_theme_append_search_path (icon_theme, + ev_icons_path); + + g_strfreev (path); + } +} + +/** + * ev_stock_icons_init: + * + * Creates a new icon factory, adding the base stock icons to it. + */ +void +ev_stock_icons_init (void) +{ + GtkIconFactory *factory; + GtkIconSource *source; + gint i; +#ifdef G_OS_WIN32 + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + ev_icons_path = g_build_filename (dir, "share", "evince", "icons", NULL); + g_free (dir); +#else + ev_icons_path = g_build_filename (EVINCEDATADIR, "icons", NULL); +#endif + + factory = gtk_icon_factory_new (); + gtk_icon_factory_add_default (factory); + + source = gtk_icon_source_new (); + + for (i = 0; i < G_N_ELEMENTS (stock_icons); i++) { + GtkIconSet *set; + + gtk_icon_source_set_icon_name (source, stock_icons [i].icon); + + set = gtk_icon_set_new (); + gtk_icon_set_add_source (set, source); + + gtk_icon_factory_add (factory, stock_icons [i].stock_id, set); + gtk_icon_set_unref (set); + } + + gtk_icon_source_free (source); + + g_object_unref (G_OBJECT (factory)); + + ev_stock_icons_add_icons_path_for_screen (gdk_screen_get_default ()); +} + +void +ev_stock_icons_set_screen (GdkScreen *screen) +{ + g_return_if_fail (GDK_IS_SCREEN (screen)); + + ev_stock_icons_add_icons_path_for_screen (screen); +} + +void +ev_stock_icons_shutdown (void) +{ + g_free (ev_icons_path); +} + diff --git a/libview/ev-stock-icons.h b/libview/ev-stock-icons.h new file mode 100644 index 00000000..96ec26f6 --- /dev/null +++ b/libview/ev-stock-icons.h @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* Stock icons for Evince + * + * Copyright (C) 2003 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_STOCK_ICONS_H__ +#define __EV_STOCK_ICONS_H__ + +#include <gdk/gdk.h> + +G_BEGIN_DECLS + +/* Evince stock icons */ +#define EV_STOCK_ZOOM "zoom" +#define EV_STOCK_ZOOM_PAGE "zoom-fit-height" +#define EV_STOCK_ZOOM_WIDTH "zoom-fit-width" +#define EV_STOCK_VIEW_DUAL "view-page-facing" +#define EV_STOCK_VIEW_CONTINUOUS "view-page-continuous" +#define EV_STOCK_ROTATE_LEFT "object-rotate-left" +#define EV_STOCK_ROTATE_RIGHT "object-rotate-right" +#define EV_STOCK_RUN_PRESENTATION "x-office-presentation" +#define EV_STOCK_VISIBLE "eye" +#define EV_STOCK_RESIZE_SE "resize-se" +#define EV_STOCK_RESIZE_SW "resize-sw" +#define EV_STOCK_CLOSE "close" +#define EV_STOCK_INVERTED_COLORS "inverted" +#define EV_STOCK_ATTACHMENT "mail-attachment" + +void ev_stock_icons_init (void); +void ev_stock_icons_shutdown (void); +void ev_stock_icons_set_screen (GdkScreen *screen); + +G_END_DECLS + +#endif /* __EV_STOCK_ICONS_H__ */ diff --git a/libview/ev-timeline.c b/libview/ev-timeline.c new file mode 100644 index 00000000..7491d6cf --- /dev/null +++ b/libview/ev-timeline.c @@ -0,0 +1,450 @@ +/* ev-timeline.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <glib.h> +#include <math.h> +#include <gdk/gdk.h> +#include "ev-timeline.h" + +#define EV_TIMELINE_GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_TIMELINE, EvTimelinePriv)) +#define MSECS_PER_SEC 1000 +#define FRAME_INTERVAL(nframes) (MSECS_PER_SEC / nframes) +#define DEFAULT_FPS 30 + +typedef struct EvTimelinePriv EvTimelinePriv; + +struct EvTimelinePriv { + guint duration; + guint fps; + guint source_id; + + GTimer *timer; + + guint loop : 1; +}; + +enum { + PROP_0, + PROP_FPS, + PROP_DURATION, + PROP_LOOP +}; + +enum { + STARTED, + PAUSED, + FINISHED, + FRAME, + LAST_SIGNAL +}; + +static guint signals [LAST_SIGNAL] = { 0, }; + + +G_DEFINE_TYPE (EvTimeline, ev_timeline, G_TYPE_OBJECT) + + +static void +ev_timeline_init (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + priv = EV_TIMELINE_GET_PRIV (timeline); + + priv->fps = DEFAULT_FPS; + priv->duration = 0; +} + +static void +ev_timeline_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvTimeline *timeline; + + timeline = EV_TIMELINE (object); + + switch (prop_id) { + case PROP_FPS: + ev_timeline_set_fps (timeline, g_value_get_uint (value)); + break; + case PROP_DURATION: + ev_timeline_set_duration (timeline, g_value_get_uint (value)); + break; + case PROP_LOOP: + ev_timeline_set_loop (timeline, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_timeline_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvTimeline *timeline; + EvTimelinePriv *priv; + + timeline = EV_TIMELINE (object); + priv = EV_TIMELINE_GET_PRIV (timeline); + + switch (prop_id) { + case PROP_FPS: + g_value_set_uint (value, priv->fps); + break; + case PROP_DURATION: + g_value_set_uint (value, priv->duration); + break; + case PROP_LOOP: + g_value_set_boolean (value, priv->loop); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_timeline_finalize (GObject *object) +{ + EvTimelinePriv *priv; + + priv = EV_TIMELINE_GET_PRIV (object); + + if (priv->source_id) { + g_source_remove (priv->source_id); + priv->source_id = 0; + } + + if (priv->timer) + g_timer_destroy (priv->timer); + + G_OBJECT_CLASS (ev_timeline_parent_class)->finalize (object); +} + +static gboolean +ev_timeline_run_frame (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + gdouble progress; + guint elapsed_time; + + GDK_THREADS_ENTER (); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); + progress = (gdouble) elapsed_time / priv->duration; + progress = CLAMP (progress, 0., 1.); + + g_signal_emit (timeline, signals [FRAME], 0, progress); + + if (progress >= 1.0) { + if (!priv->loop) { + if (priv->source_id) { + g_source_remove (priv->source_id); + priv->source_id = 0; + } + + g_signal_emit (timeline, signals [FINISHED], 0); + return FALSE; + } else { + ev_timeline_rewind (timeline); + } + } + + GDK_THREADS_LEAVE (); + + return TRUE; +} + +static void +ev_timeline_real_start (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + priv = EV_TIMELINE_GET_PRIV (timeline); + + if (!priv->source_id) { + if (priv->timer) + g_timer_continue (priv->timer); + else + priv->timer = g_timer_new (); + + /* sanity check */ + g_assert (priv->fps > 0); + + g_signal_emit (timeline, signals [STARTED], 0); + + priv->source_id = g_timeout_add (FRAME_INTERVAL (priv->fps), + (GSourceFunc) ev_timeline_run_frame, + timeline); + } +} + +static void +ev_timeline_class_init (EvTimelineClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->set_property = ev_timeline_set_property; + object_class->get_property = ev_timeline_get_property; + object_class->finalize = ev_timeline_finalize; + + class->start = ev_timeline_real_start; + + g_object_class_install_property (object_class, + PROP_FPS, + g_param_spec_uint ("fps", + "FPS", + "Frames per second for the timeline", + 1, + G_MAXUINT, + DEFAULT_FPS, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DURATION, + g_param_spec_uint ("duration", + "Animation Duration", + "Animation Duration", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_LOOP, + g_param_spec_boolean ("loop", + "Loop", + "Whether the timeline loops or not", + FALSE, + G_PARAM_READWRITE)); + signals[STARTED] = + g_signal_new ("started", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvTimelineClass, started), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[PAUSED] = + g_signal_new ("paused", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvTimelineClass, paused), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[FINISHED] = + g_signal_new ("finished", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvTimelineClass, finished), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals[FRAME] = + g_signal_new ("frame", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvTimelineClass, frame), + NULL, NULL, + g_cclosure_marshal_VOID__DOUBLE, + G_TYPE_NONE, 1, + G_TYPE_DOUBLE); + + g_type_class_add_private (class, sizeof (EvTimelinePriv)); +} + +EvTimeline * +ev_timeline_new (guint duration) +{ + return g_object_new (EV_TYPE_TIMELINE, + "duration", duration, + NULL); +} + +void +ev_timeline_start (EvTimeline *timeline) +{ + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + EV_TIMELINE_GET_CLASS (timeline)->start (timeline); +} + +void +ev_timeline_pause (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + if (priv->source_id) { + g_source_remove (priv->source_id); + priv->source_id = 0; + g_timer_stop (priv->timer); + g_signal_emit (timeline, signals [PAUSED], 0); + } +} + +void +ev_timeline_rewind (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + /* destroy and re-create timer if neccesary */ + if (priv->timer) { + g_timer_destroy (priv->timer); + + if (ev_timeline_is_running (timeline)) + priv->timer = g_timer_new (); + else + priv->timer = NULL; + } +} + +gboolean +ev_timeline_is_running (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_val_if_fail (EV_IS_TIMELINE (timeline), FALSE); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + return (priv->source_id != 0); +} + +guint +ev_timeline_get_fps (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_val_if_fail (EV_IS_TIMELINE (timeline), 1); + + priv = EV_TIMELINE_GET_PRIV (timeline); + return priv->fps; +} + +void +ev_timeline_set_fps (EvTimeline *timeline, + guint fps) +{ + EvTimelinePriv *priv; + + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + priv->fps = fps; + + if (ev_timeline_is_running (timeline)) { + g_source_remove (priv->source_id); + priv->source_id = g_timeout_add (FRAME_INTERVAL (priv->fps), + (GSourceFunc) ev_timeline_run_frame, + timeline); + } + + g_object_notify (G_OBJECT (timeline), "fps"); +} + +gboolean +ev_timeline_get_loop (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_val_if_fail (EV_IS_TIMELINE (timeline), FALSE); + + priv = EV_TIMELINE_GET_PRIV (timeline); + return priv->loop; +} + +void +ev_timeline_set_loop (EvTimeline *timeline, + gboolean loop) +{ + EvTimelinePriv *priv; + + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + priv = EV_TIMELINE_GET_PRIV (timeline); + priv->loop = loop; + + g_object_notify (G_OBJECT (timeline), "loop"); +} + +void +ev_timeline_set_duration (EvTimeline *timeline, + guint duration) +{ + EvTimelinePriv *priv; + + g_return_if_fail (EV_IS_TIMELINE (timeline)); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + priv->duration = duration; + + g_object_notify (G_OBJECT (timeline), "duration"); +} + +guint +ev_timeline_get_duration (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + + g_return_val_if_fail (EV_IS_TIMELINE (timeline), 0); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + return priv->duration; +} + +gdouble +ev_timeline_get_progress (EvTimeline *timeline) +{ + EvTimelinePriv *priv; + gdouble progress; + guint elapsed_time; + + g_return_val_if_fail (EV_IS_TIMELINE (timeline), 0.0); + + priv = EV_TIMELINE_GET_PRIV (timeline); + + if (!priv->timer) + return 0.; + + elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); + progress = (gdouble) elapsed_time / priv->duration; + + return CLAMP (progress, 0., 1.); +} diff --git a/libview/ev-timeline.h b/libview/ev-timeline.h new file mode 100644 index 00000000..e7f9d625 --- /dev/null +++ b/libview/ev-timeline.h @@ -0,0 +1,90 @@ +/* ev-timeline.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef __EV_TIMELINE_H__ +#define __EV_TIMELINE_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_TIMELINE (ev_timeline_get_type ()) +#define EV_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_TIMELINE, EvTimeline)) +#define EV_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_TIMELINE, EvTimelineClass)) +#define EV_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_TIMELINE)) +#define EV_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_TIMELINE)) +#define EV_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_TIMELINE, EvTimelineClass)) + +typedef struct EvTimeline EvTimeline; +typedef struct EvTimelineClass EvTimelineClass; + +struct EvTimeline { + GObject parent_instance; +}; + +struct EvTimelineClass { + GObjectClass parent_class; + + /* vmethods */ + void (* start) (EvTimeline *timeline); + + /* signals */ + void (* started) (EvTimeline *timeline); + void (* finished) (EvTimeline *timeline); + void (* paused) (EvTimeline *timeline); + + void (* frame) (EvTimeline *timeline, + gdouble progress); +}; + + +GType ev_timeline_get_type (void) G_GNUC_CONST; + +EvTimeline *ev_timeline_new (guint duration); + +void ev_timeline_start (EvTimeline *timeline); +void ev_timeline_pause (EvTimeline *timeline); +void ev_timeline_rewind (EvTimeline *timeline); + +gboolean ev_timeline_is_running (EvTimeline *timeline); + +guint ev_timeline_get_fps (EvTimeline *timeline); +void ev_timeline_set_fps (EvTimeline *timeline, + guint fps); + +gboolean ev_timeline_get_loop (EvTimeline *timeline); +void ev_timeline_set_loop (EvTimeline *timeline, + gboolean loop); + +guint ev_timeline_get_duration (EvTimeline *timeline); +void ev_timeline_set_duration (EvTimeline *timeline, + guint duration); + +gdouble ev_timeline_get_progress (EvTimeline *timeline); + + +G_END_DECLS + +#endif /* __EV_TIMELINE_H__ */ diff --git a/libview/ev-transition-animation.c b/libview/ev-transition-animation.c new file mode 100644 index 00000000..a767019b --- /dev/null +++ b/libview/ev-transition-animation.c @@ -0,0 +1,676 @@ +/* ev-transition-animation.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <cairo.h> +#include <gdk/gdk.h> +#include "ev-transition-animation.h" +#include "ev-timeline.h" + +#define EV_TRANSITION_ANIMATION_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_TRANSITION_ANIMATION, EvTransitionAnimationPriv)) +#define N_BLINDS 6 + +typedef struct EvTransitionAnimationPriv EvTransitionAnimationPriv; + +struct EvTransitionAnimationPriv { + EvTransitionEffect *effect; + cairo_surface_t *origin_surface; + cairo_surface_t *dest_surface; +}; + +enum { + PROP_0, + PROP_EFFECT, + PROP_ORIGIN_SURFACE, + PROP_DEST_SURFACE +}; + + +G_DEFINE_TYPE (EvTransitionAnimation, ev_transition_animation, EV_TYPE_TIMELINE) + + +static void +ev_transition_animation_init (EvTransitionAnimation *animation) +{ +} + +static void +ev_transition_animation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvTransitionAnimationPriv *priv; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_EFFECT: + if (priv->effect) + g_object_unref (priv->effect); + + priv->effect = g_value_dup_object (value); + break; + case PROP_ORIGIN_SURFACE: + ev_transition_animation_set_origin_surface (EV_TRANSITION_ANIMATION (object), + g_value_get_pointer (value)); + break; + case PROP_DEST_SURFACE: + ev_transition_animation_set_dest_surface (EV_TRANSITION_ANIMATION (object), + g_value_get_pointer (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_transition_animation_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvTransitionAnimationPriv *priv; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_EFFECT: + g_value_set_object (value, priv->effect); + break; + case PROP_ORIGIN_SURFACE: + g_value_set_pointer (value, priv->origin_surface); + break; + case PROP_DEST_SURFACE: + g_value_set_pointer (value, priv->dest_surface); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_transition_animation_finalize (GObject *object) +{ + EvTransitionAnimationPriv *priv; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (object); + + if (priv->effect) + g_object_unref (priv->effect); + + if (priv->origin_surface) + cairo_surface_destroy (priv->origin_surface); + + if (priv->dest_surface) + cairo_surface_destroy (priv->dest_surface); + + G_OBJECT_CLASS (ev_transition_animation_parent_class)->finalize (object); +} + +static GObject * +ev_transition_animation_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvTransitionAnimationPriv *priv; + EvTransitionEffect *effect; + gint duration; + + object = G_OBJECT_CLASS (ev_transition_animation_parent_class)->constructor (type, + n_construct_properties, + construct_params); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (object); + effect = priv->effect; + + g_object_get (effect, "duration", &duration, NULL); + ev_timeline_set_duration (EV_TIMELINE (object), duration * 1000); + + return object; +} + +static void +ev_transition_animation_class_init (EvTransitionAnimationClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = ev_transition_animation_set_property; + object_class->get_property = ev_transition_animation_get_property; + object_class->finalize = ev_transition_animation_finalize; + object_class->constructor = ev_transition_animation_constructor; + + g_object_class_install_property (object_class, + PROP_EFFECT, + g_param_spec_object ("effect", + "Effect", + "Transition effect description", + EV_TYPE_TRANSITION_EFFECT, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_ORIGIN_SURFACE, + g_param_spec_pointer ("origin-surface", + "Origin surface", + "Cairo surface from which the animation will happen", + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DEST_SURFACE, + g_param_spec_pointer ("dest-surface", + "Destination surface", + "Cairo surface to which the animation will happen", + G_PARAM_READWRITE)); + + g_type_class_add_private (klass, sizeof (EvTransitionAnimationPriv)); +} + +static void +paint_surface (cairo_t *cr, + cairo_surface_t *surface, + gdouble x_offset, + gdouble y_offset, + gdouble alpha, + GdkRectangle page_area) +{ + cairo_save (cr); + + gdk_cairo_rectangle (cr, &page_area); + cairo_clip (cr); + cairo_surface_set_device_offset (surface, x_offset, y_offset); + cairo_set_source_surface (cr, surface, 0, 0); + + if (alpha == 1.) + cairo_paint (cr); + else + cairo_paint_with_alpha (cr, alpha); + + cairo_restore (cr); +} + +/* animations */ +static void +ev_transition_animation_split (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + EvTransitionEffectAlignment alignment; + EvTransitionEffectDirection direction; + gint width, height; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "alignment", &alignment, + "direction", &direction, + NULL); + + if (direction == EV_TRANSITION_DIRECTION_INWARD) { + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + + if (alignment == EV_TRANSITION_ALIGNMENT_HORIZONTAL) { + cairo_rectangle (cr, + 0, + height * progress / 2, + width, + height * (1 - progress)); + } else { + cairo_rectangle (cr, + width * progress / 2, + 0, + width * (1 - progress), + height); + } + + cairo_clip (cr); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + } else { + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + + if (alignment == EV_TRANSITION_ALIGNMENT_HORIZONTAL) { + cairo_rectangle (cr, + 0, + (height / 2) - (height * progress / 2), + width, + height * progress); + } else { + cairo_rectangle (cr, + (width / 2) - (width * progress / 2), + 0, + width * progress, + height); + } + + cairo_clip (cr); + + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + } +} + +static void +ev_transition_animation_blinds (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + EvTransitionEffectAlignment alignment; + gint width, height, i; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "alignment", &alignment, + NULL); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + + for (i = 0; i < N_BLINDS; i++) { + cairo_save (cr); + + if (alignment == EV_TRANSITION_ALIGNMENT_HORIZONTAL) { + cairo_rectangle (cr, + 0, + height / N_BLINDS * i, + width, + height / N_BLINDS * progress); + } else { + cairo_rectangle (cr, + width / N_BLINDS * i, + 0, + width / N_BLINDS * progress, + height); + } + + cairo_clip (cr); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + cairo_restore (cr); + } +} + +static void +ev_transition_animation_box (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + EvTransitionEffectDirection direction; + gint width, height; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "direction", &direction, + NULL); + + if (direction == EV_TRANSITION_DIRECTION_INWARD) { + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + + cairo_rectangle (cr, + width * progress / 2, + height * progress / 2, + width * (1 - progress), + height * (1 - progress)); + cairo_clip (cr); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + } else { + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + + cairo_rectangle (cr, + (width / 2) - (width * progress / 2), + (height / 2) - (height * progress / 2), + width * progress, + height * progress); + cairo_clip (cr); + + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + } +} + +static void +ev_transition_animation_wipe (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + gint width, height; + gint angle; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "angle", &angle, + NULL); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + + if (angle == 0) { + /* left to right */ + cairo_rectangle (cr, + 0, 0, + width * progress, + height); + } else if (angle <= 90) { + /* bottom to top */ + cairo_rectangle (cr, + 0, + height * (1 - progress), + width, + height * progress); + } else if (angle <= 180) { + /* right to left */ + cairo_rectangle (cr, + width * (1 - progress), + 0, + width * progress, + height); + } else if (angle <= 270) { + /* top to bottom */ + cairo_rectangle (cr, + 0, 0, + width, + height * progress); + } + + cairo_clip (cr); + + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); +} + +static void +ev_transition_animation_dissolve (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1 - progress, page_area); +} + +static void +ev_transition_animation_push (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + gint width, height; + gint angle; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "angle", &angle, + NULL); + + if (angle == 0) { + /* left to right */ + paint_surface (cr, priv->origin_surface, - (width * progress), 0, 1., page_area); + paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 1., page_area); + } else { + /* top to bottom */ + paint_surface (cr, priv->origin_surface, 0, - (height * progress), 1., page_area); + paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 1., page_area); + } +} + +static void +ev_transition_animation_cover (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + gint width, height; + gint angle; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "angle", &angle, + NULL); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + + if (angle == 0) { + /* left to right */ + paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 1., page_area); + } else { + /* top to bottom */ + paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 1., page_area); + } +} + +static void +ev_transition_animation_uncover (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + gint width, height; + gint angle; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + width = page_area.width; + height = page_area.height; + + g_object_get (effect, + "angle", &angle, + NULL); + + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + + if (angle == 0) { + /* left to right */ + paint_surface (cr, priv->origin_surface, - (width * progress), 0, 1., page_area); + } else { + /* top to bottom */ + paint_surface (cr, priv->origin_surface, 0, - (height * progress), 1., page_area); + } +} + +static void +ev_transition_animation_fade (cairo_t *cr, + EvTransitionAnimation *animation, + EvTransitionEffect *effect, + gdouble progress, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + paint_surface (cr, priv->dest_surface, 0, 0, progress, page_area); +} + +void +ev_transition_animation_paint (EvTransitionAnimation *animation, + cairo_t *cr, + GdkRectangle page_area) +{ + EvTransitionAnimationPriv *priv; + EvTransitionEffectType type; + gdouble progress; + + g_return_if_fail (EV_IS_TRANSITION_ANIMATION (animation)); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + if (!priv->dest_surface) { + /* animation is still not ready, paint the origin surface */ + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); + return; + } + + g_object_get (priv->effect, "type", &type, NULL); + progress = ev_timeline_get_progress (EV_TIMELINE (animation)); + + switch (type) { + case EV_TRANSITION_EFFECT_REPLACE: + /* just paint the destination slide */ + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + break; + case EV_TRANSITION_EFFECT_SPLIT: + ev_transition_animation_split (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_BLINDS: + ev_transition_animation_blinds (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_BOX: + ev_transition_animation_box (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_WIPE: + ev_transition_animation_wipe (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_DISSOLVE: + ev_transition_animation_dissolve (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_PUSH: + ev_transition_animation_push (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_COVER: + ev_transition_animation_cover (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_UNCOVER: + ev_transition_animation_uncover (cr, animation, priv->effect, progress, page_area); + break; + case EV_TRANSITION_EFFECT_FADE: + ev_transition_animation_fade (cr, animation, priv->effect, progress, page_area); + break; + default: { + GEnumValue *enum_value; + + enum_value = g_enum_get_value (g_type_class_peek (EV_TYPE_TRANSITION_EFFECT_TYPE), type); + + g_warning ("Unimplemented transition animation: '%s', " + "please post a bug report in Evince bugzilla " + "(http://bugzilla.mate.org) with a testcase.", + enum_value->value_nick); + + /* just paint the destination slide */ + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); + } + } +} + +EvTransitionAnimation * +ev_transition_animation_new (EvTransitionEffect *effect) +{ + g_return_val_if_fail (EV_IS_TRANSITION_EFFECT (effect), NULL); + + return g_object_new (EV_TYPE_TRANSITION_ANIMATION, + "effect", effect, + NULL); +} + +void +ev_transition_animation_set_origin_surface (EvTransitionAnimation *animation, + cairo_surface_t *origin_surface) +{ + EvTransitionAnimationPriv *priv; + cairo_surface_t *surface; + + g_return_if_fail (EV_IS_TRANSITION_ANIMATION (animation)); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + if (priv->origin_surface == origin_surface) + return; + + surface = cairo_surface_reference (origin_surface); + + if (priv->origin_surface) + cairo_surface_destroy (priv->origin_surface); + + priv->origin_surface = surface; + g_object_notify (G_OBJECT (animation), "origin-surface"); + + if (priv->origin_surface && priv->dest_surface) + ev_timeline_start (EV_TIMELINE (animation)); +} + +void +ev_transition_animation_set_dest_surface (EvTransitionAnimation *animation, + cairo_surface_t *dest_surface) +{ + EvTransitionAnimationPriv *priv; + cairo_surface_t *surface; + + g_return_if_fail (EV_IS_TRANSITION_ANIMATION (animation)); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + if (priv->dest_surface == dest_surface) + return; + + surface = cairo_surface_reference (dest_surface); + + if (priv->dest_surface) + cairo_surface_destroy (priv->dest_surface); + + priv->dest_surface = surface; + g_object_notify (G_OBJECT (animation), "dest-surface"); + + if (priv->origin_surface && priv->dest_surface) + ev_timeline_start (EV_TIMELINE (animation)); +} + +gboolean +ev_transition_animation_ready (EvTransitionAnimation *animation) +{ + EvTransitionAnimationPriv *priv; + + g_return_val_if_fail (EV_IS_TRANSITION_ANIMATION (animation), FALSE); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + return (priv->origin_surface != NULL); +} diff --git a/libview/ev-transition-animation.h b/libview/ev-transition-animation.h new file mode 100644 index 00000000..3d17f28d --- /dev/null +++ b/libview/ev-transition-animation.h @@ -0,0 +1,73 @@ +/* ev-transition-animation.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef __EV_TRANSITION_ANIMATION_H__ +#define __EV_TRANSITION_ANIMATION_H__ + +#include <evince-document.h> +#include "ev-timeline.h" +#include "ev-transition-effect.h" + +G_BEGIN_DECLS + +#define EV_TYPE_TRANSITION_ANIMATION (ev_transition_animation_get_type ()) +#define EV_TRANSITION_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_TRANSITION_ANIMATION, EvTransitionAnimation)) +#define EV_TRANSITION_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_TRANSITION_ANIMATION, EvTransitionAnimationClass)) +#define EV_IS_TRANSITION_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_TRANSITION_ANIMATION)) +#define EV_IS_TRANSITION_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_TRANSITION_ANIMATION)) +#define EV_TRANSITION_ANIMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_TRANSITION_ANIMATION, EvTransitionAnimationClass)) + +typedef struct EvTransitionAnimation EvTransitionAnimation; +typedef struct EvTransitionAnimationClass EvTransitionAnimationClass; + +struct EvTransitionAnimation { + EvTimeline parent_instance; +}; + +struct EvTransitionAnimationClass { + EvTimelineClass parent_class; +}; + + +GType ev_transition_animation_get_type (void) G_GNUC_CONST; + +EvTransitionAnimation * ev_transition_animation_new (EvTransitionEffect *effect); + +void ev_transition_animation_set_origin_surface (EvTransitionAnimation *animation, + cairo_surface_t *origin_surface); +void ev_transition_animation_set_dest_surface (EvTransitionAnimation *animation, + cairo_surface_t *origin_surface); +gint ev_transition_animation_get_page_from (EvTransitionAnimation *animation); +gint ev_transition_animation_get_page_to (EvTransitionAnimation *animation); + +void ev_transition_animation_paint (EvTransitionAnimation *animation, + cairo_t *cr, + GdkRectangle page_area); +gboolean ev_transition_animation_ready (EvTransitionAnimation *animation); + + +G_END_DECLS + +#endif /* __EV_TRANSITION_ANIMATION_H__ */ diff --git a/libview/ev-view-accessible.c b/libview/ev-view-accessible.c new file mode 100644 index 00000000..9b41c919 --- /dev/null +++ b/libview/ev-view-accessible.c @@ -0,0 +1,911 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <math.h> +#include <config.h> +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> +#include <libgail-util/gail-util.h> + +#include "ev-selection.h" +#include "ev-page-cache.h" +#include "ev-view-accessible.h" +#include "ev-view-private.h" + +#define EV_TYPE_VIEW_ACCESSIBLE (ev_view_accessible_get_type ()) +#define EV_VIEW_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_VIEW_ACCESSIBLE, EvViewAccessible)) +#define EV_IS_VIEW_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_VIEW_ACCESSIBLE)) + +static GType ev_view_accessible_get_type (void); + +enum { + ACTION_SCROLL_UP, + ACTION_SCROLL_DOWN, + LAST_ACTION +}; + +static const gchar *const ev_view_accessible_action_names[] = +{ + N_("Scroll Up"), + N_("Scroll Down"), + NULL +}; + +static const gchar *const ev_view_accessible_action_descriptions[] = +{ + N_("Scroll View Up"), + N_("Scroll View Down"), + NULL +}; + +typedef struct { + /* Action */ + gchar *action_descriptions[LAST_ACTION]; + guint action_idle_handler; + GtkScrollType idle_scroll; + GtkTextBuffer *buffer; + guint current_page; +} EvViewAccessiblePriv; + +typedef GtkAccessibleClass EvViewAccessibleClass; +typedef GtkAccessible EvViewAccessible; + +#define EV_VIEW_ACCESSIBLE_GET_PRIVATE(inst) (G_TYPE_INSTANCE_GET_PRIVATE ((inst), EV_TYPE_VIEW_ACCESSIBLE, EvViewAccessiblePriv)) + +static void +ev_view_accessible_finalize (GObject *object) +{ + EvViewAccessiblePriv *priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (object); + int i; + + if (priv->action_idle_handler) + g_source_remove (priv->action_idle_handler); + for (i = 0; i < LAST_ACTION; i++) + g_free (priv->action_descriptions [i]); + if (priv->buffer) + g_object_unref (priv->buffer); + +} + +static void ev_view_accessible_class_init (EvViewAccessibleClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_view_accessible_finalize; + + g_type_class_add_private (klass, sizeof (EvViewAccessiblePriv)); +} + +static GtkTextBuffer * +ev_view_accessible_get_text_buffer (EvViewAccessible *accessible, EvView *view) +{ + EvPageCache *page_cache; + const gchar *retval = NULL; + EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (accessible); + + page_cache = view->page_cache; + if (!page_cache) { + return NULL; + } + + if (view->current_page == priv->current_page && priv->buffer) { + return priv->buffer; + } + + priv->current_page = view->current_page; + + if (!priv->buffer) { + priv->buffer = gtk_text_buffer_new (NULL); + } + + retval = ev_page_cache_get_text (page_cache, view->current_page); + gtk_text_buffer_set_text (priv->buffer, retval, -1); + + return priv->buffer; +} + +static gchar* +ev_view_accessible_get_text (AtkText *text, + gint start_pos, + gint end_pos) +{ + GtkWidget *widget; + GtkTextIter start, end; + GtkTextBuffer *buffer; + gchar *retval; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos); + gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos); + retval = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + + return retval; +} + +static gunichar +ev_view_accessible_get_character_at_offset (AtkText *text, + gint offset) +{ + GtkWidget *widget; + GtkTextIter start, end; + GtkTextBuffer *buffer; + gchar *string; + gunichar unichar; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return '\0'; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return '\0'; + + if (offset >= gtk_text_buffer_get_char_count (buffer)) + return '\0'; + + gtk_text_buffer_get_iter_at_offset (buffer, &start, offset); + end = start; + gtk_text_iter_forward_char (&end); + string = gtk_text_buffer_get_slice (buffer, &start, &end, FALSE); + unichar = g_utf8_get_char (string); + g_free(string); + + return unichar; +} + +static gchar* +ev_view_accessible_get_text_before_offset (AtkText *text, + gint offset, + AtkTextBoundary boundary_type, + gint *start_offset, + gint *end_offset) +{ + GtkWidget *widget; + gpointer layout = NULL; + GailTextUtil *gail_text = NULL; + gchar *retval = NULL; + GtkTextBuffer *buffer; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + gail_text = gail_text_util_new (); + gail_text_util_buffer_setup (gail_text, buffer); + retval = gail_text_util_get_text (gail_text, layout, + GAIL_BEFORE_OFFSET, boundary_type, + offset, start_offset, end_offset); + g_object_unref (gail_text); + + return retval; +} + +static gchar* +ev_view_accessible_get_text_at_offset (AtkText *text, + gint offset, + AtkTextBoundary boundary_type, + gint *start_offset, + gint *end_offset) +{ + GtkWidget *widget; + gpointer layout = NULL; + GailTextUtil *gail_text = NULL; + gchar *retval = NULL; + GtkTextBuffer *buffer; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + gail_text = gail_text_util_new (); + gail_text_util_buffer_setup (gail_text, buffer); + retval = gail_text_util_get_text (gail_text, layout, + GAIL_AT_OFFSET, boundary_type, + offset, start_offset, end_offset); + g_object_unref (gail_text); + + return retval; +} + +static gchar* +ev_view_accessible_get_text_after_offset (AtkText *text, + gint offset, + AtkTextBoundary boundary_type, + gint *start_offset, + gint *end_offset) +{ + GtkWidget *widget; + gpointer layout = NULL; + GailTextUtil *gail_text = NULL; + gchar *retval = NULL; + GtkTextBuffer *buffer; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + gail_text = gail_text_util_new (); + gail_text_util_buffer_setup (gail_text, buffer); + retval = gail_text_util_get_text (gail_text, layout, + GAIL_AFTER_OFFSET, boundary_type, + offset, start_offset, end_offset); + g_object_unref (gail_text); + + return retval; +} + +static gint +ev_view_accessible_get_character_count (AtkText *text) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + gint retval; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return 0; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return 0; + + retval = gtk_text_buffer_get_char_count (buffer); + + return retval; +} + +static gint +ev_view_accessible_get_caret_offset (AtkText *text) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextMark *cursor_mark; + GtkTextIter cursor_itr; + gint retval; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return 0; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return 0; + + cursor_mark = gtk_text_buffer_get_insert (buffer); + gtk_text_buffer_get_iter_at_mark (buffer, &cursor_itr, cursor_mark); + retval = gtk_text_iter_get_offset (&cursor_itr); + + return retval; +} + +static gboolean +ev_view_accessible_set_caret_offset (AtkText *text, gint offset) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter pos_itr; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return FALSE; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return FALSE; + + gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, offset); + gtk_text_buffer_place_cursor (buffer, &pos_itr); + + return TRUE; +} + +static AtkAttributeSet* +ev_view_accessible_get_run_attributes (AtkText *text, + gint offset, + gint *start_offset, + gint *end_offset) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + AtkAttributeSet *retval; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + retval = gail_misc_buffer_get_run_attributes (buffer, offset, + start_offset, end_offset); + + return retval; +} + +static AtkAttributeSet* +ev_view_accessible_get_default_attributes (AtkText *text) +{ + GtkWidget *widget; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + return NULL; +} + +static void +ev_view_accessible_get_character_extents (AtkText *text, + gint offset, + gint *x, + gint *y, + gint *width, + gint *height, + AtkCoordType coords) +{ + GtkWidget *widget, *toplevel; + EvRectangle *areas = NULL; + EvRectangle *rect = NULL; + guint n_areas = 0; + EvPageCache *page_cache; + gint x_widget, y_widget, x_window, y_window; + gdouble scale; + GtkBorder border; + GdkRectangle page_area; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return; + + page_cache = EV_VIEW (widget)->page_cache; + if (!page_cache) + return; + + ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->current_page, + &page_area, &border); + + scale = EV_VIEW (widget)->scale; + ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->current_page, &areas, &n_areas); + if (!areas) + return; + + if (offset > n_areas) + return; + + rect = areas + offset; + *x = (int)(rect->x1 * scale); + *y = (int)(rect->y1 * scale); + + *width = (int)(fabs (rect->x2 - rect->x1) * scale); + *height = (int)(fabs (rect->y2 - rect->y1) * scale); + + toplevel = gtk_widget_get_toplevel (widget); + gtk_widget_translate_coordinates (widget, toplevel, 0, 0, &x_widget, &y_widget); + *x += x_widget; + *y += y_widget; + + if (coords == ATK_XY_SCREEN) { + gdk_window_get_origin (gtk_widget_get_window (toplevel), &x_window, &y_window); + *x += x_window; + *y += y_window; + } + + *x -= EV_VIEW (widget)->scroll_x; + *y -= EV_VIEW (widget)->scroll_y; + + *x += page_area.x; + *y += page_area.y; +} + +static gint +ev_view_accessible_get_offset_at_point (AtkText *text, + gint x, + gint y, + AtkCoordType coords) +{ + GtkWidget *widget, *toplevel; + EvRectangle *areas = NULL; + EvRectangle *rect = NULL; + guint n_areas = 0; + guint i = 0; + EvPageCache *page_cache; + gint x_window, y_window, x_widget, y_widget; + gint offset=-1, rx, ry; + gdouble scale; + GtkBorder border; + GdkRectangle page_area; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return -1; + + page_cache = EV_VIEW (widget)->page_cache; + if (!page_cache) + return -1; + + ev_view_get_page_extents (EV_VIEW (widget), EV_VIEW (widget)->current_page, + &page_area, &border); + + scale = EV_VIEW (widget)->scale; + ev_page_cache_get_text_layout (page_cache, EV_VIEW (widget)->current_page, &areas, &n_areas); + if (!areas) + return -1; + + rx = x; + ry = y; + + rx -= page_area.x; + ry -= page_area.y; + + rx += EV_VIEW (widget)->scroll_x; + ry += EV_VIEW (widget)->scroll_y; + + toplevel = gtk_widget_get_toplevel (widget); + gtk_widget_translate_coordinates (widget, toplevel, 0, 0, &x_widget, &y_widget); + rx -= x_widget; + ry -= y_widget; + + if (coords == ATK_XY_SCREEN) { + gdk_window_get_origin (gtk_widget_get_window (toplevel), &x_window, &y_window); + rx -= x_window; + ry -= y_window; + } + + rx /= scale; + ry /= scale; + + for (i = 0; i < n_areas; i++) { + rect = areas + i; + if (rx >= rect->x1 && rx <= rect->x2 && + ry >= rect->y1 && ry <= rect->y2) + offset = i; + } + + return offset; +} + +static gint +ev_view_accessible_get_n_selections (AtkText *text) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter start, end; + gint select_start, select_end; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return -1; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return -1; + + gtk_text_buffer_get_selection_bounds (buffer, &start, &end); + select_start = gtk_text_iter_get_offset (&start); + select_end = gtk_text_iter_get_offset (&end); + + if (select_start != select_end) + return 1; + else + return 0; +} + +static gchar* +ev_view_accessible_get_selection (AtkText *text, + gint selection_num, + gint *start_pos, + gint *end_pos) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter start, end; + gchar *retval = NULL; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return NULL; + + if (selection_num != 0) + return NULL; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return NULL; + + gtk_text_buffer_get_selection_bounds (buffer, &start, &end); + *start_pos = gtk_text_iter_get_offset (&start); + *end_pos = gtk_text_iter_get_offset (&end); + + if (*start_pos != *end_pos) + retval = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + + return retval; +} + +static gboolean +ev_view_accessible_add_selection (AtkText *text, + gint start_pos, + gint end_pos) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter pos_itr; + GtkTextIter start, end; + gint select_start, select_end; + gboolean retval = FALSE; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return FALSE; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return FALSE; + + gtk_text_buffer_get_selection_bounds (buffer, &start, &end); + select_start = gtk_text_iter_get_offset (&start); + select_end = gtk_text_iter_get_offset (&end); + + /* If there is already a selection, then don't allow + * another to be added + */ + if (select_start == select_end) { + gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, start_pos); + gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &pos_itr); + gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, end_pos); + gtk_text_buffer_move_mark_by_name (buffer, "insert", &pos_itr); + + retval = TRUE; + } + + return retval; +} + +static gboolean +ev_view_accessible_remove_selection (AtkText *text, + gint selection_num) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextMark *cursor_mark; + GtkTextIter cursor_itr; + GtkTextIter start, end; + gint select_start, select_end; + gboolean retval = FALSE; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return FALSE; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return FALSE; + + gtk_text_buffer_get_selection_bounds(buffer, &start, &end); + select_start = gtk_text_iter_get_offset(&start); + select_end = gtk_text_iter_get_offset(&end); + + if (select_start != select_end) { + /* Setting the start & end of the selected region + * to the caret position turns off the selection. + */ + cursor_mark = gtk_text_buffer_get_insert (buffer); + gtk_text_buffer_get_iter_at_mark (buffer, &cursor_itr, cursor_mark); + gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &cursor_itr); + + retval = TRUE; + } + + return retval; +} + +static gboolean +ev_view_accessible_set_selection (AtkText *text, + gint selection_num, + gint start_pos, + gint end_pos) +{ + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter pos_itr; + GtkTextIter start, end; + gint select_start, select_end; + gboolean retval = FALSE; + + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text)); + if (widget == NULL) + /* State is defunct */ + return FALSE; + + buffer = ev_view_accessible_get_text_buffer (EV_VIEW_ACCESSIBLE (text), EV_VIEW (widget)); + if (!buffer) + return FALSE; + + gtk_text_buffer_get_selection_bounds(buffer, &start, &end); + select_start = gtk_text_iter_get_offset(&start); + select_end = gtk_text_iter_get_offset(&end); + + if (select_start != select_end) { + gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, start_pos); + gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &pos_itr); + gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, end_pos); + gtk_text_buffer_move_mark_by_name (buffer, "insert", &pos_itr); + + retval = TRUE; + } + + return retval; +} + +static void ev_view_accessible_text_iface_init (AtkTextIface * iface) +{ + g_return_if_fail (iface != NULL); + + iface->get_text = ev_view_accessible_get_text; + iface->get_character_at_offset = ev_view_accessible_get_character_at_offset; + iface->get_text_before_offset = ev_view_accessible_get_text_before_offset; + iface->get_text_at_offset = ev_view_accessible_get_text_at_offset; + iface->get_text_after_offset = ev_view_accessible_get_text_after_offset; + iface->get_caret_offset = ev_view_accessible_get_caret_offset; + iface->set_caret_offset = ev_view_accessible_set_caret_offset; + iface->get_character_count = ev_view_accessible_get_character_count; + iface->get_n_selections = ev_view_accessible_get_n_selections; + iface->get_selection = ev_view_accessible_get_selection; + iface->add_selection = ev_view_accessible_add_selection; + iface->remove_selection = ev_view_accessible_remove_selection; + iface->set_selection = ev_view_accessible_set_selection; + iface->get_run_attributes = ev_view_accessible_get_run_attributes; + iface->get_default_attributes = ev_view_accessible_get_default_attributes; + iface->get_character_extents = ev_view_accessible_get_character_extents; + iface->get_offset_at_point = ev_view_accessible_get_offset_at_point; + return; +} + +static gboolean +ev_view_accessible_idle_do_action (gpointer data) +{ + EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (data); + + ev_view_scroll (EV_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (data))), + priv->idle_scroll, + FALSE); + priv->action_idle_handler = 0; + return FALSE; +} + +static gboolean +ev_view_accessible_action_do_action (AtkAction *action, + gint i) +{ + EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (action); + + if (gtk_accessible_get_widget (GTK_ACCESSIBLE (action)) == NULL) + return FALSE; + + if (priv->action_idle_handler) + return FALSE; + + switch (i) { + case ACTION_SCROLL_UP: + priv->idle_scroll = GTK_SCROLL_PAGE_BACKWARD; + break; + case ACTION_SCROLL_DOWN: + priv->idle_scroll = GTK_SCROLL_PAGE_FORWARD; + break; + default: + return FALSE; + } + priv->action_idle_handler = g_idle_add (ev_view_accessible_idle_do_action, + action); + return TRUE; +} + +static gint +ev_view_accessible_action_get_n_actions (AtkAction *action) +{ + return LAST_ACTION; +} + +static const gchar * +ev_view_accessible_action_get_description (AtkAction *action, + gint i) +{ + EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (action); + + if (i < 0 || i >= LAST_ACTION) + return NULL; + + if (priv->action_descriptions[i]) + return priv->action_descriptions[i]; + else + return ev_view_accessible_action_descriptions[i]; +} + +static const gchar * +ev_view_accessible_action_get_name (AtkAction *action, + gint i) +{ + if (i < 0 || i >= LAST_ACTION) + return NULL; + + return ev_view_accessible_action_names[i]; +} + +static gboolean +ev_view_accessible_action_set_description (AtkAction *action, + gint i, + const gchar *description) +{ + EvViewAccessiblePriv* priv = EV_VIEW_ACCESSIBLE_GET_PRIVATE (action); + gchar *old_description; + + if (i < 0 || i >= LAST_ACTION) + return FALSE; + + old_description = priv->action_descriptions[i]; + priv->action_descriptions[i] = g_strdup (description); + g_free (old_description); + + return TRUE; +} + +static void ev_view_accessible_action_iface_init (AtkActionIface * iface) +{ + iface->do_action = ev_view_accessible_action_do_action; + iface->get_n_actions = ev_view_accessible_action_get_n_actions; + iface->get_description = ev_view_accessible_action_get_description; + iface->get_name = ev_view_accessible_action_get_name; + iface->set_description = ev_view_accessible_action_set_description; +} + +GType ev_view_accessible_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) { + GTypeInfo tinfo = { + 0, /* class size */ + (GBaseInitFunc) NULL, /* base init */ + (GBaseFinalizeFunc) NULL, /* base finalize */ + (GClassInitFunc) ev_view_accessible_class_init, /* class init */ + (GClassFinalizeFunc) NULL, /* class finalize */ + NULL, /* class data */ + 0, /* instance size */ + 0, /* nb preallocs */ + (GInstanceInitFunc) NULL, /* instance init */ + NULL /* value table */ + }; + + const GInterfaceInfo atk_text_info = { + (GInterfaceInitFunc) + ev_view_accessible_text_iface_init, + (GInterfaceFinalizeFunc) NULL, + NULL + }; + + const GInterfaceInfo atk_action_info = { + (GInterfaceInitFunc) + ev_view_accessible_action_iface_init, + (GInterfaceFinalizeFunc) NULL, + NULL + }; + /* + * Figure out the size of the class and instance + * we are deriving from + */ + AtkObjectFactory *factory; + GType derived_type; + GTypeQuery query; + GType derived_atk_type; + + derived_type = g_type_parent (EV_TYPE_VIEW); + factory = atk_registry_get_factory (atk_get_default_registry (), + derived_type); + derived_atk_type = atk_object_factory_get_accessible_type (factory); + + g_type_query (derived_atk_type, &query); + tinfo.class_size = query.class_size; + tinfo.instance_size = query.instance_size; + + type = g_type_register_static (derived_atk_type, "EvViewAccessible", + &tinfo, 0); + g_type_add_interface_static (type, ATK_TYPE_TEXT, + &atk_text_info); + g_type_add_interface_static (type, ATK_TYPE_ACTION, + &atk_action_info); + } + + return type; +} + +static AtkObject *ev_view_accessible_new(GObject * obj) +{ + AtkObject *accessible; + + g_return_val_if_fail(EV_IS_VIEW (obj), NULL); + + accessible = g_object_new (ev_view_accessible_get_type (), NULL); + atk_object_initialize (accessible, obj); + + atk_object_set_name (ATK_OBJECT (accessible), _("Document View")); + atk_object_set_role (ATK_OBJECT (accessible), ATK_ROLE_UNKNOWN); + + return accessible; +} + +typedef AtkObjectFactory EvViewAccessibleFactory; +typedef AtkObjectFactoryClass EvViewAccessibleFactoryClass; + +static void ev_view_accessible_factory_init (EvViewAccessibleFactory *factory) +{ +} + +static GType ev_view_accessible_factory_get_accessible_type(void) +{ + return ev_view_accessible_get_type(); +} + +static AtkObject *ev_view_accessible_factory_create_accessible (GObject * obj) +{ + return ev_view_accessible_new(obj); +} + +static void ev_view_accessible_factory_class_init (AtkObjectFactoryClass * klass) +{ + klass->create_accessible = ev_view_accessible_factory_create_accessible; + klass->get_accessible_type = ev_view_accessible_factory_get_accessible_type; +} + +G_DEFINE_TYPE (EvViewAccessibleFactory, ev_view_accessible_factory, ATK_TYPE_OBJECT_FACTORY) diff --git a/libview/ev-view-accessible.h b/libview/ev-view-accessible.h new file mode 100644 index 00000000..9ec7ed27 --- /dev/null +++ b/libview/ev-view-accessible.h @@ -0,0 +1,33 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef __EV_VIEW_ACCESSIBLE_H__ +#define __EV_VIEW_ACCESSIBLE_H__ + +#include "ev-view.h" + +GType ev_view_accessible_factory_get_type (void); + +#endif /* __EV_VIEW_ACCESSIBLE_H__ */ + diff --git a/libview/ev-view-cursor.c b/libview/ev-view-cursor.c new file mode 100644 index 00000000..930e1f8e --- /dev/null +++ b/libview/ev-view-cursor.c @@ -0,0 +1,55 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "ev-view-cursor.h" + +GdkCursor * +ev_view_cursor_new (GdkDisplay *display, + EvViewCursor new_cursor) +{ + GdkCursor *cursor = NULL; + + switch (new_cursor) { + case EV_VIEW_CURSOR_NORMAL: + break; + case EV_VIEW_CURSOR_IBEAM: + cursor = gdk_cursor_new_for_display (display, GDK_XTERM); + break; + case EV_VIEW_CURSOR_LINK: + cursor = gdk_cursor_new_for_display (display, GDK_HAND2); + break; + case EV_VIEW_CURSOR_WAIT: + cursor = gdk_cursor_new_for_display (display, GDK_WATCH); + break; + case EV_VIEW_CURSOR_HIDDEN: + cursor = gdk_cursor_new_for_display (display, GDK_BLANK_CURSOR); + break; + case EV_VIEW_CURSOR_DRAG: + cursor = gdk_cursor_new_for_display (display, GDK_FLEUR); + break; + case EV_VIEW_CURSOR_AUTOSCROLL: + cursor = gdk_cursor_new_for_display (display, GDK_DOUBLE_ARROW); + break; + case EV_VIEW_CURSOR_ADD: + cursor = gdk_cursor_new_for_display (display, GDK_PLUS); + break; + } + + return cursor; +} diff --git a/libview/ev-view-cursor.h b/libview/ev-view-cursor.h new file mode 100644 index 00000000..9d5e8e53 --- /dev/null +++ b/libview/ev-view-cursor.h @@ -0,0 +1,47 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_VIEW_CURSOR_H__ +#define __EV_VIEW_CURSOR_H__ + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +typedef enum { + EV_VIEW_CURSOR_NORMAL, + EV_VIEW_CURSOR_IBEAM, + EV_VIEW_CURSOR_LINK, + EV_VIEW_CURSOR_WAIT, + EV_VIEW_CURSOR_HIDDEN, + EV_VIEW_CURSOR_DRAG, + EV_VIEW_CURSOR_AUTOSCROLL, + EV_VIEW_CURSOR_ADD +} EvViewCursor; + +GdkCursor *ev_view_cursor_new (GdkDisplay *display, + EvViewCursor cursor); + +G_END_DECLS + +#endif /* __EV_VIEW_CURSOR_H__ */ diff --git a/libview/ev-view-marshal.list b/libview/ev-view-marshal.list new file mode 100644 index 00000000..d7b0e75e --- /dev/null +++ b/libview/ev-view-marshal.list @@ -0,0 +1,2 @@ +VOID:ENUM,BOOLEAN +VOID:INT,INT diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c new file mode 100644 index 00000000..31556fa2 --- /dev/null +++ b/libview/ev-view-presentation.c @@ -0,0 +1,1498 @@ +/* ev-view-presentation.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <stdlib.h> +#include <glib/gi18n-lib.h> +#include <gdk/gdkkeysyms.h> + +#include "ev-view-presentation.h" +#include "ev-jobs.h" +#include "ev-job-scheduler.h" +#include "ev-transition-animation.h" +#include "ev-view-cursor.h" +#include "ev-page-cache.h" + +enum { + PROP_0, + PROP_DOCUMENT, + PROP_CURRENT_PAGE, + PROP_ROTATION, + PROP_INVERTED_COLORS +}; + +enum { + CHANGE_PAGE, + FINISHED, + N_SIGNALS +}; + +typedef enum { + EV_PRESENTATION_NORMAL, + EV_PRESENTATION_BLACK, + EV_PRESENTATION_WHITE, + EV_PRESENTATION_END +} EvPresentationState; + +struct _EvViewPresentation +{ + GtkWidget base; + + guint current_page; + cairo_surface_t *current_surface; + EvDocument *document; + guint rotation; + gboolean inverted_colors; + EvPresentationState state; + gdouble scale; + gint monitor_width; + gint monitor_height; + + /* Cursors */ + EvViewCursor cursor; + guint hide_cursor_timeout_id; + + /* Goto Window */ + GtkWidget *goto_window; + GtkWidget *goto_entry; + + /* Page Transition */ + guint trans_timeout_id; + + /* Animations */ + gboolean enable_animations; + EvTransitionAnimation *animation; + + /* Links */ + EvPageCache *page_cache; + + EvJob *prev_job; + EvJob *curr_job; + EvJob *next_job; +}; + +struct _EvViewPresentationClass +{ + GtkWidgetClass base_class; + + /* signals */ + void (* change_page) (EvViewPresentation *pview, + GtkScrollType scroll); + void (* finished) (EvViewPresentation *pview); +}; + +static guint signals[N_SIGNALS] = { 0 }; + +static void ev_view_presentation_next_page (EvViewPresentation *pview); +static void ev_view_presentation_previous_page (EvViewPresentation *pview); +static void ev_view_presentation_set_cursor_for_location (EvViewPresentation *pview, + gdouble x, + gdouble y); + +#define HIDE_CURSOR_TIMEOUT 5 + +G_DEFINE_TYPE (EvViewPresentation, ev_view_presentation, GTK_TYPE_WIDGET) + +static void +ev_view_presentation_set_normal (EvViewPresentation *pview) +{ + GtkWidget *widget = GTK_WIDGET (pview); + GtkStyle *style; + + if (pview->state == EV_PRESENTATION_NORMAL) + return; + + pview->state = EV_PRESENTATION_NORMAL; + style = gtk_widget_get_style (widget); + gdk_window_set_background (gtk_widget_get_window (widget), &style->black); + gtk_widget_queue_draw (widget); +} + +static void +ev_view_presentation_set_black (EvViewPresentation *pview) +{ + GtkWidget *widget = GTK_WIDGET (pview); + GtkStyle *style; + + if (pview->state == EV_PRESENTATION_BLACK) + return; + + pview->state = EV_PRESENTATION_BLACK; + style = gtk_widget_get_style (widget); + gdk_window_set_background (gtk_widget_get_window (widget), &style->black); + gtk_widget_queue_draw (widget); +} + +static void +ev_view_presentation_set_white (EvViewPresentation *pview) +{ + GtkWidget *widget = GTK_WIDGET (pview); + GtkStyle *style; + + if (pview->state == EV_PRESENTATION_WHITE) + return; + + pview->state = EV_PRESENTATION_WHITE; + style = gtk_widget_get_style (widget); + gdk_window_set_background (gtk_widget_get_window (widget), &style->white); + gtk_widget_queue_draw (widget); +} + +static void +ev_view_presentation_set_end (EvViewPresentation *pview) +{ + GtkWidget *widget = GTK_WIDGET (pview); + + if (pview->state == EV_PRESENTATION_END) + return; + + pview->state = EV_PRESENTATION_END; + gtk_widget_queue_draw (widget); +} + +static gdouble +ev_view_presentation_get_scale_for_page (EvViewPresentation *pview, + guint page) +{ + if (!ev_document_is_page_size_uniform (pview->document) || pview->scale == 0) { + gdouble width, height; + + ev_document_get_page_size (pview->document, page, &width, &height); + if (pview->rotation == 90 || pview->rotation == 270) { + gdouble tmp; + + tmp = width; + width = height; + height = tmp; + } + pview->scale = MIN (pview->monitor_width / width, pview->monitor_height / height); + } + + return pview->scale; +} + +static void +ev_view_presentation_get_page_area (EvViewPresentation *pview, + GdkRectangle *area) +{ + GtkWidget *widget = GTK_WIDGET (pview); + GtkAllocation allocation; + gdouble doc_width, doc_height; + gint view_width, view_height; + gdouble scale; + + ev_document_get_page_size (pview->document, + pview->current_page, + &doc_width, &doc_height); + scale = ev_view_presentation_get_scale_for_page (pview, pview->current_page); + + if (pview->rotation == 90 || pview->rotation == 270) { + view_width = (gint)((doc_height * scale) + 0.5); + view_height = (gint)((doc_width * scale) + 0.5); + } else { + view_width = (gint)((doc_width * scale) + 0.5); + view_height = (gint)((doc_height * scale) + 0.5); + } + + gtk_widget_get_allocation (widget, &allocation); + + area->x = (MAX (0, allocation.width - view_width)) / 2; + area->y = (MAX (0, allocation.height - view_height)) / 2; + area->width = view_width; + area->height = view_height; +} + +/* Page Transition */ +static gboolean +transition_next_page (EvViewPresentation *pview) +{ + ev_view_presentation_next_page (pview); + + return FALSE; +} + +static void +ev_view_presentation_transition_stop (EvViewPresentation *pview) +{ + if (pview->trans_timeout_id > 0) + g_source_remove (pview->trans_timeout_id); + pview->trans_timeout_id = 0; +} + +static void +ev_view_presentation_transition_start (EvViewPresentation *pview) +{ + gdouble duration; + + if (!EV_IS_DOCUMENT_TRANSITION (pview->document)) + return; + + ev_view_presentation_transition_stop (pview); + + duration = ev_document_transition_get_page_duration (EV_DOCUMENT_TRANSITION (pview->document), + pview->current_page); + if (duration >= 0) { + pview->trans_timeout_id = + g_timeout_add_seconds (duration, + (GSourceFunc) transition_next_page, + pview); + } +} + +/* Animations */ +static void +ev_view_presentation_animation_cancel (EvViewPresentation *pview) +{ + if (pview->animation) { + g_object_unref (pview->animation); + pview->animation = NULL; + } +} + +static void +ev_view_presentation_transition_animation_finish (EvViewPresentation *pview) +{ + ev_view_presentation_animation_cancel (pview); + ev_view_presentation_transition_start (pview); + gtk_widget_queue_draw (GTK_WIDGET (pview)); +} + +static void +ev_view_presentation_transition_animation_frame (EvViewPresentation *pview, + gdouble progress) +{ + gtk_widget_queue_draw (GTK_WIDGET (pview)); +} + +static void +ev_view_presentation_animation_start (EvViewPresentation *pview, + gint new_page) +{ + EvTransitionEffect *effect = NULL; + cairo_surface_t *surface; + gint jump; + + if (!pview->enable_animations) + return; + + if (pview->current_page == new_page) + return; + + effect = ev_document_transition_get_effect (EV_DOCUMENT_TRANSITION (pview->document), + new_page); + if (!effect) + return; + + pview->animation = ev_transition_animation_new (effect); + + surface = pview->curr_job ? EV_JOB_RENDER (pview->curr_job)->surface : NULL; + ev_transition_animation_set_origin_surface (pview->animation, + surface != NULL ? + surface : pview->current_surface); + + jump = new_page - pview->current_page; + if (jump == -1) + surface = pview->prev_job ? EV_JOB_RENDER (pview->prev_job)->surface : NULL; + else if (jump == 1) + surface = pview->next_job ? EV_JOB_RENDER (pview->next_job)->surface : NULL; + else + surface = NULL; + if (surface) + ev_transition_animation_set_dest_surface (pview->animation, surface); + + g_signal_connect_swapped (pview->animation, "frame", + G_CALLBACK (ev_view_presentation_transition_animation_frame), + pview); + g_signal_connect_swapped (pview->animation, "finished", + G_CALLBACK (ev_view_presentation_transition_animation_finish), + pview); +} + +/* Page Navigation */ +static void +job_finished_cb (EvJob *job, + EvViewPresentation *pview) +{ + EvJobRender *job_render = EV_JOB_RENDER (job); + + if (pview->inverted_colors) + ev_document_misc_invert_surface (job_render->surface); + + if (job != pview->curr_job) + return; + + if (pview->animation) { + ev_transition_animation_set_dest_surface (pview->animation, + job_render->surface); + } else { + ev_view_presentation_transition_start (pview); + gtk_widget_queue_draw (GTK_WIDGET (pview)); + } +} + +static EvJob * +ev_view_presentation_schedule_new_job (EvViewPresentation *pview, + gint page, + EvJobPriority priority) +{ + EvJob *job; + gdouble scale; + + if (page < 0 || page >= ev_document_get_n_pages (pview->document)) + return NULL; + + scale = ev_view_presentation_get_scale_for_page (pview, page); + job = ev_job_render_new (pview->document, page, pview->rotation, scale, 0, 0); + g_signal_connect (job, "finished", + G_CALLBACK (job_finished_cb), + pview); + ev_job_scheduler_push_job (job, priority); + + return job; +} + +static void +ev_view_presentation_delete_job (EvViewPresentation *pview, + EvJob *job) +{ + if (!job) + return; + + g_signal_handlers_disconnect_by_func (job, job_finished_cb, pview); + ev_job_cancel (job); + g_object_unref (job); +} + +static void +ev_view_presentation_update_current_page (EvViewPresentation *pview, + guint page) +{ + gint jump; + + if (page < 0 || page >= ev_document_get_n_pages (pview->document)) + return; + + ev_view_presentation_animation_cancel (pview); + ev_view_presentation_animation_start (pview, page); + + jump = page - pview->current_page; + + switch (jump) { + case 0: + if (!pview->curr_job) + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + if (!pview->next_job) + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_HIGH); + if (!pview->prev_job) + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_LOW); + break; + case -1: + ev_view_presentation_delete_job (pview, pview->next_job); + pview->next_job = pview->curr_job; + pview->curr_job = pview->prev_job; + + if (!pview->curr_job) + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + else + ev_job_scheduler_update_job (pview->curr_job, EV_JOB_PRIORITY_URGENT); + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_HIGH); + ev_job_scheduler_update_job (pview->next_job, EV_JOB_PRIORITY_LOW); + + break; + case 1: + ev_view_presentation_delete_job (pview, pview->prev_job); + pview->prev_job = pview->curr_job; + pview->curr_job = pview->next_job; + + if (!pview->curr_job) + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + else + ev_job_scheduler_update_job (pview->curr_job, EV_JOB_PRIORITY_URGENT); + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_HIGH); + ev_job_scheduler_update_job (pview->prev_job, EV_JOB_PRIORITY_LOW); + + break; + case -2: + ev_view_presentation_delete_job (pview, pview->next_job); + ev_view_presentation_delete_job (pview, pview->curr_job); + pview->next_job = pview->prev_job; + + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_HIGH); + if (!pview->next_job) + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_LOW); + else + ev_job_scheduler_update_job (pview->next_job, EV_JOB_PRIORITY_LOW); + break; + case 2: + ev_view_presentation_delete_job (pview, pview->prev_job); + ev_view_presentation_delete_job (pview, pview->curr_job); + pview->prev_job = pview->next_job; + + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_HIGH); + if (!pview->prev_job) + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_LOW); + else + ev_job_scheduler_update_job (pview->prev_job, EV_JOB_PRIORITY_LOW); + break; + default: + ev_view_presentation_delete_job (pview, pview->prev_job); + ev_view_presentation_delete_job (pview, pview->curr_job); + ev_view_presentation_delete_job (pview, pview->next_job); + + pview->curr_job = ev_view_presentation_schedule_new_job (pview, page, EV_JOB_PRIORITY_URGENT); + if (jump > 0) { + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_HIGH); + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_LOW); + } else { + pview->prev_job = ev_view_presentation_schedule_new_job (pview, page - 1, EV_JOB_PRIORITY_HIGH); + pview->next_job = ev_view_presentation_schedule_new_job (pview, page + 1, EV_JOB_PRIORITY_LOW); + } + } + + pview->current_page = page; + + if (pview->page_cache) + ev_page_cache_set_page_range (pview->page_cache, page, page); + + if (pview->cursor != EV_VIEW_CURSOR_HIDDEN) { + gint x, y; + + gtk_widget_get_pointer (GTK_WIDGET (pview), &x, &y); + ev_view_presentation_set_cursor_for_location (pview, x, y); + } + + if (EV_JOB_RENDER (pview->curr_job)->surface) + gtk_widget_queue_draw (GTK_WIDGET (pview)); +} + +static void +ev_view_presentation_next_page (EvViewPresentation *pview) +{ + guint n_pages; + gint new_page; + + switch (pview->state) { + case EV_PRESENTATION_BLACK: + case EV_PRESENTATION_WHITE: + ev_view_presentation_set_normal (pview); + case EV_PRESENTATION_END: + return; + case EV_PRESENTATION_NORMAL: + break; + } + + n_pages = ev_document_get_n_pages (pview->document); + new_page = pview->current_page + 1; + + if (new_page == n_pages) + ev_view_presentation_set_end (pview); + else + ev_view_presentation_update_current_page (pview, new_page); +} + +static void +ev_view_presentation_previous_page (EvViewPresentation *pview) +{ + gint new_page = 0; + + switch (pview->state) { + case EV_PRESENTATION_BLACK: + case EV_PRESENTATION_WHITE: + ev_view_presentation_set_normal (pview); + return; + case EV_PRESENTATION_END: + pview->state = EV_PRESENTATION_NORMAL; + new_page = pview->current_page; + break; + case EV_PRESENTATION_NORMAL: + new_page = pview->current_page - 1; + break; + } + + ev_view_presentation_update_current_page (pview, new_page); +} + +/* Goto Window */ +#define KEY_IS_NUMERIC(keyval) \ + ((keyval >= GDK_0 && keyval <= GDK_9) || (keyval >= GDK_KP_0 && keyval <= GDK_KP_9)) + +/* Cut and paste from gtkwindow.c */ +static void +send_focus_change (GtkWidget *widget, + gboolean in) +{ + GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); + + fevent->focus_change.type = GDK_FOCUS_CHANGE; + fevent->focus_change.window = gtk_widget_get_window (widget); + fevent->focus_change.in = in; + if (fevent->focus_change.window) + g_object_ref (fevent->focus_change.window); + + gtk_widget_send_focus_change (widget, fevent); + + gdk_event_free (fevent); +} + +static void +ev_view_presentation_goto_window_hide (EvViewPresentation *pview) +{ + /* send focus-in event */ + send_focus_change (pview->goto_entry, FALSE); + gtk_widget_hide (pview->goto_window); + gtk_entry_set_text (GTK_ENTRY (pview->goto_entry), ""); +} + +static gboolean +ev_view_presentation_goto_window_delete_event (GtkWidget *widget, + GdkEventAny *event, + EvViewPresentation *pview) +{ + ev_view_presentation_goto_window_hide (pview); + + return TRUE; +} + +static gboolean +ev_view_presentation_goto_window_key_press_event (GtkWidget *widget, + GdkEventKey *event, + EvViewPresentation *pview) +{ + switch (event->keyval) { + case GDK_Escape: + case GDK_Tab: + case GDK_KP_Tab: + case GDK_ISO_Left_Tab: + ev_view_presentation_goto_window_hide (pview); + return TRUE; + case GDK_Return: + case GDK_KP_Enter: + case GDK_ISO_Enter: + case GDK_BackSpace: + case GDK_Delete: + return FALSE; + default: + if (!KEY_IS_NUMERIC (event->keyval)) + return TRUE; + } + + return FALSE; +} + +static gboolean +ev_view_presentation_goto_window_button_press_event (GtkWidget *widget, + GdkEventButton *event, + EvViewPresentation *pview) +{ + ev_view_presentation_goto_window_hide (pview); + + return TRUE; +} + +static void +ev_view_presentation_goto_entry_activate (GtkEntry *entry, + EvViewPresentation *pview) +{ + const gchar *text; + gint page; + + text = gtk_entry_get_text (entry); + page = atoi (text) - 1; + + ev_view_presentation_goto_window_hide (pview); + ev_view_presentation_update_current_page (pview, page); +} + +static void +ev_view_presentation_goto_window_create (EvViewPresentation *pview) +{ + GtkWidget *frame, *hbox, *label; + GtkWindow *toplevel, *goto_window; + + toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (pview))); + goto_window = GTK_WINDOW (pview->goto_window); + + if (pview->goto_window) { + if (gtk_window_has_group (toplevel)) + gtk_window_group_add_window (gtk_window_get_group (toplevel), goto_window); + else if (gtk_window_has_group (goto_window)) + gtk_window_group_remove_window (gtk_window_get_group (goto_window), goto_window); + + return; + } + + pview->goto_window = gtk_window_new (GTK_WINDOW_POPUP); + gtk_window_set_screen (goto_window, gtk_widget_get_screen (GTK_WIDGET (pview))); + + if (gtk_window_has_group (toplevel)) + gtk_window_group_add_window (gtk_window_get_group (toplevel), goto_window); + + gtk_window_set_modal (goto_window, TRUE); + + g_signal_connect (pview->goto_window, "delete_event", + G_CALLBACK (ev_view_presentation_goto_window_delete_event), + pview); + g_signal_connect (pview->goto_window, "key_press_event", + G_CALLBACK (ev_view_presentation_goto_window_key_press_event), + pview); + g_signal_connect (pview->goto_window, "button_press_event", + G_CALLBACK (ev_view_presentation_goto_window_button_press_event), + pview); + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); + gtk_container_add (GTK_CONTAINER (pview->goto_window), frame); + gtk_widget_show (frame); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 3); + gtk_container_add (GTK_CONTAINER (frame), hbox); + gtk_widget_show (hbox); + + label = gtk_label_new (_("Jump to page:")); + gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 3); + gtk_widget_show (label); + gtk_widget_realize (label); + + pview->goto_entry = gtk_entry_new (); + g_signal_connect (pview->goto_entry, "activate", + G_CALLBACK (ev_view_presentation_goto_entry_activate), + pview); + gtk_box_pack_start (GTK_BOX (hbox), pview->goto_entry, TRUE, TRUE, 0); + gtk_widget_show (pview->goto_entry); + gtk_widget_realize (pview->goto_entry); +} + +static void +ev_view_presentation_goto_entry_grab_focus (EvViewPresentation *pview) +{ + GtkWidgetClass *entry_parent_class; + + entry_parent_class = g_type_class_peek_parent (GTK_ENTRY_GET_CLASS (pview->goto_entry)); + (entry_parent_class->grab_focus) (pview->goto_entry); + + send_focus_change (pview->goto_entry, TRUE); +} + +static void +ev_view_presentation_goto_window_send_key_event (EvViewPresentation *pview, + GdkEvent *event) +{ + GdkEventKey *new_event; + GdkScreen *screen; + + /* Move goto window off screen */ + screen = gtk_widget_get_screen (GTK_WIDGET (pview)); + gtk_window_move (GTK_WINDOW (pview->goto_window), + gdk_screen_get_width (screen) + 1, + gdk_screen_get_height (screen) + 1); + gtk_widget_show (pview->goto_window); + + new_event = (GdkEventKey *) gdk_event_copy (event); + g_object_unref (new_event->window); + new_event->window = gtk_widget_get_window (pview->goto_window); + if (new_event->window) + g_object_ref (new_event->window); + gtk_widget_realize (pview->goto_window); + + gtk_widget_event (pview->goto_window, (GdkEvent *)new_event); + gdk_event_free ((GdkEvent *)new_event); + gtk_widget_hide (pview->goto_window); +} + +/* Links */ +static gboolean +ev_view_presentation_link_is_supported (EvViewPresentation *pview, + EvLink *link) +{ + EvLinkAction *action; + + action = ev_link_get_action (link); + if (!action) + return FALSE; + + switch (ev_link_action_get_action_type (action)) { + case EV_LINK_ACTION_TYPE_GOTO_DEST: + return ev_link_action_get_dest (action) != NULL; + case EV_LINK_ACTION_TYPE_NAMED: + return TRUE; + default: + return FALSE; + } + + return FALSE; +} + +static EvLink * +ev_view_presentation_get_link_at_location (EvViewPresentation *pview, + gdouble x, + gdouble y) +{ + GdkRectangle page_area; + EvMappingList *link_mapping; + EvLink *link; + gdouble width, height; + gdouble new_x, new_y; + gdouble scale; + + if (!pview->page_cache) + return NULL; + + ev_document_get_page_size (pview->document, pview->current_page, &width, &height); + ev_view_presentation_get_page_area (pview, &page_area); + scale = ev_view_presentation_get_scale_for_page (pview, pview->current_page); + x = (x - page_area.x) / scale; + y = (y - page_area.y) / scale; + switch (pview->rotation) { + case 0: + case 360: + new_x = x; + new_y = y; + break; + case 90: + new_x = y; + new_y = height - x; + break; + case 180: + new_x = width - x; + new_y = height - y; + break; + case 270: + new_x = width - y; + new_y = x; + break; + default: + g_assert_not_reached (); + } + + link_mapping = ev_page_cache_get_link_mapping (pview->page_cache, pview->current_page); + + link = link_mapping ? ev_mapping_list_get_data (link_mapping, new_x, new_y) : NULL; + + return link && ev_view_presentation_link_is_supported (pview, link) ? link : NULL; +} + +static void +ev_vew_presentation_goto_link_dest (EvViewPresentation *pview, + EvLink *link) +{ + EvLinkAction *action; + + action = ev_link_get_action (link); + + if (ev_link_action_get_action_type (action) == EV_LINK_ACTION_TYPE_NAMED) { + const gchar *name = ev_link_action_get_name (action); + + if (g_ascii_strcasecmp (name, "FirstPage") == 0) { + ev_view_presentation_update_current_page (pview, 0); + } else if (g_ascii_strcasecmp (name, "PrevPage") == 0) { + ev_view_presentation_update_current_page (pview, pview->current_page - 1); + } else if (g_ascii_strcasecmp (name, "NextPage") == 0) { + ev_view_presentation_update_current_page (pview, pview->current_page + 1); + } else if (g_ascii_strcasecmp (name, "LastPage") == 0) { + gint n_pages; + + n_pages = ev_document_get_n_pages (pview->document); + ev_view_presentation_update_current_page (pview, n_pages - 1); + } + } else { + EvLinkDest *dest; + gint page; + + dest = ev_link_action_get_dest (action); + page = ev_document_links_get_dest_page (EV_DOCUMENT_LINKS (pview->document), dest); + ev_view_presentation_update_current_page (pview, page); + } +} + +/* Cursors */ +static void +ev_view_presentation_set_cursor (EvViewPresentation *pview, + EvViewCursor view_cursor) +{ + GtkWidget *widget; + GdkCursor *cursor; + + if (pview->cursor == view_cursor) + return; + + widget = GTK_WIDGET (pview); + if (!gtk_widget_get_realized (widget)) + gtk_widget_realize (widget); + + pview->cursor = view_cursor; + + cursor = ev_view_cursor_new (gtk_widget_get_display (widget), view_cursor); + gdk_window_set_cursor (gtk_widget_get_window (widget), cursor); + gdk_flush (); + if (cursor) + gdk_cursor_unref (cursor); +} + +static void +ev_view_presentation_set_cursor_for_location (EvViewPresentation *pview, + gdouble x, + gdouble y) +{ + if (ev_view_presentation_get_link_at_location (pview, x, y)) + ev_view_presentation_set_cursor (pview, EV_VIEW_CURSOR_LINK); + else + ev_view_presentation_set_cursor (pview, EV_VIEW_CURSOR_NORMAL); +} + +static gboolean +hide_cursor_timeout_cb (EvViewPresentation *pview) +{ + ev_view_presentation_set_cursor (pview, EV_VIEW_CURSOR_HIDDEN); + pview->hide_cursor_timeout_id = 0; + + return FALSE; +} + +static void +ev_view_presentation_hide_cursor_timeout_stop (EvViewPresentation *pview) +{ + if (pview->hide_cursor_timeout_id > 0) + g_source_remove (pview->hide_cursor_timeout_id); + pview->hide_cursor_timeout_id = 0; +} + +static void +ev_view_presentation_hide_cursor_timeout_start (EvViewPresentation *pview) +{ + ev_view_presentation_hide_cursor_timeout_stop (pview); + pview->hide_cursor_timeout_id = + g_timeout_add_seconds (HIDE_CURSOR_TIMEOUT, + (GSourceFunc)hide_cursor_timeout_cb, + pview); +} + +static void +ev_view_presentation_update_current_surface (EvViewPresentation *pview, + cairo_surface_t *surface) +{ + if (!surface || pview->current_surface == surface) + return; + + cairo_surface_reference (surface); + if (pview->current_surface) + cairo_surface_destroy (pview->current_surface); + pview->current_surface = surface; +} + +static void +ev_view_presentation_destroy (GtkObject *object) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (object); + + if (pview->document) { + g_object_unref (pview->document); + pview->document = NULL; + } + + ev_view_presentation_animation_cancel (pview); + ev_view_presentation_transition_stop (pview); + ev_view_presentation_hide_cursor_timeout_stop (pview); + + if (pview->curr_job) { + ev_view_presentation_delete_job (pview, pview->curr_job); + pview->curr_job = NULL; + } + + if (pview->prev_job) { + ev_view_presentation_delete_job (pview, pview->prev_job); + pview->prev_job = NULL; + } + + if (pview->next_job) { + ev_view_presentation_delete_job (pview, pview->next_job); + pview->next_job = NULL; + } + + if (pview->current_surface) { + cairo_surface_destroy (pview->current_surface); + pview->current_surface = NULL; + } + + if (pview->page_cache) { + g_object_unref (pview->page_cache); + pview->page_cache = NULL; + } + + if (pview->goto_window) { + gtk_widget_destroy (pview->goto_window); + pview->goto_window = NULL; + pview->goto_entry = NULL; + } + + GTK_OBJECT_CLASS (ev_view_presentation_parent_class)->destroy (object); +} + +static void +ev_view_presentation_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + requisition->width = 0; + requisition->height = 0; +} + +static void +ev_view_presentation_draw_end_page (EvViewPresentation *pview) +{ + GtkWidget *widget = GTK_WIDGET (pview); + PangoLayout *layout; + PangoFontDescription *font_desc; + gchar *markup; + GtkAllocation allocation; + GdkRectangle area = {0}; + const gchar *text = _("End of presentation. Click to exit."); + + if (pview->state != EV_PRESENTATION_END) + return; + + layout = gtk_widget_create_pango_layout (widget, NULL); + markup = g_strdup_printf ("<span foreground=\"white\">%s</span>", text); + pango_layout_set_markup (layout, markup, -1); + g_free (markup); + + font_desc = pango_font_description_new (); + pango_font_description_set_size (font_desc, 16 * PANGO_SCALE); + pango_layout_set_font_description (layout, font_desc); + + gtk_widget_get_allocation (widget, &allocation); + area.width = allocation.width; + area.height = allocation.height; + + gtk_paint_layout (gtk_widget_get_style (widget), + gtk_widget_get_window (widget), + gtk_widget_get_state (widget), + FALSE, + &area, + widget, + NULL, + 15, + 15, + layout); + + pango_font_description_free (font_desc); + g_object_unref (layout); +} + +static gboolean +ev_view_presentation_expose_event (GtkWidget *widget, + GdkEventExpose *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + GdkRectangle page_area; + GdkRectangle overlap; + cairo_surface_t *surface; + cairo_t *cr; + + switch (pview->state) { + case EV_PRESENTATION_END: + ev_view_presentation_draw_end_page (pview); + return FALSE; + case EV_PRESENTATION_BLACK: + case EV_PRESENTATION_WHITE: + return FALSE; + case EV_PRESENTATION_NORMAL: + break; + } + + if (pview->animation) { + if (ev_transition_animation_ready (pview->animation)) { + ev_view_presentation_get_page_area (pview, &page_area); + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* normalize to x=0, y=0 */ + cairo_translate (cr, page_area.x, page_area.y); + page_area.x = page_area.y = 0; + + /* Try to fix rounding errors */ + page_area.width--; + + ev_transition_animation_paint (pview->animation, cr, page_area); + cairo_destroy (cr); + } + + return TRUE; + } + + surface = pview->curr_job ? EV_JOB_RENDER (pview->curr_job)->surface : NULL; + if (surface) { + ev_view_presentation_update_current_surface (pview, surface); + } else if (pview->current_surface) { + surface = pview->current_surface; + } else { + return FALSE; + } + + ev_view_presentation_get_page_area (pview, &page_area); + if (gdk_rectangle_intersect (&page_area, &(event->area), &overlap)) { + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* Try to fix rounding errors. See bug #438760 */ + if (overlap.width == page_area.width) + overlap.width--; + + cairo_rectangle (cr, overlap.x, overlap.y, overlap.width, overlap.height); + cairo_set_source_surface (cr, surface, page_area.x, page_area.y); + cairo_fill (cr); + cairo_destroy (cr); + } + + return FALSE; +} + +static gboolean +ev_view_presentation_key_press_event (GtkWidget *widget, + GdkEventKey *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + + if (pview->state == EV_PRESENTATION_END) + return gtk_bindings_activate_event (GTK_OBJECT (widget), event); + + switch (event->keyval) { + case GDK_b: + case GDK_B: + case GDK_period: + case GDK_KP_Decimal: + if (pview->state == EV_PRESENTATION_BLACK) + ev_view_presentation_set_normal (pview); + else + ev_view_presentation_set_black (pview); + + return TRUE; + case GDK_w: + case GDK_W: + if (pview->state == EV_PRESENTATION_WHITE) + ev_view_presentation_set_normal (pview); + else + ev_view_presentation_set_white (pview); + + return TRUE; + case GDK_Home: + if (pview->state == EV_PRESENTATION_NORMAL) { + ev_view_presentation_update_current_page (pview, 0); + return TRUE; + } + break; + case GDK_End: + if (pview->state == EV_PRESENTATION_NORMAL) { + gint page; + + page = ev_document_get_n_pages (pview->document) - 1; + ev_view_presentation_update_current_page (pview, page); + + return TRUE; + } + break; + default: + break; + } + + ev_view_presentation_set_normal (pview); + + if (ev_document_get_n_pages (pview->document) > 1 && KEY_IS_NUMERIC (event->keyval)) { + gint x, y; + + ev_view_presentation_goto_window_create (pview); + ev_view_presentation_goto_window_send_key_event (pview, (GdkEvent *)event); + gtk_widget_get_pointer (GTK_WIDGET (pview), &x, &y); + gtk_window_move (GTK_WINDOW (pview->goto_window), x, y); + gtk_widget_show (pview->goto_window); + ev_view_presentation_goto_entry_grab_focus (pview); + + return TRUE; + } + + return gtk_bindings_activate_event (GTK_OBJECT (widget), event); +} + +static gboolean +ev_view_presentation_button_release_event (GtkWidget *widget, + GdkEventButton *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + + switch (event->button) { + case 1: { + EvLink *link; + + if (pview->state == EV_PRESENTATION_END) { + g_signal_emit (pview, signals[FINISHED], 0, NULL); + + return FALSE; + } + + link = ev_view_presentation_get_link_at_location (pview, + event->x, + event->y); + if (link) + ev_vew_presentation_goto_link_dest (pview, link); + else + ev_view_presentation_next_page (pview); + } + break; + case 3: + ev_view_presentation_previous_page (pview); + break; + default: + break; + } + + return FALSE; +} + +static gint +ev_view_presentation_focus_out (GtkWidget *widget, + GdkEventFocus *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + + if (pview->goto_window) + ev_view_presentation_goto_window_hide (pview); + + return FALSE; +} + +static gboolean +ev_view_presentation_motion_notify_event (GtkWidget *widget, + GdkEventMotion *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + + ev_view_presentation_hide_cursor_timeout_start (pview); + ev_view_presentation_set_cursor_for_location (pview, event->x, event->y); + + return FALSE; +} + +static gboolean +init_presentation (GtkWidget *widget) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + GdkScreen *screen = gtk_widget_get_screen (widget); + GdkRectangle monitor; + gint monitor_num; + + monitor_num = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget)); + gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); + pview->monitor_width = monitor.width; + pview->monitor_height = monitor.height; + + ev_view_presentation_update_current_page (pview, pview->current_page); + ev_view_presentation_hide_cursor_timeout_start (pview); + + return FALSE; +} + +static void +ev_view_presentation_realize (GtkWidget *widget) +{ + GdkWindow *window; + GtkStyle *style; + GdkWindowAttr attributes; + GtkAllocation allocation; + + gtk_widget_set_realized (widget, TRUE); + + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gtk_widget_get_visual (widget); + attributes.colormap = gtk_widget_get_colormap (widget); + + gtk_widget_get_allocation (widget, &allocation); + attributes.x = allocation.x; + attributes.y = allocation.y; + attributes.width = allocation.width; + attributes.height = allocation.height; + attributes.event_mask = GDK_EXPOSURE_MASK | + GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_SCROLL_MASK | + GDK_KEY_PRESS_MASK | + GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK | + GDK_ENTER_NOTIFY_MASK | + GDK_LEAVE_NOTIFY_MASK; + + window = gdk_window_new (gtk_widget_get_parent_window (widget), + &attributes, + GDK_WA_X | GDK_WA_Y | + GDK_WA_COLORMAP | + GDK_WA_VISUAL); + + gdk_window_set_user_data (window, widget); + gtk_widget_set_window (widget, window); + + gtk_widget_style_attach (widget); + style = gtk_widget_get_style (widget); + gdk_window_set_background (window, &style->black); + + g_idle_add ((GSourceFunc)init_presentation, widget); +} + +static void +ev_view_presentation_change_page (EvViewPresentation *pview, + GtkScrollType scroll) +{ + switch (scroll) { + case GTK_SCROLL_PAGE_FORWARD: + ev_view_presentation_next_page (pview); + break; + case GTK_SCROLL_PAGE_BACKWARD: + ev_view_presentation_previous_page (pview); + break; + default: + g_assert_not_reached (); + } +} + +static gboolean +ev_view_presentation_scroll_event (GtkWidget *widget, + GdkEventScroll *event) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); + guint state; + + state = event->state & gtk_accelerator_get_default_mod_mask (); + if (state != 0) + return FALSE; + + switch (event->direction) { + case GDK_SCROLL_DOWN: + case GDK_SCROLL_RIGHT: + ev_view_presentation_change_page (pview, GTK_SCROLL_PAGE_FORWARD); + break; + case GDK_SCROLL_UP: + case GDK_SCROLL_LEFT: + ev_view_presentation_change_page (pview, GTK_SCROLL_PAGE_BACKWARD); + break; + } + + return TRUE; +} + + +static void +add_change_page_binding_keypad (GtkBindingSet *binding_set, + guint keyval, + GdkModifierType modifiers, + GtkScrollType scroll) +{ + guint keypad_keyval = keyval - GDK_Left + GDK_KP_Left; + + gtk_binding_entry_add_signal (binding_set, keyval, modifiers, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, scroll); + gtk_binding_entry_add_signal (binding_set, keypad_keyval, modifiers, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, scroll); +} + +static void +ev_view_presentation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvViewPresentation *pview = EV_VIEW_PRESENTATION (object); + + switch (prop_id) { + case PROP_DOCUMENT: + pview->document = g_value_dup_object (value); + pview->enable_animations = EV_IS_DOCUMENT_TRANSITION (pview->document); + break; + case PROP_CURRENT_PAGE: + pview->current_page = g_value_get_uint (value); + break; + case PROP_ROTATION: + pview->rotation = g_value_get_uint (value); + break; + case PROP_INVERTED_COLORS: + pview->inverted_colors = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static GObject * +ev_view_presentation_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvViewPresentation *pview; + + object = G_OBJECT_CLASS (ev_view_presentation_parent_class)->constructor (type, + n_construct_properties, + construct_params); + pview = EV_VIEW_PRESENTATION (object); + + if (EV_IS_DOCUMENT_LINKS (pview->document)) { + pview->page_cache = ev_page_cache_new (pview->document); + ev_page_cache_set_flags (pview->page_cache, EV_PAGE_DATA_INCLUDE_LINKS); + } + + return object; +} + +static void +ev_view_presentation_class_init (EvViewPresentationClass *klass) +{ + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass); + GtkBindingSet *binding_set; + + klass->change_page = ev_view_presentation_change_page; + + widget_class->size_request = ev_view_presentation_size_request; + widget_class->realize = ev_view_presentation_realize; + widget_class->expose_event = ev_view_presentation_expose_event; + widget_class->key_press_event = ev_view_presentation_key_press_event; + widget_class->button_release_event = ev_view_presentation_button_release_event; + widget_class->focus_out_event = ev_view_presentation_focus_out; + widget_class->motion_notify_event = ev_view_presentation_motion_notify_event; + widget_class->scroll_event = ev_view_presentation_scroll_event; + + gtk_object_class->destroy = ev_view_presentation_destroy; + + gobject_class->constructor = ev_view_presentation_constructor; + gobject_class->set_property = ev_view_presentation_set_property; + + g_object_class_install_property (gobject_class, + PROP_DOCUMENT, + g_param_spec_object ("document", + "Document", + "Document", + EV_TYPE_DOCUMENT, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (gobject_class, + PROP_CURRENT_PAGE, + g_param_spec_uint ("current_page", + "Current Page", + "The current page", + 0, G_MAXUINT, 0, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (gobject_class, + PROP_ROTATION, + g_param_spec_uint ("rotation", + "Rotation", + "Current rotation angle", + 0, 360, 0, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (gobject_class, + PROP_INVERTED_COLORS, + g_param_spec_boolean ("inverted_colors", + "Inverted Colors", + "Whether presentation is displayed with inverted colors", + FALSE, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); + + signals[CHANGE_PAGE] = + g_signal_new ("change_page", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewPresentationClass, change_page), + NULL, NULL, + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_SCROLL_TYPE); + signals[FINISHED] = + g_signal_new ("finished", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewPresentationClass, finished), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, + G_TYPE_NONE); + + binding_set = gtk_binding_set_by_class (klass); + add_change_page_binding_keypad (binding_set, GDK_Left, 0, GTK_SCROLL_PAGE_BACKWARD); + add_change_page_binding_keypad (binding_set, GDK_Right, 0, GTK_SCROLL_PAGE_FORWARD); + add_change_page_binding_keypad (binding_set, GDK_Up, 0, GTK_SCROLL_PAGE_BACKWARD); + add_change_page_binding_keypad (binding_set, GDK_Down, 0, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_space, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_J, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_H, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_L, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_K, 0, + "change_page", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); +} + +static void +ev_view_presentation_init (EvViewPresentation *pview) +{ + gtk_widget_set_can_focus (GTK_WIDGET (pview), TRUE); +} + +GtkWidget * +ev_view_presentation_new (EvDocument *document, + guint current_page, + guint rotation, + gboolean inverted_colors) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL); + g_return_val_if_fail (current_page < ev_document_get_n_pages (document), NULL); + + return GTK_WIDGET (g_object_new (EV_TYPE_VIEW_PRESENTATION, + "document", document, + "current_page", current_page, + "rotation", rotation, + "inverted_colors", inverted_colors, + NULL)); +} + +guint +ev_view_presentation_get_current_page (EvViewPresentation *pview) +{ + return pview->current_page; +} diff --git a/libview/ev-view-presentation.h b/libview/ev-view-presentation.h new file mode 100644 index 00000000..3aaf6f06 --- /dev/null +++ b/libview/ev-view-presentation.h @@ -0,0 +1,51 @@ +/* ev-view-presentation.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_VIEW_PRESENTATION_H__ +#define __EV_VIEW_PRESENTATION_H__ + +#include <gtk/gtk.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +#define EV_TYPE_VIEW_PRESENTATION (ev_view_presentation_get_type ()) +#define EV_VIEW_PRESENTATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_VIEW_PRESENTATION, EvViewPresentation)) +#define EV_IS_VIEW_PRESENTATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_VIEW_PRESENTATION)) + +typedef struct _EvViewPresentation EvViewPresentation; +typedef struct _EvViewPresentationClass EvViewPresentationClass; + +GType ev_view_presentation_get_type (void) G_GNUC_CONST; + +GtkWidget *ev_view_presentation_new (EvDocument *document, + guint current_page, + guint rotation, + gboolean inverted_colors); +guint ev_view_presentation_get_current_page (EvViewPresentation *pview); + +G_END_DECLS + +#endif /* __EV_VIEW_PRESENTATION_H__ */ diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h new file mode 100644 index 00000000..8ecd12db --- /dev/null +++ b/libview/ev-view-private.h @@ -0,0 +1,225 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + +#ifndef __EV_VIEW_PRIVATE_H__ +#define __EV_VIEW_PRIVATE_H__ + +#include "ev-view.h" +#include "ev-document-model.h" +#include "ev-pixbuf-cache.h" +#include "ev-page-cache.h" +#include "ev-jobs.h" +#include "ev-image.h" +#include "ev-form-field.h" +#include "ev-selection.h" +#include "ev-view-cursor.h" + +#define DRAG_HISTORY 10 + +/* Information for middle clicking and moving around the doc */ +typedef struct { + gboolean in_drag; + GdkPoint start; + gdouble hadj; + gdouble vadj; + guint drag_timeout_id; + guint release_timeout_id; + GdkPoint buffer[DRAG_HISTORY]; + GdkPoint momentum; +} DragInfo; + +/* Autoscrolling */ +typedef struct { + gboolean autoscrolling; + guint last_y; + guint start_y; + guint timeout_id; +} AutoScrollInfo; + +/* Information for handling selection */ +typedef struct { + gboolean in_drag; + GdkPoint start; + gboolean in_selection; + GList *selections; + EvSelectionStyle style; +} SelectionInfo; + +/* Information for handling images DND */ +typedef struct { + gboolean in_drag; + GdkPoint start; + EvImage *image; +} ImageDNDInfo; + +/* Annotation popup windows */ +typedef struct { + GtkWidget *window; + guint page; + + /* Current position */ + gint x; + gint y; + + /* EvView root position */ + gint parent_x; + gint parent_y; + + /* Document coords */ + gdouble orig_x; + gdouble orig_y; + + gboolean visible; + gboolean moved; +} EvViewWindowChild; + +typedef enum { + SCROLL_TO_KEEP_POSITION, + SCROLL_TO_PAGE_POSITION, + SCROLL_TO_CENTER, + SCROLL_TO_FIND_LOCATION, +} PendingScroll; + +typedef struct _EvHeightToPageCache { + gint rotation; + gdouble *height_to_page; + gdouble *dual_height_to_page; +} EvHeightToPageCache; + +struct _EvView { + GtkLayout layout; + + EvDocument *document; + + /* Find */ + GList **find_pages; + gint find_result; + gboolean jump_to_find_result; + gboolean highlight_find_results; + + EvDocumentModel *model; + EvPixbufCache *pixbuf_cache; + gsize pixbuf_cache_size; + EvPageCache *page_cache; + EvHeightToPageCache *height_to_page_cache; + EvViewCursor cursor; + EvJobRender *current_job; + + GtkRequisition requisition; + gboolean internal_size_request; + + /* Scrolling */ + GtkAdjustment *hadjustment; + GtkAdjustment *vadjustment; + + gint scroll_x; + gint scroll_y; + + PendingScroll pending_scroll; + gboolean pending_resize; + EvPoint pending_point; + + /* Current geometry */ + + gint start_page; + gint end_page; + gint current_page; + + gint rotation; + gdouble scale; + gint spacing; + + gboolean loading; + gboolean continuous; + gboolean dual_page; + gboolean fullscreen; + EvSizingMode sizing_mode; + GtkWidget *loading_window; + guint loading_timeout; + + /* Common for button press handling */ + int pressed_button; + + /* Information for middle clicking and dragging around. */ + DragInfo drag_info; + + /* Autoscrolling */ + AutoScrollInfo scroll_info; + + /* Selection */ + GdkPoint motion; + guint selection_update_id; + guint selection_scroll_id; + + EvViewSelectionMode selection_mode; + SelectionInfo selection_info; + + /* Copy link address selection */ + EvLinkAction *link_selected; + + /* Image DND */ + ImageDNDInfo image_dnd_info; + + /* Annotations */ + GList *window_children; + EvViewWindowChild *window_child_focus; + EvMapping *focus_annotation; + gboolean adding_annot; + EvAnnotationType adding_annot_type; + + /* Synctex */ + EvMapping *synctex_result; + + /* Accessibility */ + gboolean a11y_enabled; +}; + +struct _EvViewClass { + GtkLayoutClass parent_class; + + void (*binding_activated) (EvView *view, + GtkScrollType scroll, + gboolean horizontal); + void (*handle_link) (EvView *view, + EvLink *link); + void (*external_link) (EvView *view, + EvLinkAction *action); + void (*popup_menu) (EvView *view, + GList *items); + void (*selection_changed) (EvView *view); + void (*sync_source) (EvView *view, + EvSourceLink *link); + void (*annot_added) (EvView *view, + EvAnnotation *annot); +}; + +void _get_page_size_for_scale_and_rotation (EvDocument *document, + gint page, + gdouble scale, + gint rotation, + gint *page_width, + gint *page_height); + +#endif /* __EV_VIEW_PRIVATE_H__ */ + diff --git a/libview/ev-view-type-builtins.c.template b/libview/ev-view-type-builtins.c.template new file mode 100644 index 00000000..01ca13af --- /dev/null +++ b/libview/ev-view-type-builtins.c.template @@ -0,0 +1,44 @@ +/*** BEGIN file-header ***/ +#include <config.h> + +#include "ev-view-type-builtins.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +#include "@filename@" +/*** END file-production ***/ + + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = \ + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ + +/*** END file-tail ***/ diff --git a/libview/ev-view-type-builtins.h.template b/libview/ev-view-type-builtins.h.template new file mode 100644 index 00000000..c4ba4974 --- /dev/null +++ b/libview/ev-view-type-builtins.h.template @@ -0,0 +1,29 @@ +/*** BEGIN file-header ***/ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef EV_VIEW_TYPE_BUILTINS_H +#define EV_VIEW_TYPE_BUILTINS_H + +#include <glib-object.h> + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define EV_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* !EV_VIEW_TYPE_BUILTINS_H */ +/*** END file-tail ***/ diff --git a/libview/ev-view.c b/libview/ev-view.c new file mode 100644 index 00000000..b47d6047 --- /dev/null +++ b/libview/ev-view.c @@ -0,0 +1,6274 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <stdlib.h> +#include <math.h> +#include <string.h> + +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> + +#include "ev-mapping-list.h" +#include "ev-document-forms.h" +#include "ev-document-images.h" +#include "ev-document-links.h" +#include "ev-document-misc.h" +#include "ev-pixbuf-cache.h" +#include "ev-page-cache.h" +#include "ev-view-marshal.h" +#include "ev-document-annotations.h" +#include "ev-annotation-window.h" +#include "ev-loading-window.h" +#include "ev-view.h" +#include "ev-view-accessible.h" +#include "ev-view-private.h" +#include "ev-view-type-builtins.h" + +#define EV_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_VIEW, EvViewClass)) +#define EV_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_VIEW)) +#define EV_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_VIEW, EvViewClass)) + +enum { + SIGNAL_BINDING_ACTIVATED, + SIGNAL_HANDLE_LINK, + SIGNAL_EXTERNAL_LINK, + SIGNAL_POPUP_MENU, + SIGNAL_SELECTION_CHANGED, + SIGNAL_SYNC_SOURCE, + SIGNAL_ANNOT_ADDED, + N_SIGNALS +}; + +enum { + TARGET_DND_URI, + TARGET_DND_TEXT, + TARGET_DND_IMAGE +}; + +static guint signals[N_SIGNALS]; + +typedef enum { + EV_VIEW_FIND_NEXT, + EV_VIEW_FIND_PREV +} EvViewFindDirection; + +#define ZOOM_IN_FACTOR 1.2 +#define ZOOM_OUT_FACTOR (1.0/ZOOM_IN_FACTOR) + +#define SCROLL_TIME 150 + +/*** Scrolling ***/ +static void ev_view_set_scroll_adjustments (GtkLayout *layout, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment); +static void view_update_range_and_current_page (EvView *view); +static void set_scroll_adjustment (EvView *view, + GtkOrientation orientation, + GtkAdjustment *adjustment); +static void add_scroll_binding_keypad (GtkBindingSet *binding_set, + guint keyval, + GdkModifierType modifiers, + GtkScrollType scroll, + gboolean horizontal); +static void ensure_rectangle_is_visible (EvView *view, + GdkRectangle *rect); + +/*** Geometry computations ***/ +static void compute_border (EvView *view, + int width, + int height, + GtkBorder *border); +static void get_page_y_offset (EvView *view, + int page, + int *y_offset); +static void view_rect_to_doc_rect (EvView *view, + GdkRectangle *view_rect, + GdkRectangle *page_area, + EvRectangle *doc_rect); +static void doc_rect_to_view_rect (EvView *view, + int page, + EvRectangle *doc_rect, + GdkRectangle *view_rect); +static gboolean get_dual_even_left (EvView *view); +static void find_page_at_location (EvView *view, + gdouble x, + gdouble y, + gint *page, + gint *x_offset, + gint *y_offset); +static void doc_point_to_view_point (EvView *view, + int page, + EvPoint *doc_point, + GdkPoint *view_point); +/*** Hyperrefs ***/ +static EvLink * ev_view_get_link_at_location (EvView *view, + gdouble x, + gdouble y); +static char* tip_from_link (EvView *view, + EvLink *link); +/*** Forms ***/ +static EvFormField *ev_view_get_form_field_at_location (EvView *view, + gdouble x, + gdouble y); + +/*** Annotations ***/ +static EvAnnotation *ev_view_get_annotation_at_location (EvView *view, + gdouble x, + gdouble y); +static void show_annotation_windows (EvView *view, + gint page); +static void hide_annotation_windows (EvView *view, + gint page); +/*** GtkWidget implementation ***/ +static void ev_view_size_request_continuous_dual_page (EvView *view, + GtkRequisition *requisition); +static void ev_view_size_request_continuous (EvView *view, + GtkRequisition *requisition); +static void ev_view_size_request_dual_page (EvView *view, + GtkRequisition *requisition); +static void ev_view_size_request_single_page (EvView *view, + GtkRequisition *requisition); +static void ev_view_size_request (GtkWidget *widget, + GtkRequisition *requisition); +static void ev_view_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); +static void ev_view_realize (GtkWidget *widget); +static gboolean ev_view_scroll_event (GtkWidget *widget, + GdkEventScroll *event); +static gboolean ev_view_expose_event (GtkWidget *widget, + GdkEventExpose *event); +static gboolean ev_view_popup_menu (GtkWidget *widget); +static gboolean ev_view_button_press_event (GtkWidget *widget, + GdkEventButton *event); +static gboolean ev_view_motion_notify_event (GtkWidget *widget, + GdkEventMotion *event); +static gboolean ev_view_button_release_event (GtkWidget *widget, + GdkEventButton *event); +static gboolean ev_view_enter_notify_event (GtkWidget *widget, + GdkEventCrossing *event); +static gboolean ev_view_leave_notify_event (GtkWidget *widget, + GdkEventCrossing *event); +static void ev_view_style_set (GtkWidget *widget, + GtkStyle *old_style); +static void ev_view_remove_all (EvView *view); + +static AtkObject *ev_view_get_accessible (GtkWidget *widget); + +/*** Drawing ***/ +static void highlight_find_results (EvView *view, + int page); +static void highlight_forward_search_results (EvView *view, + int page); +static void focus_annotation (EvView *view, + int page, + GdkRectangle *clip); +static void draw_one_page (EvView *view, + gint page, + cairo_t *cr, + GdkRectangle *page_area, + GtkBorder *border, + GdkRectangle *expose_area, + gboolean *page_ready); +static void show_loading_window (EvView *view); +static void hide_loading_window (EvView *view); +static void ev_view_reload_page (EvView *view, + gint page, + cairo_region_t *region); +static void ev_view_loading_window_move (EvView *view); + +/*** Callbacks ***/ +static void ev_view_change_page (EvView *view, + gint new_page); +static void job_finished_cb (EvPixbufCache *pixbuf_cache, + cairo_region_t *region, + EvView *view); +static void ev_view_page_changed_cb (EvDocumentModel *model, + gint old_page, + gint new_page, + EvView *view); +static void on_adjustment_value_changed (GtkAdjustment *adjustment, + EvView *view); + +/*** GObject ***/ +static void ev_view_finalize (GObject *object); +static void ev_view_destroy (GtkObject *object); +static void ev_view_class_init (EvViewClass *class); +static void ev_view_init (EvView *view); + +/*** Zoom and sizing ***/ +static double zoom_for_size_fit_width (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height); +static double zoom_for_size_fit_height (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height); +static double zoom_for_size_best_fit (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height); +static void ev_view_zoom_for_size (EvView *view, + int width, + int height); +static void ev_view_zoom_for_size_continuous_and_dual_page (EvView *view, + int width, + int height); +static void ev_view_zoom_for_size_continuous (EvView *view, + int width, + int height); +static void ev_view_zoom_for_size_dual_page (EvView *view, + int width, + int height); +static void ev_view_zoom_for_size_single_page (EvView *view, + int width, + int height); +/*** Cursors ***/ +static void ev_view_set_cursor (EvView *view, + EvViewCursor new_cursor); +static void ev_view_handle_cursor_over_xy (EvView *view, + gint x, + gint y); + +/*** Find ***/ +static gint ev_view_find_get_n_results (EvView *view, + gint page); +static EvRectangle *ev_view_find_get_result (EvView *view, + gint page, + gint result); +static void jump_to_find_result (EvView *view); +static void jump_to_find_page (EvView *view, + EvViewFindDirection direction, + gint shift); +/*** Selection ***/ +static void compute_selections (EvView *view, + EvSelectionStyle style, + GdkPoint *start, + GdkPoint *stop); +static void clear_selection (EvView *view); +static void clear_link_selected (EvView *view); +static void selection_free (EvViewSelection *selection); +static char* get_selected_text (EvView *ev_view); +static void ev_view_primary_get_cb (GtkClipboard *clipboard, + GtkSelectionData *selection_data, + guint info, + gpointer data); +static void ev_view_primary_clear_cb (GtkClipboard *clipboard, + gpointer data); +static void ev_view_update_primary_selection (EvView *ev_view); + +G_DEFINE_TYPE (EvView, ev_view, GTK_TYPE_LAYOUT) + +/* HeightToPage cache */ +#define EV_HEIGHT_TO_PAGE_CACHE_KEY "ev-height-to-page-cache" + +static void +build_height_to_page (EvHeightToPageCache *cache, + EvDocument *document, + gint rotation) +{ + gboolean swap, uniform, dual_even_left; + int i; + double uniform_height, page_height, next_page_height; + double saved_height; + gdouble u_width, u_height; + gint n_pages; + + swap = (rotation == 90 || rotation == 270); + + uniform = ev_document_is_page_size_uniform (document); + n_pages = ev_document_get_n_pages (document); + dual_even_left = (n_pages > 2); + + g_free (cache->height_to_page); + g_free (cache->dual_height_to_page); + + cache->rotation = rotation; + cache->height_to_page = g_new0 (gdouble, n_pages + 1); + cache->dual_height_to_page = g_new0 (gdouble, n_pages + 2); + + if (uniform) + ev_document_get_page_size (document, 0, &u_width, &u_height); + + saved_height = 0; + for (i = 0; i <= n_pages; i++) { + if (uniform) { + uniform_height = swap ? u_width : u_height; + cache->height_to_page[i] = i * uniform_height; + } else { + if (i < n_pages) { + gdouble w, h; + + ev_document_get_page_size (document, i, &w, &h); + page_height = swap ? w : h; + } else { + page_height = 0; + } + cache->height_to_page[i] = saved_height; + saved_height += page_height; + } + } + + if (dual_even_left && !uniform) { + gdouble w, h; + + ev_document_get_page_size (document, 0, &w, &h); + saved_height = swap ? w : h; + } else { + saved_height = 0; + } + + for (i = dual_even_left; i < n_pages + 2; i += 2) { + if (uniform) { + uniform_height = swap ? u_width : u_height; + cache->dual_height_to_page[i] = ((i + dual_even_left) / 2) * uniform_height; + if (i + 1 < n_pages + 2) + cache->dual_height_to_page[i + 1] = ((i + dual_even_left) / 2) * uniform_height; + } else { + if (i + 1 < n_pages) { + gdouble w, h; + + ev_document_get_page_size (document, i + 1, &w, &h); + next_page_height = swap ? w : h; + } else { + next_page_height = 0; + } + + if (i < n_pages) { + gdouble w, h; + + ev_document_get_page_size (document, i, &w, &h); + page_height = swap ? w : h; + } else { + page_height = 0; + } + + if (i + 1 < n_pages + 2) { + cache->dual_height_to_page[i] = saved_height; + cache->dual_height_to_page[i + 1] = saved_height; + saved_height += MAX(page_height, next_page_height); + } else { + cache->dual_height_to_page[i] = saved_height; + } + } + } +} + +static void +ev_height_to_page_cache_get_height (EvHeightToPageCache *cache, + EvDocument *document, + gint page, + gint rotation, + gdouble *height, + gdouble *dual_height) +{ + if (cache->rotation != rotation) + build_height_to_page (cache, document, rotation); + + *height = cache->height_to_page[page]; + *dual_height = cache->dual_height_to_page[page]; +} + +static void +ev_height_to_page_cache_free (EvHeightToPageCache *cache) +{ + if (cache->height_to_page) { + g_free (cache->height_to_page); + cache->height_to_page = NULL; + } + + if (cache->dual_height_to_page) { + g_free (cache->dual_height_to_page); + cache->dual_height_to_page = NULL; + } + g_free (cache); +} + +static EvHeightToPageCache * +ev_view_get_height_to_page_cache (EvView *view) +{ + EvHeightToPageCache *cache; + + if (!view->document) + return NULL; + + cache = g_object_get_data (G_OBJECT (view->document), EV_HEIGHT_TO_PAGE_CACHE_KEY); + if (!cache) { + cache = g_new0 (EvHeightToPageCache, 1); + build_height_to_page (cache, view->document, view->rotation); + g_object_set_data_full (G_OBJECT (view->document), + EV_HEIGHT_TO_PAGE_CACHE_KEY, + cache, + (GDestroyNotify)ev_height_to_page_cache_free); + } + + return cache; +} + +static void +ev_view_get_height_to_page (EvView *view, + gint page, + gint *height, + gint *dual_height) +{ + gdouble h, dh; + + if (!view->height_to_page_cache) + return; + + ev_height_to_page_cache_get_height (view->height_to_page_cache, + view->document, + page, + view->rotation, + &h, &dh); + if (height) + *height = (gint)(h * view->scale + 0.5); + + if (dual_height) + *dual_height = (gint)(dh * view->scale + 0.5); +} + +static gint +ev_view_get_scrollbar_size (EvView *view, + GtkOrientation orientation) +{ + GtkWidget *widget = GTK_WIDGET (view); + GtkWidget *sb; + GtkWidget *swindow = gtk_widget_get_parent (GTK_WIDGET (view)); + GtkAllocation allocation; + GtkRequisition req; + gint spacing; + + if (!GTK_IS_SCROLLED_WINDOW (swindow)) + return 0; + + gtk_widget_get_allocation (widget, &allocation); + + if (orientation == GTK_ORIENTATION_VERTICAL) { + if (allocation.height >= view->requisition.height) + sb = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (swindow)); + else + return 0; + } else { + if (allocation.width >= view->requisition.width) + sb = gtk_scrolled_window_get_hscrollbar (GTK_SCROLLED_WINDOW (swindow)); + else + return 0; + } + + gtk_widget_style_get (swindow, "scrollbar_spacing", &spacing, NULL); + gtk_widget_size_request (sb, &req); + + return (orientation == GTK_ORIENTATION_VERTICAL ? req.width : req.height) + spacing; +} + +static void +scroll_to_point (EvView *view, + gdouble x, + gdouble y, + GtkOrientation orientation) +{ + gdouble page_size; + gdouble upper, lower; + + if (orientation == GTK_ORIENTATION_VERTICAL) { + page_size = gtk_adjustment_get_page_size (view->vadjustment); + upper = gtk_adjustment_get_upper (view->vadjustment); + lower = gtk_adjustment_get_lower (view->vadjustment); + + if (view->continuous) { + gtk_adjustment_clamp_page (view->vadjustment, + y - view->spacing / 2, + y + page_size); + } else { + gtk_adjustment_set_value (view->vadjustment, + CLAMP (y, lower, upper - page_size)); + } + } else { + page_size = gtk_adjustment_get_page_size (view->hadjustment); + upper = gtk_adjustment_get_upper (view->hadjustment); + lower = gtk_adjustment_get_lower (view->hadjustment); + + if (view->dual_page) { + gtk_adjustment_clamp_page (view->hadjustment, x, + x + page_size); + } else { + gtk_adjustment_set_value (view->hadjustment, + CLAMP (x, lower, upper - page_size)); + } + } +} + +static void +ev_view_scroll_to_page_position (EvView *view, GtkOrientation orientation) +{ + gdouble x, y; + + if (!view->document) + return; + + if ((orientation == GTK_ORIENTATION_VERTICAL && view->pending_point.y == 0) || + (orientation == GTK_ORIENTATION_HORIZONTAL && view->pending_point.x == 0)) { + GdkRectangle page_area; + GtkBorder border; + + ev_view_get_page_extents (view, view->current_page, &page_area, &border); + x = page_area.x; + y = page_area.y; + } else { + GdkPoint view_point; + + doc_point_to_view_point (view, view->current_page, + &view->pending_point, &view_point); + x = view_point.x; + y = view_point.y; + } + + scroll_to_point (view, x, y, orientation); +} + +static void +view_set_adjustment_values (EvView *view, + GtkOrientation orientation) +{ + GtkWidget *widget = GTK_WIDGET (view); + GtkAdjustment *adjustment; + GtkAllocation allocation; + int req_size; + int alloc_size; + gdouble page_size; + gdouble value; + gdouble upper; + double factor; + gint new_value; + + gtk_widget_get_allocation (widget, &allocation); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) { + req_size = view->requisition.width; + alloc_size = allocation.width; + adjustment = view->hadjustment; + } else { + req_size = view->requisition.height; + alloc_size = allocation.height; + adjustment = view->vadjustment; + } + + if (!adjustment) + return; + + factor = 1.0; + value = gtk_adjustment_get_value (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); + + switch (view->pending_scroll) { + case SCROLL_TO_KEEP_POSITION: + case SCROLL_TO_FIND_LOCATION: + factor = value / upper; + break; + case SCROLL_TO_PAGE_POSITION: + break; + case SCROLL_TO_CENTER: + factor = (value + page_size * 0.5) / upper; + break; + } + + upper = MAX (alloc_size, req_size); + page_size = alloc_size; + + gtk_adjustment_set_page_size (adjustment, page_size); + gtk_adjustment_set_step_increment (adjustment, alloc_size * 0.1); + gtk_adjustment_set_page_increment (adjustment, alloc_size * 0.9); + gtk_adjustment_set_lower (adjustment, 0); + gtk_adjustment_set_upper (adjustment, upper); + + /* + * We add 0.5 to the values before to average out our rounding errors. + */ + switch (view->pending_scroll) { + case SCROLL_TO_KEEP_POSITION: + case SCROLL_TO_FIND_LOCATION: + new_value = CLAMP (upper * factor + 0.5, 0, upper - page_size); + gtk_adjustment_set_value (adjustment, (int)new_value); + break; + case SCROLL_TO_PAGE_POSITION: + ev_view_scroll_to_page_position (view, orientation); + break; + case SCROLL_TO_CENTER: + new_value = CLAMP (upper * factor - page_size * 0.5 + 0.5, + 0, upper - page_size); + gtk_adjustment_set_value (adjustment, (int)new_value); + break; + } + + gtk_adjustment_changed (adjustment); +} + +static void +view_update_range_and_current_page (EvView *view) +{ + gint start = view->start_page; + gint end = view->end_page; + + if (ev_document_get_n_pages (view->document) <= 0 || + !ev_document_check_dimensions (view->document)) + return; + + if (view->continuous) { + GdkRectangle current_area, unused, page_area; + GtkBorder border; + gboolean found = FALSE; + gint area_max = -1, area; + gint best_current_page = -1; + int i, j = 0; + + if (!(view->vadjustment && view->hadjustment)) + return; + + current_area.x = gtk_adjustment_get_value (view->hadjustment); + current_area.width = gtk_adjustment_get_page_size (view->hadjustment); + current_area.y = gtk_adjustment_get_value (view->vadjustment); + current_area.height = gtk_adjustment_get_page_size (view->vadjustment); + + for (i = 0; i < ev_document_get_n_pages (view->document); i++) { + + ev_view_get_page_extents (view, i, &page_area, &border); + + if (gdk_rectangle_intersect (¤t_area, &page_area, &unused)) { + area = unused.width * unused.height; + + if (!found) { + area_max = area; + view->start_page = i; + found = TRUE; + best_current_page = i; + } + if (area > area_max) { + best_current_page = (area == area_max) ? MIN (i, best_current_page) : i; + area_max = area; + } + + view->end_page = i; + j = 0; + } else if (found && view->current_page <= view->end_page) { + if (view->dual_page && j < 1) { + /* In dual mode we stop searching + * after two consecutive non-visible pages. + */ + j++; + continue; + } + break; + } + } + + if (view->pending_scroll == SCROLL_TO_KEEP_POSITION) { + best_current_page = MAX (best_current_page, view->start_page); + + if (view->current_page != best_current_page) { + view->current_page = best_current_page; + hide_loading_window (view); + ev_document_model_set_page (view->model, best_current_page); + } + } + } else if (view->dual_page) { + if (view->current_page % 2 == get_dual_even_left (view)) { + view->start_page = view->current_page; + if (view->current_page + 1 < ev_document_get_n_pages (view->document)) + view->end_page = view->start_page + 1; + else + view->end_page = view->start_page; + } else { + if (view->current_page < 1) + view->start_page = view->current_page; + else + view->start_page = view->current_page - 1; + view->end_page = view->current_page; + } + } else { + view->start_page = view->current_page; + view->end_page = view->current_page; + } + + if (view->start_page == -1 || view->end_page == -1) + return; + + if (start != view->start_page || end != view->end_page) { + gint i; + + for (i = start; i < view->start_page && start != -1; i++) { + hide_annotation_windows (view, i); + } + + for (i = end; i > view->end_page && end != -1; i--) { + hide_annotation_windows (view, i); + } + } + + ev_page_cache_set_page_range (view->page_cache, + view->start_page, + view->end_page); + ev_pixbuf_cache_set_page_range (view->pixbuf_cache, + view->start_page, + view->end_page, + view->selection_info.selections); + + if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page)) + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +static void +set_scroll_adjustment (EvView *view, + GtkOrientation orientation, + GtkAdjustment *adjustment) +{ + GtkAdjustment **to_set; + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + to_set = &view->hadjustment; + else + to_set = &view->vadjustment; + + if (*to_set != adjustment) { + if (*to_set) { + g_signal_handlers_disconnect_by_func (*to_set, + (gpointer) on_adjustment_value_changed, + view); + g_object_unref (*to_set); + } + + *to_set = adjustment; + view_set_adjustment_values (view, orientation); + + if (*to_set) { + g_object_ref (*to_set); + g_signal_connect (*to_set, "value_changed", + G_CALLBACK (on_adjustment_value_changed), view); + } + } +} + +static void +ev_view_set_scroll_adjustments (GtkLayout *layout, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment) +{ + EvView *view = EV_VIEW (layout); + + set_scroll_adjustment (view, GTK_ORIENTATION_HORIZONTAL, hadjustment); + set_scroll_adjustment (view, GTK_ORIENTATION_VERTICAL, vadjustment); + + on_adjustment_value_changed (NULL, view); +} + +static void +add_scroll_binding_keypad (GtkBindingSet *binding_set, + guint keyval, + GdkModifierType modifiers, + GtkScrollType scroll, + gboolean horizontal) +{ + guint keypad_keyval = keyval - GDK_Left + GDK_KP_Left; + + gtk_binding_entry_add_signal (binding_set, keyval, modifiers, + "binding_activated", 2, + GTK_TYPE_SCROLL_TYPE, scroll, + G_TYPE_BOOLEAN, horizontal); + gtk_binding_entry_add_signal (binding_set, keypad_keyval, modifiers, + "binding_activated", 2, + GTK_TYPE_SCROLL_TYPE, scroll, + G_TYPE_BOOLEAN, horizontal); +} + +static gdouble +compute_scroll_increment (EvView *view, + GtkScrollType scroll) +{ + GtkWidget *widget = GTK_WIDGET (view); + GtkAdjustment *adjustment = view->vadjustment; + cairo_region_t *text_region, *region; + GtkAllocation allocation; + gint page; + GdkRectangle rect; + EvRectangle doc_rect; + GdkRectangle page_area; + GtkBorder border; + gdouble fraction = 1.0; + + if (scroll != GTK_SCROLL_PAGE_BACKWARD && scroll != GTK_SCROLL_PAGE_FORWARD) + return gtk_adjustment_get_page_size (adjustment); + + page = scroll == GTK_SCROLL_PAGE_BACKWARD ? view->start_page : view->end_page; + + text_region = ev_page_cache_get_text_mapping (view->page_cache, page); + if (!text_region || cairo_region_is_empty (text_region)) + return gtk_adjustment_get_page_size (adjustment); + + gtk_widget_get_allocation (widget, &allocation); + ev_view_get_page_extents (view, page, &page_area, &border); + rect.x = page_area.x + view->scroll_x; + rect.y = view->scroll_y + (scroll == GTK_SCROLL_PAGE_BACKWARD ? 5 : allocation.height - 5); + rect.width = page_area.width; + rect.height = 1; + view_rect_to_doc_rect (view, &rect, &page_area, &doc_rect); + + /* Convert the doc rectangle into a GdkRectangle */ + rect.x = doc_rect.x1; + rect.y = doc_rect.y1; + rect.width = doc_rect.x2 - doc_rect.x1; + rect.height = MAX (1, doc_rect.y2 - doc_rect.y1); + region = cairo_region_create_rectangle (&rect); + + cairo_region_intersect (region, text_region); + if (cairo_region_num_rectangles (region)) { + EvRenderContext *rc; + EvPage *ev_page; + cairo_region_t *sel_region; + + cairo_region_get_rectangle (region, 0, &rect); + ev_page = ev_document_get_page (view->document, page); + rc = ev_render_context_new (ev_page, view->rotation, view->scale); + g_object_unref (ev_page); + /* Get the selection region to know the height of the line */ + doc_rect.x1 = doc_rect.x2 = rect.x + 0.5; + doc_rect.y1 = doc_rect.y2 = rect.y + 0.5; + + ev_document_doc_mutex_lock (); + sel_region = ev_selection_get_selection_region (EV_SELECTION (view->document), + rc, EV_SELECTION_STYLE_LINE, + &doc_rect); + ev_document_doc_mutex_unlock (); + + g_object_unref (rc); + + if (cairo_region_num_rectangles (sel_region) > 0) { + cairo_region_get_rectangle (sel_region, 0, &rect); + fraction = 1 - (rect.height / gtk_adjustment_get_page_size (adjustment)); + } + cairo_region_destroy (sel_region); + } + cairo_region_destroy (region); + + return gtk_adjustment_get_page_size (adjustment) * fraction; + +} + +void +ev_view_scroll (EvView *view, + GtkScrollType scroll, + gboolean horizontal) +{ + GtkAdjustment *adjustment; + double value, increment; + gdouble upper, lower; + gdouble page_size; + gdouble step_increment; + gboolean first_page = FALSE; + gboolean last_page = FALSE; + + view->jump_to_find_result = FALSE; + + if (view->sizing_mode == EV_SIZING_BEST_FIT) { + switch (scroll) { + case GTK_SCROLL_PAGE_BACKWARD: + case GTK_SCROLL_STEP_BACKWARD: + ev_view_previous_page (view); + break; + case GTK_SCROLL_PAGE_FORWARD: + case GTK_SCROLL_STEP_FORWARD: + ev_view_next_page (view); + break; + default: + break; + } + return; + } + + /* Assign values for increment and vertical adjustment */ + adjustment = horizontal ? view->hadjustment : view->vadjustment; + value = gtk_adjustment_get_value (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + lower = gtk_adjustment_get_lower (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); + step_increment = gtk_adjustment_get_step_increment (adjustment); + + /* Assign boolean for first and last page */ + if (view->current_page == 0) + first_page = TRUE; + if (view->current_page == ev_document_get_n_pages (view->document) - 1) + last_page = TRUE; + + switch (scroll) { + case GTK_SCROLL_PAGE_BACKWARD: + /* Do not jump backwards if at the first page */ + if (value == lower && first_page) { + /* Do nothing */ + /* At the top of a page, assign the upper bound limit of previous page */ + } else if (value == lower) { + value = upper - page_size; + ev_view_previous_page (view); + /* Jump to the top */ + } else { + increment = compute_scroll_increment (view, GTK_SCROLL_PAGE_BACKWARD); + value = MAX (value - increment, lower); + } + break; + case GTK_SCROLL_PAGE_FORWARD: + /* Do not jump forward if at the last page */ + if (value == (upper - page_size) && last_page) { + /* Do nothing */ + /* At the bottom of a page, assign the lower bound limit of next page */ + } else if (value == (upper - page_size)) { + value = 0; + ev_view_next_page (view); + /* Jump to the bottom */ + } else { + increment = compute_scroll_increment (view, GTK_SCROLL_PAGE_FORWARD); + value = MIN (value + increment, upper - page_size); + } + break; + case GTK_SCROLL_STEP_BACKWARD: + value -= step_increment; + break; + case GTK_SCROLL_STEP_FORWARD: + value += step_increment; + break; + case GTK_SCROLL_STEP_DOWN: + value -= step_increment / 10; + break; + case GTK_SCROLL_STEP_UP: + value += step_increment / 10; + break; + default: + break; + } + + value = CLAMP (value, lower, upper - page_size); + + gtk_adjustment_set_value (adjustment, value); +} + +#define MARGIN 5 + +static void +ensure_rectangle_is_visible (EvView *view, GdkRectangle *rect) +{ + GtkWidget *widget = GTK_WIDGET (view); + GtkAdjustment *adjustment; + GtkAllocation allocation; + gdouble adj_value; + int value; + + view->pending_scroll = SCROLL_TO_FIND_LOCATION; + + gtk_widget_get_allocation (widget, &allocation); + + adjustment = view->vadjustment; + adj_value = gtk_adjustment_get_value (adjustment); + + if (rect->y < adj_value) { + value = MAX (gtk_adjustment_get_lower (adjustment), rect->y - MARGIN); + gtk_adjustment_set_value (view->vadjustment, value); + } else if (rect->y + rect->height > adj_value + allocation.height) { + value = MIN (gtk_adjustment_get_upper (adjustment), rect->y + rect->height - + allocation.height + MARGIN); + gtk_adjustment_set_value (view->vadjustment, value); + } + + adjustment = view->hadjustment; + adj_value = gtk_adjustment_get_value (adjustment); + + if (rect->x < adj_value) { + value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN); + gtk_adjustment_set_value (view->hadjustment, value); + } else if (rect->x + rect->height > adj_value + allocation.width) { + value = MIN (gtk_adjustment_get_upper (adjustment), rect->x + rect->width - + allocation.width + MARGIN); + gtk_adjustment_set_value (view->hadjustment, value); + } + + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +/*** Geometry computations ***/ + +static void +compute_border (EvView *view, int width, int height, GtkBorder *border) +{ + ev_document_misc_get_page_border_size (width, height, border); +} + +void +_get_page_size_for_scale_and_rotation (EvDocument *document, + gint page, + gdouble scale, + gint rotation, + gint *page_width, + gint *page_height) +{ + gdouble w, h; + gint width, height; + + ev_document_get_page_size (document, page, &w, &h); + + width = (gint)(w * scale + 0.5); + height = (gint)(h * scale + 0.5); + + if (page_width) + *page_width = (rotation == 0 || rotation == 180) ? width : height; + if (page_height) + *page_height = (rotation == 0 || rotation == 180) ? height : width; +} + +static void +ev_view_get_page_size (EvView *view, + gint page, + gint *page_width, + gint *page_height) +{ + _get_page_size_for_scale_and_rotation (view->document, + page, + view->scale, + view->rotation, + page_width, + page_height); +} + +static void +ev_view_get_max_page_size (EvView *view, + gint *max_width, + gint *max_height) +{ + double w, h; + gint width, height; + + ev_document_get_max_page_size (view->document, &w, &h); + + width = (gint)(w * view->scale + 0.5); + height = (gint)(h * view->scale + 0.5); + + if (max_width) + *max_width = (view->rotation == 0 || view->rotation == 180) ? width : height; + if (max_height) + *max_height = (view->rotation == 0 || view->rotation == 180) ? height : width; +} + +static void +get_page_y_offset (EvView *view, int page, int *y_offset) +{ + int max_width, offset; + GtkBorder border; + + g_return_if_fail (y_offset != NULL); + + ev_view_get_max_page_size (view, &max_width, NULL); + compute_border (view, max_width, max_width, &border); + + if (view->dual_page) { + ev_view_get_height_to_page (view, page, NULL, &offset); + offset += ((page + get_dual_even_left (view)) / 2 + 1) * view->spacing + + ((page + get_dual_even_left (view)) / 2 ) * (border.top + border.bottom); + } else { + ev_view_get_height_to_page (view, page, &offset, NULL); + offset += (page + 1) * view->spacing + page * (border.top + border.bottom); + } + + *y_offset = offset; + return; +} + +gboolean +ev_view_get_page_extents (EvView *view, + gint page, + GdkRectangle *page_area, + GtkBorder *border) +{ + GtkWidget *widget; + int width, height; + GtkAllocation allocation; + + widget = GTK_WIDGET (view); + gtk_widget_get_allocation (widget, &allocation); + + /* Get the size of the page */ + ev_view_get_page_size (view, page, &width, &height); + compute_border (view, width, height, border); + page_area->width = width + border->left + border->right; + page_area->height = height + border->top + border->bottom; + + if (view->continuous) { + gint max_width; + gint x, y; + + ev_view_get_max_page_size (view, &max_width, NULL); + max_width = max_width + border->left + border->right; + /* Get the location of the bounding box */ + if (view->dual_page) { + x = view->spacing + ((page % 2 == get_dual_even_left (view)) ? 0 : 1) * (max_width + view->spacing); + x = x + MAX (0, allocation.width - (max_width * 2 + view->spacing * 3)) / 2; + if (page % 2 == get_dual_even_left (view)) + x = x + (max_width - width - border->left - border->right); + } else { + x = view->spacing; + x = x + MAX (0, allocation.width - (width + view->spacing * 2)) / 2; + } + + get_page_y_offset (view, page, &y); + + page_area->x = x; + page_area->y = y; + } else { + gint x, y; + if (view->dual_page) { + gint width_2, height_2; + gint max_width = width; + gint max_height = height; + GtkBorder overall_border; + gint other_page; + + other_page = (page % 2 == get_dual_even_left (view)) ? page + 1: page - 1; + + /* First, we get the bounding box of the two pages */ + if (other_page < ev_document_get_n_pages (view->document) + && (0 <= other_page)) { + ev_view_get_page_size (view, other_page, + &width_2, &height_2); + if (width_2 > width) + max_width = width_2; + if (height_2 > height) + max_height = height_2; + } + compute_border (view, max_width, max_height, &overall_border); + + /* Find the offsets */ + x = view->spacing; + y = view->spacing; + + /* Adjust for being the left or right page */ + if (page % 2 == get_dual_even_left (view)) + x = x + max_width - width; + else + x = x + (max_width + overall_border.left + overall_border.right) + view->spacing; + + y = y + (max_height - height)/2; + + /* Adjust for extra allocation */ + x = x + MAX (0, allocation.width - + ((max_width + overall_border.left + overall_border.right) * 2 + view->spacing * 3))/2; + y = y + MAX (0, allocation.height - (height + view->spacing * 2))/2; + } else { + x = view->spacing; + y = view->spacing; + + /* Adjust for extra allocation */ + x = x + MAX (0, allocation.width - (width + border->left + border->right + view->spacing * 2))/2; + y = y + MAX (0, allocation.height - (height + border->top + border->bottom + view->spacing * 2))/2; + } + + page_area->x = x; + page_area->y = y; + } + + return TRUE; +} + +static void +get_doc_page_size (EvView *view, + gint page, + gdouble *width, + gdouble *height) +{ + double w, h; + + ev_document_get_page_size (view->document, page, &w, &h); + if (view->rotation == 0 || view->rotation == 180) { + if (width) *width = w; + if (height) *height = h; + } else { + if (width) *width = h; + if (height) *height = w; + } +} + +static void +view_point_to_doc_point (EvView *view, + GdkPoint *view_point, + GdkRectangle *page_area, + double *doc_point_x, + double *doc_point_y) +{ + *doc_point_x = (double) (view_point->x - page_area->x) / view->scale; + *doc_point_y = (double) (view_point->y - page_area->y) / view->scale; +} + +static void +view_rect_to_doc_rect (EvView *view, + GdkRectangle *view_rect, + GdkRectangle *page_area, + EvRectangle *doc_rect) +{ + doc_rect->x1 = (double) (view_rect->x - page_area->x) / view->scale; + doc_rect->y1 = (double) (view_rect->y - page_area->y) / view->scale; + doc_rect->x2 = doc_rect->x1 + (double) view_rect->width / view->scale; + doc_rect->y2 = doc_rect->y1 + (double) view_rect->height / view->scale; +} + +static void +doc_point_to_view_point (EvView *view, + int page, + EvPoint *doc_point, + GdkPoint *view_point) +{ + GdkRectangle page_area; + GtkBorder border; + double x, y, view_x, view_y; + gdouble width, height; + + get_doc_page_size (view, page, &width, &height); + + if (view->rotation == 0) { + x = doc_point->x; + y = doc_point->y; + } else if (view->rotation == 90) { + x = width - doc_point->y; + y = doc_point->x; + } else if (view->rotation == 180) { + x = width - doc_point->x; + y = height - doc_point->y; + } else if (view->rotation == 270) { + x = doc_point->y; + y = height - doc_point->x; + } else { + g_assert_not_reached (); + } + + ev_view_get_page_extents (view, page, &page_area, &border); + + view_x = CLAMP (x * view->scale, 0, page_area.width); + view_y = CLAMP (y * view->scale, 0, page_area.height); + view_point->x = view_x + page_area.x; + view_point->y = view_y + page_area.y; +} + +static void +doc_rect_to_view_rect (EvView *view, + int page, + EvRectangle *doc_rect, + GdkRectangle *view_rect) +{ + GdkRectangle page_area; + GtkBorder border; + double x, y, w, h; + gdouble width, height; + + get_doc_page_size (view, page, &width, &height); + + if (view->rotation == 0) { + x = doc_rect->x1; + y = doc_rect->y1; + w = doc_rect->x2 - doc_rect->x1; + h = doc_rect->y2 - doc_rect->y1; + } else if (view->rotation == 90) { + x = width - doc_rect->y2; + y = doc_rect->x1; + w = doc_rect->y2 - doc_rect->y1; + h = doc_rect->x2 - doc_rect->x1; + } else if (view->rotation == 180) { + x = width - doc_rect->x2; + y = height - doc_rect->y2; + w = doc_rect->x2 - doc_rect->x1; + h = doc_rect->y2 - doc_rect->y1; + } else if (view->rotation == 270) { + x = doc_rect->y1; + y = height - doc_rect->x2; + w = doc_rect->y2 - doc_rect->y1; + h = doc_rect->x2 - doc_rect->x1; + } else { + g_assert_not_reached (); + } + + ev_view_get_page_extents (view, page, &page_area, &border); + + view_rect->x = x * view->scale + page_area.x; + view_rect->y = y * view->scale + page_area.y; + view_rect->width = w * view->scale; + view_rect->height = h * view->scale; +} + +static gboolean +get_dual_even_left (EvView *view) +{ + return (ev_document_get_n_pages (view->document) > 2); +} + +static void +find_page_at_location (EvView *view, + gdouble x, + gdouble y, + gint *page, + gint *x_offset, + gint *y_offset) +{ + int i; + + if (view->document == NULL) + return; + + g_assert (page); + g_assert (x_offset); + g_assert (y_offset); + + for (i = view->start_page; i >= 0 && i <= view->end_page; i++) { + GdkRectangle page_area; + GtkBorder border; + + if (! ev_view_get_page_extents (view, i, &page_area, &border)) + continue; + + if ((x >= page_area.x + border.left) && + (x < page_area.x + page_area.width - border.right) && + (y >= page_area.y + border.top) && + (y < page_area.y + page_area.height - border.bottom)) { + *page = i; + *x_offset = x - (page_area.x + border.left); + *y_offset = y - (page_area.y + border.top); + return; + } + } + + *page = -1; +} + +static gboolean +location_in_text (EvView *view, + gdouble x, + gdouble y) +{ + cairo_region_t *region; + gint page = -1; + gint x_offset = 0, y_offset = 0; + + find_page_at_location (view, x, y, &page, &x_offset, &y_offset); + + if (page == -1) + return FALSE; + + region = ev_page_cache_get_text_mapping (view->page_cache, page); + + if (region) + return cairo_region_contains_point (region, x_offset / view->scale, y_offset / view->scale); + else + return FALSE; +} + +static gboolean +location_in_selected_text (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_offset = 0, y_offset = 0; + EvViewSelection *selection; + GList *l = NULL; + + for (l = view->selection_info.selections; l != NULL; l = l->next) { + selection = (EvViewSelection *)l->data; + + find_page_at_location (view, x, y, &page, &x_offset, &y_offset); + + if (page != selection->page) + continue; + + if (selection->covered_region && + cairo_region_contains_point (selection->covered_region, x_offset, y_offset)) + return TRUE; + } + + return FALSE; +} + +static gboolean +get_doc_point_from_offset (EvView *view, + gint page, + gint x_offset, + gint y_offset, + gint *x_new, + gint *y_new) +{ + gdouble width, height; + double x, y; + + get_doc_page_size (view, page, &width, &height); + + x_offset = x_offset / view->scale; + y_offset = y_offset / view->scale; + + if (view->rotation == 0) { + x = x_offset; + y = y_offset; + } else if (view->rotation == 90) { + x = y_offset; + y = width - x_offset; + } else if (view->rotation == 180) { + x = width - x_offset; + y = height - y_offset; + } else if (view->rotation == 270) { + x = height - y_offset; + y = x_offset; + } else { + g_assert_not_reached (); + } + + *x_new = x; + *y_new = y; + + return TRUE; +} + +static gboolean +get_doc_point_from_location (EvView *view, + gdouble x, + gdouble y, + gint *page, + gint *x_new, + gint *y_new) +{ + gint x_offset = 0, y_offset = 0; + + x += view->scroll_x; + y += view->scroll_y; + find_page_at_location (view, x, y, page, &x_offset, &y_offset); + if (*page == -1) + return FALSE; + + return get_doc_point_from_offset (view, *page, x_offset, y_offset, x_new, y_new); +} + +static void +ev_view_get_area_from_mapping (EvView *view, + guint page, + EvMappingList *mapping_list, + gconstpointer data, + GdkRectangle *area) +{ + EvMapping *mapping; + + mapping = ev_mapping_list_find (mapping_list, data); + doc_rect_to_view_rect (view, page, &mapping->area, area); + area->x -= view->scroll_x; + area->y -= view->scroll_y; +} + + +/*** Hyperref ***/ +static EvLink * +ev_view_get_link_at_location (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_new = 0, y_new = 0; + EvMappingList *link_mapping; + + if (!EV_IS_DOCUMENT_LINKS (view->document)) + return NULL; + + if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new)) + return NULL; + + link_mapping = ev_page_cache_get_link_mapping (view->page_cache, page); + + if (link_mapping) + return ev_mapping_list_get_data (link_mapping, x_new, y_new); + else + return NULL; +} + +static void +goto_fitr_dest (EvView *view, EvLinkDest *dest) +{ + EvPoint doc_point; + gdouble zoom, left, top; + gboolean change_left, change_top; + GtkAllocation allocation; + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + + left = ev_link_dest_get_left (dest, &change_left); + top = ev_link_dest_get_top (dest, &change_top); + + zoom = zoom_for_size_best_fit (ev_link_dest_get_right (dest) - left, + ev_link_dest_get_bottom (dest) - top, + allocation.width, + allocation.height); + + ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE); + ev_document_model_set_scale (view->model, zoom); + + doc_point.x = change_left ? left : 0; + doc_point.y = change_top ? top : 0; + view->pending_point = doc_point; + + ev_view_change_page (view, ev_link_dest_get_page (dest)); +} + +static void +goto_fitv_dest (EvView *view, EvLinkDest *dest) +{ + EvPoint doc_point; + gdouble doc_width, doc_height; + gint page; + double zoom, left; + gboolean change_left; + GtkAllocation allocation; + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + + page = ev_link_dest_get_page (dest); + ev_document_get_page_size (view->document, page, &doc_width, &doc_height); + + left = ev_link_dest_get_left (dest, &change_left); + doc_point.x = change_left ? left : 0; + doc_point.y = 0; + + zoom = zoom_for_size_fit_height (doc_width - doc_point.x , doc_height, + allocation.width, + allocation.height); + + ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE); + ev_document_model_set_scale (view->model, zoom); + + view->pending_point = doc_point; + + ev_view_change_page (view, page); +} + +static void +goto_fith_dest (EvView *view, EvLinkDest *dest) +{ + EvPoint doc_point; + gdouble doc_width, doc_height; + gint page; + gdouble zoom, top; + gboolean change_top; + GtkAllocation allocation; + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + + page = ev_link_dest_get_page (dest); + ev_document_get_page_size (view->document, page, &doc_width, &doc_height); + + top = ev_link_dest_get_top (dest, &change_top); + + doc_point.x = 0; + doc_point.y = change_top ? top : 0; + + zoom = zoom_for_size_fit_width (doc_width, top, + allocation.width, + allocation.height); + + ev_document_model_set_sizing_mode (view->model, EV_SIZING_FIT_WIDTH); + ev_document_model_set_scale (view->model, zoom); + + view->pending_point = doc_point; + + ev_view_change_page (view, page); +} + +static void +goto_fit_dest (EvView *view, EvLinkDest *dest) +{ + double zoom; + gdouble doc_width, doc_height; + int page; + GtkAllocation allocation; + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + + page = ev_link_dest_get_page (dest); + ev_document_get_page_size (view->document, page, &doc_width, &doc_height); + + zoom = zoom_for_size_best_fit (doc_width, doc_height, + allocation.width, + allocation.height); + + ev_document_model_set_sizing_mode (view->model, EV_SIZING_BEST_FIT); + ev_document_model_set_scale (view->model, zoom); + + ev_view_change_page (view, page); +} + +static void +goto_xyz_dest (EvView *view, EvLinkDest *dest) +{ + EvPoint doc_point; + gint page; + gdouble zoom, left, top; + gboolean change_zoom, change_left, change_top; + + zoom = ev_link_dest_get_zoom (dest, &change_zoom); + page = ev_link_dest_get_page (dest); + + if (change_zoom && zoom > 1) { + ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE); + ev_document_model_set_scale (view->model, zoom); + } + + left = ev_link_dest_get_left (dest, &change_left); + top = ev_link_dest_get_top (dest, &change_top); + + doc_point.x = change_left ? left : 0; + doc_point.y = change_top ? top : 0; + view->pending_point = doc_point; + + ev_view_change_page (view, page); +} + +static void +goto_dest (EvView *view, EvLinkDest *dest) +{ + EvLinkDestType type; + int page, n_pages, current_page; + + page = ev_link_dest_get_page (dest); + n_pages = ev_document_get_n_pages (view->document); + + if (page < 0 || page >= n_pages) + return; + + current_page = view->current_page; + + type = ev_link_dest_get_dest_type (dest); + + switch (type) { + case EV_LINK_DEST_TYPE_PAGE: + ev_document_model_set_page (view->model, page); + break; + case EV_LINK_DEST_TYPE_FIT: + goto_fit_dest (view, dest); + break; + case EV_LINK_DEST_TYPE_FITH: + goto_fith_dest (view, dest); + break; + case EV_LINK_DEST_TYPE_FITV: + goto_fitv_dest (view, dest); + break; + case EV_LINK_DEST_TYPE_FITR: + goto_fitr_dest (view, dest); + break; + case EV_LINK_DEST_TYPE_XYZ: + goto_xyz_dest (view, dest); + break; + case EV_LINK_DEST_TYPE_PAGE_LABEL: + ev_document_model_set_page_by_label (view->model, ev_link_dest_get_page_label (dest)); + break; + default: + g_assert_not_reached (); + } + + if (current_page != view->current_page) + ev_document_model_set_page (view->model, view->current_page); +} + +static void +ev_view_goto_dest (EvView *view, EvLinkDest *dest) +{ + EvLinkDestType type; + + type = ev_link_dest_get_dest_type (dest); + + if (type == EV_LINK_DEST_TYPE_NAMED) { + EvLinkDest *dest2; + const gchar *named_dest; + + named_dest = ev_link_dest_get_named_dest (dest); + dest2 = ev_document_links_find_link_dest (EV_DOCUMENT_LINKS (view->document), + named_dest); + if (dest2) { + goto_dest (view, dest2); + g_object_unref (dest2); + } + + return; + } + + goto_dest (view, dest); +} + +void +ev_view_handle_link (EvView *view, EvLink *link) +{ + EvLinkAction *action = NULL; + EvLinkActionType type; + + action = ev_link_get_action (link); + if (!action) + return; + + type = ev_link_action_get_action_type (action); + + switch (type) { + case EV_LINK_ACTION_TYPE_GOTO_DEST: { + EvLinkDest *dest; + + g_signal_emit (view, signals[SIGNAL_HANDLE_LINK], 0, link); + + dest = ev_link_action_get_dest (action); + ev_view_goto_dest (view, dest); + } + break; + case EV_LINK_ACTION_TYPE_GOTO_REMOTE: + case EV_LINK_ACTION_TYPE_EXTERNAL_URI: + case EV_LINK_ACTION_TYPE_LAUNCH: + case EV_LINK_ACTION_TYPE_NAMED: + g_signal_emit (view, signals[SIGNAL_EXTERNAL_LINK], 0, action); + break; + } +} + +static char * +tip_from_action_named (EvLinkAction *action) +{ + const gchar *name = ev_link_action_get_name (action); + + if (g_ascii_strcasecmp (name, "FirstPage") == 0) { + return g_strdup (_("Go to first page")); + } else if (g_ascii_strcasecmp (name, "PrevPage") == 0) { + return g_strdup (_("Go to previous page")); + } else if (g_ascii_strcasecmp (name, "NextPage") == 0) { + return g_strdup (_("Go to next page")); + } else if (g_ascii_strcasecmp (name, "LastPage") == 0) { + return g_strdup (_("Go to last page")); + } else if (g_ascii_strcasecmp (name, "GoToPage") == 0) { + return g_strdup (_("Go to page")); + } else if (g_ascii_strcasecmp (name, "Find") == 0) { + return g_strdup (_("Find")); + } + + return NULL; +} + +static char * +tip_from_link (EvView *view, EvLink *link) +{ + EvLinkAction *action; + EvLinkActionType type; + char *msg = NULL; + char *page_label; + const char *title; + + action = ev_link_get_action (link); + title = ev_link_get_title (link); + + if (!action) + return title ? g_strdup (title) : NULL; + + type = ev_link_action_get_action_type (action); + + switch (type) { + case EV_LINK_ACTION_TYPE_GOTO_DEST: + page_label = ev_document_links_get_dest_page_label (EV_DOCUMENT_LINKS (view->document), + ev_link_action_get_dest (action)); + if (page_label) { + msg = g_strdup_printf (_("Go to page %s"), page_label); + g_free (page_label); + } + break; + case EV_LINK_ACTION_TYPE_GOTO_REMOTE: + if (title) { + msg = g_strdup_printf (_("Go to %s on file ā%sā"), title, + ev_link_action_get_filename (action)); + } else { + msg = g_strdup_printf (_("Go to file ā%sā"), + ev_link_action_get_filename (action)); + } + break; + case EV_LINK_ACTION_TYPE_EXTERNAL_URI: + msg = g_strdup (ev_link_action_get_uri (action)); + break; + case EV_LINK_ACTION_TYPE_LAUNCH: + msg = g_strdup_printf (_("Launch %s"), + ev_link_action_get_filename (action)); + break; + case EV_LINK_ACTION_TYPE_NAMED: + msg = tip_from_action_named (action); + break; + default: + if (title) + msg = g_strdup (title); + break; + } + + return msg; +} + +static void +ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y) +{ + EvLink *link; + EvFormField *field; + EvAnnotation *annot = NULL; + + if (view->cursor == EV_VIEW_CURSOR_HIDDEN) + return; + + if (view->adding_annot) { + if (view->cursor != EV_VIEW_CURSOR_ADD) + ev_view_set_cursor (view, EV_VIEW_CURSOR_ADD); + return; + } + + if (view->drag_info.in_drag) { + if (view->cursor != EV_VIEW_CURSOR_DRAG) + ev_view_set_cursor (view, EV_VIEW_CURSOR_DRAG); + return; + } + + if (view->scroll_info.autoscrolling) { + if (view->cursor != EV_VIEW_CURSOR_AUTOSCROLL) + ev_view_set_cursor (view, EV_VIEW_CURSOR_AUTOSCROLL); + return; + } + + link = ev_view_get_link_at_location (view, x, y); + if (link) { + ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK); + } else if ((field = ev_view_get_form_field_at_location (view, x, y))) { + if (field->is_read_only) { + if (view->cursor == EV_VIEW_CURSOR_LINK || + view->cursor == EV_VIEW_CURSOR_IBEAM || + view->cursor == EV_VIEW_CURSOR_DRAG) + ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL); + } else if (EV_IS_FORM_FIELD_TEXT (field)) { + ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM); + } else { + ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK); + } + } else if ((annot = ev_view_get_annotation_at_location (view, x, y))) { + ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK); + } else if (location_in_text (view, x + view->scroll_x, y + view->scroll_y)) { + ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM); + } else { + if (view->cursor == EV_VIEW_CURSOR_LINK || + view->cursor == EV_VIEW_CURSOR_IBEAM || + view->cursor == EV_VIEW_CURSOR_DRAG || + view->cursor == EV_VIEW_CURSOR_AUTOSCROLL || + view->cursor == EV_VIEW_CURSOR_ADD) + ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL); + } + + if (link || annot) + g_object_set (view, "has-tooltip", TRUE, NULL); +} + +/*** Images ***/ +static EvImage * +ev_view_get_image_at_location (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_new = 0, y_new = 0; + EvMappingList *image_mapping; + + if (!EV_IS_DOCUMENT_IMAGES (view->document)) + return NULL; + + if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new)) + return NULL; + + image_mapping = ev_page_cache_get_image_mapping (view->page_cache, page); + + if (image_mapping) + return ev_mapping_list_get_data (image_mapping, x_new, y_new); + else + return NULL; +} + +/*** Forms ***/ +static EvFormField * +ev_view_get_form_field_at_location (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_new = 0, y_new = 0; + EvMappingList *forms_mapping; + + if (!EV_IS_DOCUMENT_FORMS (view->document)) + return NULL; + + if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new)) + return NULL; + + forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, page); + + if (forms_mapping) + return ev_mapping_list_get_data (forms_mapping, x_new, y_new); + else + return NULL; +} + +static cairo_region_t * +ev_view_form_field_get_region (EvView *view, + EvFormField *field) +{ + GdkRectangle view_area; + EvMappingList *forms_mapping; + + forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, + field->page->index); + ev_view_get_area_from_mapping (view, field->page->index, + forms_mapping, + field, &view_area); + + return cairo_region_create_rectangle (&view_area); +} + +static gboolean +ev_view_forms_remove_widgets (EvView *view) +{ + ev_view_remove_all (view); + + return FALSE; +} + +static void +ev_view_form_field_destroy (GtkWidget *widget, + EvView *view) +{ + g_idle_add ((GSourceFunc)ev_view_forms_remove_widgets, view); +} + +static GtkWidget * +ev_view_form_field_button_create_widget (EvView *view, + EvFormField *field) +{ + EvFormFieldButton *field_button = EV_FORM_FIELD_BUTTON (field); + cairo_region_t *field_region = NULL; + + switch (field_button->type) { + case EV_FORM_FIELD_BUTTON_PUSH: + return NULL; + case EV_FORM_FIELD_BUTTON_CHECK: + case EV_FORM_FIELD_BUTTON_RADIO: { + gboolean state; + EvMappingList *forms_mapping; + GList *l; + + state = ev_document_forms_form_field_button_get_state (EV_DOCUMENT_FORMS (view->document), + field); + + /* FIXME: it actually depends on NoToggleToOff flags */ + if (field_button->type == EV_FORM_FIELD_BUTTON_RADIO && + state && field_button->state) + return NULL; + + field_region = ev_view_form_field_get_region (view, field); + + /* For radio buttons and checkbox buttons that are in a set + * we need to update also the region for the current selected item + */ + forms_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, + field->page->index); + for (l = ev_mapping_list_get_list (forms_mapping); l; l = g_list_next (l)) { + EvFormField *button = ((EvMapping *)(l->data))->data; + cairo_region_t *button_region; + + if (button->id == field->id) + continue; + + /* FIXME: only buttons in the same group should be updated */ + if (!EV_IS_FORM_FIELD_BUTTON (button) || + EV_FORM_FIELD_BUTTON (button)->type != field_button->type || + EV_FORM_FIELD_BUTTON (button)->state != TRUE) + continue; + + button_region = ev_view_form_field_get_region (view, button); + cairo_region_union (field_region, button_region); + cairo_region_destroy (button_region); + } + + ev_document_forms_form_field_button_set_state (EV_DOCUMENT_FORMS (view->document), + field, !state); + field_button->state = !state; + } + break; + } + + ev_view_reload_page (view, field->page->index, field_region); + cairo_region_destroy (field_region); + + return NULL; +} + +static void +ev_view_form_field_text_save (EvView *view, + GtkWidget *widget) +{ + EvFormField *field; + + if (!view->document) + return; + + field = g_object_get_data (G_OBJECT (widget), "form-field"); + + if (field->changed) { + EvFormFieldText *field_text = EV_FORM_FIELD_TEXT (field); + cairo_region_t *field_region; + + field_region = ev_view_form_field_get_region (view, field); + + ev_document_forms_form_field_text_set_text (EV_DOCUMENT_FORMS (view->document), + field, field_text->text); + field->changed = FALSE; + ev_view_reload_page (view, field->page->index, field_region); + cairo_region_destroy (field_region); + } +} + +static void +ev_view_form_field_text_changed (GtkWidget *widget, + EvFormField *field) +{ + EvFormFieldText *field_text = EV_FORM_FIELD_TEXT (field); + gchar *text = NULL; + + if (GTK_IS_ENTRY (widget)) { + text = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget))); + } else if (GTK_IS_TEXT_BUFFER (widget)) { + GtkTextIter start, end; + + gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (widget), &start, &end); + text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (widget), + &start, &end, FALSE); + } + + if (!field_text->text || + (field_text->text && g_ascii_strcasecmp (field_text->text, text) != 0)) { + g_free (field_text->text); + field_text->text = text; + field->changed = TRUE; + } +} + +static GtkWidget * +ev_view_form_field_text_create_widget (EvView *view, + EvFormField *field) +{ + EvFormFieldText *field_text = EV_FORM_FIELD_TEXT (field); + GtkWidget *text = NULL; + gchar *txt; + + txt = ev_document_forms_form_field_text_get_text (EV_DOCUMENT_FORMS (view->document), + field); + + switch (field_text->type) { + case EV_FORM_FIELD_TEXT_FILE_SELECT: + /* TODO */ + case EV_FORM_FIELD_TEXT_NORMAL: + text = gtk_entry_new (); + gtk_entry_set_has_frame (GTK_ENTRY (text), FALSE); + gtk_entry_set_max_length (GTK_ENTRY (text), field_text->max_len); + gtk_entry_set_visibility (GTK_ENTRY (text), !field_text->is_password); + + if (txt) { + gtk_entry_set_text (GTK_ENTRY (text), txt); + g_free (txt); + } + + g_signal_connect (text, "changed", + G_CALLBACK (ev_view_form_field_text_changed), + field); + g_signal_connect_after (text, "activate", + G_CALLBACK (ev_view_form_field_destroy), + view); + break; + case EV_FORM_FIELD_TEXT_MULTILINE: { + GtkTextBuffer *buffer; + + text = gtk_text_view_new (); + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); + + if (txt) { + gtk_text_buffer_set_text (buffer, txt, -1); + g_free (txt); + } + + g_signal_connect (buffer, "changed", + G_CALLBACK (ev_view_form_field_text_changed), + field); + } + break; + } + + g_object_weak_ref (G_OBJECT (text), + (GWeakNotify)ev_view_form_field_text_save, + view); + + return text; +} + +static void +ev_view_form_field_choice_save (EvView *view, + GtkWidget *widget) +{ + EvFormField *field; + + if (!view->document) + return; + + field = g_object_get_data (G_OBJECT (widget), "form-field"); + + if (field->changed) { + GList *l; + EvFormFieldChoice *field_choice = EV_FORM_FIELD_CHOICE (field); + cairo_region_t *field_region; + + field_region = ev_view_form_field_get_region (view, field); + + if (field_choice->is_editable) { + ev_document_forms_form_field_choice_set_text (EV_DOCUMENT_FORMS (view->document), + field, field_choice->text); + } else { + ev_document_forms_form_field_choice_unselect_all (EV_DOCUMENT_FORMS (view->document), field); + for (l = field_choice->selected_items; l; l = g_list_next (l)) { + ev_document_forms_form_field_choice_select_item (EV_DOCUMENT_FORMS (view->document), + field, + GPOINTER_TO_INT (l->data)); + } + } + field->changed = FALSE; + ev_view_reload_page (view, field->page->index, field_region); + cairo_region_destroy (field_region); + } +} + +static void +ev_view_form_field_choice_changed (GtkWidget *widget, + EvFormField *field) +{ + EvFormFieldChoice *field_choice = EV_FORM_FIELD_CHOICE (field); + + if (GTK_IS_COMBO_BOX (widget)) { + gint item; + + item = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + if (!field_choice->selected_items || + GPOINTER_TO_INT (field_choice->selected_items->data) != item) { + g_list_free (field_choice->selected_items); + field_choice->selected_items = NULL; + field_choice->selected_items = g_list_prepend (field_choice->selected_items, + GINT_TO_POINTER (item)); + field->changed = TRUE; + } + + if (GTK_IS_COMBO_BOX_ENTRY (widget)) { + gchar *text; + + text = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)); + if (!field_choice->text || + (field_choice->text && g_ascii_strcasecmp (field_choice->text, text) != 0)) { + g_free (field_choice->text); + field_choice->text = text; + field->changed = TRUE; + } + } + } else if (GTK_IS_TREE_SELECTION (widget)) { + GtkTreeSelection *selection = GTK_TREE_SELECTION (widget); + GtkTreeModel *model; + GList *items, *l; + + items = gtk_tree_selection_get_selected_rows (selection, &model); + g_list_free (field_choice->selected_items); + field_choice->selected_items = NULL; + + for (l = items; l && l->data; l = g_list_next (l)) { + GtkTreeIter iter; + GtkTreePath *path = (GtkTreePath *)l->data; + gint item; + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, 1, &item, -1); + + field_choice->selected_items = g_list_prepend (field_choice->selected_items, + GINT_TO_POINTER (item)); + + gtk_tree_path_free (path); + } + + g_list_free (items); + + field->changed = TRUE; + } +} + +static GtkWidget * +ev_view_form_field_choice_create_widget (EvView *view, + EvFormField *field) +{ + EvFormFieldChoice *field_choice = EV_FORM_FIELD_CHOICE (field); + GtkWidget *choice; + GtkTreeModel *model; + gint n_items, i; + gint selected_item = 0; + + n_items = ev_document_forms_form_field_choice_get_n_items (EV_DOCUMENT_FORMS (view->document), + field); + model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT)); + for (i = 0; i < n_items; i++) { + GtkTreeIter iter; + gchar *item; + + item = ev_document_forms_form_field_choice_get_item (EV_DOCUMENT_FORMS (view->document), + field, i); + if (ev_document_forms_form_field_choice_is_item_selected ( + EV_DOCUMENT_FORMS (view->document), field, i)) { + selected_item = i; + /* FIXME: we need a get_selected_items function in poppler */ + field_choice->selected_items = g_list_prepend (field_choice->selected_items, + GINT_TO_POINTER (i)); + } + + if (item) { + gtk_list_store_append (GTK_LIST_STORE (model), &iter); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + 0, item, + 1, i, + -1); + g_free (item); + } + } + + if (field_choice->type == EV_FORM_FIELD_CHOICE_LIST) { + GtkCellRenderer *renderer; + GtkWidget *tree_view; + GtkTreeSelection *selection; + + tree_view = gtk_tree_view_new_with_model (model); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); + if (field_choice->multi_select) { + gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); + } + + /* TODO: set selected items */ + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), + 0, + "choix", renderer, + "text", 0, + NULL); + + choice = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (choice), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_container_add (GTK_CONTAINER (choice), tree_view); + gtk_widget_show (tree_view); + + g_signal_connect (selection, "changed", + G_CALLBACK (ev_view_form_field_choice_changed), + field); + g_signal_connect_after (selection, "changed", + G_CALLBACK (ev_view_form_field_destroy), + view); + } else if (field_choice->is_editable) { /* ComboBoxEntry */ + gchar *text; + + choice = gtk_combo_box_entry_new_with_model (model, 0); + text = ev_document_forms_form_field_choice_get_text (EV_DOCUMENT_FORMS (view->document), field); + if (text) { + gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (choice))), text); + g_free (text); + } + + g_signal_connect (choice, "changed", + G_CALLBACK (ev_view_form_field_choice_changed), + field); + g_signal_connect_after (gtk_bin_get_child (GTK_BIN (choice)), + "activate", + G_CALLBACK (ev_view_form_field_destroy), + view); + } else { /* ComboBoxText */ + GtkCellRenderer *renderer; + + choice = gtk_combo_box_new_with_model (model); + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (choice), + renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (choice), + renderer, + "text", 0, + NULL); + gtk_combo_box_set_active (GTK_COMBO_BOX (choice), selected_item); + gtk_combo_box_popup (GTK_COMBO_BOX (choice)); + + g_signal_connect (choice, "changed", + G_CALLBACK (ev_view_form_field_choice_changed), + field); + g_signal_connect_after (choice, "changed", + G_CALLBACK (ev_view_form_field_destroy), + view); + } + + g_object_unref (model); + + g_object_weak_ref (G_OBJECT (choice), + (GWeakNotify)ev_view_form_field_choice_save, + view); + + return choice; +} + +static void +ev_view_handle_form_field (EvView *view, + EvFormField *field, + gdouble x, + gdouble y) +{ + GtkWidget *field_widget = NULL; + EvMappingList *form_field_mapping; + GdkRectangle view_area; + + if (field->is_read_only) + return; + + if (EV_IS_FORM_FIELD_BUTTON (field)) { + field_widget = ev_view_form_field_button_create_widget (view, field); + } else if (EV_IS_FORM_FIELD_TEXT (field)) { + field_widget = ev_view_form_field_text_create_widget (view, field); + } else if (EV_IS_FORM_FIELD_CHOICE (field)) { + field_widget = ev_view_form_field_choice_create_widget (view, field); + } else if (EV_IS_FORM_FIELD_SIGNATURE (field)) { + /* TODO */ + } + + /* Form field doesn't require a widget */ + if (!field_widget) + return; + + g_object_set_data_full (G_OBJECT (field_widget), "form-field", + g_object_ref (field), + (GDestroyNotify)g_object_unref); + + form_field_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, + field->page->index); + ev_view_get_area_from_mapping (view, field->page->index, + form_field_mapping, + field, &view_area); + + gtk_layout_put (GTK_LAYOUT (view), field_widget, view_area.x, view_area.y); + gtk_widget_show (field_widget); + gtk_widget_grab_focus (field_widget); +} + +/* Annotations */ +static EvViewWindowChild * +ev_view_get_window_child (EvView *view, + GtkWidget *window) +{ + GList *children = view->window_children; + + while (children) { + EvViewWindowChild *child; + + child = (EvViewWindowChild *)children->data; + children = children->next; + + if (child->window == window) + return child; + } + + return NULL; +} + +static void +ev_view_window_child_move (EvView *view, + EvViewWindowChild *child, + gint x, + gint y) +{ + GtkAllocation allocation; + gint width, height; + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + gtk_window_get_size (GTK_WINDOW (child->window), &width, &height); + + child->x = x; + child->y = y; + gtk_window_move (GTK_WINDOW (child->window), + CLAMP (x, child->parent_x, + child->parent_x + allocation.width - width), + CLAMP (y, child->parent_y, + child->parent_y + allocation.height - height)); +} + +static void +ev_view_window_child_move_with_parent (EvView *view, + GtkWidget *window) +{ + EvViewWindowChild *child; + gint root_x, root_y; + + child = ev_view_get_window_child (view, window); + gdk_window_get_origin (gtk_widget_get_window (GTK_WIDGET (view)), + &root_x, &root_y); + if (root_x != child->parent_x || root_y != child->parent_y) { + gint dest_x, dest_y; + + dest_x = child->x + (root_x - child->parent_x); + dest_y = child->y + (root_y - child->parent_y); + child->parent_x = root_x; + child->parent_y = root_y; + ev_view_window_child_move (view, child, dest_x, dest_y); + } + + if (child->visible && !gtk_widget_get_visible (window)) + gtk_widget_show (window); +} + +static void +ev_view_window_child_put (EvView *view, + GtkWidget *window, + guint page, + gint x, + gint y, + gdouble orig_x, + gdouble orig_y) +{ + EvViewWindowChild *child; + gint root_x, root_y; + + gdk_window_get_origin (gtk_widget_get_window (GTK_WIDGET (view)), + &root_x, &root_y); + + child = g_new0 (EvViewWindowChild, 1); + child->window = window; + child->page = page; + child->orig_x = orig_x; + child->orig_y = orig_y; + child->parent_x = root_x; + child->parent_y = root_y; + child->visible = ev_annotation_window_is_open (EV_ANNOTATION_WINDOW (window)); + ev_view_window_child_move (view, child, x + root_x, y + root_y); + + if (child->visible) + gtk_widget_show (window); + else + gtk_widget_hide (window); + + view->window_children = g_list_append (view->window_children, child); +} + +static EvViewWindowChild * +ev_view_find_window_child_for_annot (EvView *view, + guint page, + EvAnnotation *annot) +{ + GList *children = view->window_children; + + while (children) { + EvViewWindowChild *child; + EvAnnotation *wannot; + + child = (EvViewWindowChild *)children->data; + children = children->next; + + if (child->page != page) + continue; + + wannot = ev_annotation_window_get_annotation (EV_ANNOTATION_WINDOW (child->window)); + if (ev_annotation_equal (wannot, annot)) + return child; + } + + return NULL; +} + +static void +ev_view_window_children_free (EvView *view) +{ + GList *l; + + if (!view->window_children) + return; + + for (l = view->window_children; l && l->data; l = g_list_next (l)) { + EvViewWindowChild *child; + + child = (EvViewWindowChild *)l->data; + gtk_widget_destroy (GTK_WIDGET (child->window)); + g_free (child); + } + g_list_free (view->window_children); + view->window_children = NULL; + view->window_child_focus = NULL; +} + +static void +annotation_window_grab_focus (GtkWidget *widget, + EvView *view) +{ + if (view->window_child_focus) + ev_annotation_window_ungrab_focus (EV_ANNOTATION_WINDOW (view->window_child_focus->window)); + view->window_child_focus = ev_view_get_window_child (view, widget); +} + +static void +annotation_window_closed (EvAnnotationWindow *window, + EvView *view) +{ + EvViewWindowChild *child; + + child = ev_view_get_window_child (view, GTK_WIDGET (window)); + child->visible = FALSE; +} + +static void +annotation_window_moved (EvAnnotationWindow *window, + gint x, + gint y, + EvView *view) +{ + EvViewWindowChild *child; + GdkRectangle page_area; + GtkBorder border; + GdkRectangle view_rect; + EvRectangle doc_rect; + gint width, height; + + child = ev_view_get_window_child (view, GTK_WIDGET (window)); + if (child->x == x && child->y == y) + return; + + child->moved = TRUE; + child->x = x; + child->y = y; + + /* Window has been moved by the user, + * we have to set a new origin in doc coords + */ + gtk_window_get_size (GTK_WINDOW (window), &width, &height); + view_rect.x = (x - child->parent_x) + view->scroll_x; + view_rect.y = (y - child->parent_y) + view->scroll_y; + view_rect.width = width; + view_rect.height = height; + + ev_view_get_page_extents (view, child->page, &page_area, &border); + view_rect_to_doc_rect (view, &view_rect, &page_area, &doc_rect); + child->orig_x = doc_rect.x1; + child->orig_y = doc_rect.y1; +} + +static void +ev_view_annotation_save_contents (EvView *view, + GParamSpec *pspec, + EvAnnotation *annot) +{ + if (!view->document) + return; + + ev_document_doc_mutex_lock (); + ev_document_annotations_save_annotation (EV_DOCUMENT_ANNOTATIONS (view->document), + annot, EV_ANNOTATIONS_SAVE_CONTENTS); + ev_document_doc_mutex_unlock (); +} + +static GtkWidget * +ev_view_create_annotation_window (EvView *view, + EvAnnotation *annot, + GtkWindow *parent) +{ + GtkWidget *window; + EvRectangle doc_rect; + GdkRectangle view_rect; + guint page; + + window = ev_annotation_window_new (annot, parent); + g_signal_connect (window, "grab_focus", + G_CALLBACK (annotation_window_grab_focus), + view); + g_signal_connect (window, "closed", + G_CALLBACK (annotation_window_closed), + view); + g_signal_connect (window, "moved", + G_CALLBACK (annotation_window_moved), + view); + g_signal_connect_swapped (annot, "notify::contents", + G_CALLBACK (ev_view_annotation_save_contents), + view); + g_object_set_data (G_OBJECT (annot), "popup", window); + + page = ev_annotation_get_page_index (annot); + ev_annotation_window_get_rectangle (EV_ANNOTATION_WINDOW (window), &doc_rect); + doc_rect_to_view_rect (view, page, &doc_rect, &view_rect); + view_rect.x -= view->scroll_x; + view_rect.y -= view->scroll_y; + + ev_view_window_child_put (view, window, page, + view_rect.x, view_rect.y, + doc_rect.x1, doc_rect.y1); + + return window; +} + +static void +show_annotation_windows (EvView *view, + gint page) +{ + EvMappingList *annots; + GList *l; + GtkWindow *parent; + + parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))); + + annots = ev_page_cache_get_annot_mapping (view->page_cache, page); + + for (l = ev_mapping_list_get_list (annots); l && l->data; l = g_list_next (l)) { + EvAnnotation *annot; + EvViewWindowChild *child; + GtkWidget *window; + + annot = ((EvMapping *)(l->data))->data; + + if (!EV_IS_ANNOTATION_MARKUP (annot)) + continue; + + if (!ev_annotation_markup_has_popup (EV_ANNOTATION_MARKUP (annot))) + continue; + + window = g_object_get_data (G_OBJECT (annot), "popup"); + if (window) { + ev_view_window_child_move_with_parent (view, window); + continue; + } + + /* Look if we already have a popup for this annot */ + child = ev_view_find_window_child_for_annot (view, page, annot); + window = child ? child->window : NULL; + if (window) { + ev_annotation_window_set_annotation (EV_ANNOTATION_WINDOW (window), annot); + g_object_set_data (G_OBJECT (annot), "popup", window); + ev_view_window_child_move_with_parent (view, window); + } else { + ev_view_create_annotation_window (view, annot, parent); + } + } +} + +static void +hide_annotation_windows (EvView *view, + gint page) +{ + EvMappingList *annots; + GList *l; + + annots = ev_page_cache_get_annot_mapping (view->page_cache, page); + + for (l = ev_mapping_list_get_list (annots); l && l->data; l = g_list_next (l)) { + EvAnnotation *annot; + GtkWidget *window; + + annot = ((EvMapping *)(l->data))->data; + + if (!EV_IS_ANNOTATION_MARKUP (annot)) + continue; + + window = g_object_get_data (G_OBJECT (annot), "popup"); + if (window) + gtk_widget_hide (window); + } +} + +static EvAnnotation * +ev_view_get_annotation_at_location (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_new = 0, y_new = 0; + EvMappingList *annotations_mapping; + + if (!EV_IS_DOCUMENT_ANNOTATIONS (view->document)) + return NULL; + + if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new)) + return NULL; + + annotations_mapping = ev_page_cache_get_annot_mapping (view->page_cache, page); + + if (annotations_mapping) + return ev_mapping_list_get_data (annotations_mapping, x_new, y_new); + else + return NULL; +} + +static void +ev_view_annotation_show_popup_window (EvView *view, + GtkWidget *window) +{ + EvViewWindowChild *child; + + if (!window) + return; + + child = ev_view_get_window_child (view, window); + if (!child->visible) { + child->visible = TRUE; + ev_view_window_child_move (view, child, child->x, child->y); + gtk_widget_show (window); + } +} + +static void +ev_view_handle_annotation (EvView *view, + EvAnnotation *annot, + gdouble x, + gdouble y, + guint32 timestamp) +{ + if (EV_IS_ANNOTATION_MARKUP (annot)) { + GtkWidget *window; + + window = g_object_get_data (G_OBJECT (annot), "popup"); + ev_view_annotation_show_popup_window (view, window); + } + + if (EV_IS_ANNOTATION_ATTACHMENT (annot)) { + EvAttachment *attachment; + + attachment = ev_annotation_attachment_get_attachment (EV_ANNOTATION_ATTACHMENT (annot)); + if (attachment) { + GError *error = NULL; + + ev_attachment_open (attachment, + gtk_widget_get_screen (GTK_WIDGET (view)), + timestamp, + &error); + + if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } + } + } +} + +static void +ev_view_create_annotation (EvView *view, + EvAnnotationType annot_type, + gint x, + gint y) +{ + EvAnnotation *annot; + GdkPoint point; + GdkRectangle page_area; + GtkBorder border; + EvRectangle doc_rect, popup_rect; + EvPage *page; + GdkColor color = { 0, 65535, 65535, 0 }; + GdkRectangle view_rect; + cairo_region_t *region; + + point.x = x; + point.y = y; + ev_view_get_page_extents (view, view->current_page, &page_area, &border); + view_point_to_doc_point (view, &point, &page_area, + &doc_rect.x1, &doc_rect.y1); + doc_rect.x2 = doc_rect.x1 + 24; + doc_rect.y2 = doc_rect.y1 + 24; + + ev_document_doc_mutex_lock (); + page = ev_document_get_page (view->document, view->current_page); + switch (annot_type) { + case EV_ANNOTATION_TYPE_TEXT: + annot = ev_annotation_text_new (page); + break; + case EV_ANNOTATION_TYPE_ATTACHMENT: + /* TODO */ + g_object_unref (page); + ev_document_doc_mutex_unlock (); + return; + default: + g_assert_not_reached (); + } + g_object_unref (page); + + ev_annotation_set_color (annot, &color); + + if (EV_IS_ANNOTATION_MARKUP (annot)) { + popup_rect.x1 = doc_rect.x2; + popup_rect.x2 = popup_rect.x1 + 200; + popup_rect.y1 = doc_rect.y2; + popup_rect.y2 = popup_rect.y1 + 150; + g_object_set (annot, + "rectangle", &popup_rect, + "has_popup", TRUE, + "popup_is_open", FALSE, + "label", g_get_real_name (), + "opacity", 1.0, + NULL); + } + ev_document_annotations_add_annotation (EV_DOCUMENT_ANNOTATIONS (view->document), + annot, &doc_rect); + ev_document_doc_mutex_unlock (); + + /* If the page didn't have annots, mark the cache as dirty */ + if (!ev_page_cache_get_annot_mapping (view->page_cache, view->current_page)) + ev_page_cache_mark_dirty (view->page_cache, view->current_page); + + if (EV_IS_ANNOTATION_MARKUP (annot)) { + GtkWindow *parent; + GtkWidget *window; + + parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))); + window = ev_view_create_annotation_window (view, annot, parent); + + /* Show the annot window the first time */ + ev_view_annotation_show_popup_window (view, window); + } + + doc_rect_to_view_rect (view, view->current_page, &doc_rect, &view_rect); + view_rect.x -= view->scroll_x; + view_rect.y -= view->scroll_y; + region = cairo_region_create_rectangle (&view_rect); + ev_view_reload_page (view, view->current_page, region); + cairo_region_destroy (region); + + g_signal_emit (view, signals[SIGNAL_ANNOT_ADDED], 0, annot); +} + +void +ev_view_focus_annotation (EvView *view, + EvMapping *annot_mapping) +{ + GdkRectangle view_rect; + EvAnnotation *annot; + guint page; + + if (!EV_IS_DOCUMENT_ANNOTATIONS (view->document)) + return; + + if (view->focus_annotation == annot_mapping) + return; + + view->focus_annotation = annot_mapping; + annot = (EvAnnotation *)annot_mapping->data; + + page = ev_annotation_get_page_index (annot); + ev_document_model_set_page (view->model, page); + + doc_rect_to_view_rect (view, page, + &annot_mapping->area, &view_rect); + ensure_rectangle_is_visible (view, &view_rect); + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +void +ev_view_begin_add_annotation (EvView *view, + EvAnnotationType annot_type) +{ + if (annot_type == EV_ANNOTATION_TYPE_UNKNOWN) + return; + + if (view->adding_annot) + return; + + view->adding_annot = TRUE; + view->adding_annot_type = annot_type; + ev_view_set_cursor (view, EV_VIEW_CURSOR_ADD); +} + +void +ev_view_cancel_add_annotation (EvView *view) +{ + gint x, y; + + if (!view->adding_annot) + return; + + view->adding_annot = FALSE; + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); +} + +static gboolean +ev_view_synctex_backward_search (EvView *view, + gdouble x, + gdouble y) +{ + gint page = -1; + gint x_new = 0, y_new = 0; + EvSourceLink *link; + + if (!ev_document_has_synctex (view->document)) + return FALSE; + + if (!get_doc_point_from_location (view, x, y, &page, &x_new, &y_new)) + return FALSE; + + link = ev_document_synctex_backward_search (view->document, page, x_new, y_new); + if (link) { + g_signal_emit (view, signals[SIGNAL_SYNC_SOURCE], 0, link); + g_free (link); + + return TRUE; + } + + return FALSE; +} + +/*** GtkWidget implementation ***/ + +static void +ev_view_size_request_continuous_dual_page (EvView *view, + GtkRequisition *requisition) +{ + gint n_pages; + + n_pages = ev_document_get_n_pages (view->document) + 1; + get_page_y_offset (view, n_pages, &requisition->height); + + switch (view->sizing_mode) { + case EV_SIZING_FIT_WIDTH: + case EV_SIZING_BEST_FIT: + requisition->width = 1; + + break; + case EV_SIZING_FREE: { + gint max_width; + GtkBorder border; + + ev_view_get_max_page_size (view, &max_width, NULL); + compute_border (view, max_width, max_width, &border); + requisition->width = (max_width + border.left + border.right) * 2 + (view->spacing * 3); + } + break; + default: + g_assert_not_reached (); + } +} + +static void +ev_view_size_request_continuous (EvView *view, + GtkRequisition *requisition) +{ + gint n_pages; + + n_pages = ev_document_get_n_pages (view->document); + get_page_y_offset (view, n_pages, &requisition->height); + + switch (view->sizing_mode) { + case EV_SIZING_FIT_WIDTH: + case EV_SIZING_BEST_FIT: + requisition->width = 1; + + break; + case EV_SIZING_FREE: { + gint max_width; + GtkBorder border; + + ev_view_get_max_page_size (view, &max_width, NULL); + compute_border (view, max_width, max_width, &border); + requisition->width = max_width + (view->spacing * 2) + border.left + border.right; + } + break; + default: + g_assert_not_reached (); + } +} + +static void +ev_view_size_request_dual_page (EvView *view, + GtkRequisition *requisition) +{ + GtkBorder border; + gint width, height; + + if (view->sizing_mode == EV_SIZING_BEST_FIT) { + requisition->width = 1; + requisition->height = 1; + + return; + } + + /* Find the largest of the two. */ + ev_view_get_page_size (view, + view->current_page, + &width, &height); + if (view->current_page + 1 < ev_document_get_n_pages (view->document)) { + gint width_2, height_2; + ev_view_get_page_size (view, + view->current_page + 1, + &width_2, &height_2); + if (width_2 > width) { + width = width_2; + height = height_2; + } + } + compute_border (view, width, height, &border); + + requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 : + ((width + border.left + border.right) * 2) + (view->spacing * 3); + requisition->height = (height + border.top + border.bottom) + (view->spacing * 2); +} + +static void +ev_view_size_request_single_page (EvView *view, + GtkRequisition *requisition) +{ + GtkBorder border; + gint width, height; + + if (view->sizing_mode == EV_SIZING_BEST_FIT) { + requisition->width = 1; + requisition->height = 1; + + return; + } + + ev_view_get_page_size (view, view->current_page, &width, &height); + compute_border (view, width, height, &border); + + requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 : + width + border.left + border.right + (2 * view->spacing); + requisition->height = height + border.top + border.bottom + (2 * view->spacing); +} + +static void +ev_view_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + EvView *view = EV_VIEW (widget); + + if (view->document == NULL) { + view->requisition.width = 1; + view->requisition.height = 1; + + *requisition = view->requisition; + + return; + } + + /* Get zoom for size here when not called from + * ev_view_size_allocate() + */ + if (!view->internal_size_request && + (view->sizing_mode == EV_SIZING_FIT_WIDTH || + view->sizing_mode == EV_SIZING_BEST_FIT)) { + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + ev_view_zoom_for_size (view, + allocation.width, + allocation.height); + } + + if (view->continuous && view->dual_page) + ev_view_size_request_continuous_dual_page (view, &view->requisition); + else if (view->continuous) + ev_view_size_request_continuous (view, &view->requisition); + else if (view->dual_page) + ev_view_size_request_dual_page (view, &view->requisition); + else + ev_view_size_request_single_page (view, &view->requisition); + + *requisition = view->requisition; +} + +static void +ev_view_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + EvView *view = EV_VIEW (widget); + GList *children, *l; + gint root_x, root_y; + + GTK_WIDGET_CLASS (ev_view_parent_class)->size_allocate (widget, allocation); + + if (!view->document) + return; + + if (view->sizing_mode == EV_SIZING_FIT_WIDTH || + view->sizing_mode == EV_SIZING_BEST_FIT) { + GtkRequisition req; + + ev_view_zoom_for_size (view, + allocation->width, + allocation->height); + view->internal_size_request = TRUE; + ev_view_size_request (widget, &req); + view->internal_size_request = FALSE; + } + + view_set_adjustment_values (view, GTK_ORIENTATION_HORIZONTAL); + view_set_adjustment_values (view, GTK_ORIENTATION_VERTICAL); + + if (view->document) + view_update_range_and_current_page (view); + + view->pending_scroll = SCROLL_TO_KEEP_POSITION; + view->pending_resize = FALSE; + view->pending_point.x = 0; + view->pending_point.y = 0; + + children = gtk_container_get_children (GTK_CONTAINER (widget)); + for (l = children; l && l->data; l = g_list_next (l)) { + EvFormField *field; + GdkRectangle view_area; + EvMappingList *form_field_mapping; + GtkAllocation child_allocation; + GtkRequisition child_requisition; + GtkWidget *child = (GtkWidget *)l->data; + + field = g_object_get_data (G_OBJECT (child), "form-field"); + if (!field) + continue; + + form_field_mapping = ev_page_cache_get_form_field_mapping (view->page_cache, + field->page->index); + ev_view_get_area_from_mapping (view, field->page->index, + form_field_mapping, + field, &view_area); + + gtk_widget_size_request (child, &child_requisition); + if (child_requisition.width != view_area.width || + child_requisition.height != view_area.height) + gtk_widget_set_size_request (child, view_area.width, view_area.height); + + gtk_container_child_get (GTK_CONTAINER (widget), + child, + "x", &child_allocation.x, + "y", &child_allocation.y, + NULL); + if (child_allocation.x != view_area.x || + child_allocation.y != view_area.y) { + gtk_layout_move (GTK_LAYOUT (widget), child, view_area.x, view_area.y); + } + } + g_list_free (children); + + if (view->window_children) + gdk_window_get_origin (gtk_widget_get_window (GTK_WIDGET (view)), + &root_x, &root_y); + + for (l = view->window_children; l && l->data; l = g_list_next (l)) { + EvViewWindowChild *child; + EvRectangle doc_rect; + GdkRectangle view_rect; + + child = (EvViewWindowChild *)l->data; + + ev_annotation_window_get_rectangle (EV_ANNOTATION_WINDOW (child->window), &doc_rect); + if (child->moved) { + doc_rect.x1 = child->orig_x; + doc_rect.y1 = child->orig_y; + } + doc_rect_to_view_rect (view, child->page, &doc_rect, &view_rect); + view_rect.x -= view->scroll_x; + view_rect.y -= view->scroll_y; + + if (view_rect.x != child->orig_x || view_rect.y != child->orig_y) { + child->parent_x = root_x; + child->parent_y = root_y; + ev_view_window_child_move (view, child, view_rect.x + root_x, view_rect.y + root_y); + } + } +} + +static void +ev_view_realize (GtkWidget *widget) +{ + EvView *view = EV_VIEW (widget); + GdkWindow *bin_window; + GtkStyle *style; + + if (GTK_WIDGET_CLASS (ev_view_parent_class)->realize) + (* GTK_WIDGET_CLASS (ev_view_parent_class)->realize) (widget); + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + gdk_window_set_events (bin_window, + (gdk_window_get_events (bin_window) | + GDK_EXPOSURE_MASK | + GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_SCROLL_MASK | + GDK_KEY_PRESS_MASK | + GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK | + GDK_ENTER_NOTIFY_MASK | + GDK_LEAVE_NOTIFY_MASK)); + + style = gtk_widget_get_style (widget); + gdk_window_set_background (bin_window, &style->mid[GTK_STATE_NORMAL]); + + on_adjustment_value_changed (NULL, view); +} + +static gboolean +ev_view_scroll_event (GtkWidget *widget, GdkEventScroll *event) +{ + EvView *view = EV_VIEW (widget); + guint state; + + state = event->state & gtk_accelerator_get_default_mod_mask (); + + if (state == GDK_CONTROL_MASK) { + ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE); + if (event->direction == GDK_SCROLL_UP || + event->direction == GDK_SCROLL_LEFT) { + if (ev_view_can_zoom_in (view)) { + ev_view_zoom_in (view); + } + } else { + if (ev_view_can_zoom_out (view)) { + ev_view_zoom_out (view); + } + } + + return TRUE; + } + + view->jump_to_find_result = FALSE; + + /* Shift+Wheel scrolls the in the perpendicular direction */ + if (state & GDK_SHIFT_MASK) { + if (event->direction == GDK_SCROLL_UP) + event->direction = GDK_SCROLL_LEFT; + else if (event->direction == GDK_SCROLL_LEFT) + event->direction = GDK_SCROLL_UP; + else if (event->direction == GDK_SCROLL_DOWN) + event->direction = GDK_SCROLL_RIGHT; + else if (event->direction == GDK_SCROLL_RIGHT) + event->direction = GDK_SCROLL_DOWN; + + event->state &= ~GDK_SHIFT_MASK; + state &= ~GDK_SHIFT_MASK; + } + + if (state == 0 && view->sizing_mode == EV_SIZING_BEST_FIT && !view->continuous) { + switch (event->direction) { + case GDK_SCROLL_DOWN: + case GDK_SCROLL_RIGHT: + ev_view_next_page (view); + break; + case GDK_SCROLL_UP: + case GDK_SCROLL_LEFT: + ev_view_previous_page (view); + break; + } + + return TRUE; + } + + return FALSE; +} + +static EvViewSelection * +find_selection_for_page (EvView *view, + gint page) +{ + GList *list; + + for (list = view->selection_info.selections; list != NULL; list = list->next) { + EvViewSelection *selection; + + selection = (EvViewSelection *) list->data; + + if (selection->page == page) + return selection; + } + + return NULL; +} + +static gboolean +ev_view_expose_event (GtkWidget *widget, + GdkEventExpose *event) +{ + EvView *view = EV_VIEW (widget); + GdkWindow *bin_window; + cairo_t *cr; + gint i; + + if (view->loading) { + show_loading_window (view); + } else if (view->loading_window && + gtk_widget_get_visible (view->loading_window)) { + ev_view_loading_window_move (view); + } + + if (view->document == NULL) + return FALSE; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + cr = gdk_cairo_create (bin_window); + + for (i = view->start_page; i >= 0 && i <= view->end_page; i++) { + GdkRectangle page_area; + GtkBorder border; + gboolean page_ready = TRUE; + + if (!ev_view_get_page_extents (view, i, &page_area, &border)) + continue; + + page_area.x -= view->scroll_x; + page_area.y -= view->scroll_y; + + draw_one_page (view, i, cr, &page_area, &border, &(event->area), &page_ready); + + if (page_ready && view->find_pages && view->highlight_find_results) + highlight_find_results (view, i); + if (page_ready && EV_IS_DOCUMENT_ANNOTATIONS (view->document)) + show_annotation_windows (view, i); + if (page_ready && view->focus_annotation) + focus_annotation (view, i, &event->area); + if (page_ready && view->synctex_result) + highlight_forward_search_results (view, i); + } + + cairo_destroy (cr); + + if (GTK_WIDGET_CLASS (ev_view_parent_class)->expose_event) + (* GTK_WIDGET_CLASS (ev_view_parent_class)->expose_event) (widget, event); + + return FALSE; +} + +static gboolean +ev_view_do_popup_menu (EvView *view, + gdouble x, + gdouble y) +{ + GList *items = NULL; + EvLink *link; + EvImage *image; + EvAnnotation *annot; + + image = ev_view_get_image_at_location (view, x, y); + if (image) + items = g_list_prepend (items, image); + + link = ev_view_get_link_at_location (view, x, y); + if (link) + items = g_list_prepend (items, link); + + annot = ev_view_get_annotation_at_location (view, x, y); + if (annot) + items = g_list_prepend (items, annot); + + g_signal_emit (view, signals[SIGNAL_POPUP_MENU], 0, items); + + g_list_free (items); + + return TRUE; +} + +static gboolean +ev_view_popup_menu (GtkWidget *widget) +{ + gint x, y; + + gtk_widget_get_pointer (widget, &x, &y); + return ev_view_do_popup_menu (EV_VIEW (widget), x, y); +} + +static void +get_link_area (EvView *view, + gint x, + gint y, + EvLink *link, + GdkRectangle *area) +{ + EvMappingList *link_mapping; + gint page; + gint x_offset = 0, y_offset = 0; + + x += view->scroll_x; + y += view->scroll_y; + + find_page_at_location (view, x, y, &page, &x_offset, &y_offset); + + link_mapping = ev_page_cache_get_link_mapping (view->page_cache, page); + ev_view_get_area_from_mapping (view, page, + link_mapping, + link, area); +} + +static void +get_annot_area (EvView *view, + gint x, + gint y, + EvAnnotation *annot, + GdkRectangle *area) +{ + EvMappingList *annot_mapping; + gint page; + gint x_offset = 0, y_offset = 0; + + x += view->scroll_x; + y += view->scroll_y; + + find_page_at_location (view, x, y, &page, &x_offset, &y_offset); + + annot_mapping = ev_page_cache_get_annot_mapping (view->page_cache, page); + ev_view_get_area_from_mapping (view, page, + annot_mapping, + annot, area); +} + +static gboolean +ev_view_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_tip, + GtkTooltip *tooltip) +{ + EvView *view = EV_VIEW (widget); + EvLink *link; + EvAnnotation *annot; + gchar *text; + + annot = ev_view_get_annotation_at_location (view, x, y); + if (annot) { + const gchar *contents; + + if ((contents = ev_annotation_get_contents (annot))) { + GdkRectangle annot_area; + + get_annot_area (view, x, y, annot, &annot_area); + gtk_tooltip_set_text (tooltip, contents); + gtk_tooltip_set_tip_area (tooltip, &annot_area); + + return TRUE; + } + } + + link = ev_view_get_link_at_location (view, x, y); + if (!link) + return FALSE; + + text = tip_from_link (view, link); + if (text && g_utf8_validate (text, -1, NULL)) { + GdkRectangle link_area; + + get_link_area (view, x, y, link, &link_area); + gtk_tooltip_set_text (tooltip, text); + gtk_tooltip_set_tip_area (tooltip, &link_area); + } + g_free (text); + + return TRUE; +} + +static void +start_selection_for_event (EvView *view, + GdkEventButton *event) +{ + clear_selection (view); + + view->selection_info.start.x = event->x + view->scroll_x; + view->selection_info.start.y = event->y + view->scroll_y; + + switch (event->type) { + case GDK_2BUTTON_PRESS: + view->selection_info.style = EV_SELECTION_STYLE_WORD; + break; + case GDK_3BUTTON_PRESS: + view->selection_info.style = EV_SELECTION_STYLE_LINE; + break; + default: + view->selection_info.style = EV_SELECTION_STYLE_GLYPH; + return; + } + + /* In case of WORD or LINE, compute selections now */ + compute_selections (view, + view->selection_info.style, + &(view->selection_info.start), + &(view->selection_info.start)); +} + +static gboolean +ev_view_button_press_event (GtkWidget *widget, + GdkEventButton *event) +{ + EvView *view = EV_VIEW (widget); + + if (!view->document) + return FALSE; + + if (!gtk_widget_has_focus (widget)) { + gtk_widget_grab_focus (widget); + } + + if (view->window_child_focus) { + EvAnnotationWindow *window; + EvAnnotation *annot; + + window = EV_ANNOTATION_WINDOW (view->window_child_focus->window); + annot = ev_annotation_window_get_annotation (window); + ev_annotation_window_ungrab_focus (window); + view->window_child_focus = NULL; + } + + view->pressed_button = event->button; + view->selection_info.in_drag = FALSE; + + if (view->adding_annot) + return FALSE; + + if (view->scroll_info.autoscrolling) + return TRUE; + + switch (event->button) { + case 1: { + EvImage *image; + EvAnnotation *annot; + EvFormField *field; + + if (event->state & GDK_CONTROL_MASK) + return ev_view_synctex_backward_search (view, event->x , event->y); + + if (EV_IS_SELECTION (view->document) && view->selection_info.selections) { + if (event->type == GDK_3BUTTON_PRESS) { + start_selection_for_event (view, event); + } else if (location_in_selected_text (view, + event->x + view->scroll_x, + event->y + view->scroll_y)) { + view->selection_info.in_drag = TRUE; + } else { + start_selection_for_event (view, event); + } + + gtk_widget_queue_draw (widget); + } else if ((annot = ev_view_get_annotation_at_location (view, event->x, event->y))) { + ev_view_handle_annotation (view, annot, event->x, event->y, event->time); + } else if ((field = ev_view_get_form_field_at_location (view, event->x, event->y))) { + ev_view_remove_all (view); + ev_view_handle_form_field (view, field, event->x, event->y); + } else if (!location_in_text (view, event->x + view->scroll_x, event->y + view->scroll_y) && + (image = ev_view_get_image_at_location (view, event->x, event->y))) { + if (view->image_dnd_info.image) + g_object_unref (view->image_dnd_info.image); + view->image_dnd_info.image = g_object_ref (image); + view->image_dnd_info.in_drag = TRUE; + + view->image_dnd_info.start.x = event->x + view->scroll_x; + view->image_dnd_info.start.y = event->y + view->scroll_y; + } else { + ev_view_remove_all (view); + + if (view->synctex_result) { + g_free (view->synctex_result); + view->synctex_result = NULL; + gtk_widget_queue_draw (widget); + } + + if (view->focus_annotation) + view->focus_annotation = NULL; + + if (EV_IS_SELECTION (view->document)) + start_selection_for_event (view, event); + } + } + return TRUE; + case 2: + /* use root coordinates as reference point because + * scrolling changes window relative coordinates */ + view->drag_info.start.x = event->x_root; + view->drag_info.start.y = event->y_root; + view->drag_info.hadj = gtk_adjustment_get_value (view->hadjustment); + view->drag_info.vadj = gtk_adjustment_get_value (view->vadjustment); + + ev_view_set_cursor (view, EV_VIEW_CURSOR_DRAG); + + return TRUE; + case 3: + view->scroll_info.start_y = event->y; + return ev_view_do_popup_menu (view, event->x, event->y); + } + + return FALSE; +} + +static void +ev_view_remove_all (EvView *view) +{ + GList *children, *child; + + children = gtk_container_get_children (GTK_CONTAINER (view)); + for (child = children; child && child->data; child = g_list_next (child)) { + gtk_container_remove (GTK_CONTAINER (view), + GTK_WIDGET (child->data)); + } + g_list_free (children); +} + +/*** Drag and Drop ***/ +static void +ev_view_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time) +{ + EvView *view = EV_VIEW (widget); + + switch (info) { + case TARGET_DND_TEXT: + if (EV_IS_SELECTION (view->document) && + view->selection_info.selections) { + gchar *text; + + text = get_selected_text (view); + gtk_selection_data_set_text (selection_data, + text, + strlen (text)); + g_free (text); + } + break; + case TARGET_DND_IMAGE: + if (view->image_dnd_info.image) { + GdkPixbuf *pixbuf; + + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document), + view->image_dnd_info.image); + ev_document_doc_mutex_unlock (); + + gtk_selection_data_set_pixbuf (selection_data, pixbuf); + g_object_unref (pixbuf); + } + break; + case TARGET_DND_URI: + if (view->image_dnd_info.image) { + GdkPixbuf *pixbuf; + const gchar *tmp_uri; + gchar *uris[2]; + + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document), + view->image_dnd_info.image); + ev_document_doc_mutex_unlock (); + + tmp_uri = ev_image_save_tmp (view->image_dnd_info.image, pixbuf); + g_object_unref (pixbuf); + + uris[0] = (gchar *)tmp_uri; + uris[1] = NULL; + gtk_selection_data_set_uris (selection_data, uris); + } + } +} + +static gboolean +ev_view_drag_motion (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time) +{ + if (gtk_drag_get_source_widget (context) == widget) + gdk_drag_status (context, 0, time); + else + gdk_drag_status (context, gdk_drag_context_get_suggested_action (context), time); + + return TRUE; +} + +static gboolean +selection_update_idle_cb (EvView *view) +{ + compute_selections (view, + view->selection_info.style, + &view->selection_info.start, + &view->motion); + view->selection_update_id = 0; + return FALSE; +} + +static gboolean +selection_scroll_timeout_cb (EvView *view) +{ + gint x, y, shift = 0; + GtkWidget *widget = GTK_WIDGET (view); + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + gtk_widget_get_pointer (widget, &x, &y); + + if (y > allocation.height) { + shift = (y - allocation.height) / 2; + } else if (y < 0) { + shift = y / 2; + } + + if (shift) + gtk_adjustment_set_value (view->vadjustment, + CLAMP (gtk_adjustment_get_value (view->vadjustment) + shift, + gtk_adjustment_get_lower (view->vadjustment), + gtk_adjustment_get_upper (view->vadjustment) - + gtk_adjustment_get_page_size (view->vadjustment))); + + if (x > allocation.width) { + shift = (x - allocation.width) / 2; + } else if (x < 0) { + shift = x / 2; + } + + if (shift) + gtk_adjustment_set_value (view->hadjustment, + CLAMP (gtk_adjustment_get_value (view->hadjustment) + shift, + gtk_adjustment_get_lower (view->hadjustment), + gtk_adjustment_get_upper (view->hadjustment) - + gtk_adjustment_get_page_size (view->hadjustment))); + + return TRUE; +} + +static gboolean +ev_view_drag_update_momentum (EvView *view) +{ + int i; + if (!view->drag_info.in_drag) + return FALSE; + + for (i = DRAG_HISTORY - 1; i > 0; i--) { + view->drag_info.buffer[i].x = view->drag_info.buffer[i-1].x; + view->drag_info.buffer[i].y = view->drag_info.buffer[i-1].y; + } + + /* Momentum is a moving average of 10ms granularity over + * the last 100ms with each 10ms stored in buffer. + */ + + view->drag_info.momentum.x = (view->drag_info.buffer[DRAG_HISTORY - 1].x - view->drag_info.buffer[0].x); + view->drag_info.momentum.y = (view->drag_info.buffer[DRAG_HISTORY - 1].y - view->drag_info.buffer[0].y); + + return TRUE; +} + +static gboolean +ev_view_scroll_drag_release (EvView *view) +{ + gdouble dhadj_value, dvadj_value; + gdouble oldhadjustment, oldvadjustment; + gdouble h_page_size, v_page_size; + gdouble h_upper, v_upper; + GtkAllocation allocation; + + view->drag_info.momentum.x /= 1.2; + view->drag_info.momentum.y /= 1.2; /* Alter these constants to change "friction" */ + + gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); + + h_page_size = gtk_adjustment_get_page_size (view->hadjustment); + v_page_size = gtk_adjustment_get_page_size (view->vadjustment); + + dhadj_value = h_page_size * + (gdouble)view->drag_info.momentum.x / allocation.width; + dvadj_value = v_page_size * + (gdouble)view->drag_info.momentum.y / allocation.height; + + oldhadjustment = gtk_adjustment_get_value (view->hadjustment); + oldvadjustment = gtk_adjustment_get_value (view->vadjustment); + + h_upper = gtk_adjustment_get_upper (view->hadjustment); + v_upper = gtk_adjustment_get_upper (view->vadjustment); + + /* When we reach the edges, we need either to absorb some momentum and bounce by + * multiplying it on -0.5 or stop scrolling by setting momentum to 0. */ + if (((oldhadjustment + dhadj_value) > (h_upper - h_page_size)) || + ((oldhadjustment + dhadj_value) < 0)) + view->drag_info.momentum.x = 0; + if (((oldvadjustment + dvadj_value) > (v_upper - v_page_size)) || + ((oldvadjustment + dvadj_value) < 0)) + view->drag_info.momentum.y = 0; + + gtk_adjustment_set_value (view->hadjustment, + MIN (oldhadjustment + dhadj_value, + h_upper - h_page_size)); + gtk_adjustment_set_value (view->vadjustment, + MIN (oldvadjustment + dvadj_value, + v_upper - v_page_size)); + + if (((view->drag_info.momentum.x < 1) && (view->drag_info.momentum.x > -1)) && + ((view->drag_info.momentum.y < 1) && (view->drag_info.momentum.y > -1))) + return FALSE; + else + return TRUE; +} + +static gboolean +ev_view_motion_notify_event (GtkWidget *widget, + GdkEventMotion *event) +{ + EvView *view = EV_VIEW (widget); + GdkWindow *bin_window; + gint x, y; + + if (!view->document) + return FALSE; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + + if (event->is_hint || event->window != bin_window) { + gtk_widget_get_pointer (widget, &x, &y); + } else { + x = event->x; + y = event->y; + } + + if (view->scroll_info.autoscrolling) { + view->scroll_info.last_y = y; + return TRUE; + } + + if (view->selection_info.in_drag) { + if (gtk_drag_check_threshold (widget, + view->selection_info.start.x, + view->selection_info.start.y, + x, y)) { + GtkTargetList *target_list = gtk_target_list_new (NULL, 0); + + gtk_target_list_add_text_targets (target_list, TARGET_DND_TEXT); + + gtk_drag_begin (widget, target_list, + GDK_ACTION_COPY, + 1, (GdkEvent *)event); + + view->selection_info.in_drag = FALSE; + + gtk_target_list_unref (target_list); + + return TRUE; + } + } else if (view->image_dnd_info.in_drag) { + if (gtk_drag_check_threshold (widget, + view->selection_info.start.x, + view->selection_info.start.y, + x, y)) { + GtkTargetList *target_list = gtk_target_list_new (NULL, 0); + + gtk_target_list_add_uri_targets (target_list, TARGET_DND_URI); + gtk_target_list_add_image_targets (target_list, TARGET_DND_IMAGE, TRUE); + + gtk_drag_begin (widget, target_list, + GDK_ACTION_COPY, + 1, (GdkEvent *)event); + + view->image_dnd_info.in_drag = FALSE; + + gtk_target_list_unref (target_list); + + return TRUE; + } + } + + switch (view->pressed_button) { + case 1: + /* For the Evince 0.4.x release, we limit selection to un-rotated + * documents only. + */ + if (view->rotation != 0) + return FALSE; + + /* Schedule timeout to scroll during selection and additionally + * scroll once to allow arbitrary speed. */ + if (!view->selection_scroll_id) + view->selection_scroll_id = g_timeout_add (SCROLL_TIME, + (GSourceFunc)selection_scroll_timeout_cb, + view); + else + selection_scroll_timeout_cb (view); + + view->selection_info.in_selection = TRUE; + view->motion.x = x + view->scroll_x; + view->motion.y = y + view->scroll_y; + + /* Queue an idle to handle the motion. We do this because + * handling any selection events in the motion could be slower + * than new motion events reach us. We always put it in the + * idle to make sure we catch up and don't visibly lag the + * mouse. */ + if (!view->selection_update_id) + view->selection_update_id = g_idle_add ((GSourceFunc)selection_update_idle_cb, view); + + return TRUE; + case 2: + if (!view->drag_info.in_drag) { + gboolean start; + int i; + + start = gtk_drag_check_threshold (widget, + view->drag_info.start.x, + view->drag_info.start.y, + event->x_root, + event->y_root); + view->drag_info.in_drag = start; + view->drag_info.drag_timeout_id = g_timeout_add (10, + (GSourceFunc)ev_view_drag_update_momentum, view); + /* Set 100 to choose how long it takes to build up momentum */ + /* Clear out previous momentum info: */ + for (i = 0; i < DRAG_HISTORY; i++) { + view->drag_info.buffer[i].x = event->x; + view->drag_info.buffer[i].y = event->y; + } + view->drag_info.momentum.x = 0; + view->drag_info.momentum.y = 0; + } + + if (view->drag_info.in_drag) { + int dx, dy; + gdouble dhadj_value, dvadj_value; + GtkAllocation allocation; + + view->drag_info.buffer[0].x = event->x; + view->drag_info.buffer[0].y = event->y; + + dx = event->x_root - view->drag_info.start.x; + dy = event->y_root - view->drag_info.start.y; + + gtk_widget_get_allocation (widget, &allocation); + + dhadj_value = gtk_adjustment_get_page_size (view->hadjustment) * + (gdouble)dx / allocation.width; + dvadj_value = gtk_adjustment_get_page_size (view->vadjustment) * + (gdouble)dy / allocation.height; + + /* clamp scrolling to visible area */ + gtk_adjustment_set_value (view->hadjustment, + MIN (view->drag_info.hadj - dhadj_value, + gtk_adjustment_get_upper (view->hadjustment) - + gtk_adjustment_get_page_size (view->hadjustment))); + gtk_adjustment_set_value (view->vadjustment, + MIN (view->drag_info.vadj - dvadj_value, + gtk_adjustment_get_upper (view->vadjustment) - + gtk_adjustment_get_page_size (view->vadjustment))); + + return TRUE; + } + + break; + default: + ev_view_handle_cursor_over_xy (view, x, y); + } + + return FALSE; +} + +static gboolean +ev_view_button_release_event (GtkWidget *widget, + GdkEventButton *event) +{ + EvView *view = EV_VIEW (widget); + EvLink *link = NULL; + + view->image_dnd_info.in_drag = FALSE; + + if (view->scroll_info.autoscrolling) { + ev_view_autoscroll_stop (view); + view->pressed_button = -1; + + return TRUE; + } + + if (view->pressed_button == 1 && event->state & GDK_CONTROL_MASK) { + view->pressed_button = -1; + return TRUE; + } + + if (view->drag_info.in_drag) { + view->drag_info.release_timeout_id = + g_timeout_add (20, + (GSourceFunc)ev_view_scroll_drag_release, view); + } + + if (view->document && !view->drag_info.in_drag && view->pressed_button != 3) { + link = ev_view_get_link_at_location (view, event->x, event->y); + } + + view->drag_info.in_drag = FALSE; + + if (view->adding_annot && view->pressed_button == 1) { + view->adding_annot = FALSE; + ev_view_handle_cursor_over_xy (view, event->x, event->y); + view->pressed_button = -1; + + ev_view_create_annotation (view, + view->adding_annot_type, + event->x + view->scroll_x, + event->y + view->scroll_y); + + return FALSE; + } + + if (view->pressed_button == 2) { + ev_view_handle_cursor_over_xy (view, event->x, event->y); + } + + view->pressed_button = -1; + + if (view->selection_scroll_id) { + g_source_remove (view->selection_scroll_id); + view->selection_scroll_id = 0; + } + if (view->selection_update_id) { + g_source_remove (view->selection_update_id); + view->selection_update_id = 0; + } + + if (view->selection_info.selections) { + clear_link_selected (view); + ev_view_update_primary_selection (view); + + if (view->selection_info.in_drag) { + clear_selection (view); + gtk_widget_queue_draw (widget); + } + + view->selection_info.in_drag = FALSE; + } else if (link) { + if (event->button == 2) { + EvLinkAction *action; + EvLinkActionType type; + + action = ev_link_get_action (link); + if (!action) + return FALSE; + + type = ev_link_action_get_action_type (action); + if (type == EV_LINK_ACTION_TYPE_GOTO_DEST) { + g_signal_emit (view, + signals[SIGNAL_EXTERNAL_LINK], + 0, action); + } + } else { + ev_view_handle_link (view, link); + } + } + + return FALSE; +} + +static gboolean +ev_view_key_press_event (GtkWidget *widget, + GdkEventKey *event) +{ + EvView *view = EV_VIEW (widget); + + if (!view->document) + return FALSE; + + if (!gtk_widget_has_focus (widget)) { + /* Forward key events to current focused window child */ + if (view->window_child_focus) { + GdkEventKey *new_event; + gboolean handled; + + new_event = (GdkEventKey *) gdk_event_copy ((GdkEvent *)event); + g_object_unref (new_event->window); + new_event->window = gtk_widget_get_window (view->window_child_focus->window); + if (new_event->window) + g_object_ref (new_event->window); + gtk_widget_realize (view->window_child_focus->window); + handled = gtk_widget_event (view->window_child_focus->window, (GdkEvent *)new_event); + gdk_event_free ((GdkEvent *)new_event); + + return handled; + } + + return FALSE; + } + + return gtk_bindings_activate_event (GTK_OBJECT (widget), event); +} + +static gint +ev_view_focus_in (GtkWidget *widget, + GdkEventFocus *event) +{ + if (EV_VIEW (widget)->pixbuf_cache) + ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache); + gtk_widget_queue_draw (widget); + + return FALSE; +} + +static gint +ev_view_focus_out (GtkWidget *widget, + GdkEventFocus *event) +{ + if (EV_VIEW (widget)->pixbuf_cache) + ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache); + gtk_widget_queue_draw (widget); + + return FALSE; +} + +static gboolean +ev_view_leave_notify_event (GtkWidget *widget, GdkEventCrossing *event) +{ + EvView *view = EV_VIEW (widget); + + if (view->cursor != EV_VIEW_CURSOR_NORMAL) + ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL); + + return FALSE; +} + +static gboolean +ev_view_enter_notify_event (GtkWidget *widget, GdkEventCrossing *event) +{ + EvView *view = EV_VIEW (widget); + + ev_view_handle_cursor_over_xy (view, event->x, event->y); + + return FALSE; +} + +static void +ev_view_style_set (GtkWidget *widget, + GtkStyle *old_style) +{ + if (EV_VIEW (widget)->pixbuf_cache) + ev_pixbuf_cache_style_changed (EV_VIEW (widget)->pixbuf_cache); + + GTK_WIDGET_CLASS (ev_view_parent_class)->style_set (widget, old_style); +} + +/*** Drawing ***/ + +static void +draw_rubberband (EvView *view, + GdkWindow *window, + const GdkRectangle *rect, + gdouble alpha) +{ + GtkStyle *style; + GdkColor *fill_color_gdk; + gdouble r, g, b; + cairo_t *cr; + + style = gtk_widget_get_style (GTK_WIDGET (view)); + fill_color_gdk = gdk_color_copy (&style->base[GTK_STATE_SELECTED]); + r = fill_color_gdk->red / 65535.; + g = fill_color_gdk->green / 65535.; + b = fill_color_gdk->blue / 65535.; + + cr = gdk_cairo_create (window); + + cairo_set_source_rgba (cr, r, g, b, alpha); + cairo_rectangle (cr, + rect->x - view->scroll_x, + rect->y - view->scroll_y, + rect->width, rect->height); + cairo_fill_preserve (cr); + + cairo_set_line_width (cr, 0.5); + cairo_set_source_rgb (cr, r, g, b); + cairo_stroke (cr); + + cairo_destroy (cr); + + gdk_color_free (fill_color_gdk); +} + + +static void +highlight_find_results (EvView *view, int page) +{ + gint i, n_results = 0; + GdkWindow *bin_window; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + + n_results = ev_view_find_get_n_results (view, page); + + for (i = 0; i < n_results; i++) { + EvRectangle *rectangle; + GdkRectangle view_rectangle; + gdouble alpha; + + if (i == view->find_result && page == view->current_page) { + alpha = 0.6; + } else { + alpha = 0.3; + } + + rectangle = ev_view_find_get_result (view, page, i); + doc_rect_to_view_rect (view, page, rectangle, &view_rectangle); + draw_rubberband (view, bin_window, &view_rectangle, alpha); + } +} + +static void +highlight_forward_search_results (EvView *view, int page) +{ + GdkWindow *bin_window; + GdkRectangle rect; + cairo_t *cr; + EvMapping *mapping = view->synctex_result; + + if (GPOINTER_TO_INT (mapping->data) != page) + return; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + doc_rect_to_view_rect (view, page, &mapping->area, &rect); + + cr = gdk_cairo_create (bin_window); + cairo_set_source_rgb (cr, 1., 0., 0.); + cairo_rectangle (cr, + rect.x - view->scroll_x, + rect.y - view->scroll_y, + rect.width, rect.height); + cairo_stroke (cr); + cairo_destroy (cr); +} + +static void +focus_annotation (EvView *view, + gint page, + GdkRectangle *clip) +{ + GtkWidget *widget = GTK_WIDGET (view); + GdkRectangle rect; + EvMapping *mapping = view->focus_annotation; + EvAnnotation *annot = (EvAnnotation *)mapping->data; + + if (ev_annotation_get_page_index (annot) != page) + return; + + doc_rect_to_view_rect (view, page, &mapping->area, &rect); + gtk_paint_focus (gtk_widget_get_style (widget), + gtk_layout_get_bin_window (GTK_LAYOUT (view)), + gtk_widget_get_state (widget), + NULL, widget, NULL, + rect.x - view->scroll_x, + rect.y - view->scroll_y, + rect.width + 1, rect.height + 1); +} + +static void +ev_view_loading_window_move (EvView *view) +{ + GtkWidget *widget = GTK_WIDGET (view); + EvLoadingWindow *window = EV_LOADING_WINDOW (view->loading_window); + gint root_x, root_y; + gint window_width; + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + gdk_window_get_origin (gtk_widget_get_window (widget), &root_x, &root_y); + ev_loading_window_get_size (window, &window_width, NULL); + + root_x += allocation.width - window_width - 10; + root_y += 10; + + ev_loading_window_move (window, root_x, root_y); +} + +static gboolean +show_loading_window_cb (EvView *view) +{ + if (!view->loading_window) { + GtkWindow *parent; + GdkScreen *screen; + + parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))); + view->loading_window = ev_loading_window_new (parent); + + /* Show the window off screen to get a valid size asap */ + screen = gtk_widget_get_screen (GTK_WIDGET (view)); + gtk_window_move (GTK_WINDOW (view->loading_window), + gdk_screen_get_width (screen) + 1, + gdk_screen_get_height (screen) + 1); + gtk_widget_show (view->loading_window); + } + + ev_view_loading_window_move (view); + + gtk_widget_show (view->loading_window); + + view->loading_timeout = 0; + + return FALSE; +} + +static void +show_loading_window (EvView *view) +{ + if (view->loading_window && gtk_widget_get_visible (view->loading_window)) { + ev_view_loading_window_move (view); + return; + } + + if (!view->loading_timeout) { + view->loading_timeout = + g_timeout_add_full (G_PRIORITY_LOW, + 0.5, (GSourceFunc)show_loading_window_cb, + view, NULL); + } +} + +static void +hide_loading_window (EvView *view) +{ + if (view->loading_timeout) { + g_source_remove (view->loading_timeout); + view->loading_timeout = 0; + } + + if (view->loading_window && gtk_widget_get_visible (view->loading_window)) { + gtk_widget_hide (view->loading_window); + } +} + +static void +draw_one_page (EvView *view, + gint page, + cairo_t *cr, + GdkRectangle *page_area, + GtkBorder *border, + GdkRectangle *expose_area, + gboolean *page_ready) +{ + GdkWindow *bin_window; + GdkRectangle overlap; + GdkRectangle real_page_area; + gint current_page; + gboolean inverted_colors; + + g_assert (view->document); + + if (! gdk_rectangle_intersect (page_area, expose_area, &overlap)) + return; + + /* Render the document itself */ + real_page_area = *page_area; + + real_page_area.x += border->left; + real_page_area.y += border->top; + real_page_area.width -= (border->left + border->right); + real_page_area.height -= (border->top + border->bottom); + *page_ready = TRUE; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + current_page = ev_document_model_get_page (view->model); + inverted_colors = ev_document_model_get_inverted_colors (view->model); + ev_document_misc_paint_one_page (cr, + GTK_WIDGET (view), + page_area, border, + page == current_page, + inverted_colors); + + if (gdk_rectangle_intersect (&real_page_area, expose_area, &overlap)) { + gint width, height; + gint page_width, page_height; + cairo_surface_t *page_surface = NULL; + gint selection_width, selection_height; + cairo_surface_t *selection_surface = NULL; + + page_surface = ev_pixbuf_cache_get_surface (view->pixbuf_cache, page); + + if (!page_surface) { + if (page == current_page) + show_loading_window (view); + + *page_ready = FALSE; + + return; + } + + if (page == current_page) + hide_loading_window (view); + + ev_view_get_page_size (view, page, &width, &height); + + page_width = cairo_image_surface_get_width (page_surface); + page_height = cairo_image_surface_get_height (page_surface); + + cairo_save (cr); + cairo_translate (cr, overlap.x, overlap.y); + + if (width != page_width || height != page_height) { + cairo_pattern_set_filter (cairo_get_source (cr), + CAIRO_FILTER_FAST); + cairo_scale (cr, + (gdouble)width / page_width, + (gdouble)height / page_height); + } + + cairo_surface_set_device_offset (page_surface, + overlap.x - real_page_area.x, + overlap.y - real_page_area.y); + cairo_set_source_surface (cr, page_surface, 0, 0); + cairo_paint (cr); + cairo_restore (cr); + + /* Get the selection pixbuf iff we have something to draw */ + if (find_selection_for_page (view, page) && + view->selection_mode == EV_VIEW_SELECTION_TEXT) { + selection_surface = + ev_pixbuf_cache_get_selection_surface (view->pixbuf_cache, + page, + view->scale, + NULL); + } + + if (!selection_surface) { + return; + } + + selection_width = cairo_image_surface_get_width (selection_surface); + selection_height = cairo_image_surface_get_height (selection_surface); + + cairo_save (cr); + cairo_translate (cr, overlap.x, overlap.y); + + if (width != selection_width || height != selection_height) { + cairo_pattern_set_filter (cairo_get_source (cr), + CAIRO_FILTER_FAST); + cairo_scale (cr, + (gdouble)width / selection_width, + (gdouble)height / selection_height); + } + + cairo_surface_set_device_offset (selection_surface, + overlap.x - real_page_area.x, + overlap.y - real_page_area.y); + + cairo_set_source_surface (cr, selection_surface, 0, 0); + cairo_paint (cr); + cairo_restore (cr); + } +} + +/*** GObject functions ***/ + +static void +ev_view_finalize (GObject *object) +{ + EvView *view = EV_VIEW (object); + + clear_selection (view); + clear_link_selected (view); + + if (view->synctex_result) { + g_free (view->synctex_result); + view->synctex_result = NULL; + } + + if (view->image_dnd_info.image) + g_object_unref (view->image_dnd_info.image); + view->image_dnd_info.image = NULL; + + G_OBJECT_CLASS (ev_view_parent_class)->finalize (object); +} + +static void +ev_view_destroy (GtkObject *object) +{ + EvView *view = EV_VIEW (object); + + if (view->model) { + g_object_unref (view->model); + view->model = NULL; + } + + if (view->pixbuf_cache) { + g_object_unref (view->pixbuf_cache); + view->pixbuf_cache = NULL; + } + + if (view->document) { + g_object_unref (view->document); + view->document = NULL; + } + + if (view->page_cache) { + g_object_unref (view->page_cache); + view->page_cache = NULL; + } + + ev_view_window_children_free (view); + + if (view->selection_scroll_id) { + g_source_remove (view->selection_scroll_id); + view->selection_scroll_id = 0; + } + + if (view->selection_update_id) { + g_source_remove (view->selection_update_id); + view->selection_update_id = 0; + } + + if (view->scroll_info.timeout_id) { + g_source_remove (view->scroll_info.timeout_id); + view->scroll_info.timeout_id = 0; + } + + if (view->drag_info.drag_timeout_id) { + g_source_remove (view->drag_info.drag_timeout_id); + view->drag_info.drag_timeout_id = 0; + } + + if (view->drag_info.release_timeout_id) { + g_source_remove (view->drag_info.release_timeout_id); + view->drag_info.release_timeout_id = 0; + } + + if (view->loading_timeout) { + g_source_remove (view->loading_timeout); + view->loading_timeout = 0; + } + + ev_view_set_scroll_adjustments (GTK_LAYOUT (view), NULL, NULL); + + GTK_OBJECT_CLASS (ev_view_parent_class)->destroy (object); +} + +static AtkObject * +ev_view_get_accessible (GtkWidget *widget) +{ + static gboolean first_time = TRUE; + + if (first_time) { + AtkObjectFactory *factory; + AtkRegistry *registry; + GType derived_type; + GType derived_atk_type; + + /* + * Figure out whether accessibility is enabled by looking at the + * type of the accessible object which would be created for + * the parent type of EvView. + */ + derived_type = g_type_parent (EV_TYPE_VIEW); + + registry = atk_get_default_registry (); + factory = atk_registry_get_factory (registry, + derived_type); + derived_atk_type = atk_object_factory_get_accessible_type (factory); + if (g_type_is_a (derived_atk_type, GTK_TYPE_ACCESSIBLE)) { + atk_registry_set_factory_type (registry, + EV_TYPE_VIEW, + ev_view_accessible_factory_get_type ()); + EV_VIEW (widget)->a11y_enabled = TRUE; + } + first_time = FALSE; + } + return GTK_WIDGET_CLASS (ev_view_parent_class)->get_accessible (widget); +} + +static void +ev_view_class_init (EvViewClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); + GtkLayoutClass *layout_class = GTK_LAYOUT_CLASS (class); + GtkBindingSet *binding_set; + + object_class->finalize = ev_view_finalize; + + widget_class->expose_event = ev_view_expose_event; + widget_class->button_press_event = ev_view_button_press_event; + widget_class->motion_notify_event = ev_view_motion_notify_event; + widget_class->button_release_event = ev_view_button_release_event; + widget_class->key_press_event = ev_view_key_press_event; + widget_class->focus_in_event = ev_view_focus_in; + widget_class->focus_out_event = ev_view_focus_out; + widget_class->get_accessible = ev_view_get_accessible; + widget_class->size_request = ev_view_size_request; + widget_class->size_allocate = ev_view_size_allocate; + widget_class->realize = ev_view_realize; + widget_class->scroll_event = ev_view_scroll_event; + widget_class->enter_notify_event = ev_view_enter_notify_event; + widget_class->leave_notify_event = ev_view_leave_notify_event; + widget_class->style_set = ev_view_style_set; + widget_class->drag_data_get = ev_view_drag_data_get; + widget_class->drag_motion = ev_view_drag_motion; + widget_class->popup_menu = ev_view_popup_menu; + widget_class->query_tooltip = ev_view_query_tooltip; + + gtk_object_class->destroy = ev_view_destroy; + + layout_class->set_scroll_adjustments = ev_view_set_scroll_adjustments; + + class->binding_activated = ev_view_scroll; + + signals[SIGNAL_BINDING_ACTIVATED] = g_signal_new ("binding_activated", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, binding_activated), + NULL, NULL, + ev_view_marshal_VOID__ENUM_BOOLEAN, + G_TYPE_NONE, 2, + GTK_TYPE_SCROLL_TYPE, + G_TYPE_BOOLEAN); + signals[SIGNAL_HANDLE_LINK] = g_signal_new ("handle-link", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, handle_link), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); + signals[SIGNAL_EXTERNAL_LINK] = g_signal_new ("external-link", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, external_link), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); + signals[SIGNAL_POPUP_MENU] = g_signal_new ("popup", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, popup_menu), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); + signals[SIGNAL_SELECTION_CHANGED] = g_signal_new ("selection-changed", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, selection_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, + G_TYPE_NONE); + signals[SIGNAL_SYNC_SOURCE] = g_signal_new ("sync-source", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, sync_source), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); + signals[SIGNAL_ANNOT_ADDED] = g_signal_new ("annot-added", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvViewClass, annot_added), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + EV_TYPE_ANNOTATION); + + binding_set = gtk_binding_set_by_class (class); + + add_scroll_binding_keypad (binding_set, GDK_Left, 0, GTK_SCROLL_STEP_BACKWARD, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Right, 0, GTK_SCROLL_STEP_FORWARD, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Left, GDK_MOD1_MASK, GTK_SCROLL_STEP_DOWN, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Right, GDK_MOD1_MASK, GTK_SCROLL_STEP_UP, TRUE); + add_scroll_binding_keypad (binding_set, GDK_Up, 0, GTK_SCROLL_STEP_BACKWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Down, 0, GTK_SCROLL_STEP_FORWARD, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Up, GDK_MOD1_MASK, GTK_SCROLL_STEP_DOWN, FALSE); + add_scroll_binding_keypad (binding_set, GDK_Down, GDK_MOD1_MASK, GTK_SCROLL_STEP_UP, FALSE); + gtk_binding_entry_add_signal (binding_set, GDK_H, 0, "binding_activated", 2, GTK_TYPE_SCROLL_TYPE, + GTK_SCROLL_STEP_BACKWARD, G_TYPE_BOOLEAN, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_J, 0, "binding_activated", 2, GTK_TYPE_SCROLL_TYPE, + GTK_SCROLL_STEP_FORWARD, G_TYPE_BOOLEAN, FALSE); + gtk_binding_entry_add_signal (binding_set, GDK_K, 0, "binding_activated", 2, GTK_TYPE_SCROLL_TYPE, + GTK_SCROLL_STEP_BACKWARD, G_TYPE_BOOLEAN, FALSE); + gtk_binding_entry_add_signal (binding_set, GDK_L, 0, "binding_activated", 2, GTK_TYPE_SCROLL_TYPE, + GTK_SCROLL_STEP_FORWARD, G_TYPE_BOOLEAN, TRUE); + +} + +static void +ev_view_init (EvView *view) +{ + gtk_widget_set_can_focus (GTK_WIDGET (view), TRUE); + + view->start_page = -1; + view->end_page = -1; + view->spacing = 5; + view->scale = 1.0; + view->current_page = 0; + view->pressed_button = -1; + view->cursor = EV_VIEW_CURSOR_NORMAL; + view->drag_info.in_drag = FALSE; + view->scroll_info.autoscrolling = FALSE; + view->selection_info.selections = NULL; + view->selection_info.in_selection = FALSE; + view->selection_info.in_drag = FALSE; + view->selection_mode = EV_VIEW_SELECTION_TEXT; + view->continuous = TRUE; + view->dual_page = FALSE; + view->fullscreen = FALSE; + view->sizing_mode = EV_SIZING_FIT_WIDTH; + view->pending_scroll = SCROLL_TO_KEEP_POSITION; + view->jump_to_find_result = TRUE; + view->highlight_find_results = FALSE; + + gtk_layout_set_hadjustment (GTK_LAYOUT (view), NULL); + gtk_layout_set_vadjustment (GTK_LAYOUT (view), NULL); +} + +/*** Callbacks ***/ + +static void +ev_view_change_page (EvView *view, + gint new_page) +{ + gint x, y; + + view->current_page = new_page; + view->pending_scroll = SCROLL_TO_PAGE_POSITION; + + hide_loading_window (view); + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); + + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +static void +job_finished_cb (EvPixbufCache *pixbuf_cache, + cairo_region_t *region, + EvView *view) +{ + if (region) { + GdkWindow *bin_window; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); +#if GTK_CHECK_VERSION(2, 90, 5) + gdk_window_invalidate_region (bin_window, region, TRUE); +#else + { + GdkRegion *gdk_region = gdk_region_new (); + guint n_recs = cairo_region_num_rectangles (region); + guint i; + + for (i = 0; i < n_recs; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + gdk_region_union_with_rect (gdk_region, (GdkRectangle *)&rect); + } + gdk_window_invalidate_region (bin_window, gdk_region, TRUE); + gdk_region_destroy (gdk_region); + } +#endif + } else { + gtk_widget_queue_draw (GTK_WIDGET (view)); + } +} + +static void +ev_view_page_changed_cb (EvDocumentModel *model, + gint old_page, + gint new_page, + EvView *view) +{ + if (!view->document) + return; + + if (view->current_page != new_page) { + ev_view_change_page (view, new_page); + } else { + gtk_widget_queue_draw (GTK_WIDGET (view)); + } + + view->find_result = 0; +} + +static void +on_adjustment_value_changed (GtkAdjustment *adjustment, + EvView *view) +{ + int dx = 0, dy = 0; + gint x, y; + gint value; + GList *children, *l; + + if (!gtk_widget_get_realized (GTK_WIDGET (view))) + return; + + if (view->hadjustment) { + value = (gint) gtk_adjustment_get_value (view->hadjustment); + dx = view->scroll_x - value; + view->scroll_x = value; + } else { + view->scroll_x = 0; + } + + if (view->vadjustment) { + value = (gint) gtk_adjustment_get_value (view->vadjustment); + dy = view->scroll_y - value; + view->scroll_y = value; + } else { + view->scroll_y = 0; + } + + children = gtk_container_get_children (GTK_CONTAINER (view)); + for (l = children; l && l->data; l = g_list_next (l)) { + gint child_x, child_y; + GtkWidget *child = (GtkWidget *)l->data; + + gtk_container_child_get (GTK_CONTAINER (view), + child, + "x", &child_x, + "y", &child_y, + NULL); + gtk_layout_move (GTK_LAYOUT (view), child, child_x + dx, child_y + dy); + } + g_list_free (children); + + for (l = view->window_children; l && l->data; l = g_list_next (l)) { + EvViewWindowChild *child; + + child = (EvViewWindowChild *)l->data; + + ev_view_window_child_move (view, child, child->x + dx, child->y + dy); + } + + if (view->pending_resize) { + gtk_widget_queue_draw (GTK_WIDGET (view)); + } else { + GdkWindow *bin_window; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + gdk_window_scroll (bin_window, dx, dy); + } + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); + + if (view->document) + view_update_range_and_current_page (view); +} + +GtkWidget* +ev_view_new (void) +{ + GtkWidget *view; + + view = g_object_new (EV_TYPE_VIEW, NULL); + + return view; +} + +static void +setup_caches (EvView *view) +{ + gboolean inverted_colors; + + view->height_to_page_cache = ev_view_get_height_to_page_cache (view); + view->pixbuf_cache = ev_pixbuf_cache_new (GTK_WIDGET (view), view->model, view->pixbuf_cache_size); + view->page_cache = ev_page_cache_new (view->document); + if (view->a11y_enabled) { + EvJobPageDataFlags flags = ev_page_cache_get_flags (view->page_cache); + + ev_page_cache_set_flags (view->page_cache, + flags | + EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT | + EV_PAGE_DATA_INCLUDE_TEXT); + } + inverted_colors = ev_document_model_get_inverted_colors (view->model); + ev_pixbuf_cache_set_inverted_colors (view->pixbuf_cache, inverted_colors); + g_signal_connect (view->pixbuf_cache, "job-finished", G_CALLBACK (job_finished_cb), view); +} + +static void +clear_caches (EvView *view) +{ + if (view->pixbuf_cache) { + g_object_unref (view->pixbuf_cache); + view->pixbuf_cache = NULL; + } + + if (view->page_cache) { + g_object_unref (view->page_cache); + view->page_cache = NULL; + } +} + +/** + * ev_view_set_page_cache_size: + * @view: + * @cache_size: + * + * Sets the maximum size in bytes that will be used to cache + * rendered pages. Use 0 to disable caching rendered pages. + * + * Note that this limit doesn't affect the current visible page range, + * which will always be rendered. In order to limit the total memory used + * you have to use ev_document_model_set_max_scale() too. + * + */ +void +ev_view_set_page_cache_size (EvView *view, + gsize cache_size) +{ + if (view->pixbuf_cache_size == cache_size) + return; + + view->pixbuf_cache_size = cache_size; + if (view->pixbuf_cache) + ev_pixbuf_cache_set_max_size (view->pixbuf_cache, cache_size); +} + +void +ev_view_set_loading (EvView *view, + gboolean loading) +{ + if (view->loading && !loading) + hide_loading_window (view); + view->loading = loading; + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +static gboolean +ev_view_autoscroll_cb (EvView *view) +{ + gdouble speed, value; + + /* If the user stops autoscrolling, autoscrolling will be + * set to false but the timeout will continue; stop the timeout: */ + if (!view->scroll_info.autoscrolling) { + view->scroll_info.timeout_id = 0; + return FALSE; + } + + if (view->scroll_info.last_y > view->scroll_info.start_y && + (view->scroll_info.last_y < view->scroll_info.start_y)) + return TRUE; + + /* Replace 100 with your speed of choice: The lower the faster. + * Replace 3 with another speed of choice: The higher, the faster it accelerated + * based on the distance of the starting point from the mouse + * (All also effected by the timeout interval of this callback) */ + + if (view->scroll_info.start_y > view->scroll_info.last_y) + speed = -pow ((((gdouble)view->scroll_info.start_y - view->scroll_info.last_y) / 100), 3); + else + speed = pow ((((gdouble)view->scroll_info.last_y - view->scroll_info.start_y) / 100), 3); + + value = gtk_adjustment_get_value (view->vadjustment); + value = CLAMP (value + speed, 0, + gtk_adjustment_get_upper (view->vadjustment) - + gtk_adjustment_get_page_size (view->vadjustment)); + gtk_adjustment_set_value (view->vadjustment, value); + + return TRUE; + +} + +void +ev_view_autoscroll_start (EvView *view) +{ + gint x, y; + + g_return_if_fail (EV_IS_VIEW (view)); + + if (view->scroll_info.autoscrolling) + return; + + view->scroll_info.autoscrolling = TRUE; + view->scroll_info.timeout_id = + g_timeout_add (20, (GSourceFunc)ev_view_autoscroll_cb, + view); + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); +} + +void +ev_view_autoscroll_stop (EvView *view) +{ + gint x, y; + + g_return_if_fail (EV_IS_VIEW (view)); + + if (!view->scroll_info.autoscrolling) + return; + + view->scroll_info.autoscrolling = FALSE; + if (view->scroll_info.timeout_id) { + g_source_remove (view->scroll_info.timeout_id); + view->scroll_info.timeout_id = 0; + } + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + ev_view_handle_cursor_over_xy (view, x, y); +} + +static void +ev_view_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + EvDocument *document = ev_document_model_get_document (model); + + if (document != view->document) { + gint current_page; + + clear_caches (view); + + if (view->document) { + g_object_unref (view->document); + } + + view->document = document; + view->find_result = 0; + + if (view->document) { + view->loading = FALSE; + g_object_ref (view->document); + setup_caches (view); + } + + current_page = ev_document_model_get_page (model); + if (view->current_page != current_page) { + ev_view_change_page (view, current_page); + } else { + view->pending_scroll = SCROLL_TO_KEEP_POSITION; + gtk_widget_queue_resize (GTK_WIDGET (view)); + } + } +} + +static void +ev_view_rotation_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + gint rotation = ev_document_model_get_rotation (model); + + view->rotation = rotation; + + if (view->pixbuf_cache) { + ev_pixbuf_cache_clear (view->pixbuf_cache); + if (!ev_document_is_page_size_uniform (view->document)) + view->pending_scroll = SCROLL_TO_PAGE_POSITION; + gtk_widget_queue_resize (GTK_WIDGET (view)); + } + + ev_view_remove_all (view); + + if (rotation != 0) + clear_selection (view); +} + +static void +ev_view_inverted_colors_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + if (view->pixbuf_cache) { + gboolean inverted_colors; + + inverted_colors = ev_document_model_get_inverted_colors (model); + ev_pixbuf_cache_set_inverted_colors (view->pixbuf_cache, inverted_colors); + gtk_widget_queue_draw (GTK_WIDGET (view)); + } +} + +static void +ev_view_sizing_mode_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + EvSizingMode mode = ev_document_model_get_sizing_mode (model); + + view->sizing_mode = mode; + if (mode != EV_SIZING_FREE) + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +#define EPSILON 0.0000001 +static void +ev_view_scale_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + gdouble scale = ev_document_model_get_scale (model); + + if (ABS (view->scale - scale) < EPSILON) + return; + + view->scale = scale; + + view->pending_resize = TRUE; + if (view->sizing_mode == EV_SIZING_FREE) + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +static void +ev_view_continuous_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + gboolean continuous = ev_document_model_get_continuous (model); + + view->continuous = continuous; + view->pending_scroll = SCROLL_TO_PAGE_POSITION; + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +static void +ev_view_dual_page_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + gboolean dual_page = ev_document_model_get_dual_page (model); + + view->dual_page = dual_page; + view->pending_scroll = SCROLL_TO_PAGE_POSITION; + /* FIXME: if we're keeping the pixbuf cache around, we should extend the + * preload_cache_size to be 2 if dual_page is set. + */ + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +static void +ev_view_fullscreen_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvView *view) +{ + gboolean fullscreen = ev_document_model_get_fullscreen (model); + + view->fullscreen = fullscreen; + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + +void +ev_view_set_model (EvView *view, + EvDocumentModel *model) +{ + g_return_if_fail (EV_IS_VIEW (view)); + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (model == view->model) + return; + + if (view->model) { + g_signal_handlers_disconnect_by_func (view->model, + ev_view_document_changed_cb, + view); + g_signal_handlers_disconnect_by_func (view->model, + ev_view_page_changed_cb, + view); + g_object_unref (view->model); + } + view->model = g_object_ref (model); + + /* Initialize view from model */ + view->rotation = ev_document_model_get_rotation (view->model); + view->sizing_mode = ev_document_model_get_sizing_mode (view->model); + view->scale = ev_document_model_get_scale (view->model); + view->continuous = ev_document_model_get_continuous (view->model); + view->dual_page = ev_document_model_get_dual_page (view->model); + view->fullscreen = ev_document_model_get_fullscreen (view->model); + ev_view_document_changed_cb (view->model, NULL, view); + + g_signal_connect (view->model, "notify::document", + G_CALLBACK (ev_view_document_changed_cb), + view); + g_signal_connect (view->model, "notify::rotation", + G_CALLBACK (ev_view_rotation_changed_cb), + view); + g_signal_connect (view->model, "notify::inverted-colors", + G_CALLBACK (ev_view_inverted_colors_changed_cb), + view); + g_signal_connect (view->model, "notify::sizing-mode", + G_CALLBACK (ev_view_sizing_mode_changed_cb), + view); + g_signal_connect (view->model, "notify::scale", + G_CALLBACK (ev_view_scale_changed_cb), + view); + g_signal_connect (view->model, "notify::continuous", + G_CALLBACK (ev_view_continuous_changed_cb), + view); + g_signal_connect (view->model, "notify::dual-page", + G_CALLBACK (ev_view_dual_page_changed_cb), + view); + g_signal_connect (view->model, "notify::fullscreen", + G_CALLBACK (ev_view_fullscreen_changed_cb), + view); + g_signal_connect (view->model, "page-changed", + G_CALLBACK (ev_view_page_changed_cb), + view); +} + +static void +ev_view_reload_page (EvView *view, + gint page, + cairo_region_t *region) +{ + ev_pixbuf_cache_reload_page (view->pixbuf_cache, + region, + page, + view->rotation, + view->scale); +} + +void +ev_view_reload (EvView *view) +{ + ev_pixbuf_cache_clear (view->pixbuf_cache); + view_update_range_and_current_page (view); +} + +/*** Zoom and sizing mode ***/ + +gboolean +ev_view_can_zoom_in (EvView *view) +{ + return view->scale * ZOOM_IN_FACTOR <= ev_document_model_get_max_scale (view->model); +} + +gboolean +ev_view_can_zoom_out (EvView *view) +{ + return view->scale * ZOOM_OUT_FACTOR >= ev_document_model_get_min_scale (view->model); +} + +void +ev_view_zoom_in (EvView *view) +{ + gdouble scale; + + g_return_if_fail (view->sizing_mode == EV_SIZING_FREE); + + view->pending_scroll = SCROLL_TO_CENTER; + scale = ev_document_model_get_scale (view->model) * ZOOM_IN_FACTOR; + ev_document_model_set_scale (view->model, scale); +} + +void +ev_view_zoom_out (EvView *view) +{ + gdouble scale; + + g_return_if_fail (view->sizing_mode == EV_SIZING_FREE); + + view->pending_scroll = SCROLL_TO_CENTER; + scale = ev_document_model_get_scale (view->model) * ZOOM_OUT_FACTOR; + ev_document_model_set_scale (view->model, scale); +} + +static double +zoom_for_size_fit_width (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height) +{ + return (double)target_width / doc_width; +} + +static double +zoom_for_size_fit_height (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height) +{ + return (double)target_height / doc_height; +} + +static double +zoom_for_size_best_fit (gdouble doc_width, + gdouble doc_height, + int target_width, + int target_height) +{ + double w_scale; + double h_scale; + + w_scale = (double)target_width / doc_width; + h_scale = (double)target_height / doc_height; + + return MIN (w_scale, h_scale); +} + +static void +ev_view_zoom_for_size_continuous_and_dual_page (EvView *view, + int width, + int height) +{ + gdouble doc_width, doc_height; + GtkBorder border; + gdouble scale; + gint sb_size; + + ev_document_get_max_page_size (view->document, &doc_width, &doc_height); + if (view->rotation == 90 || view->rotation == 270) { + gdouble tmp; + + tmp = doc_width; + doc_width = doc_height; + doc_height = tmp; + } + + compute_border (view, doc_width, doc_height, &border); + + doc_width *= 2; + width -= (2 * (border.left + border.right) + 3 * view->spacing); + height -= (border.top + border.bottom + 2 * view->spacing - 1); + + sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL); + + if (view->sizing_mode == EV_SIZING_FIT_WIDTH) { + scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height); + } else if (view->sizing_mode == EV_SIZING_BEST_FIT) + scale = zoom_for_size_best_fit (doc_width, doc_height, width - sb_size, height); + else + g_assert_not_reached (); + + ev_document_model_set_scale (view->model, scale); +} + +static void +ev_view_zoom_for_size_continuous (EvView *view, + int width, + int height) +{ + gdouble doc_width, doc_height; + GtkBorder border; + gdouble scale; + gint sb_size; + + ev_document_get_max_page_size (view->document, &doc_width, &doc_height); + if (view->rotation == 90 || view->rotation == 270) { + gdouble tmp; + + tmp = doc_width; + doc_width = doc_height; + doc_height = tmp; + } + + compute_border (view, doc_width, doc_height, &border); + + width -= (border.left + border.right + 2 * view->spacing); + height -= (border.top + border.bottom + 2 * view->spacing - 1); + + sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL); + + if (view->sizing_mode == EV_SIZING_FIT_WIDTH) { + scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height); + } else if (view->sizing_mode == EV_SIZING_BEST_FIT) + scale = zoom_for_size_best_fit (doc_width, doc_height, width - sb_size, height); + else + g_assert_not_reached (); + + ev_document_model_set_scale (view->model, scale); +} + +static void +ev_view_zoom_for_size_dual_page (EvView *view, + int width, + int height) +{ + GtkBorder border; + gdouble doc_width, doc_height; + gdouble scale; + gint other_page; + + other_page = view->current_page ^ 1; + + /* Find the largest of the two. */ + get_doc_page_size (view, view->current_page, &doc_width, &doc_height); + if (other_page < ev_document_get_n_pages (view->document)) { + gdouble width_2, height_2; + + get_doc_page_size (view, other_page, &width_2, &height_2); + if (width_2 > doc_width) + doc_width = width_2; + if (height_2 > doc_height) + doc_height = height_2; + } + compute_border (view, width, height, &border); + + doc_width = doc_width * 2; + width -= ((border.left + border.right)* 2 + 3 * view->spacing); + height -= (border.top + border.bottom + 2 * view->spacing); + + if (view->sizing_mode == EV_SIZING_FIT_WIDTH) { + gint sb_size; + + sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL); + scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height); + } else if (view->sizing_mode == EV_SIZING_BEST_FIT) + scale = zoom_for_size_best_fit (doc_width, doc_height, width, height); + else + g_assert_not_reached (); + + ev_document_model_set_scale (view->model, scale); +} + +static void +ev_view_zoom_for_size_single_page (EvView *view, + int width, + int height) +{ + gdouble doc_width, doc_height; + GtkBorder border; + gdouble scale; + + get_doc_page_size (view, view->current_page, &doc_width, &doc_height); + + /* Get an approximate border */ + compute_border (view, width, height, &border); + + width -= (border.left + border.right + 2 * view->spacing); + height -= (border.top + border.bottom + 2 * view->spacing); + + if (view->sizing_mode == EV_SIZING_FIT_WIDTH) { + gint sb_size; + + sb_size = ev_view_get_scrollbar_size (view, GTK_ORIENTATION_VERTICAL); + scale = zoom_for_size_fit_width (doc_width, doc_height, width - sb_size, height); + } else if (view->sizing_mode == EV_SIZING_BEST_FIT) + scale = zoom_for_size_best_fit (doc_width, doc_height, width, height); + else + g_assert_not_reached (); + + ev_document_model_set_scale (view->model, scale); +} + +static void +ev_view_zoom_for_size (EvView *view, + int width, + int height) +{ + g_return_if_fail (EV_IS_VIEW (view)); + g_return_if_fail (view->sizing_mode == EV_SIZING_FIT_WIDTH || + view->sizing_mode == EV_SIZING_BEST_FIT); + g_return_if_fail (width >= 0); + g_return_if_fail (height >= 0); + + if (view->document == NULL) + return; + + if (view->continuous && view->dual_page) + ev_view_zoom_for_size_continuous_and_dual_page (view, width, height); + else if (view->continuous) + ev_view_zoom_for_size_continuous (view, width, height); + else if (view->dual_page) + ev_view_zoom_for_size_dual_page (view, width, height); + else + ev_view_zoom_for_size_single_page (view, width, height); +} + +/*** Find ***/ +static gint +ev_view_find_get_n_results (EvView *view, gint page) +{ + return view->find_pages ? g_list_length (view->find_pages[page]) : 0; +} + +static EvRectangle * +ev_view_find_get_result (EvView *view, gint page, gint result) +{ + return view->find_pages ? (EvRectangle *) g_list_nth_data (view->find_pages[page], result) : NULL; +} + +static void +jump_to_find_result (EvView *view) +{ + gint n_results; + gint page = view->current_page; + + n_results = ev_view_find_get_n_results (view, page); + + if (n_results > 0 && view->find_result < n_results) { + EvRectangle *rect; + GdkRectangle view_rect; + + rect = ev_view_find_get_result (view, page, view->find_result); + doc_rect_to_view_rect (view, page, rect, &view_rect); + ensure_rectangle_is_visible (view, &view_rect); + view->jump_to_find_result = FALSE; + } +} + +/** + * jump_to_find_page + * @view: #EvView instance + * @direction: Direction to look + * @shift: Shift from current page + * + * Jumps to the first page that has occurences of searched word. + * Uses a direction where to look and a shift from current page. + * + */ +static void +jump_to_find_page (EvView *view, EvViewFindDirection direction, gint shift) +{ + int n_pages, i; + + n_pages = ev_document_get_n_pages (view->document); + + for (i = 0; i < n_pages; i++) { + int page; + + if (direction == EV_VIEW_FIND_NEXT) + page = view->current_page + i; + else + page = view->current_page - i; + page += shift; + + if (page >= n_pages) { + page = page - n_pages; + } else if (page < 0) + page = page + n_pages; + + if (ev_view_find_get_n_results (view, page) > 0) { + ev_document_model_set_page (view->model, page); + break; + } + } +} + +void +ev_view_find_changed (EvView *view, GList **results, gint page) +{ + view->find_pages = results; + + if (view->jump_to_find_result == TRUE) { + jump_to_find_page (view, EV_VIEW_FIND_NEXT, 0); + jump_to_find_result (view); + } + + if (view->current_page == page) + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +void +ev_view_find_next (EvView *view) +{ + gint n_results; + + n_results = ev_view_find_get_n_results (view, view->current_page); + view->find_result++; + + if (view->find_result >= n_results) { + view->find_result = 0; + jump_to_find_page (view, EV_VIEW_FIND_NEXT, 1); + jump_to_find_result (view); + } else { + jump_to_find_result (view); + gtk_widget_queue_draw (GTK_WIDGET (view)); + } +} + +void +ev_view_find_previous (EvView *view) +{ + view->find_result--; + + if (view->find_result < 0) { + jump_to_find_page (view, EV_VIEW_FIND_PREV, -1); + view->find_result = MAX (0, ev_view_find_get_n_results (view, view->current_page) - 1); + jump_to_find_result (view); + } else { + jump_to_find_result (view); + gtk_widget_queue_draw (GTK_WIDGET (view)); + } +} + +void +ev_view_find_search_changed (EvView *view) +{ + /* search string has changed, focus on new search result */ + view->jump_to_find_result = TRUE; + view->find_pages = NULL; +} + +void +ev_view_find_set_highlight_search (EvView *view, gboolean value) +{ + view->highlight_find_results = value; + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +void +ev_view_find_cancel (EvView *view) +{ + view->find_pages = NULL; +} + +/*** Synctex ***/ +void +ev_view_highlight_forward_search (EvView *view, + EvSourceLink *link) +{ + EvMapping *mapping; + gint page; + GdkRectangle view_rect; + + if (!ev_document_has_synctex (view->document)) + return; + + mapping = ev_document_synctex_forward_search (view->document, link); + if (!mapping) + return; + + if (view->synctex_result) + g_free (view->synctex_result); + view->synctex_result = mapping; + + page = GPOINTER_TO_INT (mapping->data); + ev_document_model_set_page (view->model, page); + + doc_rect_to_view_rect (view, page, &mapping->area, &view_rect); + ensure_rectangle_is_visible (view, &view_rect); + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +/*** Selections ***/ + +/* compute_new_selection_rect/text calculates the area currently selected by + * view_rect. each handles a different mode; + */ +static GList * +compute_new_selection_rect (EvView *view, + GdkPoint *start, + GdkPoint *stop) +{ + GdkRectangle view_rect; + int n_pages, i; + GList *list = NULL; + + g_assert (view->selection_mode == EV_VIEW_SELECTION_RECTANGLE); + + view_rect.x = MIN (start->x, stop->x); + view_rect.y = MIN (start->y, stop->y); + view_rect.width = MAX (start->x, stop->x) - view_rect.x; + view_rect.width = MAX (start->y, stop->y) - view_rect.y; + + n_pages = ev_document_get_n_pages (view->document); + + for (i = 0; i < n_pages; i++) { + GdkRectangle page_area; + GtkBorder border; + + if (ev_view_get_page_extents (view, i, &page_area, &border)) { + GdkRectangle overlap; + + if (gdk_rectangle_intersect (&page_area, &view_rect, &overlap)) { + EvViewSelection *selection; + + selection = g_new0 (EvViewSelection, 1); + selection->page = i; + view_rect_to_doc_rect (view, &overlap, &page_area, + &(selection->rect)); + + list = g_list_append (list, selection); + } + } + } + + return list; +} + +static gboolean +gdk_rectangle_point_in (GdkRectangle *rectangle, + GdkPoint *point) +{ + return rectangle->x <= point->x && + rectangle->y <= point->y && + point->x < rectangle->x + rectangle->width && + point->y < rectangle->y + rectangle->height; +} + +static GList * +compute_new_selection_text (EvView *view, + EvSelectionStyle style, + GdkPoint *start, + GdkPoint *stop) +{ + int n_pages, i, first, last; + GList *list = NULL; + EvViewSelection *selection; + gdouble width, height; + int start_page, end_page; + + g_assert (view->selection_mode == EV_VIEW_SELECTION_TEXT); + + n_pages = ev_document_get_n_pages (view->document); + + /* First figure out the range of pages the selection + * affects. */ + first = n_pages; + last = 0; + if (view->continuous) { + start_page = 0; + end_page = n_pages; + } else if (view->dual_page) { + start_page = view->start_page; + end_page = view->end_page + 1; + } else { + start_page = view->current_page; + end_page = view->current_page + 1; + } + + for (i = start_page; i < end_page; i++) { + GdkRectangle page_area; + GtkBorder border; + + ev_view_get_page_extents (view, i, &page_area, &border); + if (gdk_rectangle_point_in (&page_area, start) || + gdk_rectangle_point_in (&page_area, stop)) { + if (first == n_pages) + first = i; + last = i; + } + + } + + /* Now create a list of EvViewSelection's for the affected + * pages. This could be an empty list, a list of just one + * page or a number of pages.*/ + for (i = first; i < last + 1; i++) { + GdkRectangle page_area; + GtkBorder border; + GdkPoint *point; + + get_doc_page_size (view, i, &width, &height); + + selection = g_new0 (EvViewSelection, 1); + selection->page = i; + selection->style = style; + selection->rect.x1 = selection->rect.y1 = 0; + selection->rect.x2 = width; + selection->rect.y2 = height; + + ev_view_get_page_extents (view, i, &page_area, &border); + + if (gdk_rectangle_point_in (&page_area, start)) + point = start; + else + point = stop; + + if (i == first) + view_point_to_doc_point (view, point, &page_area, + &selection->rect.x1, + &selection->rect.y1); + + /* If the selection is contained within just one page, + * make sure we don't write 'start' into both points + * in selection->rect. */ + if (first == last) + point = stop; + + if (i == last) + view_point_to_doc_point (view, point, &page_area, + &selection->rect.x2, + &selection->rect.y2); + + list = g_list_append (list, selection); + } + + return list; +} + +/* This function takes the newly calculated list, and figures out which regions + * have changed. It then queues a redraw approporiately. + */ +static void +merge_selection_region (EvView *view, + GList *new_list) +{ + GList *old_list; + GList *new_list_ptr, *old_list_ptr; + + /* Update the selection */ + old_list = ev_pixbuf_cache_get_selection_list (view->pixbuf_cache); + g_list_foreach (view->selection_info.selections, (GFunc)selection_free, NULL); + g_list_free (view->selection_info.selections); + view->selection_info.selections = new_list; + ev_pixbuf_cache_set_selection_list (view->pixbuf_cache, new_list); + g_signal_emit (view, signals[SIGNAL_SELECTION_CHANGED], 0, NULL); + + new_list_ptr = new_list; + old_list_ptr = old_list; + + while (new_list_ptr || old_list_ptr) { + EvViewSelection *old_sel, *new_sel; + int cur_page; + cairo_region_t *region = NULL; + + new_sel = (new_list_ptr) ? (new_list_ptr->data) : NULL; + old_sel = (old_list_ptr) ? (old_list_ptr->data) : NULL; + + /* Assume that the lists are in order, and we run through them + * comparing them, one page at a time. We come out with the + * first page we see. */ + if (new_sel && old_sel) { + if (new_sel->page < old_sel->page) { + new_list_ptr = new_list_ptr->next; + old_sel = NULL; + } else if (new_sel->page > old_sel->page) { + old_list_ptr = old_list_ptr->next; + new_sel = NULL; + } else { + new_list_ptr = new_list_ptr->next; + old_list_ptr = old_list_ptr->next; + } + } else if (new_sel) { + new_list_ptr = new_list_ptr->next; + } else if (old_sel) { + old_list_ptr = old_list_ptr->next; + } + + g_assert (new_sel || old_sel); + + /* is the page we're looking at on the screen?*/ + cur_page = new_sel ? new_sel->page : old_sel->page; + if (cur_page < view->start_page || cur_page > view->end_page) + continue; + + /* seed the cache with a new page. We are going to need the new + * region too. */ + if (new_sel) { + cairo_region_t *tmp_region = NULL; + + ev_pixbuf_cache_get_selection_surface (view->pixbuf_cache, + cur_page, + view->scale, + &tmp_region); + + if (tmp_region && !cairo_region_is_empty (tmp_region)) { + new_sel->covered_region = cairo_region_reference (tmp_region); + } + } + + /* Now we figure out what needs redrawing */ + if (old_sel && new_sel) { + if (old_sel->covered_region && new_sel->covered_region) { + /* We only want to redraw the areas that have + * changed, so we xor the old and new regions + * and redraw if it's different */ + region = cairo_region_copy (old_sel->covered_region); +#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 9, 12) + cairo_region_xor (region, new_sel->covered_region); +#else + cairo_region_t *tbr; + tbr = cairo_region_copy (new_sel->covered_region); + + /* xor old_sel, new_sel*/ + cairo_region_subtract (tbr, region); + cairo_region_subtract (region, new_sel->covered_region); + cairo_region_union (region, tbr); + cairo_region_destroy (tbr); +#endif + + if (cairo_region_is_empty (region)) { + cairo_region_destroy (region); + region = NULL; + } else { + gint num_rectangles = cairo_region_num_rectangles (region); + GdkRectangle r; + + /* We need to make the damage region a little bigger + * because the edges of the old selection might change + */ + cairo_region_get_rectangle (region, 0, &r); + r.x -= 5; + r.width = 5; + cairo_region_union_rectangle (region, &r); + + cairo_region_get_rectangle (region, num_rectangles - 1, &r); + r.x += r.width; + r.width = 5; + cairo_region_union_rectangle (region, &r); + } + } else if (old_sel->covered_region) { + region = cairo_region_copy (old_sel->covered_region); + } else if (new_sel->covered_region) { + region = cairo_region_copy (new_sel->covered_region); + } + } else if (old_sel && !new_sel) { + if (old_sel->covered_region && !cairo_region_is_empty (old_sel->covered_region)) { + region = cairo_region_copy (old_sel->covered_region); + } + } else if (!old_sel && new_sel) { + if (new_sel->covered_region && !cairo_region_is_empty (new_sel->covered_region)) { + region = cairo_region_copy (new_sel->covered_region); + } + } else { + g_assert_not_reached (); + } + + /* Redraw the damaged region! */ + if (region) { + GdkWindow *bin_window; + GdkRectangle page_area; + GtkBorder border; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + ev_view_get_page_extents (view, cur_page, &page_area, &border); + cairo_region_translate (region, + page_area.x + border.left - view->scroll_x, + page_area.y + border.top - view->scroll_y); +#if GTK_CHECK_VERSION(2, 90, 5) + gdk_window_invalidate_region (bin_window, region, TRUE); +#else + { + GdkRegion *gdk_region = gdk_region_new (); + guint n_recs = cairo_region_num_rectangles (region); + guint i; + + for (i = 0; i < n_recs; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + gdk_region_union_with_rect (gdk_region, (GdkRectangle *)&rect); + } + gdk_window_invalidate_region (bin_window, gdk_region, TRUE); + gdk_region_destroy (gdk_region); + } +#endif + cairo_region_destroy (region); + } + } + + /* Free the old list, now that we're done with it. */ + g_list_foreach (old_list, (GFunc) selection_free, NULL); + g_list_free (old_list); +} + +static void +compute_selections (EvView *view, + EvSelectionStyle style, + GdkPoint *start, + GdkPoint *stop) +{ + GList *list; + + if (view->selection_mode == EV_VIEW_SELECTION_RECTANGLE) + list = compute_new_selection_rect (view, start, stop); + else + list = compute_new_selection_text (view, style, start, stop); + merge_selection_region (view, list); +} + +/* Free's the selection. It's up to the caller to queue redraws if needed. + */ +static void +selection_free (EvViewSelection *selection) +{ + if (selection->covered_region) + cairo_region_destroy (selection->covered_region); + g_free (selection); +} + +static void +clear_selection (EvView *view) +{ + if (view->selection_info.selections) { + g_list_foreach (view->selection_info.selections, (GFunc)selection_free, NULL); + g_list_free (view->selection_info.selections); + view->selection_info.selections = NULL; + + g_signal_emit (view, signals[SIGNAL_SELECTION_CHANGED], 0, NULL); + } + view->selection_info.in_selection = FALSE; + if (view->pixbuf_cache) + ev_pixbuf_cache_set_selection_list (view->pixbuf_cache, NULL); +} + +void +ev_view_select_all (EvView *view) +{ + GList *selections = NULL; + int n_pages, i; + + /* Disable selection on rotated pages for the 0.4.0 series */ + if (view->rotation != 0) + return; + + clear_selection (view); + + n_pages = ev_document_get_n_pages (view->document); + for (i = 0; i < n_pages; i++) { + gdouble width, height; + EvViewSelection *selection; + + get_doc_page_size (view, i, &width, &height); + + selection = g_new0 (EvViewSelection, 1); + selection->page = i; + selection->style = EV_SELECTION_STYLE_GLYPH; + selection->rect.x1 = selection->rect.y1 = 0; + selection->rect.x2 = width; + selection->rect.y2 = height; + + selections = g_list_append (selections, selection); + } + + merge_selection_region (view, selections); + gtk_widget_queue_draw (GTK_WIDGET (view)); +} + +gboolean +ev_view_get_has_selection (EvView *view) +{ + return view->selection_info.selections != NULL; +} + +static char * +get_selected_text (EvView *view) +{ + GString *text; + GList *l; + gchar *normalized_text; + + text = g_string_new (NULL); + + ev_document_doc_mutex_lock (); + + for (l = view->selection_info.selections; l != NULL; l = l->next) { + EvViewSelection *selection = (EvViewSelection *)l->data; + EvPage *page; + gchar *tmp; + + page = ev_document_get_page (view->document, selection->page); + tmp = ev_selection_get_selected_text (EV_SELECTION (view->document), + page, selection->style, + &(selection->rect)); + g_object_unref (page); + g_string_append (text, tmp); + g_free (tmp); + } + + ev_document_doc_mutex_unlock (); + + normalized_text = g_utf8_normalize (text->str, text->len, G_NORMALIZE_NFKC); + g_string_free (text, TRUE); + return normalized_text; +} + +static void +ev_view_clipboard_copy (EvView *view, + const gchar *text) +{ + GtkClipboard *clipboard; + + clipboard = gtk_widget_get_clipboard (GTK_WIDGET (view), + GDK_SELECTION_CLIPBOARD); + gtk_clipboard_set_text (clipboard, text, -1); +} + +void +ev_view_copy (EvView *ev_view) +{ + char *text; + + if (!EV_IS_SELECTION (ev_view->document)) + return; + + text = get_selected_text (ev_view); + ev_view_clipboard_copy (ev_view, text); + g_free (text); +} + +static void +ev_view_primary_get_cb (GtkClipboard *clipboard, + GtkSelectionData *selection_data, + guint info, + gpointer data) +{ + EvView *ev_view = EV_VIEW (data); + + if (ev_view->link_selected) { + gtk_selection_data_set_text (selection_data, + ev_link_action_get_uri (ev_view->link_selected), + -1); + } else if (EV_IS_SELECTION (ev_view->document) && + ev_view->selection_info.selections) { + gchar *text; + + text = get_selected_text (ev_view); + if (text) { + gtk_selection_data_set_text (selection_data, text, -1); + g_free (text); + } + } +} + +static void +ev_view_primary_clear_cb (GtkClipboard *clipboard, + gpointer data) +{ + EvView *view = EV_VIEW (data); + + clear_selection (view); + clear_link_selected (view); +} + +static void +ev_view_update_primary_selection (EvView *ev_view) +{ + GtkClipboard *clipboard; + + clipboard = gtk_widget_get_clipboard (GTK_WIDGET (ev_view), + GDK_SELECTION_PRIMARY); + + if (ev_view->selection_info.selections || ev_view->link_selected) { + GtkTargetList *target_list; + GtkTargetEntry *targets; + int n_targets; + + target_list = gtk_target_list_new (NULL, 0); + gtk_target_list_add_text_targets (target_list, 0); + targets = gtk_target_table_new_from_list (target_list, &n_targets); + gtk_target_list_unref (target_list); + + if (!gtk_clipboard_set_with_owner (clipboard, + targets, n_targets, + ev_view_primary_get_cb, + ev_view_primary_clear_cb, + G_OBJECT (ev_view))) + ev_view_primary_clear_cb (clipboard, ev_view); + + gtk_target_table_free (targets, n_targets); + } else { + if (gtk_clipboard_get_owner (clipboard) == G_OBJECT (ev_view)) + gtk_clipboard_clear (clipboard); + } +} + +static void +clear_link_selected (EvView *view) +{ + if (view->link_selected) { + g_object_unref (view->link_selected); + view->link_selected = NULL; + } +} + +void +ev_view_copy_link_address (EvView *view, + EvLinkAction *action) +{ + clear_link_selected (view); + + ev_view_clipboard_copy (view, ev_link_action_get_uri (action)); + + view->link_selected = g_object_ref (action); + ev_view_update_primary_selection (view); +} + +/*** Cursor operations ***/ +static void +ev_view_set_cursor (EvView *view, EvViewCursor new_cursor) +{ + GdkCursor *cursor = NULL; + GtkWidget *widget; + GdkWindow *bin_window; + + if (view->cursor == new_cursor) { + return; + } + + view->cursor = new_cursor; + + bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); + widget = gtk_widget_get_toplevel (GTK_WIDGET (view)); + cursor = ev_view_cursor_new (gtk_widget_get_display (widget), new_cursor); + gdk_window_set_cursor (bin_window, cursor); + gdk_flush (); + if (cursor) + gdk_cursor_unref (cursor); +} + +void +ev_view_hide_cursor (EvView *view) +{ + ev_view_set_cursor (view, EV_VIEW_CURSOR_HIDDEN); +} + +void +ev_view_show_cursor (EvView *view) +{ + ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL); +} + +gboolean +ev_view_next_page (EvView *view) +{ + int page, n_pages; + + g_return_val_if_fail (EV_IS_VIEW (view), FALSE); + + if (!view->document) + return FALSE; + + page = ev_document_model_get_page (view->model); + n_pages = ev_document_get_n_pages (view->document); + + if (view->dual_page) + page = page + 2; + else + page = page + 1; + + if (page < n_pages) { + ev_document_model_set_page (view->model, page); + return TRUE; + } else if (view->dual_page && page == n_pages) { + ev_document_model_set_page (view->model, page - 1); + return TRUE; + } else { + return FALSE; + } +} + +gboolean +ev_view_previous_page (EvView *view) +{ + int page; + + g_return_val_if_fail (EV_IS_VIEW (view), FALSE); + + if (!view->document) + return FALSE; + + page = ev_document_model_get_page (view->model); + + if (view->dual_page) + page = page - 2; + else + page = page - 1; + + if (page >= 0) { + ev_document_model_set_page (view->model, page); + return TRUE; + } else if (view->dual_page && page == -1) { + ev_document_model_set_page (view->model, 0); + return TRUE; + } else { + return FALSE; + } +} + diff --git a/libview/ev-view.h b/libview/ev-view.h new file mode 100644 index 00000000..ccef4bb4 --- /dev/null +++ b/libview/ev-view.h @@ -0,0 +1,115 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only <evince-view.h> can be included directly." +#endif + +#ifndef __EV_VIEW_H__ +#define __EV_VIEW_H__ + +#include <gtk/gtk.h> + +#include <evince-document.h> + +#include "ev-document-model.h" + +G_BEGIN_DECLS + +#define EV_TYPE_VIEW (ev_view_get_type ()) +#define EV_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_VIEW, EvView)) +#define EV_IS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_VIEW)) + +typedef struct _EvView EvView; +typedef struct _EvViewClass EvViewClass; + +typedef enum { + EV_VIEW_SELECTION_TEXT, + EV_VIEW_SELECTION_RECTANGLE, +} EvViewSelectionMode; + +GType ev_view_get_type (void) G_GNUC_CONST; + +GtkWidget* ev_view_new (void); +void ev_view_set_model (EvView *view, + EvDocumentModel *model); +void ev_view_set_loading (EvView *view, + gboolean loading); +void ev_view_reload (EvView *view); +void ev_view_set_page_cache_size (EvView *view, + gsize cache_size); + +/* Clipboard */ +void ev_view_copy (EvView *view); +void ev_view_copy_link_address (EvView *view, + EvLinkAction *action); +void ev_view_select_all (EvView *view); +gboolean ev_view_get_has_selection (EvView *view); + +/* Page size */ +gboolean ev_view_can_zoom_in (EvView *view); +void ev_view_zoom_in (EvView *view); +gboolean ev_view_can_zoom_out (EvView *view); +void ev_view_zoom_out (EvView *view); + +/* Find */ +void ev_view_find_next (EvView *view); +void ev_view_find_previous (EvView *view); +void ev_view_find_search_changed (EvView *view); +void ev_view_find_set_highlight_search (EvView *view, + gboolean value); +void ev_view_find_changed (EvView *view, + GList **results, + gint page); +void ev_view_find_cancel (EvView *view); + +/* Synctex */ +void ev_view_highlight_forward_search (EvView *view, + EvSourceLink *link); + +/* Cursor */ +void ev_view_hide_cursor (EvView *view); +void ev_view_show_cursor (EvView *view); + +/* Navigation */ +void ev_view_scroll (EvView *view, + GtkScrollType scroll, + gboolean horizontal); +void ev_view_handle_link (EvView *view, + EvLink *link); +gboolean ev_view_next_page (EvView *view); +gboolean ev_view_previous_page (EvView *view); + +void ev_view_autoscroll_start (EvView *view); +void ev_view_autoscroll_stop (EvView *view); + +gboolean ev_view_get_page_extents (EvView *view, + gint page, + GdkRectangle *page_area, + GtkBorder *border); +/* Annotations */ +void ev_view_focus_annotation (EvView *view, + EvMapping *annot_mapping); +void ev_view_begin_add_annotation (EvView *view, + EvAnnotationType annot_type); +void ev_view_cancel_add_annotation (EvView *view); + +G_END_DECLS + +#endif /* __EV_VIEW_H__ */ diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4 new file mode 100644 index 00000000..2cfa1e71 --- /dev/null +++ b/m4/gtk-doc.m4 @@ -0,0 +1,61 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + dnl check for tools we added during development + AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + if test x$enable_gtk_doc = xyes; then + ifelse([$1],[], + [PKG_CHECK_EXISTS([gtk-doc],, + AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], + [PKG_CHECK_EXISTS([gtk-doc >= $1],, + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) + fi + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/m4/intltool.m4 b/m4/intltool.m4 new file mode 100644 index 00000000..122d773d --- /dev/null +++ b/m4/intltool.m4 @@ -0,0 +1,216 @@ +## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- +## Copyright (C) 2001 Eazel, Inc. +## Author: Maciej Stachowiak <mjs@noisehavoc.org> +## Kenneth Christiansen <kenneth@gnu.org> +## +## 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 2 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, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 40 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + + INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + ] + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be exetuted at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 00000000..d8125842 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,7831 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to <bug-libtool@gnu.org>." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 00000000..17cfd51c --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,369 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 00000000..9000a057 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 00000000..9c7b5d41 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3293 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4]) +m4_define([LT_PACKAGE_REVISION], [1.3293]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4' +macro_revision='1.3293' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 00000000..ecc946dd --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,98 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAMATECONFIG], [AC_DEFUN([_LT_AC_TAMATECONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/mate-doc-utils.m4 b/m4/mate-doc-utils.m4 new file mode 100644 index 00000000..b55e0fe6 --- /dev/null +++ b/m4/mate-doc-utils.m4 @@ -0,0 +1,56 @@ +dnl Do not call MATE_DOC_DEFINES directly. It is split out from +dnl MATE_DOC_INIT to allow mate-doc-utils to bootstrap off itself. +AC_DEFUN([MATE_DOC_DEFINES], +[ +AC_ARG_WITH([help-dir], + AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),, + [with_help_dir='${datadir}/mate/help']) +HELP_DIR="$with_help_dir" +AC_SUBST(HELP_DIR) + +AC_ARG_WITH([omf-dir], + AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),, + [with_omf_dir='${datadir}/omf']) +OMF_DIR="$with_omf_dir" +AC_SUBST(OMF_DIR) + +AC_ARG_WITH([help-formats], + AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),, + [with_help_formats='']) +DOC_USER_FORMATS="$with_help_formats" +AC_SUBST(DOC_USER_FORMATS) + +AC_ARG_ENABLE([scrollkeeper], + [AC_HELP_STRING([--disable-scrollkeeper], + [do not make updates to the scrollkeeper database])],, + enable_scrollkeeper=yes) +AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"]) + +dnl disable scrollkeeper automatically for distcheck +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" +AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) + +AM_CONDITIONAL([HAVE_MATE_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"]) +]) + +# MATE_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) +# +AC_DEFUN([MATE_DOC_INIT], +[AC_REQUIRE([AC_PROG_LN_S])dnl + +ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1]) + +AC_MSG_CHECKING([mate-doc-utils >= $gdu_cv_version_required]) +PKG_CHECK_EXISTS([mate-doc-utils >= $gdu_cv_version_required], + [gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no]) + +if test "$gdu_cv_have_gdu" = "yes"; then + AC_MSG_RESULT([yes]) + ifelse([$2],,[:],[$2]) +else + AC_MSG_RESULT([no]) + ifelse([$3],,[AC_MSG_ERROR([mate-doc-utils >= $gdu_cv_version_required not found])],[$3]) +fi + +MATE_DOC_DEFINES +]) diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 00000000..727ed8e9 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,4424 @@ +2010-08-15 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated zh_CN translation. + +2010-05-31 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated zh_CN translation. + +2009-04-15 Khaled Hosny <khaledhosny@eglug.org> + + * ar.po: Updated Arabic translation. + +2009-04-12 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2009-04-12 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2009-04-10 Goran Rakic <grakic@devbase.net> + + * sr.po, sr@latin.po: Updated Serbian translation (by MiloÅ” PopoviÄ). + +2009-04-10 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated zh_CN translation. + +2009-03-25 Amitakhya Phukan <amitakhya@svn.mate.org> + + * as.po: Updated Assamese translations. + +2009-03-25 Amitakhya Phukan <amitakhya@svn.mate.org> + + * as.po: Updated Assamese translations. + +2009-03-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic translation by Usama Akkad. + +2009-03-16 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish translation. + +2009-03-16 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek Translation by Fotis Tsamis. + +2009-03-16 Krishnababu K <kkrothap@redhat.com> + + * te.po: Updated Telugu Translation. + +2009-03-16 Rajesh Ranjan <rajeshkajha@yahoo.com> + + * mai.po: added Maithili translation. + * LINGUAS: Added Maithili (mai) to the list of Languages. + +2009-03-15 Andre Klapper <a9016009@gmx.de> + + * af.po: Added Afrikaans translation by Walter / Friedel Wolff. + * LINGUAS: Added af. + +2009-03-15 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2009-03-15 Ani Peter <apeter@redhat.com> + + * ml.po: Updated Malayalam Translations + +2009-03-15 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek Translation by Pierros Papadeas. + +2009-03-14 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2009-03-13 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation by Yuriy Penkin. + +2009-03-13 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician translation + +2009-03-13 Andre Klapper <a9016009@gmx.de> + + * cs.po: Revert last commit. + +2009-03-13 Andre Klapper <a9016009@gmx.de> + + * cs.po: Updated Czech translation by Lucas Lommer. + +2009-03-12 I. Felix <ifelix@redhat.com> + + * ta.po: Tamil Translation updated + +2009-03-11 Krishnababu K <kkrothap@redhat.com> + + * te.po: Updated Telugu Translation. + +2009-03-09 Andre Klapper <a9016009@gmx.de> + + * cs.po: Updated Czech translation by Martin Picek. + +2009-03-09 Sandeep Shedmake <sshedmak@redhat.com> + + * mr.po: Updated Marathi Translations. + +2009-03-09 Sandeep Shedmake <sshedmak@redhat.com> + + * mr.po: Updated Marathi Translations. + +2009-03-09 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2009-03-08 MiČu Moldovan <dumol@mate.ro> + + * ro.po: Updated Romanian translation. + +2009-03-08 Milo Casagrande <milo@ubuntu.com> + + * it.po: Updated Italian translation by Francesco Marletta. + +2009-03-07 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation by Yaron Sharabani. + +2009-03-06 Og Maciel <ogmaciel@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation by + FabrĆcio Godoy. + +2009-03-06 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2009-03-05 Shankar Prasad <svenkate@redhat.com> + + * kn.po: Updated Kannada translations. + +2009-03-03 Manoj Kumar Giri <mgiri@redhat.com> + + * or.po: Updated Oriya Translation. + +2009-03-02 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Adrian Gunis. + +2009-03-02 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation by Juan Jesus Ojeda + +2009-02-28 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2009-02-28 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2009-02-26 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2009-02-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-25 Christian Kirbach <Christian.Kirbach@googlemail.com> + + * de.po: Updated German translation. + +2009-02-23 Philip Withnall <philip@tecnocode.co.uk> + + * en_GB.po: Updated British English translation. + +2009-02-21 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2009-02-22 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2009-02-19 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2009-02-19 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2009-02-19 Sweta Kothari <swkothar@redhat.com> + + * gu.po: Committed Gujarati Translation. + +2009-02-18 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation. + +2009-02-18 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2009-02-18 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2009-02-18 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2009-02-18 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2009-02-17 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2009-02-17 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2009-02-16 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-02-15 Tomasz Dominikowski <tdominikowski@aviary.pl> + + * pl.po: Updated Polish translation + +2009-02-15 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation by Kenneth Nielsen + +2009-02-15 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2009-02-15 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2009-02-14 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation by Kenneth Nielsen + +2009-02-14 Tomasz Dominikowski <tdominikowski@aviary.pl> + + * pl.po: Updated Polish translation + +2009-02-14 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2009-02-14 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2009-02-11 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2009-02-09 Gil Forcada <gforcada@gnome.org> + + * ast.po: Added Asturian translation on behalf of Mikel GonzĆ”lez. + * LINGUAS: Added ast. + +2009-02-07 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2009-02-04 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2009-02-03 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-01 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2009-01-31 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2009-01-29 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2009-01-28 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2009-01-24 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2009-01-19 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2009-01-18 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2009-01-17 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2009-01-16 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation, fix #567910. + +2009-01-12 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2009-01-10 Mario BlƤttermann <mariobl@svn.mate.org> + + * de.po: Updated German translation + +2009-01-05 ēé²(Gan Lu) <rhythm.gan@gmail.com> + + * zh_CN.po: Updated Chinese Simplified translation + +2009-01-05 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2009-01-04 Leonardo Ferreira Fontenelle <leonardof@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. Contributed by + Taylon Silmer. + +2009-01-02 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation by Juan JesĆŗs Ojeda and me + +2009-01-01 ēé²(Gan Lu) <rhythm.gan@gmail.com> + + * zh_CN.po: Updated Chinese Simplified translation + +2009-01-01 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-12-28 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-12-20 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar HraÄyÅ”ka. + +2008-12-16 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-12-15 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Remove non-existing files. + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-12-15 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-12-07 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-11-17 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Fixed #557023 + +2008-11-08 Jorge Gonzalez <joregegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-11-02 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2008-10-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Usama Akkad. + +2008-10-16 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation + +2008-10-12 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Adrian Gunis + (bug #544424 again). + +2008-10-11 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2008-09-30 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-09-23 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2008-09-21 Wadim Dziedzic <wdziedzic@aviary.pl> + + * pl.po: Updated Polish translation + +2008-09-21 Alexandre Prokoudine <alexandre.prokoudine@gmail.com> + + * ru.po: Updated Russian translation + +2008-09-20 Mugurel Tudor <mugurelu@mate.ro> + + * ro.po: Updated Romanian translation by + MiÅu Moldovan <dumol@mate.ro> + +2008-09-20 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation by Kenneth Nielsen + +2008-09-20 Nikos Charonitakis <nikosx@gmail.com> + + * el.po: Updated Greek translation by Papadeas Pierros <ppapadeas@gmail.com>. + +2008-09-19 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2008-09-19 Mario BlƤttermann <mariobl@svn.mate.org> + + * de.po: Updated German Translation + +2008-09-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Usama Akkad. + +2008-09-18 Sweta Kothari <swkothar@redhat.com> + + * gu.po: Committed Gujarati Translation. + +2008-09-18 Shankar Prasad <svenkate@redhat.com> + + * kn.po: Updated Kannada Translation + +2008-09-18 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish Translation + +2008-09-18 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-09-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-09-17 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Francesco Marletta. + +2008-09-16 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2008-09-15 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-09-15 I. Felix <ifelix@redhat.com> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2008-09-14 Sandeep Shedmake <sshedmak@redhat.com> + + * mr.po: Updated Marathi translations. + +2008-09-14 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-09-14 Arangel Angov <arangel@linux.net.mk> + + * mk.po: Updated Macedonian translation. + +2008-09-13 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2008-09-13 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2008-09-13 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2008-09-12 Goran RakiÄ <grakic@devbase.net> + + * sr.po, sr@latin.po: Updated Serbian translation (by MiloÅ” PopoviÄ). + +2008-09-09 Praveen Arimbrathodiyil <pravi.a@gmail.com> + + * ml.po: Malayalam translation updated by Santhosh Thottingal. + +2008-09-09 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-09-08 Kjartan Maraas <kmaraas@gnome.org> + + * LINGUAS: Remove hr until the translation is added. + +2008-09-07 Robert Sedak <robert.sedak@sk.t-com.hr> + + * hr.po: Added Croatian translation. + * LINGUAS: Added hr + +2008-09-07 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2008-09-07 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2008-09-07 Philip Withnall <philip@tecnocode.co.uk> + + * en_GB.po: Updated British English translation. + +2008-09-07 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Adrian Gunis + (bug #544424). + +2008-09-06 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated zh_CN translation. + +2008-09-04 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2008-09-04 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-09-04 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian Translation. + +2008-09-02 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Robert-AndrĆ© Mauchin. + +2008-09-02 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician translation + +2008-09-02 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-09-02 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-09-02 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation + +2008-09-02 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-09-02 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-09-01 Leonardo Ferreira Fontenelle <leonardof@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation, and fixed some + terminology. + +2008-08-29 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-08-29 Mario BlƤttermann <mariobl@svn.mate.org> + + * de.po: Updated German translation. + +2008-08-28 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2008-08-27 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha Translation + + +2008-08-25 Goran Rakic <grakic@devbase.net> + + * LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin. + +2008-08-21 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-08-20 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-08-20 Manoj Kumar Giri <mgiri@redhat.com> + + * or.po: Updated Oriya Translation + +2008-08-13 Runa Bhattacharjee <runab@redhat.com> + + * bn_IN.po: Updated Bengali India Translation + +2008-08-13 Shankar Prasad <svenkate@redhat.com> + + * kn.po: Updated Kannada Translation. + +2008-08-12 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2008-08-12 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2008-08-12 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-08-07 Og Maciel <ogmaciel@gnome.org> + + * pt_BR.po: Updated translation by Vladimir Melo. + +2008-08-6 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-07-30 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2008-07-29 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-07-27 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Adrian Gunis + (bug #544424). + +2008-07-24 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Pierre Lemaire. + +2008-07-21 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2008-07-19 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-07-15 Runa Bhattacharjee <runabh@gmail.com> + + * ps.po: Added Pashto Translations by Zabeeh Khan + * LINGUAS: Added Pashto (ps) to the List of Languages + +2008-07-04 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-07-03 Runa Bhattacharjee <runabh@gmail.com> + + * ks.po: Added Kashmiri Translations by Rakesh Pandit (rakesh.pandit@gmail.com) + * LINGUAS: Added Kashmiri (ks) to the List of Languages. + +2008-06-30 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-06-25 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-06-23 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-06-21 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-06-19 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-06-11 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-05-28 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-05-25 Philip Withnall <pwithnall@svn.mate.org> + + * en_GB.po: Updated British English translation. + +2008-05-25 Philip Withnall <pwithnall@svn.mate.org> + + * en_GB.po: Updated British English translation. + +2008-05-25 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2008-05-22 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-05-22 Goran RakiÄ <grakic@devbase.net> + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2008-05-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-05-05 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-04-30 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-04-29 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-04-26 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-04-21 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2008-04-19 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-04-19 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-04-19 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-04-19 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Remove some deleted files and add a missing one. + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-03-29 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Yavor Doganov <yavor@gnu.org> + +2008-03-29 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-03-25 Philip Withnall <pwithnall@svn.mate.org> + + * en_GB.po: Updated British English translation. + +2008-03-23 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Update Vietnamese translation + +2008-03-23 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-03-20 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-03-15 Alexander Nyakhaychyk <nab@mail.by> + + * be.po: Updated Belarusian Translation. + +2008-03-10 Ani Peter <peter.ani@gmail.com> + + * ml.po: Updated Malayalam Translation + +2008-03-09 Vasiliy Faronov <qvvx@yandex.ru> + + * ru.po: Updated Russian translation. + +2008-03-09 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated + +2008-03-08 Claude Paroz <claude@2xlibre.net> + + * fr.po: Fix in French translation. + +2008-03-08 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian Translation. + +2008-03-08 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Kamil Paral. + +2008-03-07 Mugurel Tudor <mugurelu@mate.ro> + + *ro.po: Updated Romanian translation + by MiÅu Moldovan <dumol@mate.ro> + +2008-03-06 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Fixed French translation. + +2008-03-05 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2008-03-05 Rahul Bhalerao <b.rahul.pm@gmail.com> + + * mr.po: Updated Marathi Translations by Sandeep Shedmake. + +2008-03-05 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2008-03-04 Nikos Charonitakis <nikosx@gmail.com> + + * el.po: Updated Greek translation. + +2008-03-03 Philip Withnall <pwithnall@svn.mate.org> + + * en_GB.po: Updated British English translation. + +2008-03-02 Ć smund SkjƦveland <aasmunds@ulrik.uio.no> + + * nn.po: Updated Norwegian Nynorsk translation. + +2008-03-02 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation. + +2008-03-02 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation + +2008-03-02 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2008-02-29 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-02-24 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2008-02-23 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-02-19 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-02-17 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-02-16 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Hugo Doria. + +2008-02-17 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation. + +2008-02-15 Runa Bhattacharjee <runabh@gmail.com> + + * kn.po: Added Kannada Translations by Shankar Prasad + * LINGUAS: Added Kannada (kn) to the list of languages. + +2008-02-15 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2008-02-14 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-02-14 Arangel Angov <arangel@linux.net.mk> + + * mk.po: Updated Macedonian translation. + +2008-02-14 Pawan Chitrakar <chautari@gmail.com> + + * ne.po: Updated Nepali Translation. + +2008-02-13 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2008-02-13 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-02-11 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-02-10 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-02-10 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-02-10 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-02-10 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2008-02-07 Artur Flinta <aflinta@svn.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2008-02-02 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2008-02-02 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2008-02-02 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo. + +2008-02-2 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-02-01 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish translation by Serdar Cicek + +2008-02-01 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-02-01 Amitakhya Phukan <amitakhya@svn.mate.org> + + * LINGUAS: Added as to LINGUAS. + * as.po: Updated assamese translations. + +2008-01-31 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-01-29 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo. + +2008-01-29 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-01-28 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-01-27 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Update Ukrainian translation. + +2008-01-27 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-01-27 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2008-01-27 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-01-26 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2008-01-25 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-01-24 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-01-24 Danishka Navin <danishka@gmail.com> + + * LINGUAS: Added si (Sinhala) + +2008-01-24 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-01-23 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2008-01-23 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-01-21 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2008-01-21 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-01-18 Gil Forcada <gforcada@gnome.org> + + * tr.po: Updated Turkish translation to pass msgfmt -cv. + +2008-01-18 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2008-01-18 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-01-15 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-01-14 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2008-01-14 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2008-01-12 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-01-09 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2008-01-07 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add missing files. + * nb.po: Update. + +2008-01-06 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation. + +2008-01-04 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2008-01-03 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-12-31 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2007-12-31 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2007-12-28 Priit Laes <plaes at svn dot mate dot org> + + * et.po: Translation updated by Ivar Smolin echo + +2007-12-28 Thierry Randrianiriana <randrianiriana@gmail.com> + + * mg.po: Updated Malagasy translation. + +2007-12-26 SeĆ”n de BĆŗrca <sdeburca@svn.mate.org> + + * ga.po: Added Irish translation. + * LINGUAS: Added Irish. + +2007-12-24 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2007-12-23 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-12-22 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Hugo Doria and + myself. + +2007-12-18 Priit Laes <plaes@svn.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2007-12-17 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-12-13 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: Translation of "status bar" fixed by Rodrigo Flores. + +2007-12-06 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-12-01 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + * be@latin.po: Updated Belarusian Latin translation. + +2007-11-27 Matej UrbanÄiÄ <mateju@svn.mate.org> + + * sl.po: Updated Slovenian translation. + +2007-11-25 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es/es.po: Updated Spanish translation + +2007-11-21 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation + +2007-11-11 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-11-09 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + * be@latin.po: Updated Belarusian Latin translation. + +2007-11-03 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-11-01 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es/es.po: Updated Spanish translation + +2007-11-01 Priit Laes <plaes@svn.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2007-11-01 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated + +2007-10-31 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2007-10-31 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-10-29 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add missing file. + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-10-28 Priit Laes <plaes@svn.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2007-10-27 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Remove a file. + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-10-25 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2007-10-24 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-10-23 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Youssef Chahibi. + +2007-10-21 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Youssef Chahibi. + +2007-10-15 Matej UrbanÄiÄ <mateju@svn.mate.org> + + * sl.po: Updated Slovenian translation. + +2007-10-16 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2007-10-07 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation + +2007-09-23 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation (fix for bug #479254). + +2007-09-22 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2007-09-20 Luca Ferretti <elle.uca@libero.it> + * it.po: Updated Italian translation fixing some + typos. + +2007-09-17 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by + Francesco Marletta <francesco.marletta@tiscali.it> + +2007-09-17 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2007-09-16 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2007-09-16 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation + +2007-09-15 Mugurel Tudor <mugurelu@mate.ro> + + * ro.po: Updated Romanian translation + by MiÅu Moldovan <dumol@mate.ro> + +2007-09-13 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Youssef Chahibi. + +2007-09-13 Claude Paroz <claude@2xlibre.net> + + * sk.po: Updated Slovak translation on behalf of Peter Tuharsky + <tuharsky@misbb.sk>. + +2007-09-13 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2007-09-10 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Update Ukrainian translation. + +2007-09-09 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation + +2007-09-07 Goran RakiÄ <grakic@devbase.net> + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2007-09-06 Priit Laes <plaes@svn.mate.org> + + * et.po: Estonian translation updates by Ivar Smolin + +2007-09-05 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-09-05 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add ev-jobs.c + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-09-02 Gil Forcada <gforcada@svn.mate.org> + + * ca.po: Updated catalan translation. + +2007-08-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2007-08-27 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2007-08-23 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2007-08-16 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2007-08-15 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2007-08-15 Hendrik Richter <hendrikr@gnome.org> + + * de.po: intltool-update de + +2007-08-05 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: s/_ConteĆŗdo/S_umĆ”rio; see bug #461308. + +2007-08-05 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Fixed wrong translation. + +2007-08-04 Raphael Higino <raphaelh@svn.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese translation + +2007-08-03 Danishka Navin <snavin@svn.mate.org> + + * si.po: Added Sinhala translation by Danishka Navin + * LINGUAS: Added "si". + +2007-08-03 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + * be@latin.po: Added Belarusian Latin translation. + +2007-07-28 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + * eu.po: Updated Basque translation + +2007-07-26 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated Simplified Chinese translation + +2007-07-16 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2007-07-16 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-07-11 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2007-07-09 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-07-09 I. Felix <ifelix@svn.mate.org> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2007-07-06 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2007-07-03 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2007-07-01 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-07-01 Sunil Mohan Adapa <sunil@atc.tcs.com> + + * te.po: Added Telugu translation done by + Bharat Kumar <jonnalagaddabharat@gmail.com>. + +2007-06-29 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-06-29 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated dzongkha translation + +2007-06-28 Artur Flinta <aflinta@svn.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2007-06-28 Priit Laes <plaes@svn.mate.org> + + * et.po: Estonian translation update by Ivar Smolin. + +2007-06-26 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-06-24 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2007-06-23 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-06-18 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2007-06-18 I Felix <ifelix25@gmail.com> + + * ta.po: Updated Tamil Translation. + +2007-06-14 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated dzongkha translation. + +2007-06-04 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-06-02 Jordi Mas <jmas@softcatala.org> + + * ca.po: Some fixes for the Catalan translation. + +2007-05-27 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-05-23 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-05-22 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-05-19 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-05-17 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-05-15 David Lodge <dave@cirt.net> + + * en_GB.po: Updated British English translation + +2007-05-15 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2007-05-10 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2007-05-10 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-05-08 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation + +2007-05-08 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation from + Espen Stefansen. + +2007-04-25 Christophe Merlet <redfox@redfoxcenter.org> + + * oc.po: Added Occitan translation from + Yannig MARCHEGAY <yannig@marchegay.org>. + * LINGUAS: Added "oc" (Occitan). + +2007-04-23 Jorge Gonzalez <jorgegonz@svn.mate.org> + + * es.po: Updated Spanish translation. + +2007-04-23 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Francesco Marletta. + +2007-04-22 David Lodge <dave@cirt.net> + + * en_GB.po: Updated British English translation + +2007-04-21 Leonardo Ferreira Fontenelle <leonardof@svn.mate.org> + + * pt_BR.po: Fixes in Brazilian Portuguese translation by Washington + Lins <washington-lins@uol.com.br> and me (Leonardo F. Fontenelle + <leo.fontenelle@gmail.com>). + +2007-04-21 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-04-20 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2007-04-15 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek translation + +2007-04-12 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-04-10 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2007-04-06 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2007-04-03 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech Translation. + +2007-04-02 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2007-03-30 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2007-03-27 Claudio Saavedra <csaavedra@alumnos.utalca.cl> + + * es.po: Updated Spanish translation by Jorge GonzĆ”lez. + +2007-03-25 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-03-21 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha Translation. + +2007-03-12 Goran RakiÄ <grakic@devbase.net> + + * sr.po, sr@Latn.po: Updated Serbian translation, by + Igor NestoroviÄ <jung@one.ekof.bg.ac.yu> + +2007-03-11 Mugurel Tudor <mugurelu@mate.ro> + + * ro.po: Updated Romanian translation by + MiÅu Moldovan <dumol@mate.ro> + +2007-03-10 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2007-03-06 Thierry Randrianiriana <randrianiriana@gmail.com> + + * mg.po: Updated Malagasy translation. + +2007-03-04 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2007-03-04 Erdal Ronahi <erdal.ronahi@gmail.com> + + * ku.po: Updated Kurdish translation + +2007-03-04 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2007-03-03 Artur Flinta <aflinta@svn.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2007-03-03 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-03-01 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2007-03-01 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2007-02-28 Matic Zgur <mr.zgur@gmail.com> + + * sl.po: Updated Slovenian translation. + +2007-02-28 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation by Phįŗ”m ThĆ nh Long <ptlong@gmail.com>. + +2007-02-27 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2007-02-27 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation, by + Christian Kintner <mail@christian-kintner.de> + +2007-02-25 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2007-02-25 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-02-25 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2007-02-24 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2007-02-23 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Fix mangled header. + +2007-02-22 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Updated Ukrainian translation. + +2007-02-22 Abel Cheung <abelcheung@gmail.com> + + * zh_CN.po: Updated simplified Chinese translation on behalf of + Funda Wang. + +2007-02-20 Raphael Higino <raphaelh@svn.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese. + +2007-02-19 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2007-02-19 Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-02-18 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2007-02-17 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-02-16 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-02-15 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2007-02-14 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + * POTFILES.in: Added missing file. + +2007-02-12 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2007-02-12 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-02-11 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2007-02-11 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-02-11 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2007-02-11 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-02-11 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2007-02-10 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2007-02-09 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2007-02-8 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-02-07 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2007-02-06 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation by Jonathan Ernst and Claude + Paroz. + +2007-02-05 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-02-05 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha Translation. + +2007-02-03 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-02-03 Ihar Hrachyshka <iharh@gnome.org> + + * be.po: Updated Belarusian translation. + +2007-02-02 Dimitris Glezos <dimitris@glezos.com> + + * el.po: Updated Greek translation. + +2007-01-30 Daniel Nylander <po@danienylander.se> + + * sv.po: Updated Swedish translation. + +2007-01-30 Wouter Bolsterlee <wbolster@svn.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2007-01-29 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-01-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2007-01-27 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-01-27 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-01-25 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * POTFILES.in: Added impress-document to POTFILES. + +2007-01-23 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2007-01-23 StĆ©phane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French Translation. + +2007-01-23 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-01-20 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-01-18 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-01-17 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2007-01-16 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-01-15 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-01-15 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-01-14 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2007-01-13 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-01-12 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + * POTFILES.in: Added missing files. + +2007-01-12 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-01-11 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * be.po: Fixes bug #395105. Thanks to + Damien Carbery <damien.carbery@sun.com>. + +2007-01-11 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-01-10 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2007-01-10 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-01-09 Priit Laes <plaes@svn.mate.org> + + * et.po: Estonian translation update by Ivar Smolin <okul@linux.ee>. + +2007-01-09 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-01-08 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * POTFILES.in: + +2007-01-08 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2007-01-07 Priit Laes <plaes@svn.mate.org> + + * et.po: Updated Estonian translation. + +2007-01-06 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-01-05 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-01-05 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2007-01-03 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2006-12-31 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-12-29 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2006-12-28 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add missing files. + * POTFILES.skip: Here too. + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-12-28 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2006-12-28 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2006-12-27 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation. + +2006-12-26 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-12-25 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-12-25 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-12-24 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation. + +2006-12-24 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2006-12-22 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-20 Raivis Dejus <orvils@gmail.com> + + * lv.po: Updated Latvian Translation. + +2006-12-20 Ales Nyakhaychyk <nab@mail.by> + + * be.po: Updated Belarusian Translation by Ihar Hrachyshka. + +2006-12-19 Matic Žgur <mr.zgur@gmail.com> + + * sl.po: Updated Slovenian translation. + +2006-12-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Added Arabic Translation. + * LINGUAS: Added ar. + +2006-12-17 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-12-17 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2006-12-15 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-12-15 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-12-15 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-14 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-12-13 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2006-12-11 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-11 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-12-11 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-12-09 Thierry Randrianiriana <randrianiriana@gmail.com> + + * mg.po: Updated Malagasy translation. + +2006-12-09 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-12-07 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-05 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2006-11-29 Dimitris Glezos <dimitris@glezos.com> + + * el.po: Updated Greek translation + +2006-11-19 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-11-19 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-11-17 Wouter Bolsterlee <wbolster@cvs.mate.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2006-11-04 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2006-10-30 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-10-29 Satoru SATOH <ss@mate.gr.jp> + + * ja.po: Fixed mismatched plural forms. + +2006-10-26 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-10-20 Thierry Randrianiriana <randrianiriana@gmail.com> + + * mg.po: Added Malagasy translation. + * LINGUAS: Added 'mg'. + +2006-10-17 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add impress/zip.c + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-10-04 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-09-28 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-09-20 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Updated Italian translation by + Francesco Marletta <francesco.marletta@tiscali.it>. + +2006-09-12 Kostas Papadimas <pkst@gnome.org> + + * el.po: Fixed typos by Dimitris Glezos <dimitris@glezos.com> + +2006-09-10 Ole Laursen <olau@hardworking.dk> + + * da.po: Updated Danish translation. + +2006-09-10 Vladimer Sichinava <vlsichinava@gmail.com> + + * ka.po: Updated Georgian translation. + +2006-09-10 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation. + +2006-09-06 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha translation + +2006-09-05 Ć smund SkjƦveland <aasmunds@fys.uio.no> + + * nn.po: Updated Norwegian Nynorsk translation. + +2006-09-04 Roozbeh Pournader <roozbeh@farsiweb.info> + + * fa.po: Update Persian translation by Meelad Zakaria. + +2006-09-04 Mugurel Tudor <mugurelu@mate.ro> + + * ro.po: Updated Romanian translation by + MiÅu Moldovan <dumol@mate.ro> + +2006-09-03 Lucas Rocha <lucasr@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation + by Leonardo Ferreira Fontenelle <leo.fontenelle@gmail.com> + +2006-09-03 Abel Cheung <abel@oaka.org> + + * zh_HK.po: Updated Chinese (Hong Kong) translation. + * zh_TW.po: Updated Chinese (Taiwan) translation. + +2006-09-01 Nikos Charonitakis <nikosx@gmail.com> + + * el.po: Updated Greek translation. + +2006-08-31 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-08-30 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2006-08-30 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2006-08-29 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2006-08-29 Raivis Dejus <orvils@gmail.com> + + * lv.po: Updated Latvian translation. + +2006-08-29 Rajesh Ranjan <rajeshkajha@yahoo.com> + + * hi.po: Updated Hindi Translation. + +2006-08028 Rahul Bhalerao <b.rahul.pm@gmail.com> + + * mr.po: Updated Marathi translation. + +2006-08-28 Rahul Bhalerao <b.rahul.pm@gmail.com> + + * mr.po: Added the file and updated Marathi translation. + * LINGUAS: Added an entry for Marathi(mr). + +2006-08-27 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated french translation from + Claude Paroz <paroz@email.ch>. + +2006-08-27 Khandakar Mujahidul Islam <suzan@bengalinux.org> + + * bn.po: Updated Bengali translation + +2006-08-27 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-08-25 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-08-24 Leonid Kanter <leon@asplinux.ru> + + * ru.po: Updated Russian translation + +2006-08-24 Matic Žgur <mr.zgur@gmail.com> + + * sl.po: Updated Slovenian translation. + +2003-08-24 Subhransu Behera <arya_subhransu@yahoo.co.in> + + * or.po: Updated Oriya Translation. + +2003-08-23 Subhransu Behera <arya_subhransu@yahoo.co.in> + + * or.po: Added and Updated Oriya Translation. + * LINGUAS: Added Oriya (or) to The List of Languages. + +2006-08-22 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Updated Bengali India Translation. + +2006-08-19 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2006-08-18 Ani Peter <peter.ani@gmail.com> + + * ml.po: Added and Updated the Malayalam translation + * LINGUAS: Added Malayalam(ml) to the list of Languages + +2006-08-17 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish Translation + +2006-08-17 Satoru SATOH <ss@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2006-08-16 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2006-08-16 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-08-16 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Translation updated. + +2006-08-15 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2006-08-15 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2006-08-15 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-08-14 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-08-13 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-08-13 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-08-13 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2006-08-10 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Updated Bengali India Translation. + +2006-08-10 Guntupalli Karunakar <karunakar@freedomink.org> + + * dz.po: Updated Dzongkha translation by + Dzongkhalinux team, DIT + +2006-08-09 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Fixed/Updated Macedonian translation. + +2006-08-09 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-08-07 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2006-08-05 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-08-05 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-08-04 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-08-04 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-08-04 Wouter Bolsterlee <uws+mate@xs4all.nl> + + * nl.po: Translation updated by Wouter Bolsterlee. + +2006-08-01 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated/Fixed Macedonian Translation + +2006-07-31 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-07-31 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-07-30 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-07-30 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-07-30 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-07-30 Arangel Angov <ufo@linux.net.mk> + + * sl.po: Added Slovenian translation. + +2006-07-28 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-07-27 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2006-07-27 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-07-26 Nikos Charonitakis <nikosx@gmail.com> + + * el.po: Updated Greek translation. + +2006-07-25 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-07-25 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-07-24 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net> + +2006-07-24 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-07-24 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-07-23 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2006-07-23 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2006-07-21 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated french translation. + +2006-07-21 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Fixed plurals in Catalan translation by Gil Forcada. + +2006-07-20 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-07-19 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-07-18 Guntupalli Karunakar <karunakar@freedomink.org> + + * dz.po: Updated Dzongkha translation by + Dzongkhalinux team, DIT + +2006-07-18 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-07-18 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-07-17 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-07-17 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-07-17 BenoĆ®t Dejean <benoit@placenet.org> + + * fr.po: Updated French translation. + +2006-07-16 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-07-14 Priit Laes <amd@store20.com> + + * et.po: Translation updated. + +2006-07-11 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-07-11 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-07-10 Ahmad Riza H Nst <rizahnst@eriagempita.co.id> + + * id.po: Updated. + +2006-07-09 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-07-08 BenoĆ®t Dejean <benoit@placenet.org> + + * fr.po: Updated French translation. + +2006-07-09 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2006-07-07 Ales Nyakhaychyk <nab@mail.by> + + * be.po: Updated Belarusian translation. + +2006-07-07 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2006-07-05 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-07-05 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2006-07-03 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Added Bengali India Translation + * LINGUAS: Added Bengali India (bn_IN) to the list of languages. + +2006-07-02 BenoĆ®t Dejean <benoit@placenet.org> + + * fr.po: Updated French translation. + +2006-07-02 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-07-01 Pawan Chitrakar <pchitrakar@gmail.com> + + * ne.po: Updated Nepali Translation + +2006-06-27 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2006-06-20 Priit Laes <amd@store20.com> + + * et.po: Translation updated. + +2006-06-19 I. Felix <ifelix25@gmail.com> + + * ta.po: Updated Tamil translation. + +2006-06-15 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2006-06-14 Wouter Bolsterlee <uws+mate@xs4all.nl> + + * nl.po: Translation updated by Wouter Bolsterlee. + +2006-06-11 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech translation. + +2006-06-10 Josep Puigdemont CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net> + +2006-06-09 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-06-07 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-06-06 Jayaradha <jayaradhaa@gmail.com> + + * ta.po: Updated Tamil translation. + +2006-06-04 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-05-30 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha translation. + +2006-05-30 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-05-29 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-05-29 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-05-28 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-05-27 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-05-27 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha translation. + +2006-05-27 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-05-26 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2006-05-25 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-05-25 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2006-05-25 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-05-25 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-05-21 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2006-05-18 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-05-16 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-05-15 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2006-05-15 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-05-13 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-05-11 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-05-10 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2006-05-09 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-05-06 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2006-05-05 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-05-05 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-05-04 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-05-03 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2006-05-03 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-04-30 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + +2006-04-29 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-04-24 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-04-23 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2006-04-21 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-04-21 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-04-21 Wouter Bolsterlee <uws+mate@xs4all.nl> + + * nl.po: Translation updated by Wouter Bolsterlee. + +2006-04-18 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-04-17 Kjartan Maraas <kmaraas@gnome.org> + + * LINGUAS: Remove obsolete entry for no_NO. + * no.po: And the translation. + +2006-04-17 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-04-16 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-04-14 Ć smund SkjƦveland <aasmunds@fys.uio.no> + + * nn.po: Added Norwegian Nynorsk translation. + * LINGUAS: Added nn. + +2006-04-13 Funda Wang <fundawang@linux.net.cn> + + * POTFILES.in: Removed obsolete files. + +2006-04-12 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-03-22 Tommi Vainikainen <thv@iki.fi> + + * dz.po: Added Dzongkha translation from Pema Geyleg. + +2006-03-19 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-03-18 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-03-16 JĆ©rĆ©my Ar Floc'h <jeremy.lefloch@gmail.com> + + * br.po: Added Breton translation. + +2006-03-14 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-03-13 Mugurel Tudor <mugurelu@mate.ro> + + * ro.po: Updated Romanian translation by + MiÅu Moldovan <dumol@mate.ro + +2006-03-13 Runa Bhattacharjee <runa@bengalinux.org> + + * bn.po: Updated Bengali (bn) Translation by Progga. + +2006-03-13 Priit Laes <amd@store20.com> + + * et.po: Translation updated. + +2006-03-12 BenoĆ®t Dejean <benoit@placenet.org> + + * fr.po: Updated French translation. + +2006-03-12 Roozbeh Pournader <roozbeh@farsiweb.info> + + * fa.po: Updated Persian translation by Elnaz Sarbar and reviewed by + Farzaneh Sarafraz. + +2006-03-11 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-03-11 Guilherme de S. Pastore <gpastore@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-03-10 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2006-03-06 Rajesh Ranjan <rranjan@redhat.com> + + * hi.po: Updated Hindi Translation. + +2006-03-08 Daniel Nylander <po@danielnylander.se> + + * sv.po: Swedish translation updated. + +2006-03-08 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2006-03-08 Ole Laursen <olau@hardworking.dk> + + * da.po: Updated Danish translation. + +2006-03-07 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-03-05 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2006-03-04 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-03-02 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2006-03-02 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk.po: Updated Ukrainian translation. + +2006-03-01 Vladimer Sichinava <vlsichinava@gmail.com> + + * ka.po: Added Georgian translation. + +2006-02-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2006-02-28 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2006-02-28 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Added Latvian translation. + +2006-02-26 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2006-02-25 Rhys Jones <rhys@sucs.org> + + * cy.po: Updated Welsh translation. + +2006-02-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + +2006-02-23 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2006-02-23 Satoru SATOH <ss@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2006-02-21 Slobodan D. Sredojevic <slobo@akrep.be> + + * sr.po, sr@Latn.po: Updated Serbian translation + +2006-02-21 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2006-02-01 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-02-19 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same. + +2006-02-19 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2006-02-18 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2006-02-18 Josep Puigdemont i CasamajĆ³ <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2006-02-17 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2006-02-17 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek Translation by Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + +2006-02-15 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-02-15 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-02-14 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Reinout en Tino. + +2006-02-14 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-02-14 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2006-02-13 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-02-13 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2006-02-13 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-02-07 Raphael Higino <raphaelh@cvs.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-02-04 Ole Laursen <olau@hardworking.dk> + + * da.po: Fixed some bugs in the Danish translation based on + comments by Martin Willemoes Hansen. + +2006-02-02 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2006-02-01 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2006-01-30 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2006-01-30 Slobodan D. Sredojevic <slobo@akrep.be> + + * sr.po, sr@Latn.po: Updated Serbian translation + +2006-01-29 Ole Laursen <olau@hardworking.dk> + + * da.po: Updated Danish translation. + +2006-01-28 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2006-01-28 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2006-01-27 Evandro Fernandes Giovanini <evandrofg@ig.com.br> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-01-27 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + +2006-01-24 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation by <gvlat@pochta.ru> + +2006-01-23 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-01-21 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2006-01-20 Satoru SATOH <ss@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2006-01-12 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2006-01-11 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2006-01-09 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-01-09 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2006-01-07 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese Translation.(Taiwan) + * zh_HK.po: Updated Traditional Chinese Translation.(Hong Kong) + +2006-01-04 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2006-01-02 Josep Puigdemont i CasamajĆ³ <josep.puigdemont.gmail.com> + + * ca.po: Updated Catalan translation by Gil Forcada + <gilforcada@guifi.net> + +2005-12-31 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2005-12-31 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-12-29 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-12-29 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-12-28 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same. + +2005-12-28 Abel Cheung <maddog@linuxhall.org> + + * zh_HK.po: New Chinese (Hong Kong) translation from MATE HK Team + +2005-12-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2005-12-28 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-12-28 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-12-26 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-12-26 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-12-26 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2005-12-21 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-12-21 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-12-21 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-12-20 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2005-12-15 Ales Nyakhaychyk <nab@mail.by> + + * be.po: Updated Belarusian translation. + +2005-12-13 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated french translation. + +2005-12-11 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-12-11 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-12-02 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-12-02 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2005-11-27 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated SPanish translation. (QA Team) + +2005-11-26 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Fixed wrong translation of "Properties". + Closes #322163 reported by JĆ¼rg Billeter. + +2005-11-25 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish tranlation (QA Team) + +2005-11-23 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-11-19 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-11-19 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-11-18 Ales Nyakhaychyk <nab@mail.by> + + * be.po: Added Belarusian translation. + +2005-11-18 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same + +2005-11-17 Adam Weinberger <adamw@gnome.org> + + * POTFILES.in: Added missing file. + * en_CA.po: Updated Canadian English translation. + +2005-11-16 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-11-15 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2005-11-15 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2005-11-15 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same. + +2005-11-06 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2005-11-02 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-11-01 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-11-01 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-10-29 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com> + + * ku.po: Added Kurdish translation. + +2005-10-27 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-10-26 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2005-10-25 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-10-22 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-10-20 Runa Bhattacharjee <runa@bengalinux.org> + + * bn.po: Added Bengali (bn) Translation + by Progga <progga@BengaLinux.Org> + +2005-10-15 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated. + +2005-09-30 Adam Weinberger <adamw@gnome.org> + + * POTFILES.in: Added missing files. + * en_CA.po: Updated Canadian English translation. + +2005-09-18 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation (merge from mate-2-12 branch). + +2005-09-17 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2005-09-12 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-09-05 IƱaki LarraƱaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2005-09-05 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Added Italian translation by + Francesco Marletta <francesco.marletta@tiscali.it>. + +2005-09-03 Danilo Å egan <danilo@gnome.org> + + * sr.po, sr@Latn.po: Updated. + +2005-09-02 Dan Damian <dand@mate.ro> + + * ro.po: Added Romanian translation by Misu Moldovan. + +2005-08-31 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-08-30 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-08-29 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-08-29 Telsa Gwynne <hobbit@aloss.ukuu.org.uk> + + * cy.po: Updated Welsh translation. + +2005-08-29 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated french translation from + Vincent Untz <vuntz@gnome.org> + +2005-08-29 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Added Portuguese translation. + +2005-08-28 Mohammad DAMT <mdamt@gnome.org> + + * id.po: Updated Indonesian translation. + +2005-08-28 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2005-08-27 Mohammad DAMT <mdamt@gnome.org> + + * id.po: Added Indonesian translation + +2005-08-27 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-08-27 Evandro Fernandes Giovanini <evandrofg@ig.com.br> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-08-25 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation. + +2005-08-23 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2005-08-23 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-08-22 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-08-22 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2005-08-20 Roozbeh Pournader <roozbeh@farsiweb.info> + + * fa.po: Updated Persian translation by Meelad Zakaria + <meelad@farsiweb.info> and myself. + +2005-08-20 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-08-19 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-08-19 Terance Sola <terance@lyse.net> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same. + +2005-08-19 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-08-19 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation, forgot some stuff. + +2005-08-19 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2005-08-18 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk.po: Updated Ukrainian translation. + +2005-08-18 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2005-08-18 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-08-18 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2005-08-18 Nikos Charonitakis <charosn@her.forthnet.gr> + + * el.po: Updated Greek translation. + +2005-08-17 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2005-08-17 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-08-17 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-08-16 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-08-16 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-08-16 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2005-08-16 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2005-08-16 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-08-16 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-08-15 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2005-08-14 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish Translation from Bulen Sener + +2005-08-12 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-08-09 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2005-08-06 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Added Hebrew translation. + +2005-08-06 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-08-05 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-08-04 Abel Cheung <abelcheung@gmail.com> + + * zh_TW.po: Fix language team reference and my email address. + +2005-08-04 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆ„l translation. + * no.po: Same + +2005-08-04 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2005-08-03 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-08-02 Terance Sola <terance@lyse.net> + + * nb.po: Updated Norwegian BokmĆ„l translation. + * no.po: Same. + +2005-08-01 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-07-30 Nikos Charonitakis <charosn@her.forthnet.gr> + + * el.po: Updated Greek translation by + Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + +2005-07-30 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-07-30 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-07-29 James Ogley <james@usr-local-bin.org> + + * en_GB.po: Updated British English translation. + +2005-07-28 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Bulk change to some Finnish translations. + +2005-07-28 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Added Albanian translation. + +2005-07-28 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-07-27 Raphael Higino <raphaelh@cvs.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-07-27 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-07-27 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-07-27 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-07-27 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-07-27 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation updated. + +2005-07-27 Priit Laes <plaes@cvs.mate.org> + + * et.po: Translation added by Sven Sapelson. + +2005-07-26 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-07-26 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-07-26 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-07-26 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-07-25 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-07-25 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-07-25 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-07-24 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2005-07-24 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2005-07-24 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-07-24 Artur Flinta <aflinta@cvs.mate.org> + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-07-24 Danilo Å egan <danilo@gnome.org> + + * sr.po, sr@Latn.po: Added Serbian translation. + +2005-07-22 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2005-07-22 Pawan Chitrakar <pawan@nplinux.org> + + * ne.po: Added Nepali Translation + +2005-07-22 Žygimantas BeruÄka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation by Justina KlingaitÄ. + +2005-07-21 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-07-20 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Gujarati Translation Added. + +2005-07-19 James Ogley <james@usr-local-bin.org> + + * en_GB.po: Updated British English translation. + +2005-07-18 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-07-17 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated french translation from + Vincent Carriere <carriere_vincent@yahoo.fr>. + +2005-07-17 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +20055-07-15 Rajesh Ranjan <rajeshkajha@yahoo.com> + + * hi.po: Hindi translation added + +2005-07-15 Amanpreet Singh Brar <amanpreetalam@yahoo.com> + + * pa.po: Punjabi Translation is added + +2005-07-14 Guilherme de S. Pastore <gpastore@cvs.mate.org> + + * pt_BR.po: fixed Brazilian Portuguese menu name, so + that it's consistent with the English version and also + HIG-compliant. + +2005-07-14 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-07-12 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2005-07-12 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-07-10 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-07-09 Hendrik Brandt <heb@mate-de.org> + + * de.po: Updated German translation. + +2005-07-09 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-07-08 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-07-08 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add ev-properties.c + * nb.po: Update + * no.po: Same + +2005-07-07 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-07-07 IƱaki LarraƱaga <dooteo@euskalgnu.org> + + * eu.po: Added Basque translation. + +2005-07-04 Christian Rose <menthos@menthos.com> + + * POTFILES.in: Sorted and added missing files, and removed no longer + existing ones. + * sv.po: Updated Swedish translation. + +2005-07-04 Hendrik Richter <hendi@mate-de.org> + + * de.po: Fixed German translation by + Jens Seidel <jensseidel@users.sf.net>. + +2005-06-30 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmĆĀ„l translation. + * no.po: Same + +2005-06-25 Marcel Telka <marcel@telka.sk> + + * sk.po: Added Slovak translation by MĆĀ”rio VrablanskĆÅ. + +2005-06-25 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-06-23 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-06-24 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2005-06-22 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2005-06-22 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-06-19 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Cleaned up some copied translations. + +2005-06-18 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-06-17 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Added Thai translation by + Isriya Paireepairit <markpeak@gmail.com>. + +2005-06-17 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-06-14 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation + +2005-06-12 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update Norwegian bokmĆĀ„l translation + * no.po: Update Norwegian bokmĆĀ„l translation + +2005-06-12 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-06-10 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * POTFILES.in, POTFILES.skip: + + Doesn't translate mdvi library. It's not ready yet. + +2005-06-10 Martin Kretzschmar <martink@gnome.org> + + * POTFILES.in: update. + +2005-06-08 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-06-05 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-06-03 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-06-01 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-05-29 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-05-24 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk.po: Ukrainian translation added. + +2005-05-23 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation updated. + +2005-05-23 Gabor Kelemen <kelemeng@mate.hu> + + * hu.po: Hungarian translation added by "Last-Translator: \n". + +2005-05-22 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-05-22 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-05-19 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-05-18 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +2005-05-18 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-05-17 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-05-17 Kostas Papadimas <pkst@gnome.org> + + *el.po: Updated Greek translation by + Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + +2005-05-15 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-05-14 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-05-14 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-05-12 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-05-11 Kostas Papadimas <pkst@gnome.org> + + *el.po Updated Greek Translation + +2005-05-07 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-05-06 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-05-05 Kostas Papadimas <pkst@gnome.org> + + *el.po: Updated Greek translation by + Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + +2005-05-05 Josep Puigdemont <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation by Gil Forcada + +2005-05-04 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-05-03 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-05-02 James Bowes <bowes@cs.dal.ca> + + * POTFILES.in: Add cut-n-paste/zoom-control/ephy-zoom.h + +2005-05-01 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-04-30 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-04-28 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-26 Takeshi AIHANA <aihana@mate.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-04-25 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-24 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-24 Christopher Orr <chris@orr.me.uk> + + * en_GB.po: Updated British English translation. + +2005-04-24 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-04-22 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-22 Adam Weinberger <adamw@gnome.org> + + * POTFILES.in: Add files in the dvi/mdvi-lib directory. + +2005-04-22 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation. + +2005-04-21 Gareth Owen <gowen@gnome.org> + + * en_GB.po: Updated British English translation. + +2005-04-21 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-04-20 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-19 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-04-19 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-04-17 Christopher Orr <chris@orr.me.uk> + + * en_GB.po: Updated British English translation. + +2005-04-17 Francisco Javier Fernandez <cyphra@vir.tecknolabs.com> + + * es.po: Updated Spanish translation. + +2005-04-15 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-15 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2005-04-15 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-04-12 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-13 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-04-13 Ć Åygimantas BeruĆĀka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2005-04-11 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update these + * no.po: .... + +2005-04-11 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-04-11 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-04-09 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-04-08 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-05 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Created Russian translation. + +2005-04-06 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2005-04-05 Ć Åygimantas BeruĆĀka <uid0@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2005-04-04 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-04-03 Raphael Higino <raphaelh@cvs.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-04-02 Abel Cheung <maddog@linuxhall.org> + + * zh_TW.po: Updated traditional Chinese translation from MATE HK Team + +2005-04-02 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-04-01 Steve Murphy <murf@e-tools.com> + + * rw.po: Added Kinyarwanda translation. + +2005-04-01 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-04-01 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-04-01 Pablo Saratxaga <pablo@mandrakesoft.com> + + * wa.po: Added Walloon file + +2005-03-30 Ć Åygimantas BeruĆĀka <uid0@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2005-03-30 Abel Cheung <maddog@linuxhall.org> + + * zh_TW.po: Updated traditional Chinese translation from MATE HK Team + * bg.po: Mark wrong entry as fuzzy (msgfmt check failed). + +2005-03-27 Josep Puigdemont <josep@imatge-sintetica.com> + + * ca.po: Updated Catalan translation. + +2005-03-26 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Authoritative update of Evince Spanish translation. + +2005-03-26 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-03-25 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-03-25 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-03-24 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add ev-sidebar-links.c + * nb.po: Update + +2005-03-18 Josep Puigdemont <josep@imatge-sintetica.com> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net> + +2005-03-17 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek translation by + Stylianos Papanastasiou <stelios@dcs.gla.ac.uk> + +2005-03-16 Ć Åygimantas BeruĆĀka <uid0@akl.lt> + + * lt.po: Added Lithuanian translation. + +2005-03-14 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-03-12 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Added Korean translation. + +2005-03-05 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated French translation. + +2005-03-05 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-03-04 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-03-03 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-28 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-28 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-28 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated the Greek translation> + +2005-02-26 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-26 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-25 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-25 Sebastien Bacher <seb128@debian.org> + + * fr.po: + french translation by Vincent Carriere <carriere_vincent@yahoo.fr>. + +2005-02-25 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-24 Wei-Lun Chao <chaoweilun@pcmail.com.tw> + + * zh_TW.po: Added Traditional Chinese translation. + +2005-02-25 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-02-24 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-23 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-23 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Updated Finnish translation, fixed keybindings in Finnish + translation. + +2005-02-20 Kostas Papadimas <pkst@gnome.org> + + * el.po: Added the Greek translation by + Stylianos Papanastasiou <stelios@stylianos.co.uk> + +2005-02-19 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-18 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-02-18 Tommi Vainikainen <thv@iki.fi> + + * fi.po: Added Finnish translation. + +2005-02-17 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-02-17 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-17 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-17 Alexander Shopov <ash@contact.bg> + + * bg.po: Added Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2005-02-15 David Lodge <dave@cirt.net> + + * en_GB.po: Added English (British) translation. + +2005-02-14 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-02-14 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-02-13 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-12 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-12 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-11 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Updated Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-02-10 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-09 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-08 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-02-08 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-08 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-08 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-06 Ole Laursen <olau@hardworking.dk> + + * da.po: Updated Danish translation. + +2005-02-04 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-02-03 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Added Catalan translation by + Gil Forcada <gilforcada@guifi.net>. + +2005-02-03 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-02-02 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-02-02 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2005-01-31 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-01-30 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Updated Spanish translation by Daniel Fernandez. + +2005-01-28 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-27 Adam Weinberger <adamw@gnome.org> + + * POTFILES.in: Remove reference to removed file. + * en_CA.po: Updated Canadian English translation. + + +2005-01-27 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-27 Christian Rose <menthos@menthos.com> + + * POTFILES.in: Added missing file entries. + * sv.po: Updated Swedish translation. + +2005-01-26 Ole Laursen <olau@hardworking.dk> + + * da.po: Added Danish translation. + +2005-01-26 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-26 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-23 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-22 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-21 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-21 Francisco Javier F. Serrador <serrador@cvs.mate.org> + + * es.po: Added Spanish translation contributed by Antonio Ognio. + +2005-01-21 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2005-01-20 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-19 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-19 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian translation. + +2005-01-19 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-16 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-16 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-15 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add shell/ev-history.c + * nb.po: Update + +2005-01-13 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-11 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Updated German translation. + +2005-01-11 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-11 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Add this. + +2005-01-10 Frank Arnold <farnold@cvs.mate.org> + + * de.po: Merged translations from ggv and gpdf, minor updates. + +2005-01-09 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-08 Martin Kretzschmar <martink@gnome.org> + + * POTFILES.in: Added ev-print-job.c. + +2005-01-08 Satoru SATOH <ss@mate.gr.jp> + + * ja.po: Added Japanese translation. + +2005-01-07 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-07 Christian Rose <menthos@menthos.com> + + * POTFILES.in: Added missing files reported by + 'intltool-update --maintain". + * sv.po: Updated Swedish translation. + +2005-01-06 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-01-05 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-01-02 Raphael Higino <raphaelh@cvs.mate.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-01-02 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Added Czech translation. + +2004-12-28 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation added by Tino Meinen. + +2004-12-25 Raphael Higino <raphaelh@cvs.mate.org> + + * pt_BR.po: Added Brazilian Portuguese translation. + +2004-12-23 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Added Canadian English translation. + +2004-12-23 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Added Simplified Chinese translation. + +2004-12-22 Christian Rose <menthos@menthos.com> + + * sv.po: Added Swedish translation. + +2004-12-22 Christian Rose <menthos@menthos.com> + + * POTFILES.in: Added files that were missing according to + 'intltool-update --maintain'. + * .cvsignore: Added more files. + +2004-12-22 Martin Kretzschmar <martink@gnome.org> + + * evince.pot: remove from cvs. + * de.po: update a little. + * POTFILES.in: update. + * .cvsignore: add *.mo, *.pot. diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 00000000..0434f8ac --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,85 @@ +# please keep this list sorted alphabetically +af +ar +as +ast +be +be@latin +bg +bn +bn_IN +br +ca +ca@valencia +cs +cy +da +de +dz +el +en_CA +en_GB +en@shaw +eo +es +et +eu +fa +fi +fr +ga +gl +gu +he +hi +hu +id +it +ja +ka +kk +kn +ko +ks +ku +lt +lv +mai +mg +mk +ml +mn +mr +ms +nb +nds +ne +nl +nn +oc +or +pa +pl +ps +pt +pt_BR +ro +ru +rw +si +sk +sl +sq +sr +sr@latin +sv +ta +te +th +tr +uk +vi +wa +zh_CN +zh_HK +zh_TW diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 00000000..cd27f4fd --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,66 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +[encoding: UTF-8] +backend/comics/comics-document.c +[type: gettext/ini] backend/comics/comicsdocument.evince-backend.in +backend/djvu/djvu-document.c +[type: gettext/ini] backend/djvu/djvudocument.evince-backend.in +backend/dvi/dvi-document.c +[type: gettext/ini] backend/dvi/dvidocument.evince-backend.in +backend/pdf/ev-poppler.cc +[type: gettext/ini] backend/pdf/pdfdocument.evince-backend.in +backend/impress/impress-document.c +[type: gettext/ini] backend/impress/impressdocument.evince-backend.in +backend/impress/zip.c +backend/ps/ev-spectre.c +[type: gettext/ini] backend/ps/psdocument.evince-backend.in +backend/tiff/tiff-document.c +libdocument/ev-attachment.c +libdocument/ev-document-factory.c +libdocument/ev-file-helpers.c +cut-n-paste/smclient/eggdesktopfile.c +cut-n-paste/smclient/eggsmclient.c +cut-n-paste/toolbar-editor/egg-editable-toolbar.c +cut-n-paste/toolbar-editor/egg-toolbar-editor.c +cut-n-paste/zoom-control/ephy-zoom.h +data/evince.desktop.in.in +data/org.mate.Evince.gschema.xml.in +previewer/ev-previewer.c +previewer/ev-previewer-window.c +properties/ev-properties-main.c +properties/ev-properties-view.c +libmisc/ev-page-action.c +libmisc/ev-page-action-widget.c +libview/ev-loading-window.c +libview/ev-print-operation.c +libview/ev-jobs.c +libview/ev-view-accessible.c +libview/ev-view-presentation.c +libview/ev-view.c +shell/eggfindbar.c +shell/ev-annotation-properties-dialog.c +shell/ev-application.c +shell/ev-history.c +shell/ev-keyring.c +shell/ev-convert-metadata.c +shell/ev-navigation-action.c +shell/ev-navigation-action-widget.c +shell/ev-open-recent-action.c +shell/ev-password-view.c +shell/ev-properties-dialog.c +shell/ev-properties-fonts.c +shell/ev-properties-license.c +shell/ev-sidebar-annotations.c +shell/ev-sidebar-attachments.c +shell/ev-sidebar-layers.c +shell/ev-sidebar-links.c +shell/ev-sidebar-thumbnails.c +shell/ev-window.c +shell/ev-window-title.c +shell/ev-utils.c +shell/main.c +thumbnailer/evince-thumbnailer-comics.schemas.in +thumbnailer/evince-thumbnailer-djvu.schemas.in +thumbnailer/evince-thumbnailer-dvi.schemas.in +thumbnailer/evince-thumbnailer-ps.schemas.in +thumbnailer/evince-thumbnailer.schemas.in diff --git a/po/POTFILES.skip b/po/POTFILES.skip new file mode 100644 index 00000000..637a7486 --- /dev/null +++ b/po/POTFILES.skip @@ -0,0 +1,16 @@ +data/evince.desktop.in +backend/dvi/mdvi-lib/dviread.c +backend/dvi/mdvi-lib/font.c +backend/dvi/mdvi-lib/fontmap.c +backend/dvi/mdvi-lib/gf.c +backend/dvi/mdvi-lib/pagesel.c +backend/dvi/mdvi-lib/paper.c +backend/dvi/mdvi-lib/pk.c +backend/dvi/mdvi-lib/sp-epsf.c +backend/dvi/mdvi-lib/special.c +backend/dvi/mdvi-lib/t1.c +backend/dvi/mdvi-lib/tfm.c +backend/dvi/mdvi-lib/tfmfile.c +backend/dvi/mdvi-lib/tt.c +backend/dvi/mdvi-lib/util.c +backend/dvi/mdvi-lib/vf.c diff --git a/po/af.po b/po/af.po new file mode 100644 index 00000000..20175bca --- /dev/null +++ b/po/af.po @@ -0,0 +1,1423 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Walter <walter+t@translate.org.za>, 2009 +# F Wolff <friedel@translate.org.za>, 2009 +msgid "" +msgstr "" +"Project-Id-Version: 2.26\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2009-03-15 16:41+0000\n" +"PO-Revision-Date: 2009-03-16 00:33+0200\n" +"Last-Translator: F Wolff <friedel@translate.org.za>\n" +"Language-Team: translate-discuss-af@lists.sourceforge.net\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.3.1\n" + +#: ../backend/comics/comics-document.c:131 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Onbekende MIME-tipe" + +#: ../backend/comics/comics-document.c:165 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Nie 'n strokiesprent MIME-tipe nie: %s" + +#: ../backend/comics/comics-document.c:186 +msgid "File corrupted." +msgstr "LĆŖer korrup." + +#: ../backend/comics/comics-document.c:198 +msgid "No files in archive." +msgstr "Geen lĆŖers in argief nie." + +#: ../backend/comics/comics-document.c:230 +#, c-format +msgid "No images found in archive %s" +msgstr "Geen beelde in argief %s gevind nie" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Strokiesprente" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "DJVU-dokument het 'n ongeldige formaat" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "" +"Die dokument bestaan uit verskeie lĆŖers. Kon nie toegang kry na een of meer " +"van die lĆŖers nie." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu-dokumente" + +#: ../backend/dvi/dvi-document.c:106 +msgid "DVI document has incorrect format" +msgstr "DVI-dokument het 'n ongeldige formaat" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokumente" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:706 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:709 +msgid "No" +msgstr "Nee" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "Type 1" +msgstr "Tipe 1" + +#: ../backend/pdf/ev-poppler.cc:785 +msgid "Type 1C" +msgstr "Tipe 1C" + +#: ../backend/pdf/ev-poppler.cc:787 +msgid "Type 3" +msgstr "Tipe 3" + +#: ../backend/pdf/ev-poppler.cc:789 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "Type 1 (CID)" +msgstr "Tipe 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:793 +msgid "Type 1C (CID)" +msgstr "Tipe 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:795 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:797 +msgid "Unknown font type" +msgstr "Onbekende skriftipe" + +#: ../backend/pdf/ev-poppler.cc:823 +msgid "No name" +msgstr "Geen naam" + +#: ../backend/pdf/ev-poppler.cc:831 +msgid "Embedded subset" +msgstr "Ingebedde substel" + +#: ../backend/pdf/ev-poppler.cc:833 +msgid "Embedded" +msgstr "Ingebed" + +#: ../backend/pdf/ev-poppler.cc:835 +msgid "Not embedded" +msgstr "Nie ingebed nie" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokumente" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "Ongeldige dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-skyfies" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Geen fout nie" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nie genoeg geheue nie" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "Kan nie zip-handtekening vind nie" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Ongeldige zip-lĆŖer" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "Multi-lĆŖer zips word nie ondersteun nie" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Kan nie die lĆŖer oopmaak nie" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Kan nie data uit die lĆŖer lees nie" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "Kan nie lĆŖer in die zip-argief vind nie" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Onbekende probleem" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Kon nie dokument ā%sā oopmaak nie" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Kon nie dokument ā%sā stoor nie" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-dokument" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Kon nie aanhegsel ā%sā stoor nie: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Kon nie aanhegsel ā%sā oopmaak nie: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Kon nie aanhegsel ā%sā oopmaak nie" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "LĆŖertipe %s (%s) word nie ondersteun nie" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle dokumente" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle lĆŖers" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "Ko_ppel" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "Koppel _anoniem" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "Koppel as gebr_uiker:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "Gebr_uikernaam:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_Domein:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Wagwoord:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_Vergeet wagwoord dadelik" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_Onthou wagwoord tot by afmelding" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_Onthou vir altyd" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "LĆŖer is nie 'n geldige .desktop-lĆŖer nie" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nieherkende \"desktop\"-lĆŖerweergawe '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Begin tans %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Toepassing aanvaar nie dokumente op die opdraglyn nie" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nieherkende lanseeropsie: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Kan nie dokument URI's na 'n 'Type=Link' \"desktop\"-inskrywing aangee nie" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nie 'n loopbare item nie" + +#: ../cut-n-paste/smclient/eggsmclient.c:224 +msgid "Disable connection to session manager" +msgstr "Deaktiveer konneksie na sessiebestuurder" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Specify file containing saved configuration" +msgstr "Spesifiseer lĆŖer wat gestoorde konfigurasie bevat" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "FILE" +msgstr "LĆER" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "Specify session management ID" +msgstr "Spesifiseer sessiebestuurs-ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:244 +msgid "Session management options:" +msgstr "Sessiebestuurskeuses:" + +#: ../cut-n-paste/smclient/eggsmclient.c:245 +msgid "Show session management options" +msgstr "Wys keuses vir sessiebestuur" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:918 +#, c-format +msgid "Show ā_%sā" +msgstr "Wys ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1381 +msgid "_Move on Toolbar" +msgstr "_Skuif op nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1382 +msgid "Move the selected item on the toolbar" +msgstr "Skuif die geselekteerde item op die nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1383 +msgid "_Remove from Toolbar" +msgstr "Sk_rap vanaf nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1384 +msgid "Remove the selected item from the toolbar" +msgstr "Skrap die geselekteerde item vanaf die nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1385 +msgid "_Delete Toolbar" +msgstr "_Skrap nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1386 +msgid "Remove the selected toolbar" +msgstr "Skrap die geselekteerde nutsbalk" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Skeier" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "Hardloop in voorleggingsmodus" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5296 +msgid "Best Fit" +msgstr "Beste passing" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Pas na bladsywydte" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4274 +#: ../shell/ev-window-title.c:149 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentbekyker" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Kyk na multibladsydokumente" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Oorheers dokumentbeperkings" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Oorheers dokumentbeperkings soos beperkings op kopiĆ«ring en druk." + +#: ../properties/ev-properties-main.c:113 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "Ligging:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Onderwerp:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "Outeur:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "Sleutelwoorde:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "Vervaardiger:" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "Skepper:" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "Geskep:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "Gewysig:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "Aantal bladsye:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Geoptimeer:" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "Formaat:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "Sekuriteit:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "Papiergrootte:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "Geen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f duim" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, portret (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, landskap (%s)" + +#: ../libview/ev-jobs.c:949 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Kon nie lĆŖer ā%sā skep nie: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Rol op" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Rol af" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Rol aansig op" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Rol aansig af" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Dokumentaansig" + +#: ../libview/ev-view.c:1417 +msgid "Go to first page" +msgstr "Gaan na eerste bladsy" + +#: ../libview/ev-view.c:1419 +msgid "Go to previous page" +msgstr "Gaan na vorige bladsy" + +#: ../libview/ev-view.c:1421 +msgid "Go to next page" +msgstr "Gaan na volgende bladsy" + +#: ../libview/ev-view.c:1423 +msgid "Go to last page" +msgstr "Gaan na laaste bladsy" + +#: ../libview/ev-view.c:1425 +msgid "Go to page" +msgstr "Gaan na bladsy" + +#: ../libview/ev-view.c:1427 +msgid "Find" +msgstr "Vind" + +#: ../libview/ev-view.c:1455 +#, c-format +msgid "Go to page %s" +msgstr "Gaan na bladsy %s" + +#: ../libview/ev-view.c:1461 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Gaan na %s in lĆŖer ā%sā" + +#: ../libview/ev-view.c:1464 +#, c-format +msgid "Go to file ā%sā" +msgstr "Gaan na lĆŖer ā%sā" + +#: ../libview/ev-view.c:1472 +#, c-format +msgid "Launch %s" +msgstr "Lanseer %s" + +#: ../libview/ev-view.c:2387 +msgid "End of presentation. Press Escape to exit." +msgstr "Einde van voorlegging. Druk Escape om te verlaat." + +#: ../libview/ev-view.c:3280 +msgid "Jump to page:" +msgstr "Spring na bladsy:" + +#: ../libview/ev-view.c:3543 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "Laai tans..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Soekstring" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "Die naam van die string om te vind" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "Kassensitief" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "WAAR vir 'n kassensitiewe soektog" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "Verligtingskleur" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "Verligtingskleur vir alle passings" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Huidige kleur" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "Verligtingskleur vir die huidige passing" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Vind:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5030 +msgid "Find Pre_vious" +msgstr "Vind vor_ige" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Vind vorige voorkoms van die soekstring" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5028 +msgid "Find Ne_xt" +msgstr "Vind vo_lgende" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Vind volgende voorkoms van die soekstring" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "K_assensitief" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Wissel kassensitiewe soek" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Wagwoord vir dokument %s" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Open 'n onlangs gebruikte dokument" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d van %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "van %d" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Hierdie dokument is gesluit en kan slegs gelees word deur die regte wagwoord " +"in te tik." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "Sl_uit dokument oop" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Tik wagwoord in" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Wagwoord vereis" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Die dokument ā%sā is gesluit en vereis 'n wagwoord voordat dit oopgemaak kan " +"word." + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Vergeet wagwoord _dadelik" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "Onthou wagwoord tot by _afmelding" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "Onthou _vir altyd" + +#. Initial state +#: ../shell/ev-print-operation.c:318 +msgid "Preparing to print ..." +msgstr "Berei voor om te druk..." + +#: ../shell/ev-print-operation.c:320 +msgid "Finishing..." +msgstr "Maak klaar..." + +#: ../shell/ev-print-operation.c:322 +#, c-format +msgid "Printing page %d of %d..." +msgstr "Druk tans bladsy %d van %d..." + +#: ../shell/ev-print-operation.c:1010 +msgid "Printing is not supported on this printer." +msgstr "Druk word nie ondersteun op hierdie drukker nie." + +#: ../shell/ev-print-operation.c:1136 ../shell/ev-window.c:5081 +msgid "Print" +msgstr "Druk" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "Eienskappe" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "Algemeen" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "Fonts" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Vorder fontinligting in... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Aanhangsels" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "Lae" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "Druk..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:751 +msgid "Thumbnails" +msgstr "Duimnaelskets" + +#: ../shell/ev-window.c:843 +#, c-format +msgid "Page %s - %s" +msgstr "Bladsy %s - %s" + +#: ../shell/ev-window.c:845 +#, c-format +msgid "Page %s" +msgstr "Bladsy %s" + +#: ../shell/ev-window.c:1267 +msgid "The document contains no pages" +msgstr "Die dokument bevat geen bladsye nie" + +#: ../shell/ev-window.c:1491 ../shell/ev-window.c:1639 +msgid "Unable to open document" +msgstr "Kan nie dokument oopmaak nie" + +#: ../shell/ev-window.c:1613 +#, c-format +msgid "Loading document from %s" +msgstr "Laai tans dokument vanaf %s" + +#: ../shell/ev-window.c:1751 ../shell/ev-window.c:1944 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Laai tans dokument af (%d%%)" + +#: ../shell/ev-window.c:1890 +#, c-format +msgid "Reloading document from %s" +msgstr "Herlaai tans dokument vanaf %s" + +#: ../shell/ev-window.c:1923 +msgid "Failed to reload document." +msgstr "Kon nie dokument ā%sā herlaai nie." + +#: ../shell/ev-window.c:2072 +msgid "Open Document" +msgstr "Open dokument" + +#: ../shell/ev-window.c:2133 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "Kon nie simboliese skakel ā%sā skep nie: %s" + +#: ../shell/ev-window.c:2162 +msgid "Cannot open a copy." +msgstr "Kan nie 'n kopie open nie." + +#: ../shell/ev-window.c:2402 +#, c-format +msgid "Saving document to %s" +msgstr "Stoor dokument na %s" + +#: ../shell/ev-window.c:2405 +#, c-format +msgid "Saving attachment to %s" +msgstr "Stoor aanhegsel na %s" + +#: ../shell/ev-window.c:2408 +#, c-format +msgid "Saving image to %s" +msgstr "Stoor beeld na %s" + +#: ../shell/ev-window.c:2453 ../shell/ev-window.c:2550 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Die lĆŖer kon nie as ā%sā gestoor word nie." + +#: ../shell/ev-window.c:2481 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Laai tans dokument op (%d%%)" + +#: ../shell/ev-window.c:2485 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Laai tans aanhegsel op (%d%%)" + +#: ../shell/ev-window.c:2489 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Laai tans beeld op (%d%%)" + +#: ../shell/ev-window.c:2596 +msgid "Save a Copy" +msgstr "Stoor 'n kopie" + +#: ../shell/ev-window.c:2799 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d hangende taak in die ry" +msgstr[1] "%d hangende take in die ry" + +#: ../shell/ev-window.c:2855 ../shell/ev-window.c:3965 +msgid "Failed to print document" +msgstr "Druk van die dokument het gefaal" + +#: ../shell/ev-window.c:2912 +#, c-format +msgid "Printing job ā%sā" +msgstr "Druk tans taak ā%sā" + +#: ../shell/ev-window.c:3109 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Wag totdat drukwerk ā%sā klaarmaak voor afsluiting?" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Daar is %d druktake aktief. Wag totdat druktake klaar is voor afsluiting?" + +#: ../shell/ev-window.c:3124 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "As jy die venster toemaak, sal hangende druktake nie gedruk word nie." + +#: ../shell/ev-window.c:3128 +msgid "Cancel _print and Close" +msgstr "Kanselleer _druk en maak toe" + +#: ../shell/ev-window.c:3132 +msgid "Close _after Printing" +msgstr "Maak toe na druk" + +#: ../shell/ev-window.c:3735 +msgid "Toolbar Editor" +msgstr "Nutsbalkredigeerder" + +#: ../shell/ev-window.c:3867 +msgid "There was an error displaying help" +msgstr "Daar was 'n fout met die vertoon van die hulp" + +#: ../shell/ev-window.c:4270 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Dokumentbekyker.\n" +"Gebruik poppler %s (%s)" + +#: ../shell/ev-window.c:4298 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince is Vry Sagteware; u kan dit herversprei en/of wysig onderhewig\n" +"aan die voorwaardes vna die GNU Algemene Publieke Lisensie soos\n" +"gepubliseer deur die Stigting vir Vry Sagteware; Ć³f weergawe 2 van die\n" +"Lisensie, Ć³f (indien u verkies) enige latere weergawe.\n" + +#: ../shell/ev-window.c:4302 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince word versprei in die hoop dat dit nuttig sal wees, maar\n" +"SONDER ENIGE WAARBORG; sonder selfs die geĆÆmpliseerde waarborg\n" +"van VERHANDELBAARHEID of GESKIKTHEID VIR 'N SPESIFIEKE DOEL.\n" +"Sien die GNU Algemene Publieke Lisensie vir meer detail.\n" + +#: ../shell/ev-window.c:4306 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"U moes 'n kopie van die GNU Algemene Publieke Lisensie ontvang het saam met " +"hierdie program; indien nie, skryf aan Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02110-1307, USA\n" + +#. Manually set name and icon in win32 +#: ../shell/ev-window.c:4330 ../shell/main.c:382 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4333 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 Die outeurs van Evince" + +#: ../shell/ev-window.c:4339 +msgid "translator-credits" +msgstr "" +"Walter Leibbrandt\n" +"Translate.org.za" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4557 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d gevind op hierdie bladsy" +msgstr[1] "%d gevind op hierdie bladsy" + +#: ../shell/ev-window.c:4565 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% oor om te soek" + +#: ../shell/ev-window.c:4993 +msgid "_File" +msgstr "_LĆŖer" + +#: ../shell/ev-window.c:4994 +msgid "_Edit" +msgstr "R_edigeer" + +#: ../shell/ev-window.c:4995 +msgid "_View" +msgstr "_Bekyk" + +#: ../shell/ev-window.c:4996 +msgid "_Go" +msgstr "_Gaan" + +#: ../shell/ev-window.c:4997 +msgid "_Help" +msgstr "_Hulp" + +#. File menu +#: ../shell/ev-window.c:5000 ../shell/ev-window.c:5179 +#: ../shell/ev-window.c:5258 +msgid "_Open..." +msgstr "_Open..." + +#: ../shell/ev-window.c:5001 ../shell/ev-window.c:5259 +msgid "Open an existing document" +msgstr "Open 'n bestaande dokument" + +#: ../shell/ev-window.c:5003 +msgid "Op_en a Copy" +msgstr "Op_en 'n kopie" + +#: ../shell/ev-window.c:5004 +msgid "Open a copy of the current document in a new window" +msgstr "Open 'n kopie van die huidige dokument in 'n nuwe venster" + +#: ../shell/ev-window.c:5006 ../shell/ev-window.c:5181 +msgid "_Save a Copy..." +msgstr "_Stoor 'n kopie..." + +#: ../shell/ev-window.c:5007 +msgid "Save a copy of the current document" +msgstr "Stoor 'n kopie van die huidige dokument" + +#: ../shell/ev-window.c:5009 +msgid "Print Set_up..." +msgstr "Druko_pstelling..." + +#: ../shell/ev-window.c:5010 +msgid "Setup the page settings for printing" +msgstr "Stel die bladsyinstellings om te druk" + +#: ../shell/ev-window.c:5012 +msgid "_Print..." +msgstr "_Druk..." + +#: ../shell/ev-window.c:5013 ../shell/ev-window.c:5082 +msgid "Print this document" +msgstr "Druk hierdie dokument" + +#: ../shell/ev-window.c:5015 +msgid "P_roperties" +msgstr "_Eienskappe" + +#: ../shell/ev-window.c:5023 +msgid "Select _All" +msgstr "Selekteer _almal" + +#: ../shell/ev-window.c:5025 +msgid "_Find..." +msgstr "_Vind..." + +#: ../shell/ev-window.c:5026 +msgid "Find a word or phrase in the document" +msgstr "Vind 'n woord of frase in die dokument" + +#: ../shell/ev-window.c:5032 +msgid "T_oolbar" +msgstr "N_utsbalk" + +#: ../shell/ev-window.c:5034 +msgid "Rotate _Left" +msgstr "Roteer _linksom" + +#: ../shell/ev-window.c:5036 +msgid "Rotate _Right" +msgstr "Roteer _regsom" + +#: ../shell/ev-window.c:5041 +msgid "Enlarge the document" +msgstr "Vergroot die dokument" + +#: ../shell/ev-window.c:5044 +msgid "Shrink the document" +msgstr "Verklein die dokument" + +#: ../shell/ev-window.c:5046 +msgid "_Reload" +msgstr "He_rlaai" + +#: ../shell/ev-window.c:5047 +msgid "Reload the document" +msgstr "Herlaai die dokument" + +#: ../shell/ev-window.c:5050 +msgid "Auto_scroll" +msgstr "Outo-_rol" + +#. Go menu +#: ../shell/ev-window.c:5054 +msgid "_Previous Page" +msgstr "Vo_rige bladsy" + +#: ../shell/ev-window.c:5055 +msgid "Go to the previous page" +msgstr "Gaan na die vorige bladsy" + +#: ../shell/ev-window.c:5057 +msgid "_Next Page" +msgstr "Volge_nde bladsy" + +#: ../shell/ev-window.c:5058 +msgid "Go to the next page" +msgstr "Gaan na die volgende bladsy" + +#: ../shell/ev-window.c:5060 +msgid "_First Page" +msgstr "_Eerste bladsy" + +#: ../shell/ev-window.c:5061 +msgid "Go to the first page" +msgstr "Gaan na die eerste bladsy" + +#: ../shell/ev-window.c:5063 +msgid "_Last Page" +msgstr "_Laaste bladsy" + +#: ../shell/ev-window.c:5064 +msgid "Go to the last page" +msgstr "Gaan na die laaste bladsy" + +#. Help menu +#: ../shell/ev-window.c:5068 +msgid "_Contents" +msgstr "_Inhoud" + +#: ../shell/ev-window.c:5071 +msgid "_About" +msgstr "_Aangaande" + +#. Toolbar-only +#: ../shell/ev-window.c:5075 +msgid "Leave Fullscreen" +msgstr "Verlaat volskerm" + +#: ../shell/ev-window.c:5076 +msgid "Leave fullscreen mode" +msgstr "Verlaat volskermmodus" + +#: ../shell/ev-window.c:5078 +msgid "Start Presentation" +msgstr "Begin voorlegging" + +#: ../shell/ev-window.c:5079 +msgid "Start a presentation" +msgstr "Begin 'n voorlegging" + +#. View Menu +#: ../shell/ev-window.c:5135 +msgid "_Toolbar" +msgstr "_Nutsbalk" + +#: ../shell/ev-window.c:5136 +msgid "Show or hide the toolbar" +msgstr "Wys of verskuil die nutsbalk" + +#: ../shell/ev-window.c:5138 +msgid "Side _Pane" +msgstr "Sy_paneel" + +#: ../shell/ev-window.c:5139 +msgid "Show or hide the side pane" +msgstr "Wys of verskuil die sypaneel" + +#: ../shell/ev-window.c:5141 +msgid "_Continuous" +msgstr "_Aaneenlopend" + +#: ../shell/ev-window.c:5142 +msgid "Show the entire document" +msgstr "Wys die hele dokument" + +#: ../shell/ev-window.c:5144 +msgid "_Dual" +msgstr "_Dubbel" + +#: ../shell/ev-window.c:5145 +msgid "Show two pages at once" +msgstr "Wys twee bladsy tegelyk" + +#: ../shell/ev-window.c:5147 +msgid "_Fullscreen" +msgstr "_Volskerm" + +#: ../shell/ev-window.c:5148 +msgid "Expand the window to fill the screen" +msgstr "Brei die venster uit totdat dit die hele skerm volmaak" + +#: ../shell/ev-window.c:5150 +msgid "Pre_sentation" +msgstr "Voo_rlegging" + +#: ../shell/ev-window.c:5151 +msgid "Run document as a presentation" +msgstr "Hardloop dokument as 'n voorlegging" + +#: ../shell/ev-window.c:5153 +msgid "_Best Fit" +msgstr "_Beste passing" + +#: ../shell/ev-window.c:5154 +msgid "Make the current document fill the window" +msgstr "Laat die huidige dokument die venster volmaak" + +#: ../shell/ev-window.c:5156 +msgid "Fit Page _Width" +msgstr "Pas na bladsy_wydte" + +#: ../shell/ev-window.c:5157 +msgid "Make the current document fill the window width" +msgstr "Laat die huidige dokument die versterwydte volmaak" + +#. Links +#: ../shell/ev-window.c:5164 +msgid "_Open Link" +msgstr "_Open skakel" + +#: ../shell/ev-window.c:5166 +msgid "_Go To" +msgstr "_Gaan na" + +#: ../shell/ev-window.c:5168 +msgid "Open in New _Window" +msgstr "Open in nuwe _venster" + +#: ../shell/ev-window.c:5170 +msgid "_Copy Link Address" +msgstr "Kopieer skakeladres" + +#: ../shell/ev-window.c:5172 +msgid "_Save Image As..." +msgstr "_Stoor beeld as..." + +#: ../shell/ev-window.c:5174 +msgid "Copy _Image" +msgstr "Kopieer _beeld" + +#: ../shell/ev-window.c:5220 +msgid "Page" +msgstr "Bladsy" + +#: ../shell/ev-window.c:5221 +msgid "Select Page" +msgstr "Selekteer bladsy" + +#: ../shell/ev-window.c:5232 +msgid "Zoom" +msgstr "Zoem" + +#: ../shell/ev-window.c:5234 +msgid "Adjust the zoom level" +msgstr "Pas die zoemvlak aan" + +#: ../shell/ev-window.c:5244 +msgid "Navigation" +msgstr "Navigasie" + +#: ../shell/ev-window.c:5246 +msgid "Back" +msgstr "Terug" + +#. translators: this is the history action +#: ../shell/ev-window.c:5249 +msgid "Move across visited pages" +msgstr "Beweeg oor besoekte bladsye" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5279 +msgid "Previous" +msgstr "Vorige" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +msgid "Next" +msgstr "Volgende" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5288 +msgid "Zoom In" +msgstr "Zoem in" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5292 +msgid "Zoom Out" +msgstr "Zoem uit" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5300 +msgid "Fit Width" +msgstr "Pas badsywydte" + +#: ../shell/ev-window.c:5467 ../shell/ev-window.c:5485 +msgid "Unable to launch external application." +msgstr "Kan nie eksterne toepassing lanseer nie." + +#: ../shell/ev-window.c:5528 +msgid "Unable to open external link" +msgstr "Kan nie eksterne skakel oopmaak nie" + +#: ../shell/ev-window.c:5684 +msgid "Couldn't find appropriate format to save image" +msgstr "Kon nie toepaslike formaat vind om beeld te stoor nie" + +#: ../shell/ev-window.c:5723 +msgid "The image could not be saved." +msgstr "Die beeld kon nie gestoor word nie." + +#: ../shell/ev-window.c:5755 +msgid "Save Image" +msgstr "Stoor beeld" + +#: ../shell/ev-window.c:5817 +msgid "Unable to open attachment" +msgstr "Kan nie aanhegsel oopmaak nie" + +#: ../shell/ev-window.c:5868 +msgid "The attachment could not be saved." +msgstr "Die aanhegsel kon nie gestoor word nie." + +#: ../shell/ev-window.c:5913 +msgid "Save Attachment" +msgstr "Stoor aanhegsel" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Wagwoord vereis" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Volgens uitbreiding" + +#: ../shell/main.c:59 ../shell/main.c:347 +msgid "MATE Document Viewer" +msgstr "MATE Dokumentbekyker" + +#: ../shell/main.c:67 +msgid "The page of the document to display." +msgstr "Die bladsy van die dokument om te vertoon." + +#: ../shell/main.c:67 +msgid "PAGE" +msgstr "BLADSY" + +#: ../shell/main.c:68 +msgid "Run evince in fullscreen mode" +msgstr "Hardloop evince in volskermmodus" + +#: ../shell/main.c:69 +msgid "Run evince in presentation mode" +msgstr "Hardloop evince in voorleggingsmodus" + +#: ../shell/main.c:70 +msgid "Run evince as a previewer" +msgstr "Hardloop evince as voorskouer" + +#: ../shell/main.c:71 +msgid "The word or phrase to find in the document" +msgstr "Die woord of frase om in die dokument te vind" + +#: ../shell/main.c:71 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:75 +msgid "[FILE...]" +msgstr "[LĆER...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolese opsies beskikbaar, waar aktiveer duimnaelsketse en vals deaktiveer " +"die skepping van nuwe duimnaelsketse" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Aktiveer duimnaelsketse van PDF-dokumente" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Duimnaelskets opdrag vir PDF-dokumente" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Geldige opdrag plus argumente vir die duimnaelsketser vir PDF-dokumente. " +"Verwys na die dokumentasie vir caja se duimnaelsketser vir verdere " +"inligting." diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 00000000..1d25fd1c --- /dev/null +++ b/po/ar.po @@ -0,0 +1,1835 @@ +# translation of evince.HEAD.po to Arabic +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Yousef Raffah <yousef@raffah.com>, 2006. +# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010. +# Usama Akkad <uak@aya.sy>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-19 20:06+0200\n" +"PO-Revision-Date: 2010-08-19 20:06+0300\n" +"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" +"Language-Team: Arabic <doc@arabeyes.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Virtaal 0.7.0-beta1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Ų®Ų·Ų£ Ų£Ų«ŁŲ§Ų” ŲŖŲ“ŲŗŁŁ Ų§ŁŲ£Ł Ų± ā%sā ŁŁŁ Ų¶ŲŗŲ· Ų§ŁŁŲµŲ© Ų§ŁŁ ŲµŁŲ±Ų©: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŁŲ“Ł Ų§ŁŲ£Ł Ų± ā%sā ŁŁ ŁŁ Ų¶ŲŗŲ· Ų§ŁŁŲµŲ© Ų§ŁŁ ŲµŁŲ±Ų©." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ŁŁ ŁŁŲŖŁ Ų§ŁŲ£Ł Ų± ā%sā Ų·ŲØŁŲ¹ŁŲ§." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ŁŁŲ³ ŁŁŲ¹ MIME ŁŲµŲµ Ł ŲµŁŁŲ±Ų©: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ŲŖŲ¹Ų°Ų± Ų§ŁŲ¹Ų«ŁŲ± Ų¹ŁŁ Ų£Ł Ų± Ł ŁŲ§Ų³ŲØ ŁŁŁ Ų¶ŲŗŲ· ŁŲ°Ų§ Ų§ŁŁŁŲ¹ Ł Ł Ų§ŁŁŲµŲµ Ų§ŁŁ ŲµŁŲ±Ų©" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŁŁŲ¹ MIME ŲŗŁŲ± Ł Ų¹Ų±ŁŁ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Ų§ŁŁ ŁŁ Ł Ų¹Ų·ŁŲØ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ŁŲ§ Ł ŁŁŲ§ŲŖ ŁŁ Ų§ŁŲ£Ų±Ų“ŁŁ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "ŁŲ§ ŲŖŁŲ¬ŲÆ ŲµŁŲ± ŁŁ Ų§ŁŲ£Ų±Ų“ŁŁ %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ŲŲÆŲ« Ų®Ų·Ų£ Ų£Ų«ŁŲ§Ų” ŲŲ°Ł ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Ų®Ų·Ų£ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŁŲŖŲØ ŁŁŲ§ŁŁŲ©" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ŁŁŲ¦Ų© Ł Ų³ŲŖŁŲÆ DjVu ŲŗŁŲ± ŲµŲŁŲŲ©" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Ų§ŁŁ Ų³ŲŖŁŲÆ Ł Ų±ŁŲØ Ł Ł Ł ŁŁŲ§ŲŖ Ų¹ŲÆŁŲÆŲ©. ŁŁ ŁŁ ŁŁ ŁŲ±Ų§Ų”Ų© ŁŲ§ŲŲÆ Ų£Ł Ų£ŁŲ«Ų± Ł Ł ŁŲ°Ł Ų§ŁŁ ŁŁŲ§ŲŖ." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Ł Ų³ŲŖŁŲÆŲ§ŲŖ DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ŁŁŲ¦Ų© Ł Ų³ŲŖŁŲÆ DVI ŲŗŁŲ± ŲµŲŁŲŲ©" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Ł Ų³ŲŖŁŲÆŲ§ŲŖ DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ŁŲ°Ų§ Ų§ŁŲ¹Ł Ł Ł ŁŁŁŲ© Ų¹Ų§Ł Ų©" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ŁŲ¹Ł " + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ŁŲ§" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 ā(CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C ā(CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType ā(CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ŁŁŲ¹ Ų§ŁŲ®Ų· ŲŗŁŲ± Ł Ų¹Ų±ŁŁ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ŲØŁŲ§ Ų§Ų³Ł " + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Ł ŲÆŁ Ų¬ Ų¬Ų²Ų¦ŁŲ§" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ł ŲÆŁ Ų¬" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ŲŗŁŲ± Ł ŲÆŁ Ų¬" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Ł Ų³ŲŖŁŲÆŲ§ŲŖ PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ł Ų³ŲŖŁŲÆ ŲŗŁŲ± ŲµŲ§ŁŲ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Ų“Ų±Ų§Ų¦Ų Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŁŲ§ Ų®Ų·Ų£" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ų§ŁŲ°Ų§ŁŲ±Ų© ŲŗŁŲ± ŁŲ§ŁŁŲ©" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ŲŖŲ¹Ų°ŁŲ± Ų§ŁŲ¹Ų«ŁŲ± Ų¹ŁŁ ŲŖŁŁŁŲ¹ ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ł ŁŁ ZIP ŲŗŁŲ± Ų³ŁŁŁ " + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŁŲ§ ŁŁŲÆŲ¹Ł Ų§ŁŲ¹ŲÆŁŲÆ Ł Ł Ų§ŁŁ ŁŁŲ§ŲŖ ŁŁ Ų£Ų±Ų“ŁŁ ZIPs ŁŲ§ŲŲÆ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŁŲ§ ŁŁ ŁŁ ŁŲŖŲ Ų§ŁŁ ŁŁ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŁŲ“ŁŲŖ ŁŲ±Ų§Ų”Ų© Ų§ŁŲØŁŲ§ŁŲ§ŲŖ Ł Ł Ų§ŁŁ ŁŁ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ŲŖŲ¹Ų°ŁŲ± Ų§ŁŲ¹Ų«ŁŲ± Ų¹ŁŁ Ł ŁŁ ŁŁ Ų£Ų±Ų“ŁŁ ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Ų®Ų·Ų£ Ł Ų¬ŁŁŁ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŲŖŲ¹Ų°Ų± ŲŖŲŁ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ \"%s\"" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŲŖŲ¹Ų°Ų± ŲŁŲø Ų§ŁŁ Ų³ŲŖŁŲÆ ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Ł Ų³ŲŖŁŲÆŲ§ŲŖ PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŲŖŲ¹Ų°Ų± ŲŁŲø Ų§ŁŁ Ų±ŁŁ ā%sā:ā %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ Ų§ŁŁ Ų±ŁŁ ā%sā:ā %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ Ų§ŁŁ Ų±ŁŁ ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ŁŁŲ¹ Ų§ŁŁ ŁŁ %s ā(%s) ŲŗŁŲ± Ł ŲÆŲ¹ŁŁ " + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ŁŁ Ų§ŁŁ ŁŁŲ§ŲŖ" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ŲŖŲ¹Ų°ŁŲ± Ų„ŁŲ“Ų§Ų” Ų§ŁŁ ŁŁ Ų§ŁŁ Ų¤ŁŲŖ: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ŲŖŲ¹Ų°ŁŲ± Ų„ŁŲ“Ų§Ų” Ų§ŁŲÆŁŁŁ Ų§ŁŁ Ų¤ŁŲŖ: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ų§ŁŁ ŁŁ ŁŁŲ³ Ł ŁŁ .desktop ŲµŲ§ŁŲ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ų§ŲµŲÆŲ§Ų±Ų© ŲŗŁŲ± Ł Ų¹Ų±ŁŁŲ© ŁŁ ŁŁ Ų³Ų·Ų Ų§ŁŁ ŁŲŖŲØ 'ā%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ŁŲØŲÆŲ£ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Ų§ŁŲŖŲ·ŲØŁŁ ŁŲ§ ŁŁŲØŁ Ł Ų³ŲŖŁŲÆŲ§ŲŖ ŁŁ Ų³Ų·Ų± Ų§ŁŲ£ŁŲ§Ł Ų±" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Ų®ŁŲ§Ų± Ų„Ų·ŁŲ§Ł ŲŗŁŲ± Ł Ų¹Ų±ŁŁ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŁŲ§ ŁŁ ŁŁ ŲŖŁ Ų±ŁŲ± Ų¹ŁŲ§ŁŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ Ų„ŁŁ Ł ŁŲÆŲ®Ł 'Type=Link' ŁŁ Ł ŁŁ desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Ų¹ŁŲµŲ± ŁŲ§ ŁŁŲ·ŁŁ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Ų¹Ų·Ł Ų§ŁŲ§ŲŖŲµŲ§Ł ŲØŁ ŲÆŁŲ± Ų§ŁŲ¬ŁŲ³Ų©" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ŲŲÆŲÆ Ł ŁŁŲ§ ŁŲŁŁ Ų§ŁŲŖŲ“ŁŁŁ Ų§ŁŁ ŲŁŁŲø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "Ł ŁŁ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ŲŲÆŲÆ Ł Ų¹Ų±Ł Ų„ŲÆŲ§Ų±Ų© Ų§ŁŲ¬ŁŲ³Ų©" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Ł ŁŲ¹Ų±Ł" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ų„ŲÆŲ§Ų±Ų© Ų§ŁŲ¬ŁŲ³Ų©:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Ų§Ų¹Ų±Ų¶ Ų®ŁŲ§Ų±Ų§ŲŖ Ų„ŲÆŲ§Ų±Ų© Ų§ŁŲ¬ŁŲ³Ų©" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Ų§Ų¹Ų±Ų¶ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Ų§_ŁŁŁ Ų¹ŁŁ Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Ų§ŁŁŁ Ų§ŁŲ¹ŁŲµŲ± Ų§ŁŁ ŲŲÆŲÆ Ų¹ŁŁ Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Ų§_ŲŲ°Ł Ł Ł Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Ų§ŲŲ°Ł Ų§ŁŲ¹ŁŲµŲ± Ų§ŁŁ ŲŲÆŲÆ Ł Ł Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Ų§_ŲŲ°Ł Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Ų§ŲŲ°Ł Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ Ų§ŁŁ ŲŲÆŲÆ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ŁŲ§ŲµŁ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Ų£ŁŲ¶Ł Ł ŁŲ§Ų¦Ł Ų©" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ł ŁŲ§Ų¦Ł Ų© Ų¹Ų±Ų¶ Ų§ŁŲµŁŲŲ©" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Ų¹Ų§Ų±Ų¶ Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Ų§Ų¹Ų±Ų¶ Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ Ł ŲŖŲ¹ŲÆŲÆŲ© Ų§ŁŲµŁŲŲ§ŲŖ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ŲŖŲ¬Ų§ŁŲ² ŁŁŁŲÆ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ŲŖŲ¬Ų§ŁŲ² ŁŁŁŲÆ Ų§ŁŁ Ų³ŲŖŁŲÆŲ Ł Ų«Ł ŁŁŁŲÆ Ų§ŁŁŲ³Ų® Ų£Ł Ų„Ł ŁŲ§ŁŁŲ© Ų§ŁŲ·ŲØŲ§Ų¹Ų©." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Ų§ŲŲ°Ł Ų§ŁŁ ŁŁ Ų§ŁŁ Ų¤ŁŲŖ" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Ų§Ų·ŲØŲ¹ Ł ŁŁ Ų§ŁŲ„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Ł ŁŲ¹Ų§ŁŁ Ł Ų³ŲŖŁŲÆŲ§ŲŖ Ų¬ŁŁŁ " + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ŲŖŲ¹Ų°Ų± Ų·ŲØŲ¹ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŲŖŲ¹Ų°ŁŲ± Ų§ŁŲ¹Ų«ŁŲ± Ų¹ŁŁ Ų§ŁŲ·Ų§ŲØŲ¹Ų© '%s' Ų§ŁŁ Ų®ŲŖŲ§Ų±Ų©" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "Ų§ŁŲµŁŲŲ© Ų§Ł_Ų³Ų§ŲØŁŲ©" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ³Ų§ŲØŁŲ©" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "Ų§ŁŲµŁŲŲ© Ų§Ł_ŲŖŲ§ŁŁŲ©" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲŖŲ§ŁŁŲ©" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ŁŲØŁŲ± Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ŲµŲŗŁŲ± Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Ų§Ų·ŲØŲ¹" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Ų§Ų·ŲØŲ¹ ŁŲ°Ų§ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "Ų£_ŁŲ¶Ł Ł ŁŲ§Ų¦Ł Ų©" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Ų§Ų¬Ų¹Ł Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲŲ§ŁŁ ŁŁ ŁŲ£ Ų§ŁŁŲ§ŁŲ°Ų©" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "ŁŲ§Ų¦Ł Ų¹Ų±_Ų¶ Ų§ŁŲµŁŲŲ©" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Ų§Ų¬Ų¹Ł Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲŲ§ŁŁ ŁŁ ŁŲ£ Ų§ŁŁŲ§ŁŲ°Ų© ŲØŲ§ŁŲ¹Ų±Ų¶" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "ŲµŁŲŲ©" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Ų§Ų®ŲŖŲ± ŲµŁŲŲ©" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Ł Ų³ŲŖŁŲÆ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Ų§ŁŲ¹ŁŁŲ§Ł:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Ų§ŁŁ ŁŲ§Ł:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Ų§ŁŁ ŁŲ¶ŁŲ¹:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Ų§ŁŁ Ų¤ŁŁ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŁŁŁ Ų§ŲŖ Ł ŁŲŖŲ§ŲŁŲ©:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Ų§ŁŁ ŁŲŖŁŲ¬:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Ų§ŁŁ ŁŲ“Ų¦:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ŲŖŲ§Ų±ŁŲ® Ų§ŁŲ„ŁŲ“Ų§Ų”:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Ų¢Ų®Ų± ŲŖŲ¹ŲÆŁŁ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Ų¹ŲÆŲÆ Ų§ŁŲµŁŲŲ§ŲŖ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Ł ŲŲ³ŁŁ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Ų§ŁŁŁŲ¦Ų©:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Ų§ŁŲ£Ł Ł:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Ł ŁŲ§Ų³ Ų§ŁŁŲ±Ł:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ŁŲ§ Ų“ŁŲ”" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%I.0f Ć %I.0f Ł Ł " + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%I.2f Ć %I.2f ŲØŁŲµŲ©" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%sŲ Ų·ŁŁŁ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%sŲ Ų¹Ų±Ų¶ŁŁ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%Id Ł Ł %Id)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "Ł Ł %Id" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŁŲŁ ŁŁā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ŁŲŲ¶ŁŲ± ŁŁŲ·ŲØŲ§Ų¹Ų©ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ŁŁŁŁŁā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŁŲ·ŲØŲ¹ Ų§ŁŲµŁŲŲ© %Id Ł Ł %Idā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ŁŲ§ ŁŁ ŁŁ Ų§ŁŲ·ŲØŲ§Ų¹Ų© Ł Ł Ų®ŁŲ§Ł ŁŲ°Ł Ų§ŁŲ·Ų§ŲØŲ¹Ų©" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Ų§Ų®ŲŖŁŲ§Ų± ŲµŁŲŲ§ŲŖ ŲŗŁŲ± Ų³ŁŁŁ " + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ŲŖŲŲ°ŁŲ±" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Ł ŲÆŁ Ų§ŁŲ·ŲØŲ§Ų¹Ų© Ų§ŁŲ°Ł Ų§Ų®ŲŖŲ±ŲŖŁ ŁŲ§ ŁŲ“Ł Ł Ų£Ł ŲµŁŲŲ§ŲŖ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ŲŖŲŲ¬ŁŁ Ų§ŁŲµŁŲŲ©:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ŁŁŁŲµ Ų„ŁŁ Ų§ŁŁ ŁŲ·ŁŲ© Ų§ŁŁ Ų·ŲØŁŲ¹Ų©" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ŁŲ§Ų¦Ł Ų§ŁŁ ŁŲ·ŁŲ© Ų§ŁŁ Ų·ŲØŁŲ¹Ų©" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ŲŖŲŲ¬ŁŁ ŲµŁŲŲ§ŲŖ Ų§ŁŁ Ų³ŲŖŁŲÆ ŁŲŖŁŲ§Ų³ŲØ ŲµŁŲŲ© Ų§ŁŲ·Ų§ŲØŲ¹Ų© Ų§ŁŁ Ų®ŲŖŲ§Ų±Ų©. Ų§Ų®ŲŖŲ± ŁŲ§ŲŲÆŲ§ Ł Ł Ų§ŁŲŖŲ§ŁŁ:\n" +"\n" +"ā¢ \"ŁŲ§\": ŁŲ§ ŲŖŲŲ¬ŁŁ ŁŁŲµŁŲŲ§ŲŖ.\n" +"\n" +"ā¢ \"ŁŁŁŲµ Ų„ŁŁ Ų§ŁŁ ŁŲ·ŁŲ© Ų§ŁŁ Ų·ŲØŁŲ¹Ų©\": ŲµŁŲŲ§ŲŖ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲ£ŁŲØŲ± Ł Ł Ų§ŁŁ ŁŲ·ŁŲ© Ų§ŁŁŲ§ŲØŁŲ© " +"ŁŁŲ·ŲØŲ§Ų¹Ų© Ų³ŲŖŁŁŲµ ŁŲŖŁŲ§Ų³ŲØ ŲµŁŲŲ© Ų§ŁŲ·Ų§ŲØŲ¹Ų©.\n" +"\n" +"ā¢ \"ŁŲ§Ų¦Ł Ų§ŁŁ ŁŲ·ŁŲ© Ų§ŁŁ Ų·ŲØŁŲ¹Ų©\": Ų³ŲŖŁŲØŲ± Ų£Ł ŲŖŲµŲŗŲ± ŲµŁŲŲ§ŲŖ Ų§ŁŁ Ų³ŲŖŁŲÆ ŲØŁ Ų§ ŁŁŲ§Ų³ŲØ Ų§ŁŁ ŁŲ·ŁŲ© " +"Ų§ŁŁ Ų·ŲØŁŲ¹Ų©.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ŲÆŁŁŲ± ŲŖŁŁŲ§Ų¦ŁŲ§ ŁŁŲ³ŁŲ·" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ŲÆŁŁŲ± Ų§ŲŖŲ¬Ų§Ł ŲµŁŲŲ© Ų§ŁŲ·Ų§ŲØŲ¹Ų© ŁŁŲ·Ų§ŲØŁ Ų§ŲŖŲ¬Ų§Ł ŁŁ ŲµŁŲŲ© ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ. Ų³ŲŖŁŁŲ³ŁŲ· ŲµŁŲŲ§ŲŖ Ų§ŁŁ Ų³ŲŖŁŲÆ " +"ŁŁ ŲµŁŲŲ© Ų§ŁŲ·Ų§ŲØŲ¹Ų©." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Ų§Ų®ŲŖŲ± ŲŲ¬Ł Ų§ŁŲµŁŲŲ© Ų·ŲØŁŲ§ ŁŲŲ¬Ł ŲµŁŲŲ© Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "Ų¹ŁŲÆ ŲŖŁŲ¹ŁŁŁ Ų³ŲŖŲ·ŲØŲ¹ ŁŁ ŲµŁŲŲ© Ų¹ŁŁ ŁŲ±Ł Ł Ł ŁŁŲ³ ŲŲ¬Ł ŲµŁŲŲ© Ų§ŁŁ Ų³ŲŖŁŲÆ." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Ł Ų¹Ų§ŁŲ¬Ų© Ų§ŁŲµŁŲŲ§ŲŖ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ŲŖŲ¹Ų°Ų± Ų·ŲØŲ¹ Ų§ŁŲµŁŲŲ© %d:ā %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ŁŁŁ ŁŲ£Ų¹ŁŁ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ŁŁŁ ŁŲ£Ų³ŁŁ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ŁŁŁ Ų§ŁŁ Ų“ŁŲÆ ŁŲ£Ų¹ŁŁ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ŁŁŁ Ų§ŁŁ Ų“ŁŲÆ ŁŲ£Ų³ŁŁ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Ł Ų“ŁŲÆ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Ų§ŁŁŲ² Ų„ŁŁ Ų§ŁŲµŁŲŲ©:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ŁŁŲ§ŁŲ© Ų§ŁŲ¹Ų±Ų¶. Ų§ŁŁŲ± ŁŲŖŲ®Ų±Ų¬." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ£ŁŁŁ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ³Ų§ŲØŁŲ©" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲŖŲ§ŁŁŲ©" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ£Ų®ŁŲ±Ų©" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ©" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Ų§ŲØŲŲ«" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ %s ŁŁ Ų§ŁŁ ŁŁ %s" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŁ ŁŁ \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Ų£Ų·ŁŁŁ %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Ų§ŲØŲŲ«:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Ų§Ł_Ų³Ų§ŲØŁ" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Ų§ŲØŲŲ« Ų¹Ł Ų§ŁŲŖŁŲ§Ų¬ŲÆ Ų§ŁŲ³Ų§ŲØŁ ŁŁŲµ Ų§ŁŲØŲŲ«" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Ų§Ł_ŲŖŲ§ŁŁ" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Ų§ŲØŲŲ« Ų¹Ł Ų§ŁŲŖŁŲ§Ų¬ŲÆ Ų§ŁŲŖŲ§ŁŁ ŁŁŲµ Ų§ŁŲØŲŲ«" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Ų_Ų³Ų§Ų³ ŁŲŲ§ŁŲ© Ų§ŁŲ£ŲŲ±Ł" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ŲØŲÆŁŁ Ų§ŁŲØŲŲ« Ų§ŁŲŲ³ŁŲ§Ų³ ŁŲŲ§ŁŲ© Ų§ŁŲ£ŲŲ±Ł" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ų§ŁŲ£ŁŁŁŁŲ©:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Ł ŁŲ§ŲŲøŲ©" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ŲŖŲ¹ŁŁŁ" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Ł ŁŲŖŲ§Ų" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Ł Ų³Ų§Ų¹ŲÆŲ©" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ŁŁŲ±Ų© Ų¬ŲÆŁŲÆŲ©" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ŁŁŲ±Ų©" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Ų„ŲÆŲ±Ų§Ų¬" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ŲµŁŁŲØ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ŲÆŲ§Ų¦Ų±Ų©" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Ł Ų¬ŁŁŁ" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Ų®ŲµŲ§Ų¦Ųµ Ų§ŁŲŖŲ¹ŁŁŁŲ§ŲŖ" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Ų§ŁŁŁŁ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Ų§ŁŲ·Ų±Ų§Ų²:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Ų“ŁŲ§Ł" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Ł Ų¹ŲŖŁ " + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ŲŲ§ŁŲ© Ų§ŁŁŲ§ŁŲ°Ų© Ų§ŁŲ£ŁŁŁŲ©:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ł ŁŲŖŁŲŲ©" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Ł ŲŗŁŁŲ©" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ŁŲ¹Ł Ł ŁŁ ŁŁ Ų· Ų§ŁŲ¹Ų±Ų¶ Ų§ŁŲŖŁŲÆŁŁ Ł" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ŁŁŁ Ų© Ų³Ų± Ų§ŁŁ Ų³ŲŖŁŲÆ %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŁŁŲŁŁŁ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ŲŖŁ ŲŖŲŁŁŁ %d Ł Ł %d Ł Ų³ŲŖŁŲÆŲ§ŲŖ" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ŁŲŁŁ Ų§ŁŲØŁŲ§ŁŲ§ŲŖ Ų§ŁŁŁŁŁŲ©" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ŁŁŲÆ ŲŖŲŗŁŲ± ŁŲ³Ł Ų§ŁŲØŁŲ§ŁŲ§ŲŖ Ų§ŁŁŁŁŁŲ© Ų§ŁŲ°Ł ŁŲ³ŲŖŲ®ŲÆŁ Ł Ų¬ŁŲ§Ų”Ų ŁŁŲ°Ų§ ŁŲŲŖŲ§Ų¬ ŁŁŁŁŁ. Ų„Ų°Ų§ Ų£ŁŲŗŁ " +"Ų§ŁŁŁŁ ŁŁ ŁŲ¹Ł Ł Ł Ų®Ų²Ł Ų§ŁŲØŁŲ§ŁŲ§ŲŖ Ų§ŁŁŁŁŁŲ©." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ŁŲŖŲ Ł Ų³ŲŖŁŲÆ Ų§Ų³ŲŖŲ®ŲÆŁ Ų§ ŲŲÆŁŲ«Ų§" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ŁŲ°Ų§ Ų§ŁŁ Ų³ŲŖŁŲÆ Ł ŁŁŁ ŁŁŲ§ ŁŁ ŁŁ ŁŲ±Ų§Ų”ŲŖŁ Ų„ŁŲ§ ŲØŲ„ŲÆŲ®Ų§Ł ŁŁŁ Ų© Ų§ŁŲ³Ų± Ų§ŁŲµŲŁŲŲ©" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "Ų§_ŁŲŖŲ ŁŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Ų£ŲÆŲ®Ł ŁŁŁ Ų© Ų§ŁŲ³Ų±" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ŁŁŁ Ų© Ų§ŁŲ³Ų± Ł Ų·ŁŁŲØŲ©" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Ų§ŁŁ Ų³ŲŖŁŲÆ \"%s\" Ł ŁŁŁ Ł ŁŲŖŲ·ŁŲØ ŁŁŁ Ų© Ų³Ų± ŁŁŁŁŲŖŲ" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ŁŁŁ Ų© Ų§ŁŲ³Ų±:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Ų§_ŁŁŲ³ ŁŁŁ Ų© Ų§ŁŲ³Ų± ŁŁŲ±Ų§" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ŲŖ_Ų°ŁŲ± ŁŁŁ Ų© Ų§ŁŲ³Ų± ŲŲŖŁ Ų®Ų±ŁŲ¬Ł" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ŲŖ_Ų°ŁŲ± ŁŁŲ£ŲØŲÆ" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Ų§ŁŲ®ŲµŲ§Ų¦Ųµ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Ų¹Ų§Ł " + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Ų®Ų·ŁŲ·" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Ų±Ų®ŲµŲ© Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Ų®Ų·" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ŁŲ¬Ł Ų¹ Ł Ų¹ŁŁŁ Ų§ŲŖ Ų§ŁŲ®Ų·ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Ų“Ų±ŁŲ· Ų§ŁŲ§Ų³ŲŖŲ®ŲÆŲ§Ł " + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Ų±Ų®ŲµŲ© Ų§ŁŁŲµ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Ų§ŁŁ Ų²ŁŲÆ Ł Ł Ų§ŁŁ Ų¹ŁŁŁ Ų§ŲŖ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ŁŲ§Ų¦Ł Ų©" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Ų§ŁŲŖŲ¹ŁŁŁŲ§ŲŖ" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ŁŲµ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Ų£Ų¶Ł ŲŖŲ¹ŁŁŁŲ§ ŁŲµŁŲ§" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Ų£Ų¶Ł" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ŁŲ§ ŁŲŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų£ŁŲ© ŲŖŲ¹ŁŁŁŲ§ŲŖ" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ŲµŁŲŲ© %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Ų§ŁŁ Ų±ŁŁŲ§ŲŖ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Ų§ŁŲ·ŲØŁŲ§ŲŖ" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Ų§Ų·ŲØŲ¹ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ŁŁŲ±Ų³" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Ł ŁŲµŲŗŁŲ±Ų§ŲŖ" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "ŲµŁŲŲ© %s āā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "ŲµŁŲŲ© %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ŁŲ§ ŁŲŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų£ŁŲ© ŲµŁŲŲ§ŲŖ" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ŁŲ§ ŁŲŲŖŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų„ŁŲ§ ŲµŁŲŲ§ŲŖ ŁŲ§Ų±ŲŗŲ©" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ŁŲŁ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ł Ł ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŁŁŲ²ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ Ł ŁŁ ŲØŲ¹ŁŲÆ." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "ŁŲ¹ŁŲÆ ŲŖŲŁ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ŲŖŲ¹Ų°Ų± Ų„Ų¹Ų§ŲÆŲ© ŲŖŲŁ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Ų§ŁŲŖŲ Ł Ų³ŲŖŁŲÆ" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ŁŲŁŲø Ų§ŁŁ Ų³ŲŖŁŲÆ ŁŁ %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ŁŲŁŲø Ų§ŁŁ Ų±ŁŁ ŁŁ %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ŁŲŁŲø Ų§ŁŲµŁŲ±Ų© ŁŁ %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŲŖŲ¹Ų°Ų± ŲŁŲø Ų§ŁŁ ŁŁ ŲØŲ§Ų³Ł \"%s\"" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ŁŲ±ŁŲ¹ Ų§ŁŁ Ų³ŲŖŁŲÆ (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ŁŲ±ŁŲ¹ Ų§ŁŁ Ų±ŁŁ (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ŁŲ±ŁŲ¹ Ų§ŁŲµŁŲ±Ų© (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Ų§ŲŁŲø ŁŲ³Ų®Ų©" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ŁŲ§ Ł ŁŲ§Ł Ł ŁŲŖŲøŲ±Ų© ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" +msgstr[1] "Ł ŁŁ Ų© ŁŲ§ŲŲÆŲ© ŲŖŁŲŖŲøŲ± ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" +msgstr[2] "Ł ŁŁ ŲŖŁŁ Ł ŁŲŖŲøŲ±ŲŖŁŁ ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" +msgstr[3] "%Id Ł ŁŲ§Ł Ł ŁŲŖŲøŲ±Ų© ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" +msgstr[4] "%Id Ł ŁŁ Ų© Ł ŁŲŖŲøŲ±Ų© ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" +msgstr[5] "%Id Ł ŁŁ Ų© Ł ŁŲŖŲøŲ±Ų© ŁŁ Ų§ŁŲ·Ų§ŲØŁŲ±" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Ł ŁŁ Ų© Ų§ŁŲ·ŲØŲ¹ ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "ŁŲŲŖŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų¹ŁŁ Ų§Ų³ŲŖŁ Ų§Ų±Ų© Ł ŁŁŲ¦ŲŖŲ Ų„Ų°Ų§ ŁŁ ŲŖŲŁŲø ŁŲ³Ų®Ų© ŁŲ³ŲŖŲ¶ŁŲ¹ ŁŲ°Ł Ų§ŁŲŖŲ¹ŲÆŁŁŲ§ŲŖ." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ŁŲŲŖŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų¹ŁŁ ŲŖŲ¹ŁŁŁŲ§ŲŖ Ų¬ŲÆŁŲÆŲ© Ų£Ł Ł Ų¹ŲÆŁŲ©Ų Ų„Ų°Ų§ ŁŁ ŲŖŲŁŲø ŁŲ³Ų®Ų© ŁŲ³ŲŖŲ¶ŁŲ¹ ŁŲ°Ł " +"Ų§ŁŲŖŲ¹ŲÆŁŁŲ§ŲŖ." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Ų£Ų£ŲŁŲø ŁŲ³Ų®Ų© Ł Ł Ų§ŁŁ Ų³ŲŖŁŲÆ \"%s\" ŁŲØŁ ŲŗŁŁŁŲ" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Ų£ŲŗŁŁ _ŲÆŁŁ ŲŁŲø" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Ų§ŲŁŲø _ŁŲ³Ų®Ų©" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Ų£Ų£ŁŲŖŲøŲ± ŲŲŖŁ ŲŖŁŲŖŁŁ Ų§ŁŁ ŁŁ Ų© ā%sā ŁŲØŁ Ų§ŁŲŗŁŁŲ" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ŲŖŁŲ¬ŲÆ %d Ł ŁŲ§Ł Ų·ŲØŲ§Ų¹Ų© ŁŲ“Ų·Ų©. Ų£Ų£ŁŲŖŲøŲ± ŲŲŖŁ ŲŖŁŲŖŁŁ Ų§ŁŲ·ŲØŲ§Ų¹Ų© ŁŲØŁ Ų§ŁŲŗŁŁŲ" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Ų„Ų°Ų§ Ų£ŲŗŁŁŲŖ Ų§ŁŁŲ§ŁŲ°Ų© ŁŁ ŲŖŁŲ·ŲØŲ¹ Ų§ŁŁ ŁŲ§Ł Ų§ŁŁ ŁŲŖŲøŲ±Ų©." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Ų£ŁŲŗŁ Ų§Ł_Ų·ŲØŲ§Ų¹Ų© ŁŲ£ŲŗŁŁ" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Ų£ŲŗŁŁ ŲØ_Ų¹ŲÆ Ų§ŁŲ·ŲØŲ§Ų¹Ų©" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Ł ŲŲ±Ų± Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ŲŲÆŲ« Ų®Ų·Ų£ Ų£Ų«ŁŲ§Ų” Ų¹Ų±Ų¶ Ų§ŁŁ Ų³Ų§Ų¹ŲÆŲ©" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Ų¹Ų§Ų±Ų¶ Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ\n" +"ŲØŲ§Ų³ŲŖŲ®ŲÆŲ§Ł %s ā(%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Ų¬ŁŲ§Ų” ŲØŲ±ŁŲ§Ł Ų¬ ŲŲ±Ų ŲØŲ§Ł ŁŲ§ŁŁ Ų„Ų¹Ų§ŲÆŲ© ŲŖŁŲ²ŁŲ¹Ł Ł/Ų£Ł ŲŖŲ¹ŲÆŁŁŁ ŲŖŲŲŖ Ų“Ų±ŁŲ· Ų§ŁŲ±Ų®ŲµŲ© Ų§ŁŲ¹Ų§Ł Ų© ŁŲ¬ŁŁ " +"ŁŲ§ŁŲŖŁ ŁŲ“Ų±ŲŖŁŲ§ Ł ŁŲøŁ Ų© Ų§ŁŲØŲ±Ł Ų¬ŁŲ§ŲŖ Ų§ŁŲŲ±Ų©Ų Ų³ŁŲ§Ų” ŁŲ§ŁŲŖ Ų§ŁŲ„ŲµŲÆŲ§Ų±Ų© 2 ŁŁŲ±Ų®ŲµŲ© Ų£Ł Ų£Ł Ų„ŲµŲÆŲ§Ų±Ų© " +"ŲØŲ¹ŲÆŁŲ§ ŲŲ³ŲØ Ų§ŁŲ±ŲŗŲØŲ©. \n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"ŁŁŲ²ŁŲ¹ Ų¬ŁŲ§Ų” Ų¹ŁŁ Ų£Ł Ł Ų£Ł ŁŁŁŁ Ł ŁŁŲÆŲ§Ł ŁŁ Ł ŁŲ³ŲŖŲ®ŲÆŁ Ł ŲÆŁŁ Ų£ŲÆŁŁ Ł Ų³Ų¤ŁŁŁŲ©Ų ŁŁŲ§ ŲŲŖŁ Ų¶Ł Ų§Ł " +"ŲµŁŲ§ŲŁŲ© Ų§ŁŲ¹Ų±Ų¶ ŁŁ Ų§ŁŲ³ŁŁ Ų£Ł ŲŖŁŲ§ŁŁŁ Ł Ų¹ Ų£Ł Ų§Ų³ŲŖŲ®ŲÆŲ§Ł Ł ŲŲÆŲÆ. ŁŁ ŁŁŁ Ł Ų±Ų§Ų¬Ų¹Ų© Ų§ŁŲ±Ų®ŲµŲ© " +"Ų§ŁŲ¹Ų§Ł Ų© ŁŲ¬ŁŁ ŁŁ Ų²ŁŲÆ Ł Ł Ų§ŁŲŖŁŲ§ŲµŁŁ. \n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ŁŲ§ŲØŲÆ Ł Ł Ų£Ł ŲŖŁŁŁ ŁŲÆ Ų§Ų³ŲŖŁŁ ŲŖ ŁŲ³Ų®Ų© Ł Ł Ų±Ų®ŲµŲ© Ų¬ŁŁ Ų§ŁŲ¹Ų§Ł Ų© Ł Ų¹ Ų¬ŁŲ§Ų”Ų ŁŁ ŲŲ§Ł Ų¹ŲÆŁ " +"Ų§Ų³ŲŖŁŲ§Ł Ł ŁŲ°ŁŁŲ ŁŁ ŁŁŁ Ł ŁŲ§ŲŖŲØŲ©:\n" +"Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " +"02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Ų¬ŁŲ§Ų”" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 ŁŁ Ų¤ŁŁŁ ŲØŲ±ŁŲ§Ł Ų¬ Ų¬ŁŲ§Ų”" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"ŁŲ±ŁŁ Ų¹Ų±ŲØŲ¢ŁŲ² ŁŁŲŖŲ±Ų¬Ł Ų© http://www.arabeyes.org :\n" +"ŁŁŲ³Ł Ų±ŁŁŁ\t<yousef@raffah.com>\n" +"Ų®Ų§ŁŲÆ ŲŲ³ŁŁ\t<khaledhosny@eglug.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ŁŲ§ ŁŁŲ¬ŲÆ ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" +msgstr[1] "ŁŲ§ŲŲÆ Ł ŁŲ¬ŁŲÆ ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" +msgstr[2] "Ų§Ų«ŁŲ§Ł Ł ŁŲ¬ŁŲÆŲ§Ł ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" +msgstr[3] "%Id Ł ŁŲ¬ŁŲÆŲ© Ų¹ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" +msgstr[4] "%Id Ł ŁŲ¬ŁŲÆŲ© Ų¹ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" +msgstr[5] "%Id Ł ŁŲ¬ŁŲÆŲ© Ų¹ŁŁ ŁŲ°Ł Ų§ŁŲµŁŲŲ©" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ŲŗŁŲ± Ł ŁŲ¬ŁŲÆ" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%I3d%% Ł ŲŖŲØŁŁŲ© ŁŁŲØŲŲ«" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Ł ŁŁ" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_ŲŖŲŲ±ŁŲ±" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Ų¹Ų±Ų¶" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "Ų§_Ų°ŁŲØ" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_Ł Ų³Ų§Ų¹ŲÆŲ©" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "Ų§_ŁŲŖŲā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Ų§ŁŲŖŲ Ł Ų³ŲŖŁŲÆ Ł ŁŲ¬ŁŲÆ" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Ų§ŁŲŖŲ _ŁŲ³Ų®Ų©" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Ų§ŁŲŖŲ ŁŲ³Ų®Ų© Ł Ł Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲŲ§ŁŁ ŁŁ ŁŲ§ŁŲ°Ų© Ų¬ŲÆŁŲÆŲ©" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "Ų§ŲŁŲø _ŁŲ³Ų®Ų©ā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Ų§ŲŁŲø ŁŲ³Ų®Ų© Ł Ł Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲŲ§ŁŁ" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "Ų§_Ų·ŲØŲ¹ā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "Ų®_ŲµŲ§Ų¦Ųµ" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Ų§Ų®ŲŖŲ± _Ų§ŁŁŁ" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "Ų§_ŲØŲŲ«ā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Ų§ŲØŲŲ« Ų¹Ł ŁŁŁ Ų© Ų£Ł Ų¹ŲØŲ§Ų±Ų© ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "Ų“_Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Ų§Ų³ŲŖŲÆŲ± Ł_Ų³Ų§Ų±ŁŲ§" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Ų§Ų³ŲŖŲÆŲ± Ł_Ł ŁŁŁŲ§" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Ų§Ų¬Ų¹Ł Ų§ŁŲ„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§ŁŲŲ§ŁŁŲ© Ų§Ł_Ł ŲØŲÆŲ¦ŁŲ©" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "Ų£_Ų¹ŲÆ Ų§ŁŲŖŲŁ ŁŁ" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Ų£Ų¹ŲÆ ŲŖŲŁ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "ŁŁ _ŲŖŁŁŲ§Ų¦Ł" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "Ų§ŁŲµŁŲŲ© Ų§ŁŲ£_ŁŁŁ" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ£ŁŁŁ" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "Ų§ŁŲµŁŲŲ© Ų§ŁŲ£_Ų®ŁŲ±Ų©" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Ų§Ų°ŁŲØ Ų„ŁŁ Ų§ŁŲµŁŲŲ© Ų§ŁŲ£Ų®ŁŲ±Ų©" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "Ų§ŁŁ _ŲŲŖŁŁŲ§ŲŖ" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Ų¹ŁŁ" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "ŲŗŲ§ŲÆŁŲ± ŁŁ Ų· Ł ŁŲ” Ų§ŁŲ“Ų§Ų“Ų©" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "ŲŗŲ§ŲÆŁŲ± ŁŁ Ų· Ł ŁŲ” Ų§ŁŲ“Ų§Ų“Ų©" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Ų§ŲØŲÆŲ£ Ų§ŁŲ¹Ų±Ų¶ Ų§ŁŲŖŁŲÆŁŁ Ł" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Ų§ŲØŲÆŲ£ Ų¹Ų±Ų¶ ŲŖŁŲÆŁŁ Ł" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Ų§ŲøŁŲ± Ų£Ł Ų§Ų®ŁŁ Ų“Ų±ŁŲ· Ų§ŁŲ£ŲÆŁŲ§ŲŖ" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Ų§Ł_ŁŁŲŲ© Ų§ŁŲ¬Ų§ŁŲØŁŲ©" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Ų§ŲøŁŲ± Ų£Ł Ų§Ų®ŁŁ Ų§ŁŁŁŲŲ© Ų§ŁŲ¬Ų§ŁŲØŁŲ©" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "Ł _Ų³ŲŖŁ Ų±" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Ų§Ų¹Ų±Ų¶ ŁŲ§Ł Ł Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Ł Ų²ŲÆŁŲ¬" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Ų§Ų¹Ų±Ų¶ ŲµŁŲŲŖŁŁ ŁŁ ŁŁ Ł Ų±Ų©" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Ł ŁŲ” Ų§ŁŲ“Ų§Ų“Ų©" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Ł ŲÆŁŲÆ Ų§ŁŁŲ§ŁŲ°Ų© ŁŲŖŁ ŁŲ£ Ų§ŁŲ“Ų§Ų“Ų©" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_Ų¹Ų±Ų¶ ŲŖŁŲÆŁŁ Ł" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Ų“ŲŗŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ ŁŲ¹Ų±Ų¶ ŲŖŁŲÆŁŁ Ł" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "Ų£ŁŁŲ§Ł _Ł Ų¹ŁŁŲ³Ų©" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Ų§Ų¹Ų±Ų¶ Ł ŲŲŖŁŁŲ§ŲŖ Ų§ŁŲµŁŲŲ© ŲØŲ£ŁŁŲ§Ł Ł Ų¹ŁŁŲ³Ų©" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "Ų§_ŁŲŖŲ Ų§ŁŲ±Ų§ŲØŲ·" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "Ų§_Ų°ŁŲØ Ų„ŁŁ" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Ų§ŁŲŖŲ ŁŁ ŁŲ§ŁŲ°Ų© _Ų¬ŲÆŁŲÆŲ©" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "Ų§_ŁŲ³Ų® Ų¹ŁŁŲ§Ł Ų§ŁŲ±Ų§ŲØŲ·" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "Ų§_ŲŁŲø Ų§ŁŲµŁŲ±Ų© Łāā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Ų§ŁŲ³Ų® Ų§Ł_ŲµŁŲ±Ų©" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Ų®ŲµŲ§Ų¦Ųµ Ų§ŁŲŖŲ¹ŁŁŁŲ§ŲŖā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "Ų§_ŁŲŖŲ Ų§ŁŁ Ų±ŁŁ" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Ų§_ŲŁŲø Ų§ŁŁ Ų±ŁŁ ŲØŲ§Ų³Ł ā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ŁŲ±ŁŲØ" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Ų§Ų¶ŲØŲ· Ł Ų³ŲŖŁŁ Ų§ŁŲŖŁŲ±ŁŲØ" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Ų„ŲØŲŲ§Ų±" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Ų„ŁŁ Ų§ŁŲ®ŁŁ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Ų§ŁŲŖŁŁ Ų¹ŲØŲ± Ų§ŁŲµŁŲŲ§ŲŖ Ų§ŁŁ ŁŲ²Ų§Ų±Ų©" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Ų§ŁŲ³Ų§ŲØŁ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Ų§ŁŲŖŲ§ŁŁ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ŁŲ±ŁŲØ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ŲØŲ¹ŁŲÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "ŁŲ§Ų¦Ł Ų§ŁŲ¹Ų±Ų¶" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ŲŖŲ¹Ų°Ų± ŲŖŲ“ŲŗŁŁ ŲØŲ±ŁŲ§Ł Ų¬ Ų®Ų§Ų±Ų¬Ł." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ ŁŲµŁŲ© Ų®Ų§Ų±Ų¬ŁŲ©" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ŲŖŲ¹Ų°ŁŲ± ŲŖŲŲÆŁŲÆ ŲŖŁŲ³ŁŁ Ł ŁŲ§Ų³ŲØ ŁŲŁŲø Ų§ŁŲµŁŲ±Ų©" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "ŲŖŲ¹Ų°Ų± ŲŁŲø Ų§ŁŲµŁŲ±Ų©." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Ų§ŲŁŲø Ų§ŁŲµŁŲ±Ų©" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ŲŖŲ¹Ų°Ų± ŁŲŖŲ Ų§ŁŁ Ų±ŁŁ" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "ŲŖŲ¹Ų°Ų± ŲŁŲø Ų§ŁŁ Ų±ŁŁ." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Ų§ŲŁŲø Ų§ŁŁ ŁŁ Ų§ŁŁ Ų±ŁŁ" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "ā%s ā ŁŁŁ Ų© Ų§ŁŲ³Ų± Ł Ų·ŁŁŲØŲ©" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ŲØŲ§ŁŲ§Ł ŲŖŲÆŲ§ŲÆ" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Ų¹Ų§Ų±ŁŲ¶ Ł Ų³ŲŖŁŲÆŲ§ŲŖ Ų¬ŁŁŁ " + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Ų¹ŁŁŲ§Ł ŲµŁŲŲ© Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŁ Ų·ŁŁŲØ Ų¹Ų±Ų¶ŁŲ§." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "ŲµŁŲŲ©" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Ų±ŁŁ ŲµŁŲŲ© Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŁ Ų·ŁŁŲØ Ų¹Ų±Ų¶ŁŲ§." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "Ų±ŁŁ " + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Ų“ŲŗŁŁ Ų¬ŁŲ§Ų” ŁŁ ŁŁ Ų· Ł ŁŲ” Ų§ŁŲ“Ų§Ų“Ų©" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Ų“ŲŗŁŁ Ų¬ŁŲ§Ų” ŁŁ ŁŁ Ų· Ų§ŁŲ¹Ų±Ų¶ Ų§ŁŲŖŁŲÆŁŁ Ł" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Ų“ŲŗŁŁ Ų¬ŁŲ§Ų” ŁŁ Ų¹Ų§ŁŁ" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ų§ŁŁŁŁ Ų© Ų£Ł Ų§ŁŲ¹ŲØŲ§Ų±Ų© Ų§ŁŲŖŁ Ų³ŁŲŖŁ Ų§ŁŲØŲŲ« Ų¹ŁŁŲ§ ŁŁ Ų§ŁŁ Ų³ŲŖŁŲÆ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ŁŲµ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Ł ŁŁā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Ų§ŁŲ®ŁŲ§Ų±Ų§ŲŖ Ų§ŁŁ ŁŲ·ŁŁŲ© Ł ŲŖŁŁŲ±Ų©Ų \"ŲµŲŁŲ\" ŲŖŁ ŁŁ Ų§ŁŁ ŁŲµŲŗŁŲ±Ų§ŲŖ Ł \"Ų®Ų·Ų£\" ŲŖŲ¹Ų·Ł Ų„ŁŲ“Ų§Ų” Ł ŁŲµŲŗŁŲ±Ų§ŲŖ " +"Ų¬ŲÆŁŲÆŲ©" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Ł ŁŁŁ Ų„ŁŲ“Ų§Ų” Ł ŁŲµŲŗŁŲ±Ų§ŲŖ Ł Ł Ł Ų³ŲŖŁŲÆŲ§ŲŖ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Ų£Ł Ų± Ų§ŁŁ ŁŲµŲŗŁŲ±Ų§ŲŖ ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Ų£Ł Ų± ŲµŲ§ŁŁŲ ŲØŲ§ŁŲ„Ų¶Ų§ŁŲ© Ų„ŁŁ Ł ŲŖŲŗŁŲ±Ų§ŲŖ ŁŁ ŲµŲŗŁŲ± Ų§ŁŲµŁŲ± Ų§ŁŲ®Ų§Ųµ ŲØŁ Ų³ŲŖŁŲÆŲ§ŲŖ PDF. Ų±Ų§Ų¬Ų¹ ŲŖŁŲ«ŁŁ " +"Ł ŲµŲŗŁŲ± Ų§ŁŲµŁŲ± ŁŁŁŲŖŁŲ³ ŁŁŁ Ų²ŁŲÆ Ł Ł Ų§ŁŁ Ų¹ŁŁŁ Ų§ŲŖ" + +#~ msgid "Page Set_upā¦" +#~ msgstr "Ų„_Ų¹ŲÆŲ§ŲÆ Ų§ŁŲµŁŲŲ©ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Ų§Ų¶ŲØŲ· Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų·ŲØŲ§Ų¹Ų© Ų§ŁŲµŁŲŲ©" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "ŁŁŲ¦Ų© Ł Ų³ŲŖŁŲÆ DJVU ŲŗŁŲ± ŲµŲŁŲŲ©" + +#~ msgid "Print..." +#~ msgstr "Ų§Ų·ŲØŲ¹..." + +#~ msgid "_Save a Copy..." +#~ msgstr "Ų§_ŲŁŲø ŁŲ³Ų®Ų©..." + +#~ msgid "_Print..." +#~ msgstr "Ų§_Ų·ŲØŲ¹..." + +#~ msgid "_Find..." +#~ msgstr "Ų§_ŲØŲŲ«..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ŲŖŲ¹Ų°Ų± Ų„ŁŲ“Ų§Ų” Ų§ŁŁ ŁŁ ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Ų³ŁŲ³ŁŲ© Ų§ŁŲØŲŲ«" + +#~ msgid "The name of the string to be found" +#~ msgstr "Ų§Ų³Ł Ų§ŁŲ³ŁŲ³ŁŲ© Ų§ŁŁ Ų±Ų§ŲÆ Ų§ŁŲØŲŲ« Ų¹ŁŁŲ§" + +#~ msgid "Case sensitive" +#~ msgstr "ŲŲ³ŁŲ§Ų³ ŁŲŲ§ŁŲ© Ų§ŁŲ£ŲŲ±Ł" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ŲµŲŁŲ ŁŁ ŲŲ§ŁŲ© ŲØŲŲ« ŲŲ³Ų§Ų³ ŁŁŲ£ŲŲ±Ł" + +#~ msgid "Highlight color" +#~ msgstr "ŁŁŁ Ų§ŁŲŖŲøŁŁŁ" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ŁŁŁ Ų§ŁŲŖŲøŁŁŁ ŁŁŁ Ų§ŁŁŲŖŲ§Ų¦Ų¬" + +#~ msgid "Current color" +#~ msgstr "Ų§ŁŁŁŁ Ų§ŁŲŲ§ŁŁ" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ŁŁŁ Ų§ŁŲŖŲøŁŁŁ ŁŁŁŲŖŲ§Ų¦Ų¬ Ų§ŁŲŲ§ŁŁŲ©" + +#~ msgid "Recover previous documents?" +#~ msgstr "Ų£Ų£Ų³ŲŖŲ¹ŁŲÆ Ų§ŁŁ Ų³ŲŖŁŲÆ Ų§ŁŲ³Ų§ŲØŁŲ" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ŁŲØŲÆŁ Ų£Ł Ų¬ŁŲ§Ų” Ų®Ų±Ų¬ ŲØŲµŁŲ±Ų© ŲŗŁŲ± Ų·ŲØŁŲ¹ŁŲ© ŁŁ Ų§ŁŲŖŲ“ŲŗŁŁ Ų§ŁŲ£Ų®ŁŲ±Ų ŁŁ ŁŁŁ Ų§Ų³ŲŖŲ¹Ų§ŲÆŲ© " +#~ "Ų§ŁŁ Ų³ŲŖŁŲÆŲ§ŲŖ Ų§ŁŁ ŁŲŖŁŲŲ©." + +#~ msgid "_Don't Recover" +#~ msgstr "_ŁŲ§ ŲŖŲ³ŲŖŲ¹ŁŲÆ" + +#~ msgid "_Recover" +#~ msgstr "Ų§_Ų³ŲŖŲ¹ŁŲÆ" + +#~ msgid "Crash Recovery" +#~ msgstr "Ų§ŁŲŖŲ¹Ų§ŁŁ Ł Ł Ų§ŁŲ§ŁŁŁŲ§Ų±" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ŲŖŲ¹Ų°Ų± Ų„ŁŲ“Ų§Ų” Ų§ŁŲ±Ų§ŲØŲ· Ų§ŁŲ±Ł Ų²Ł ā%sā:" + +#~ msgid "Cannot open a copy." +#~ msgstr "ŁŲ§ ŁŁ ŁŁ ŁŲŖŲ ŁŲ³Ų®Ų©." + +#~ msgid "Co_nnect" +#~ msgstr "Ų§ŲŖ_ŲµŁ" + +#~ msgid "Connect _anonymously" +#~ msgstr "Ų§ŲŖŲµŁ _Ł Ų¬ŁŁŁ Ų§ŁŲ§Ų³Ł " + +#~ msgid "Connect as u_ser:" +#~ msgstr "Ų§ŲŖŲµŁ ŁŲ§ŁŁ Ų³ŲŖ_Ų®ŲÆŁ :" + +#~ msgid "_Username:" +#~ msgstr "Ų§Ų³Ł Ų§ŁŁ Ų³ŲŖŲ®ŲÆ_Ł :" + +#~ msgid "_Domain:" +#~ msgstr "Ų§ŁŁ _Ų¬Ų§Ł:" + +#~ msgid "_Forget password immediately" +#~ msgstr "Ų§_ŁŁŲ³ ŁŁŁ Ų© Ų§ŁŲ³Ų± ŁŁŲ±Ų§" + +#~ msgid "_Remember password until you logout" +#~ msgstr "ŲŖ_Ų°ŁŲ± ŁŁŁ Ų© Ų§ŁŲ³Ų± ŲŲŖŁ Ų®Ų±ŁŲ¬Ł" + +#~ msgid "_Remember forever" +#~ msgstr "ŲŖ_Ų°ŁŲ± ŁŁŲ£ŲØŲÆ" + +#~ msgid "File not available" +#~ msgstr "Ų§ŁŁ ŁŁ ŲŗŁŲ± Ł ŁŲ¬ŁŲÆ" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Ų§ŁŁ ŁŁŲ§ŲŖ Ų§ŁŲØŲ¹ŁŲÆŲ© ŲŗŁŲ± Ł ŲÆŲ¹ŁŁ Ų©" + +#~ msgid "Password Entry" +#~ msgstr "Ų„ŲÆŲ®Ų§Ł ŁŁŁ Ų© Ų§ŁŲ³Ų±" + +#~ msgid "Remember password for this session" +#~ msgstr "ŲŖŲ°ŁŁŲ± ŁŁŁ Ų© Ų§ŁŲ³Ų± ŁŁŲ°Ł Ų§ŁŲ¬ŁŲ³Ų©" + +#~ msgid "Save password in keyring" +#~ msgstr "Ų§ŲŁŲø ŁŁŁ Ų© Ų§ŁŲ³Ų± ŁŁ ŲŁŁŲ© Ų§ŁŁ ŁŲ§ŲŖŁŲ" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>Ų§ŁŲ¹ŁŁŲ§Ł:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%I.2f Ć %I.2f ŲØŁŲµŲ©" + +#~ msgid "Find Previous" +#~ msgstr "Ų„ŁŲ¬Ų§ŲÆ Ų§ŁŲ³Ų§ŲØŁ" + +#~ msgid "Find Next" +#~ msgstr "Ų„ŁŲ¬Ų§ŲÆ Ų§ŁŲŖŲ§ŁŁ" + +#~ msgid "Incorrect password" +#~ msgstr "ŁŁŁ Ų© Ų§ŁŲ³Ų± ŲŗŁŲ± ŲµŲŁŲŲ©" diff --git a/po/as.po b/po/as.po new file mode 100644 index 00000000..50eb3dd9 --- /dev/null +++ b/po/as.po @@ -0,0 +1,1624 @@ +# translation of as.po to Assamese +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Amitakhya Phukan <aphukan@redhat.com>, 2008. +# Amitakhya Phukan <amitakhya@svn.mate.org>, 2008. +# Amitakhya Phukan <aphukan@fedoraproject.org>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: as\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug." +"cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-09-15 18:39+0000\n" +"PO-Revision-Date: 2009-09-21 10:13+0530\n" +"Last-Translator: \n" +"Language-Team: Assamese <>\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-Generator: Lokalize 0.2\n" + +#: ../backend/comics/comics-document.c:155 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦¹ą¦æ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą§°ą§ą¦ ą¦ą§°ą¦¾ą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ā%sā ą¦ą¦¦ą§ą¦¶ ą¦ą§°ą¦®ą§ą¦ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦øą¦®ą¦øą§ą¦Æą¦¾: %s" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦¹ą¦æ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą§°ą§ą¦ ą¦ą§°ą¦¾ą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ā%sā ą¦ą¦¦ą§ą¦¶ ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤" + +#: ../backend/comics/comics-document.c:178 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ą¦ą¦¦ą§ą¦¶ ą¦øą¦ ą¦æą¦ą§°ą§ą¦Ŗą§ ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ ą¦Øą¦¹ą§ ą„¤" + +#: ../backend/comics/comics-document.c:225 +#, c-format +msgid "Failed to create a temporary directory." +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦Ŗą¦ą§ą¦ą¦æą¦ą¦¾ ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤" + +#: ../backend/comics/comics-document.c:347 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¦ą¦ą¦¾ ą¦ą¦®ą¦æą¦ ą¦ą¦æą¦¤ą¦¾ą¦Ŗą§° MIME ą¦§ą§°ą¦£ ą¦Øą¦¹ą§: %s" + +#: ../backend/comics/comics-document.c:354 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¦ą¦ ą¦Ŗą§ą§°ą¦ą§ą¦¤ą¦æą§° ą¦ą¦®ą¦æą¦ ą¦¬ą¦¹ą¦æ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą§°ą§ą¦ ą¦ą§°ą¦¾ą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦Æą¦„ą¦¾ą¦Æą¦¤ ą¦ą¦¦ą§ą¦¶ ą¦Ŗą§ą§±ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą§" + +#: ../backend/comics/comics-document.c:385 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¦ ą¦ą§ą¦ą¦¾ą¦¤ MIME'ą§° ą¦§ą§°ą¦Ø" + +#: ../backend/comics/comics-document.c:412 +#| msgid "File corrupted." +msgid "File corrupted" +msgstr "ą¦ą§ą¦·ą¦¤ą¦æą¦ą§ą§°ą¦øą§ą¦¤ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/comics/comics-document.c:424 +#| msgid "No files in archive." +msgid "No files in archive" +msgstr "ą¦ą§°ą§ą¦ą¦¾ą¦ą¦ ą¦ą§ą¦Øą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą¦¾ą¦" + +#: ../backend/comics/comics-document.c:465 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą¦ą§°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦ą§ą¦Øą§ ą¦ą¦¬ą¦æ ą¦Ŗą§ą§±ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą§" + +#: ../backend/comics/comics-document.c:704 +#, c-format +#| msgid "There was an error displaying help" +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą¦ą¦ą¦¤ą§°ą¦¾ą¦¬ą¦²ą§ ą¦øą¦®ą¦øą§ą¦Æą¦¾ ą„¤" + +#: ../backend/comics/comics-document.c:854 +#, c-format +msgid "Error %s" +msgstr "ą¦¤ą§ą§°ą§ą¦ą¦æ: %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¦ą¦®ą¦æą¦-ą¦¬ą¦" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦ ą¦æą¦ ą¦Øą¦¹ą§" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "ą¦¹ą¦²ą§ ą¦ą¦ ą¦øą§°ą§ą¦¬ą¦®ą§ą¦." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../backend/dvi/dvi-document.c:108 +msgid "DVI document has incorrect format" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦ ą¦æą¦ ą¦Øą¦¹ą§" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:826 +msgid "Yes" +msgstr "ą¦¹ą§" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:829 +msgid "No" +msgstr "ą¦Øą¦¹ą§" + +#: ../backend/pdf/ev-poppler.cc:903 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "Unknown font type" +msgstr "ą¦«ą¦Øą§ą¦ą§° ą¦§ą§°ą¦Ø ą¦ ą¦ą§ą¦ą¦¾ą¦¤" + +#: ../backend/pdf/ev-poppler.cc:943 +msgid "No name" +msgstr "ą¦Øą¦¾ą¦®ą¦¬ą¦æą¦¹ą§ą¦Ø" + +#: ../backend/pdf/ev-poppler.cc:951 +msgid "Embedded subset" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą§°ą¦¾ ą¦øą¦¾ą¦¬-ą¦øą§ą¦" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą§°ą¦¾" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Not embedded" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą§°ą¦¾ ą¦Øą¦¹ą§" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "Invalid document" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ą¦øą§ą¦²ą¦¾ą¦ą¦”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¦ą§ą¦Øą§ ą¦¤ą§ą§°ą§ą¦ą¦æ ą¦Øą¦¾ą¦" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Not enough memory" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "Cannot find zip signature" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¦ ą¦ą§ą¦ą¦¾ą¦¤ ą¦øą¦®ą¦øą§ą¦Æą¦¾" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Failed to save document ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¦øą¦ą§ą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ą¦§ą§°ą¦Øą§° ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦øą¦®ą§°ą§ą¦„ą¦æą¦¤ ą¦Øą¦¹ą§" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¦øą¦ą¦²ą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¦øą§°ą§ą¦¬ą¦§ą§°ą¦Øą§° ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¦¬ą§ą¦§ .desktop ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦Øą¦¹ą§ " + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°ą§° ą¦ ą¦ą§ą¦ą¦¾ą¦¤ ą¦øą¦ą¦øą§ą¦ą§°ą¦£ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¦ą§°ą¦®ą§ą¦ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¦ą¦ ą¦ ą¦Øą§ą¦Ŗą§ą§°ą§ą§ą¦ą§° ą¦¦ą§ą¦¬ą¦¾ą§°ą¦¾ ą¦ą¦¦ą§ą¦¶ ą¦¶ą¦¾ą§°ą§ą§° ą¦®ą¦¾ą¦§ą§ą¦Æą¦®ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦ą§ą§°ą¦¹ą¦£ ą¦ą§°ą¦¾ ą¦Øą¦¹ą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¦Ŗą§ą§°ą¦¾ą§°ą¦®ą§ą¦ą¦ą¦¾ą¦²ą§° ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ ą¦Ŗą§°ą¦æą¦ą¦æą¦¤ ą¦Øą¦¹ą§ : %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦Øą¦æą¦¬ą§ą¦¶ą¦²ą§ ą¦Øą¦„ą¦æą§° URI ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą§°ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą¦¬" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¦Ŗą§ą§°ą¦¾ą§°ą¦®ą§ą¦ ą¦ą§°ą¦¾ą§° ą¦Æą§ą¦ą§ą¦Æ ą¦¬ą¦øą§ą¦¤ą§ ą¦Øą¦¹ą§ " + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą¦ ą¦§ą¦æą¦¬ą§ą¦¶ą¦Ø ą¦Ŗą§°ą¦æą¦ą¦¾ą¦²ą¦Ø ą¦¬ą§ą¦Æą§±ą¦øą§ą¦„ą¦¾ą§° ą¦øą§ą¦¤ą§ ą¦øą¦ą¦Æą§ą¦ ą¦¬ą¦æą¦ą§ą¦ą¦æą¦Øą§ą¦Ø ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą¦øą¦ą§°ą¦ą§ą¦·ą¦æą¦¤ ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦¹ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦ą§°ą¦" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:46 +#: ../previewer/ev-previewer.c:47 +msgid "FILE" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą¦ ą¦§ą¦æą¦¬ą§ą¦¶ą¦Ø ą¦Ŗą§°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ą§° ID ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą§°ą¦" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą¦ ą¦§ą¦æą¦¬ą§ą¦¶ą¦Ø ą¦Ŗą§°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ ą¦øą¦ą¦ą§ą§°ą¦¾ą¦Øą§ą¦¤ ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¦ ą¦§ą¦æą¦¬ą§ą¦¶ą¦Ø ą¦Ŗą§°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ ą¦øą¦ą¦ą§ą§°ą¦¾ą¦Øą§ą¦¤ ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Show ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą§°ą§ ą¦øą§ą¦„ą¦¾ą¦Øą¦¾ą¦Øą§ą¦¤ą§° ą¦ą§°ą¦ (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ą¦ą§ ą¦ą§ą¦²ą¦¬ą¦¾ą§°-ą¦ ą¦øą§ą¦„ą¦¾ą¦Øą¦¾ą¦Øą§ą¦¤ą§° ą¦ą§°ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą§°ą§° ą¦Ŗą§°ą¦¾ ą¦ ą¦Ŗą¦øą¦¾ą§°ą¦£ ą¦ą§°ą¦ (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ą¦ą§ ą¦ą§ą¦²ą¦¬ą¦¾ą§°ą§° ą¦Ŗą§°ą¦¾ ą¦ ą¦Ŗą¦øą¦¾ą§°ą¦£ ą¦ą§°ą§" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą§° ą¦ą¦ą¦¤ą§°ą¦¾ą¦ą¦ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦ą§ą¦²ą¦¬ą¦¾ą§° ą¦ ą¦Ŗą¦øą¦¾ą§°ą¦£ ą¦ą§°ą§" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¦¬ą¦æą¦ą¦¾ą¦ą¦" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "ą¦ą¦²ą¦®ą¦¾ą¦Ø" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5227 +msgid "Best Fit" +msgstr "ą¦øą§°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦® ą¦®ą¦¾ą¦Ŗ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§° ą¦Ŗą§ą§°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦®ą¦¾ą¦Ŗ ą¦Øą¦æą§°ą§ą¦§ą¦¾ą§°ą¦£" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą§ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą§§ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą§§ą§Øą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą§§ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą§§ą§ą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą§Øą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą§©ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą§Ŗą§¦ą§¦%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4149 +#: ../shell/ev-window-title.c:150 ../shell/main.c:484 +#, c-format +msgid "Document Viewer" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą§±ą¦øą§ą¦„ą¦¾" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦¬ą¦æą¦¶ą¦æą¦·ą§ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¦ą§ą¦ą§ą¦Ø" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦ą§ą¦·ą§ą¦¤ą§ą§° ą¦§ą¦¾ą§°ą§ą¦Æ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾ ą¦ ą¦ą§ą§°ą¦¾ą¦¹ą§ą¦Æ ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦ą§ą¦·ą§ą¦¤ą§ą§° ą¦§ą¦¾ą§°ą§ą¦Æ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾ ą¦Æą§ą¦®ą¦Ø ą¦ą¦Ŗą¦æ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦øą¦ą¦ą§ą§°ą¦¾ą¦Øą§ą¦¤, ą¦ ą¦ą§ą§°ą¦¾ą¦¹ą§ą¦Æ ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ą„¤" + +#: ../previewer/ev-previewer.c:45 +msgid "Delete the temporary file" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦ą¦ą¦¤ą§°ą¦¾ą¦ą¦" + +#: ../previewer/ev-previewer.c:46 +msgid "Print settings file" +msgstr "ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą§° ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ ą¦øą¦®ą§ą¦¬ą¦²ą¦æą¦¤ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../previewer/ev-previewer.c:141 ../previewer/ev-previewer.c:175 +#| msgid "MATE Document Viewer" +msgid "MATE Document Previewer" +msgstr "MATE Document Previewer" + +#: ../previewer/ev-previewer-window.c:122 ../shell/ev-window.c:2891 +msgid "Failed to print document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../previewer/ev-previewer-window.c:242 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą¦¾ą§° '%s' ą¦Ŗą§ą§±ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą§" + +#. Go menu +#: ../previewer/ev-previewer-window.c:286 ../shell/ev-window.c:4986 +msgid "_Previous Page" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_P)" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:4987 +msgid "Go to the previous page" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦" + +#: ../previewer/ev-previewer-window.c:289 ../shell/ev-window.c:4989 +msgid "_Next Page" +msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_N" + +#: ../previewer/ev-previewer-window.c:290 ../shell/ev-window.c:4990 +msgid "Go to the next page" +msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:293 ../shell/ev-window.c:4973 +msgid "Enlarge the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:296 ../shell/ev-window.c:4976 +msgid "Shrink the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦®ą¦¾ą¦Ŗ ą¦¹ą§ą§°ą¦¾ą¦ø ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:299 ../shell/ev-print-operation.c:1294 +msgid "Print" +msgstr "ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:300 ../shell/ev-window.c:4945 +msgid "Print this document" +msgstr "ą¦ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:306 ../shell/ev-window.c:5084 +msgid "_Best Fit" +msgstr "ą¦øą§°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦® ą¦®ą¦¾ą¦Ŗ (_B)" + +#: ../previewer/ev-previewer-window.c:307 ../shell/ev-window.c:5085 +msgid "Make the current document fill the window" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦ą¦ą¦Øą§ą¦”ą§ą¦¤ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦ą¦Øą§ą¦Æ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:309 ../shell/ev-window.c:5087 +msgid "Fit Page _Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§° ą¦Ŗą§ą§°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦®ą¦¾ą¦Ŗ ą¦Øą¦æą§°ą§ą¦§ą¦¾ą§°ą¦£ (_W)" + +#: ../previewer/ev-previewer-window.c:310 ../shell/ev-window.c:5088 +msgid "Make the current document fill the window width" +msgstr "ą¦ą¦ą¦Øą§ą¦”ą§ą§° ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦Ŗą§ą§°ą¦øą§ą¦„ą§ą§° ą¦®ą¦¾ą¦Ŗ ą¦ ą¦Øą§ą¦øą¦¾ą§°ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦ą¦Øą§ą¦Æ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą§°ą¦" + +#: ../previewer/ev-previewer-window.c:441 ../shell/ev-window.c:5151 +msgid "Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾" + +#: ../previewer/ev-previewer-window.c:442 ../shell/ev-window.c:5152 +msgid "Select Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą§°ą¦" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "ą¦¶ą¦æą§°ą§ą¦Øą¦¾ą¦®:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "ą¦øą§ą¦„ą¦¾ą¦Ø:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "ą¦¬ą¦æą¦·ą§:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "ą¦²ą§ą¦ą¦:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "<b>ą¦ ą¦ą¦æą¦¬ą§ą¦Æą¦ą§ą¦¤:</b>" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "<b>ą¦Ŗą§ą§°ą¦ą¦¾ą¦¶ą¦:</b>" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "<b>ą¦Ŗą§ą§°ą¦øą§ą¦¤ą§ą¦¤ą¦ą¦¾ą§°ą¦:</b>" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "ą¦Øą¦æą¦®ą¦¾ą§°ą§ą¦£ą§° ą¦øą¦®ą§ą¦ą¦¾ą¦²:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "ą¦Ŗą§°ą¦æą¦¬ą§°ą§ą¦¤ą¦Øą§° ą¦øą¦®ą§:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "<b>ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦ą¦ą§ą¦Æą¦¾:</b>" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "<b>ą¦øą§°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦®:</b>" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "ą¦ą¦ą§ą¦¤ą¦æ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "ą¦øą§ą§°ą¦ą§ą¦·ą¦¾:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "<b> ą¦ą¦¾ą¦ą¦ ą¦®ą¦¾ą¦Ŗ</b>" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "ą¦¶ą§ą¦£ą§ą¦Æ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "ą¦”ą¦æą¦«ą¦²ą§ą¦" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portrait (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Landscape (%s)" + +#: ../libmisc/ev-page-action.c:72 +#, c-format +msgid "(%d of %d)" +msgstr "(%d, ą¦øą§°ą§ą¦¬ą¦®ą§ą¦ %d)" + +#: ../libmisc/ev-page-action.c:74 +#, c-format +msgid "of %d" +msgstr "ą¦øą§°ą§ą¦¬ą¦®ą§ą¦ %d" + +#: ../libview/ev-jobs.c:958 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Failed to create file ā%sā: %s" + +#: ../libview/ev-jobs.c:1435 +#, c-format +#| msgid "Failed to print document" +msgid "Failed to print page %d: %s" +msgstr "%d ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¦ą¦Ŗą§°ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¦Øą§ą¦ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§ą¦·ą§ą¦¤ą§ą§°ą§ą§° ą¦ą¦Ŗą§°ą§ą§° ą¦ ą¦ą¦¶ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§ą¦·ą§ą¦¤ą§ą§°ą§ą§° ą¦Øą§ą¦ą§ą§° ą¦ ą¦ą¦¶ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ ą¦Øą§ą¦øą¦¾ą§°ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø" + +#: ../libview/ev-view.c:1466 +msgid "Go to first page" +msgstr "ą¦Ŗą§ą§°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1468 +msgid "Go to previous page" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1470 +msgid "Go to next page" +msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦" + +#: ../libview/ev-view.c:1472 +msgid "Go to last page" +msgstr "ą¦øą§°ą§ą¦¬ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1474 +msgid "Go to page" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1476 +msgid "Find" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1504 +#, c-format +msgid "Go to page %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %s'ą¦ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1510 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s'ą¦ ą¦ą¦²ą§ą¦Ø, ā%sā'ą¦¤" + +#: ../libview/ev-view.c:1513 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§°ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1521 +#, c-format +msgid "Launch %s" +msgstr "%s ą¦ą§°ą¦®ą§ą¦ ą¦ą§°ą¦" + +#: ../libview/ev-view.c:2783 +msgid "End of presentation. Press Escape to exit." +msgstr "ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æ ą¦øą§°ą§ą¦¬ą¦®ą§ą¦." + +#: ../libview/ev-view.c:3722 +msgid "Jump to page:" +msgstr "Jump to page:" + +#: ../libview/ev-view.c:4004 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "ą¦²ą§ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "ą¦¹ą§°ą¦«ą§ą§° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦®ą§ą¦Ŗą§°ą§ą¦ą§ ą¦øą¦ą§ą¦¤ą¦Ø" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "ą¦®ą¦¾ą¦Ø TRUE (ą¦øą¦¤ą§ą¦Æ) ą¦¹ą¦²ą§ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§° ą¦øą¦®ą§ ą¦¹ą§°ą¦«ą§ą§° ą¦ą¦¾ą¦ą¦¦ ą¦ą¦£ą§ą¦Æ ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "ą¦ą¦ą§ą¦ą§ą¦¬ą¦²ą§ą¦Æą§ą§° ą§°ą¦" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "ą¦øą¦¬ ą¦®ą¦æą¦² ą¦ą¦ą§ą¦ą§ą¦¬ą¦² ą¦ą§°ą§ ą¦¦ą§°ą§ą¦¶ą¦¾ą¦Øą§ą§° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą§±ą¦¹ą§ą¦¤ ą§°ą¦" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "ą¦¬ą§°ą§ą¦¤ą¦®ą¦¾ą¦Øą§° ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą§°ą¦" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "ą¦¬ą§°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦®ą¦æą¦² ą¦ą¦ą§ą¦ą§ą¦¬ą¦² ą¦ą§°ą§ ą¦¦ą§°ą§ą¦¶ą¦¾ą¦Øą§ą§° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą§±ą¦¹ą§ą¦¤ ą§°ą¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:4962 +msgid "Find Pre_vious" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą§°ą¦ (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¦¶ą¦¬ą§ą¦¦ ą¦¬ą¦¾ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æą§° ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą§°ą¦" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:4960 +msgid "Find Ne_xt" +msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą§°ą¦ (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æą§° ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą§°ą¦" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¦¹ą§°ą¦«ą§ą§° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦®ą§ą¦Ŗą§°ą§ą¦ą§ ą¦øą¦ą§ą¦¤ą¦Ø (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§° ą¦øą¦®ą§ ą¦¹ą§°ą¦«ą§ą§° ą¦ą¦¾ą¦ą¦¦ ą¦ą¦£ą§ą¦Æ ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ø'ą¦¹'ą¦¬" + +#: ../shell/ev-application.c:309 +#| msgid "Reload the document" +msgid "Recover previous documents?" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦Ŗą§ą¦Øą§°ą§ą¦¦ą§ą¦§ą¦¾ą§° ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ą¦Øą§ą¦ą¦æ ?" + +#: ../shell/ev-application.c:312 +msgid "" +"Evince appears to have exited unexpectedly the last time it was run. You can " +"recover the opened documents." +msgstr "" +"ą¦øą§°ą§ą¦¬ą¦¶ą§ą¦· Evince ą¦øą¦ą§ą¦ą¦¾ą¦²ą¦Øą¦¾ą§° ą¦øą¦®ą§ ą¦øą¦®ą§ą¦ą¦¬ą¦¤ ą¦ą¦ą¦æ ą¦ ą¦Ŗą§ą§°ą¦¤ą§ą¦Æą¦¾ą¦¶ą¦æą¦¤ą¦ą¦¾ą¦¬ą§ ą¦¬ą¦Øą§ą¦§ ą¦¹ą§ą¦ą¦æą¦² ą¦ą§°ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦æą¦¤ " +"ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦øą¦®ą§ą¦¹ ą¦Ŗą§ą¦Øą§°ą§ą¦¦ą§ą¦§ą¦¾ą§° ą¦ą§°ą¦¾ ą¦Æą¦¾ą¦¬ ą„¤" + +#: ../shell/ev-application.c:316 +msgid "_Don't Recover" +msgstr "ą¦Ŗą§ą¦Øą§°ą§ą¦¦ą§ą¦§ą¦¾ą§° ą¦ą§°ą¦¾ ą¦Ø'ą¦¹'ą¦¬ (_D)" + +#: ../shell/ev-application.c:319 +msgid "_Recover" +msgstr "ą¦ą¦¦ą§ą¦§ą¦¾ą§° ą¦ą§°ą¦(_R)" + +#: ../shell/ev-application.c:322 +msgid "Crash Recovery" +msgstr "ą¦¬ą¦æą¦Ŗą§°ą§ą¦Æą§ą§° ą¦Ŗą§°ą¦¾ ą¦Ŗą§ą¦Øą§°ą§ą¦¦ą§ą¦§ą¦¾ą§°" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¬ą§°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦²ą¦ ą¦ą§°ą¦¾ ą¦ą¦ą§ ą¦ ą¦ ą¦ą¦² ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą§°ą¦¾ ą¦¹ą¦²ą§ ą¦øą§ą¦ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ą„¤" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦®ą§ą¦ą§ą¦¤ ą¦ą§°ą¦¾ ą¦¹'ą¦¬(_U)" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦²ą¦æą¦ą§ą¦Ø" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦Ŗą§ą§°ą§ą§ą¦ą¦Ø" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¬ą§°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦²ą¦ ą¦ą§°ą¦¾ ą¦ą¦ą§ ą¦ ą¦®ą§ą¦ą§ą¦¤ ą¦ą§°ą¦¾ą§° ą¦ą¦Øą§ą¦Æ ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą§°ą¦¾ ą¦ą¦¬ą¦¶ą§ą¦Æą¦ ą„¤" + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦: (_P)" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦¤ą§ą¦ą§ą¦·ą¦Øą¦¾ą§ ą¦ą¦ą¦¤ą§°ą§ą§±ą¦¾ ą¦¹'ą¦¬ (_i)" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "ą¦¬ą¦¾ą¦¹ą¦æą§° ą¦¹ą§ą§±ą¦¾ ą¦²ą§ą¦ą§ ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦®ą¦Øą¦¤ ą§°ą¦¾ą¦ą¦æą¦¬ (_l)" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦øą§ą¦„ą¦¾ą§ą§ą§°ą§ą¦Ŗą§ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ( _f)" + +#. Initial state +#: ../shell/ev-print-operation.c:316 +msgid "Preparing to print ..." +msgstr "ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æą§° ą¦Ŗą§ą§°ą¦øą§ą¦¤ą§ą¦¤ą¦æ..." + +#: ../shell/ev-print-operation.c:318 +msgid "Finishing..." +msgstr "ą¦¶ą§ą¦· ą¦ą§°ą¦æ ą¦ą¦ą§ (_F)..." + +#: ../shell/ev-print-operation.c:320 +#, c-format +msgid "Printing page %d of %d..." +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %d, %d ą§° ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§..." + +#: ../shell/ev-print-operation.c:1143 +msgid "Printing is not supported on this printer." +msgstr "ą¦ą¦ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą¦¾ą§°ą§ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦¾ ą¦øą¦®ą§ą¦ą¦¬ ą¦Øą¦¹ą§ ą„¤" + +#: ../shell/ev-print-operation.c:1208 +#| msgid "Invalid zip file" +msgid "Invalid page selection" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦¬ą§ą¦§ ą¦Øą¦¹ą§" + +#: ../shell/ev-print-operation.c:1209 +msgid "Warning" +msgstr "ą¦øą¦¤ą§°ą§ą¦ą¦¬ą¦¾ą§°ą§ą¦¤ą¦¾" + +#: ../shell/ev-print-operation.c:1211 +msgid "Your print range selection does not include any page" +msgstr "ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦Ŗą§ą¦Øą¦¾ą§° ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§° ą¦øą§ą¦®ą¦¾ą¦¤ ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą¦¾ą¦" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æą¦¾ą¦¬ą¦²ą§" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "ą¦øą¦¾ą¦§ą¦¾ą§°ą¦£" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "ą¦«ą¦Øą§ą¦" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¦«ą¦Øą§ą¦" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą¦«ą¦Øą§ą¦ ą¦øą¦ą¦ą§ą§°ą¦¾ą¦Øą§ą¦¤ ą¦¤ą¦„ą§ą¦Æ ą¦øą¦ą¦ą§ą§°ą¦¹ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "ą¦øą§ą¦¤ą§°ą¦¬ą§ą§° " + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "ą¦øą§ą¦ą¦æą¦Ŗą¦¤ą§ą§°" + +#: ../shell/ev-sidebar-thumbnails.c:756 +msgid "Thumbnails" +msgstr "ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦²" + +#: ../shell/ev-window.c:829 +#, c-format +msgid "Page %s - %s" +msgstr "Page %s - %s" + +#: ../shell/ev-window.c:831 +#, c-format +msgid "Page %s" +msgstr "Page %s" + +#: ../shell/ev-window.c:1256 +msgid "The document contains no pages" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦¤ ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą¦¾ą¦" + +#: ../shell/ev-window.c:1259 +#| msgid "The document contains no pages" +msgid "The document contains only empty pages" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦¤ ą¦ ą¦ą¦² ą§°ą¦æą¦ą§ą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦ą¦ą§" + +#: ../shell/ev-window.c:1488 ../shell/ev-window.c:1647 +msgid "Unable to open document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../shell/ev-window.c:1618 +#, c-format +#| msgid "Loading document from %s" +msgid "Loading document from ā%sā" +msgstr "ā%sāą§° ą¦Ŗą§°ą¦¾ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../shell/ev-window.c:1756 ../shell/ev-window.c:1939 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¦Øą¦„ą¦æ ą¦”ą¦¾ą¦ą¦Øą§āą¦²ą§ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:1886 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ą§° ą¦Ŗą§°ą¦¾ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą§°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą§°ą¦" + +#: ../shell/ev-window.c:1918 +msgid "Failed to reload document." +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../shell/ev-window.c:2071 +msgid "Open Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:2150 +#, c-format +#| msgid "Couldn't create symlink ā%sā: %s" +msgid "Couldn't create symlink ā%sā: " +msgstr "ā%sā ą¦ą¦æą¦®-ą¦²ą¦æą¦ą¦ ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ ą¦ą§°ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą§: " + +#: ../shell/ev-window.c:2177 +msgid "Cannot open a copy." +msgstr "Cannot open a copy." + +#: ../shell/ev-window.c:2413 +#, c-format +msgid "Saving document to %s" +msgstr "%s ą¦²ą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą§°ą¦ą§ą¦·ą¦¾ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../shell/ev-window.c:2416 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ą¦²ą§ ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦" + +#: ../shell/ev-window.c:2419 +#, c-format +msgid "Saving image to %s" +msgstr "%s ą¦²ą§ ą¦ą¦®ą§ą¦ ą§°ą¦ą§ą¦·ą¦¾ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../shell/ev-window.c:2463 ../shell/ev-window.c:2560 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sāą§°ą§ą¦Ŗą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤" + +#: ../shell/ev-window.c:2491 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¦Øą¦„ą¦æ ą¦ą¦Ŗ-ą¦²'ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2495 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¦øą¦ą¦²ą¦ą§ą¦Ø ą¦Øą¦„ą¦æ ą¦ą¦Ŗ-ą¦²'ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2499 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¦ą¦¬ą¦æ ą¦ą¦Ŗ-ą¦²'ą¦” ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2621 +msgid "Save a Copy" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą§°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦" + +#: ../shell/ev-window.c:2835 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ą§°ą¦ą¦æ ą¦„ą¦ą¦¾ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦¶ą¦¾ą§°ą§ą¦¤ ą¦ą¦ą§" +msgstr[1] "%d ą§°ą¦ą¦æ ą¦„ą¦ą¦¾ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦¶ą¦¾ą§°ą§ą¦¤ ą¦ą¦ą§" + +#: ../shell/ev-window.c:2948 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../shell/ev-window.c:3155 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦¾ą§° ą¦ą¦ą¦¤ą§ ā%sā ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦¶ą§ą¦· ą¦¹ą§ą§±ą¦¾ą¦²ą§ ą§°ą¦ą¦ ?" + +#: ../shell/ev-window.c:3158 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ą¦ą¦¤ą¦æą§ą¦¾ %d ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦øą¦ą§ą§°ą¦æą§ ą„¤ ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦¾ą§° ą¦ą¦ą¦¤ą§ ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦¶ą§ą¦· ą¦¹ą§ą§±ą¦¾ą¦²ą§ ą§°ą¦ą¦ ?" + +#: ../shell/ev-window.c:3170 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¦ą¦ ą¦øą¦ą¦Æą§ą¦ą¦ą§ą¦·ą§ą¦¤ą§ą§° ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦æą¦²ą§, ą§°ą¦ą¦æ ą¦„ą¦ą¦¾ ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą¦¾ą§°ą§ą¦Æą§ą¦Æ ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦ą§°ą¦¾ ą¦Ø'ą¦¹'ą¦¬ ą„¤ " + +#: ../shell/ev-window.c:3174 +msgid "Cancel _print and Close" +msgstr "ą¦®ą§ą¦¦ą§ą§°ą¦£ ą¦¬ą¦¾ą¦¤ą¦æą¦² ą¦ą§°ą¦ ą¦ą§°ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦ (_p)" + +#: ../shell/ev-window.c:3178 +msgid "Close _after Printing" +msgstr "ą¦®ą§ą¦¦ą§ą§°ą¦£ą§° ą¦Ŗą¦æą¦ą¦¤ ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦ (_a)" + +#: ../shell/ev-window.c:3784 +msgid "Toolbar Editor" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą§° ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦" + +#: ../shell/ev-window.c:3915 +msgid "There was an error displaying help" +msgstr "ą¦øą¦¹ą¦¾ą§ą¦æą¦ą¦¾ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą¦¤ ą¦øą¦®ą¦øą§ą¦Æą¦¾" + +#: ../shell/ev-window.c:4145 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Document Viewer.\n" +"Using poppler %s (%s)" + +#: ../shell/ev-window.c:4174 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ą¦ą¦ą¦ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦øą¦«ą§ą¦ą¦ą§ą§ą¦Æą¦¾ą§°; Free Software Foundation ą¦¦ą§ą¦¬ą¦¾ą§°ą¦¾ ą¦Ŗą§ą§°ą¦ą¦¾ą¦¶ą¦æą¦¤ GNU General " +"Public License'ą§° ą¦¶ą§°ą§ą¦¤ą¦¾ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦ą¦ą¦æ ą¦¬ą¦æą¦¤ą§°ą¦£ ą¦ ą¦Ŗą§°ą¦æą¦¬ą§°ą§ą¦¤ą¦Ø ą¦ą§°ą¦¾ ą¦Æą¦¾ą¦¬; ą¦²ą¦¾ą¦ą¦Øą¦øą§ą¦Øą§ą¦øą§ą§° ą¦øą¦ą¦øą§ą¦ą§°ą¦£ ą§Ø " +"ą¦ ą¦„ą¦¬ą¦¾ (ą¦ą¦Ŗą§ą¦Øą¦¾ą§° ą¦øą§ą¦¬ą¦æą¦§ą¦¾ą¦Øą§ą¦Æą¦¾ą§ą§) ą¦ą§°ą§ą¦§ą§ą¦¬ą¦¤ą¦Ø ą¦ą§ą¦Øą§ ą¦øą¦ą¦øą§ą¦ą§°ą¦£ą§ą§° ą¦ ą¦§ą§ą¦Ø ą„¤\n" + +#: ../shell/ev-window.c:4178 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ą¦¬ą¦æą¦¤ą§°ą¦£ ą¦ą§°ą¦¾ą§° ą¦®ą§ą¦² ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æ ą¦Æą§ ą¦¬ą§ą¦Æą§±ą¦¹ą¦¾ą§°ą¦ą§°ą§ą¦¤ą¦¾ą§°ą¦¾ ą¦ą§° ą¦¦ą§ą¦¬ą¦¾ą§°ą¦¾ ą¦ą¦Ŗą¦ą§ą¦¤ ą¦¹'ą¦¬ą¦Ø, ą¦ą¦æą¦Øą§ą¦¤ą§ ą¦ą¦ą¦æą§° " +"ą¦ą¦Øą§ą¦Æ ą¦ą§ą¦Øą§ ą¦øą§ą¦øą§ą¦Ŗą¦·ą§ą¦ ą§±ą§°ą§ą¦Øą§ą¦ą¦æ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą¦¾ą¦; ą¦¬ą¦¾ą¦£ą¦æą¦ą§ą¦Æą¦æą¦ ą¦ ą¦ą§ą¦Øą§ ą¦øą§ą¦Øą¦æą§°ą§ą¦¦ą¦æą¦·ą§ą¦ ą¦ą§°ą§ą¦® ą¦øą¦¾ą¦§ą¦Øą§° ą¦ą¦Øą§ą¦Æ " +"ą¦ ą¦Øą§ą¦¤ą§°ą§ą¦Øą¦æą¦¹ą§ą¦¤ ą§±ą§°ą§ą¦Øą§ą¦ą¦æą¦ ą¦ ą¦Øą§ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą„¤ ą¦ ą¦§ą¦æą¦ ą¦ą¦¾ą¦Øą¦¤ą§ GNU General Public License ą¦Ŗą§ą§ą¦Ø ą„¤\n" + +#: ../shell/ev-window.c:4182 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Evince'ą§° ą¦øą¦¾ą¦„ą§ GNU General Public License'ą§° ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą§°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦ą¦Ŗą¦²ą¦¬ą§ą¦§ ą¦¹ą§± ą¦ą¦ą¦æą¦¤; ą¦Øą¦¾ " +"ą¦„ą¦¾ą¦ą¦²ą§ ą¦Øą¦æą¦®ą§ą¦Øą¦²ą¦æą¦ą¦æą¦¤ ą¦ ą¦æą¦ą¦¾ą¦Øą¦¾ą§ ą¦²ą¦æą¦ą§ ą¦¤ą¦¾ ą¦øą¦ą¦ą§ą§°ą¦¹ ą¦ą§°ą¦ Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:4206 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4209 +#| msgid "Ā© 1996-2007 The Evince authors" +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4215 +msgid "translator-credits" +msgstr "ą¦ ą¦®ą¦æą¦¤ą¦¾ą¦ą§ą¦· ą¦«ą§ą¦ą¦Ø (aphukan@fedoraproject.org)" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4433 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ %d-ą¦ą¦æ ą¦®ą¦æą¦² ą¦øą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" +msgstr[1] "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ %d-ą¦ą¦æ ą¦®ą¦æą¦² ą¦øą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą§°ą¦¾ ą¦¹ą§ą¦ą§" + +#: ../shell/ev-window.c:4441 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ ą¦¬ą¦¶ą¦æą¦·ą§ą¦ ą¦ą¦ą§" + +#: ../shell/ev-window.c:4925 +msgid "_File" +msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° (_F)" + +#: ../shell/ev-window.c:4926 +msgid "_Edit" +msgstr "ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦Øą¦¾ (_E)" + +#: ../shell/ev-window.c:4927 +msgid "_View" +msgstr "ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø (_V)" + +#: ../shell/ev-window.c:4928 +msgid "_Go" +msgstr "ą¦ą¦Øą§ą¦¤ą¦¬ą§ą¦Æ (_G)" + +#: ../shell/ev-window.c:4929 +msgid "_Help" +msgstr "ą¦øą¦¾ą¦¹ą¦¾ą¦Æą§ą¦Æ (_H)" + +#. File menu +#: ../shell/ev-window.c:4932 ../shell/ev-window.c:5110 +#: ../shell/ev-window.c:5189 +msgid "_Open..." +msgstr "ą¦ą§ą¦²ą§ą¦Ø(_O)..." + +#: ../shell/ev-window.c:4933 ../shell/ev-window.c:5190 +msgid "Open an existing document" +msgstr "ą¦ą§ą¦Øą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:4935 +msgid "Op_en a Copy" +msgstr "ą¦ą¦Ŗą¦æ ą¦ą§°ą¦" + +#: ../shell/ev-window.c:4936 +msgid "Open a copy of the current document in a new window" +msgstr "ą¦ą§ą¦²ą§ą¦Ø ą¦øą§°ą§ą¦¬ą¦®ą§ą¦" + +#: ../shell/ev-window.c:4938 ../shell/ev-window.c:5112 +msgid "_Save a Copy..." +msgstr "ą¦Ŗą§ą§°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦...(_S)" + +#: ../shell/ev-window.c:4939 +msgid "Save a copy of the current document" +msgstr "ą¦¬ą§°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą§°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦" + +#: ../shell/ev-window.c:4941 +#| msgid "Print Set_up..." +msgid "Page Set_up..." +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą§°ą§ą¦§ą¦¾ą§°ą¦£...(_u)" + +#: ../shell/ev-window.c:4942 +msgid "Setup the page settings for printing" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ ą¦ą¦²ą§ą¦²ą¦æą¦ą¦æą¦¤ ą¦øą¦®ą§ ą¦ ą¦¬ą¦§ą¦æ" + +#: ../shell/ev-window.c:4944 +msgid "_Print..." +msgstr "ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦ (_P)..." + +#: ../shell/ev-window.c:4947 +msgid "P_roperties" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ (_r)" + +#: ../shell/ev-window.c:4955 +msgid "Select _All" +msgstr "ą¦øą¦®ą¦øą§ą¦¤ ą¦Øą¦æą§°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą§°ą¦ (_A)" + +#: ../shell/ev-window.c:4957 +msgid "_Find..." +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø (_F)..." + +#: ../shell/ev-window.c:4958 +msgid "Find a word or phrase in the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦¤ ą¦ą¦ą¦ą¦æ ą¦¶ą¦¬ą§ą¦¦ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą§°ą¦" + +#: ../shell/ev-window.c:4964 +msgid "T_oolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą§°(_o)" + +#: ../shell/ev-window.c:4966 +msgid "Rotate _Left" +msgstr "ą¦¬ą¦¾ą¦ą¦¦ą¦æą¦ą§ ą¦ą§ą§°ą¦¾ą¦Øą§ ą¦¹'ą¦¬ (_L)" + +#: ../shell/ev-window.c:4968 +msgid "Rotate _Right" +msgstr "ą¦”ą¦¾ą¦Øą¦¦ą¦æą¦ą§ ą¦ą§ą§°ą¦¾ą¦Øą§ ą¦¹'ą¦¬ (_R)" + +#: ../shell/ev-window.c:4978 +msgid "_Reload" +msgstr "ą¦Ŗą§ą¦Øą§°ą¦¾ą§ ą¦²ą§ą¦” (_R)" + +#: ../shell/ev-window.c:4979 +msgid "Reload the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą§°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą§°ą¦" + +#: ../shell/ev-window.c:4982 +msgid "Auto_scroll" +msgstr "ą¦øą§ą¦¬ą§ą¦ą¦ą§ą§°ą¦æą§" + +#: ../shell/ev-window.c:4992 +msgid "_First Page" +msgstr "ą¦Ŗą§ą§°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_F)" + +#: ../shell/ev-window.c:4993 +msgid "Go to the first page" +msgstr "ą¦Ŗą§ą§°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦" + +#: ../shell/ev-window.c:4995 +msgid "_Last Page" +msgstr "ą¦øą§°ą§ą¦¬ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_L)" + +#: ../shell/ev-window.c:4996 +msgid "Go to the last page" +msgstr "ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦" + +#. Help menu +#: ../shell/ev-window.c:5000 +msgid "_Contents" +msgstr "ą¦¬ą¦æą¦·ą§ą¦¬ą¦øą§ą¦¤ą§ (_C)" + +#: ../shell/ev-window.c:5003 +msgid "_About" +msgstr "ą¦Ŗą§°ą¦æą¦ą¦æą¦¤ą¦æ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5007 +msgid "Leave Fullscreen" +msgstr "ą¦Ŗą§ą§°ą§ą¦£ą¦Ŗą§°ą§ą¦¦ą¦¾ ą¦®ą§ą¦” ą¦¤ą§ą¦Æą¦¾ą¦ ą¦ą§°ą§" + +#: ../shell/ev-window.c:5008 +msgid "Leave fullscreen mode" +msgstr "ą¦Ŗą§ą§°ą§ą¦£ą¦Ŗą§°ą§ą¦¦ą¦¾ ą¦®ą§ą¦”ą§° ą¦Ŗą§°ą¦¾ ą¦Ŗą§ą§°ą¦øą§ą¦„ą¦¾ą¦Ø ą¦ą§°ą§" + +#: ../shell/ev-window.c:5010 +msgid "Start Presentation" +msgstr "ą¦ą§°ą¦®ą§ą¦" + +#: ../shell/ev-window.c:5011 +msgid "Start a presentation" +msgstr "ą¦ą§°ą¦®ą§ą¦" + +#. View Menu +#: ../shell/ev-window.c:5066 +msgid "_Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą§°(_T)" + +#: ../shell/ev-window.c:5067 +msgid "Show or hide the toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą§° ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§°ą¦¾ ą¦¹ą§ą¦ ą¦¬ą¦¾ ą¦ą§ą¦ą¦æą§ą§ ą¦Øą§ą§± ą¦¹ą§ą¦" + +#: ../shell/ev-window.c:5069 +msgid "Side _Pane" +msgstr "ą¦Ŗą¦¾ą§°ą§ą¦¶ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦ą¦Ø (_P)" + +#: ../shell/ev-window.c:5070 +msgid "Show or hide the side pane" +msgstr "ą¦Ŗą¦¾ą§°ą§ą¦¶ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦Ŗą§ą¦ą¦Ø ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ ą¦„ą¦¬ą¦¾ ą¦ą§ą¦¾ą¦² ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../shell/ev-window.c:5072 +msgid "_Continuous" +msgstr "ą¦ ą¦Øą¦¬ą§°ą¦¤ (_C)" + +#: ../shell/ev-window.c:5073 +msgid "Show the entire document" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../shell/ev-window.c:5075 +msgid "_Dual" +msgstr "ą¦¦ą§ą¦¬ą§ą¦¤ (_D)" + +#: ../shell/ev-window.c:5076 +msgid "Show two pages at once" +msgstr "ą¦ą¦ą¦Æą§ą¦ą§ ą¦¦ą§ą¦ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦æą¦¤ ą¦¹'ą¦¬" + +#: ../shell/ev-window.c:5078 +msgid "_Fullscreen" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦Ŗą§°ą§ą¦¦ą¦¾ą¦ą§ą§ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø (_F)" + +#: ../shell/ev-window.c:5079 +msgid "Expand the window to fill the screen" +msgstr "ą¦Ŗą§°ą§ą¦¦ą¦¾ą§° ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦®ą¦¾ą¦Ŗ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦ą¦Øą§ą¦Æ ą¦ą¦ą¦Øą§ą¦”ą§ą§° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą§°ą¦" + +#: ../shell/ev-window.c:5081 +msgid "Pre_sentation" +msgstr "Pre_sentation" + +#: ../shell/ev-window.c:5082 +msgid "Run document as a presentation" +msgstr "ą¦Ŗą§ą§°ą§ą¦øą§ą¦Øą§ą¦ą§ą¦¶ą¦Ø ą§°ą§ą¦Ŗą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦æą¦¤ ą¦¹'ą¦¬" + +#. Links +#: ../shell/ev-window.c:5095 +msgid "_Open Link" +msgstr "ą¦²ą¦æą¦ą§ą¦ ą¦ą§ą¦²ą§ą¦Ø (_O)" + +#: ../shell/ev-window.c:5097 +msgid "_Go To" +msgstr "ą¦ą¦ą¦¾ą¦Øą§ ą¦Æą¦¾ą¦ (_G)" + +#: ../shell/ev-window.c:5099 +msgid "Open in New _Window" +msgstr "ą¦Øą¦¤ą§ą¦Ø ą¦ą¦ą¦Øą§ą¦”ą§ą¦¤ą§ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Ø ą¦ą§°ą§ (_W)" + +#: ../shell/ev-window.c:5101 +msgid "_Copy Link Address" +msgstr "ą¦²ą¦æą¦ą§ą¦ ą¦¦ą§ą¦¬ą¦¾ą§°ą¦¾ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦ ą¦¬ą¦øą§ą¦„ą¦¾ą¦Ø ą¦ą¦Ŗą¦æ ą¦ą§°ą¦ (_C)" + +#: ../shell/ev-window.c:5103 +msgid "_Save Image As..." +msgstr "ą¦Øą¦¤ą§ą¦Ø ą¦Øą¦¾ą¦®ą§ ą¦ą¦¬ą¦æ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦... (_S)" + +#: ../shell/ev-window.c:5105 +msgid "Copy _Image" +msgstr "ą¦ą¦Ŗą¦æ ą¦ą§°ą¦ ą¦ą¦æą¦¤ą§ą§°" + +#: ../shell/ev-window.c:5163 +msgid "Zoom" +msgstr "ą¦ą§ą¦®" + +#: ../shell/ev-window.c:5165 +msgid "Adjust the zoom level" +msgstr "ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦®ą¦¾ą¦¤ą§ą§°ą¦¾ ą¦Ŗą§°ą¦æą¦¬ą§°ą§ą¦¤ą¦Ø ą¦ą§°ą¦" + +#: ../shell/ev-window.c:5175 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:5177 +msgid "Back" +msgstr "ą¦Ŗą¦æą¦ą¦²ą§" + +#. translators: this is the history action +#: ../shell/ev-window.c:5180 +msgid "Move across visited pages" +msgstr "Move across visited pages" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5210 +msgid "Previous" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¾ą¦¬ą¦øą§ą¦„ą¦¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5215 +msgid "Next" +msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5219 +msgid "Zoom In" +msgstr "ą¦¬ą§ ą¦ą§°ą§ ą¦¦ą§ą¦ą¦¾ą¦Øą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5223 +msgid "Zoom Out" +msgstr "ą¦ą§ą¦ ą¦ą§°ą§ ą¦¦ą§ą¦ą¦¾ą¦Øą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5231 +msgid "Fit Width" +msgstr "ą¦Ŗą§ą§°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦Øą¦æą§°ą§ą¦§ą¦¾ą§°ą¦£" + +#: ../shell/ev-window.c:5398 ../shell/ev-window.c:5414 +msgid "Unable to launch external application." +msgstr "Unable to open external link" + +#: ../shell/ev-window.c:5453 +msgid "Unable to open external link" +msgstr "Unable to open external link" + +#: ../shell/ev-window.c:5618 +msgid "Couldn't find appropriate format to save image" +msgstr "Couldn't find appropriate format to save image" + +#: ../shell/ev-window.c:5657 +msgid "The image could not be saved." +msgstr "The image could not be saved." + +#: ../shell/ev-window.c:5689 +msgid "Save Image" +msgstr "ą¦ą¦¬ą¦æ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą§" + +#: ../shell/ev-window.c:5756 +msgid "Unable to open attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„" + +#: ../shell/ev-window.c:5807 +msgid "The attachment could not be saved." +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦æą¦¬ą¦²ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤" + +#: ../shell/ev-window.c:5852 +msgid "Save Attachment" +msgstr "ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦ ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§" + +#: ../shell/ev-window-title.c:163 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦ą¦¬ą¦¶ą§ą¦Æą¦" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "By extension" + +#: ../shell/main.c:73 ../shell/main.c:436 +msgid "MATE Document Viewer" +msgstr "MATE Document Viewer" + +#: ../shell/main.c:81 +msgid "The page of the document to display." +msgstr "ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦ą¦ą§ą¦Æą¦¾ ą„¤" + +#: ../shell/main.c:81 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą§°ą§ą¦£ ą¦Ŗą§°ą§ą¦¦ą¦¾ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹'ą¦¬" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą¦Ŗą§ą§°ą§ą¦øą§ą¦Øą§ą¦ą§ą¦¶ą¦Ø ą¦®ą§ą¦”ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹'ą¦¬" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą§°ą§ą¦Ŗ ą¦Ŗą§ą§°ą¦¦ą§°ą§ą¦¶ą¦Øą§° ą¦®ą§ą¦”ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹'ą¦¬" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "The word or phrase to find in the document" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¦¬ą§ą¦²ą¦æą§ą¦¾ą¦² ą¦®ą¦¾ą¦Ø ą¦Ŗą§ą§°ą¦Æą§ą¦ą§ą¦Æ, true (ą¦øą¦¤ą§ą¦Æ) ą¦¹ą¦²ą§ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦² ą¦øą¦ą§ą§°ą¦æą§ ą¦ą§°ą¦¾ ą¦¹'ą¦¬ ą¦ ą¦®ą¦¾ą¦Ø false (ą¦øą¦¤ą§ą¦Æ " +"ą¦Øą¦¹ą§) ą¦¹ą¦²ą§ ą¦Øą¦¤ą§ą¦Ø ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦² ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ ą¦¬ą¦Øą§ą¦§ ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦² ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ ą¦øą¦ą§ą§°ą¦æą§ ą¦ą§°ą¦¾ ą¦¹'ą¦¬" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą§±ą¦¹ą¦¾ą§°ą¦Æą§ą¦ą§ą¦Æ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦² ą¦ą¦¦ą§ą¦¶" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§°ą§° ą¦ą¦Øą§ą¦Æ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą¦¾ą¦ą¦² ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ą§ ą¦¬ą§ą¦Æą§±ą¦¹ą§ą¦¤ ą¦¬ą§ą¦§ ą¦ą¦¦ą§ą¦¶ ą¦ ą¦ą§°ą§ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą„¤ ą¦ ą¦§ą¦æą¦ ą¦ą¦¾ą¦Øą¦¤ą§ " +"caja thumbnailer ą¦øą¦ą¦ą§ą§°ą¦¾ą¦Øą§ą¦¤ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦Ŗą§ą§ą¦Ø ą„¤" + +#~ msgid "Co_nnect" +#~ msgstr "ą¦øą¦ą¦Æą§ą¦ ą¦ą§°ą¦ (_n)" + +#~ msgid "Connect _anonymously" +#~ msgstr "ą¦ ą¦ą§ą¦ą¦¾ą¦¤ ą§°ą§ą¦Ŗą§ ą¦øą¦ą¦Æą§ą¦ ą¦ą§°ą¦ (_a)" + +#~ msgid "Connect as u_ser:" +#~ msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦¬ą§ą¦Æą§±ą¦¹ą¦¾ą§°ą¦ą§°ą§ą¦¤ą¦¾ą§° ą¦Ŗą§°ą¦æą¦ą§ą§ ą¦øą¦ą¦Æą§ą¦ ą¦ą§°ą¦: (_s)" + +#~ msgid "_Username:" +#~ msgstr "ą¦¬ą§ą¦Æą§±ą¦¹ą¦¾ą§°ą¦ą§°ą§ą¦¤ą¦¾ą§° ą¦Øą¦¾ą¦® (_U):" + +#~ msgid "_Domain:" +#~ msgstr "ą¦”ą§ą¦®ą§ą¦ą¦Ø (_D):" + +#~ msgid "_Forget password immediately" +#~ msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦®ą¦Øą¦¤ ą§°ą¦ą¦¾ ą¦Ø'ą¦¹'ą¦¬ (_F)" + +#~ msgid "_Remember password until you logout" +#~ msgstr "ą¦Ŗą§ą§°ą¦øą§ą¦„ą¦¾ą¦Ø ą¦Øą¦ą§°ą¦¾ ą¦ ą¦¬ą¦§ą¦æą¦¤ ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦®ą¦Øą¦¤ ą§°ą¦ą¦¾ ą¦¹'ą¦¬ (_R)" + +#~ msgid "_Remember forever" +#~ msgstr "ą¦ą§ą¦Ŗą§ą¦¤ą¦¶ą¦¬ą§ą¦¦ ą¦øą§ą¦„ą¦¾ą§ą§ą§°ą§ą¦Ŗą§ ą¦®ą¦Øą¦¤ ą§°ą¦ą¦¾ ą¦¹'ą¦¬ (_R)" + +#~ msgid "File not available" +#~ msgstr "ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą§° ą¦ą¦Ŗą¦²ą¦¬ą§ą¦§ ą¦Øą§" + +#~ msgid "Remote files aren't supported" +#~ msgstr "ą¦¦ą§ą§°ą¦¬ą§°ą§ą¦¤ą§" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "ą¦ą¦æą¦ ą¦æ" + +#~ msgid "Tabloid" +#~ msgstr "ą¦ą§ą¦Æą¦¾ą¦¬ą¦²ą§ą§ą¦”" + +#~ msgid "Ledger" +#~ msgstr "ą¦²ą§ą¦ą¦¾ą§°" + +#~ msgid "Legal" +#~ msgstr "ą¦²ą¦æą¦ą¦¾ą¦²" + +#~ msgid "Statement" +#~ msgstr "ą¦øą§ą¦ą§ą¦ą¦®ą§ą¦Øą§ą¦" + +#~ msgid "Executive" +#~ msgstr "ą¦ą¦ą§ą¦øą¦æą¦ą¦æą¦ą¦ą¦æą¦" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "ą¦«ą§ą¦²ą¦æą¦" + +#~ msgid "Quarto" +#~ msgstr "ą¦ą§ą§ą¦¾ą§°ą§ą¦¤ą§" + +#~ msgid "10x14" +#~ msgstr "ą§§ą§¦xą§§ą§Ŗ" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Cannot open file ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą§°ą¦¤ą§ ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤ ą¦Ŗą¦¾ą¦„ą§ą§° ą¦®ą¦§ą§ą¦Æą§ Ghostscript ą¦ą¦Øą§ą¦ą¦¾ą§°ą¦Ŗą§ą§°ą§ą¦ą¦¾ą§° ą¦Ŗą§ą§±ą¦¾ ą¦Øą¦¾ą¦Æą¦¾ą§" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "ą¦ą¦Øą¦ą§ą¦Æą¦¾ą¦Ŗą¦øą§ą¦²ą§ą¦ą§ą¦” PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "ą¦ą¦Øą§ą¦ą¦¾ą§°ą¦Ŗą§ą§°ą§ą¦ą¦¾ą§° ą¦¬ą§ą¦Æą§°ą§ą¦„ ą„¤" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "MIME ą¦§ą§°ą¦Øą§ą§° ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦ą§°ą¦¾ ą¦¹ą§ą¦Øą¦æ: ā%sā" + +#~ msgid "Password Entry" +#~ msgstr "Password Entry" + +#~ msgid "Save password in keyring" +#~ msgstr "ą¦ą¦æ-ą§°ą¦'ą§° ą¦®ą¦§ą§ą¦Æą§ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą§°ą§ą¦” ą¦øą¦ą§°ą¦ą§ą¦·ą¦£ ą¦ą§°ą¦¾ ą¦¹ą¦¬ą§" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "ą¦Ŗą§ą§°ą§ą¦¬ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#~ msgid "Find Next" +#~ msgstr "ą¦Ŗą§°ą¦¬ą§°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#~ msgid "Incorrect password" +#~ msgstr "ą¦ą§ą¦² ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą§°ą§ą¦”" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "PDF ą¦Øą¦æą§°ą§ą¦®ą¦¾ą¦£ ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ ą¦øą¦®ą§°ą§ą¦„ą¦æą¦¤ ą¦Øą§" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ā%sā ą¦”ą§ą§°ą¦¾ą¦ą¦ą¦¾ą§° ą¦øą¦¹ą¦Æą§ą¦ą§ ą¦ą¦Ŗą¦Øą¦æ ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą¦¾ą§°ą§ ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ ą¦ą§°ą¦¾ą§° ą¦Ŗą§ą§°ą¦ą§ą¦·ą§ą¦ą¦¾ ą¦ą§°ą§ą¦ą§ą¦Ø ą„¤ ą¦ą¦ " +#~ "ą¦Ŗą§ą§°ą§ą¦ą§ą§°ą¦¾ą¦®ą§ą§° ą¦ą§ą¦·ą§ą¦¤ą§ą§°ą§ PostScript ą¦Ŗą§ą§°ą¦æą¦Øą§ą¦ą¦¾ą§° ą¦”ą§ą§°ą¦¾ą¦ą¦ą¦¾ą§° ą¦ą¦¬ą¦¶ą§ą¦Æą¦ ą„¤" + +#~ msgid "Pages" +#~ msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince Document Viewer" + diff --git a/po/ast.po b/po/ast.po new file mode 100644 index 00000000..986328e4 --- /dev/null +++ b/po/ast.po @@ -0,0 +1,1813 @@ +# Asturian translation for evince. +# Copyright (C) 2009 evince's COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Xandru Armesto <xandru@softastur.org>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince mate-2-28\n" +"Report-Msgid-Bugs-To: " +"http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-07-23 07:59+0000\n" +"PO-Revision-Date: 2010-07-23 15:54+0200\n" +"Last-Translator: Xandru Armesto <xandru@softastur.org>\n" +"Language-Team: Softastur alministradores@softastur.org\n" +"Language: ast\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-Generator: Virtaal 0.5.2\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Fallu al llanzar el comandu Ā«%sĀ» pa descomprimir el cĆ³mic nel direutoriu " +"temporal: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "El comandu ā%sā fallĆ³ al descomprimir el cĆ³mic nel direutoriu temporal." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "El comandu ā%sā nun acabĆ³ de forma normal." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Nun ye un tipu MIME de llibru de cĆ³mic: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Nun se puede atopar un comandu afayadizu pa descomprimir el ficheru de cĆ³mic" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipu MIME desconocĆu" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Ficheru tollĆu" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nun hai ficheros nel archivador" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nun s'alcontraron imĆ”xenes nel ficheru %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Hebo un fallu al desaniciar ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Fallu %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Llibros de cĆ³mics" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "El documentu DjVu tien un formatu incorreutu" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"El documentu ta compuestu por dellos ficheros. Nun se puede acceder a Ćŗn o " +"mĆ”s d'ellos." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documentos DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "El documentu DVI tien un formatu incorreutu" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documentos DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Esti trabayu ye de Dominiu PĆŗblicu" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "SĆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Non" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Tipu 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Tipu 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Tipu 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Tipu 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Tipu 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Tipu de fonte desconocida" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Ensin nome" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "Soconxuntu incrustĆ”u" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "IncrustĆ”u" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "Non incrustĆ”u" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documentos PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documentu non vĆ”lidu" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapositives Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Ensin fallu" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nun hai memoria abonda" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Nun se puede alcontrar la robla ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ficheru ZIP invĆ”lidu" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Los ZIP multificheru nun tĆ”n sofitaos" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Nun se pue abrir el ficheru" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Nun se puen lleer los datos del ficheru" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Nun se puede alcontrar el ficheru nel archivador ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Fallu desconocĆu" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Nun se pudo cargar el documentu ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Fallu al guardar el documentu ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documentos PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Nun se pudo guardar l'axuntu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Nun se pudo abrir l'axuntu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Nun se pudo abrir l'axuntu ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "El tipu de ficheru %s (%s) nun ta sofitĆ”u" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Tolos Documentos" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Tolos Ficheros" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Nun se pudo crear un direutoriu temporal: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Nun se pudo crear un direutoriu temporal: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El ficheru nun ye un ficheru .desktop vĆ”lidu" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "VersiĆ³n '%s' del ficheru desktop non reconocida" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Aniciando %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicaciĆ³n nun aceuta documentos na llinia de comandos" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpciĆ³n de llanzamientu non reconocida: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Nun se puen pasar los URIs de documentos a entraes d'escritoriu 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nun ye un elementu llanzable" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desactivar la conexĆ³n al remanador de sesiones" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especificar el ficheru que contiĆ©n la configuraciĆ³n guardada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FICHERU" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especificar la ID del remanamientu de sesiĆ³n" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opciones de remanamientu de la sesiĆ³n:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Ver les opciones de remanamientu de la sesiĆ³n" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Amosar ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_Mover a la Barra de Ferramientes" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "Mueve l'elementu seleicionĆ”u a la barra de ferramientes" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_Quitar de la Barra de Ferramientes" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Quita l'elementu seleicionĆ”u de la barra de ferramientes" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_Esborrar Barra de Ferramientes" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Quitar la barra de ferramientes seleicionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Separtador" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "Executar en mou presentaciĆ³n" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5379 +msgid "Best Fit" +msgstr "Axuste Ćptimu" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Axustar al anchor de pĆ”xina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4235 +#: ../shell/ev-window-title.c:149 ../shell/main.c:308 +#, c-format +msgid "Document Viewer" +msgstr "Visor de Documentos" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Ver documentos multipĆ”xina" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Saltase les restricciones del documentu" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Saltase les restricciones del documentu, como restricciĆ³n pa copiar o " +"imprentar." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Esborrar el ficheru temporal" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Ficheru d'axustes d'imprentaciĆ³n" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "Visor de Documentos de MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3031 +msgid "Failed to print document" +msgstr "Nun se pudo imprentar el documentu" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Nun se pudo atopar la imprentadora actual '%s'" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5128 +msgid "_Previous Page" +msgstr "_PĆ”xina Anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5129 +msgid "Go to the previous page" +msgstr "Dir a la pĆ”xina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5131 +msgid "_Next Page" +msgstr "PĆ”xi_na Siguiente" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5132 +msgid "Go to the next page" +msgstr "Dir a la pĆ”xina siguiente" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5115 +msgid "Enlarge the document" +msgstr "Allargar el documentu" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5118 +msgid "Shrink the document" +msgstr "Amenorgar el documentu" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Imprentar" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5086 +msgid "Print this document" +msgstr "Imprentar esti documentu" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5230 +msgid "_Best Fit" +msgstr "Axus_te Ćptimu" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5231 +msgid "Make the current document fill the window" +msgstr "Fai que'l documentu actual enllene la ventana" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5233 +msgid "Fit Page _Width" +msgstr "Axustar al A_nchor de PĆ”xina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5234 +msgid "Make the current document fill the window width" +msgstr "Fai que'l documentu actual enllene l'anchor de la ventana" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5301 +msgid "Page" +msgstr "PĆ”xina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5302 +msgid "Select Page" +msgstr "Seleiciona la pĆ”xina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documentu" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtulu:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Allugamientu:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Asuntu:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Pallabres clave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Productor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "CreĆ”u:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "CamudĆ”u:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NĆŗmberu de PĆ”xines:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "OptimizĆ”u:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formatu:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "SeguridĆ”:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "TamaƱu del Papel:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "DengĆŗn" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f pulgaes" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Vertical (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ApaisĆ”u (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "Tresnando pa imprentar..." + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "Finandoā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Imprentando pĆ”xina %d de %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "La impresiĆ³n nun ta sofitada nesta imprentadora." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "SeleiciĆ³n de pĆ”xina invĆ”lida" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "Avisu" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "La escoyeta d'intervalu nun inclĆŗi denguna pĆ”xina" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "EscalĆ”u de PĆ”xina:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Encoyer a un Ćrea Imprentable" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Axustar a un Ćrea Imprentable" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escalar les pĆ”xines del documentu p'axustales a la pĆ”xina d'imprentaciĆ³n. " +"Esbilla una de les siguientes:\n" +"\n" +"ā¢ Ā«DengĆŗnĀ»: Nun se fai escalĆ”u de pĆ”xina.\n" +"\n" +"ā¢ Ā«Encoyer a un Ć”rea imprentableĀ»: Les pĆ”xines del documentu mĆ”s grandes que " +"l'Ć”rea d'imprentaciĆ³n amenĆ³rguense p'axustase al Ć”rea d'imprentaciĆ³n de " +"pĆ”xina de la imprentadora.\n" +"\n" +"ā¢ Ā«Axustar a un Ć”rea imprentableĀ»: Les pĆ”xines del documentu aumĆ©ntense o " +"amenĆ³rguense segĆŗn se requiera p'axustase al Ć”rea d'imprentaciĆ³n de pĆ”xina " +"de la imprentadora.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "Auto Voltiar y Centrar" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Voltiar la orientaciĆ³n d'imprentaciĆ³n de pĆ”xina de cada pĆ”xina que concase " +"con cada pĆ”xina del documentu. Les pĆ”xines del documentu, van centrase na " +"pĆ”xina d'imprentaciĆ³n." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "Seleicionar el tamaƱu de pĆ”xina usando tamaƱos de pĆ”xines de documentos" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Cuando ta activĆ”u, cada pĆ”xina va imprentase nel mesmu tamaƱu de papel que " +"la pĆ”xina del documentu." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "Manexu de PĆ”xines" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "FallĆ³ al imprentar la pĆ”xina %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Mover arriba" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Mover abaxo" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Mover la Vista Arriba" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Mover la Vista Abaxo" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Vista de Documentu" + +#: ../libview/ev-view-presentation.c:673 +msgid "Jump to page:" +msgstr "Saltar a la pĆ”xina:" + +#: ../libview/ev-view-presentation.c:975 +msgid "End of presentation. Click to exit." +msgstr "Fin de la presentaciĆ³n. Calca pa colar." + +#: ../libview/ev-view.c:1727 +msgid "Go to first page" +msgstr "Dir a la primer pĆ”xina" + +#: ../libview/ev-view.c:1729 +msgid "Go to previous page" +msgstr "Dir a la pĆ”xina anterior" + +#: ../libview/ev-view.c:1731 +msgid "Go to next page" +msgstr "Dir a la pĆ”xina siguiente" + +#: ../libview/ev-view.c:1733 +msgid "Go to last page" +msgstr "Dir a la pĆ”xina cabera" + +#: ../libview/ev-view.c:1735 +msgid "Go to page" +msgstr "Dir a la pĆ”xina" + +#: ../libview/ev-view.c:1737 +msgid "Find" +msgstr "Alcontrar" + +#: ../libview/ev-view.c:1765 +#, c-format +msgid "Go to page %s" +msgstr "Dir a la pĆ”xina %s" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Dir a %s nel ficheru ā%sā" + +#: ../libview/ev-view.c:1774 +#, c-format +msgid "Go to file ā%sā" +msgstr "Dir al ficheru ā%sā" + +#: ../libview/ev-view.c:1782 +#, c-format +msgid "Launch %s" +msgstr "Llanzar %s" + +#: ../libview/ev-view.c:3949 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Cargandoā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Atopar:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5103 +msgid "Find Pre_vious" +msgstr "Atopar Anter_ior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Atopar l'apaiciĆ³n anterior de la cadena" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5101 +msgid "Find Ne_xt" +msgstr "Atopar Sig_uiente" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Atopar la siguiente apaiciĆ³n de la cadena" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Sensible _a MayĆŗscules" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Alternar a gueta sensible a mayĆŗscules" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ContraseƱa pal documentu %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Convirtiendo %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ConvirtiĆ©ronse %d de %d documentos" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "Convirtiendo metadatos" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"El formatu de metadatos usĆ”u por Evince camudĆ³, poro, necesita migrase. Si " +"la migraciĆ³n s'encaboxa, nun funcionarĆ” l'atroxu de los metadatos." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Abrir un documentu reciĆ©n usĆ”u" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Esti documentu ta bloquiĆ”u y namĆ”i se pue lleer conseƱando la contraseƱa " +"correuta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "Desbloq_uiar Documentu" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ConseƱe la contraseƱa" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "NecesĆtase contraseƱa" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"El documentu ā%sā ta bloquiĆ”u y requier d'una contraseƱa enantes de poder " +"abrilu." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_ContraseƱa:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Escaecer la contraseƱa _darrĆ©u" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "Remembra la contraseƱa hasta que _salgas de la sesiĆ³n" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "Remembrar pa _siempre" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Propiedaes" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "Xeneral" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Fontes" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "Llicencia del documentu" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Fonte" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Obteniendo informaciĆ³n tipogrĆ”ficaā¦ %3d%%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "TĆ©rminos d'usu" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "Testu de la Llicencia" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "MĆ”s InformaciĆ³n" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Axuntos" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Capes" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprentarā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndiz" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "Miniatures" + +#: ../shell/ev-window.c:840 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ”xina %s ā %s" + +#: ../shell/ev-window.c:842 +#, c-format +msgid "Page %s" +msgstr "PĆ”xina %s" + +#: ../shell/ev-window.c:1288 +msgid "The document contains no pages" +msgstr "El documentu nun contiĆ©n pĆ”xina denguna" + +#: ../shell/ev-window.c:1291 +msgid "The document contains only empty pages" +msgstr "El documentu namĆ”s tien pĆ”xines baleres" + +#: ../shell/ev-window.c:1491 ../shell/ev-window.c:1657 +msgid "Unable to open document" +msgstr "Nun se pudo abrir el documentu" + +#: ../shell/ev-window.c:1628 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Cargando documentu dende ā%sā" + +#: ../shell/ev-window.c:1770 ../shell/ev-window.c:2047 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Descargando documentu (%d%%)" + +#: ../shell/ev-window.c:1803 +msgid "Failed to load remote file." +msgstr "FallĆ³ al recargar el documentu remotu." + +#: ../shell/ev-window.c:1991 +#, c-format +msgid "Reloading document from %s" +msgstr "Recargando'l documentu dende %s" + +#: ../shell/ev-window.c:2023 +msgid "Failed to reload document." +msgstr "FallĆ³ al recargar el documentu." + +#: ../shell/ev-window.c:2178 +msgid "Open Document" +msgstr "Abrir Documentu" + +#: ../shell/ev-window.c:2442 +#, c-format +msgid "Saving document to %s" +msgstr "Guardando'l documentu en %s" + +#: ../shell/ev-window.c:2445 +#, c-format +msgid "Saving attachment to %s" +msgstr "Guardando l'axuntu en %s" + +#: ../shell/ev-window.c:2448 +#, c-format +msgid "Saving image to %s" +msgstr "Guardando la imaxe en %s" + +#: ../shell/ev-window.c:2492 ../shell/ev-window.c:2592 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "El ficheru nun se pudo guardar como ā%sā." + +#: ../shell/ev-window.c:2523 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Xubiendo'l documentu (%d%%)" + +#: ../shell/ev-window.c:2527 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Xubiendo l'axuntu (%d%%)" + +#: ../shell/ev-window.c:2531 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Xubiendo la imaxe (%d%%)" + +#: ../shell/ev-window.c:2653 +msgid "Save a Copy" +msgstr "Guardar una Copia" + +#: ../shell/ev-window.c:2975 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d trabayu pendiente na cola" +msgstr[1] "%d trabayos pendientes na cola" + +#: ../shell/ev-window.c:3088 +#, c-format +msgid "Printing job ā%sā" +msgstr "Imprentando trabayu ā%sā" + +#: ../shell/ev-window.c:3300 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"ĀæEsperar hasta que fine'l trabayu d'imprentaciĆ³n ā%sā enantes de zarrar?" + +#: ../shell/ev-window.c:3303 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Esisten %d trabayos d'impresiĆ³n activos. ĀæQuies esperar a que fine la " +"imprentadora enantes de zarrar?" + +#: ../shell/ev-window.c:3315 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Si zarres la ventana, los trabayos d'imprentaciĆ³n pendientes nun se van " +"imprentar." + +#: ../shell/ev-window.c:3319 +msgid "Cancel _print and Close" +msgstr "Encaboxar la _imprentaciĆ³n y Zarrar" + +#: ../shell/ev-window.c:3323 +msgid "Close _after Printing" +msgstr "Zarrar _dempuĆ©s d'Imprentar" + +#: ../shell/ev-window.c:3888 +msgid "Toolbar Editor" +msgstr "Editor de la Barra de Ferramientes" + +#: ../shell/ev-window.c:4020 +msgid "There was an error displaying help" +msgstr "Hebo un fallu al amosar l'aida" + +#: ../shell/ev-window.c:4231 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visor de Documentos.\n" +"Usando %s (%s)" + +#: ../shell/ev-window.c:4262 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "Evince ye software llibre; pues redistribuyilu y/o camudalu baxo los " +"tĆ©rminos de la Llicencia PĆŗblica Xeneral de GNU asoleyada pola Free Software " +"Foundation; yĆ” seya na so versiĆ³n 2 Ć³ (al so criteriu) nuna versiĆ³n " +"postrera.\n" + +#: ../shell/ev-window.c:4266 +msgid "" +"Evince 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.\n" +msgstr "Evince distribĆŗise col enfotu de que seya Ćŗtil, pero ENSIN GARANTĆA; ensin " +"nenguna garantĆa implĆcita de COMERCIALIDĆ o IDONEIDĆ PA UN FIN DETERMINĆU. " +" Adique la Llicencia General GNU pa mĆ”s detĆ”is.\n" + +#: ../shell/ev-window.c:4270 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "DeberĆes tener recibĆo una copia de la Llicencia PĆŗblica Xeneral de GNU " +"xunto con Evince; si nun ye'l casu, escribi a Free Software Foundation, " +"Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4295 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4298 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Los autores d'Evince" + +#: ../shell/ev-window.c:4304 +msgid "translator-credits" +msgstr "" +"Xandru Armesto: xandru@softastur.org\n" +"Launchpad Contributions:\n" +" Dangerous Piper https://launchpad.net/~dangerouspiper\n" +" IƱigo Varela https://launchpad.net/~malditoastur\n" +" Xandru Martino https://launchpad.net/~xandru-martino\n" +" Xuacu https://launchpad.net/~xuacusk8" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4576 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d alcontrĆ”u nesta pĆ”xina" +msgstr[1] "%d alcontraos nesta pĆ”xina" + +#: ../shell/ev-window.c:4584 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% restante pa guetar" + +#: ../shell/ev-window.c:5066 +msgid "_File" +msgstr "_Ficheru" + +#: ../shell/ev-window.c:5067 +msgid "_Edit" +msgstr "_Editar" + +#: ../shell/ev-window.c:5068 +msgid "_View" +msgstr "_Ver" + +#: ../shell/ev-window.c:5069 +msgid "_Go" +msgstr "_Dir" + +#: ../shell/ev-window.c:5070 +msgid "_Help" +msgstr "_Aida" + +#. File menu +#: ../shell/ev-window.c:5073 ../shell/ev-window.c:5341 +msgid "_Openā¦" +msgstr "_Abrirā¦" + +#: ../shell/ev-window.c:5074 ../shell/ev-window.c:5342 +msgid "Open an existing document" +msgstr "Abre un documentu esistente" + +#: ../shell/ev-window.c:5076 +msgid "Op_en a Copy" +msgstr "A_brir una Copia" + +#: ../shell/ev-window.c:5077 +msgid "Open a copy of the current document in a new window" +msgstr "Abre una copia del documentu actual nuna ventana nueva" + +#: ../shell/ev-window.c:5079 +msgid "_Save a Copyā¦" +msgstr "Guardar una C_opiaā¦" + +#: ../shell/ev-window.c:5080 +msgid "Save a copy of the current document" +msgstr "Guarda una copia del documentu actual" + +#: ../shell/ev-window.c:5082 +msgid "Page Set_upā¦" +msgstr "_Configurar PĆ”xinaā¦" + +#: ../shell/ev-window.c:5083 +msgid "Set up the page settings for printing" +msgstr "Configura los axustes de pĆ”xina pa imprentar" + +#: ../shell/ev-window.c:5085 +msgid "_Printā¦" +msgstr "Im_prentar..." + +#: ../shell/ev-window.c:5088 +msgid "P_roperties" +msgstr "P_ropiedaes" + +#: ../shell/ev-window.c:5096 +msgid "Select _All" +msgstr "Seleicion_ar Too" + +#: ../shell/ev-window.c:5098 +msgid "_Findā¦" +msgstr "At_oparā¦" + +#: ../shell/ev-window.c:5099 +msgid "Find a word or phrase in the document" +msgstr "Guetar una pallabra o fras nel documentu" + +#: ../shell/ev-window.c:5105 +msgid "T_oolbar" +msgstr "_Barra de ferramientes" + +#: ../shell/ev-window.c:5107 +msgid "Rotate _Left" +msgstr "Voltiar a la _Esquierda" + +#: ../shell/ev-window.c:5109 +msgid "Rotate _Right" +msgstr "Voltiar a la D_recha" + +#: ../shell/ev-window.c:5120 +msgid "_Reload" +msgstr "_Recargar" + +#: ../shell/ev-window.c:5121 +msgid "Reload the document" +msgstr "Recarga'l documentu" + +#: ../shell/ev-window.c:5124 +msgid "Auto_scroll" +msgstr "Autode_splazar" + +#: ../shell/ev-window.c:5134 +msgid "_First Page" +msgstr "_Primer PĆ”xina" + +#: ../shell/ev-window.c:5135 +msgid "Go to the first page" +msgstr "Dir a la primer pĆ”xina" + +#: ../shell/ev-window.c:5137 +msgid "_Last Page" +msgstr "PĆ”xina C_abera" + +#: ../shell/ev-window.c:5138 +msgid "Go to the last page" +msgstr "Dir a la pĆ”xina cabera" + +#. Help menu +#: ../shell/ev-window.c:5142 +msgid "_Contents" +msgstr "_ContenĆos" + +#: ../shell/ev-window.c:5145 +msgid "_About" +msgstr "Tocante _a" + +#. Toolbar-only +#: ../shell/ev-window.c:5149 +msgid "Leave Fullscreen" +msgstr "Dexar Pantalla Completa" + +#: ../shell/ev-window.c:5150 +msgid "Leave fullscreen mode" +msgstr "Dexar mou pantalla completa" + +#: ../shell/ev-window.c:5152 +msgid "Start Presentation" +msgstr "Aniciar presentaciĆ³n" + +#: ../shell/ev-window.c:5153 +msgid "Start a presentation" +msgstr "Aniciar una presentaciĆ³n" + +#. View Menu +#: ../shell/ev-window.c:5212 +msgid "_Toolbar" +msgstr "_Barra Ferramientes" + +#: ../shell/ev-window.c:5213 +msgid "Show or hide the toolbar" +msgstr "Amuesa o anubre la barra de ferramientes" + +#: ../shell/ev-window.c:5215 +msgid "Side _Pane" +msgstr "Barra _Llateral" + +#: ../shell/ev-window.c:5216 +msgid "Show or hide the side pane" +msgstr "Amuesa o anubre'l panel llateral" + +#: ../shell/ev-window.c:5218 +msgid "_Continuous" +msgstr "_Continuu" + +#: ../shell/ev-window.c:5219 +msgid "Show the entire document" +msgstr "Amosar el documentu completu" + +#: ../shell/ev-window.c:5221 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5222 +msgid "Show two pages at once" +msgstr "Amosar dos pĆ”xines al empar" + +#: ../shell/ev-window.c:5224 +msgid "_Fullscreen" +msgstr "_Pantalla completa:" + +#: ../shell/ev-window.c:5225 +msgid "Expand the window to fill the screen" +msgstr "Espurrir la ventana hasta enllenar la pantalla" + +#: ../shell/ev-window.c:5227 +msgid "Pre_sentation" +msgstr "Pre_sentaciĆ³n" + +#: ../shell/ev-window.c:5228 +msgid "Run document as a presentation" +msgstr "Ver el documentu como una presentaciĆ³n" + +#: ../shell/ev-window.c:5236 +msgid "_Inverted Colors" +msgstr "Colores _InvertĆos" + +#: ../shell/ev-window.c:5237 +msgid "Show page contents with the colors inverted" +msgstr "Amosar los contenĆos de la pĆ”xina con colores invertĆos" + +#. Links +#: ../shell/ev-window.c:5245 +msgid "_Open Link" +msgstr "_Abrir Enllaz" + +#: ../shell/ev-window.c:5247 +msgid "_Go To" +msgstr "_Dir a" + +#: ../shell/ev-window.c:5249 +msgid "Open in New _Window" +msgstr "Abrir nuna _Ventana Nueva" + +#: ../shell/ev-window.c:5251 +msgid "_Copy Link Address" +msgstr "_Copiar DireiciĆ³n del Enllaz" + +#: ../shell/ev-window.c:5253 +msgid "_Save Image Asā¦" +msgstr "Guardar imaxe _comoā¦" + +#: ../shell/ev-window.c:5255 +msgid "Copy _Image" +msgstr "Copiar _Imaxe" + +#: ../shell/ev-window.c:5260 +msgid "_Open Attachment" +msgstr "Guardar A_xuntos" + +#: ../shell/ev-window.c:5262 +msgid "_Save Attachment Asā¦" +msgstr "Guard_ar Axuntu Comoā¦" + +#: ../shell/ev-window.c:5315 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5317 +msgid "Adjust the zoom level" +msgstr "Axustar el nivel de zoom" + +#: ../shell/ev-window.c:5327 +msgid "Navigation" +msgstr "NavegaciĆ³n" + +#: ../shell/ev-window.c:5329 +msgid "Back" +msgstr "Volver" + +#. translators: this is the history action +#: ../shell/ev-window.c:5332 +msgid "Move across visited pages" +msgstr "Movese a traviĆ©s de les pĆ”xines visitaes" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5362 +msgid "Previous" +msgstr "Previu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5367 +msgid "Next" +msgstr "Siguiente" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5371 +msgid "Zoom In" +msgstr "Aumentar zoom" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5375 +msgid "Zoom Out" +msgstr "Amenorgar zoom" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5383 +msgid "Fit Width" +msgstr "Axustar Anchor" + +#: ../shell/ev-window.c:5544 ../shell/ev-window.c:5561 +msgid "Unable to launch external application." +msgstr "Nun pudo llanzase l'aplicaciĆ³n esterna." + +#: ../shell/ev-window.c:5618 +msgid "Unable to open external link" +msgstr "Nun se pudo abrir l'enllaz esternu" + +#: ../shell/ev-window.c:5785 +msgid "Couldn't find appropriate format to save image" +msgstr "Nun se pudo alcontrar el formatu afayadizu pa guardar la imaxe" + +#: ../shell/ev-window.c:5827 +msgid "The image could not be saved." +msgstr "La imaxe nun se pudo guardar." + +#: ../shell/ev-window.c:5859 +msgid "Save Image" +msgstr "Guardar Imaxe" + +#: ../shell/ev-window.c:5926 +msgid "Unable to open attachment" +msgstr "Nun se pudo abrir l'axuntu" + +#: ../shell/ev-window.c:5979 +msgid "The attachment could not be saved." +msgstr "L'axuntu nun se pudo guardar." + +#: ../shell/ev-window.c:6024 +msgid "Save Attachment" +msgstr "Guardar Axuntos" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Requierse una contraseƱa" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "Per estensiĆ³n" + +#: ../shell/main.c:70 ../shell/main.c:272 +msgid "MATE Document Viewer" +msgstr "Visor de Documentos de MATE" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "La pĆ”xina del documentu a amosar." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "PĆXINA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executar Evince en mou de pantalla completa" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executar Evince en mou de presentaciĆ³n" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executar Evince como un previsualizador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "La pallabra o fras que atopar nel documentu" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CADENA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FICHERUā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Hai opciones Booleanes: braero habilita entever, y falso deshabilita la " +"creaciĆ³n de vistes en miniatura nueves" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Activar miniatures de Documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Comandu de miniatures pa los Documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Comandu vĆ”lidu y argumentos pal miniaturizador de documentos PDF. Llei la " +"documentaciĆ³n pal miniaturizador de Caja pa mĆ”s informaciĆ³n." + +#~ msgid "800%" +#~ msgstr "800%" + +#~ msgid "1600%" +#~ msgstr "1600%" + +#~ msgid "3200%" +#~ msgstr "3200%" + +#~ msgid "6400%" +#~ msgstr "6400%" + +#~ msgid "Icon:" +#~ msgstr "Iconu:" + +#~ msgid "Note" +#~ msgstr "Nota" + +#~ msgid "Comment" +#~ msgstr "Comentariu" + +#~ msgid "Key" +#~ msgstr "Tecla" + +#~ msgid "Help" +#~ msgstr "Aida" + +#~ msgid "New Paragraph" +#~ msgstr "PĆ”rrafu Nuevu" + +#~ msgid "Paragraph" +#~ msgstr "PĆ”rrafu" + +#~ msgid "Insert" +#~ msgstr "Inxertar" + +#~ msgid "Cross" +#~ msgstr "Cruz" + +#~ msgid "Circle" +#~ msgstr "CĆrculu" + +#~ msgid "Unknown" +#~ msgstr "DesconocĆu" + +#~ msgid "Annotation Properties" +#~ msgstr "Propiedaes de l'AnotaciĆ³n" + +#~ msgid "Color:" +#~ msgstr "Color:" + +#~ msgid "Style:" +#~ msgstr "Estilu:" + +#~ msgid "Transparent" +#~ msgstr "Tresparente" + +#~ msgid "Opaque" +#~ msgstr "Opacu" + +#~ msgid "Initial window state:" +#~ msgstr "EstĆ”u de la ventana nel aniciu:" + +#~ msgid "Open" +#~ msgstr "Abrir" + +#~ msgid "Close" +#~ msgstr "Zarrar" + +#~ msgid "List" +#~ msgstr "Llista" + +#~ msgid "Annotations" +#~ msgstr "Anotaciones" + +#~ msgid "Text" +#~ msgstr "Testu" + +#~ msgid "Add text annotation" +#~ msgstr "Amestar anotaciĆ³n de testu" + +#~ msgid "Add" +#~ msgstr "Amestar" + +#~ msgid "Document contains no annotations" +#~ msgstr "El documentu nun tien anotaciones" + +#, c-format +#~ msgid "Page %d" +#~ msgstr "PĆ”xina %d" + +#~ msgid "You should have received a copy of the GNU General Public License along with " +#~ "Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +#~ "Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +#~ msgstr "DeberĆes tener recibĆo una copia de la Llicencia PĆŗblica Xeneral de GNU " +#~ "xunto con Evince; si nun ye'l casu, escribi a Free Software Foundation, " +#~ "Inc., 51 Franklin Streer, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#~ msgid "Annotation Propertiesā¦" +#~ msgstr "Propiedaes de l'AnotaciĆ³nā¦" + +#~ msgid "The page label of the document to display." +#~ msgstr "La etiqueta de pĆ”xina a amosar." + +#~ msgid "The page number of the document to display." +#~ msgstr "El nĆŗmberu de pĆ”xina a amosar." + +#~ msgid "NUMBER" +#~ msgstr "NĆMBERU" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "El documentu DJVU tien formatu incorreutu" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Nun se pudo criar el ficheru Ā«%sĀ»: %s" + +#~ msgid "Search string" +#~ msgstr "Guetar cadena" + +#~ msgid "The name of the string to be found" +#~ msgstr "Nome de la cadena a guetar" + +#~ msgid "Case sensitive" +#~ msgstr "Coincidir con capitalizaciĆ³n" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "BRAERO pa una gueta sensible a les mayĆŗscules" + +#~ msgid "Highlight color" +#~ msgstr "Color de resaltĆ”u" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Color de resaltĆ”u pa toles coincidencies" + +#~ msgid "Current color" +#~ msgstr "Color autual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Color de resaltĆ”u pa la coincidencia autual" + +#~ msgid "Recover previous documents?" +#~ msgstr "ĀæRecuperar los documentos anteriores?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince paez que saliĆ³ de manera inesperada la cabera vegada que " +#~ "s'executĆ³. Puedes recuperar los documentos que taben abiertos." + +#~ msgid "_Don't Recover" +#~ msgstr "_Non recuperar" + +#~ msgid "_Recover" +#~ msgstr "_Recuperar" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaciĆ³n de cuelgue" + +#~ msgid "Print..." +#~ msgstr "Imprentarā¦" + +#~ msgid "_Save a Copy..." +#~ msgstr "_Guardar una copiaā¦" + +#~ msgid "_Print..." +#~ msgstr "Im_prentar..." + +#~ msgid "_Find..." +#~ msgstr "_Guetar..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Nun se pudo crear l'enllaz simbĆ³licu Ā«%sĀ»: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Nun se pue abrir una copia." + +#~ msgid "_Remember forever" +#~ msgstr "_Remembrar siempres" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Remembrar clave fasta te desconeutes" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Escaecer clave darrĆ©u" + +#~ msgid "_Domain:" +#~ msgstr "_Dominiu:" + +#~ msgid "_Username:" +#~ msgstr "_Usuariu:" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Coneutar como u_suariu:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Coneutar _anĆ³nimamente" + +#~ msgid "Co_nnect" +#~ msgstr "Co_neutar" + +#~ msgid "Couldn't create symlink ā%sā: %s" +#~ msgstr "Nun se pudo criar l'enllaz simbĆ³licu Ā«%sĀ»: %s" + +#~ msgid "File corrupted." +#~ msgstr "Ficheru corruptu." + +#~ msgid "Ā© 1996-2007 The Evince authors" +#~ msgstr "Ā© 1996-2007 Los autores d'Evince" + +#~ msgid "Print Set_up..." +#~ msgstr "ConfiguraciĆ³n d'imprentaciĆ³nā¦" + +#~ msgid "Title" +#~ msgstr "TĆtulu" + +#~ msgid "Location" +#~ msgstr "LlocalizaciĆ³n" + +#~ msgid "Subject" +#~ msgstr "Asuntu" + +#~ msgid "Author" +#~ msgstr "Autor" + +#~ msgid "Keywords" +#~ msgstr "Pallabres clave" + +#~ msgid "Producer" +#~ msgstr "Productor" + +#~ msgid "Creator" +#~ msgstr "Criador" + +#~ msgid "Created" +#~ msgstr "CriĆ”u" + +#~ msgid "Modified" +#~ msgstr "ModificĆ”u" + +#~ msgid "Number of Pages" +#~ msgstr "NĆŗmberu de pĆ”xines" + +#~ msgid "Optimized" +#~ msgstr "OptimizĆ”u" + +#~ msgid "Format" +#~ msgstr "Formatu" + +#~ msgid "Security" +#~ msgstr "SeguridĆ”" + +#~ msgid "Paper Size" +#~ msgstr "TamaƱu Papel" diff --git a/po/be.po b/po/be.po new file mode 100644 index 00000000..bc019f01 --- /dev/null +++ b/po/be.po @@ -0,0 +1,1354 @@ +# Belarusian translation of evince. +# Copyright (C) 2005 THE evince'S COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Ales Nyakhaychyk <nab@mail.by>, 2005, 2008 +# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-02-10 13:27+0000\n" +"PO-Revision-Date: 2008-03-15 03:39+0200\n" +"Last-Translator: Alexander Nyakhaychyk <nab@mail.by>\n" +"Language-Team: Belarusian <i18n@mova.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../backend/comics/comics-document.c:163 +msgid "File corrupted." +msgstr "Š¤Š°Š¹Š» ŠæŠ°ŃŠŗŠ¾Š“Š¶Š°Š½Ń." + +#: ../backend/comics/comics-document.c:197 +#, c-format +msgid "No images found in archive %s" +msgstr "Š£ Š°ŃŃ ŃŠ²Šµ %s Š¼Š°Š»ŃŠ½ŠŗŃ Š½Ń Š·Š½Š¾Š¹Š“Š·ŠµŠ½ŃŃ" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŠŠ¾Š¼ŃŠŗŃŃ" + +#: ../backend/djvu/djvu-document.c:167 +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" +"ŠŠ°ŠŗŃŠ¼ŃŠ½Ń ŃŠŗŠ»Š°Š“Š·ŠµŠ½Ń Š·Ń Š½ŠµŠŗŠ°Š»ŃŠŗŃŃ ŃŠ°Š¹Š»Š°Ń. ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°ŃŃŃŠ¼Š°ŃŃ Š“Š¾ŃŃŃŠæ Š“Š° Š°Š“Š½Š°Š³Š¾ " +"ŃŃ Š½ŠµŠŗŠ°Š»ŃŠŗŃŃ ŃŠ°Š¹Š»Š°Ń." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu Š“Š°ŠŗŃŠ¼ŃŠ½ŃŃ" + +#: ../backend/dvi/dvi-document.c:98 +msgid "File not available" +msgstr "Š¤Š°Š¹Š» Š½ŠµŠ“Š°ŃŃŃŠæŠ½Ń" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI Š“Š°ŠŗŃŠ¼ŃŠ½Ń Š½ŃŠæŃŠ°Š²ŃŠ»ŃŠ½Š°Š³Š° ŃŠ°ŃŠ¼Š°ŃŃ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Š“Š°ŠŗŃŠ¼ŃŠ½ŃŃ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:674 +msgid "Yes" +msgstr "Š¢Š°Šŗ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:677 +msgid "No" +msgstr "ŠŠµ" + +#: ../backend/pdf/ev-poppler.cc:750 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:752 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:754 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:756 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:758 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:760 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:762 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:764 +msgid "Unknown font type" +msgstr "ŠŠµŠ²ŃŠ“Š¾Š¼Ń ŃŃŠæ ŃŃŃŃŃŠ°" + +#: ../backend/pdf/ev-poppler.cc:790 +msgid "No name" +msgstr "ŠŃŠ· Š½Š°Š·Š²Ń" + +#: ../backend/pdf/ev-poppler.cc:798 +msgid "Embedded subset" +msgstr "Š£Š±ŃŠ“Š°Š²Š°Š½Š°Šµ ŠæŠ°Š“Š¼Š½Š¾ŃŃŠ²Š°" + +#: ../backend/pdf/ev-poppler.cc:800 +msgid "Embedded" +msgstr "Š£Š±ŃŠ“Š°Š²Š°Š½Ń" + +#: ../backend/pdf/ev-poppler.cc:802 +msgid "Not embedded" +msgstr "ŠŠµ ŃŠ±ŃŠ“Š°Š²Š°Š½Ń" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ŠŠ°ŠŗŃŠ¼ŃŠ½ŃŃ" + +#: ../backend/impress/impress-document.c:296 +msgid "Remote files aren't supported" +msgstr "ŠŠ“Š“Š°Š»ŠµŠ½ŃŃ ŃŠ°Š¹Š»Ń Š½Šµ ŠæŠ°Š“ŃŃŃŠ¼Š»ŃŠ²Š°ŃŃŃŠ°" + +#: ../backend/impress/impress-document.c:307 +msgid "Invalid document" +msgstr "ŠŃŠæŃŠ°Š²ŃŠ»ŃŠ½Ń Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Š”Š»Š°Š¹Š“Ń Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠµŠ· ŠæŠ°Š¼ŃŠ»Š°Šŗ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµ Ń Š°ŠæŠ°Šµ Š²Š¾Š»ŃŠ½Š°Šµ ŠæŠ°Š¼ŃŃŃ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š½Š°Š¹ŃŃŃŃ ŠæŠ¾Š“ŠæŃŃ zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ŠŃŠæŃŠ°Š²ŃŠ»ŃŠ½Ń ŃŠ°Š¹Š» zip" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "ŠŃŃ ŃŠ²Ń zip Š·Ń Š½ŠµŠŗŠ°Š»ŃŠŗŃŠ¼Ń ŃŠ°Š¹Š»Š°Š¼Ń Š½Šµ ŠæŠ°Š“ŃŃŃŠ¼Š»ŃŠ²Š°ŃŃŃŠ°" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŃŠ°Š¹Š»" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° ŠæŃŠ°ŃŃŃŠ°ŃŃ Š“Š°Š½ŃŠ½Ń Š· ŃŠ°Š¹Š»Š°" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š½Š°Š¹ŃŃŃŃ ŃŠ°Š¹Š» Ń Š°ŃŃ ŃŃŠ½ŃŠ¼ ŃŠ°Š¹Š»Šµ zip" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠ²ŃŠ“Š¾Š¼Š°Ń ŠæŠ°Š¼ŃŠ»ŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:113 ../backend/ps/ps-document.c:248 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń ā%sā" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š°Ń Š°Š²Š°ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń ā%sā" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Letter" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Š¢Š°Š±Š»Š¾ŃŠ“" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Legal" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Statement" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Executive" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Folio" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../backend/ps/ps-document.c:170 ../backend/ps/ps-document.c:184 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŃŠ°Š¹Š» ā%sā." + +#: ../backend/ps/ps-document.c:231 +#, c-format +msgid "" +"Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń \"%s\". ŠŃŠ¼Š° ŃŠ½ŃŃŃŠæŃŃŃŠ°ŃŠ°ŃŠ° Ghostscript" + +#: ../backend/ps/ps-document.c:431 +msgid "Encapsulated PostScript" +msgstr "Encapsulated PostScript" + +#: ../backend/ps/ps-document.c:432 +msgid "PostScript" +msgstr "PostScript" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "ŠŠ±Š¾Š¹ ŃŠ½ŃŃŃŠæŃŃŃŠ°ŃŠ°ŃŠ°." + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Š“Š°ŠŗŃŠ¼ŃŠ½ŃŃ" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š°Ń Š°Š²Š°ŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ \"%s\": %s" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ \"%s\": %s" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ \"%s\"" + +#: ../libdocument/ev-document-factory.c:177 +#: ../libdocument/ev-document-factory.c:295 +msgid "Unknown MIME Type" +msgstr "ŠŠµŠ²ŃŠ“Š¾Š¼Ń MIME-ŃŃŠæ" + +#: ../libdocument/ev-document-factory.c:196 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "ŠŠµŠ°ŠæŃŠ°ŃŠ°Š²Š°Š½Ń MIME-ŃŃŠæ: \"%s\"" + +#: ../libdocument/ev-document-factory.c:350 +msgid "All Documents" +msgstr "Š£ŃŠµ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŃ" + +#: ../libdocument/ev-document-factory.c:382 +msgid "All Files" +msgstr "Š£ŃŠµ ŃŠ°Š¹Š»Ń" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŠ°ŠŗŠ°Š·Š°ŃŃ \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "ŠŠµŃŠ°_Š¼ŃŃŃŃŃŃŃ Š½Š° ŠæŠ°Š½ŃŠ»Ń" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "ŠŠµŃŠ°Š¼ŃŃŃŃŃŃŃ Š²ŃŠ»ŃŃŠ°Š½Ń ŃŠ»ŠµŠ¼ŃŠ½Ń Š½Š° ŠæŠ°Š½ŃŠ»Ń ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ŠŃ_Š“Š°Š»ŃŃŃ Š· ŠæŠ°Š½ŃŠ»Ń" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "ŠŃŠ“Š°Š»ŃŃŃ Š²ŃŠ»ŃŃŠ°Š½Ń ŃŠ»ŠµŠ¼ŃŠ½Ń Š· ŠæŠ°Š½ŃŠ»Ń ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ŠŃŠ“Š°Š»_ŃŃŃ ŠæŠ°Š½ŃŠ»Ń" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "ŠŃŠ“Š°Š»ŃŃŃ Š³ŃŃŃŃ ŠæŠ°Š½ŃŠ»Ń" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "ŠŠ°Š“Š·ŃŠ»ŃŠ»ŃŠ½ŃŠŗ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "Š ŃŠ¶ŃŠ¼ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4390 +msgid "Best Fit" +msgstr "ŠŠ°Š¹Š»ŠµŠæŃŃ Š²ŃŠ³Š»ŃŠ“" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠ° ŃŃŃŃŠ½Ń ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3517 +#: ../shell/ev-window-title.c:132 +msgid "Document Viewer" +msgstr "ŠŃŠ°Š³Š»ŃŠ“Š°Š»ŃŠ½ŃŠŗ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ŠŃŠ°Š³Š»ŃŠ“ ŃŠ°Š·Š½Š°ŃŃŠ°Š¹Š½ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ŠŠ°ŃŠ¾Š»Ń" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ŠŠ°ŠæŠ¾Š¼Š½ŃŃŃ ŠæŠ°ŃŠ¾Š»Ń Š“Š»Ń Š³ŃŃŠ°Š³Š° ŃŃŠ°Š½ŃŠ°" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ŠŠ°Ń Š°Š²Š°ŃŃ ŠæŠ°ŃŠ¾Š»Ń Ń Š·ŃŠ²ŃŠ·ŃŃ ŠŗŠ»ŃŃŠ¾Ń" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_ŠŠ°ŃŠ¾Š»Ń:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>ŠŃŃŠ°Ń:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Š”ŃŠ²Š¾ŃŠ°Š½Ń:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Š”ŃŠ²Š°ŃŠ°Š»ŃŠ½ŃŠŗ:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Š¤Š°ŃŠ¼Š°Ń:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>ŠŠ»ŃŃŠ°Š²ŃŃ ŃŠ»Š¾Š²Ń:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>ŠŃŠ¼ŠµŠ½ŠµŠ½Ń:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>ŠŠ¾Š»ŃŠŗŠ°ŃŃŃŃ ŃŃŠ°ŃŠ¾Š½Š°Šŗ:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>ŠŠæŃŃŠ¼ŃŠ·Š°Š²Š°Š½Ń:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>ŠŠ°Š¼ŠµŃ Š°ŃŠŗŃŃŠ°:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>ŠŃŃŠ²Š¾ŃŃŠ°:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>ŠŃŃŃŠæŠµŠŗŠ°:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Š¢ŃŠ¼Š°:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>ŠŠ°Š·Š²Š°:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŠµ Š·Š²Š°Š¶Š°ŃŃ Š½Š° Š°Š±Š¼ŠµŠ¶Š°Š²Š°Š½ŃŠ½Ń Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ŠŠµ Š·Š²Š°Š¶Š°ŃŃ Š½Š° Š°Š±Š¼ŠµŠ¶Š°Š²Š°Š½ŃŠ½Ń Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°, Š½Š°ŠæŃ., Š·Š°Š±Š°ŃŠ¾Š½Ń Š½Š° Š“ŃŃŠŗ Š°Š»ŃŠ±Š¾ " +"ŠŗŠ°ŠæŃŃŠ²Š°Š½ŃŠ½Šµ." + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "ŠŠ°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "ŠŃŠ¼Š°" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "default:mm" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f Š¼Š¼" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f ŃŠ°Š»ŃŃ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ŠŠ°ŃŃŃŃŃ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ŠŠ»ŃŠ±Š¾Š¼ (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f ŃŠ°Š»ŃŃ" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "ŠŠ¾ŃŃŠŗ ŃŃŠŗŃŃŃ" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "Š¢ŃŠŗŃŃ, ŃŠŗŃ ŃŃŃŠ±Š° Š·Š½Š°Š¹ŃŃŃŃ" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "Š ŃŠ»ŃŠŗŠ°Š¼ ŃŃŠ³ŃŃŃŃŃ" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "true: ŃŃŠŗŠ°ŃŃ Š· ŃŠ»ŃŠŗŠ°Š¼ ŃŃŠ³ŃŃŃŃŃ" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "ŠŠ¾Š»ŠµŃ ŃŠ°ŃŠ±Š°Š²Š°Š½Š°Š³Š° ŃŃŠŗŃŃŃ" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "ŠŠ¾Š»ŠµŃ ŃŠ°ŃŠ±Š°Š²Š°Š½ŃŠ½Ń ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½ŃŃ" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "ŠŠŗŃŃŃŠ½Ń ŠŗŠ¾Š»ŠµŃ" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "ŠŠ¾Š»ŠµŃ ŃŠ°ŃŠ±Š°Š²Š°Š½ŃŠ½Ń Š°ŠŗŃŃŃŠ½Š°Š³Š° ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½Ń" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "ŠŠ¾ŃŃŠŗ:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "ŠØŃŠŗŠ°ŃŃ ŃŠ°Š½ŠµŠ¹" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "ŠØŃŠŗŠ°ŃŃ ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½Šµ ŃŠ°Š½ŠµŠ¹" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "ŠØŃŠŗŠ°ŃŃ Š“Š°Š»ŠµŠ¹" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "ŠØŃŠŗŠ°ŃŃ ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½Šµ ŠæŠ°Š·ŃŠ½ŠµŠ¹" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "Š _ŃŠ»ŃŠŗŠ°Š¼ ŃŃŠ³ŃŃŃŃŃ" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "ŠŃŠ¼ŃŠ½ŃŃŃ ŃŃŠ¶ŃŠ¼ ŃŠ»ŃŠŗŃ ŃŃŠ³ŃŃŃŃŃ" + +#: ../shell/ev-jobs.c:650 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ŠŠ°Š¼ŃŠ»ŠŗŠ° ŃŃŠ²Š°ŃŃŠ½ŃŠ½Ń ŃŠ°Š¹Š»Š° \"%s\": %s" + +#: ../shell/ev-open-recent-action.c:71 +msgid "Open a recently used document" +msgstr "ŠŠ“ŠŗŃŃŃŃ ŃŠ°Š½ŠµŠ¹ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Š· %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "Š· %d" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "Š¢ŃŃŠ±Š° Š²ŃŠ·Š½Š°ŃŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ŠŠ°ŠŗŃŠ¼ŃŠ½Ń \"%s\" Š·Š°ŠŗŃŃŃŃ Ń ŠæŠ°ŃŃŠ°Š±ŃŠµ ŠæŠ°ŃŠ¾Š»Ń, ŠŗŠ°Š± ŃŠ³Š¾ Š°Š“ŠŗŃŃŃŃ." + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "ŠŃŠ·Š½Š°ŃŃŠµ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ°ŃŠ¾Š»Ń Š“Š»Ń Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ° %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "ŠŃŠæŃŠ°Š²ŃŠ»ŃŠ½Ń ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ŠŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń Š·Š°ŠŗŃŃŃŃ Ń ŠæŠ°ŃŃŠ°Š±ŃŠµ ŠæŠ°ŃŠ¾Š»Ń, ŠŗŠ°Š± ŠæŃŠ°ŃŃŃŠ°ŃŃ ŃŠ³Š¾." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "Š Š°Š·_Š±Š»ŃŠŗŠ°Š²Š°ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Š£Š»Š°ŃŃŃŃŠ²Š°ŃŃŃŃ" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "ŠŠ³ŃŠ»ŃŠ½ŃŃ" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ŠØŃŃŃŃŃ" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "ŠØŃŃŃŃ" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ŠŠ±Š¾Ń Š·ŃŠ²ŠµŃŃŠ°Šŗ Š°Š± ŃŃŃŃŃŠ°Ń ... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "Š£ŠŗŠ»Š°Š“Š°Š½ŃŠ½Ń" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3642 +msgid "Loading..." +msgstr "Š§ŃŃŠ°Š½ŃŠ½Šµ..." + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "ŠŃŃŠŗ..." + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "ŠŃŠ¼ŠµŃŃ" + +#: ../shell/ev-sidebar-thumbnails.c:728 +msgid "Thumbnails" +msgstr "ŠŃŠ½ŃŃŃŃŃŃ" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ŠŃŠ°ŠŗŃŃŃŃŃŃ ŃŠ³Š¾ŃŃ" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ŠŃŠ°ŠŗŃŃŃŃŃŃ Š“Š¾Š»Ń" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ŠŃŠ°ŠŗŃŃŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń ŃŠ³Š¾ŃŃ" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ŠŃŠ°ŠŗŃŃŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń Š“Š¾Š»Ń" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ŠŃŠ³Š»ŃŠ“ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°" + +#: ../shell/ev-view.c:1442 +msgid "Go to first page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŠæŠµŃŃŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1444 +msgid "Go to previous page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŠæŠ°ŠæŃŃŃŠ“Š½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1446 +msgid "Go to next page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° Š½Š°ŃŃŃŠæŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1448 +msgid "Go to last page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° Š°ŠæŠ¾ŃŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1450 +msgid "Go to page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1452 +msgid "Find" +msgstr "ŠŠ¾ŃŃŠŗ" + +#: ../shell/ev-view.c:1480 +#, c-format +msgid "Go to page %s" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° %s ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-view.c:1486 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° %s Ń ŃŠ°Š¹Š»Šµ \"%s\"" + +#: ../shell/ev-view.c:1489 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Ń ŃŠ°Š¹Š» \"%s\"" + +#: ../shell/ev-view.c:1497 +#, c-format +msgid "Launch %s" +msgstr "Š”ŃŠ°ŃŃŠ°Š²Š°ŃŃ %s" + +#: ../shell/ev-view.c:2448 +msgid "End of presentation. Press Escape to exit." +msgstr "ŠŠ°Š½ŠµŃ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ. ŠŠ°ŃŃŃŃŠ½ŃŃŠµ Escape, ŠŗŠ°Š± Š²ŃŠ¹ŃŃŃŃ Š· Š³ŃŃŠ°Š³Š° ŃŃŠ¶ŃŠ¼Ń." + +#: ../shell/ev-view.c:3371 +msgid "Jump to page:" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŃŃŠ°ŃŠ¾Š½ŠŗŃ:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5149 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½Šµ Š·Š½Š¾Š¹Š“Š·ŠµŠ½Š° Š½Š° Š³ŃŃŠ°Š¹ ŃŃŠ°ŃŠ¾Š½ŃŃ" +msgstr[1] "%d ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½Ń Š·Š½Š¾Š¹Š“Š·ŠµŠ½ŃŃ Š½Š° Š³ŃŃŠ°Š¹ ŃŃŠ°ŃŠ¾Š½ŃŃ" +msgstr[2] "%d ŃŃŠæŠ°Š“Š·ŠµŠ½ŃŠ½ŃŃ Š·Š½Š¾Š¹Š“Š·ŠµŠ½ŃŃ Š½Š° Š³ŃŃŠ°Š¹ ŃŃŠ°ŃŠ¾Š½ŃŃ" + +#: ../shell/ev-view.c:5158 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ŠŠ°ŃŃŠ°Š»Š¾ŃŃ ŃŃŠŗŠ°ŃŃ %3d%%" + +#: ../shell/ev-window.c:750 +#, c-format +msgid "Page %s - %s" +msgstr "Š”ŃŠ°ŃŠ¾Š½ŠŗŠ° %s - %s" + +#: ../shell/ev-window.c:752 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŠ°ŃŠ¾Š½ŠŗŠ° %s" + +#: ../shell/ev-window.c:1381 +msgid "Unable to open document" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:1542 +msgid "Open Document" +msgstr "ŠŠ“ŠŗŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:1603 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° ŃŃŠ²Š°ŃŃŃŃ ŃŃŠ¼Š±Š°Š»ŃŃŠ½ŃŃ ŃŠæŠ°ŃŃŠ»ŠŗŃ \"%s\": %s" + +#: ../shell/ev-window.c:1632 +msgid "Cannot open a copy." +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŠŗŠ¾ŠæŃŃ." + +#: ../shell/ev-window.c:1876 ../shell/ev-window.c:1926 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š°Ń Š°Š²Š°ŃŃ ŃŠ°Š¹Š» ŃŠŗ \"%s\"." + +#: ../shell/ev-window.c:1971 +msgid "Save a Copy" +msgstr "ŠŠ°Ń Š°Š²Š°ŃŃ ŠŗŠ¾ŠæŃŃ" + +#: ../shell/ev-window.c:2092 ../shell/ev-window.c:3218 +msgid "Failed to print document" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š½Š°Š“ŃŃŠŗŠ°Š²Š°ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:2256 +msgid "Printing is not supported on this printer." +msgstr "ŠŃŃŠŗ Š½Š° Š³ŃŃŠ°Š¹ Š“ŃŃŠŗŠ°ŃŃŃ Š½Šµ ŠæŠ°Š“ŃŃŃŠ¼Š»ŃŠ²Š°ŠµŃŃŠ°." + +#: ../shell/ev-window.c:2382 ../shell/ev-window.c:4184 +msgid "Print" +msgstr "ŠŃŃŠŗ" + +#: ../shell/ev-window.c:2996 +msgid "Toolbar Editor" +msgstr "Š ŃŠ“Š°ŠŗŃŠ°Ń ŠæŠ°Š½ŃŠ»Ń ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ŠŃŠ°Š³Š»ŃŠ“Š°Š»ŃŠ½ŃŠŗ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń.\n" +"ŠŃŠŗŠ°ŃŃŃŃŠ¾ŃŠ²Š°Šµ poppler %s (%s)" + +#: ../shell/ev-window.c:3541 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince - Š³ŃŃŠ° ŃŠ²Š°Š±Š¾Š“Š½Š°Ń ŠæŃŠ°Š³ŃŠ°Š¼Š°; Š²Ń Š¼Š¾Š¶Š°ŃŠµ ŃŠ°ŃŠæŠ°ŃŃŃŠ“Š¶Š²Š°ŃŃ ŃŠµ Ń/Š°Š»ŃŠ±Š¾ " +"Š·ŃŠ¼ŃŠ½ŃŃŃ Š·Š³Š¾Š“Š½Š° Š· ŃŠ¼Š¾Š²Š°Š¼Ń Š»ŃŃŃŠ½Š·ŃŃ GNU General Public License, Š²ŃŠ“Š°Š“Š·ŠµŠ½Š°Š¹ " +"Free Software Foundation; Š»ŃŠ±Š°Ń Š²ŃŃŃŃŃ Š»ŃŃŃŠ½Š·ŃŃ (2 Ń Š²ŃŃŃŠ¹) Š¼Š¾Š¶Š° Š±ŃŃŃ " +"Š²ŃŠŗŠ°ŃŃŃŃŠ°Š½Š° Š½Š° Š²Š°Ń Š²ŃŠ±Š°Ń.\n" + +#: ../shell/ev-window.c:3545 +msgid "" +"Evince 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.\n" +msgstr "" +"ŠŃŠ°Š³ŃŠ°Š¼Š° Evince ŃŠ°ŃŠæŠ°ŃŃŃŠ“Š¶Š²Š°ŠµŃŃŠ° Š· Š½Š°Š“Š·ŠµŃŠ¹, ŃŃŠ¾ ŃŠ½Š° Š±ŃŠ“Š·Šµ ŠŗŠ°ŃŃŃŠ½Š°Š¹, Š°Š»Šµ ŠŠŠ " +"ŠŠŠ ŠŠŠ¢Š«Š Š½Š° ŃŠ¾Šµ, ŃŃŠ¾ ŃŠ½Š° Š±ŃŠ“Š·Šµ ŠŠŠ Š«Š”ŠŠŠ ŃŃ ŠŠ Š«ŠŠŠ¢ŠŠŠ ŠŠŠÆ ŠŠ ŠŠŠ¢Š«Š§ŠŠŠŠ " +"ŠŠŠ«ŠŠŠŠ¬ŠŠÆ. ŠŠ»ŃŠ“Š·ŃŃŠµ ŠæŠ°Š“ŃŠ°Š±ŃŠ·Š½Š°ŃŃŃŃ Ń GNU General Public License.\n" + +#: ../shell/ev-window.c:3549 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"ŠŃ ŠæŠ°Š²ŃŠ½Š½Ń Š±ŃŠ»Ń Š°ŃŃŃŠ¼Š°ŃŃ ŠŗŠ¾ŠæŃŃ GNU General Public License ŃŠ°Š·Š°Š¼ Š· Evince; " +"ŠŗŠ°Š»Ń Š½Šµ - Š»ŃŃŃŃŠ¹ŃŠµ Ń Free Software Foundation, Inc., 59 Temple Place, Suite " +"330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:3573 ../shell/main.c:349 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3576 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2005 ŠŃŃŠ°ŃŃ Evince" + +#: ../shell/ev-window.c:3582 +msgid "translator-credits" +msgstr "" +"Ales Nyakhaychyk <nab@mail.by>\n" +"ŠŠ³Š°Ń ŠŃŠ°ŃŃŃŠŗŠ° <ihar.hrachyshka@gmail.com>" + +#: ../shell/ev-window.c:4096 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:4097 +msgid "_Edit" +msgstr "_Š ŃŠ“Š°Š³Š°Š²Š°Š½ŃŠ½Šµ" + +#: ../shell/ev-window.c:4098 +msgid "_View" +msgstr "_ŠŃŠ³Š»ŃŠ“" + +#: ../shell/ev-window.c:4099 +msgid "_Go" +msgstr "_ŠŠµŃŠ°Š¹ŃŃŃŃ" + +#: ../shell/ev-window.c:4100 +msgid "_Help" +msgstr "_ŠŠ°Š²ŠµŠ“ŠŗŠ°" + +#. File menu +#: ../shell/ev-window.c:4103 ../shell/ev-window.c:4280 +#: ../shell/ev-window.c:4352 +msgid "_Open..." +msgstr "_ŠŠ“ŠŗŃŃŃŃ..." + +#: ../shell/ev-window.c:4104 ../shell/ev-window.c:4353 +msgid "Open an existing document" +msgstr "ŠŠ“ŠŗŃŃŃŃ ŃŃŠ½ŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4106 +msgid "Op_en a Copy" +msgstr "ŠŠ“ŠŗŃŃŃŃ _ŠŗŠ¾ŠæŃŃ" + +#: ../shell/ev-window.c:4107 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŠ“ŠŗŃŃŃŃ ŠŗŠ¾ŠæŃŃ Š³ŃŃŠ°Š³Š° Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ° Ń Š½Š¾Š²ŃŠ¼ Š²Š°ŠŗŠ½Šµ" + +#: ../shell/ev-window.c:4109 ../shell/ev-window.c:4282 +msgid "_Save a Copy..." +msgstr "ŠŠ°_Ń Š°Š²Š°ŃŃ ŠŗŠ¾ŠæŃŃ..." + +#: ../shell/ev-window.c:4110 +msgid "Save a copy of the current document" +msgstr "ŠŠ°Ń Š°Š²Š°ŃŃ ŠŗŠ¾ŠæŃŃ Š³ŃŃŠ°Š³Š° Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°" + +#: ../shell/ev-window.c:4112 +msgid "Print Set_up..." +msgstr "_ŠŠ°Š»Š°Š“ŠŗŠ° Š“ŃŃŠŗŃ..." + +#: ../shell/ev-window.c:4113 +msgid "Setup the page settings for printing" +msgstr "ŠŃŠ¼ŠµŠ½Š° Š½Š°ŃŃŠ°ŃŠ»ŠµŠ½ŃŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½Š°Šŗ Š“Š»Ń Š“ŃŃŠŗŃ" + +#: ../shell/ev-window.c:4115 +msgid "_Print..." +msgstr "_ŠŃŃŠŗ..." + +#: ../shell/ev-window.c:4116 ../shell/ev-window.c:4185 +msgid "Print this document" +msgstr "ŠŃŃŠŗŠ°Š²Š°ŃŃ Š³ŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4118 +msgid "P_roperties" +msgstr "_Š£Š»Š°ŃŃŃŃŠ²Š°ŃŃŃŃ" + +#: ../shell/ev-window.c:4126 +msgid "Select _All" +msgstr "ŠŃŠ»ŃŃŃŃŃ _ŃŃŃ" + +#: ../shell/ev-window.c:4128 +msgid "_Find..." +msgstr "ŠŠ¾_ŃŃŠŗ..." + +#: ../shell/ev-window.c:4129 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ¾ŃŃŠŗ ŃŠ»Š¾Š²Š° / Š²ŃŃŠ°Š·Š° Ń Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠµ" + +#: ../shell/ev-window.c:4131 +msgid "Find Ne_xt" +msgstr "ŠØŃŠŗŠ°ŃŃ Š“Š°_Š»ŠµŠ¹" + +#: ../shell/ev-window.c:4133 +msgid "Find Pre_vious" +msgstr "ŠØŃŠŗŠ°ŃŃ ŃŠ°_Š½ŠµŠ¹" + +#: ../shell/ev-window.c:4135 +msgid "T_oolbar" +msgstr "ŠŠ°Š½ŃŠ»Ń _ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../shell/ev-window.c:4137 +msgid "Rotate _Left" +msgstr "ŠŠ°Š²ŃŃŠ½ŃŃŃ Š½Š°_Š»ŠµŠ²Š°" + +#: ../shell/ev-window.c:4139 +msgid "Rotate _Right" +msgstr "ŠŠ°Š²ŃŃŠ½ŃŃŃ Š½Š°_ŠæŃŠ°Š²Š°" + +#: ../shell/ev-window.c:4144 +msgid "Enlarge the document" +msgstr "ŠŠ°Š²ŃŠ»ŃŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4147 +msgid "Shrink the document" +msgstr "ŠŠ°Š¼ŠµŠ½ŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4149 +msgid "_Reload" +msgstr "ŠŠµŃŠ°_ŃŃŃŠ°ŃŃ" + +#: ../shell/ev-window.c:4150 +msgid "Reload the document" +msgstr "ŠŠµŃŠ°ŃŃŃŠ°ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4153 +msgid "Auto_scroll" +msgstr "ŠŃŃŠ°ŠæŃŠ°_ŠŗŃŃŃŠŗŠ°" + +#. Go menu +#: ../shell/ev-window.c:4157 +msgid "_Previous Page" +msgstr "_ŠŠ°ŠæŃŃŃŠ“Š½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/ev-window.c:4158 +msgid "Go to the previous page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŠæŠ°ŠæŃŃŃŠ“Š½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-window.c:4160 +msgid "_Next Page" +msgstr "_ŠŠ°ŃŃŃŠæŠ½Š°Ń ŃŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/ev-window.c:4161 +msgid "Go to the next page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° Š½Š°ŃŃŃŠæŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-window.c:4163 +msgid "_First Page" +msgstr "Š_ŠµŃŃŠ°Ń ŃŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/ev-window.c:4164 +msgid "Go to the first page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° ŠæŠµŃŃŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-window.c:4166 +msgid "_Last Page" +msgstr "ŠŠæ_Š¾ŃŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/ev-window.c:4167 +msgid "Go to the last page" +msgstr "ŠŠµŃŠ°Š¹ŃŃŃŃ Š½Š° Š°ŠæŠ¾ŃŠ½ŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#. Help menu +#: ../shell/ev-window.c:4171 +msgid "_Contents" +msgstr "_ŠŃŠ¼ŠµŃŃ" + +#: ../shell/ev-window.c:4174 +msgid "_About" +msgstr "_ŠŠ± ŠæŃŠ°Š³ŃŠ°Š¼Šµ" + +#. Toolbar-only +#: ../shell/ev-window.c:4178 +msgid "Leave Fullscreen" +msgstr "ŠŃŃŠ½ŃŃŃŠ° Ń Š·Š²ŃŃŠ°Š¹Š½Ń ŃŃŠ¶ŃŠ¼" + +#: ../shell/ev-window.c:4179 +msgid "Leave fullscreen mode" +msgstr "ŠŃŠ¹ŃŃŃŃ Š· ŠæŠ¾ŃŠ½Š°ŃŠŗŃŠ°Š½Š½Š°Š³Š° ŃŃŠ¶ŃŠ¼Ń" + +#: ../shell/ev-window.c:4181 +msgid "Start Presentation" +msgstr "ŠŠ°ŠæŃŃŠŗ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:4182 +msgid "Start a presentation" +msgstr "ŠŠ°ŠæŃŃŃŃŃŃŃ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#. View Menu +#: ../shell/ev-window.c:4236 +msgid "_Toolbar" +msgstr "_ŠŠ°Š½ŃŠ»Ń ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../shell/ev-window.c:4237 +msgid "Show or hide the toolbar" +msgstr "ŠŠ°ŠŗŠ°Š·Š°ŃŃ / ŃŃ Š°Š²Š°ŃŃ ŠæŠ°Š½ŃŠ»Ń ŃŃŠ¾Š“ŠŗŠ°Ń" + +#: ../shell/ev-window.c:4239 +msgid "Side _Pane" +msgstr "ŠŠ°ŠŗŠ°Š²Š°Ń _ŠæŠ°Š½ŃŠ»Ń" + +#: ../shell/ev-window.c:4240 +msgid "Show or hide the side pane" +msgstr "ŠŠ°ŠŗŠ°Š·Š°ŃŃ / ŃŃ Š°Š²Š°ŃŃ Š±Š°ŠŗŠ°Š²ŃŃ ŠæŠ°Š½ŃŠ»Ń" + +#: ../shell/ev-window.c:4242 +msgid "_Continuous" +msgstr "ŠŠ° _ŃŠ°ŃŠ·Šµ" + +#: ../shell/ev-window.c:4243 +msgid "Show the entire document" +msgstr "ŠŠ°ŠŗŠ°Š·Š°ŃŃ ŃŠ²ŠµŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń" + +#: ../shell/ev-window.c:4245 +msgid "_Dual" +msgstr "_ŠŠ°Š“Š²Š¾ŠµŠ½Ń" + +#: ../shell/ev-window.c:4246 +msgid "Show two pages at once" +msgstr "ŠŠ°ŠŗŠ°Š·Š²Š°ŃŃ ŠæŠ° Š“Š·ŃŠ²Šµ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-window.c:4248 +msgid "_Fullscreen" +msgstr "_ŠŠ¾ŃŠ½Ń ŃŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4249 +msgid "Expand the window to fill the screen" +msgstr "ŠŠ°ŃŃŃŃŃŃ Š²Š°ŠŗŠ½Š¾ Š½Š° ŃŠ²ŠµŃŃ ŃŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4251 +msgid "Pre_sentation" +msgstr "_ŠŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:4252 +msgid "Run document as a presentation" +msgstr "ŠŠ“ŠŗŃŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń Ń ŃŃŠ¶ŃŠ¼Šµ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:4254 +msgid "_Best Fit" +msgstr "ŠŠ°Š¹_Š»ŠµŠæŃŃ Š²ŃŠ³Š»ŃŠ“" + +#: ../shell/ev-window.c:4255 +msgid "Make the current document fill the window" +msgstr "ŠŠ°ŠæŠ¾ŃŠ½ŃŃŃ Š³ŃŃŃŠ¼ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Š¼ Š²Š°ŠŗŠ½Š¾" + +#: ../shell/ev-window.c:4257 +msgid "Fit Page _Width" +msgstr "Š Š°ŃŃŃŃŠ³Š½ŃŃŃ ŠæŠ° _ŃŃŃŃŠ½Ń" + +#: ../shell/ev-window.c:4258 +msgid "Make the current document fill the window width" +msgstr "Š Š°ŃŃŃŃŠ³Š½ŃŃŃ Š³ŃŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń ŠæŠ° ŃŃŃŃŠ½Ń Š²Š°ŠŗŠ½Š°" + +#. Links +#: ../shell/ev-window.c:4265 +msgid "_Open Link" +msgstr "ŠŠ“_ŠŗŃŃŃŃ ŃŠæŠ°ŃŃŠ»ŠŗŃ" + +#: ../shell/ev-window.c:4267 +msgid "_Go To" +msgstr "_ŠŠµŃŠ°Š¹ŃŃŃŃ" + +#: ../shell/ev-window.c:4269 +msgid "Open in New _Window" +msgstr "ŠŠ“ŠŗŃŃŃŃ Ń _Š½Š¾Š²ŃŠ¼ Š²Š°ŠŗŠ½Šµ" + +#: ../shell/ev-window.c:4271 +msgid "_Copy Link Address" +msgstr "_Š”ŠŗŠ°ŠæŃŃŠ²Š°ŃŃ Š°Š“ŃŠ°Ń ŃŠæŠ°ŃŃŠ»ŠŗŃ" + +#: ../shell/ev-window.c:4273 +msgid "_Save Image As..." +msgstr "_ŠŠ°ŠæŃŃŠ°ŃŃ Š¼Š°Š»ŃŠ½Š°Šŗ ŃŠŗ..." + +#: ../shell/ev-window.c:4275 +msgid "Copy _Image" +msgstr "Š”ŠŗŠ°ŠæŃŃŠ²Š°ŃŃ _Š¼Š°Š»ŃŠ½Š°Šŗ" + +#: ../shell/ev-window.c:4314 +msgid "Page" +msgstr "Š”ŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/ev-window.c:4315 +msgid "Select Page" +msgstr "ŠŃŠ»ŃŃŃŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ" + +#: ../shell/ev-window.c:4326 +msgid "Zoom" +msgstr "ŠŠ°ŃŃŠ°Š±" + +#: ../shell/ev-window.c:4328 +msgid "Adjust the zoom level" +msgstr "ŠŃŠ¼ŃŠ½ŃŃŃ Š¼Š°ŃŃŠ°Š±Š°Š²Š°Š½ŃŠ½Šµ" + +#: ../shell/ev-window.c:4338 +msgid "Navigation" +msgstr "ŠŠ°Š²ŃŠ³Š°ŃŃŃ" + +#: ../shell/ev-window.c:4340 +msgid "Back" +msgstr "ŠŠ°Š·Š°Š“" + +#. translators: this is the history action +#: ../shell/ev-window.c:4343 +msgid "Move across visited pages" +msgstr "ŠŠµŃŠ°Ń Š¾Š“ ŠæŠ°Š¼ŃŠ¶ Š½Š°Š²ŠµŠ“Š°Š½ŃŠ¼Ń ŃŃŠ°ŃŠ¾Š½ŠŗŠ°Š¼Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4373 +msgid "Previous" +msgstr "ŠŠ°ŠæŃŃŃŠ“Š½ŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4378 +msgid "Next" +msgstr "ŠŠ°ŃŃŃŠæŠ½Š°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4382 +msgid "Zoom In" +msgstr "ŠŠ°Š±Š»ŃŠ·ŃŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4386 +msgid "Zoom Out" +msgstr "ŠŠ“Š“Š°Š»ŃŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4394 +msgid "Fit Width" +msgstr "ŠŠ° ŃŃŃŃŠ½Ń" + +#: ../shell/ev-window.c:4607 +msgid "Unable to open external link" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ Š²Š¾Š½ŠŗŠ°Š²ŃŃ ŃŠæŠ°ŃŃŠ»ŠŗŃ" + +#: ../shell/ev-window.c:4777 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŃŃŠŗŠ°ŃŃ Š°Š“ŠæŠ°Š²ŠµŠ“Š½Ń ŃŠ°Š¹ŃŠ¼Š°Ń ŠŗŠ°Š± Š·Š°Ń Š°Š²Š°ŃŃ Š²ŃŠ“Š°ŃŃŃ" + +#: ../shell/ev-window.c:4813 +msgid "The image could not be saved." +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š°ŠæŃŃŠ°ŃŃ Š¼Š°Š»ŃŠ½Š°Šŗ." + +#: ../shell/ev-window.c:4845 +msgid "Save Image" +msgstr "ŠŠ°ŠæŃŃŠ°ŃŃ Š¼Š°Š»ŃŠ½Š°Šŗ" + +#: ../shell/ev-window.c:4904 +msgid "Unable to open attachment" +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š°Š“ŠŗŃŃŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ" + +#: ../shell/ev-window.c:4956 +msgid "The attachment could not be saved." +msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° Š·Š°Ń Š°Š²Š°ŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ." + +#: ../shell/ev-window.c:5001 +msgid "Save Attachment" +msgstr "ŠŠ°ŠæŃŃŠ°ŃŃ ŃŠŗŠ»Š°Š“Š°Š½ŃŠ½Šµ" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ŃŃŃŠ±Š° Š²ŃŠ·Š½Š°ŃŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ŠŠ°-ŠæŠ°ŃŃŃŃŠ½ŃŠ½Ń" + +#: ../shell/main.c:58 +msgid "The page of the document to display." +msgstr "ŠŠ“Š»ŃŃŃŃŠ°Š²Š°ŃŃ Š³ŃŃŃŃ ŃŃŠ°ŃŠ¾Š½ŠŗŃ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°." + +#: ../shell/main.c:58 +msgid "PAGE" +msgstr "Š”ŃŠ°ŃŠ¾Š½ŠŗŠ°" + +#: ../shell/main.c:59 +msgid "Run evince in fullscreen mode" +msgstr "Š”ŃŠ°ŃŃŠ°Š²Š°ŃŃ Evince Ń ŠæŠ¾ŃŠ½Š°ŃŠŗŃŠ°Š½Š½ŃŠ¼ ŃŃŠ¶ŃŠ¼Šµ" + +#: ../shell/main.c:60 +msgid "Run evince in presentation mode" +msgstr "Š”ŃŠ°ŃŃŠ°Š²Š°ŃŃ Evince Ń ŃŃŠ¶ŃŠ¼Šµ ŠæŃŃŠ·ŃŠ½ŃŠ°ŃŃŃ" + +#: ../shell/main.c:61 +msgid "Run evince as a previewer" +msgstr "Š”ŃŠ°ŃŃŠ°Š²Š°ŃŃ Evince Ń ŃŃŠ¶ŃŠ¼Šµ ŠæŠµŃŠ°Š“Š°Š³Š»ŃŠ“Š½ŃŠŗŠ°" + +#: ../shell/main.c:62 +msgid "The word or phrase to find in the document" +msgstr "Š”Š»Š¾Š²Š° ŃŃ Š²ŃŃŠ°Š· Š“Š»Ń ŠæŠ¾ŃŃŠŗŃ Ń Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠµ" + +#: ../shell/main.c:62 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[Š¤Š°Š¹Š»...]" + +#: ../shell/main.c:332 +msgid "MATE Document Viewer" +msgstr "ŠŃŠ°Š³Š»ŃŠ“Š°Š»ŃŠ½ŃŠŗ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń Š“Š»Ń MATE" + +#: ../shell/main.c:392 +msgid "Evince Document Viewer" +msgstr "ŠŃŠ°Š³Š»ŃŠ“Š°Š»ŃŠ½ŃŠŗ Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń Evince" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŠ°Š·Š²Š¾Š»ŠµŠ½ŃŃ Š»ŃŠ³ŃŃŠ½ŃŃ Š·Š½Š°ŃŃŠ½ŃŠ½Ń, true: ŃŃŠ²Š°ŃŠ°ŃŃ Š¼ŃŠ½ŃŃŃŃŃŃ,false: Š½Šµ ŃŃŠ²Š°ŃŠ°ŃŃ." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Š”ŃŠ²Š°ŃŠ°ŃŃ Š¼ŃŠ½ŃŃŃŃŃŃ Š“Š»Ń PDF Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ°Š³Š°Š“ ŃŃŠ²Š°ŃŃŠ½ŃŠ½Ń Š¼ŃŠ½ŃŠ°ŃŃŃŠ°Ń Š“Š»Ń PDF Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Š ŃŃŠ°ŃŃŠ½Ń Š·Š°Š³Š°Š“ Ń Š°ŃŠ³ŃŠ¼ŃŠ½ŃŃ Š“Š»Ń ŃŃŠ²Š°ŃŠ°Š»ŃŠ½ŃŠŗŠ° Š¼ŃŠ½ŃŃŃŃŃŠ°Ń Š“Š»Ń PDF Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°Ń. " +"ŠŠ». Š“Š°ŠŗŃŠ¼ŃŠ½ŃŠ°ŃŃŃ Š“Š»Ń caja thumbnailer." + +#~ msgid "No document loaded." +#~ msgstr "ŠŠ°ŠŗŃŠ¼ŃŠ½Ń Š½Šµ Š°Š“ŠŗŃŃŃŃ." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ŠŠ°Š¼ŃŠ»ŠŗŠ° ŃŠ°ŃŠæŠ°ŠŗŠ¾ŃŠ²Š°Š½ŃŠ½Ń ŃŠ°Š¹Š»Š° \"%s\":\n" + +#~ msgid "File is not readable." +#~ msgstr "ŠŠµŠ¼Š°Š³ŃŃŠ¼Š° ŠæŃŠ°ŃŃŃŠ°ŃŃ ŃŠ°Š¹Š»." + +#~ msgid "Document loaded." +#~ msgstr "ŠŠ°ŠŗŃŠ¼ŃŠ½Ń Š°Š“ŠŗŃŃŃŃ." + +#~ msgid "Images" +#~ msgstr "ŠŠ°Š»ŃŠ½ŠŗŃ" + +#~ msgid "Open ā%sā" +#~ msgstr "ŠŠ“ŠŗŃŃŃŃ \"%s\"" + +#~ msgid "Empty" +#~ msgstr "ŠŃŃŃŠ°" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "ŠŃŠ¼Š° ŠæŠ°Š“ŃŃŃŠ¼ŠŗŃ ŃŃŠ²Š°ŃŃŠ½ŃŠ½Ń ŃŠ°Š¹Š»Š°Ń PDF" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ŠŃ ŃŠæŃŠ°Š±ŃŠµŃŠµ Š½Š°Š“ŃŃŠŗŠ°Š²Š°ŃŃ Š“Š°ŠŗŃŠ¼ŃŠ½Ń Š½Š° Š“ŃŃŠŗŠ°ŃŃŃ ŠæŃŠ°Š· Š“ŃŠ°Š¹Š²ŃŃ \"%s\". ŠŃŃŠ°Ń " +#~ "ŠæŃŠ°Š³ŃŠ°Š¼Š° ŠæŠ°ŃŃŠ°Š±ŃŠµ Š½Š°ŃŃŠ½Š°ŃŃŃŃ Š“ŃŠ°Š¹Š²ŃŃŠ° PostScript." + +#~ msgid "Pages" +#~ msgstr "Š”ŃŠ°ŃŠ¾Š½ŠŗŃ" + +#~ msgid "Broken pipe." +#~ msgstr "ŠŠ»Š°Š¼Š°Š½Ń ŃŃŃŠ±Š°ŠæŃŠ°Š²Š¾Š“." diff --git a/po/be@latin.po b/po/be@latin.po new file mode 100644 index 00000000..77bfb03d --- /dev/null +++ b/po/be@latin.po @@ -0,0 +1,1428 @@ +# BieÅaruski pierakÅad evince +# Copyright (C) 2007 Ihar Hrachyshka +# This file is distributed under the same license as the evince package. +# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-18 02:02+0200\n" +"PO-Revision-Date: 2009-02-18 02:04+0200\n" +"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n" +"Language-Team: Belarusian Latin <http://be-latin.open-tran.eu>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../backend/comics/comics-document.c:131 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:284 +msgid "Unknown MIME Type" +msgstr "Nieviadomy typ MIME" + +#: ../backend/comics/comics-document.c:165 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Hety fajÅ nia maje typu MIME, aznaÄanaha dla komiksaÅ: %s" + +#: ../backend/comics/comics-document.c:186 +msgid "File corrupted." +msgstr "FajÅ sapsavany." + +#: ../backend/comics/comics-document.c:198 +msgid "No files in archive." +msgstr "U archivie niama fajÅaÅ." + +#: ../backend/comics/comics-document.c:230 +#, c-format +msgid "No images found in archive %s" +msgstr "U archivie %s nia znojdziena vyjavaÅ" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Knihi komiksaÅ" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "Dakument DJVU maje niapravilny farmat" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "" +"Dakument skÅadajecca Åŗ niekalkich fajÅaÅ. Prynamsi adzin Åŗ ich niedastupny." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Dakumenty Djvu" + +#: ../backend/dvi/dvi-document.c:106 +msgid "DVI document has incorrect format" +msgstr "Dakument DVI maje niapravilny farmat" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dakumenty DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:700 +msgid "Yes" +msgstr "Tak" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:703 +msgid "No" +msgstr "Nie" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:781 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:785 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:787 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:789 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "Unknown font type" +msgstr "Nieviadomy typ Å”ryftu" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "No name" +msgstr "Biaz nazvy" + +#: ../backend/pdf/ev-poppler.cc:825 +msgid "Embedded subset" +msgstr "Ubudavanaje padmnostva" + +#: ../backend/pdf/ev-poppler.cc:827 +msgid "Embedded" +msgstr "Ubudavana" + +#: ../backend/pdf/ev-poppler.cc:829 +msgid "Not embedded" +msgstr "Nie Åbudavana" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dakumenty PDF" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "Niapravilny dakument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "SÅajdy Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Biez pamyÅak" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nie staje pamiaci" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "NiemahÄyma znajÅci syhnaturu zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Niapravilny zip-fajÅ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "Å matfajÅavyja zip-archivy nie padtrymvajucca" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "NiemahÄyma adÄyniÄ fajÅ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "NiemahÄyma praÄytaÄ Åŗviestki z fajÅu" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "NiemahÄyma znajÅci fajÅ u zip-archivie" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Nieviadomaja pamyÅka" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "PadÄas adÄynieÅnia dakumentu ā%sā adbyÅasia pamyÅka" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Nie ÅdaÅosia zapisaÄ dakument ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dakumenty PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "NiemahÄyma zapisaÄ daÅuÄeÅnie ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "NiemahÄyma byÅo adÄyniÄ daÅuÄeÅnie ā%sā: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "NiemahÄyma byÅo adÄyniÄ daÅuÄeÅnie ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Typ fajÅaÅ %s (%s) nie absÅuhoÅvajecca" + +#: ../libdocument/ev-document-factory.c:357 +msgid "All Documents" +msgstr "Usie dakumenty" + +#: ../libdocument/ev-document-factory.c:389 +msgid "All Files" +msgstr "Usie fajÅy" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "_SpaÅuÄy" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "SpaÅuÄy _ananimna" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "SpaÅuÄy _karystalnika:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "_Karystalnik:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_Damen:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Parol:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_Adrazu zabudÅŗsia pra parol" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_Zapaminaj parol dla sesii" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_Zapaminaj nazaÅždy" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "FajÅ nia joÅÄ sapraÅdnym fajÅam staÅa (.desktop)" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nieviadomaja versija fajÅa staÅa ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "UkluÄeÅnie %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikacyja nie pryjmaje dakumentaÅ z zahadnaha radka" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nieviadomaja opcyja ÅkluÄeÅnia: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Nie ÅdaÅosia pieradaÄ adrasoÅ dakumentaÅ dla fajÅa staÅa z typam āLinkā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "NiemahÄyma ÅkluÄaÄ" + +#: ../cut-n-paste/smclient/eggsmclient.c:224 +msgid "Disable connection to session manager" +msgstr "VykluÄy spaÅuÄeÅnie z kiraÅnikom sesijaÅ" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Specify file containing saved configuration" +msgstr "VyznaÄy fajÅ z zachavanymi naÅadami" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "FILE" +msgstr "FAJÅ" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "Specify session management ID" +msgstr "VyznaÄy identyfikatar sesii" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:244 +msgid "Session management options:" +msgstr "Opcyi kiravaÅnia sesijaj:" + +#: ../cut-n-paste/smclient/eggsmclient.c:245 +msgid "Show session management options" +msgstr "Pakažy opcyi kiravaÅnia sesijaj" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:918 +#, c-format +msgid "Show ā_%sā" +msgstr "Pakažy ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1381 +msgid "_Move on Toolbar" +msgstr "Pieraniasi na panel pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1382 +msgid "Move the selected item on the toolbar" +msgstr "Pieraniasi abrany element na panel pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1383 +msgid "_Remove from Toolbar" +msgstr "_Vydal z paneli pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1384 +msgid "Remove the selected item from the toolbar" +msgstr "Vydal abrany element z paneli pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1385 +msgid "_Delete Toolbar" +msgstr "_Vydal panel pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1386 +msgid "Remove the selected toolbar" +msgstr "Vydal abranuju panel pryÅadÅŗdzia" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Separatar" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "Pracuje Å režymie prezentacyi" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5293 +msgid "Best Fit" +msgstr "Najlepiej dapasuj" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Dapasuj da Å”yryni staronki" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4271 +#: ../shell/ev-window-title.c:149 +#, c-format +msgid "Document Viewer" +msgstr "Ahladalnik dakumentaÅ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Äytaje Å”matstaronkavyja dakumenty" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Nie zvažaj na abmiežavaÅni dakumentu" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Nie zvažaj na abmiežavaÅni dakumentu, napr., na abmiežavaÅni mahÄymaÅci " +"kapijavaÅnia albo druku." + +#: ../properties/ev-properties-main.c:113 +msgid "Document" +msgstr "Dakument" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "Nazva:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "Miesca:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Tema:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "AÅtar:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "KluÄavyja sÅovy:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "Vytvorca:" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "Stvaralnik:" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "Stvorany:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "Źmienieny:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "KolkaÅÄ staronak:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Aptymizavany:" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "Farmat:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "BiaÅpieka:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "Pamier arkuÅ”u:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "Niama" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f calaÅ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, vertykalny (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, haryzantalny (%s)" + +#: ../libview/ev-jobs.c:949 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "PamyÅka stvareÅnia fajÅu ā%sā: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Prakruci vyÅ”ej" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Prakruci nižej" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Prakruci abÅ”ar ahladu vyÅ”ej" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Prakruci abÅ”ar ahladu nižej" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Ahlad dakumentu" + +#: ../libview/ev-view.c:1417 +msgid "Go to first page" +msgstr "Idzi da pierÅ”aj staronki" + +#: ../libview/ev-view.c:1419 +msgid "Go to previous page" +msgstr "Idzi da papiaredniaj staronki" + +#: ../libview/ev-view.c:1421 +msgid "Go to next page" +msgstr "Idzi da nastupnaj staronki" + +#: ../libview/ev-view.c:1423 +msgid "Go to last page" +msgstr "Idzi da apoÅ”niaj staronki" + +#: ../libview/ev-view.c:1425 +msgid "Go to page" +msgstr "Idzi da staronki" + +#: ../libview/ev-view.c:1427 +msgid "Find" +msgstr "Å ukaj" + +#: ../libview/ev-view.c:1455 +#, c-format +msgid "Go to page %s" +msgstr "Idzi da staronki %s" + +#: ../libview/ev-view.c:1461 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Idzi da %s z fajÅu ā%sā" + +#: ../libview/ev-view.c:1464 +#, c-format +msgid "Go to file ā%sā" +msgstr "Idzi da fajÅu ā%sā" + +#: ../libview/ev-view.c:1472 +#, c-format +msgid "Launch %s" +msgstr "Startuj %s" + +#: ../libview/ev-view.c:2387 +msgid "End of presentation. Press Escape to exit." +msgstr "Kaniec prezentacyi. NaciÅni Escape, kab vyjÅci." + +#: ../libview/ev-view.c:3278 +msgid "Jump to page:" +msgstr "SkoÄ da staronki:" + +#: ../libview/ev-view.c:3541 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "Zahruzka..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Radok poÅ”uku" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "Nazva Å”ukanaha radka" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "Z ulikam rehistru" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "PRAŬDA dla poÅ”uku z ulikam rehistru" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "Koler padÅviatleÅnia" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "Koler padÅviatleÅnia dla Åsich supadzieÅniaÅ" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Dziejny koler" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "Koler padÅcietki dla dziejnaha supadzieÅnia" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Å ukaj:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5027 +msgid "Find Pre_vious" +msgstr "Å ukaj _raniej" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Znajdzi papiaredniaje supadzieÅnie z Å”ukanym radkom" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5025 +msgid "Find Ne_xt" +msgstr "Å ukaj _dalej" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Znajdzi nastupnaje supadzieÅnie z Å”ukanym radkom" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Z ulikam rehistru" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "PierakluÄy režym uliku rehistru" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Parol dla dakumentu %s" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "AdÄyni niadaÅni dakument" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d z %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "z %d" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Hety dakument zaÄynieny, i jaho možna praÄytaÄ, tolki ÅvioÅÅ”y pravilny parol." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_AdÄyni dakument" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Uviadzi parol" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Patrebny parol" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dakument ā%sā zaÄynieny j patrabuje parol, kab adÄyniÄ jaho." + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "_Adrazu zabudÅŗsia pra parol" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "_Zapaminaj parol dla sesii" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "Zapaminaj _nazaÅždy" + +#. Initial state +#: ../shell/ev-print-operation.c:318 +msgid "Preparing to print ..." +msgstr "PadrychtoÅka da druku..." + +#: ../shell/ev-print-operation.c:320 +msgid "Finishing..." +msgstr "ZakanÄeÅnie..." + +#: ../shell/ev-print-operation.c:322 +#, c-format +msgid "Printing page %d of %d..." +msgstr "DrukavaÅnie staronki %d z %d..." + +#: ../shell/ev-print-operation.c:1010 +msgid "Printing is not supported on this printer." +msgstr "Hetaja drukarka nie padtrymvaje druku." + +#: ../shell/ev-print-operation.c:1136 ../shell/ev-window.c:5078 +msgid "Print" +msgstr "Drukuj" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "UÅaÅcivaÅci" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "Ahulnaje" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "Å ryfty" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Å ryft" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Źbirajucca Åŗviestki ab Å”ryftach... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "DaÅuÄeÅni" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "PÅasty" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "Druk..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:751 +msgid "Thumbnails" +msgstr "Minijatury" + +#: ../shell/ev-window.c:843 +#, c-format +msgid "Page %s - %s" +msgstr "Staronka %s - %s" + +#: ../shell/ev-window.c:845 +#, c-format +msgid "Page %s" +msgstr "Staronka %s" + +#: ../shell/ev-window.c:1255 +msgid "The document contains no pages" +msgstr "U dakumencie niama staronak" + +#: ../shell/ev-window.c:1479 ../shell/ev-window.c:1636 +msgid "Unable to open document" +msgstr "NiemahÄyma adÄyniÄ dakument" + +#: ../shell/ev-window.c:1610 +#, c-format +msgid "Loading document from %s" +msgstr "ÄytaÅnie dakumentu z %s" + +#: ../shell/ev-window.c:1748 ../shell/ev-window.c:1941 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Zahruzka dakumentu (%d%%)" + +#: ../shell/ev-window.c:1887 +#, c-format +msgid "Reloading document from %s" +msgstr "PieraÄytvaÅnie dakumentu z %s" + +#: ../shell/ev-window.c:1920 +msgid "Failed to reload document." +msgstr "Nie ÅdaÅosia pieraÄytaÄ dakument." + +#: ../shell/ev-window.c:2069 +msgid "Open Document" +msgstr "AdÄyni dakument" + +#: ../shell/ev-window.c:2130 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "NiemahÄyma stvaryÄ symbaliÄnuju spasyÅku ā%sā: %s" + +#: ../shell/ev-window.c:2159 +msgid "Cannot open a copy." +msgstr "NiemahÄyma adÄyniÄ kopiju." + +#: ../shell/ev-window.c:2399 +#, c-format +msgid "Saving document to %s" +msgstr "Zapis dakumentu Å %s" + +#: ../shell/ev-window.c:2402 +#, c-format +msgid "Saving attachment to %s" +msgstr "Zapis daÅuÄeÅnia Å %s" + +#: ../shell/ev-window.c:2405 +#, c-format +msgid "Saving image to %s" +msgstr "Zapis vyjavy Å %s" + +#: ../shell/ev-window.c:2450 ../shell/ev-window.c:2547 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "NiemahÄyma zapisaÄ fajÅ jak ā%sā." + +#: ../shell/ev-window.c:2478 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "PierasyÅaÅnie dakumentu (%d%%)" + +#: ../shell/ev-window.c:2482 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "PierasyÅaÅnie daÅuÄeÅnia (%d%%)" + +#: ../shell/ev-window.c:2486 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "PierasyÅaÅnie vyjavy (%d%%)" + +#: ../shell/ev-window.c:2593 +msgid "Save a Copy" +msgstr "ZapiÅ”y kopiju" + +#: ../shell/ev-window.c:2796 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d zadaÅnie Å Äarzie" +msgstr[1] "%d zadaÅni Å Äarzie" +msgstr[2] "%d zadaÅniaÅ u Äarzie" + +#: ../shell/ev-window.c:2852 ../shell/ev-window.c:3962 +msgid "Failed to print document" +msgstr "PamyÅka druku dakumentu" + +#: ../shell/ev-window.c:2909 +#, c-format +msgid "Printing job ā%sā" +msgstr "DrukavaÅnie zadaÅnia \"%s\"" + +#: ../shell/ev-window.c:3106 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "SÄakaÄ, pakul zadaÅnie \"%s\" zakonÄycca, pierad zaÄynieÅniem?" + +#: ../shell/ev-window.c:3109 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"JoÅÄ %d dziejnyja zadaÅni dla vydruku. PaÄakaÄ, pakul skonÄycca druk, pierad " +"zaÄynieÅniem?" + +#: ../shell/ev-window.c:3121 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Kali ty zaÄyniÅ” hetaje akno, zadaÅni na druk, jakija stajaÄ u Äarzie, nia " +"buduÄ vykananyja." + +#: ../shell/ev-window.c:3125 +msgid "Cancel _print and Close" +msgstr "Anuluj _druk i zaÄyni akno" + +#: ../shell/ev-window.c:3129 +msgid "Close _after Printing" +msgstr "ZaÄyni _paÅla druku" + +#: ../shell/ev-window.c:3732 +msgid "Toolbar Editor" +msgstr "Redaktar panelaÅ pryÅadÅŗdzia" + +#: ../shell/ev-window.c:3864 +msgid "There was an error displaying help" +msgstr "UÅŗnikÅa pamyÅka pry pakazie dapamohi" + +#: ../shell/ev-window.c:4267 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Ahladalnik dakumentaÅ.\n" +"Užyvaje poppler %s (%s)" + +#: ../shell/ev-window.c:4295 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince - heta volnaje prahramnaje zabieÅpiaÄeÅnie; ty možaÅ” raspaÅsiudžvaÄ " +"jaho i/ci ÅŗmianiaÄ zhodna z umovami Ahulnaj PubliÄnaj Licenzii GNU (GPL), " +"apublikavanaj Fondam Volnaha Prahramnaha ZabieÅpiaÄeÅnia (Free Software " +"Foundation); versii 2 albo (pa tvaim vybary) luboj paÅŗniejÅ”aj.\n" + +#: ../shell/ev-window.c:4299 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince raspaÅsiudžvajecca z nadziejaj, Å”to hetaja prahrama budzie karysnaj, " +"ale my ANIÄOHA NIE HARANTUJEM, navat HANDLOVAJ PRYDATNAÅCI ci PRYDATNAÅCI " +"CHOÄ BY DLA JAKICH METAŬ. Hladzi Ahulnuju PubliÄnuju Licenziju GNU (GPL) dla " +"padrabiaznaÅciaÅ.\n" + +#: ../shell/ev-window.c:4303 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Ty pavinny byÅ atrymaÄ kopiju Ahulnaj PubliÄnaj Licenzii GNU (GPL) razam z " +"Evincam; kali nie, napiÅ”y pra heta (pa-anhielsku) na adras: Free Software " +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#. Manually set name and icon in win32 +#: ../shell/ev-window.c:4327 ../shell/main.c:382 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4330 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 AÅtary Evinca" + +#: ../shell/ev-window.c:4336 +msgid "translator-credits" +msgstr "Ihar HraÄyÅ”ka <ihar.hrachyshka@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4554 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d znojdziena na hetaj staroncy" +msgstr[1] "%d znojdzienyja na hetaj staroncy" +msgstr[2] "%d znojdzienyja na hetaj staroncy" + +#: ../shell/ev-window.c:4562 +#, c-format +msgid "%3d%% remaining to search" +msgstr "zastaÅosia %3d%%, kab Å”ukaÄ" + +#: ../shell/ev-window.c:4990 +msgid "_File" +msgstr "_FajÅ" + +#: ../shell/ev-window.c:4991 +msgid "_Edit" +msgstr "_Redahuj" + +#: ../shell/ev-window.c:4992 +msgid "_View" +msgstr "_Vyhlad" + +#: ../shell/ev-window.c:4993 +msgid "_Go" +msgstr "_Idzi" + +#: ../shell/ev-window.c:4994 +msgid "_Help" +msgstr "_Dapamoha" + +#. File menu +#: ../shell/ev-window.c:4997 ../shell/ev-window.c:5176 +#: ../shell/ev-window.c:5255 +msgid "_Open..." +msgstr "_AdÄyni..." + +#: ../shell/ev-window.c:4998 ../shell/ev-window.c:5256 +msgid "Open an existing document" +msgstr "AdÄyni isny dakument" + +#: ../shell/ev-window.c:5000 +msgid "Op_en a Copy" +msgstr "A_dÄyni kopiju" + +#: ../shell/ev-window.c:5001 +msgid "Open a copy of the current document in a new window" +msgstr "AdÄyni kopiju dziejnaha dakumentu Å novym aknie" + +#: ../shell/ev-window.c:5003 ../shell/ev-window.c:5178 +msgid "_Save a Copy..." +msgstr "_ZapiÅ”y kopiju..." + +#: ../shell/ev-window.c:5004 +msgid "Save a copy of the current document" +msgstr "ZapiÅ”y kopiju dziejnaha dakumentu" + +#: ../shell/ev-window.c:5006 +msgid "Print Set_up..." +msgstr "_NaÅady druku..." + +#: ../shell/ev-window.c:5007 +msgid "Setup the page settings for printing" +msgstr "NaÅadÅŗ arkuÅ” dziela druku" + +#: ../shell/ev-window.c:5009 +msgid "_Print..." +msgstr "_Nadrukuj..." + +#: ../shell/ev-window.c:5010 ../shell/ev-window.c:5079 +msgid "Print this document" +msgstr "Nadrukuj hety dakument" + +#: ../shell/ev-window.c:5012 +msgid "P_roperties" +msgstr "_UÅaÅcivaÅci" + +#: ../shell/ev-window.c:5020 +msgid "Select _All" +msgstr "A_biary Åsio" + +#: ../shell/ev-window.c:5022 +msgid "_Find..." +msgstr "Å _ukaj..." + +#: ../shell/ev-window.c:5023 +msgid "Find a word or phrase in the document" +msgstr "Å ukaj sÅova albo vyraz u dakumencie" + +#: ../shell/ev-window.c:5029 +msgid "T_oolbar" +msgstr "_Panel pryÅadÅŗdzia" + +#: ../shell/ev-window.c:5031 +msgid "Rotate _Left" +msgstr "Paviarni Å_leva" + +#: ../shell/ev-window.c:5033 +msgid "Rotate _Right" +msgstr "Paviarni Å_prava" + +#: ../shell/ev-window.c:5038 +msgid "Enlarge the document" +msgstr "PavialiÄ dakument" + +#: ../shell/ev-window.c:5041 +msgid "Shrink the document" +msgstr "PamienÅ” dakument" + +#: ../shell/ev-window.c:5043 +msgid "_Reload" +msgstr "_PieraÄytaj" + +#: ../shell/ev-window.c:5044 +msgid "Reload the document" +msgstr "PieraÄytaj dakument" + +#: ../shell/ev-window.c:5047 +msgid "Auto_scroll" +msgstr "_AÅtamatyÄna prakruÄvaj" + +#. Go menu +#: ../shell/ev-window.c:5051 +msgid "_Previous Page" +msgstr "_Papiaredniaja staronka" + +#: ../shell/ev-window.c:5052 +msgid "Go to the previous page" +msgstr "Idzi da papiaredniaj staronki" + +#: ../shell/ev-window.c:5054 +msgid "_Next Page" +msgstr "_Nastupnaja staronka" + +#: ../shell/ev-window.c:5055 +msgid "Go to the next page" +msgstr "Idzi da nastupnaj staronki" + +#: ../shell/ev-window.c:5057 +msgid "_First Page" +msgstr "_PierÅ”aja staronka" + +#: ../shell/ev-window.c:5058 +msgid "Go to the first page" +msgstr "Idzi da pierÅ”aj staronki" + +#: ../shell/ev-window.c:5060 +msgid "_Last Page" +msgstr "_ApoÅ”niaja staronka" + +#: ../shell/ev-window.c:5061 +msgid "Go to the last page" +msgstr "Idzi da apoÅ”niaj staronki" + +#. Help menu +#: ../shell/ev-window.c:5065 +msgid "_Contents" +msgstr "_ŹmieÅciva" + +#: ../shell/ev-window.c:5068 +msgid "_About" +msgstr "_Ab prahramie" + +#. Toolbar-only +#: ../shell/ev-window.c:5072 +msgid "Leave Fullscreen" +msgstr "PakiÅ poÅny ekran" + +#: ../shell/ev-window.c:5073 +msgid "Leave fullscreen mode" +msgstr "PakiÅ poÅnaekranny režym" + +#: ../shell/ev-window.c:5075 +msgid "Start Presentation" +msgstr "PaÄni prezentacyju" + +#: ../shell/ev-window.c:5076 +msgid "Start a presentation" +msgstr "PaÄni prezentacyju" + +#. View Menu +#: ../shell/ev-window.c:5132 +msgid "_Toolbar" +msgstr "_Panel pryÅadÅŗdzia" + +#: ../shell/ev-window.c:5133 +msgid "Show or hide the toolbar" +msgstr "Pakažy albo schavaj panel pryÅadÅŗdzia" + +#: ../shell/ev-window.c:5135 +msgid "Side _Pane" +msgstr "_Bakavaja panel" + +#: ../shell/ev-window.c:5136 +msgid "Show or hide the side pane" +msgstr "Pakažy albo schavaj bakavuju panel" + +#: ../shell/ev-window.c:5138 +msgid "_Continuous" +msgstr "_BieÅpierapynny" + +#: ../shell/ev-window.c:5139 +msgid "Show the entire document" +msgstr "Pakazvaj uvieÅ dakument" + +#: ../shell/ev-window.c:5141 +msgid "_Dual" +msgstr "_Zdvojeny" + +#: ../shell/ev-window.c:5142 +msgid "Show two pages at once" +msgstr "Pakazvaj adrazu dÅŗvie staronki" + +#: ../shell/ev-window.c:5144 +msgid "_Fullscreen" +msgstr "_PoÅny ekran" + +#: ../shell/ev-window.c:5145 +msgid "Expand the window to fill the screen" +msgstr "Razharni vakno, kab zapoÅniÄ ekran" + +#: ../shell/ev-window.c:5147 +msgid "Pre_sentation" +msgstr "Pre_zentacyja" + +#: ../shell/ev-window.c:5148 +msgid "Run document as a presentation" +msgstr "Pakažy dakument jak prezentacyju" + +#: ../shell/ev-window.c:5150 +msgid "_Best Fit" +msgstr "_Najlepiej dapasuj" + +#: ../shell/ev-window.c:5151 +msgid "Make the current document fill the window" +msgstr "ZapoÅni vakno dziejnym dakumentam" + +#: ../shell/ev-window.c:5153 +msgid "Fit Page _Width" +msgstr "_Dapasuj da Å”yryni staronki" + +#: ../shell/ev-window.c:5154 +msgid "Make the current document fill the window width" +msgstr "ZapoÅni Å”yryniu vakna dziejnym dakumentam" + +#. Links +#: ../shell/ev-window.c:5161 +msgid "_Open Link" +msgstr "_AdÄyni spasyÅku" + +#: ../shell/ev-window.c:5163 +msgid "_Go To" +msgstr "_Idzi da" + +#: ../shell/ev-window.c:5165 +msgid "Open in New _Window" +msgstr "AdÄyni Å novym _aknie" + +#: ../shell/ev-window.c:5167 +msgid "_Copy Link Address" +msgstr "_Skapijuj adras spasyÅki" + +#: ../shell/ev-window.c:5169 +msgid "_Save Image As..." +msgstr "_ZapiÅ”y vyjavu jak..." + +#: ../shell/ev-window.c:5171 +msgid "Copy _Image" +msgstr "Skapijuj _vyjavu" + +#: ../shell/ev-window.c:5217 +msgid "Page" +msgstr "Staronka" + +#: ../shell/ev-window.c:5218 +msgid "Select Page" +msgstr "Abiary staronku" + +#: ../shell/ev-window.c:5229 +msgid "Zoom" +msgstr "PavieliÄeÅnie" + +#: ../shell/ev-window.c:5231 +msgid "Adjust the zoom level" +msgstr "NastaÅ uzrovieÅ pavieliÄeÅnia" + +#: ../shell/ev-window.c:5241 +msgid "Navigation" +msgstr "Navihacyja" + +#: ../shell/ev-window.c:5243 +msgid "Back" +msgstr "Nazad" + +#. translators: this is the history action +#: ../shell/ev-window.c:5246 +msgid "Move across visited pages" +msgstr "PierachodÅŗ pa naviedanych staronkach" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5276 +msgid "Previous" +msgstr "Nazad" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5281 +msgid "Next" +msgstr "Napierad" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5285 +msgid "Zoom In" +msgstr "PavialiÄ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5289 +msgid "Zoom Out" +msgstr "PamienÅ”" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5297 +msgid "Fit Width" +msgstr "Da Å”yryni" + +#: ../shell/ev-window.c:5464 ../shell/ev-window.c:5482 +msgid "Unable to launch external application." +msgstr "Nie ÅdaÅosia ÅruchomiÄ aplikacyju." + +#: ../shell/ev-window.c:5525 +msgid "Unable to open external link" +msgstr "NiemahÄyma adÄyniÄ vonkavuju spasyÅku" + +#: ../shell/ev-window.c:5681 +msgid "Couldn't find appropriate format to save image" +msgstr "NiemahÄyma znajÅci prydatnaha farmatu dla zapisu vyjavy" + +#: ../shell/ev-window.c:5720 +msgid "The image could not be saved." +msgstr "NiemahÄyma zapisaÄ vyjavu." + +#: ../shell/ev-window.c:5752 +msgid "Save Image" +msgstr "ZapiÅ”y vyjavu" + +#: ../shell/ev-window.c:5814 +msgid "Unable to open attachment" +msgstr "NiemahÄyma adÄyniÄ daÅuÄeÅnie" + +#: ../shell/ev-window.c:5865 +msgid "The attachment could not be saved." +msgstr "NiemahÄyma zapisaÄ daÅuÄeÅnie." + +#: ../shell/ev-window.c:5910 +msgid "Save Attachment" +msgstr "ZapiÅ”y daÅuÄeÅnie" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Patrebny parol" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Pavodle paÅ”yreÅnia" + +#: ../shell/main.c:59 ../shell/main.c:347 +msgid "MATE Document Viewer" +msgstr "Ahladalnik dakumentaÅ dla MATE" + +#: ../shell/main.c:67 +msgid "The page of the document to display." +msgstr "Staronka dakumentu, kab pakazaÄ." + +#: ../shell/main.c:67 +msgid "PAGE" +msgstr "STARONKA" + +#: ../shell/main.c:68 +msgid "Run evince in fullscreen mode" +msgstr "Startuj Evinca Å poÅnaekrannym režymie" + +#: ../shell/main.c:69 +msgid "Run evince in presentation mode" +msgstr "Startuj Evinca Å režymie prezentacyi" + +#: ../shell/main.c:70 +msgid "Run evince as a previewer" +msgstr "Startuj Evinca jak pieradahladalnika" + +#: ../shell/main.c:71 +msgid "The word or phrase to find in the document" +msgstr "SÅova ci vyraz, kab Å”ukaÄ u dakumencie" + +#: ../shell/main.c:71 +msgid "STRING" +msgstr "RADOK" + +#: ../shell/main.c:75 +msgid "[FILE...]" +msgstr "[FAJÅ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Dastupnyja lohikavyja opcyi: true ÅkluÄaje stvareÅnie minijaturaÅ, false " +"adkluÄaje" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "UkluÄy minijatury dla dakumentaÅ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Zahad stvareÅnia minijaturaÅ dla dakumentaÅ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Pravilny zahad i arhumenty dla stvareÅnia minijaturaÅ dla dakumentaÅ PDF. " +"Hladzi dakumentacyju na stvareÅnie minijaturaÅ dla Cajaa dziela " +"padrabiaznaÅciaÅ." + +#~ msgid "File not available" +#~ msgstr "FajÅ niedastupny" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Addalenyja fajÅy nie padtrymvajucca" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 00000000..3c06c26b --- /dev/null +++ b/po/bg.po @@ -0,0 +1,1723 @@ +# Bulgarian translation of evince po-file. +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2009 Krasimir "Bfaf" Chonov <mk2616@abv.bg>. +# This file is distributed under the same license as the evince package. +# Rostislav "zbrox" Raykov <zbrox@i-space.org>, 2005. +# Vladimir "kaladan" Petkov <kaladan@gmail.com>, 2005, 2006, 2007. +# Alexander Shopov <ash@kambanaria.org>, 2006, 2007, 2008, 2009. +# Krasimir "Bfaf" Chonov <mk2616@abv.bg>, 2009. +# Yavor Doganov <yavor@gnu.org>, 2008. +# Ivaylo Valkov <ivaylo@e-valkov.org>, 2010. +# Damyan Ivanov <dam+mate@ktnx.net>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince mate-2-32\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-27 13:40+0300\n" +"PO-Revision-Date: 2010-09-27 13:40+0300\n" +"Last-Translator: Damyan Ivanov <dam+mate@ktnx.net>\n" +"Language-Team: Bulgarian <dict@fsa-bg.org>\n" +"Language: bg\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø ŃŃŠ°ŃŃŠøŃŠ°Š½Šµ Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŠ° ā%sā, Š“Š° ŃŠ°Š·Š°ŃŃ ŠøŠ²ŠøŃŠ° ŠŗŠ¾Š¼ŠøŠŗŃŠ°: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŠŠ¾Š¼Š°Š½Š“Š°ŃŠ° ā%sā Š½Šµ ŃŃŠæŃ Š“Š° ŃŠ°Š·Š°ŃŃ ŠøŠ²ŠøŃŠ° ŠŗŠ¾Š¼ŠøŠŗŃŠ°." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ŠŠ¾Š¼Š°Š½Š“Š°ŃŠ° ā%sā Š½Šµ Š·Š°Š²ŃŃŃŠø Š½Š¾ŃŠ¼Š°Š»Š½Š¾." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ŠŠøŠ“ŃŃ Š½Š° MIME Š½Šµ Šµ Š½Š° ŠŗŠ¾Š¼ŠøŠŗŃ: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"ŠŠµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ Š½Š°Š¼ŠµŃŠø ŠæŠ¾Š“Ń Š¾Š“ŃŃŠ° ŠŗŠ¾Š¼Š°Š½Š“Š° Š·Š° ŃŠ°Š·Š°ŃŃ ŠøŠ²ŠøŃŠ°Š½Šµ Š½Š° ŃŠ¾Š·Šø ŃŠøŠæ ŠŗŠ¾Š¼ŠøŠŗŃ" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŠŠµŃŃŠµŠ½/Š½ŠµŠæŠ¾Š·Š½Š°Ń Š²ŠøŠ“ MIME" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Š¤Š°Š¹Š»ŃŃ Šµ ŠæŠ¾Š²ŃŠµŠ“ŠµŠ½" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Š Š°ŃŃ ŠøŠ²Š° Š½ŃŠ¼Š° ŃŠ°Š¹Š»Š¾Š²Šµ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Š Š°ŃŃ ŠøŠ²Š° %s Š½ŃŠ¼Š° Š½Š°Š¼ŠµŃŠµŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ŠŃŠ·Š½ŠøŠŗŠ½Š° Š³ŃŠµŃŠŗŠ° ŠæŃŠø ŠøŠ·ŃŃŠøŠ²Š°Š½ŠµŃŠ¾ Š½Š° ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ŠŃŠµŃŠŗŠ° %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŠŠ¾Š¼ŠøŠŗŃŠø" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ DjVu Šµ Š² Š½ŠµŠŗŠ¾ŃŠµŠŗŃŠµŠ½ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Šµ ŠøŠ·Š³ŃŠ°Š“ŠµŠ½ Š¾Ń Š½ŃŠŗŠ¾Š»ŠŗŠ¾ ŃŠ°Š¹Š»Š°. ŠŃŠŗŠ¾Šø Š¾Ń ŃŃŃ Š½Šµ ŃŠ° Š“Š¾ŃŃŃŠæŠ½Šø." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ DVI Šµ Š² Š½ŠµŠŗŠ¾ŃŠµŠŗŃŠµŠ½ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Š¢Š°Š·Šø ŃŠ²Š¾ŃŠ±Š° Šµ Š¾Š±ŃŠµŃŃŠ²ŠµŠ½Š¾ Š“Š¾ŃŃŠ¾ŃŠ½ŠøŠµ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ŠŠ°" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ŠŠµ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠµŠ½ Š²ŠøŠ“ ŃŃŠøŃŃ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ŠŠµŠ· ŠøŠ¼Šµ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ŠŠ³ŃŠ°Š“ŠµŠ½Šø ŠæŠ¾Š“Š¼Š½Š¾Š¶ŠµŃŃŠ²Š°" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ŠŠ³ŃŠ°Š“ŠµŠ½Šø" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ŠŠµ Šµ Š²Š³ŃŠ°Š“ŠµŠ½" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŠŠµŠ²Š°Š»ŠøŠ“ŠµŠ½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ŠŠ°Š“ŃŠø Š¾Ń Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŃŠ¼Š° Š³ŃŠµŃŠŗŠ°" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµŠ“Š¾ŃŃŠ°ŃŃŃŠ½Š¾ ŠæŠ°Š¼ŠµŃ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š½Š°Š¼ŠøŃŠ°Š½Šµ Š½Š° ŠæŠ¾Š“ŠæŠøŃŠ° Š² ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ŠŠ¾Ń ŃŠ¾ŃŠ¼Š°Ń Š·Š° ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠŠµ ŃŠµ ŠæŠ¾Š“Š“ŃŃŠ¶Š°Ń Š°ŃŃ ŠøŠ²Šø ZIP, ŃŃŃŃŠ°Š²ŠµŠ½Šø Š¾Ń ŠæŠ¾ŃŠµŠ“ŠøŃŠ° ŃŠ°Š¹Š»Š¾Š²Šµ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Š¤Š°Š¹Š»ŃŃ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š¾ŃŠ²Š¾ŃŠµŠ½" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø ŃŠµŃŠµŠ½Šµ Š½Š° Š“Š°Š½Š½Šø Š¾Ń ŃŠ°Š¹Š»Š°" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š½Š°Š¼ŠøŃŠ°Š½Šµ Š½Š° ŃŠ°Š¹Š»Š° Š² Š°ŃŃ ŠøŠ²Š° ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠ½Š° Š³ŃŠµŃŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ā%sā Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š·Š°ŃŠµŠ“ŠµŠ½" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ā%sā Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š·Š°ŠæŠ°Š·ŠµŠ½" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š·Š°ŠæŠ°Š·Š²Š°Š½ŠµŃŠ¾ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š» ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š¾ŃŠ²Š°ŃŃŠ½ŠµŃŠ¾ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š» ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š¾ŃŠ²Š°ŃŃŠ½ŠµŃŠ¾ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š» ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ŠŠµ ŃŠµ ŠæŠ¾Š“Š“ŃŃŠ¶Š°Ń ŃŠ°Š¹Š»Š¾Š²Šµ Š¾Ń Š²ŠøŠ“Š° %s (%s) " + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ŠŃŠøŃŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ŠŃŠøŃŠŗŠø ŃŠ°Š¹Š»Š¾Š²Šµ" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ŠŠµŃŃŠæŠµŃŠ½Š¾ ŃŃŠ·Š“Š°Š²Š°Š½Šµ Š½Š° Š²ŃŠµŠ¼ŠµŠ½ŠµŠ½ ŃŠ°Š¹Š»: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ŠŠµŃŃŠæŠµŃŠ½Š¾ ŃŃŠ·Š“Š°Š²Š°Š½Šµ Š½Š° Š²ŃŠµŠ¼ŠµŠ½Š½Š° ŠæŠ°ŠæŠŗŠ°: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Š¤Š°Š¹Š»ŃŃ Š½Šµ Šµ Š²ŃŠ² ŃŠ¾ŃŠ¼Š°Ń .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š²ŠµŃŃŠøŃ Š½Š° ŃŠ°Š¹Š»Š°: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Š”ŃŠ°ŃŃŠøŃŠ°Š½Šµ Š½Š° %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ° Š½Šµ ŠæŃŠøŠµŠ¼Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø ŠæŃŠµŠ· ŠŗŠ¾Š¼Š°Š½Š“Š½ŠøŃ ŃŠµŠ“" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š¾ŠæŃŠøŃ ŠæŃŠø ŃŃŠ°ŃŃŠøŃŠ°Š½Šµ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Š Š¾Š±ŠµŠŗŃŠø Š¾Ń Š²ŠøŠ“Š° āType=Linkā Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ ŠæŠ¾Š“Š°Š²Š°Ń Š°Š“ŃŠµŃŠø Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŠµ Šµ Š¾Š±ŠµŠŗŃ Š·Š° ŃŃŠ°ŃŃŠøŃŠ°Š½Šµ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ŠŠ·ŠŗŠ»ŃŃŠ²Š°Š½Šµ Š½Š° Š²ŃŃŠ·ŠŗŠ°ŃŠ° Ń ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŃŠµŃŠøŠøŃŠµ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Š£ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ŃŠ°Š¹Š»Š° ŃŃŃ Š·Š°ŠæŠ°Š·ŠµŠ½ŠøŃŠµ Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "Š¤ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Š£ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ŠøŠ“ŠµŠ½ŃŠøŃŠøŠŗŠ°ŃŠ¾Ń Š·Š° ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŃŠµŃŠøŠø" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ŠŠŠŠŠ¢ŠŠ¤ŠŠŠŠ¢ŠŠ " + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ŠŠæŃŠøŠø Š½Š° ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŃŠµŃŠøŠø:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° Š½Š°ŃŃŃŠ¾Š¹ŠŗŠøŃŠµ Š·Š° ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŠµŃŠ¾ Š½Š° ŃŠµŃŠøŠøŃŠµ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Š_Š¾ŃŃŠ°Š²ŃŠ½Šµ Š² Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ŠŃŠµŠ¼ŠµŃŃŠ²Š°Š½Šµ Š½Š° ŠøŠ·Š±ŃŠ°Š½ŠøŃ Š¾Š±ŠµŠŗŃ Š² Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ŠŃ_ŠµŠ¼Š°Ń Š²Š°Š½Šµ Š¾Ń Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ŠŃŠµŠ¼Š°Ń Š²Š°Š½Šµ Š½Š° ŠøŠ·Š±ŃŠ°Š½ŠøŃ Š¾Š±ŠµŠŗŃ Š¾Ń Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Š_ŃŠµŠ¼Š°Ń Š²Š°Š½Šµ Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ŠŃŠµŠ¼Š°Ń Š²Š°Š½Šµ Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Š Š°Š·Š“ŠµŠ»ŠøŃŠµŠ»" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠæŠ¾ ŠµŠŗŃŠ°Š½Š°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠæŠ¾ ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Ń Š¼Š½Š¾Š³Š¾ ŃŃŃŠ°Š½ŠøŃŠø" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŃŠµŠ½ŠµŠ±ŃŠµŠ³Š²Š°Š½Šµ Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŃŃŠ° Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ŠŃŠµŠ½ŠµŠ±ŃŠµŠ³Š²Š°Š½Šµ Š½Š° Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŃŃŠ° Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, ŠŗŠ°ŃŠ¾ Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŃ Š·Š° ŠŗŠ¾ŠæŠøŃŠ°Š½Šµ Šø " +"ŠæŠµŃŠ°Ń." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ŠŠ·ŃŃŠøŠ²Š°Š½Šµ Š½Š° Š²ŃŠµŠ¼ŠµŠ½ŠµŠ½ ŃŠ°Š¹Š»" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Š¤Š°Š¹Š» Ń Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø Š·Š° ŠæŠµŃŠ°Ń" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š¾ŃŠæŠµŃŠ°ŃŠ°Š½" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŠŠ·Š±ŃŠ°Š½ŠøŃŃ ŠæŃŠøŠ½ŃŠµŃ ā%sā Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š¾ŃŠŗŃŠøŃ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "_ŠŃŠµŠ“ŠøŃŠ½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŠæŃŠµŠ“ŠøŃŠ½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "_Š”Š»ŠµŠ“Š²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŃŠ»ŠµŠ“Š²Š°ŃŠ°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Š£Š²ŠµŠ»ŠøŃŠ°Š²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Š”Š¼Š°Š»ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ŠŠµŃŠ°Ń" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "ŠŠµŃŠ°ŃŠ°Š½Šµ Š½Š° ŃŠ¾Š·Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠæŠ¾ _ŠµŠŗŃŠ°Š½Š°" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Š¢ŠµŠŗŃŃŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š° Š·Š°ŠæŃŠ»Š½Šø ŠæŃŠ¾Š·Š¾ŃŠµŃŠ°" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠæŠ¾ _ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Š¢ŠµŠŗŃŃŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š° Š·Š°ŠæŃŠ»Š½Šø ŠæŃŠ¾Š·Š¾ŃŠµŃŠ° ŠæŠ¾ ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "ŠŠ·Š±Š¾Ń Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŠ°Š³Š»Š°Š²ŠøŠµ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŠµŃŃŠ¾ŠæŠ¾Š»Š¾Š¶ŠµŠ½ŠøŠµ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š¢ŠµŠ¼Š°:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ŠŠ²ŃŠ¾Ń:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŠŠ»ŃŃŠ¾Š²Šø Š“ŃŠ¼Šø:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ŠŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŠµŠ»:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ŠŠ²ŃŠ¾Ń:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Š”ŃŠ·Š“Š°Š“ŠµŠ½:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ŠŃŠ¾Š¼ŠµŠ½ŃŠ½:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ŠŃŠ¾Š¹ ŃŃŃŠ°Š½ŠøŃŠø:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ŠŠæŃŠøŠ¼ŠøŠ·ŠøŃŠ°Š½:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Š¤Š¾ŃŠ¼Š°Ń:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Š”ŠøŠ³ŃŃŠ½Š¾ŃŃ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Š Š°Š·Š¼ŠµŃ Š½Š° Ń Š°ŃŃŠøŃŃŠ°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ŠŠµŠ·" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0fāĆā%.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2fāĆā%.2f ŠøŠ½ŃŠ°" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Š²ŠµŃŃŠøŠŗŠ°Š»Š½Š¾ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Ń Š¾ŃŠøŠ·Š¾Š½ŃŠ°Š»Š½Š¾ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Š¾Ń %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "Š¾Ń %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŠŠ°ŃŠµŠ¶Š“Š°Š½Šµā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ŠŠ¾Š“Š³Š¾ŃŠ¾Š²ŠŗŠ° Š·Š° ŠæŠµŃŠ°Ńā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ŠŠ°Š²ŃŃŃŠ²Š°Š½Šµā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŠŠµŃŠ°ŃŠ°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ° āā%d Š¾Ń Š¾Š±ŃŠ¾ %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Š Š°Š·ŠæŠµŃŠ°ŃŠ²Š°Š½ŠµŃŠ¾ ŃŃŠµŠ· ŃŠ¾Š·Šø ŠæŃŠøŠ½ŃŠµŃ Š½Šµ ŃŠµ ŠæŠ¾Š“Š“ŃŃŠ¶Š°." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ŠŠµŠæŃŠ°Š²ŠøŠ»ŠµŠ½ ŠøŠ·Š±Š¾Ń Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ŠŃŠµŠ“ŃŠæŃŠµŠ¶Š“ŠµŠ½ŠøŠµ" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ŠŠ±Ń Š²Š°ŃŃŃ Š·Š° ŠæŠµŃŠ°Ń Š½Šµ Š²ŠŗŠ»ŃŃŠ²Š° Š½ŠøŃŠ¾ ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ŠŠ°ŃŠ°Š±ŠøŃŠ°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Š”Š²ŠøŠ²Š°Š½Šµ ŠŗŃŠ¼ Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠŗŃŠ¼ Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ŠŠ°ŃŠ°Š±ŠøŃŠ°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠµ ŠŗŃŠ¼ ŠøŠ·Š±ŃŠ°Š½ŠøŃ ŃŠ°Š·Š¼ŠµŃ Š½Š° Š»ŠøŃŃŠøŃŠµ. ŠŠ·Š±ŠµŃŠµŃŠµ ŠµŠ“Š½Š° Š¾Ń " +"ŃŠ»ŠµŠ“Š½ŠøŃŠµ Š²ŃŠ·Š¼Š¾Š¶Š½Š¾ŃŃŠø:\n" +"\n" +"ā¢ āŠŠµŠ·ā: Š½Šµ ŃŠµ ŠøŠ·Š²ŃŃŃŠ²Š° Š¼Š°ŃŠ°Š±ŠøŃŠ°Š½Šµ;\n" +"\n" +"ā¢ āŠ”Š²ŠøŠ²Š°Š½Šµ ŠŗŃŠ¼ Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ńā: ŃŃŃŠ°Š½ŠøŃŠøŃŠµ ŠæŠ¾-Š³Š¾Š»ŠµŠ¼Šø Š¾Ń Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń " +"Š²ŃŃŃ Ń Š»ŠøŃŃŠøŃŠµ ŃŠµ ŃŠ²ŠøŠ²Š°Ń, Š·Š° Š“Š° ŃŠµ Š²Š¼ŠµŃŃŃŃ Š² Š½ŠµŃ;\n" +"\n" +"ā¢ āŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠŗŃŠ¼ Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ńā: ŃŃŃŠ°Š½ŠøŃŠøŃŠµ ŃŠµ ŃŠ²ŠøŠ²Š°Ń ŠøŠ»Šø ŃŠ²ŠµŠ»ŠøŃŠ°Š²Š°Ń, Š·Š° " +"Š“Š° Š½Š°ŠæŠ°ŃŠ½Š°Ń ŠŗŃŠ¼ Š¾Š±Š»Š°ŃŃŃŠ° Š·Š° ŠæŠµŃŠ°Ń Š²ŃŃŃ Ń Š»ŠøŃŃŠøŃŠµ.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ŠŠ²ŃŠ¾Š¼Š°ŃŠøŃŠ½Š¾ Š·Š°Š²ŃŃŃŠ°Š½Šµ Šø ŃŠµŠ½ŃŃŠøŃŠ°Š½Šµ" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ŠŠ°Š²ŃŃŃŠ°Š½Šµ Š½Š° Š²ŃŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃŠ°, Š·Š° Š“Š° ŃŃŠ²ŠæŠ°Š“Š½Šµ Ń Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŃŃŠ° Š½Š° Š»ŠøŃŃŠøŃŠµ Š½Š° " +"ŠæŃŠøŠ½ŃŠµŃŠ°. Š”ŃŃŠ°Š½ŠøŃŠøŃŠµ ŃŠµ ŃŠµŠ½ŃŃŠøŃŠ°Ń Š²ŃŃŃ Ń Š»ŠøŃŃŠøŃŠµ." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ŠŠ·Š±Š¾Ń Š½Š° ŃŠ°Š·Š¼ŠµŃ Š½Š° Š»ŠøŃŃŠøŃŠµ ŃŠæŠ¾ŃŠµŠ“ ŃŠ°Š·Š¼ŠµŃŠ° Š½Š° ŃŃŃŠ°Š½ŠøŃŠøŃŠµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ŠŠ¾Š³Š°ŃŠ¾ Šµ ŠøŠ·Š±ŃŠ°Š½Š¾, Š²ŃŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃŠ° ŃŠµ ŃŠ°Š·ŠæŠµŃŠ°ŃŠ²Š° Š½Š° Š»ŠøŃŃ ŃŃŃ ŃŃŃŠøŃ ŃŠ°Š·Š¼ŠµŃ." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Š£ŠæŃŠ°Š²Š»ŠµŠ½ŠøŠµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠøŃŠµ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %d Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š¾ŃŠæŠµŃŠ°ŃŠ°Š½Š°: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ŠŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ Š½Š°Š³Š¾ŃŠµ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ŠŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ Š½Š°Š“Š¾Š»Ń" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ŠŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ Š½Š° ŠøŠ·Š³Š»ŠµŠ“Š° Š½Š°Š³Š¾ŃŠµ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ŠŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ Š½Š° ŠøŠ·Š³Š»ŠµŠ“Š° Š½Š°Š“Š¾Š»Ń" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ŠŃŠ°Š¹ Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃŠ°. ŠŠ°ŃŠøŃŠ½ŠµŃŠµ, Š·Š° Š“Š° ŠøŠ·Š»ŠµŠ·ŠµŃŠµ." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ŠŃŃŠ²Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ŠŃŠµŠ“ŠøŃŠ½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Š”Š»ŠµŠ“Š²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ŠŠ¾ŃŠ»ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Š¢ŃŃŃŠµŠ½Šµ" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ° %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŃŠøŠ²Š°Š½Šµ ŠæŃŠø %s Š²ŃŠ² ŃŠ°Š¹Š»Š° ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŃŠøŠ²Š°Š½Šµ ŠæŃŠø ŃŠ°Š¹Š»Š° ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Š”ŃŠ°ŃŃŠøŃŠ°Š½Šµ Š½Š° %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Š¢ŃŃŃŠµŠ½Šµ:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "_ŠŃŠµŠ“ŠøŃŠ½Š° ŠæŠ¾ŃŠ²Š°" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ŠŃŠŗŃŠøŠ²Š°Š½Šµ Š½Š° ŠæŃŠµŠ“ŠøŃŠ½Š°ŃŠ° ŠæŠ¾ŃŠ²Š° Š½Š° ŃŃŃŃŠµŠ½ŠøŃ Š½ŠøŠ·" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "_Š”Š»ŠµŠ“Š²Š°ŃŠ° ŠæŠ¾ŃŠ²Š°" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ŠŃŠŗŃŠøŠ²Š°Š½Šµ Š½Š° ŃŠ»ŠµŠ“Š²Š°ŃŠ°ŃŠ° ŠæŠ¾ŃŠ²Š° Š½Š° ŃŃŃŃŠµŠ½ŠøŃ Š½ŠøŠ·" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ŠŠ¼Š° Ń_Š°Š·Š»ŠøŠŗŠ° Š¼ŠµŠ¶Š“Ń Š³Š»Š°Š²Š½Šø/Š¼Š°Š»ŠŗŠø Š±ŃŠŗŠ²Šø" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ŠŃŠµŠ²ŠŗŠ»ŃŃŠ²Š°Š½Šµ Š½Š° ŃŠ°Š·Š»ŠøŠŗŠ° Š³Š»Š°Š²Š½Šø/Š¼Š°Š»ŠŗŠø Š±ŃŠŗŠ²Šø" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ŠŠŗŠ¾Š½Š°:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ŠŠµŠ»ŠµŠ¶ŠŗŠ°" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ŠŠ¾Š¼ŠµŠ½ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ŠŠ»ŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ŠŠ¾Š¼Š¾Ń" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ŠŠ¾Š² Š°Š±Š·Š°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ŠŠ±Š·Š°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ŠŠ¼ŃŠŗŠ²Š°Š½Šµ" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ŠŃŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ŠŃŃŠ³" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ¾" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š° Š½Š° Š°Š½Š¾ŃŠ°ŃŠøŃŃŠ°" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Š¦Š²ŃŃ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Š”ŃŠøŠ»:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ŠŃŠ¾Š·ŃŠ°ŃŠµŠ½" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ŠŠµŠæŃŠ¾Š·ŃŠ°ŃŠµŠ½" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ŠŠ°ŃŠ°Š»Š½Š¾ ŃŃŃŃŠ¾ŃŠ½ŠøŠµ Š½Š° ŠæŃŠ¾Š·Š¾ŃŠµŃŠ°:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ŠŃŠ²Š¾ŃŠµŠ½" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ŠŠ°ŃŠ²Š¾ŃŠµŠ½" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Š Š°Š±Š¾ŃŠ° Š² ŃŠµŠ¶ŠøŠ¼ Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ°ŃŠ¾Š»Š° Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŠŃŠµŠ¾Š±ŃŠ°Š·ŃŠ²Š°Š½Šµ Š½Š° %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ŠŃŠµŠ¾Š±ŃŠ°Š·ŃŠ²Š°Š½Šø ŃŠ° %d Š¾Ń %d Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ŠŃŠµŠ¾Š±ŃŠ°Š·ŃŠ²Š°Š½Šµ Š½Š° Š¼ŠµŃŠ°Š“Š°Š½Š½ŠøŃŠµ" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Š¤Š¾ŃŠ¼Š°ŃŃŃ Š½Š° Š¼ŠµŃŠ°-Š“Š°Š½Š½ŠøŃŠµ Š½Š° Evince Šµ ŠæŃŠ¾Š¼ŠµŠ½ŠµŠ½, Š·Š°ŃŠ¾Š²Š° Šµ Š½ŠµŠ¾Š±Ń Š¾Š“ŠøŠ¼Š° Š¼ŠøŠ³ŃŠ°ŃŠøŃ. " +"ŠŠŗŠ¾ ŃŃ Š½Šµ Š±ŃŠ“Šµ ŠøŠ·Š²ŃŃŃŠµŠ½Š°, Š·Š°ŠæŠ°Š·Š²Š°Š½ŠµŃŠ¾ Š½Š° Š¼ŠµŃŠ°Š“Š°Š½Š½ŠøŃŠµ Š½ŃŠ¼Š° Š“Š° ŃŠ°Š±Š¾ŃŠø." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° ŃŠŗŠ¾ŃŠ¾ ŠøŠ·ŠæŠ¾Š»Š·Š²Š°Š½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Š¢Š¾Š·Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Šµ Š·Š°ŠŗŠ»ŃŃŠµŠ½ Šø Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ ŠæŃŠ¾ŃŠµŃŠµŠ½, ŃŠ°Š¼Š¾ Š°ŠŗŠ¾ ŃŠµ ŠæŠ¾Š“Š°Š“Šµ Š²ŃŃŠ½Š°ŃŠ° " +"ŠæŠ°ŃŠ¾Š»Š°." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_ŠŃŠŗŠ»ŃŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ŠŃŠ²ŠµŠ“ŠµŃŠµ ŠæŠ°ŃŠ¾Š»Š°" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ŠŠ·ŠøŃŠŗŠ²Š° ŃŠµ ŠæŠ°ŃŠ¾Š»Š°" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ā%sā Šµ Š·Š°ŠŗŠ»ŃŃŠµŠ½ Šø ŠøŠ·ŠøŃŠŗŠ²Š° ŠæŠ°ŃŠ¾Š»Š°, Š·Š° Š“Š° Š±ŃŠ“Šµ Š¾ŃŠ²Š¾ŃŠµŠ½." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ŠŠ°ŃŠ¾Š»Š°:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_ŠŠµŠ·Š°Š±Š°Š²Š½Š¾ Š·Š°Š±ŃŠ°Š²ŃŠ½Šµ Š½Š° ŠæŠ°ŃŠ¾Š»Š°ŃŠ°" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ŠŠ°ŠæŠ¾Š¼Š½ŃŠ½Šµ Š½Š° ŠæŠ°ŃŠ¾Š»Š°ŃŠ° Š·Š° ŃŠ°Š·Šø _ŃŠµŃŠøŃ" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_ŠŠ°ŠæŠ¾Š¼Š½ŃŠ½Šµ Š·Š°Š²ŠøŠ½Š°Š³Šø" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š°" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ŠŃŠ½Š¾Š²Š½Šø" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ŠØŃŠøŃŃŠ¾Š²Šµ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ŠŠøŃŠµŠ½Š· Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ŠØŃŠøŃŃ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Š”ŃŠ±ŠøŃŠ°Š½Šµ Š½Š° ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ Š·Š° ŃŃŠøŃŃŠ¾Š²ŠµŃŠµā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Š£ŃŠ»Š¾Š²ŠøŃ Š·Š° ŠæŠ¾Š»Š·Š²Š°Š½Šµ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Š¢ŠµŠŗŃŃ Š½Š° Š»ŠøŃŠµŠ½Š·Š°" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ŠŠ¾ŠæŃŠ»Š½ŠøŃŠµŠ»Š½Š° ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Š”ŠæŠøŃŃŠŗ" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ŠŠ½Š¾ŃŠ°ŃŠøŠø:" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Š¢ŠµŠŗŃŃ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ŠŠ¾Š±Š°Š²ŃŠ½Šµ Š½Š° ŃŠµŠŗŃŃŠ¾Š²Š° Š°Š½Š¾ŃŠ°ŃŠøŃ" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ŠŠ¾Š±Š°Š²ŃŠ½Šµ" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Š½Šµ ŃŃŠ“ŃŃŠ¶Š° Š°Š½Š¾ŃŠ°ŃŠøŠø" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ŠŃŠøŠŗŠ°ŃŠµŠ½Šø ŃŠ°Š¹Š»Š¾Š²Šµ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Š”Š»Š¾ŠµŠ²Šµ" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ŠŠµŃŠ°Ńā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Š”ŃŠ“ŃŃŠ¶Š°Š½ŠøŠµ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ŠŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Š½Šµ ŃŃŠ“ŃŃŠ¶Š° ŃŃŃŠ°Š½ŠøŃŠø" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ŃŃŠ“ŃŃŠ¶Š° ŃŠ°Š¼Š¾ ŠæŃŠ°Š·Š½Šø ŃŃŃŠ°Š½ŠøŃŠø" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š¾ŃŠ²Š¾ŃŠµŠ½" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ŠŠ°ŃŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š¾Ń ā%sā" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŠŠ·ŃŠµŠ³Š»ŃŠ½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "ŠŃŠ“Š°Š»ŠµŃŠµŠ½ŠøŃŃ ŃŠ°Š¹Š» Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š·Š°ŃŠµŠ“ŠµŠ½." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "ŠŃŠµŠ·Š°ŃŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š¾Ń %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ ŠæŃŠµŠ·Š°ŃŠµŠ“ŠµŠ½." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠŗŠ°ŃŠ¾ %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š» ŠŗŠ°ŃŠ¾ %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµŃŠ¾ ŠŗŠ°ŃŠ¾ %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Š¤Š°Š¹Š»ŃŃ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š·Š°ŠæŠ°Š·ŠµŠ½ ŠŗŠ°ŃŠ¾ ā%sā." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ŠŠ°ŃŠ²Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ŠŠ°ŃŠ²Š°Š½Šµ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ ŃŠ°Š¹Š» (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ŠŠ°ŃŠ²Š°Š½Šµ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµ" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Š·Š°Š“Š°ŃŠ° Š² Š¾ŠæŠ°ŃŠŗŠ°ŃŠ°" +msgstr[1] "%d Š·Š°Š“Š°ŃŠø Š² Š¾ŠæŠ°ŃŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "ŠŃŠæŠµŃŠ°ŃŠ²Š°Š½Šµ Š½Š° Š·Š°Š“Š°ŃŠ° ā%sā" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ŃŃŠ“ŃŃŠ¶Š° ŃŠ¾ŃŠ¼ŃŠ»ŃŃŠø Ń ŠæŠ¾ŠæŃŠ»Š½ŠµŠ½Šø ŠæŠ¾Š»ŠµŃŠ°. ŠŠŗŠ¾ Š½Šµ Š·Š°ŠæŠ°Š·ŠøŃŠµ ŠŗŠ¾ŠæŠøŠµ, " +"ŠæŃŠ¾Š¼ŠµŠ½ŠøŃŠµ ŃŠµ Š±ŃŠ“Š°Ń Š±ŠµŠ·Š²ŃŠ·Š²ŃŠ°ŃŠ½Š¾ Š·Š°Š³ŃŠ±ŠµŠ½Šø." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃŃ ŃŃŠ“ŃŃŠ¶Š° Š½Š¾Š²Šø ŠøŠ»Šø ŠæŃŠ¾Š¼ŠµŠ½ŠµŠ½Šø Š°Š½Š¾ŃŠ°ŃŠøŠø. ŠŠŗŠ¾ Š½Šµ Š·Š°ŠæŠ°Š·ŠøŃŠµ ŠŗŠ¾ŠæŠøŠµ, " +"ŠæŃŠ¾Š¼ŠµŠ½ŠøŃŠµ ŃŠµ Š±ŃŠ“Š°Ń Š±ŠµŠ·Š²ŃŠ·Š²ŃŠ°ŃŠ½Š¾ Š·Š°Š³ŃŠ±ŠµŠ½Šø." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ŠŠ° ŃŠµ Š·Š°ŠæŠ°Š·Šø Š»Šø ŠŗŠ¾ŠæŠøŠµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ā%sā ŠæŃŠµŠ“Šø ŃŠæŠøŃŠ°Š½ŠµŃŠ¾ Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ°?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "_ŠŠµŠ· Š·Š°ŠæŠ°Š·Š²Š°Š½Šµ" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° _ŠŗŠ¾ŠæŠøŠµ" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"ŠŠ° ŃŠµ ŠøŠ·ŃŠ°ŠŗŠ° Š»Šø ŠæŃŠøŠŗŠ»ŃŃŠ²Š°Š½ŠµŃŠ¾ Š½Š° Š·Š°Š“Š°ŃŠ° ā%sā ŠæŃŠµŠ“Šø ŃŠæŠøŃŠ°Š½ŠµŃŠ¾ Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ°?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ŠŠ¼Š° %d Š°ŠŗŃŠøŠ²Š½Šø Š·Š°Š“Š°ŃŠø Š·Š° ŠæŠµŃŠ°Ń. ŠŠ° ŃŠµ ŠøŠ·ŃŠ°ŠŗŠ° Š»Šø ŠæŃŠøŠŗŠ»ŃŃŠ²Š°Š½ŠµŃŠ¾ ŠøŠ¼ ŠæŃŠµŠ“Šø " +"ŃŠæŠøŃŠ°Š½ŠµŃŠ¾ Š½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°ŃŠ°?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ŠŠŗŠ¾ Š·Š°ŃŠ²Š¾ŃŠøŃŠµ ŠæŃŠ¾Š·Š¾ŃŠµŃŠ°, ŠæŃŠµŠ“ŃŃŠ¾ŃŃŠøŃŠµ Š·Š°Š“Š°ŃŠø Š½ŃŠ¼Š° Š“Š° Š±ŃŠ“Š°Ń Š¾ŃŠæŠµŃŠ°ŃŠ°Š½Šø." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "_ŠŃŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ŠæŠµŃŠ°ŃŠ°Š½ŠµŃŠ¾ Šø Š·Š°ŃŠ²Š°ŃŃŠ½Šµ" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "ŠŠ°ŃŠ²Š°ŃŃŠ½Šµ _ŃŠ»ŠµŠ“ Š¾ŃŠæŠµŃŠ°ŃŠ²Š°Š½Šµ" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Š ŠµŠ“Š°ŠŗŃŠ¾Ń Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø ŠæŠ¾ŠŗŠ°Š·Š²Š°Š½ŠµŃŠ¾ Š½Š° ŠæŠ¾Š¼Š¾Ń" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŠŃŠ¾Š³ŃŠ°Š¼Š° Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø.\n" +"ŠŠ·ŠæŠ¾Š»Š·Š²Š° ŃŠµ %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Š¢Š°Š·Šø ŠæŃŠ¾Š³ŃŠ°Š¼Š° (Evince) Šµ ŃŠ²Š¾Š±Š¾Š“ŠµŠ½ ŃŠ¾ŃŃŃŠµŃ. ŠŠ¾Š¶ŠµŃŠµ Š“Š° Ń ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŃŠ²Š°ŃŠµ Šø/" +"ŠøŠ»Šø ŠæŃŠ¾Š¼ŠµŠ½ŃŃŠµ ŠæŠ¾Š“ ŃŃŠ»Š¾Š²ŠøŃŃŠ° Š½Š° ŠŠ±ŃŠøŃ ŠæŃŠ±Š»ŠøŃŠµŠ½ Š»ŠøŃŠµŠ½Š· Š½Š° GNU (GNU GPL), ŠŗŠ°ŠŗŃŠ¾ " +"Šµ ŠæŃŠ±Š»ŠøŠŗŃŠ²Š°Š½ Š¾Ń Š¤Š¾Š½Š“Š°ŃŠøŃŃŠ° Š·Š° ŃŠ²Š¾Š±Š¾Š“ŠµŠ½ ŃŠ¾ŃŃŃŠµŃ ā Š²ŠµŃŃŠøŃ 2 Š½Š° Š»ŠøŃŠµŠ½Š·Š° ŠøŠ»Šø (ŠæŠ¾ " +"Š²Š°ŃŠµ ŃŠµŃŠµŠ½ŠøŠµ) ŠæŠ¾-ŠŗŃŃŠ½Š° Š²ŠµŃŃŠøŃ.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Š¢Š°Š·Šø ŠæŃŠ¾Š³ŃŠ°Š¼Š° ŃŠµ ŃŠ°Š·ŠæŃŠ¾ŃŃŃŠ°Š½ŃŠ²Š° Ń Š½Š°Š“ŠµŠ¶Š“Š°ŃŠ°, ŃŠµ ŃŠµ Š±ŃŠ“Šµ ŠæŠ¾Š»ŠµŠ·Š½Š°, Š½Š¾ ŠŠŠ " +"ŠŠŠŠŠŠŠ ŠŠŠ ŠŠŠ¦ŠŠ, Š“Š¾ŃŠø Šø ŠŗŠ¾ŃŠ²ŠµŠ½ŠøŃŠµ Š·Š° ŠŠ ŠŠŠŠŠŠ ŠøŠ»Šø Š”ŠŖŠŠ¢ŠŠŠ¢Š”Š¢ŠŠŠ Š” ŠŠŠŠŠŠ¢Š Š " +"ŠŠ Š Š£ŠŠŠ¢Š ŠŠŠ. ŠŠ° ŠæŠ¾Š“ŃŠ¾Š±Š½Š¾ŃŃŠø ŠæŠ¾Š³Š»ŠµŠ“Š½ŠµŃŠµ ŠŠ±ŃŠøŃ ŠæŃŠ±Š»ŠøŃŠµŠ½ Š»ŠøŃŠµŠ½Š· Š½Š° GNU.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Š¢ŃŃŠ±Š²Š° Š“Š° ŃŃŠµ ŠæŠ¾Š»ŃŃŠøŠ»Šø ŠŗŠ¾ŠæŠøŠµ Š¾Ń ŠŠ±ŃŠøŃ ŠæŃŠ±Š»ŠøŃŠµŠ½ Š»ŠøŃŠµŠ½Š· Š½Š° GNU (GNU GPL) " +"Š·Š°ŠµŠ“Š½Š¾ Ń ŃŠ°Š·Šø ŠæŃŠ¾Š³ŃŠ°Š¼Š°. ŠŠŗŠ¾ Š½Šµ ŃŃŠµ, ŠæŠøŃŠµŃŠµ Š“Š¾ Free Software Foundation, " +"Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 ŠŠ²ŃŠ¾ŃŠøŃŠµ Š½Š° Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"ŠŠ»Š°Š“ŠøŠ¼ŠøŃ āKaladanā ŠŠµŃŠŗŠ¾Š² <kaladan@gmail.com>\n" +"Š Š¾ŃŃŠøŃŠ»Š°Š² āzbroxā Š Š°Š¹ŠŗŠ¾Š² <zbrox@i-space.org>\n" +"ŠŠ»ŠµŠŗŃŠ°Š½Š“ŃŃ ŠØŠ¾ŠæŠ¾Š² <ash@kambanaria.org>\n" +"ŠŃŠ°ŃŠøŠ¼ŠøŃ ābfafā Š§Š¾Š½Š¾Š² <mk2616@abv.bg>\n" +"ŠŠ°Š¼ŃŠ½ ŠŠ²Š°Š½Š¾Š² <dam+mate@ktnx.net>\n" +"\n" +"ŠŃŠ¾ŠµŠŗŃŃŃ Š·Š° ŠæŃŠµŠ²Š¾Š“ Š½Š° MATE ŠøŠ¼Š° Š½ŃŠ¶Š“Š° Š¾Ń ŠæŠ¾Š“ŠŗŃŠµŠæŠ°.\n" +"ŠŠ°ŃŃŠµŃŠµ ŠæŠ¾Š²ŠµŃŠµ Š·Š° Š½Š°Ń Š½Š° http://mate.cult.bg\n" +"ŠŠ¾ŠŗŠ»Š°Š“Š²Š°Š¹ŃŠµ Š·Š° Š³ŃŠµŃŠŗŠø Š½Š° http://mate.cult.bg/bugs" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d Š¾ŃŠŗŃŠøŃ Š½Š° ŃŠ°Š·Šø ŃŃŃŠ°Š½ŠøŃŠ°" +msgstr[1] "%d Š¾ŃŠŗŃŠøŃŠø Š½Š° ŃŠ°Š·Šø ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Š¢ŃŃŃŠµŠ½ŠøŃŃ ŃŠµŠŗŃŃ Š½Šµ Šµ Š½Š°Š¼ŠµŃŠµŠ½" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Š¾ŃŃŠ°Š²Š°Ń Š“Š° Š±ŃŠ“Š°Ń ŠæŃŠµŃŃŃŃŠµŠ½Šø" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Š ŠµŠ“Š°ŠŗŃŠøŃŠ°Š½Šµ" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_ŠŠ·Š³Š»ŠµŠ“" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "_ŠŃŠøŠ²Š°Š½Šµ" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "ŠŠ¾Š¼Š¾_Ń" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_ŠŃŠ²Š°ŃŃŠ½Šµā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° ŃŃŃŠµŃŃŠ²ŃŠ²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° _ŠŗŠ¾ŠæŠøŠµ" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµ Š½Š° ŃŠµŠŗŃŃŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š² Š½Š¾Š² ŠæŃŠ¾Š·Š¾ŃŠµŃ" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠŗŠ¾ŠæŠøŠµ Š½Š° ŃŠµŠŗŃŃŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "_ŠŠµŃŠ°Ńā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "_Š”Š²Š¾Š¹ŃŃŠ²Š°" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "ŠŠ·Š±Š¾Ń Š½Š° _Š²ŃŠøŃŠŗŠ¾" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_Š¢ŃŃŃŠµŠ½Šµā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Š¢ŃŃŃŠµŠ½Šµ Š½Š° Š“ŃŠ¼Š° ŠøŠ»Šø ŃŃŠ°Š·Š° Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "ŠŠµŠ½ŃŠ° Ń _ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "ŠŠ°Š²ŃŃŃŠ°Š½Šµ Š½Š°_Š»ŃŠ²Š¾" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "ŠŠ°Š²ŃŃŃŠ°Š½Šµ Š½Š°_Š“ŃŃŠ½Š¾" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "ŠŠ·ŠæŠ¾Š»Š·Š²Š°Š½Šµ Š½Š° ŃŠµŠ·Šø Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø ŠæŠ¾ _ŠæŠ¾Š“ŃŠ°Š·Š±ŠøŃŠ°Š½Šµ" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "Š_ŃŠµŠ·Š°ŃŠµŠ¶Š“Š°Š½Šµ" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "ŠŃŠµŠ·Š°ŃŠµŠ¶Š“Š°Š½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "_ŠŠ²ŃŠ¾Š¼Š°ŃŠøŃŠ½Š¾ ŠæŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "ŠŃŃ_Š²Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŠæŃŃŠ²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "ŠŠ¾Ń_Š»ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "ŠŃŠøŠ²Š°Š½Šµ Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Š ŃŠŗŠ¾Š²Š¾Š“ŃŃŠ²Š¾" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_ŠŃŠ½Š¾ŃŠ½Š¾" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "ŠŠ°ŠæŃŃŠŗŠ°Š½Šµ Š½Š° ŃŠµŠ¶ŠøŠ¼ āŠ¦ŃŠ» ŠµŠŗŃŠ°Š½ā" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "ŠŠ°ŠæŃŃŠŗŠ°Š½Šµ Š½Š° ŃŠµŠ¶ŠøŠ¼Š° Š·Š° ŃŃŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "ŠŠ°ŠæŠ¾ŃŠ²Š°Š½Šµ Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "ŠŠµŠ½ŃŠ° Ń _ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠø" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ ŠøŠ»Šø ŃŠŗŃŠøŠ²Š°Š½Šµ Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠøŃŠµ" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠµŠ½ _ŠæŠ°Š½ŠµŠ»" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ ŠøŠ»Šø ŃŠŗŃŠøŠ²Š°Š½Šµ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ½ŠøŃ ŠæŠ°Š½ŠµŠ»" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_ŠŠµŠ· ŠæŃŠµŠŗŃŃŠ²Š°Š½Šµ" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ŃŠµŠ»ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_ŠŠ²Š¾Š¹Š½Š¾" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° Š“Š²Šµ ŃŃŃŠ°Š½ŠøŃŠø ŠµŠ“Š½Š¾Š²ŃŠµŠ¼ŠµŠ½Š½Š¾" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "_Š¦ŃŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ Š½Š° ŠæŃŠ¾Š·Š¾ŃŠµŃŠ°, ŃŠ°ŠŗŠ° ŃŠµ Š“Š° Š·Š°ŠæŃŠ»Š½Šø ŠµŠŗŃŠ°Š½Š°" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "ŠŃŠµ_Š·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠŗŠ°ŃŠ¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "_ŠŠ±ŃŠ°ŃŠ½Šø ŃŠ²ŠµŃŠ¾Š²Šµ" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ Š½Š° ŃŃŠ“ŃŃŠ¶Š°Š½ŠøŠµŃŠ¾ Š½Š° ŃŃŃŠ°Š½ŠøŃŠøŃŠµ Ń Š¾Š±ŃŠ°ŃŠ½Šø ŃŠ²ŠµŃŠ¾Š²Šµ" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° Š²ŃŃŠ·ŠŗŠ°" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_ŠŃŠøŠ²Š°Š½Šµ" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "ŠŃŠ²Š°ŃŃŠ½Šµ Š² Š½Š¾Š² _ŠæŃŠ¾Š·Š¾ŃŠµŃ" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_ŠŠ¾ŠæŠøŃŠ°Š½Šµ Š½Š° Š°Š“ŃŠµŃŠ° Š½Š° Š²ŃŃŠ·ŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµŃŠ¾ ŠŗŠ°ŃŠ¾ā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "ŠŠ¾ŠæŠøŃŠ°Š½Šµ Š½Š° _ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµŃŠ¾" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š° Š½Š° Š°Š½Š¾ŃŠ°ŃŠøŃŃŠ°ā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_ŠŃŠ²Š°ŃŃŠ½Šµ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š»" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š» ŠŗŠ°ŃŠ¾ā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "ŠŠ°ŃŠ°Š±" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "ŠŠ°ŃŃŃŠ¾Š¹Š²Š°Š½Šµ Š½Š° Š¼Š°ŃŠ°Š±Š°" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "ŠŠ°Š²ŠøŠ³Š°ŃŠøŃ" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "ŠŠ°Š·Š°Š“" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "ŠŃŠøŠ“Š²ŠøŠ¶Š²Š°Š½Šµ ŠæŃŠµŠ· ŠæŠ¾ŃŠµŃŠµŠ½ŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "ŠŃŠµŠ“ŠøŃŠ½Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Š”Š»ŠµŠ“Š²Š°ŃŠ°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Š£Š²ŠµŠ»ŠøŃŠ°Š²Š°Š½Šµ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "ŠŠ°Š¼Š°Š»ŃŠ²Š°Š½Šµ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "ŠŠ°ŠæŠ°ŃŠ²Š°Š½Šµ ŠæŠ¾ ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š¾ŃŠ²Š°ŃŃŠ½ŠµŃŠ¾ Š½Š° Š²ŃŠ½ŃŠ½Š° ŠæŃŠ¾Š³ŃŠ°Š¼Š°" + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š¾ŃŠ²Š°ŃŃŠ½ŠµŃŠ¾ Š½Š° Š²ŃŠ½ŃŠ½Š° Š²ŃŃŠ·ŠŗŠ°" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "" +"ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š½Š°Š¼ŠøŃŠ°Š½ŠµŃŠ¾ Š½Š° ŠæŠ¾Š“Ń Š¾Š“ŃŃ ŃŠ¾ŃŠ¼Š°Ń Š·Š° Š·Š°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµŃŠ¾" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š·Š°ŠæŠ°Š·Š²Š°Š½ŠµŃŠ¾ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµŃŠ¾." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "ŠŠµŃŃŠæŠµŃ ŠæŃŠø Š¾ŃŠ²Š°ŃŃŠ½ŠµŃŠ¾ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š»" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "ŠŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃŃ ŃŠ°Š¹Š» Š½Šµ Š¼Š¾Š¶Šµ Š“Š° Š±ŃŠ“Šµ Š·Š°ŠæŠ°Š·ŠµŠ½." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ Š½Š° ŠæŃŠøŠŗŃŠµŠæŠµŠ½ŠøŃ ŃŠ°Š¹Š»" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ŠøŠ·ŠøŃŠŗŠ²Š° ŃŠµ ŠæŠ°ŃŠ¾Š»Š°" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ŠŠ¾ ŃŠ°Š·ŃŠøŃŠµŠ½ŠøŠµ" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Š¢ŠµŠŗŃŃ Š·Š° ŃŃŃŠ°Š½ŠøŃŠ°." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "Š”Š¢Š ŠŠŠŠ¦Š" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Š¢ŠµŠŗŃŃ Š·Š° Š½Š¾Š¼ŠµŃ Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ŠŠŠŠŠ " + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ŠŃŃŠŗŠ°Š½Šµ Š½Š° Evince Š² ŃŠµŠ¶ŠøŠ¼ ŃŃŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ŠŃŃŠŗŠ°Š½Šµ Š½Š° Evince Š² ŃŠµŠ¶ŠøŠ¼ Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ŠŃŃŠŗŠ°Š½Šµ Š½Š° Evince Š·Š° ŠæŃŠµŠ³Š»ŠµŠ“" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Š¢ŃŃŃŠµŠ½Šµ Š½Š° Š“ŃŠ¼Š° ŠøŠ»Šø ŃŃŠ°Š·Š° Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ŠŠŠ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Š¤ŠŠŠā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŠ°Š»ŠøŃŠ½Šø Š±ŃŠ»ŠµŠ²Šø Š¾ŠæŃŠøŠø ā ātrueā Š²ŠŗŠ»ŃŃŠ²Š° ŃŃŠ·Š“Š°Š²Š°Š½ŠµŃŠ¾ Š½Š° Š¼ŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ, Š° " +"āfalseā Š³Š¾ ŠøŠ·ŠŗŠ»ŃŃŠ²Š°" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ŠŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠµ Š¾Ń Š²ŠøŠ“ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Š·Š° ŃŃŠ·Š“Š°Š²Š°Š½Šµ Š½Š° Š¼ŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠµ Š¾Ń Š²ŠøŠ“ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ŠŠ°Š»ŠøŠ“Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š° Š·Š°ŠµŠ“Š½Š¾ Ń Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠøŃŠµ ŃŠø Š·Š° ŃŃŠ·Š“Š°Š²Š°Š½ŠµŃŠ¾ Š½Š° Š¼ŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ " +"Š¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š¾Ń Š²ŠøŠ“ PDF. ŠŠ° ŠæŠ¾Š²ŠµŃŠµ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ ŠæŃŠµŠ³Š»ŠµŠ“Š°Š¹ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃŃŠ° Š½Š° " +"Caja Š·Š° Š¼ŠøŠ½Šø ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃŃŠ°." diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 00000000..9d78966c --- /dev/null +++ b/po/bn.po @@ -0,0 +1,1813 @@ +# Bangla translation of Evince. +# Copyright (C) 1996-2006 The Evince authors. +# This file is distributed under the same license as the Evince package. +# Progga <progga@BengaLinux.Org>, 2005-2006. +# Jamil Ahmed <jamil@bengalinux.org>, 2006 +# Khandakar Mujahidul Islam <suzan@bengalinux.org>, 2006 +# Maruf Ovee <maruf@ankur.org.bd>, 2009. +# Sadia Afroz <sadia@ankur.org.bd>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: bn\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-02-24 17:13+0000\n" +"PO-Revision-Date: 2010-03-25 18:02+0600\n" +"Last-Translator: Sadia Afroz <sadia@ankur.org.bd>\n" +"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦®ą¦¾ą¦Øą§ą¦” ā%1$sā ą¦ą¦¾ą¦²ą§ ą¦ą¦°ą¦¤ą§ ą¦¤ą§ą¦°ą§ą¦ą¦æ ą¦¹ą§ą§ą¦ą§: %2$s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą¦ą¦®ą¦¾ą¦Øą§ą¦” ā%s\" ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ ą¦¹ą§ą§ą¦ą§ą„¤" + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ą¦ą¦®ą¦¾ą¦Øą§ą¦” ā%s\" ą¦øą§ą¦¬ą¦¾ą¦ą¦¾ą¦¬ą¦æą¦ą¦ą¦¾ą¦¬ą§ ą¦¶ą§ą¦· ą¦¹ą§ą¦Øą¦æą„¤" + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¦ą¦ą¦ą¦æ MIME ą¦§ą¦°ą¦Øą§ą¦° ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦Øą§: %s" + +# Translated by sadia +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¦ ą¦§ą¦°ą¦Øą§ą¦° ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦Ŗą¦Æą§ą¦ą§ą¦¤ ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦ą§ą¦ą¦ą§ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ " + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¦ ą¦ą¦¾ą¦Øą¦¾ MIME-ą¦ą¦° ą¦§ą¦°ą¦Ø" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æą¦Ŗą§ą¦°ą§ą¦£ ą¦«ą¦¾ą¦ą¦²" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "%s ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦ą§ą¦Øą§ ą¦«ą¦¾ą¦ą¦² ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ ą¦Øą¦æ" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦ą§ą¦Ø ą¦ą¦¬ą¦æ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ ą¦Øą¦æ" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą¦¾ą¦° ą¦øą¦®ą§ ą¦ą¦ą¦ą¦æ ą¦¤ą§ą¦°ą§ą¦ą¦æ ą¦ą¦æą¦²ą„¤" + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¦ą¦®ą¦æą¦-ą¦ą¦° ą¦¬ą¦" + +#: ../backend/djvu/djvu-document.c:173 +#| msgid "DVI document has incorrect format" +msgid "DjVu document has incorrect format" +msgstr "DjVu ą¦Øą¦„ą¦æą¦¤ą§ ą¦ą§ą¦² ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦°ą§ą§ą¦ą§" + +#: ../backend/djvu/djvu-document.c:250 +#| msgid "" +#| "The document is composed of several files. One or more of such files " +#| "cannot be accessed." +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ą¦ą¦ ą¦Øą¦„ą¦æą¦ą¦æ ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦² ą¦¦ą¦æą§ą§ ą¦ą¦ ą¦æą¦¤ą„¤ ą¦ą¦ą§ą¦²ą§ą¦° ą¦ą¦ ą¦¬ą¦¾ ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦²ą§ ą¦Ŗą§ą¦°ą¦¬ą§ą¦¶ ą¦ą¦°ą¦¾ " +"ą¦Æą¦¾ą¦ą§ą¦ą§ą¦Øą¦¾ą„¤" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#| msgid "Djvu Documents" +msgid "DjVu Documents" +msgstr "Djvu ą¦Øą¦„ą¦æ" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æą¦Ŗą§ą¦°ą§ą¦£ DVI ą¦Øą¦„ą¦æ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¦Øą¦„ą¦æ" + +# Translated by sadia +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "ą¦ą¦ ą¦ą¦¾ą¦ą¦ą¦æ ą¦øą¦°ą§ą¦¬ą¦ą¦Øą§ą¦Ø ą¦”ą§ą¦®ą§ą¦ą¦Øą§ą¦° ą¦ ą¦§ą§ą¦Øą§" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ą¦¹ą§ą¦Æą¦¾ą¦" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą¦Øą¦¾" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "ą¦§ą¦°ą¦Ø ą§§" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "ą¦§ą¦°ą¦Ø ą§§C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "ą¦§ą¦°ą¦Ø ą§©" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "ą¦§ą¦°ą¦Ø ą§§ (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "ą¦§ą¦°ą¦Ø ą§§C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą¦ ą¦ą¦¾ą¦Øą¦¾ ą¦«ą¦Øą§ą¦ą§ą¦° ą¦§ą¦°ą¦Ø" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą¦Øą¦¾ą¦®ą¦¹ą§ą¦Ø" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ą¦øą¦Øą§ą¦Øą¦æą¦¬ą§ą¦¶ą¦æą¦¤ ą¦øą¦¾ą¦¬ą¦øą§ą¦" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ą¦øą¦Øą§ą¦Øą¦æą¦¬ą§ą¦¶ą¦æą¦¤" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą¦øą¦Øą§ą¦Øą¦æą¦¬ą§ą¦¶ą¦æą¦¤ ą¦Øą§" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¦Øą¦„ą¦æ" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą¦ ą¦ą¦¾ą¦°ą§ą¦Æą¦ą¦° ą¦Øą¦„ą¦æ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¦ą¦®ą¦Ŗą§ą¦°ą§ą¦ø ą¦øą§ą¦²ą¦¾ą¦ą¦”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¦ą§ą¦Øą§ ą¦¤ą§ą¦°ą§ą¦ą¦æ ą¦Øą§ą¦" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¦Ŗą¦°ą§ą¦Æą¦¾ą¦Ŗą§ą¦¤ ą¦®ą§ą¦®ą¦°ą¦æ ą¦Øą§ą¦" + +#: ../backend/impress/zip.c:59 +#| msgid "Cannot find zip signature" +msgid "Cannot find ZIP signature" +msgstr "ZIP ą¦øą§ą¦¬ą¦¾ą¦ą§ą¦·ą¦° ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą¦ą§ą¦ą§ą¦Øą¦¾" + +#: ../backend/impress/zip.c:62 +#| msgid "Invalid zip file" +msgid "Invalid ZIP file" +msgstr "ą¦ ą¦ą¦¾ą¦°ą§ą¦Æą¦ą¦° ZIP ą¦«ą¦¾ą¦ą¦²" + +#: ../backend/impress/zip.c:65 +#| msgid "Multi file zips are not supported" +msgid "Multi file ZIPs are not supported" +msgstr "ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦² ZIP ą¦ą¦°ą¦¾ ą¦øą¦®ą¦°ą§ą¦„ą¦æą¦¤ ą¦Øą§" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¦«ą¦¾ą¦ą¦² ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¦«ą¦¾ą¦ą¦² ą¦„ą§ą¦ą§ ą¦”ą¦¾ą¦ą¦¾ ą¦Ŗą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../backend/impress/zip.c:74 +#| msgid "Cannot find file in the zip archive" +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦«ą¦¾ą¦ą¦² ą¦ą§ą¦ą¦ą§ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą¦ą§ą¦ą§ą¦Øą¦¾" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¦ ą¦ą¦¾ą¦Øą¦¾ ą¦¤ą§ą¦°ą§ą¦ą¦æ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¦Øą¦„ą¦æ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą¦Øą¦„ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ą¦Øą¦„ą¦æ" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ā%1$sā ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %2$s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ā%1$sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %2$s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ā%sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą¦«ą¦¾ą¦ą¦² ą¦§ą¦°ą¦Ø %1$s (%2$s) ą¦øą¦®ą¦°ą§ą¦„ą¦æą¦¤ ą¦Øą§" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¦øą¦ą¦² ą¦Øą¦„ą¦æ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¦øą¦ą¦² ą¦«ą¦¾ą¦ą¦²" + +# Translated by sadia +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦«ą¦¾ą¦ą¦² ą¦¤ą§ą¦°ą¦æ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +# Translated by sadia +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦”ą¦æą¦°ą§ą¦ą§ą¦ą¦°ą§ ą¦¤ą§ą¦°ą¦æ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¦«ą¦¾ą¦ą¦²ą¦ą¦æ ą¦ą¦ą¦ą¦æ ą¦¬ą§ą¦§ .desktop file ą¦Øą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¦¶ą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą§ą¦Øą¦æ ą¦ą¦®ą¦Ø ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦«ą¦¾ą¦ą¦² ą¦øą¦ą¦øą§ą¦ą¦°ą¦£ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¦ą¦°ą¦®ą§ą¦ ą¦¹ą¦ą§ą¦ą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¦ ą§ą¦Æą¦¾ą¦Ŗą§ą¦²ą¦æą¦ą§ą¦¶ą¦Ø ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦²ą¦¾ą¦ą¦Øą§ ą¦Øą¦„ą¦æ ą¦ą§ą¦°ą¦¹ą¦£ ą¦ą¦°ą§ą¦Øą¦¾" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¦¶ą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą§ą¦Øą¦æ ą¦ą¦®ą¦Ø ą¦ą¦¾ą¦²ą§ ą¦ą¦°ą¦¾ą¦° ą¦ ą¦Ŗą¦¶ą¦Ø: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą¦ą¦ą¦ą¦æ 'Type=Link' ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦ą¦Øą§ą¦ą§ą¦°ą¦æą¦¤ą§ ą¦Øą¦„ą¦æ URI ą¦Ŗą¦¾ą¦ ą¦¾ą¦Øą§ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¦ą¦¾ą¦²ą§ ą¦ą¦°ą¦¾ ą¦Æą¦¾ą§ ą¦ą¦®ą¦Ø ą¦ą¦ą¦ą§ą¦® ą¦Øą§" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą¦øą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦ą§ą¦° ą¦øą¦¾ą¦„ą§ ą¦øą¦ą¦Æą§ą¦ ą¦¬ą¦æą¦ą¦æą¦Øą§ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą¦øą¦ą¦°ą¦ą§ą¦·ą¦æą¦¤ ą¦ą¦Øą¦«ą¦æą¦ą¦¾ą¦°ą§ą¦¶ą¦Ø ą¦§ą¦¾ą¦°ą¦£ą¦ą¦¾ą¦°ą§ ą¦«ą¦¾ą¦ą¦² ą¦øą§ą¦Øą¦æą¦°ą§ą¦¦ą¦æą¦·ą§ą¦ą¦ą¦¾ą¦¬ą§ ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą¦øą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ID ą¦øą§ą¦Øą¦æą¦°ą§ą¦¦ą¦æą¦·ą§ą¦ą¦ą¦¾ą¦¬ą§ ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą¦øą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦ ą¦Ŗą¦¶ą¦Ø:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¦øą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦ ą¦Ŗą¦¶ą¦Ø ą¦¦ą§ą¦ą¦¾ą¦Ø" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦°ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦øą§ą¦„ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Ø (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦°ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ą¦° ą¦øą§ą¦„ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦° ą¦„ą§ą¦ą§ ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦„ą§ą¦ą§ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦° ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦ą§ą¦²ą¦¬ą¦¾ą¦° ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¦¬ą¦æą¦ą¦¾ą¦ą¦" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦®ą§ą¦”ą§ ą¦ą¦²ą¦ą§" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5329 +msgid "Best Fit" +msgstr "ą¦øą§ą¦°ą¦¾ ą¦ą¦ą¦¾ą¦°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą§ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą§®ą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą§§ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą§§ą§Øą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą§§ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą§§ą§ą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą§Øą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą§©ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą§Ŗą§¦ą§¦%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4193 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦" + +#: ../data/evince.desktop.in.in.h:2 +#| msgid "View multipage documents" +msgid "View multi-page documents" +msgstr "ą¦¬ą¦¹ą§ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦®ą§ą¦¬ą¦²ą¦æą¦¤ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¦Øą¦„ą¦æą¦¤ą§ ą¦ą¦°ą§ą¦Ŗą¦æą¦¤ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾ ą¦ ą¦ą§ą¦°ą¦¾ą¦¹ą§ą¦Æ ą¦ą¦°ą§ą¦Ø" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¦Øą¦„ą¦æą¦¤ą§ ą¦ą¦°ą§ą¦Ŗą¦æą¦¤ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾, ą¦Æą§ą¦®ą¦Ø ą¦ą¦Ŗą¦æ ą¦¬ą¦¾ ą¦®ą§ą¦¦ą§ą¦°ą¦£ą§ą¦° ą¦ą¦Ŗą¦°, ą¦ ą¦ą§ą¦°ą¦¾ą¦¹ą§ą¦Æ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦«ą¦¾ą¦ą¦² ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą¦øą§ą¦ą¦æą¦ ą¦«ą¦¾ą¦ą¦² ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "MATE ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "ą¦Øą¦„ą¦æ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą¦Øą§ą¦¤ą§ą¦° '%s' ą¦ą§ą¦ą¦ą§ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5078 +msgid "_Previous Page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_P)" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5079 +msgid "Go to the previous page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5081 +msgid "_Next Page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_N)" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5082 +msgid "Go to the next page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5065 +msgid "Enlarge the document" +msgstr "ą¦Øą¦„ą¦æ ą¦¬ą¦æą¦¬ą¦°ą§ą¦§ą¦æą¦¤ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5068 +msgid "Shrink the document" +msgstr "ą¦Øą¦„ą¦æ ą¦øą¦ą§ą¦ą§ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£" + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5036 +msgid "Print this document" +msgstr "ą¦ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦ą¦æ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5180 +msgid "_Best Fit" +msgstr "ą¦øą§ą¦°ą¦¾ ą¦®ą¦¾ą¦Ŗą¦øą¦ą¦ą¦°ą¦£ (_B)" + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5181 +msgid "Make the current document fill the window" +msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¦ą¦æą§ą§ ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦ą¦ą¦Øą§ą¦”ą§ ą¦¦ą¦ą¦² ą¦ą¦°ą§" + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5183 +msgid "Fit Page _Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦„ą§ą¦° ą¦®ą¦¾ą¦Ŗą¦øą¦ą¦ą¦°ą¦£ (_W)" + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5184 +msgid "Make the current document fill the window width" +msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦Øą¦„ą¦æą¦ą¦æ ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą§ą¦°ą¦øą§ą¦„ ą¦ą§ą§ą§ ą¦„ą¦¾ą¦ą¦¬ą§ " + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5251 +msgid "Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾" + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5252 +msgid "Select Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¦Øą¦„ą¦æ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą¦¶ą¦æą¦°ą§ą¦Øą¦¾ą¦®:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą¦ ą¦¬ą¦øą§ą¦„ą¦¾ą¦Ø:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą¦¬ą¦æą¦·ą§:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ą¦²ą§ą¦ą¦:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą¦®ą§ą¦²ą¦¶ą¦¬ą§ą¦¦:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ą¦ą¦¾ą¦°ą¦:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą¦¤ą§ą¦°ą¦æą¦ą¦¾ą¦°ą¦:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą¦¤ą§ą¦°ą¦æ ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§:" + +# FIXME +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦æą¦¤:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą¦ą¦ą§ą¦Æą¦¾:" + +# FIXME +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą¦øą§ą¦°ą¦¾-ą¦ ą¦Øą§ą¦ą§ą¦²ą¦ą§ą¦¤:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą¦Øą¦æą¦°ą¦¾ą¦Ŗą¦¤ą§ą¦¤ą¦¾:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą¦ą¦¾ą¦ą¦ą§ą¦° ą¦ą¦ą¦¾ą¦°:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "ą¦ą¦ą¦ą¦æą¦ ą¦Øą§" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "ą¦”ą¦æą¦«ą¦²ą§ą¦:ą¦®ą¦æą¦®ą¦æ" + +#: ../properties/ev-properties-view.c:284 +#| msgid "%.0f x %.0f mm" +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#| msgid "%.2f x %.2f inch" +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%1$s, ą¦²ą¦®ą§ą¦¬ą¦¾ą¦²ą¦®ą§ą¦¬ą¦æ (%2$s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%1$s, ą¦ą§ą¦¾ą¦ą§ą¦æ (%2$s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%2$d ą¦ą¦° %1$d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ą¦ą¦°" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +#| msgid "Preparing to print ..." +msgid "Preparing to printā¦" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ā¦" + +#: ../libview/ev-print-operation.c:343 +#| msgid "Finishing..." +msgid "Finishingā¦" +msgstr "ą¦¶ą§ą¦· ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ā¦" + +#: ../libview/ev-print-operation.c:345 +#| msgid "Printing page %d of %d..." +msgid "Printing page %d of %dā¦" +msgstr "%1$d-ą¦ą¦æą¦° %2$d ą¦ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "ą¦ą¦ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą¦¾ą¦°ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ą§ą¦° ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ ą¦Øą§ą¦ą„¤" + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "ą¦ ą¦ą¦¾ą¦°ą§ą¦Æą¦ą¦° ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "ą¦øą¦¤ą¦°ą§ą¦ą¦¤ą¦¾" + +#: ../libview/ev-print-operation.c:1237 +#| msgid "Your print range selection does not include any page" +msgid "Your print range selection does not include any pages" +msgstr "ą¦ą¦Ŗą¦Øą¦¾ą¦° ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą¦°ą¦æą¦øą¦° ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ ą¦Øą§ą¦¤ą¦°ą§ą¦ą§ą¦ą§ą¦¤ ą¦ą¦°ą§ą¦Øą¦¾" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą§ą¦ą§ą¦Æ ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą¦ą§ą¦ą§ą¦¤ą§ ą¦øą¦ą¦ą§ą¦ą¦æą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą§ą¦ą§ą¦Æ ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą¦ą§ą¦ą§ą¦¤ą§ ą¦®ą¦¾ą¦Øą¦¾ą¦Øą¦øą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../libview/ev-print-operation.c:1901 +#| msgid "" +#| "Scale document pages to fit the selected printer page. Select from one of " +#| "the following:\n" +#| "\n" +#| "ā¢ \"None\": No page scaling is performed.\n" +#| "\n" +#| "ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +#| "area are reduced fit the printable area of the printer page.\n" +#| "\n" +#| "ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +#| "required to fit the printable area of the printer page.\n" +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą¦¾ą¦„ą§ ą¦®ą¦¾ą¦Øą¦¾ą¦Øą¦øą¦ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Øą„¤ ą¦Øą¦æą¦®ą§ą¦Øą§ " +"ą¦ą¦²ą§ą¦²ą¦æą¦ą¦æą¦¤ ą¦ą¦ą¦ą¦æ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø:\n" +"\n" +"ā¢ \"None\": ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą§ą¦Øą¦æą„¤\n" +"\n" +"ā¢ \"Shrink to Printable Area\": ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą§ą¦ą§ą¦Æ ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦¤ą§ ą¦¬ą§ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° " +"ą¦ą¦®ą¦¾ą¦Øą§ ą¦¹ą§ ą¦Æą¦¾ą¦¤ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą§ą¦ą§ą¦Æ ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦° ą¦øą¦¾ą¦„ą§ ą¦®ą¦¾ą¦Øą¦¾ą¦Øą¦øą¦ ą¦¹ą§ą„¤\n" +"\n" +"ā¢ \"Fit to Printable Area\": ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą§ą¦ą§ą¦Æ ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦° ą¦øą¦¾ą¦„ą§ ą¦®ą¦¾ą¦Øą¦¾ą¦Øą¦øą¦ ą¦ą¦°ą¦¾ą¦° " +"ą¦ą¦Øą§ą¦Æ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦ą§ ą¦Ŗą§ą¦°ą§ą§ą¦ą¦Ø ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦¬ą¦°ą§ą¦§ą¦æą¦¤ ą¦¬ą¦¾ ą¦¹ą§ą¦°ą¦¾ą¦ø ą¦ą¦°ą¦¾ ą¦¹ą§ą„¤\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "ą¦øą§ą¦¬ą§ą¦ą¦ą§ą¦°ą¦æą§ą¦ą¦¾ą¦¬ą§ ą¦ą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ ą¦ą§ą¦Øą§ą¦¦ą§ą¦°" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ą¦Ŗą§ą¦°ą¦¤ą¦æą¦ą¦æ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą§ą¦„ą¦æą¦¤ą¦æą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦®ą¦æą¦²ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦ą¦æ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą§ą¦„ą¦æą¦¤ą¦æą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦ą¦¬ą¦°ą§ą¦¤ą¦Ø " +"ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦ą§ą¦²ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą§ą¦Øą§ą¦¦ą§ą¦°ą¦øą§ą¦„ą¦æą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤" + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦° ą¦ą¦°ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦ą¦ą¦¾ą¦° ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ą¦øą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą¦¾ ą¦¹ą¦²ą§, ą¦Ŗą§ą¦°ą¦¤ą¦æą¦ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦ą¦ ą¦ą¦ą¦¾ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦ą§ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦¹ą¦æą¦øą§ą¦¬ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤" + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦¹ą§ą¦Æą¦¾ą¦Øą§ą¦”ą¦²ą¦æą¦" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ā%1$dā ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %2$s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¦ą¦Ŗą¦°ą§ ą¦øą§ą¦ą§ą¦°ą¦² ą¦ą¦°ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¦Øą¦æą¦ą§ ą¦øą§ą¦ą§ą¦°ą¦² ą¦ą¦°ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¦¦ą§ą¦¶ą§ą¦Æą¦ą§ ą¦ą¦Ŗą¦°ą§ ą¦øą§ą¦ą§ą¦°ą¦² ą¦ą¦°ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¦¦ą§ą¦¶ą§ą¦Æą¦ą§ ą¦Øą¦æą¦ą§ ą¦øą§ą¦ą§ą¦°ą¦² ą¦ą¦°ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¦Øą¦„ą¦æ ą¦ą¦æą¦" + +#: ../libview/ev-view-presentation.c:669 +msgid "Jump to page:" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø:" + +#: ../libview/ev-view-presentation.c:979 +msgid "End of presentation. Click to exit." +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ą¦° ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æą„¤ ą¦Ŗą§ą¦°ą¦øą§ą¦„ą¦¾ą¦Ø-ą¦ ą¦ą§ą¦²ą¦æą¦ ą¦ą¦°ą§ą¦Øą„¤" + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "ą¦ą§ą¦ą¦ą§ą¦Ø" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "%s ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ą¦«ą¦¾ą¦ą¦² %2$s ą¦ą¦°, ā%1$sā ą¦ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¦«ą¦¾ą¦ą¦²ą§ ą¦Æą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "%s ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +#| msgid "Loading..." +msgid "Loadingā¦" +msgstr "ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¦ą§ą¦ą¦ą§ą¦Ø:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5053 +msgid "Find Pre_vious" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦·ą§ą¦ą§ą¦°ą¦æą¦ ą¦ą¦° ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5051 +msgid "Find Ne_xt" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æą¦° ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦°ą§" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¦ ą¦ą§ą¦·ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦ą¦¬ą§ą¦¦ą¦Øą¦¶ą§ą¦² (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¦ ą¦ą§ą¦·ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦ą¦¬ą§ą¦¦ą¦Øą¦¶ą§ą¦² ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦ą¦² ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¦Øą¦„ą¦æą¦° ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦”" + +# Translated by sadia +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ą¦°ą§ą¦Ŗą¦¾ą¦Øą§ą¦¤ą¦° ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +# Translated by sadia +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° %d ą¦°ą§ą¦Ŗą¦¾ą¦Øą§ą¦¤ą¦° ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§" + +# Translated by sadia +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "ą¦®ą§ą¦ą¦¾ą¦”ą¦¾ą¦ą¦¾ ą¦°ą§ą¦Ŗą¦¾ą¦Øą§ą¦¤ą¦° ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +# Translated by sadia +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ą¦ą¦ą¦æą¦Øą§ą¦øą§ą¦° ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦®ą§ą¦ą¦¾ą¦”ą¦¾ą¦ą¦¾ ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§, ą¦ą¦ą¦Øą§ą¦Æ ą¦ą¦ą¦¾ą¦° ą¦ ą¦ą¦æą¦¬ą¦¾ą¦øą¦Ø ą¦Ŗą§ą¦°ą§ą§ą¦ą¦Øą„¤ " +"ą¦ ą¦ą¦æą¦¬ą¦¾ą¦øą¦Ø ą¦Ŗą§ą¦°ą¦ą§ą¦°ą¦æą§ą¦¾ ą¦¬ą¦¾ą¦¤ą¦æą¦² ą¦ą¦°ą¦¾ ą¦¹ą¦²ą§ ą¦®ą§ą¦ą¦¾ą¦”ą¦¾ą¦ą¦¾ ą¦øą¦ą¦ą§ą¦°ą¦¹ą¦¶ą¦¾ą¦²ą¦¾ ą¦ą¦¾ą¦ ą¦ą¦°ą¦¬ą§ ą¦Øą¦¾ą„¤" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¦ą¦ą¦ą¦æ ą¦øą¦¾ą¦®ą§ą¦Ŗą§ą¦°ą¦¤ą¦æą¦ ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦Øą¦„ą¦æ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ą¦ą¦ ą¦Øą¦„ą¦æą¦ą¦æ ą¦ą¦ą¦ą¦¾ą¦Øą§ ą¦°ą§ą§ą¦ą§ ą¦ą¦¬ą¦ ą¦¶ą§ą¦§ą§ą¦®ą¦¾ą¦¤ą§ą¦° ą¦øą¦ ą¦æą¦ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦Ŗą§ą¦°ą¦¦ą¦¾ą¦Øą§ą¦° ą¦Ŗą¦°ą¦ ą¦ą¦ą¦æ ą¦Ŗą§ą¦¾ ą¦Æą¦¾ą¦¬ą§ą„¤" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "ą¦Øą¦„ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦ą¦°ą§ą¦Ø (_U)" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦Ŗą§ą¦°ą¦¬ą§ą¦¶ ą¦ą¦°ą¦¾ą¦Ø" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦Ŗą§ą¦°ą§ą§ą¦ą¦Ø" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ą¦Øą¦„ą¦æ ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦ą¦ą¦ą¦¾ą¦Øą§ ą¦ą¦ą§ ą¦ ą¦®ą§ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą¦¾ ą¦ą¦¬ą¦¶ą§ą¦Æą¦ą„¤" + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” (_P):" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "ą¦¤ą¦¾ą§ą¦ą§ą¦·ą¦Øą¦æą¦ą¦ą¦¾ą¦¬ą§ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą§ą¦²ą§ ą¦Æą¦¾ą¦Ø (_i)" + +#: ../shell/ev-password-view.c:377 +#| msgid "Remember password until you _logout" +msgid "Remember password until you _log out" +msgstr "ą¦²ą¦ą¦ą¦ą¦ ą¦Øą¦¾ ą¦ą¦°ą¦¾ ą¦Ŗą¦°ą§ą¦Æą¦Øą§ą¦¤ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦®ą¦Øą§ ą¦°ą¦¾ą¦ą¦¾ ą¦¹ą¦¬ą§ (_l)" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "ą¦øą¦¬ą¦øą¦®ą§ ą¦®ą¦Øą§ ą¦°ą¦¾ą¦ą§ą¦Ø (_f)" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "ą¦øą¦¾ą¦§ą¦¾ą¦°ą¦£" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "ą¦«ą¦Øą§ą¦" + +# Translated by sadia +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦ø" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¦«ą¦Øą§ą¦" + +#: ../shell/ev-properties-fonts.c:162 +#| msgid "Gathering font information... %3d%%" +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą¦«ą¦Øą§ą¦ ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤ ą¦¤ą¦„ą§ą¦Æ ą¦øą¦ą¦ą§ą¦°ą¦¹ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ā¦ %3d%%" + +# Translated by sadia +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦° ą¦¶ą¦°ą§ą¦¤ą¦øą¦®ą§ą¦¹" + +# Translated by sadia +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "ą¦Ŗą¦¾ą¦ ą§ą¦Æ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦ø" + +# Translated by sadia +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "ą¦ą¦°ą¦ ą¦¤ą¦„ą§ą¦Æ" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą¦øą§ą¦¤ą¦°" + +#: ../shell/ev-sidebar-links.c:335 +#| msgid "Print" +msgid "Printā¦" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą¦øą§ą¦ą¦æą¦Ŗą¦¤ą§ą¦°" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦²" + +#: ../shell/ev-window.c:839 +#| msgid "Page %s - %s" +msgid "Page %s ā %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %1$s ā %2$s" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %s" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "ą¦Øą¦„ą¦æą¦ą¦æ ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦§ą¦¾ą¦°ą¦£ ą¦ą¦°ą§ą¦Øą¦¾" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "ą¦Øą¦„ą¦æą¦ą¦æ ą¦¶ą§ą¦§ą§ą¦®ą¦¾ą¦¤ą§ą¦° ą¦«ą¦¾ą¦ą¦ą¦¾ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦§ą¦¾ą¦°ą¦£ ą¦ą¦°ą§" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "ą¦Øą¦„ą¦æ ą¦ą§ą¦²ą¦¾ ą¦Æą¦¾ą§ ą¦Øą¦æ" + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ą¦„ą§ą¦ą§ ą¦Øą¦„ą¦æ ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¦Øą¦„ą¦æ ą¦”ą¦¾ą¦ą¦Øą¦²ą§ą¦” ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +# Translated by sadia +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "ą¦¦ą§ą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦«ą¦¾ą¦ą¦² ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "ā%sā ą¦„ą§ą¦ą§ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "ą¦Øą¦„ą¦æ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "%s ą¦ ą¦Øą¦„ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ą¦ ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "%s ą¦ ą¦ą¦æą¦¤ą§ą¦° ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sāą¦°ą§ą¦Ŗą§ ą¦«ą¦¾ą¦ą¦² ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¦Øą¦„ą¦æ ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¦ą¦æą¦¤ą§ą¦° ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą¦ą¦æą¦ą¦¤ą§ %d ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦®ą¦¾ą¦Ø ą¦ą¦¾ą¦" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦¾ą¦" + +#: ../shell/ev-window.c:3265 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ą¦° ą¦ą¦ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦¾ą¦ ā%sā ą¦¶ą§ą¦· ą¦Øą¦¾ ą¦¹ą¦ą§ą¦¾ ą¦Ŗą¦°ą§ą¦Æą¦Øą§ą¦¤ ą¦ą¦æ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ ą¦ą¦°ą¦¬ą§ą¦Ø?" + +#: ../shell/ev-window.c:3268 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ą¦ą¦ą¦¾ą¦Øą§ %d ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦¾ą¦ ą¦øą¦ą§ą¦°ą¦æą§, ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ą¦° ą¦ą¦ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦¾ą¦ ą¦¶ą§ą¦· ą¦Øą¦¾ ą¦¹ą¦ą§ą¦¾ ą¦Ŗą¦°ą§ą¦Æą¦Øą§ą¦¤ ą¦ą¦æ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ " +"ą¦ą¦°ą¦¬ą§ą¦Ø?" + +#: ../shell/ev-window.c:3280 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¦Æą¦¦ą¦æ ą¦ą¦Ŗą¦Øą¦æ ą¦ą¦ą¦Øą§ą¦”ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø, ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦®ą¦¾ą¦Ø ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦ą¦¾ą¦ ą¦®ą§ą¦¦ą§ą¦°ą¦æą¦¤ ą¦¹ą¦¬ą§ą¦Øą¦¾ą„¤" + +#: ../shell/ev-window.c:3284 +msgid "Cancel _print and Close" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ ą¦¬ą¦¾ą¦¤ą¦æą¦² ą¦ą¦°ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø (_p)" + +#: ../shell/ev-window.c:3288 +msgid "Close _after Printing" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ą§ą¦° ą¦Ŗą¦°ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø (_a)" + +#: ../shell/ev-window.c:3846 +msgid "Toolbar Editor" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦° ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦" + +#: ../shell/ev-window.c:3978 +msgid "There was an error displaying help" +msgstr "ą¦øą¦¹ą¦¾ą§ą¦¤ą¦¾ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ą¦° ą¦øą¦®ą§ ą¦ą¦ą¦ą¦æ ą¦¤ą§ą¦°ą§ą¦ą¦æ ą¦ą¦æą¦²" + +#: ../shell/ev-window.c:4189 +#| msgid "" +#| "Document Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦\n%1$s (%2$s) ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦° ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:4220 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ą¦ą¦ą¦æą¦Øą§ą¦ø ą¦ą¦ą¦ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦øą¦«ą¦ą¦ą§ą§ą¦Æą¦¾ą¦°; ą¦®ą§ą¦ą§ą¦¤ ą¦øą¦«ą¦ą¦ą§ą§ą¦Æą¦¾ą¦° ą¦«ą¦¾ą¦ą¦Øą§ą¦”ą§ą¦¶ą¦Ø ą¦ą¦°ą§ą¦¤ą§ą¦ ą¦Ŗą§ą¦°ą¦ą¦¾ą¦¶ą¦æą¦¤ GNU ą¦øą¦¾ą¦§ą¦¾ą¦°ą¦£ " +"ą¦Ŗą¦¾ą¦¬ą¦²ą¦æą¦ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦øą§ą¦° ą¦¶ą¦°ą§ą¦¤ ą¦®ą§ą¦Øą§ ą¦ą¦Ŗą¦Øą¦æ ą¦ą¦ą§ ą¦Ŗą§ą¦Øą¦ą¦¬ą¦æą¦¤ą¦°ą¦£ ą¦ą¦¬ą¦/ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą¦¤ą§ ą¦Ŗą¦¾ą¦°ą§ą¦Ø; \n" +"ą¦ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ ą¦ą¦²ą§ą¦²ą¦æą¦ą¦æą¦¤ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦øą§ą¦° ą§Øą§ ą¦¬ą¦¾ ą¦¤ą¦¾ą¦° ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą§ą¦Ø ą¦øą¦ą¦øą§ą¦ą¦°ą¦£ (ą¦ą¦Ŗą¦Øą¦¾ą¦° ą¦ą¦ą§ą¦ą¦¾ą¦Øą§ą¦øą¦¾ą¦°ą§) " +"ą¦ ą¦Øą§ą¦øą¦°ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¹ą¦¬ą§ą„¤\n" + +#: ../shell/ev-window.c:4224 +msgid "" +"Evince 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.\n" +msgstr "" +"ą¦ą¦ą¦æą¦Øą§ą¦øą¦ą§ ą¦ą¦ ą¦ą¦¶ą¦¾ą§ ą¦¬ą¦æą¦¤ą¦°ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ ą¦Æą§ ą¦ą¦ą¦æ ą¦ą¦Ŗą¦Øą¦¾ą¦° ą¦ą¦Ŗą¦ą¦¾ą¦°ą§ ą¦ą¦øą¦¬ą§, ą¦¤ą¦¬ą§ ą¦ ą¦¬ą§ą¦Æą¦¾ą¦Ŗą¦¾ą¦°ą§ ą¦ą§ą¦Ø " +"ą¦Øą¦æą¦¶ą§ą¦ą§ą¦¤ą¦¾ ą¦¦ą§ą¦ą§ą¦¾ ą¦¹ą¦ą§ą¦ą§ ą¦Øą¦¾; ą¦ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ ą¦ą¦®ą¦Øą¦ą¦æ ą¦ą¦° ą¦¬ą¦æą¦ą§ą¦°ą§ą¦Æą§ą¦ą§ą¦Æą¦¤ą¦¾ ą¦¬ą¦¾ ą¦Øą¦æą¦°ą§ą¦¦ą¦æą¦·ą§ą¦ ą¦ą§ą¦Ø ą¦ą¦¾ą¦ą§ą¦° " +"ą¦ą¦Ŗą¦Æą§ą¦ą§ą¦¤ą¦¾ ą¦øą¦®ą§ą¦Ŗą¦°ą§ą¦ą§ą¦ ą¦ą§ą¦Ø ą¦Øą¦æą¦¶ą§ą¦ą§ą¦¤ą¦¾ą¦ ą¦¦ą§ą¦ą§ą¦¾ ą¦¹ą¦ą§ą¦ą§ ą¦Øą¦¾ą„¤ ą¦¬ą¦æą¦øą§ą¦¤ą¦¾ą¦°ą¦æą¦¤ ą¦ą¦¾ą¦Øą¦¾ą¦° ą¦ą¦Øą§ą¦Æ GNU ą¦øą¦¾ą¦§ą¦¾ą¦°ą¦£ " +"ą¦Ŗą¦¾ą¦¬ą¦²ą¦æą¦ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦ø ą¦¦ą§ą¦ą§ą¦Øą„¤\n" + +#: ../shell/ev-window.c:4228 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"ą¦ą¦ą¦æą¦Øą§ą¦ø-ą¦ą¦° ą¦øą¦¾ą¦„ą§ ą¦ą¦Ŗą¦Øą¦¾ą¦° GNU ą¦øą¦¾ą¦§ą¦¾ą¦°ą¦£ ą¦Ŗą¦¾ą¦¬ą¦²ą¦æą¦ ą¦²ą¦¾ą¦ą¦øą§ą¦Øą§ą¦øą§ą¦° ą¦ą¦ą¦ą¦æ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ \n" +"ą¦Ŗą¦¾ą¦ą§ą¦¾ą¦° ą¦ą¦„ą¦¾; ą¦Øą¦¾ ą¦Ŗą§ą§ą§ ą¦„ą¦¾ą¦ą¦²ą§ ą¦ą¦ ą¦ ą¦æą¦ą¦¾ą¦Øą¦¾ą§ ą¦²ą¦æą¦ą§ą¦Ø - Free Software Foundation, Inc., " +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4253 +msgid "Evince" +msgstr "ą¦ą¦ą¦æą¦Øą§ą¦ø" + +#: ../shell/ev-window.c:4256 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© ą§§ą§Æą§Æą§¬-ą§Øą§¦ą§¦ą§Æ ą¦ą¦ą¦æą¦Øą§ą¦ø-ą¦ą¦° ą¦²ą§ą¦ą¦ą¦ą¦£" + +#: ../shell/ev-window.c:4262 +msgid "translator-credits" +msgstr "" +"ą¦ ą¦ą§ą¦ą§ą¦° ą¦Ŗą§ą¦°ą¦ą¦²ą§ą¦Ŗą§ą¦° ą¦Ŗą¦ą§ą¦·ą§, ą¦Ŗą§ą¦°ą¦ą§ą¦ą¦¾ [ progga@BengaLinux.Org ]\n" +"ą¦ą¦¾ą¦®ą¦æą¦² ą¦ą¦¹ą¦®ą§ą¦¦ <jamil@bengalinux.org>\n" +"ą¦ą¦Øą§ą¦¦ą¦ą¦¾ą¦° ą¦®ą§ą¦ą¦¾ą¦¹ą¦æą¦¦ą§ą¦² ą¦ą¦øą¦²ą¦¾ą¦® <suzan@bengalinux.org>\n" +"ą¦®ą¦¾ą¦°ą§ą¦« ą¦ ą¦ą¦æ <maruf@ankur.org.bd>\n" +"ą¦øą¦¾ą¦¦ą¦æą§ą¦¾ ą¦ą¦«ą¦°ą§ą¦ <sadia@ankur.org.bd>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4531 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ %dą¦ą¦æ ą¦®ą¦æą¦² ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦ą¦æą§ą§ą¦ą§" + +#: ../shell/ev-window.c:4539 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%%ą¦ą¦æ ą¦ą§ą¦ą¦ą¦¤ą§ ą¦¬ą¦¾ą¦ą¦æ ą¦ą¦ą§" + +#: ../shell/ev-window.c:5016 +msgid "_File" +msgstr "ą¦«ą¦¾ą¦ą¦² (_F)" + +#: ../shell/ev-window.c:5017 +msgid "_Edit" +msgstr "ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦Øą¦¾ (_E)" + +#: ../shell/ev-window.c:5018 +msgid "_View" +msgstr "ą¦¦ą§ą¦¶ą§ą¦Æ (_V)" + +#: ../shell/ev-window.c:5019 +msgid "_Go" +msgstr "ą¦Æą¦¾ą¦Ø (_G)" + +#: ../shell/ev-window.c:5020 +msgid "_Help" +msgstr "ą¦øą¦¹ą¦¾ą§ą¦æą¦ą¦¾ (_H)" + +#. File menu +#: ../shell/ev-window.c:5023 ../shell/ev-window.c:5291 +#| msgid "_Open..." +msgid "_Openā¦" +msgstr "ą¦ą§ą¦²ą§ą¦Øā¦ (_O)" + +#: ../shell/ev-window.c:5024 ../shell/ev-window.c:5292 +msgid "Open an existing document" +msgstr "ą¦¬ą¦æą¦¦ą§ą¦Æą¦®ą¦¾ą¦Ø ą¦ą§ą¦Ø ą¦Øą¦„ą¦æ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:5026 +msgid "Op_en a Copy" +msgstr "ą¦ą¦ą¦ą¦æ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦ą§ą¦²ą§ą¦Ø (_e)" + +#: ../shell/ev-window.c:5027 +msgid "Open a copy of the current document in a new window" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Øą¦¤ą§ą¦Ø ą¦ą¦ą¦Øą§ą¦”ą§ą¦¤ą§ ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦Øą¦„ą¦æą¦° ą¦ą¦ą¦ą¦æ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:5029 +#| msgid "Save a Copy" +msgid "_Save a Copyā¦" +msgstr "ą¦ą¦ą¦ą¦æ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Øā¦ (_S)" + +#: ../shell/ev-window.c:5030 +msgid "Save a copy of the current document" +msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦Øą¦„ą¦æą¦° ą¦ą¦ą¦ą¦æ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5032 +#| msgid "Page Set_up..." +msgid "Page Set_upā¦" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą§ą¦ą¦ą¦Ŗā¦ (_u)" + +#: ../shell/ev-window.c:5033 +#| msgid "Setup the page settings for printing" +msgid "Set up the page settings for printing" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą§ą¦ą¦æą¦ą¦ø ą¦øą§ą¦ą¦ą¦Ŗ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5035 +#| msgid "Print" +msgid "_Printā¦" +msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£ā¦ (_P)" + +#: ../shell/ev-window.c:5038 +msgid "P_roperties" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ (_r)" + +#: ../shell/ev-window.c:5046 +msgid "Select _All" +msgstr "ą¦øą¦¬ą¦ą¦æą¦ą§ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø (_A)" + +#: ../shell/ev-window.c:5048 +#| msgid "Find" +msgid "_Findā¦" +msgstr "ą¦ą§ą¦ą¦ą§ą¦Øā¦ (_F)" + +#: ../shell/ev-window.c:5049 +msgid "Find a word or phrase in the document" +msgstr "ą¦Øą¦„ą¦æą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą§ą¦Ø ą¦ą¦ą¦ą¦æ ą¦¶ą¦¬ą§ą¦¦ ą¦¬ą¦¾ ą¦¶ą¦¬ą§ą¦¦ą¦øą¦®ą¦·ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#: ../shell/ev-window.c:5055 +msgid "T_oolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦° (_o)" + +#: ../shell/ev-window.c:5057 +msgid "Rotate _Left" +msgstr "ą¦¬ą¦¾ą¦®ą§ ą¦ą§ą¦°ą¦¾ą¦Ø (_L)" + +#: ../shell/ev-window.c:5059 +msgid "Rotate _Right" +msgstr "ą¦”ą¦¾ą¦Øą§ ą¦ą§ą¦°ą¦¾ą¦Ø (_R)" + +#: ../shell/ev-window.c:5070 +msgid "_Reload" +msgstr "ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą§ą¦Ø (_R)" + +#: ../shell/ev-window.c:5071 +msgid "Reload the document" +msgstr "ą¦Øą¦„ą¦æą¦ą¦æ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5074 +msgid "Auto_scroll" +msgstr "ą¦øą§ą¦¬ą§ą¦ą¦ą§ą¦°ą¦æą§_ą¦øą§ą¦ą§ą¦°ą§ą¦²" + +#: ../shell/ev-window.c:5084 +msgid "_First Page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_F)" + +#: ../shell/ev-window.c:5085 +msgid "Go to the first page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#: ../shell/ev-window.c:5087 +msgid "_Last Page" +msgstr "ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_L)" + +#: ../shell/ev-window.c:5088 +msgid "Go to the last page" +msgstr "ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø" + +#. Help menu +#: ../shell/ev-window.c:5092 +msgid "_Contents" +msgstr "ą¦øą§ą¦ą¦æ (_C)" + +#: ../shell/ev-window.c:5095 +msgid "_About" +msgstr "ą¦Ŗą¦°ą¦æą¦ą¦æą¦¤ą¦æ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5099 +msgid "Leave Fullscreen" +msgstr "ą¦Ŗą§ą¦°ą§ą¦£ą¦Ŗą¦°ą§ą¦¦ą¦¾ ą¦¤ą§ą¦Æą¦¾ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5100 +msgid "Leave fullscreen mode" +msgstr "ą¦Ŗą§ą¦°ą§ą¦£ą¦Ŗą¦°ą§ą¦¦ą¦¾ ą¦®ą§ą¦” ą¦¤ą§ą¦Æą¦¾ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5102 +msgid "Start Presentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦¶ą§ą¦°ą§ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5103 +msgid "Start a presentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦¶ą§ą¦°ą§ ą¦ą¦°ą§ą¦Ø" + +#. View Menu +#: ../shell/ev-window.c:5162 +msgid "_Toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦° (_T)" + +#: ../shell/ev-window.c:5163 +msgid "Show or hide the toolbar" +msgstr "ą¦ą§ą¦²ą¦¬ą¦¾ą¦°ą¦ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą§ą¦Ø ą¦¬ą¦¾ ą¦²ą§ą¦ą¦¾ą¦Ø" + +#: ../shell/ev-window.c:5165 +msgid "Side _Pane" +msgstr "ą¦øą¦¾ą¦ą¦” ą¦Ŗą§ą¦Ø (_P)" + +#: ../shell/ev-window.c:5166 +msgid "Show or hide the side pane" +msgstr "ą¦øą¦¾ą¦ą¦” ą¦Ŗą§ą¦Øą¦ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą§ą¦Ø ą¦¬ą¦¾ ą¦²ą§ą¦ą¦¾ą¦Ø" + +#: ../shell/ev-window.c:5168 +msgid "_Continuous" +msgstr "ą¦ ą¦¬ą¦æą¦°ą¦¾ą¦® (_C)" + +#: ../shell/ev-window.c:5169 +msgid "Show the entire document" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5171 +msgid "_Dual" +msgstr "ą¦¦ą§ą¦¬ą§ą¦¤ (_D)" + +#: ../shell/ev-window.c:5172 +msgid "Show two pages at once" +msgstr "ą¦ą¦ą¦¤ą§ą¦°ą§ ą¦¦ą§ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦¦ą§ą¦ą¦¾ą¦Ø" + +#: ../shell/ev-window.c:5174 +msgid "_Fullscreen" +msgstr "ą¦Ŗą§ą¦°ą§ą¦£ą¦Ŗą¦°ą§ą¦¦ą¦¾ (_F)" + +#: ../shell/ev-window.c:5175 +msgid "Expand the window to fill the screen" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦°ą§ą¦¦ą¦¾ ą¦¦ą¦ą¦² ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦ą¦Øą§ą¦”ą§ą¦ą§ ą¦¬ą¦°ą§ą¦§ą¦æą¦¤ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5177 +msgid "Pre_sentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ (_s)" + +#: ../shell/ev-window.c:5178 +msgid "Run document as a presentation" +msgstr "ą¦Øą¦„ą¦æą¦ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦¹ą¦æą¦øą§ą¦¬ą§ ą¦ą¦¾ą¦²ą¦¾ą¦Ø" + +# Translated by sadia +#: ../shell/ev-window.c:5186 +msgid "_Inverted Colors" +msgstr "ą¦¬ą¦æą¦Ŗą¦°ą§ą¦¤ ą¦ ą¦¬ą¦øą§ą¦„ą¦¾ą§ ą¦ą¦Øą¦¾ ą¦°ą¦ (_I)" + +# Translated by sadia +#: ../shell/ev-window.c:5187 +msgid "Show page contents with the colors inverted" +msgstr "ą¦¬ą¦æą¦Ŗą¦°ą§ą¦¤ ą¦ ą¦¬ą¦øą§ą¦„ą¦¾ą§ ą¦ą¦Øą¦¾ ą¦°ą¦ą¦øą¦¹ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦¬ą¦æą¦·ą§ą¦¬ą¦øą§ą¦¤ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#. Links +#: ../shell/ev-window.c:5195 +msgid "_Open Link" +msgstr "ą¦²ą¦æą¦ą§ą¦ ą¦ą§ą¦²ą§ą¦Ø (_O)" + +#: ../shell/ev-window.c:5197 +msgid "_Go To" +msgstr "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦Æą¦¾ą¦Ø (_G)" + +#: ../shell/ev-window.c:5199 +msgid "Open in New _Window" +msgstr "ą¦Øą¦¤ą§ą¦Ø ą¦ą¦ą¦Øą§ą¦”ą§ą¦¤ą§ ą¦ą§ą¦²ą§ą¦Ø (_W)" + +#: ../shell/ev-window.c:5201 +msgid "_Copy Link Address" +msgstr "ą¦²ą¦æą¦ą§ą¦-ą¦ą¦° ą¦ ą¦æą¦ą¦¾ą¦Øą¦¾ ą¦ą¦Ŗą¦æ ą¦ą¦°ą§ą¦Ø (_C)" + +#: ../shell/ev-window.c:5203 +#| msgid "_Save Image As..." +msgid "_Save Image Asā¦" +msgstr "ą¦Øą¦¤ą§ą¦Øą¦ą¦¾ą¦¬ą§ ą¦ą¦¬ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Øā¦ (_S)" + +#: ../shell/ev-window.c:5205 +msgid "Copy _Image" +msgstr "ą¦ą¦æą¦¤ą§ą¦° ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦ą¦°ą§ą¦Ø (_I)" + +# Translated by sadia +#: ../shell/ev-window.c:5210 +msgid "_Open Attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ą¦ą§ą¦²ą§ą¦Ø (_O)" + +# Translated by sadia +#: ../shell/ev-window.c:5212 +#| msgid "_Save Attachment As..." +msgid "_Save Attachment Asā¦" +msgstr "ą¦Øą¦¤ą§ą¦Øą¦ą¦¾ą¦¬ą§ ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Øā¦ (_S)" + +#: ../shell/ev-window.c:5265 +msgid "Zoom" +msgstr "ą¦¬ą§ ą¦ą¦°ą§ ą¦¦ą§ą¦ą¦¾" + +#: ../shell/ev-window.c:5267 +msgid "Adjust the zoom level" +msgstr "ą¦¬ą§ ą¦ą¦°ą§ ą¦¦ą§ą¦ą¦¾ą¦° ą¦®ą¦¾ą¦¤ą§ą¦°ą¦¾ ą¦øą¦®ą¦Øą§ą¦¬ą§ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5277 +msgid "Navigation" +msgstr "ą¦Øą§ą¦Æą¦¾ą¦ą¦æą¦ą§ą¦¶ą¦Ø" + +#: ../shell/ev-window.c:5279 +msgid "Back" +msgstr "ą¦Ŗą¦æą¦ą¦Øą§" + +#. translators: this is the history action +#: ../shell/ev-window.c:5282 +msgid "Move across visited pages" +msgstr "ą¦Ŗą¦°ą¦æą¦¦ą¦°ą§ą¦¶ą¦æą¦¤ ą¦Ŗą¦¾ą¦¤ą¦¾ ą¦ą§ą§ą§ ą¦øą¦°ą¦¾ą¦Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5312 +msgid "Previous" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5317 +msgid "Next" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5321 +msgid "Zoom In" +msgstr "ą¦¬ą§ ą¦ą¦°ą§ ą¦¦ą§ą¦ą¦¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5325 +msgid "Zoom Out" +msgstr "ą¦ą§ą¦ ą¦ą¦°ą§ ą¦¦ą§ą¦ą¦¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Fit Width" +msgstr "ą¦Ŗą§ą¦°ą¦øą§ą¦„ ą¦¬ą¦°ą¦¾ą¦¬ą¦° ą¦®ą¦¾ą¦Ŗą¦øą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5494 ../shell/ev-window.c:5511 +msgid "Unable to launch external application." +msgstr "ą¦¬ą¦¹ą¦æą¦ą¦øą§ą¦„ ą¦ ą§ą¦Æą¦¾ą¦Ŗą§ą¦²ą¦æą¦ą§ą¦¶ą¦Ø ą¦ą¦¾ą¦²ą§ ą¦ą¦°ą¦¤ą§ ą¦øą¦ą§ą¦·ą¦® ą¦Øą§" + +#: ../shell/ev-window.c:5568 +msgid "Unable to open external link" +msgstr "ą¦¬ą¦¹ą¦æą¦ą¦øą§ą¦„ ą¦øą¦ą¦Æą§ą¦ ą¦ą§ą¦²ą¦¤ą§ ą¦Ŗą¦¾ą¦°ą§ą¦Øą¦æ" + +#: ../shell/ev-window.c:5735 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¦ą¦æą¦¤ą§ą¦° ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Æą¦„ą¦¾ą¦Æą¦„ ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦ą§ą¦ą¦ą§ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../shell/ev-window.c:5777 +msgid "The image could not be saved." +msgstr "ą¦ą¦æą¦¤ą§ą¦°ą¦ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æą„¤" + +#: ../shell/ev-window.c:5809 +msgid "Save Image" +msgstr "ą¦ą¦æą¦¤ą§ą¦°ą¦ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5876 +msgid "Unable to open attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:5929 +msgid "The attachment could not be saved." +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:5974 +msgid "Save Attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window-title.c:162 +#| msgid "%s - Password Required" +msgid "%s ā Password Required" +msgstr "%s ā ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą¦¬ą¦¶ą§ą¦Æą¦" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "ą¦ą¦ą§ą¦øą¦ą§ą¦Øą¦¶ą¦Ø ą¦ą¦° ą¦®ą¦¾ą¦§ą§ą¦Æą¦®ą§" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "MATE ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "ą¦Øą¦„ą¦æą¦° ą¦Æą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤" + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ą¦Ŗą§ą¦°ą§ą¦£ą¦Ŗą¦°ą§ą¦¦ą¦¾ ą¦®ą§ą¦”ą§ ą¦ą¦ą¦æą¦Øą§ą¦ø ą¦ą¦¾ą¦²ą¦¾ą¦Ø" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ą¦Ŗą§ą¦°ą§ą¦ą§ą¦Øą§ą¦ą§ą¦¶ą¦Ø ą¦®ą§ą¦”ą§ ą¦ą¦ą¦æą¦Øą§ą¦ø ą¦ą¦¾ą¦²ą¦¾ą¦Ø" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦°ą§ą¦Ŗ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦®ą§ą¦”ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ą¦Øą¦„ą¦æą¦°ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą§ą¦Ø ą¦ą¦ą¦ą¦æ ą¦¶ą¦¬ą§ą¦¦ ą¦¬ą¦¾ ą¦¶ą¦¬ą§ą¦¦ą¦øą¦®ą¦·ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +#| msgid "[FILE...]" +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#| msgid "" +#| "Boolean options available, true enables thumbnailing and false disables " +#| "the creation of new thumbnails" +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¦¬ą§ą¦²ą¦æą§ą¦¾ą¦Ø ą¦ ą¦Ŗą¦¶ą¦Ø ą¦¬ą¦æą¦¦ą§ą¦Æą¦®ą¦¾ą¦Ø: true ą¦¹ą¦²ą§ ą¦„ą¦¾ą¦®ą§ą¦¬ą¦²ą§ą¦ą¦² ą¦øą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ą¦¬ą¦ false ą¦¹ą¦²ą§ ą¦Øą¦¤ą§ą¦Ø " +"ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦² ą¦¤ą§ą¦°ą¦æ ą¦Øą¦æą¦·ą§ą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¦Øą¦„ą¦æ ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦² ą¦¤ą§ą¦°ą¦æą¦° ą¦Ŗą§ą¦°ą¦ą§ą¦°ą¦æą§ą¦¾ ą¦øą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą§ą¦Ø" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¦Øą¦„ą¦æą¦° ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦² ą¦¤ą§ą¦°ą¦æą¦° ą¦ą¦®ą¦¾ą¦Øą§ą¦”" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#| msgid "" +#| "Valid command plus arguments for the PDF Document thumbnailer. See " +#| "caja thumbnailer documentation for more information." +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¦Øą¦„ą¦æą¦° ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦²ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦¾ą¦°ą§ą¦Æą¦ą¦° ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦ ą¦ą¦®ą¦¾ą¦Øą§ą¦”-ą¦ą¦°ą§ą¦ą§ą¦®ą§ą¦Øą§ą¦ą„¤ ą¦ą¦°ą¦ ą¦¬ą¦æą¦øą§ą¦¤ą¦¾ą¦°ą¦æą¦¤ " +"ą¦¤ą¦„ą§ą¦Æą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦Øą¦ą¦æą¦²ą¦¾ą¦ø-ą¦ą¦° ą¦„ą¦¾ą¦®ą§ą¦¬ą¦Øą§ą¦ą¦² ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ ą¦Ŗą§ą¦°ą¦ą§ą¦°ą¦æą§ą¦¾ą¦° ą¦Øą¦„ą¦æą¦ą¦æ ą¦¦ą§ą¦ą§ą¦Øą„¤" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą¦Øą¦„ą¦æą¦° ą¦ą§ą¦² ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦ą¦ą§" + +#~ msgid "Print..." +#~ msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£..." + +#~ msgid "_Save a Copy..." +#~ msgstr "ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø... (_S)" + +#~ msgid "_Print..." +#~ msgstr "ą¦®ą§ą¦¦ą§ą¦°ą¦£... (_P)" + +#~ msgid "_Find..." +#~ msgstr "ą¦ą§ą¦ą¦ą§ą¦Ø... (_F)" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ą¦«ą¦¾ą¦ą¦² ā%1$sā ą¦¤ą§ą¦°ą¦æ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %2$s" + +#~ msgid "Search string" +#~ msgstr "ą¦øą§ą¦ą§ą¦°ą¦æą¦ ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą¦Æą§ ą¦øą§ą¦ą§ą¦°ą¦æą¦ą¦ą¦æ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą¦¬ą§, ą¦¤ą¦¾ą¦° ą¦Øą¦¾ą¦®" + +#~ msgid "Case sensitive" +#~ msgstr "ą¦ ą¦ą§ą¦·ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦ą¦¬ą§ą¦¦ą¦Øą¦¶ą§ą¦²" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą¦ ą¦ą§ą¦·ą¦°ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦ą¦¬ą§ą¦¦ą¦Øą¦¶ą§ą¦² ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ TRUE" + +#~ msgid "Highlight color" +#~ msgstr "ą¦°ą¦ ą¦¹ą¦¾ą¦ą¦²ą¦¾ą¦ą¦ ą¦ą¦°ą§ą¦Ø" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą¦øą¦ą¦² ą¦®ą¦æą¦²ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦¹ą¦¾ą¦ą¦²ą¦¾ą¦ą¦ą§ą¦° ą¦°ą¦" + +#~ msgid "Current color" +#~ msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦°ą¦" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦®ą¦æą¦²ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ą¦ą¦°ą¦£ą§ą¦° ą¦°ą¦" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Øą¦„ą¦æ ą¦ą¦æ ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą¦¤ą§ ą¦ą¦¾ą¦Ø?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ą¦¶ą§ą¦·ą¦¬ą¦¾ą¦° ą¦ą¦²ą¦¾ą¦° ą¦øą¦®ą§ ą¦ą¦ą¦æą¦Øą§ą¦ø ą¦ ą¦Ŗą§ą¦°ą¦¤ą§ą¦Æą¦¾ą¦¶ą¦æą¦¤ą¦ą¦¾ą¦¬ą§ ą¦Ŗą§ą¦°ą¦øą§ą¦„ą¦¾ą¦Ø ą¦ą¦°ą§ą¦ą¦æą¦²ą„¤ ą¦ą¦Ŗą¦Øą¦æ ą¦ą§ą¦²ą¦¾ ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° " +#~ "ą¦ą¦°ą¦¤ą§ ą¦Ŗą¦¾ą¦°ą¦¬ą§ą¦Øą„¤" + +#~ msgid "_Don't Recover" +#~ msgstr "ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą¦¬ą§ą¦Ø ą¦Øą¦¾ (_D)" + +#~ msgid "_Recover" +#~ msgstr "ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą§ą¦Ø (_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ą¦ą§ą¦°ą§ą¦Æą¦¾ą¦¶ ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦°" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ā%sā symlink ą¦¤ą§ą¦°ą¦æ ą¦ą¦°ą¦¾ ą¦øą¦®ą§ą¦ą¦¬ ą¦¹ą§ą¦Øą¦æ:" + +#~ msgid "Cannot open a copy." +#~ msgstr "ą¦ą§ą¦Øą§ ą¦ ą¦Øą§ą¦²ą¦æą¦Ŗą¦æ ą¦ą§ą¦²ą¦¤ą§ ą¦Ŗą¦¾ą¦°ą§ą¦Øą¦æą„¤" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "MIME ą¦§ą¦°ą¦Øą§ą¦° ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦ą¦°ą¦¾ ą¦¹ą§ą¦Øą¦æ: ā%sā" + +#~ msgid "Open ā%sā" +#~ msgstr "ā%sā ą¦ą§ą¦²ą§ą¦Ø" + +#~ msgid "Empty" +#~ msgstr "ą¦«ą¦¾ą¦ą¦ą¦¾" + +#~ msgid "75%" +#~ msgstr "ą§ą§«%" + +#~ msgid "Save password in keyring" +#~ msgstr "ą¦ą§-ą¦°ą¦æą¦ -ą¦ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#~ msgid "File not available" +#~ msgstr "ą¦«ą¦¾ą¦ą¦² ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą¦ą§ą¦ą§ ą¦Øą¦¾" + +#~ msgid "BBox" +#~ msgstr "ą¦¬ą¦æ-ą¦¬ą¦ą§ą¦ø" + +#~ msgid "Letter" +#~ msgstr "ą¦²ą§ą¦ą¦¾ą¦°" + +#~ msgid "Tabloid" +#~ msgstr "ą¦ą§ą¦Æą¦¾ą¦¬ą¦²ą§ą§ą¦”" + +#~ msgid "Ledger" +#~ msgstr "ą¦²ą§ą¦ą¦¾ą¦°" + +#~ msgid "Legal" +#~ msgstr "ą¦²ą¦æą¦ą¦¾ą¦²" + +#~ msgid "Statement" +#~ msgstr "ą¦øą§ą¦ą§ą¦ą¦®ą§ą¦Øą§ą¦" + +#~ msgid "Executive" +#~ msgstr "ą¦ą¦ą§ą¦øą¦æą¦ą¦æą¦ą¦ą¦æą¦" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "ą¦«ą§ą¦²ą¦æą¦" + +#~ msgid "Quarto" +#~ msgstr "ą¦ą§ą§ą¦¾ą¦°ą§ą¦ą§" + +#~ msgid "10x14" +#~ msgstr "ą§§ą§¦xą§§ą§Ŗ" + +#~ msgid "No document loaded." +#~ msgstr "ą¦ą§ą¦Ø ą¦Øą¦„ą¦æ ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą§ ą¦Øą¦æą„¤" + +#~ msgid "Broken pipe." +#~ msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦¾ą¦ą¦Ŗą„¤" + +#~ msgid "Interpreter failed." +#~ msgstr "ą¦ą¦Øą§ą¦ą¦¾ą¦°ą¦Ŗą§ą¦°ą§ą¦ą¦¾ą¦° ą¦¬ą§ą¦Æą¦°ą§ą¦„ ą¦¹ą§ą§ą¦ą§ą„¤" + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ā%sā ą¦«ą¦¾ą¦ą¦² ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„:\n" + +#~ msgid "File is not readable." +#~ msgstr "ą¦Ŗą§ą¦¾ą¦° ą¦ ą¦Æą§ą¦ą§ą¦Æ ą¦«ą¦¾ą¦ą¦²ą„¤" + +#~ msgid "Document loaded." +#~ msgstr "ą¦Øą¦„ą¦æ ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§ą„¤" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤ ą¦Ŗą¦¾ą¦„ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą§ą¦øą§ą¦ą¦øą§ą¦ą§ą¦°ą¦æą¦Ŗą§ą¦ ą¦ą¦Øą§ą¦ą¦¾ą¦°ą¦Ŗą§ą¦°ą§ą¦ą¦¾ą¦° ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "ą¦ą¦Øą¦ą§ą¦Æą¦¾ą¦Ŗą¦øą§ą¦²ą§ą¦ą§ą¦” ą¦Ŗą§ą¦øą§ą¦ą¦øą§ą¦ą§ą¦°ą¦æą¦Ŗą§ą¦" + +#~ msgid "PostScript" +#~ msgstr "ą¦Ŗą§ą¦øą§ą¦ą¦øą§ą¦ą§ą¦°ą¦æą¦Ŗą§ą¦" + +#~ msgid "Find Previous" +#~ msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#~ msgid "Find Next" +#~ msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ą¦ą¦æ ą¦ą§ą¦ą¦ą§ą¦Ø" + +#~ msgid "Incorrect password" +#~ msgstr "ą¦ą§ą¦² ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦”" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ā%sā ą¦”ą§ą¦°ą¦¾ą¦ą¦ą¦¾ą¦° ą¦øą¦¹ą¦Æą§ą¦ą§ ą¦ą¦Ŗą¦Øą¦æ ą¦ą¦ą¦ą¦æ ą¦®ą§ą¦¦ą§ą¦°ą¦£ą¦Æą¦Øą§ą¦¤ą§ą¦°ą§ ą¦®ą§ą¦¦ą§ą¦°ą¦Ø ą¦ą¦°ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦ą§ą¦·ą§ą¦ą¦¾ ą¦ą¦°ą§ą¦ą§ą¦Øą„¤ ą¦ą¦ " +#~ "\"\"ą¦Ŗą§ą¦°ą§ą¦ą§ą¦°ą¦¾ą¦®ą§ą¦° ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ ą¦Ŗą§ą¦øą§ą¦ą¦øą§ą¦ą§ą¦°ą¦æą¦Ŗą§ą¦ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą¦¾ą¦° ą¦”ą§ą¦°ą¦¾ą¦ą¦ą¦¾ą¦° ą¦ą¦¬ą¦¶ą§ą¦Æą¦ą„¤" + +#~ msgid "Evince Document Viewer" +#~ msgstr "ą¦ą¦ą¦æą¦Øą§ą¦ø ą¦Øą¦„ą¦æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦" + +#~ msgid "_Previous" +#~ msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ (_P)" + +#~ msgid "_Next" +#~ msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ (_N)" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "ą¦ą¦ ą¦Øą¦„ą¦æą¦¤ą§ \"ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø\" ą¦Ŗą§ą¦°ą¦ą§ą¦°ą¦æą§ą¦¾ ą¦ą¦¾ą¦ ą¦ą¦°ą¦¬ą§ ą¦Øą¦¾" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "ą¦ą§ą¦ą§ą¦øą¦ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦¶ą§ą¦§ą§ą¦®ą¦¾ą¦¤ą§ą¦° PDF ą¦Øą¦„ą¦æą¦° ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦ ą¦Ŗą§ą¦°ą¦Æą§ą¦ą§ą¦Æą„¤" + +#~ msgid "Not found" +#~ msgstr "ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ ą¦Øą¦æ" diff --git a/po/bn_IN.po b/po/bn_IN.po new file mode 100644 index 00000000..c7eb5ced --- /dev/null +++ b/po/bn_IN.po @@ -0,0 +1,1647 @@ +# translation of bn_IN.po to Bengali INDIA +# Bengali India translation of Evince. +# Copyright (C) 1996-2006 The Evince authors. +# This file is distributed under the same license as the Evince package. +# +# Progga <progga@BengaLinux.Org>, 2005-2006. +# Runa Bhattacharjee <runabh@gmail.com>, 2006. +# Runa Bhattacharjee <runab@fedoraproject.org>, 2008. +# Runa Bhattacharjee <runab@redhat.com>, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: bn_IN\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-04-13 04:33+0000\n" +"PO-Revision-Date: 2010-04-13 12:43+0530\n" +"Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n" +"Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\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" +"\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¾ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ā%sā ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¤ą§ ą¦øą¦®ą¦øą§ą¦Æą¦¾: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¾ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ā%sā ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ą¦ą¦®ą¦¾ą¦Øą§ą¦”ą¦ą¦æ ą¦øą¦ ą¦æą¦ą¦°ą§ą¦Ŗą§ ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ ą¦¹ą§ą¦Øą¦æą„¤" + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¦ą¦®ą¦æą¦ ą¦¬ą¦ą§ą§ą¦° ą¦§ą¦°ą¦Øą§ą¦° MIME type ą¦Øą§: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¦ą¦ ą¦Ŗą§ą¦°ą¦ą§ą¦¤ą¦æą¦° ą¦ą¦®ą¦æą¦ ą¦¬ą¦ ą¦”ą¦æą¦ą¦®ą§ą¦Ŗą§ą¦°ą§ą¦ø ą¦ą¦°ą¦¾ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦Æą¦„ą¦¾ą¦Æą¦¤ ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¦ ą¦ą¦¾ą¦Øą¦¾ MIME'ą¦° ą¦§ą¦°ą¦Ø" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą¦ą§ą¦·ą¦¤ą¦æą¦ą§ą¦°ą¦øą§ą¦¤ ą¦«ą¦¾ą¦ą¦²" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦ą§ą¦Øą§ ą¦«ą¦¾ą¦ą¦² ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą§ą¦" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ ą¦ą§ą¦Øą§ ą¦ą¦¬ą¦æ ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą¦¤ą§ ą¦øą¦®ą¦øą§ą¦Æą¦¾ą„¤" + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¦ą¦®ą¦æą¦-ą¦¬ą¦" + +#: ../backend/djvu/djvu-document.c:173 +#, fuzzy +msgid "DjVu document has incorrect format" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦ ą¦æą¦ ą¦Øą§" + +#: ../backend/djvu/djvu-document.c:250 +#, fuzzy +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦² ą¦ą¦ą¦¤ą§ą¦°ą¦æą¦¤ ą¦ą¦°ą§ ą¦ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Øą¦æą¦°ą§ą¦®ą¦æą¦¤ ą¦¹ą§ą§ą¦ą§ ą¦ ą¦ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą¦ ą¦ ą¦„ą¦¬ą¦¾ ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦² " +"ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦° ą¦ą¦°ą¦¾ ą¦øą¦®ą§ą¦ą¦¬ ą¦Øą§ą„¤" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#, fuzzy +msgid "DjVu Documents" +msgstr "Djvu ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦ ą¦æą¦ ą¦Øą§" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ą¦¹ą§ą¦Æą¦¾ą¦" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą¦Øą¦¾" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą¦«ą¦Øą§ą¦ą§ą¦° ą¦§ą¦°ą¦Ø ą¦ ą¦ą¦¾ą¦Øą¦¾" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą¦Øą¦¾ą¦®ą¦¬ą¦æą¦¹ą§ą¦Ø" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą¦°ą¦¾ ą¦øą¦¾ą¦¬-ą¦øą§ą¦" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą¦°ą¦¾" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą¦ą¦®ą¦¬ą§ą¦” ą¦ą¦°ą¦¾ ą¦Øą§" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¬ą§ą¦§ ą¦Øą§" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ą¦øą§ą¦²ą¦¾ą¦ą¦”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¦¤ą§ą¦°ą§ą¦ą¦æą¦®ą§ą¦ą§ą¦¤" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¦Ŗą¦°ą§ą¦Æą¦¾ą¦Ŗą§ą¦¤ ą¦®ą§ą¦®ą¦°ą¦æ ą¦ ą¦Øą§ą¦Ŗą¦øą§ą¦„ą¦æ" + +#: ../backend/impress/zip.c:59 +#, fuzzy +msgid "Cannot find ZIP signature" +msgstr "zip ą¦øą§ą¦¬ą¦¾ą¦ą§ą¦·ą¦° ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../backend/impress/zip.c:62 +#, fuzzy +msgid "Invalid ZIP file" +msgstr "ą¦ ą¦¬ą§ą¦§ zip ą¦«ą¦¾ą¦ą¦²" + +#: ../backend/impress/zip.c:65 +#, fuzzy +msgid "Multi file ZIPs are not supported" +msgstr "ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦«ą¦¾ą¦ą¦² zip ą¦øą¦®ą¦°ą§ą¦„ą¦æą¦¤ ą¦Øą§" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¦«ą¦¾ą¦ą¦² ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¦«ą¦¾ą¦ą¦² ą¦„ą§ą¦ą§ ą¦¤ą¦„ą§ą¦Æ ą¦Ŗą§ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/impress/zip.c:74 +#, fuzzy +msgid "Cannot find file in the ZIP archive" +msgstr "zip ą¦ą¦°ą§ą¦ą¦¾ą¦ą¦ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦«ą¦¾ą¦ą¦² ą¦øą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¦ ą¦ą¦¾ą¦Øą¦¾ ą¦¤ą§ą¦°ą§ą¦ą¦æ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¦øą¦ą§ą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ā%sā ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ą¦§ą¦°ą¦Øą§ą¦° ą¦«ą¦¾ą¦ą¦² ą¦øą¦®ą¦°ą§ą¦„ą¦æą¦¤ ą¦Øą§" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¦øą¦ą¦² ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¦øą¦ą¦² ą¦«ą¦¾ą¦ą¦²" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦”ą¦æą¦°ą§ą¦ą§ą¦ą¦°ą¦æ ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦”ą¦æą¦°ą§ą¦ą§ą¦ą¦°ą¦æ ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¦«ą¦¾ą¦ą¦²ą¦ą¦æ ą¦¬ą§ą¦§ .desktop ą¦«ą¦¾ą¦ą¦² ą¦Øą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦«ą¦¾ą¦ą¦²ą§ą¦° ą¦ ą¦ą¦¾ą¦Øą¦¾ ą¦øą¦ą¦øą§ą¦ą¦°ą¦£ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¦ ą§ą¦Æą¦¾ą¦Ŗą§ą¦²ą¦æą¦ą§ą¦¶ą¦Ø ą¦¦ą§ą¦¬ą¦¾ą¦°ą¦¾ ą¦ą¦®ą¦¾ą¦Øą§ą¦”-ą¦²ą¦¾ą¦ą¦Øą§ą¦° ą¦®ą¦¾ą¦§ą§ą¦Æą¦®ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą¦° ą¦ą§ą¦°ą¦¹ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą§ ą¦Øą¦¾" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¦Ŗą§ą¦°ą¦¾ą¦°ą¦®ą§ą¦ą¦æą¦ ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ ą¦ ą¦ą¦¾ą¦Øą¦¾: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ą¦”ą§ą¦øą§ą¦ą¦ą¦Ŗ ą¦ą¦Øą¦ą§ą¦°ą¦æą¦° ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą¦°ą§ą¦° URI ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą¦¾ ą¦øą¦®ą§ą¦ą¦¬ ą¦Øą§" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¦Ŗą§ą¦°ą¦¾ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¾ą¦° ą¦Æą§ą¦ą§ą¦Æ ą¦¬ą¦øą§ą¦¤ą§ ą¦Øą§" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą¦øą§ą¦¶ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą¦° ą¦øą¦¾ą¦„ą§ ą¦øą¦ą¦Æą§ą¦ ą¦¬ą¦æą¦ą§ą¦ą¦æą¦Øą§ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą¦øą¦ą¦°ą¦ą§ą¦·ą¦æą¦¤ ą¦ą¦Øą¦«ą¦æą¦ą¦¾ą¦°ą§ą¦¶ą¦Ø ą¦§ą¦¾ą¦°ą¦£ą¦ą¦¾ą¦°ą§ ą¦«ą¦¾ą¦ą¦² ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą¦øą§ą¦¶ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ą¦° ID ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą¦øą§ą¦¶ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤ ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¦øą§ą¦¶ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦ą¦¾ą¦²ą¦Øą¦¾ ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤ ą¦¬ą¦æą¦ą¦²ą§ą¦Ŗ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā%sā ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦°ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦øą§ą¦„ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Ø (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦°ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ą¦° ą¦øą§ą¦„ą¦¾ą¦Ø ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦„ą§ą¦ą§ ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦„ą§ą¦ą§ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¦¬ą¦æą¦ą¦¾ą¦ą¦" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ą¦Ŗą§ą¦°ą§ą¦øą§ą¦Øą§ą¦ą§ą¦¶ą¦Ø ą¦®ą§ą¦”ą§ ą¦ą¦²ą¦ą§" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5301 +msgid "Best Fit" +msgstr "ą¦øą¦°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦® ą¦®ą¦¾ą¦Ŗ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦®ą¦¾ą¦Ŗ ą¦Øą¦æą¦°ą§ą¦§ą¦¾ą¦°ą¦£" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą§ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą§®ą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą§§ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą§§ą§Øą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą§§ą§«ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą§§ą§ą§«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą§Øą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą§©ą§¦ą§¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą§Ŗą§¦ą§¦%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4167 +#: ../shell/ev-window-title.c:149 ../shell/main.c:287 +#, c-format +msgid "Document Viewer" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾" + +#: ../data/evince.desktop.in.in.h:2 +#, fuzzy +msgid "View multi-page documents" +msgstr "ą¦ą¦ą¦¾ą¦§ą¦æą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦¬ą¦æą¦¶ą¦æą¦·ą§ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¦ą§ą¦ą§ą¦Ø" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ą§ą¦·ą§ą¦¤ą§ą¦° ą¦§ą¦¾ą¦°ą§ą¦Æ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾ ą¦ ą¦ą§ą¦°ą¦¾ą¦¹ą§ą¦Æ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ą§ą¦·ą§ą¦¤ą§ą¦° ą¦§ą¦¾ą¦°ą§ą¦Æ ą¦Øą¦æą¦·ą§ą¦§ą¦¾ą¦ą§ą¦ą¦¾ ą¦Æą§ą¦®ą¦Ø ą¦ą¦Ŗą¦æ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤, ą¦ ą¦ą§ą¦°ą¦¾ą¦¹ą§ą¦Æ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą¦ ą¦øą§ą¦„ą¦¾ą§ą§ ą¦«ą¦¾ą¦ą¦² ą¦®ą§ą¦ą§ ą¦«ą§ą¦²ą§ą¦Ø" + +# ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ ą¦øą¦®ą§ą¦¬ą¦²ą¦æą¦¤ ą¦«ą¦¾ą¦ą¦² +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ ą¦øą¦®ą§ą¦¬ą¦²ą¦æą¦¤ ą¦«ą¦¾ą¦ą¦²" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "MATE Document Previewer" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:2965 +msgid "Failed to print document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą¦¾ą¦° '%s' ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5050 +msgid "_Previous Page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5051 +msgid "Go to the previous page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5053 +msgid "_Next Page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_N" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5054 +msgid "Go to the next page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5037 +msgid "Enlarge the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5040 +msgid "Shrink the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦¹ą§ą¦°ą¦¾ą¦ø ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5008 +msgid "Print this document" +msgstr "ą¦ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5152 +msgid "_Best Fit" +msgstr "ą¦øą¦°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦® ą¦®ą¦¾ą¦Ŗ (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5153 +msgid "Make the current document fill the window" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5155 +msgid "Fit Page _Width" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦®ą¦¾ą¦Ŗ ą¦Øą¦æą¦°ą§ą¦§ą¦¾ą¦°ą¦£ (_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5156 +msgid "Make the current document fill the window width" +msgstr "ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą§ą¦°ą¦øą§ą¦„ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦ ą¦Øą§ą¦øą¦¾ą¦°ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą¦°ą§ą¦Ø" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5223 +msgid "Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5224 +msgid "Select Page" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą¦¶ą¦æą¦°ą§ą¦Øą¦¾ą¦®:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą¦ ą¦¬ą¦øą§ą¦„ą¦¾ą¦Ø:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą¦¬ą¦æą¦·ą§:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ą¦²ą§ą¦ą¦:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą¦ ą¦ą¦æą¦¬ą§ą¦Æą¦ą§ą¦¤ą¦æ:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą¦Ŗą§ą¦°ą¦ą¦¾ą¦¶ą¦:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ą¦ą¦¾ą¦°ą¦:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ą§ą¦° ą¦¤ą¦¾ą¦°ą¦æą¦:" + +# FIXME +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Øą§ą¦° ą¦¤ą¦¾ą¦°ą¦æą¦:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦ą¦ą§ą¦Æą¦¾:" + +# FIXME +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą¦øą¦°ą§ą¦¬ą§ą¦¤ą§ą¦¤ą¦®:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą¦Øą¦æą¦°ą¦¾ą¦Ŗą¦¤ą§ą¦¤ą¦¾:" + +# FIXME +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą¦ą¦¾ą¦ą¦ą§ą¦° ą¦®ą¦¾ą¦Ŗ:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1868 +msgid "None" +msgstr "ą¦¶ą§ą¦£ą§ą¦Æ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, fuzzy, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, fuzzy, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¦Ŗą§ą¦°ą¦¤ą¦æą¦ą§ą¦¤ą¦æ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¦ą§ą¦¦ą§ą¦¶ą§ą¦Æ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d, ą¦øą¦°ą§ą¦¬ą¦®ą§ą¦ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "ą¦øą¦°ą§ą¦¬ą¦®ą§ą¦ %d" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#, fuzzy +msgid "Preparing to printā¦" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ą¦æ ..." + +#: ../libview/ev-print-operation.c:336 +#, fuzzy +msgid "Finishingā¦" +msgstr "ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æ..." + +#: ../libview/ev-print-operation.c:338 +#, fuzzy, c-format +msgid "Printing page %d of %dā¦" +msgstr "%d ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§, ą¦øą¦°ą§ą¦¬ą¦®ą§ą¦ %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą¦ą¦ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą¦¾ą¦°ą§ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¾ ą¦øą¦®ą§ą¦ą¦¬ ą¦Øą§ą„¤" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦¬ą§ą¦§ ą¦Øą§" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą¦øą¦¤ą¦°ą§ą¦ą¦¬ą¦¾ą¦°ą§ą¦¤ą¦¾" + +#: ../libview/ev-print-operation.c:1229 +#, fuzzy +msgid "Your print range selection does not include any pages" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦Ŗą¦Øą¦¾ą¦° ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦øą§ą¦®ą¦¾ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą§ą¦" + +#: ../libview/ev-print-operation.c:1863 +msgid "Page Scaling:" +msgstr "" + +#: ../libview/ev-print-operation.c:1869 +msgid "Shrink to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1870 +msgid "Fit to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1873 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" + +#: ../libview/ev-print-operation.c:1885 +msgid "Auto Rotate and Center" +msgstr "" + +#: ../libview/ev-print-operation.c:1888 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" + +#: ../libview/ev-print-operation.c:1893 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1895 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1977 +msgid "Page Handling" +msgstr "" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¦ą¦Ŗą¦°ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¦Øą§ą¦ą§ ą¦ą¦²ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦° ą¦ą¦Ŗą¦°ą§ą¦° ą¦ ą¦ą¦¶ą§ ą¦ą¦²ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą§ą¦·ą§ą¦¤ą§ą¦°ą§ą¦° ą¦Øą§ą¦ą§ą¦° ą¦ ą¦ą¦¶ą§ ą¦ą¦²ą§ą¦Ø" + +# FIXME: ą¦¦ą§ą¦¶ą§ą¦Æ +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ ą¦Øą§ą¦øą¦¾ą¦°ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø:" + +#: ../libview/ev-view-presentation.c:970 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ą¦° ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æą„¤ Escape ą¦ą¦æą¦Ŗą§ ą¦Ŗą§ą¦°ą¦øą§ą¦„ą¦¾ą¦Ø ą¦ą¦°ą§ą¦Øą„¤" + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "ą¦øą¦°ą§ą¦¬ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %s'ą¦ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s'ą¦ ą¦ą¦²ą§ą¦Ø, ā%sā'ą¦° ą¦®ą¦§ą§ą¦Æą§" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¦«ą¦¾ą¦ą¦²ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "%s ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +#, fuzzy +msgid "Loadingā¦" +msgstr "ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5025 +msgid "Find Pre_vious" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æą¦° ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5023 +msgid "Find Ne_xt" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æą¦° ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¦¹ą¦°ą¦«ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦®ą§ą¦Ŗą¦°ą§ą¦ą§ ą¦øą¦ą§ą¦¤ą¦Ø (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦øą¦®ą§ ą¦¹ą¦°ą¦«ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦ą¦£ą§ą¦Æ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ ą¦„ą¦¬ą¦¾ ą¦¹ą¦¬ą§ ą¦Øą¦¾" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦”" + +#: ../shell/ev-convert-metadata.c:88 +#, fuzzy, c-format +msgid "Converting %s" +msgstr "%s ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą¦¤ą¦æ ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦²ą¦ ą¦ą¦°ą¦¾ ą¦ą¦ą§ ą¦ ą¦¶ą§ą¦§ą§ą¦®ą¦¾ą¦¤ą§ą¦° ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦²ą§ ą¦øą§ą¦ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ą„¤" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦®ą§ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦²ą¦æą¦ą§ą¦Ø" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦Ŗą§ą¦°ą§ą§ą¦ą¦Ø" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ā%sā ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦²ą¦ ą¦ą¦°ą¦¾ ą¦ą¦ą§ ą¦ ą¦®ą§ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą¦²ą§ą¦²ą§ą¦ ą¦ą¦°ą¦¾ ą¦ą¦¬ą¦¶ą§ą¦Æą¦ą„¤" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦”:(_P)" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦®ą¦Øą§ ą¦°ą¦¾ą¦ą¦¾ ą¦¹ą¦¬ą§ ą¦Øą¦¾ (_i)" + +#: ../shell/ev-password-view.c:380 +#, fuzzy +msgid "Remember password until you _log out" +msgstr "ą¦²ą¦-ą¦ą¦ą¦ ą¦Øą¦¾ ą¦ą¦°ą¦¾ ą¦ ą¦¬ą¦§ą¦æ ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦®ą¦Øą§ ą¦°ą¦¾ą¦ą¦¾ ą¦¹ą¦¬ą§ (_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦øą§ą¦„ą¦¾ą§ą§ą¦°ą§ą¦Ŗą§ ą¦®ą¦Øą§ ą¦°ą¦¾ą¦ą¦¾ ą¦¹ą¦¬ą§ (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą¦¬ą¦æą¦¬ą¦æą¦§ ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą¦øą¦¾ą¦§ą¦¾ą¦°ą¦£" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą¦«ą¦Øą§ą¦" + +#: ../shell/ev-properties-dialog.c:118 +#, fuzzy +msgid "Document License" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¦«ą¦Øą§ą¦" + +#: ../shell/ev-properties-fonts.c:162 +#, fuzzy, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą¦«ą¦Øą§ą¦ ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤ ą¦¤ą¦„ą§ą¦Æ ą¦øą¦ą¦ą§ą¦°ą¦¹ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą¦øą§ą¦¤ą¦°" + +#: ../shell/ev-sidebar-links.c:335 +#, fuzzy +msgid "Printā¦" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą¦øą§ą¦ą¦æą¦Ŗą¦¤ą§ą¦°" + +#: ../shell/ev-sidebar-thumbnails.c:962 +msgid "Thumbnails" +msgstr "ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦²" + +#: ../shell/ev-window.c:836 +#, fuzzy, c-format +msgid "Page %s ā %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %s - %s" + +#: ../shell/ev-window.c:838 +#, c-format +msgid "Page %s" +msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ %s" + +#: ../shell/ev-window.c:1282 +msgid "The document contains no pages" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą§ą¦Øą§ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą§ą¦" + +#: ../shell/ev-window.c:1285 +msgid "The document contains only empty pages" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦¶ą§ą¦§ą§ą¦®ą¦¾ą¦¤ą§ą¦° ą¦«ą¦¾ą¦ą¦ą¦¾ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦°ą§ą§ą¦ą§" + +#: ../shell/ev-window.c:1479 ../shell/ev-window.c:1645 +msgid "Unable to open document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:1616 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ą¦„ą§ą¦ą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:1758 ../shell/ev-window.c:2035 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦”ą¦¾ą¦ą¦Øą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:1791 +#, fuzzy +msgid "Failed to load remote file." +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:1979 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ą¦„ą§ą¦ą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:2011 +msgid "Failed to reload document." +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:2166 +msgid "Open Document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:2430 +#, c-format +msgid "Saving document to %s" +msgstr "%s-ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving attachment to %s" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ą¦ą¦æ %s-ą¦ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving image to %s" +msgstr "%s-ą¦ ą¦ą¦¬ą¦æą¦ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:2480 ../shell/ev-window.c:2580 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sāą¦°ą§ą¦Ŗą§ ą¦«ą¦¾ą¦ą¦² ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:2511 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2515 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2519 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¦ą¦¬ą¦æ ą¦ą¦Ŗą¦²ą§ą¦” ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§ (%d%%)" + +#: ../shell/ev-window.c:2641 +msgid "Save a Copy" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:2909 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą¦øą¦¾ą¦°ą¦æą¦° ą¦®ą¦§ą§ą¦Æą§ %d-ą¦ą¦æ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ą¦°ą¦¤ ą¦ą¦°ą§ą¦® ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤" +msgstr[1] "ą¦øą¦¾ą¦°ą¦æą¦° ą¦®ą¦§ą§ą¦Æą§ %d-ą¦ą¦æ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ą¦°ą¦¤ ą¦ą¦°ą§ą¦® ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤" + +#: ../shell/ev-window.c:3022 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą¦ą¦°ą§ą¦® ā%sā ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦ą§ą¦ą§" + +#: ../shell/ev-window.c:3234 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ą¦° ą¦Ŗą§ą¦°ą§ą¦¬ą§ ā%sā ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦¾ą¦ ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æ ą¦Ŗą¦°ą§ą¦Æą¦Øą§ą¦¤ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ą¦æ?" + +#: ../shell/ev-window.c:3237 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d-ą¦ą¦æ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦¾ą¦ ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ ą¦øą¦ą§ą¦°ą¦æą§ ą¦°ą§ą§ą¦ą§ą„¤ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ą¦° ą¦Ŗą§ą¦°ą§ą¦¬ą§ ą¦ą¦ą¦ą§ą¦²ą¦æą¦° ą¦øą¦®ą¦¾ą¦Ŗą§ą¦¤ą¦æ ą¦Ŗą¦°ą§ą¦Æą¦Øą§ą¦¤ " +"ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ą¦æ?" + +#: ../shell/ev-window.c:3249 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¦ą¦ą¦Øą§ą¦”ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ ą¦¹ą¦²ą§, ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ ą¦Ŗą§ą¦ą§ą¦·ą¦¾ą¦°ą¦¤ ą¦ą¦¾ą¦ą¦ą§ą¦²ą¦æ ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦Øą¦¾ą„¤" + +#: ../shell/ev-window.c:3253 +msgid "Cancel _print and Close" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦¾ą¦ ą¦¬ą¦¾ą¦¤ą¦æą¦² ą¦ą¦°ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø (_p)" + +#: ../shell/ev-window.c:3257 +msgid "Close _after Printing" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ą§ą¦° ą¦ą¦¾ą¦ ą¦øą¦ą§ą¦ą¦¾ą¦²ą¦Øą¦¾ą¦° ą¦Ŗą¦°ą§ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø (_a)" + +#: ../shell/ev-window.c:3819 +msgid "Toolbar Editor" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾" + +#: ../shell/ev-window.c:3952 +msgid "There was an error displaying help" +msgstr "ą¦øą¦¹ą¦¾ą§ą¦¤ą¦¾ą¦° ą¦¤ą¦„ą§ą¦Æ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¤ą§ ą¦øą¦®ą¦øą§ą¦Æą¦¾" + +#: ../shell/ev-window.c:4163 +#, fuzzy, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦«ą¦¾ą¦ą¦² ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ą„¤\n" +"poppler %s (%s) ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦¹ą§" + +#: ../shell/ev-window.c:4194 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ą¦ą¦ą¦ą¦æ ą¦®ą§ą¦ą§ą¦¤ ą¦øą¦«ą§ą¦ą¦ą§ą§ą¦Æą¦¾ą¦°; Free Software Foundation ą¦¦ą§ą¦¬ą¦¾ą¦°ą¦¾ ą¦Ŗą§ą¦°ą¦ą¦¾ą¦¶ą¦æą¦¤ GNU General " +"Public License'ą¦° ą¦¶ą¦°ą§ą¦¤ą¦¾ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦ą¦ą¦æ ą¦¬ą¦æą¦¤ą¦°ą¦£ ą¦ ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą¦¾ ą¦Æą¦¾ą¦¬ą§; ą¦²ą¦¾ą¦ą¦Øą¦øą§ą¦Øą§ą¦øą§ą¦° ą¦øą¦ą¦øą§ą¦ą¦°ą¦£ ą§Ø " +"ą¦ ą¦„ą¦¬ą¦¾ (ą¦ą¦Ŗą¦Øą¦¾ą¦° ą¦øą§ą¦¬ą¦æą¦§ą¦¾ą¦Øą§ą¦Æą¦¾ą§ą§) ą¦ą¦°ą§ą¦§ą§ą¦¬ą¦¤ą¦Ø ą¦ą§ą¦Øą§ ą¦øą¦ą¦øą§ą¦ą¦°ą¦£ą§ą¦° ą¦ ą¦§ą§ą¦Øą„¤\n" + +#: ../shell/ev-window.c:4198 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ą¦¬ą¦æą¦¤ą¦°ą¦£ ą¦ą¦°ą¦¾ą¦° ą¦®ą§ą¦² ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æ ą¦Æą§ ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦°ą¦ą¦¾ą¦°ą§ą¦°ą¦¾ ą¦ą¦° ą¦¦ą§ą¦¬ą¦¾ą¦°ą¦¾ ą¦ą¦Ŗą¦ą§ą¦¤ ą¦¹ą¦¬ą§ą¦Ø, ą¦ą¦æą¦Øą§ą¦¤ą§ ą¦ą¦ą¦æą¦° " +"ą¦ą¦Øą§ą¦Æ ą¦ą§ą¦Øą§ ą¦øą§ą¦øą§ą¦Ŗą¦·ą§ą¦ ą¦ą§ą¦¾ą¦°ą§ą¦Øą§ą¦ą¦æ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦Øą§ą¦; ą¦¬ą¦¾ą¦£ą¦æą¦ą§ą¦Æą¦æą¦ ą¦ ą¦ą§ą¦Øą§ ą¦øą§ą¦Øą¦æą¦°ą§ą¦¦ą¦æą¦·ą§ą¦ ą¦ą¦°ą§ą¦® ą¦øą¦¾ą¦§ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ " +"ą¦ ą¦Øą§ą¦¤ą¦°ą§ą¦Øą¦æą¦¹ą§ą¦¤ ą¦ą§ą¦¾ą¦°ą§ą¦Øą§ą¦ą¦æą¦ ą¦ ą¦Øą§ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ą„¤ ą¦ ą¦§ą¦æą¦ ą¦ą¦¾ą¦Øą¦¤ą§ GNU General Public License ą¦Ŗą§ą§ą¦Øą„¤\n" + +#: ../shell/ev-window.c:4202 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Evince'ą¦° ą¦øą¦¾ą¦„ą§ GNU General Public License'ą¦° ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦ą¦Ŗą¦²ą¦¬ą§ą¦§ ą¦¹ą¦ą§ą¦¾ ą¦ą¦ą¦æą¦¤; ą¦Øą¦¾ " +"ą¦„ą¦¾ą¦ą¦²ą§ ą¦Øą¦æą¦®ą§ą¦Øą¦²ą¦æą¦ą¦æą¦¤ ą¦ ą¦æą¦ą¦¾ą¦Øą¦¾ą§ ą¦²ą¦æą¦ą§ ą¦¤ą¦¾ ą¦øą¦ą¦ą§ą¦°ą¦¹ ą¦ą¦°ą§ą¦Ø Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:4227 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4230 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© ą§§ą§Æą§Æą§¬-ą§Øą§¦ą§¦ą§Æ Evince ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦¤ą¦¾ą¦¬ą§ą¦Øą§ą¦¦" + +#: ../shell/ev-window.c:4236 +msgid "translator-credits" +msgstr "" +"ą¦ ą¦ą§ą¦ą§ą¦° ą¦Ŗą§ą¦°ą¦ą¦²ą§ą¦Ŗą§ą¦° ą¦Ŗą¦ą§ą¦·ą§, \n" +"ą¦Ŗą§ą¦°ą¦ą§ą¦ą¦¾ [ progga@BengaLinux.Org ] \n" +"ą¦°ą§ą¦£ą¦¾ ą¦ą¦ą§ą¦ą¦¾ą¦ą¦¾ą¦°ą§ą¦Æą§ą¦Æ <runabh@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4506 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ %d-ą¦ą¦æ ą¦®ą¦æą¦² ą¦øą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§" +msgstr[1] "ą¦ą¦ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ %d-ą¦ą¦æ ą¦®ą¦æą¦² ą¦øą¦Øą¦¾ą¦ą§ą¦¤ ą¦ą¦°ą¦¾ ą¦¹ą§ą§ą¦ą§" + +#: ../shell/ev-window.c:4514 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ ą¦¬ą¦¶ą¦æą¦·ą§ą¦ ą¦°ą§ą§ą¦ą§" + +#: ../shell/ev-window.c:4991 +msgid "_File" +msgstr "ą¦«ą¦¾ą¦ą¦² (_F)" + +#: ../shell/ev-window.c:4992 +msgid "_Edit" +msgstr "ą¦øą¦®ą§ą¦Ŗą¦¾ą¦¦ą¦Øą¦¾ (_E)" + +#: ../shell/ev-window.c:4993 +msgid "_View" +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø (_V)" + +#: ../shell/ev-window.c:4994 +msgid "_Go" +msgstr "ą¦ą¦Øą§ą¦¤ą¦¬ą§ą¦Æ (_G)" + +#: ../shell/ev-window.c:4995 +msgid "_Help" +msgstr "ą¦øą¦¹ą¦¾ą§ą¦¤ą¦¾ (_H)" + +#. File menu +#: ../shell/ev-window.c:4998 ../shell/ev-window.c:5263 +#, fuzzy +msgid "_Openā¦" +msgstr "ą¦ą§ą¦²ą§ą¦Ø...(_O)" + +#: ../shell/ev-window.c:4999 ../shell/ev-window.c:5264 +msgid "Open an existing document" +msgstr "ą¦ą§ą¦Øą§ ą¦ą¦Ŗą¦øą§ą¦„ą¦æą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦ą§ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:5001 +msgid "Op_en a Copy" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø (_e)" + +#: ../shell/ev-window.c:5002 +msgid "Open a copy of the current document in a new window" +msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦Ŗą§ą¦„ą¦ ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5004 +#, fuzzy +msgid "_Save a Copyā¦" +msgstr "ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5005 +msgid "Save a copy of the current document" +msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ą¦ą¦ą¦æ ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5007 +#, fuzzy +msgid "_Printā¦" +msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5010 +msgid "P_roperties" +msgstr "ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æą¦¾ą¦¬ą¦²ą§ (_r)" + +#: ../shell/ev-window.c:5018 +msgid "Select _All" +msgstr "ą¦øą¦®ą¦ą§ą¦° ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦Ø ą¦ą¦°ą§ą¦Ø (_A)" + +#: ../shell/ev-window.c:5020 +#, fuzzy +msgid "_Findā¦" +msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#: ../shell/ev-window.c:5021 +msgid "Find a word or phrase in the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą¦ą¦ą¦æ ą¦¶ą¦¬ą§ą¦¦ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5027 +msgid "T_oolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦°(_o)" + +#: ../shell/ev-window.c:5029 +msgid "Rotate _Left" +msgstr "ą¦¬ą¦¾ą¦ą¦¦ą¦æą¦ą§ ą¦ą§ą¦°ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§ (_L)" + +#: ../shell/ev-window.c:5031 +msgid "Rotate _Right" +msgstr "ą¦”ą¦¾ą¦Øą¦¦ą¦æą¦ą§ ą¦ą§ą¦°ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§ (_R)" + +#: ../shell/ev-window.c:5042 +msgid "_Reload" +msgstr "ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą§ą¦Ø (_R)" + +#: ../shell/ev-window.c:5043 +msgid "Reload the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦Øą¦°ą¦¾ą§ ą¦²ą§ą¦” ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5046 +msgid "Auto_scroll" +msgstr "ą¦øą§ą¦¬ą§ą¦ą¦ą§ą¦°ą¦æą§ ą¦øą§ą¦ą§ą¦°ą§ą¦² (_s)" + +#: ../shell/ev-window.c:5056 +msgid "_First Page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_F)" + +#: ../shell/ev-window.c:5057 +msgid "Go to the first page" +msgstr "ą¦Ŗą§ą¦°ą¦„ą¦® ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#: ../shell/ev-window.c:5059 +msgid "_Last Page" +msgstr "ą¦øą¦°ą§ą¦¬ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ (_L)" + +#: ../shell/ev-window.c:5060 +msgid "Go to the last page" +msgstr "ą¦øą¦°ą§ą¦¬ą¦¶ą§ą¦· ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą§ ą¦ą¦²ą§ą¦Ø" + +#. Help menu +#: ../shell/ev-window.c:5064 +msgid "_Contents" +msgstr "ą¦øą§ą¦ą¦æ (_C)" + +#: ../shell/ev-window.c:5067 +msgid "_About" +msgstr "ą¦Ŗą¦°ą¦æą¦ą¦æą¦¤ą¦æ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5071 +msgid "Leave Fullscreen" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦°ą§ą¦¦ą¦¾ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5072 +msgid "Leave fullscreen mode" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦°ą§ą¦¦ą¦¾ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5074 +msgid "Start Presentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦Ŗą§ą¦°ą¦¾ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5075 +msgid "Start a presentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦Ŗą§ą¦°ą¦¾ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#. View Menu +#: ../shell/ev-window.c:5134 +msgid "_Toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° (_T)" + +#: ../shell/ev-window.c:5135 +msgid "Show or hide the toolbar" +msgstr "ą¦ą§ą¦²-ą¦¬ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ ą¦„ą¦¬ą¦¾ ą¦ą§ą¦¾ą¦² ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5137 +msgid "Side _Pane" +msgstr "ą¦Ŗą¦¾ą¦°ą§ą¦¶ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦ą¦Ø (_P)" + +#: ../shell/ev-window.c:5138 +msgid "Show or hide the side pane" +msgstr "ą¦Ŗą¦¾ą¦°ą§ą¦¶ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Ŗą§ą¦ą¦Ø ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ ą¦„ą¦¬ą¦¾ ą¦ą§ą¦¾ą¦² ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5140 +msgid "_Continuous" +msgstr "ą¦Øą¦æą¦°ą¦¬ą¦æą¦ą§ą¦ą¦æą¦Øą§ą¦Ø (_C)" + +#: ../shell/ev-window.c:5141 +msgid "Show the entire document" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5143 +msgid "_Dual" +msgstr "ą¦¦ą§ą¦¬ą§ą¦¤ (_D)" + +#: ../shell/ev-window.c:5144 +msgid "Show two pages at once" +msgstr "ą¦ą¦ą¦Æą§ą¦ą§ ą¦¦ą§ą¦ą¦æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦æą¦¤ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5146 +msgid "_Fullscreen" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦°ą§ą¦¦ą¦¾ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø (_F)" + +#: ../shell/ev-window.c:5147 +msgid "Expand the window to fill the screen" +msgstr "ą¦Ŗą¦°ą§ą¦¦ą¦¾ą¦° ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦®ą¦¾ą¦Ŗ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦®ą¦¾ą¦Ŗ ą¦¬ą§ą¦¦ą§ą¦§ą¦æ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5149 +msgid "Pre_sentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ (_P)" + +#: ../shell/ev-window.c:5150 +msgid "Run document as a presentation" +msgstr "ą¦ą¦Ŗą¦øą§ą¦„ą¦¾ą¦Ŗą¦Øą¦¾ ą¦°ą§ą¦Ŗą§ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦æą¦¤ ą¦¹ą¦¬ą§" + +#: ../shell/ev-window.c:5158 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5159 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5167 +msgid "_Open Link" +msgstr "ą¦²ą¦æą¦ą§ą¦ ą¦ą§ą¦²ą§ą¦Ø (_O)" + +#: ../shell/ev-window.c:5169 +msgid "_Go To" +msgstr "ą¦ą¦Øą§ą¦¤ą¦¬ą§ą¦Æ (_G)" + +#: ../shell/ev-window.c:5171 +msgid "Open in New _Window" +msgstr "ą¦Øą¦¤ą§ą¦Ø ą¦ą¦ą¦Øą§ą¦”ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ (_W)" + +#: ../shell/ev-window.c:5173 +msgid "_Copy Link Address" +msgstr "ą¦²ą¦æą¦ą§ą¦ą§ą¦° ą¦ ą¦æą¦ą¦¾ą¦Øą¦¾ ą¦ą¦Ŗą¦æ ą¦ą¦°ą§ą¦Ø (_C)" + +#: ../shell/ev-window.c:5175 +#, fuzzy +msgid "_Save Image Asā¦" +msgstr "ą¦Øą¦¤ą§ą¦Ø ą¦°ą§ą¦Ŗą§ ą¦ą¦¬ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø...(_S)" + +#: ../shell/ev-window.c:5177 +msgid "Copy _Image" +msgstr "ą¦ą¦¬ą¦æ ą¦ą¦Ŗą¦æ ą¦ą¦°ą§ą¦Ø (_I)" + +#: ../shell/ev-window.c:5182 +#, fuzzy +msgid "_Open Attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5184 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5237 +msgid "Zoom" +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦®ą¦¾ą¦Ŗ" + +#: ../shell/ev-window.c:5239 +msgid "Adjust the zoom level" +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦®ą¦¾ą¦¤ą§ą¦°ą¦¾ ą¦Ŗą¦°ą¦æą¦¬ą¦°ą§ą¦¤ą¦Ø ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5249 +msgid "Navigation" +msgstr "ą¦Ŗą¦°ą¦æą¦¦ą¦°ą§ą¦¶ą¦Ø" + +#: ../shell/ev-window.c:5251 +msgid "Back" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§" + +#. translators: this is the history action +#: ../shell/ev-window.c:5254 +msgid "Move across visited pages" +msgstr "ą¦Ŗą¦°ą¦æą¦¦ą¦°ą§ą¦¶ą¦æą¦¤ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦ą§ą¦²ą¦æą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ą¦²ą¦¾ą¦ą¦² ą¦ą¦°ą§ą¦Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +msgid "Previous" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5289 +msgid "Next" +msgstr "ą¦Ŗą¦°ą¦¬ą¦°ą§ą¦¤ą§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5293 +msgid "Zoom In" +msgstr "ą¦¬ą§ ą¦ą¦°ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5297 +msgid "Zoom Out" +msgstr "ą¦ą§ą¦ ą¦ą¦°ą§ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5305 +msgid "Fit Width" +msgstr "ą¦Ŗą§ą¦°ą¦øą§ą¦„ ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§ ą¦Øą¦æą¦°ą§ą¦§ą¦¾ą¦°ą¦£" + +#: ../shell/ev-window.c:5466 ../shell/ev-window.c:5483 +msgid "Unable to launch external application." +msgstr "ą¦¬ą¦¹ą¦æą¦øą§ą¦„ą¦æą¦¤ ą¦ ą§ą¦Æą¦¾ą¦Ŗą§ą¦²ą¦æą¦ą§ą¦¶ą¦Ø ą¦ą¦°ą¦®ą§ą¦ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:5540 +msgid "Unable to open external link" +msgstr "ą¦¬ą¦¹ą¦æą¦øą§ą¦„ą¦æą¦¤ ą¦²ą¦æą¦ą§ą¦ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:5707 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¦ą¦¬ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦Æą¦„ą¦¾ą¦Æą¦¤ ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦Ŗą¦¾ą¦ą§ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ" + +#: ../shell/ev-window.c:5749 +msgid "The image could not be saved." +msgstr "ą¦ą¦¬ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:5781 +msgid "Save Image" +msgstr "ą¦ą¦¬ą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window.c:5848 +msgid "Unable to open attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„" + +#: ../shell/ev-window.c:5901 +msgid "The attachment could not be saved." +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#: ../shell/ev-window.c:5946 +msgid "Save Attachment" +msgstr "ą¦øą¦ą¦Æą§ą¦ą§ą¦¤ ą¦¬ą¦øą§ą¦¤ą§ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +msgid "%s ā Password Required" +msgstr "%s - ą¦Ŗą¦¾ą¦øą¦ą§ą¦¾ą¦°ą§ą¦” ą¦ą¦¬ą¦¶ą§ą¦Æą¦" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "ą¦ą¦ą§ą¦øą¦ą§ą¦Øą¦¶ą¦Ø ą¦ ą¦Øą§ą¦Æą¦¾ą§ą§" + +#: ../shell/main.c:72 ../shell/main.c:251 +msgid "MATE Document Viewer" +msgstr "MATE Document Viewer" + +#: ../shell/main.c:80 +#, fuzzy +msgid "The page label of the document to display." +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦ą¦ą§ą¦Æą¦¾ą„¤" + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:81 +#, fuzzy +msgid "The page number of the document to display." +msgstr "ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ ą¦øą¦ą¦ą§ą¦Æą¦¾ą„¤" + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą¦øą¦®ą§ą¦Ŗą§ą¦°ą§ą¦£ ą¦Ŗą¦°ą§ą¦¦ą¦¾ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą¦Ŗą§ą¦°ą§ą¦øą§ą¦Øą§ą¦ą§ą¦¶ą¦Ø ą¦®ą§ą¦”ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦°ą§ą¦Ŗ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦Øą§ą¦° ą¦®ą§ą¦”ą§ evince ą¦ą¦¾ą¦²ą¦¾ą¦Øą§ ą¦¹ą¦¬ą§" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦®ą¦§ą§ą¦Æą§ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦ą¦ą¦ą¦æ ą¦¶ą¦¬ą§ą¦¦ ą¦ ą¦„ą¦¬ą¦¾ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +#, fuzzy +msgid "[FILEā¦]" +msgstr "[FILE...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#, fuzzy +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¦¬ą§ą¦²ą¦æą§ą¦¾ą¦² ą¦®ą¦¾ą¦Ø ą¦Ŗą§ą¦°ą¦Æą§ą¦ą§ą¦Æ, true (ą¦øą¦¤ą§ą¦Æ) ą¦¹ą¦²ą§ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦² ą¦øą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ ą¦®ą¦¾ą¦Ø false (ą¦øą¦¤ą§ą¦Æ " +"ą¦Øą§) ą¦¹ą¦²ą§ ą¦Øą¦¤ą§ą¦Ø ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦² ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦¬ą¦Øą§ą¦§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦² ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦øą¦ą§ą¦°ą¦æą§ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą¦¬ą¦¹ą¦¾ą¦°ą¦Æą§ą¦ą§ą¦Æ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦² ą¦ą¦®ą¦¾ą¦Øą§ą¦”" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#, fuzzy +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦°ą¦° ą¦ą¦Øą§ą¦Æ ą¦„ą¦¾ą¦®ą§ą¦¬-ą¦Øą§ą¦ą¦² ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ą§ ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦¬ą§ą¦§ ą¦ą¦®ą¦¾ą¦Øą§ą¦” ą¦ ą¦ą¦°ą§ą¦ą§ą¦®ą§ą¦Øą§ą¦ą„¤ ą¦ ą¦§ą¦æą¦ ą¦ą¦¾ą¦Øą¦¤ą§ " +"caja thumbnailer ą¦øą¦ą¦ą§ą¦°ą¦¾ą¦Øą§ą¦¤ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą¦° ą¦Ŗą§ą§ą¦Øą„¤" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦¬ą¦æą¦Øą§ą¦Æą¦¾ą¦ø ą¦øą¦ ą¦æą¦ ą¦Øą§" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sā ą¦«ą¦¾ą¦ą¦² ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦ą¦°ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„: %s" + +#~ msgid "Search string" +#~ msgstr "ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą¦¦ą§ą¦¦ą§ą¦¶ą§ą¦Æą§ ą¦ą¦æą¦¹ą§ą¦Øą¦æą¦¤ ą¦Ŗą¦ą¦ą§ą¦¤ą¦æ" + +#~ msgid "Case sensitive" +#~ msgstr "ą¦¹ą¦°ą¦«ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦øą¦®ą§ą¦Ŗą¦°ą§ą¦ą§ ą¦øą¦ą§ą¦¤ą¦Ø" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą¦®ą¦¾ą¦Ø TRUE (ą¦øą¦¤ą§ą¦Æ) ą¦¹ą¦²ą§ ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦øą¦®ą§ ą¦¹ą¦°ą¦«ą§ą¦° ą¦ą¦¾ą¦ą¦¦ ą¦ą¦£ą§ą¦Æ ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§" + +#~ msgid "Highlight color" +#~ msgstr "ą¦ą¦ą§ą¦ą§ą¦¬ą¦²ą§ą¦Æą§ą¦° ą¦°ą¦" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą¦øą¦¬ ą¦®ą¦æą¦² ą¦ą¦ą§ą¦ą§ą¦¬ą¦² ą¦ą¦°ą§ ą¦¦ą¦°ą§ą¦¶ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦°ą¦" + +#~ msgid "Current color" +#~ msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Øą§ą¦° ą¦Øą¦æą¦°ą§ą¦¬ą¦¾ą¦ą¦æą¦¤ ą¦°ą¦" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą¦¬ą¦°ą§ą¦¤ą¦®ą¦¾ą¦Ø ą¦®ą¦æą¦² ą¦ą¦ą§ą¦ą§ą¦¬ą¦² ą¦ą¦°ą§ ą¦¦ą¦°ą§ą¦¶ą¦¾ą¦Øą§ą¦° ą¦ą¦Øą§ą¦Æ ą¦¬ą§ą¦Æą¦¬ą¦¹ą§ą¦¤ ą¦°ą¦" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą¦Ŗą§ą¦°ą§ą¦¬ą¦¬ą¦°ą§ą¦¤ą§ ą¦Øą¦„ą¦æą¦Ŗą¦¤ą§ą¦° ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦ą¦æ?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ą¦øą¦°ą§ą¦¬ą¦¶ą§ą¦· Evince ą¦øą¦ą§ą¦ą¦¾ą¦²ą¦Øą¦¾ą¦° ą¦øą¦®ą§ ą¦øą¦®ą§ą¦ą¦¬ą¦¤ ą¦ą¦ą¦æ ą¦ ą¦Ŗą§ą¦°ą¦¤ą§ą¦Æą¦¾ą¦¶ą¦æą¦¤ą¦ą¦¾ą¦¬ą§ ą¦¬ą¦Øą§ą¦§ ą¦¹ą§ą§ą¦ą¦æą¦² ą¦ą¦¬ą¦ ą¦Ŗą§ą¦°ą¦¦ą¦°ą§ą¦¶ą¦æą¦¤ " +#~ "ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą¦ą§ą¦²ą¦æ ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą¦¾ ą¦Æą¦¾ą¦¬ą§ą„¤" + +#~ msgid "_Don't Recover" +#~ msgstr "ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą¦¾ ą¦¹ą¦¬ą§ ą¦Øą¦¾ (_D)" + +#~ msgid "_Recover" +#~ msgstr "ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦° ą¦ą¦°ą§ą¦Ø (_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ą¦¬ą¦æą¦Ŗą¦°ą§ą¦Æą§ ą¦„ą§ą¦ą§ ą¦Ŗą§ą¦Øą¦°ą§ą¦¦ą§ą¦§ą¦¾ą¦°" + +#~ msgid "Print..." +#~ msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ā%sā ą¦øą¦æą¦®-ą¦²ą¦æą¦ą¦ ą¦Øą¦æą¦°ą§ą¦®ą¦¾ą¦£ ą¦ą¦°ą¦¾ ą¦Æą¦¾ą§ą¦Øą¦æ: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦ą§ą¦²ą¦¤ą§ ą¦¬ą§ą¦Æą¦°ą§ą¦„ą„¤" + +#~ msgid "The document doesn't support search" +#~ msgstr "ą¦ą¦ ą¦”ą¦ą§ą¦®ą§ą¦Øą§ą¦ą§ą¦° ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Øą§ą¦° ą¦ą§ą¦Øą§ ą¦¬ą§ą¦Æą¦¬ą¦øą§ą¦„ą¦¾ ą¦Øą§ą¦" + +#~ msgid "_Save a Copy..." +#~ msgstr "ą¦Ŗą§ą¦°ą¦¤ą¦æą¦²ą¦æą¦Ŗą¦æ ą¦øą¦ą¦°ą¦ą§ą¦·ą¦£ ą¦ą¦°ą§ą¦Ø...(_S)" + +#~ msgid "Page Set_up..." +#~ msgstr "ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦Ŗą§ą¦°ą¦øą§ą¦¤ą§ą¦¤ą¦æ...(_u)" + +#~ msgid "Setup the page settings for printing" +#~ msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą¦¾ą¦° ą¦ą¦Øą§ą¦Æ ą¦Ŗą§ą¦·ą§ą¦ ą¦¾ą¦° ą¦¬ą§ą¦¶ą¦æą¦·ą§ą¦ą§ą¦Æ ą¦Øą¦æą¦°ą§ą¦§ą¦¾ą¦°ą¦£ ą¦ą¦°ą§ą¦Ø" + +#~ msgid "_Print..." +#~ msgstr "ą¦Ŗą§ą¦°ą¦æą¦Øą§ą¦ ą¦ą¦°ą§ą¦Ø...(_P)" + +#~ msgid "_Find..." +#~ msgstr "ą¦ ą¦Øą§ą¦øą¦Øą§ą¦§ą¦¾ą¦Ø...(_F)" diff --git a/po/br.po b/po/br.po new file mode 100644 index 00000000..63a80bb5 --- /dev/null +++ b/po/br.po @@ -0,0 +1,1475 @@ +# Breton translation for Evince +# Copyright (C) 2006 Free Software Foundation, Inc. +# This file is distributed under the GNU General Public License Version 2. +# JĆ©rĆ©my Ar Floc'h <jeremy.lefloch@gmail.com>, 2006 +# +# +msgid "" +msgstr "" +"Project-Id-Version: Evince 2.14\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-07-31 05:12+0000\n" +"PO-Revision-Date: 2009-07-31 08:32+0100\n" +"Last-Translator: Denis <denisarnuad@yahoo.fr>\n" +"Language-Team: Breton\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" + +#: ../backend/comics/comics-document.c:155 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" + +#: ../backend/comics/comics-document.c:178 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "" + +#: ../backend/comics/comics-document.c:225 +#, c-format +msgid "Failed to create a temporary directory." +msgstr "" + +#: ../backend/comics/comics-document.c:347 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:354 +msgid "Can't find an appropiate command to decompress this type of comic book" +msgstr "" + +#: ../backend/comics/comics-document.c:385 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Rizh MIME dianav" + +#: ../backend/comics/comics-document.c:412 +msgid "File corrupted" +msgstr "Restr kontron" + +#: ../backend/comics/comics-document.c:424 +msgid "No files in archive" +msgstr "" + +#: ../backend/comics/comics-document.c:465 +#, c-format +msgid "No images found in archive %s" +msgstr "Skeudenn ebet kavet e-barzh an teul %s" + +#: ../backend/comics/comics-document.c:704 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "" + +#: ../backend/comics/comics-document.c:854 +#, c-format +msgid "Error %s" +msgstr "Fazi %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "BannoĆ¹-treset" + +#: ../backend/djvu/djvu-document.c:174 +#, fuzzy +msgid "DJVU document has incorrect format" +msgstr "An teul DJVU en deus un mentrezh direizh" + +#: ../backend/djvu/djvu-document.c:251 +msgid "The document is composed of several files. One or more of such files cannot be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "TeulioĆ¹ Djvu" + +#: ../backend/dvi/dvi-document.c:108 +#, fuzzy +msgid "DVI document has incorrect format" +msgstr "An teul DVI en deus un mentrezh direizh" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "TeulieĆ¹ DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:826 +msgid "Yes" +msgstr "Ya" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:829 +msgid "No" +msgstr "Nann" + +#: ../backend/pdf/ev-poppler.cc:903 +msgid "Type 1" +msgstr "Rizh 1" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1C" +msgstr "Rizh 1C" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 3" +msgstr "Rizh 3" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "Type 1 (CID)" +msgstr "Rizh 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1C (CID)" +msgstr "Rizh 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "Unknown font type" +msgstr "Dianav eo rizh an nodrezh" + +#: ../backend/pdf/ev-poppler.cc:943 +msgid "No name" +msgstr "Anv ebet" + +#: ../backend/pdf/ev-poppler.cc:951 +msgid "Embedded subset" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded" +msgstr "Enkorfet" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Not embedded" +msgstr "N'eo ket enkorfet" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "TeulioĆ¹ PDF" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "Didalvoudek eo an teul" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Fazi ebet" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Didalvoudek eo ar restr zip" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "N'haller ket digeriƱ ar restr" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Fazi dianav" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "TeulioĆ¹ PostScript" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Anskoret eo rizh restr %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "An holl teulioĆ¹" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "An holl restroĆ¹" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "N'eo ket ur restr mod .desktop talvoudek" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Handelv '%s' restr ar burev n'eo ket bet anavezet" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "O kregiƱ gant %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "An arload ne zedegemer ket an teulioĆ¹ dre arroudennoĆ¹ arc'had" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Dibarzh laƱsaƱ dianavezet : %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "N'haller lakaat URIoĆ¹ an teul da dremen d'un enankad war ar burev evel 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "N'eo ket un dra a c'haller laƱsaƱ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "LazhaƱ kennask ouzh ardoer an estez" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Erspizit ar restr gant ar c'hefluniadur enrollet enni" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:46 +#: ../previewer/ev-previewer.c:47 +msgid "FILE" +msgstr "RESTR" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Dibab ID ardoadur an estez" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Hennader (ID)" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "DibarzhioĆ¹ ardeiƱ an estez :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Diskouez dibarzhioĆ¹ ardeiƱ an estez" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Diskouez ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Disranner" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5213 +msgid "Best Fit" +msgstr "Ment peurvat" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "AozaƱ hervez ledander ar bajenn" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4135 +#: ../shell/ev-window-title.c:150 +#: ../shell/main.c:484 +#, c-format +msgid "Document Viewer" +msgstr "Lenner teulioĆ¹" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Gwelout teulioĆ¹ gant meur a bajenn" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../previewer/ev-previewer.c:45 +msgid "Delete the temporary file" +msgstr "" + +#: ../previewer/ev-previewer.c:46 +msgid "Print settings file" +msgstr "Restr an arventennoĆ¹ moullaƱ" + +#: ../previewer/ev-previewer.c:141 +#: ../previewer/ev-previewer.c:175 +msgid "MATE Document Previewer" +msgstr "" + +#: ../previewer/ev-previewer-window.c:122 +#: ../shell/ev-window.c:2877 +msgid "Failed to print document" +msgstr "" + +#: ../previewer/ev-previewer-window.c:242 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "" + +#. Go menu +#: ../previewer/ev-previewer-window.c:286 +#: ../shell/ev-window.c:4972 +msgid "_Previous Page" +msgstr "_Pajenn a-raok" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:4973 +msgid "Go to the previous page" +msgstr "Mont da pajenn a-raok" + +#: ../previewer/ev-previewer-window.c:289 +#: ../shell/ev-window.c:4975 +msgid "_Next Page" +msgstr "_Pajenn war lerc'h" + +#: ../previewer/ev-previewer-window.c:290 +#: ../shell/ev-window.c:4976 +msgid "Go to the next page" +msgstr "Mont da pajenn war lerc'h" + +#: ../previewer/ev-previewer-window.c:293 +#: ../shell/ev-window.c:4959 +msgid "Enlarge the document" +msgstr "Brasaat an teul" + +#: ../previewer/ev-previewer-window.c:296 +#: ../shell/ev-window.c:4962 +msgid "Shrink the document" +msgstr "Bihanaat an teul" + +#: ../previewer/ev-previewer-window.c:299 +#: ../shell/ev-print-operation.c:1294 +msgid "Print" +msgstr "MoullaƱ" + +#: ../previewer/ev-previewer-window.c:300 +#: ../shell/ev-window.c:4931 +msgid "Print this document" +msgstr "MoullaƱ an teul-maƱ" + +#: ../previewer/ev-previewer-window.c:306 +#: ../shell/ev-window.c:5070 +msgid "_Best Fit" +msgstr "_Ment peurvat" + +#: ../previewer/ev-previewer-window.c:307 +#: ../shell/ev-window.c:5071 +msgid "Make the current document fill the window" +msgstr "" + +#: ../previewer/ev-previewer-window.c:309 +#: ../shell/ev-window.c:5073 +msgid "Fit Page _Width" +msgstr "" + +#: ../previewer/ev-previewer-window.c:310 +#: ../shell/ev-window.c:5074 +msgid "Make the current document fill the window width" +msgstr "" + +#: ../previewer/ev-previewer-window.c:441 +#: ../shell/ev-window.c:5137 +msgid "Page" +msgstr "Pajenn" + +#: ../previewer/ev-previewer-window.c:442 +#: ../shell/ev-window.c:5138 +msgid "Select Page" +msgstr "Diuz pajenn" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Teul" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "Titl :" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "Lec'hiadur :" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Ergorenn :" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "Aozer :" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "Krouer :" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "Krouet :" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "Kemmet :" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "Niver a bajennoĆ¹ :" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Gwellekaet :" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "Mentrezh :" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "Diogelroez :" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "Ment ar baperenn :" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "Tra ebet" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Poltred (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Gweledva (%s)" + +#: ../libmisc/ev-page-action.c:72 +#, c-format +msgid "(%d of %d)" +msgstr "(%d eus %d)" + +#: ../libmisc/ev-page-action.c:74 +#, c-format +msgid "of %d" +msgstr "eus %d" + +#: ../libview/ev-jobs.c:958 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "" + +#: ../libview/ev-jobs.c:1435 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Dibunadur sevel" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Dibunadur diskenn" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "" + +#: ../libview/ev-view.c:1466 +msgid "Go to first page" +msgstr "" + +#: ../libview/ev-view.c:1468 +msgid "Go to previous page" +msgstr "" + +#: ../libview/ev-view.c:1470 +msgid "Go to next page" +msgstr "" + +#: ../libview/ev-view.c:1472 +msgid "Go to last page" +msgstr "" + +#: ../libview/ev-view.c:1474 +msgid "Go to page" +msgstr "" + +#: ../libview/ev-view.c:1476 +msgid "Find" +msgstr "Kavout" + +#: ../libview/ev-view.c:1504 +#, c-format +msgid "Go to page %s" +msgstr "Mont da bajenn %s" + +#: ../libview/ev-view.c:1510 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "" + +#: ../libview/ev-view.c:1513 +#, c-format +msgid "Go to file ā%sā" +msgstr "" + +#: ../libview/ev-view.c:1521 +#, c-format +msgid "Launch %s" +msgstr "LaƱsaƱ %s" + +#: ../libview/ev-view.c:2781 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../libview/ev-view.c:3720 +msgid "Jump to page:" +msgstr "" + +#: ../libview/ev-view.c:4002 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "O kargaƱ..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Klask an testenn" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "DoujaƱs d'ar pennlizherenn" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Liv bremanel" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Kavout :" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:4948 +msgid "Find Pre_vious" +msgstr "Klask an hini _kent" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:4946 +msgid "Find Ne_xt" +msgstr "Klask war lerc'h" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "DoujaƱs d'ar p_ennlizherenn" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-application.c:305 +msgid "Recover previous documents?" +msgstr "" + +#: ../shell/ev-application.c:308 +msgid "Evince appears to have exited unexpectedly the last time it was run. You can recover the opened documents." +msgstr "" + +#: ../shell/ev-application.c:312 +msgid "_Don't Recover" +msgstr "_N'atoriƱ ket" + +#: ../shell/ev-application.c:315 +msgid "_Recover" +msgstr "Ato_riƱ" + +#: ../shell/ev-application.c:318 +msgid "Crash Recovery" +msgstr "Sac'het gant an atoradur" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Ger-tremen evit an teul %s" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "" + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_DibrennaƱ an teul" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Roit ar ger-tremen" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Ger-tremen rekis" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Ger-tremen :" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "DisoƱjal ar ger-tremen d_iouzhtu" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "Derc'hel soƱj er _ger-tremen betek ma tikennaskot" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "De_rc'hel soƱj da viken" + +#. Initial state +#: ../shell/ev-print-operation.c:316 +msgid "Preparing to print ..." +msgstr "PrientiƱ ar moullaƱ..." + +#: ../shell/ev-print-operation.c:318 +msgid "Finishing..." +msgstr "Oc'h echuiƱ..." + +#: ../shell/ev-print-operation.c:320 +#, c-format +msgid "Printing page %d of %d..." +msgstr "" + +#: ../shell/ev-print-operation.c:1143 +msgid "Printing is not supported on this printer." +msgstr "" + +#: ../shell/ev-print-operation.c:1208 +msgid "Invalid page selection" +msgstr "Didalvoudek eo diuzad ar bajenn" + +#: ../shell/ev-print-operation.c:1209 +msgid "Warning" +msgstr "Diwall" + +#: ../shell/ev-print-operation.c:1211 +msgid "Your print range selection does not include any page" +msgstr "" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "PerzhioĆ¹" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "Hollek" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "NodrezhoĆ¹" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Nodrezh" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "TreuzfollennoĆ¹" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "O moullaƱ..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:756 +msgid "Thumbnails" +msgstr "SkeudennigoĆ¹" + +#: ../shell/ev-window.c:828 +#, c-format +msgid "Page %s - %s" +msgstr "Pajenn %s-%s" + +#: ../shell/ev-window.c:830 +#, c-format +msgid "Page %s" +msgstr "Pajenn %s" + +#: ../shell/ev-window.c:1255 +msgid "The document contains no pages" +msgstr "" + +#: ../shell/ev-window.c:1258 +msgid "The document contains only empty pages" +msgstr "" + +#: ../shell/ev-window.c:1481 +#: ../shell/ev-window.c:1634 +msgid "Unable to open document" +msgstr "Dic'houest da zigeriƱ an teul" + +#: ../shell/ev-window.c:1605 +#, c-format +msgid "Loading document from ā%sā" +msgstr "" + +#: ../shell/ev-window.c:1743 +#: ../shell/ev-window.c:1926 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:1873 +#, c-format +msgid "Reloading document from %s" +msgstr "" + +#: ../shell/ev-window.c:1905 +msgid "Failed to reload document." +msgstr "" + +#: ../shell/ev-window.c:2057 +msgid "Open Document" +msgstr "DigeriƱ un teul" + +#: ../shell/ev-window.c:2136 +#, c-format +msgid "Couldn't create symlink ā%sā: " +msgstr "" + +#: ../shell/ev-window.c:2163 +msgid "Cannot open a copy." +msgstr "" + +#: ../shell/ev-window.c:2399 +#, c-format +msgid "Saving document to %s" +msgstr "" + +#: ../shell/ev-window.c:2402 +#, c-format +msgid "Saving attachment to %s" +msgstr "" + +#: ../shell/ev-window.c:2405 +#, c-format +msgid "Saving image to %s" +msgstr "" + +#: ../shell/ev-window.c:2449 +#: ../shell/ev-window.c:2546 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Ar restr n'hall ket bezaƱ enrollet evel ā%sā." + +#: ../shell/ev-window.c:2477 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "O pellgas an teul (%d%%)" + +#: ../shell/ev-window.c:2481 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2485 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "O pellgas ar skeudenn (%d%%)" + +#: ../shell/ev-window.c:2607 +msgid "Save a Copy" +msgstr "EnrollaƱ an eilad" + +#: ../shell/ev-window.c:2821 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-window.c:2934 +#, c-format +msgid "Printing job ā%sā" +msgstr "" + +#: ../shell/ev-window.c:3141 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3144 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3156 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3160 +msgid "Cancel _print and Close" +msgstr "" + +#: ../shell/ev-window.c:3164 +msgid "Close _after Printing" +msgstr "" + +#: ../shell/ev-window.c:3770 +msgid "Toolbar Editor" +msgstr "Embanner ar varrenn ostilhoĆ¹" + +#: ../shell/ev-window.c:3901 +msgid "There was an error displaying help" +msgstr "Bez e oa ur fazi en ur ziskouez ar skoazell" + +#: ../shell/ev-window.c:4131 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" + +#: ../shell/ev-window.c:4160 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Ur meziant digor eo Evince ; dasparzhet pe/ha daskemmet e vez dindan termenoĆ¹ al LaƱvaz Foran Hollek GNU evel ma'z eo bet embannet gant Diazezadenn ar MeziantoĆ¹ Digor ; da lĆ¢ret eo handelv 2 eus al laƱvaz pe (evel ma plij deoc'h) ne vern pe handelv nevesoc'h.\n" + +#: ../shell/ev-window.c:4164 +msgid "Evince 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.\n" +msgstr "Dasparzhet eo Evince gant ar spi e vo talvoudus met GANT GWARANT EBET ; hep ar gwarant enpleg a-fet TALVOUDEGEZH KENWERZHEL pe VARREGEZH EVIT UR PAL PERSONEL. Taolit ur sell war LaƱvaz Foran Hollek GNU evit gouzout hiroc'h.\n" + +#: ../shell/ev-window.c:4168 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "Moarvat hoc'h eus bet un eilad eus al LaƱvaz Foran Hollek GNU gant Evince ; ma n'hoc'h eus ket bet,skrivit da : Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA\n" + +#: ../shell/ev-window.c:4192 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4195 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Aozerion Evince" + +#: ../shell/ev-window.c:4201 +msgid "translator-credits" +msgstr "" +"JĆ©rĆ©my Ar Floc'h <jeremy.lefloch@gmail.com>\n" +"\n" +"Launchpad Contributions:\n" +" Denis https://launchpad.net/~bibar\n" +" JĆ©rĆ©my Le Floc'h https://launchpad.net/~jeremy-lefloch" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4419 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d kavet ouzh ar bajenn-maƱ" +msgstr[1] "%d kavet ouzh ar bajenn-maƱ" + +#: ../shell/ev-window.c:4427 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:4911 +msgid "_File" +msgstr "_Restr" + +#: ../shell/ev-window.c:4912 +msgid "_Edit" +msgstr "_KemmaƱ" + +#: ../shell/ev-window.c:4913 +msgid "_View" +msgstr "_Gwelout" + +#: ../shell/ev-window.c:4914 +msgid "_Go" +msgstr "_Mont" + +#: ../shell/ev-window.c:4915 +msgid "_Help" +msgstr "_Skoazell" + +#. File menu +#: ../shell/ev-window.c:4918 +#: ../shell/ev-window.c:5096 +#: ../shell/ev-window.c:5175 +msgid "_Open..." +msgstr "_DigeriƱ..." + +#: ../shell/ev-window.c:4919 +#: ../shell/ev-window.c:5176 +msgid "Open an existing document" +msgstr "DigeriƱ un teul o vezaƱ anezhaƱ" + +#: ../shell/ev-window.c:4921 +msgid "Op_en a Copy" +msgstr "Dig_eriƱ an eilad" + +#: ../shell/ev-window.c:4922 +msgid "Open a copy of the current document in a new window" +msgstr "" + +#: ../shell/ev-window.c:4924 +#: ../shell/ev-window.c:5098 +msgid "_Save a Copy..." +msgstr "En_rollaƱ an eilad..." + +#: ../shell/ev-window.c:4925 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:4927 +msgid "Page Set_up..." +msgstr "ArventenniƱ ar bajennad..." + +#: ../shell/ev-window.c:4928 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4930 +msgid "_Print..." +msgstr "_MoullaƱ" + +#: ../shell/ev-window.c:4933 +msgid "P_roperties" +msgstr "PerzhioĆ¹" + +#: ../shell/ev-window.c:4941 +msgid "Select _All" +msgstr "Diuz pep tra" + +#: ../shell/ev-window.c:4943 +msgid "_Find..." +msgstr "_Kavout..." + +#: ../shell/ev-window.c:4944 +msgid "Find a word or phrase in the document" +msgstr "Klask ur gĆŖr pe ur gomzenn en teul-maƱ" + +#: ../shell/ev-window.c:4950 +msgid "T_oolbar" +msgstr "Barenn ostilhoĆ¹" + +#: ../shell/ev-window.c:4952 +msgid "Rotate _Left" +msgstr "" + +#: ../shell/ev-window.c:4954 +msgid "Rotate _Right" +msgstr "" + +#: ../shell/ev-window.c:4964 +msgid "_Reload" +msgstr "_AdkargaƱ" + +#: ../shell/ev-window.c:4965 +msgid "Reload the document" +msgstr "AdkargaƱ an teul" + +#: ../shell/ev-window.c:4968 +msgid "Auto_scroll" +msgstr "em_zibunaƱ" + +#: ../shell/ev-window.c:4978 +msgid "_First Page" +msgstr "_Pajenn gentaƱ" + +#: ../shell/ev-window.c:4979 +msgid "Go to the first page" +msgstr "Mont da pajenn gentaƱ" + +#: ../shell/ev-window.c:4981 +msgid "_Last Page" +msgstr "Pajennad diwe_zhaƱ" + +#: ../shell/ev-window.c:4982 +msgid "Go to the last page" +msgstr "Mont d'ar bajenn diwezhaƱ" + +#. Help menu +#: ../shell/ev-window.c:4986 +msgid "_Contents" +msgstr "_Endalc'hadoĆ¹" + +#: ../shell/ev-window.c:4989 +msgid "_About" +msgstr "_A-zivout" + +#. Toolbar-only +#: ../shell/ev-window.c:4993 +msgid "Leave Fullscreen" +msgstr "" + +#: ../shell/ev-window.c:4994 +msgid "Leave fullscreen mode" +msgstr "" + +#: ../shell/ev-window.c:4996 +#, fuzzy +msgid "Start Presentation" +msgstr "KregiƱ gant ar kinnigadenn" + +#: ../shell/ev-window.c:4997 +#, fuzzy +msgid "Start a presentation" +msgstr "KregiƱ gant ur kinnigadenn" + +#. View Menu +#: ../shell/ev-window.c:5052 +msgid "_Toolbar" +msgstr "_Barrenn ostilhoĆ¹" + +#: ../shell/ev-window.c:5053 +msgid "Show or hide the toolbar" +msgstr "Diskouez pe kuzhat ar barrenn ostilhoĆ¹" + +#: ../shell/ev-window.c:5055 +msgid "Side _Pane" +msgstr "Barrenn gostez" + +#: ../shell/ev-window.c:5056 +msgid "Show or hide the side pane" +msgstr "Diskouez pe kuzhat ar barrenn gostez" + +#: ../shell/ev-window.c:5058 +msgid "_Continuous" +msgstr "_Kenderc'hel" + +#: ../shell/ev-window.c:5059 +msgid "Show the entire document" +msgstr "Diskouez an teul a-bezh" + +#: ../shell/ev-window.c:5061 +msgid "_Dual" +msgstr "" + +#: ../shell/ev-window.c:5062 +msgid "Show two pages at once" +msgstr "" + +#: ../shell/ev-window.c:5064 +msgid "_Fullscreen" +msgstr "_Skrammad a-bezh" + +#: ../shell/ev-window.c:5065 +msgid "Expand the window to fill the screen" +msgstr "" + +#: ../shell/ev-window.c:5067 +msgid "Pre_sentation" +msgstr "Kinni_gadenn" + +#: ../shell/ev-window.c:5068 +msgid "Run document as a presentation" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5081 +msgid "_Open Link" +msgstr "_DigeriƱ an ere" + +#: ../shell/ev-window.c:5083 +msgid "_Go To" +msgstr "_Mont da" + +#: ../shell/ev-window.c:5085 +msgid "Open in New _Window" +msgstr "DigeriƱ er pr_enestr nevez" + +#: ../shell/ev-window.c:5087 +msgid "_Copy Link Address" +msgstr "_EilaƱ lec'hiadur an ere" + +#: ../shell/ev-window.c:5089 +msgid "_Save Image As..." +msgstr "_EnrollaƱ ar skeudenn dindan..." + +#: ../shell/ev-window.c:5091 +msgid "Copy _Image" +msgstr "EilaƱ ar skeudenn" + +#: ../shell/ev-window.c:5149 +msgid "Zoom" +msgstr "Zoum" + +#: ../shell/ev-window.c:5151 +msgid "Adjust the zoom level" +msgstr "Kempenn live ar zoumaƱ" + +#: ../shell/ev-window.c:5161 +msgid "Navigation" +msgstr "MerdeiƱ" + +#: ../shell/ev-window.c:5163 +msgid "Back" +msgstr "Kein" + +#. translators: this is the history action +#: ../shell/ev-window.c:5166 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5196 +msgid "Previous" +msgstr "A-raok" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5201 +msgid "Next" +msgstr "War lerc'h" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5205 +msgid "Zoom In" +msgstr "Zoum brasaat" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5209 +msgid "Zoom Out" +msgstr "Zoum bihanaat" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5217 +msgid "Fit Width" +msgstr "" + +#: ../shell/ev-window.c:5384 +#: ../shell/ev-window.c:5400 +msgid "Unable to launch external application." +msgstr "" + +#: ../shell/ev-window.c:5439 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:5595 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:5634 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5666 +msgid "Save Image" +msgstr "EnrollaƱ ar skeudenn" + +#: ../shell/ev-window.c:5733 +msgid "Unable to open attachment" +msgstr "" + +#: ../shell/ev-window.c:5784 +msgid "The attachment could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5829 +msgid "Save Attachment" +msgstr "" + +#: ../shell/ev-window-title.c:163 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Ger-tremenĀ·rekis" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Dre an askouezhadenn" + +#: ../shell/main.c:73 +#: ../shell/main.c:436 +msgid "MATE Document Viewer" +msgstr "Alberzer teulioĆ¹ MATE" + +#: ../shell/main.c:81 +msgid "The page of the document to display." +msgstr "" + +#: ../shell/main.c:81 +msgid "PAGE" +msgstr "PAJENN" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "Loc'h Evince e mod skrammad a-bezh" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "Loc'h Evince e mod kinngadenn" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "HEDAD" + +#: ../shell/main.c:89 +msgid "[FILE...]" +msgstr "[RESTR...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "" + diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 00000000..10241743 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,2211 @@ +# Catalan translation of evince. +# Copyright Ā© 2005, 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Gil Forcada <gilforcada@guifi.net>, 2005, 2006, 2007, 2008, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-06 13:32+0100\n" +"PO-Revision-Date: 2010-04-01 21:47+0200\n" +"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n" +"Language-Team: Catalan <tradmate@softcatala.org>\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" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"S'ha produĆÆt un error en executar l'ordre Ā«%sĀ» per poder descomprimir el " +"cĆ²mic: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "No s'ha pogut descomprimir el cĆ²mic amb l'ordre Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "L'ordre Ā«%sĀ» no ha finalitzat correctament." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "El tipus MIME no Ć©s d'un cĆ²mic: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"No es pot trobar una ordre adequada per descomprimir aquest tipus de cĆ²mic" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipus MIME desconegut" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "El fitxer estĆ malmĆØs" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "No hi ha cap fitxer a l'arxiu" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "No s'han trobat imatges a l'arxiu %s" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "S'ha produĆÆt un error en suprimir Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Error %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "CĆ²mics" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "El document DjVu tĆ© un format incorrecte" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"El document Ć©s format per diversos fitxers, un o mĆ©s dels quals sĆ³n " +"inaccessibles." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documents DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "El document DVI tĆ© un format incorrecte" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documents DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Aquest treball Ć©s de domini pĆŗblic" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "SĆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Tipus 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Tipus 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Tipus 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Tipus 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Tipus 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Tipus de lletra desconegut" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Sense nom" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "Subconjunt incrustat" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "Incrustat" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "No incrustat" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documents PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Document invĆ lid" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapositives de l'Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Cap error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "No hi ha prou memĆ²ria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "No s'ha pogut trobar la signatura ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Fitxer ZIP no vĆ lid" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Encara no es poden fer servir arxius ZIP amb mĆŗltiples fitxers" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "No s'ha pogut obrir el fitxer" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "No s'han pogut llegir les dades del fitxer" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "No s'ha pogut trobar el fitxer a l'arxiu ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Error desconegut" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "No s'ha pogut carregar el document Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "No s'ha pogut desar el document Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documents PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "No s'ha pogut desar l'adjunciĆ³ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "No s'ha pogut obrir l'adjunciĆ³ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "No s'ha pogut obrir l'adjunciĆ³ Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Encara no es pot gestionar el tipus de fitxer %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Tots els documents" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Tots els fitxers" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "No s'ha pogut crear el fitxer temporal: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "No s'ha pogut crear el directori temporal: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El fitxer no Ć©s un fitxer .desktop vĆ lid" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Es desconeix la versiĆ³ Ā«%sĀ» del fitxer d'escriptori" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "S'estĆ iniciant %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicaciĆ³ no accepta documents des de la lĆnia d'ordres" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpciĆ³ d'execuciĆ³ desconeguda: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No es pot passar els URI del document a una entrada d'escriptori del tipus " +"Ā«Type=LinkĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "No Ć©s un element executable" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Inhabilita la connexiĆ³ al gestor de sessions" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especifica el fitxer que contĆ© la configuraciĆ³ desada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FITXER" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especifica l'identificador de gestiĆ³ de sessiĆ³" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Identificador" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opcions de gestiĆ³ de la sessiĆ³:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostra les opcions de gestiĆ³ de la sessiĆ³" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostra Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_Mou a la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "Mou l'element seleccionat a la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "Sup_rimeix de la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Suprimeix l'element seleccionat de la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "Sup_rimeix la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Suprimeix la barra d'eines seleccionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Separador" + +# FIXME +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "S'estĆ executant en mode de presentaciĆ³" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5329 +msgid "Best Fit" +msgstr "Millor ajust" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ajusta a l'amplada de la pĆ gina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4193 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "Visualitzador de documents" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visualitzeu documents multi-pĆ gina" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "No facis cas de les restriccions del document" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"No facis cas de les restriccions del document, com les de cĆ²pia o " +"d'impressiĆ³." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Suprimeix el fitxer temporal" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Imprimeix el fitxer de configuraciĆ³" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "Visualitzador de documents del MATE" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "No s'ha pogut imprimir el document" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "No s'ha pogut trobar la impressora Ā«%sĀ»" + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5078 +msgid "_Previous Page" +msgstr "PĆ gina _anterior" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5079 +msgid "Go to the previous page" +msgstr "VĆ©s a la pĆ gina anterior" + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5081 +msgid "_Next Page" +msgstr "PĆ gina _segĆ¼ent" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5082 +msgid "Go to the next page" +msgstr "VĆ©s a la pĆ gina segĆ¼ent" + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5065 +msgid "Enlarge the document" +msgstr "Amplia el document" + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5068 +msgid "Shrink the document" +msgstr "Encongeix el document" + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Imprimeix" + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5036 +msgid "Print this document" +msgstr "Imprimeix el document" + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5180 +msgid "_Best Fit" +msgstr "_Millor ajust" + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5181 +msgid "Make the current document fill the window" +msgstr "Fes que el document ompli la finestra" + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5183 +msgid "Fit Page _Width" +msgstr "Aj_usta a l'amplada de la pĆ gina" + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5184 +msgid "Make the current document fill the window width" +msgstr "Fes que el document encaixi a l'amplada de la finestra" + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5251 +msgid "Page" +msgstr "PĆ gina" + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5252 +msgid "Select Page" +msgstr "Selecciona la pĆ gina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtol:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "UbicaciĆ³:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Assumpte:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Paraules clau:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Productor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creat:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificat:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Nombre de pĆ gines:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimitzat:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Seguretat:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Mida del paper:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Cap" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f polzades" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, vertical (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, apaĆÆsat (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "S'estĆ preparant per imprimirā¦" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "S'estĆ acabantā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "S'estĆ imprimint la pĆ gina %d de %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "No es pot imprimir en aquesta impressora." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "La selecciĆ³ de pĆ gines no Ć©s vĆ lida" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "AvĆs" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "No hi ha cap pĆ gina en el rang d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "Escalat de la pĆ gina:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Redueix a l'Ć rea d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Ajusta a l'Ć rea d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escala les pĆ gines del document per ajustar-les a la pĆ gina d'impressiĆ³ " +"seleccionada. Seleccioneu una de les opcions segĆ¼ents:\n" +"\n" +"ā¢ Ā«CapĀ»: No es fa cap escalat.\n" +"\n" +"ā¢ Ā«Redueix a l'Ć rea d'impressiĆ³Ā»: Es redueixen les pĆ gines mĆ©s grans que " +"l'Ć rea d'impressiĆ³ per ajustar-se a l'Ć rea de la pĆ gina d'impressiĆ³.\n" +"\n" +"ā¢ Ā«Ajusta a l'Ć rea d'impressiĆ³Ā»: S'amplien o es redueixen segons convingui " +"per ajustar-se a l'Ć rea de la pĆ gina d'impressiĆ³.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "Gira automĆ ticament i centra" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Gira l'orientaciĆ³ de la pĆ gina d'impressiĆ³ de cada pĆ gina perquĆØ coincideixi " +"amb cada pĆ gina del document. Es centraran les pĆ gines respecte la pĆ gina " +"d'impressiĆ³." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "Seleccioneu la mida de la pĆ gina amb la mida de la pĆ gina del document" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Quan s'habiliti cada pĆ gina s'imprimirĆ amb la mateixa mida de paper que la " +"pĆ gina del document." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "GestiĆ³ de la pĆ gina" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "No s'ha pogut imprimir la pĆ gina %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "DesplaƧa cap amunt" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "DesplaƧa cap avall" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "DesplaƧa la visualitzaciĆ³ cap amunt" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "DesplaƧa la visualitzaciĆ³ cap avall" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "VisualitzaciĆ³ del document" + +#: ../libview/ev-view-presentation.c:669 +msgid "Jump to page:" +msgstr "Salta a la pĆ gina:" + +#: ../libview/ev-view-presentation.c:979 +msgid "End of presentation. Click to exit." +msgstr "Final de la presentaciĆ³. Feu clic per sortir." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "VĆ©s a la primera pĆ gina" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "VĆ©s a la pĆ gina anterior" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "VĆ©s a la pĆ gina segĆ¼ent" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "VĆ©s a l'Ćŗltima pĆ gina" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "VĆ©s a la pĆ gina" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "Cerca" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "VĆ©s a la pĆ gina %s" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "VĆ©s a %s en el fitxer Ā«%sĀ»" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "VĆ©s al fitxer Ā«%sĀ»" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "Engega %s" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "S'estĆ carregantā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Cerca:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5053 +msgid "Find Pre_vious" +msgstr "Cerca l'_anterior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Cerca l'anterior ocurrĆØncia de la cadena de cerca" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5051 +msgid "Find Ne_xt" +msgstr "Cerca el _segĆ¼ent" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Cerca la segĆ¼ent ocurrĆØncia de cadena de cerca" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Distingeix entre majĆŗscules i minĆŗscules" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Commuta a una cerca que distingeixi entre majĆŗscules i minĆŗscules" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Contrasenya per al document %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "S'estĆ convertint %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "S'han convertit %d de %d documents" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "S'estan convertint les metadades" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"L'Evince ha canviat el format de les metadades que utilitzava i s'han de " +"migrar. Si cancelĀ·leu la migraciĆ³ el magatzem de metadades no funcionarĆ ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Obre un document utilitzat recentment" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Aquest document estĆ protegit i nomĆ©s es pot llegir si s'introdueix la " +"contrasenya correcta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Desbloca el document" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "IntroduĆÆu la contrasenya" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Cal una contrasenya" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"El document Ā«%sĀ» estĆ protegit i cal una contrasenya per poder-lo obrir." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Contrasenya:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Oblida la contrasenya _immediatament" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "Recorda la contrasenya durant aquesta _sessiĆ³" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "_Recorda-la per sempre" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Propietats" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Tipus de lletra" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "LlicĆØncia del document" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Tipus de lletra" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "S'estĆ recollint informaciĆ³ del tipus de lletraā¦ %3d%%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "Termes d'Ćŗs" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "LlicĆØncia del text" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "MĆ©s informaciĆ³" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Adjuncions" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Capes" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimeixā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndex" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "Miniatures" + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ gina %s ā %s" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "PĆ gina %s" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "El document no contĆ© cap pĆ gina" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "El document nomĆ©s contĆ© pĆ gines buides" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "No es pot obrir el document" + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "S'estĆ carregant el document des de Ā«%sĀ»" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "S'estĆ baixant el document (%d%%)" + +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "No s'ha pogut carregar el fitxer remot." + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "S'estĆ tornant a carregar el document des de %s" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "No s'ha pogut tornar a carregar el document." + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "Obre un document" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "S'estĆ desant el document a %s" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "S'estĆ desant l'adjunciĆ³ a %s" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "S'estĆ desant la imatge %s" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "No s'ha pogut desar el fitxer com a Ā«%sĀ»." + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "S'estĆ pujant el document (%d%%)" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "S'estĆ pujant l'adjunciĆ³ (%d%%)" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "S'estĆ pujant la imatge (%d%%)" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "Desa'n una cĆ²pia" + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d tasca pendent a la cua" +msgstr[1] "%d tasques pendents a la cua" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "S'estĆ imprimint la tasca Ā«%sĀ»" + +#: ../shell/ev-window.c:3265 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Voleu esperar per tancar fins que s'acabi la tasca d'impressiĆ³ Ā«%sĀ»?" + +#: ../shell/ev-window.c:3268 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Hi ha %d tasques d'impressiĆ³ actives. Voleu esperar per tancar fins que " +"s'acabi d'imprimir?" + +#: ../shell/ev-window.c:3280 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Si tanqueu la finestra, no s'imprimiran les tasques pendents." + +#: ../shell/ev-window.c:3284 +msgid "Cancel _print and Close" +msgstr "CancelĀ·la la im_pressiĆ³ i tanca" + +#: ../shell/ev-window.c:3288 +msgid "Close _after Printing" +msgstr "Tanca desprĆ©s d'im_primir" + +#: ../shell/ev-window.c:3846 +msgid "Toolbar Editor" +msgstr "Editor de la barra d'eines" + +#: ../shell/ev-window.c:3978 +msgid "There was an error displaying help" +msgstr "S'ha produĆÆt un error en mostrar l'ajuda" + +#: ../shell/ev-window.c:4189 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualitzador de documents.\n" +"S'utilitza el %s (%s)" + +#: ../shell/ev-window.c:4220 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"L'Evince Ć©s programari lliure; podeu redistribuir-lo i/o modificar-lo sota " +"els termes de la LlicĆØncia PĆŗblica General GNU tal com ha estat publicada " +"per la Free Software Foundation; ja sigui la versiĆ³ 2 de la LlicĆØncia o bĆ© " +"(si ho preferiu) qualsevol altra versiĆ³ posterior.\n" + +#: ../shell/ev-window.c:4224 +msgid "" +"Evince 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.\n" +msgstr "" +"L'Evince es distribueix amb l'expectativa que serĆ Ćŗtil, perĆ² SENSE CAP " +"GARANTIA; ni tan sols la garantia implĆcita de COMERCIABILITAT o ADEQUACIĆ " +"PER UN PROPĆSIT PARTICULAR. Vegeu la LlicĆØncia PĆŗblica General GNU per " +"obtenir-ne mĆ©s detalls.\n" + +#: ../shell/ev-window.c:4228 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"HaurĆeu d'haver rebut una cĆ²pia de la LlicĆØncia PĆŗblica General GNU " +"juntament amb l'Evince; en cas contrari, escriviu a la Free Software " +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4253 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4256 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Els autors de l'Evince" + +#: ../shell/ev-window.c:4262 +msgid "translator-credits" +msgstr "Gil Forcada <gilforcada@guifi.net>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4531 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "N'hi ha %d en aquesta pĆ gina" +msgstr[1] "N'hi ha %d en aquesta pĆ gina" + +#: ../shell/ev-window.c:4539 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Manca el %3d%% per cercar" + +#: ../shell/ev-window.c:5016 +msgid "_File" +msgstr "_Fitxer" + +#: ../shell/ev-window.c:5017 +msgid "_Edit" +msgstr "_Edita" + +#: ../shell/ev-window.c:5018 +msgid "_View" +msgstr "_Visualitza" + +#: ../shell/ev-window.c:5019 +msgid "_Go" +msgstr "VĆ©_s" + +#: ../shell/ev-window.c:5020 +msgid "_Help" +msgstr "A_juda" + +#. File menu +#: ../shell/ev-window.c:5023 ../shell/ev-window.c:5291 +msgid "_Openā¦" +msgstr "_Obreā¦" + +#: ../shell/ev-window.c:5024 ../shell/ev-window.c:5292 +msgid "Open an existing document" +msgstr "Obre un document existent" + +#: ../shell/ev-window.c:5026 +msgid "Op_en a Copy" +msgstr "Obre'n una _cĆ²pia" + +#: ../shell/ev-window.c:5027 +msgid "Open a copy of the current document in a new window" +msgstr "Obre una cĆ²pia del document actual en una finestra nova" + +#: ../shell/ev-window.c:5029 +msgid "_Save a Copyā¦" +msgstr "Desa'n una cĆ²piaā¦" + +#: ../shell/ev-window.c:5030 +msgid "Save a copy of the current document" +msgstr "Desa una cĆ²pia del document actual" + +#: ../shell/ev-window.c:5032 +msgid "Page Set_upā¦" +msgstr "_ConfiguraciĆ³ de la pĆ ginaā¦" + +#: ../shell/ev-window.c:5033 +msgid "Set up the page settings for printing" +msgstr "Configureu els parĆ metres de pĆ gina per a la impressiĆ³" + +#: ../shell/ev-window.c:5035 +msgid "_Printā¦" +msgstr "_Imprimeixā¦" + +#: ../shell/ev-window.c:5038 +msgid "P_roperties" +msgstr "_Propietats" + +#: ../shell/ev-window.c:5046 +msgid "Select _All" +msgstr "Selecciona-ho _tot" + +#: ../shell/ev-window.c:5048 +msgid "_Findā¦" +msgstr "_Cercaā¦" + +#: ../shell/ev-window.c:5049 +msgid "Find a word or phrase in the document" +msgstr "Cerca una paraula o frase al document" + +#: ../shell/ev-window.c:5055 +msgid "T_oolbar" +msgstr "_Barra d'eines" + +#: ../shell/ev-window.c:5057 +msgid "Rotate _Left" +msgstr "Gira a l'_esquerra" + +#: ../shell/ev-window.c:5059 +msgid "Rotate _Right" +msgstr "Gira a la _dreta" + +#: ../shell/ev-window.c:5070 +msgid "_Reload" +msgstr "Ac_tualitza" + +#: ../shell/ev-window.c:5071 +msgid "Reload the document" +msgstr "Actualitza el document" + +#: ../shell/ev-window.c:5074 +msgid "Auto_scroll" +msgstr "DesplaƧa _automĆ ticament" + +#: ../shell/ev-window.c:5084 +msgid "_First Page" +msgstr "_Primera pĆ gina" + +#: ../shell/ev-window.c:5085 +msgid "Go to the first page" +msgstr "VĆ©s a la primera pĆ gina" + +#: ../shell/ev-window.c:5087 +msgid "_Last Page" +msgstr "Ćl_tima pĆ gina" + +#: ../shell/ev-window.c:5088 +msgid "Go to the last page" +msgstr "VĆ©s a l'Ćŗltima pĆ gina" + +#. Help menu +#: ../shell/ev-window.c:5092 +msgid "_Contents" +msgstr "_Continguts" + +#: ../shell/ev-window.c:5095 +msgid "_About" +msgstr "_Quant a" + +#. Toolbar-only +#: ../shell/ev-window.c:5099 +msgid "Leave Fullscreen" +msgstr "Surt de la pantalla completa" + +#: ../shell/ev-window.c:5100 +msgid "Leave fullscreen mode" +msgstr "Surt de la pantalla completa" + +#: ../shell/ev-window.c:5102 +msgid "Start Presentation" +msgstr "Inicia la presentaciĆ³" + +#: ../shell/ev-window.c:5103 +msgid "Start a presentation" +msgstr "Inicia una presentaciĆ³" + +#. View Menu +#: ../shell/ev-window.c:5162 +msgid "_Toolbar" +msgstr "Barra d'_eines" + +#: ../shell/ev-window.c:5163 +msgid "Show or hide the toolbar" +msgstr "Mostra o amaga la barra d'eines" + +#: ../shell/ev-window.c:5165 +msgid "Side _Pane" +msgstr "Barra _lateral" + +#: ../shell/ev-window.c:5166 +msgid "Show or hide the side pane" +msgstr "Mostra o amaga la barra lateral" + +#: ../shell/ev-window.c:5168 +msgid "_Continuous" +msgstr "C_ontinu" + +#: ../shell/ev-window.c:5169 +msgid "Show the entire document" +msgstr "Mostra el document sencer" + +#: ../shell/ev-window.c:5171 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5172 +msgid "Show two pages at once" +msgstr "Mostra dues pĆ gines alhora" + +#: ../shell/ev-window.c:5174 +msgid "_Fullscreen" +msgstr "Pantalla _completa" + +#: ../shell/ev-window.c:5175 +msgid "Expand the window to fill the screen" +msgstr "Expandeix la finestra fins a omplir la pantalla" + +#: ../shell/ev-window.c:5177 +msgid "Pre_sentation" +msgstr "_PresentaciĆ³" + +# FIXME +#: ../shell/ev-window.c:5178 +msgid "Run document as a presentation" +msgstr "Mostra el document com a una presentaciĆ³" + +#: ../shell/ev-window.c:5186 +msgid "_Inverted Colors" +msgstr "_Inverteix els colors" + +#: ../shell/ev-window.c:5187 +msgid "Show page contents with the colors inverted" +msgstr "Mostra el contingut de la pĆ gina amb els colors invertits" + +#. Links +#: ../shell/ev-window.c:5195 +msgid "_Open Link" +msgstr "_Obre l'enllaƧ" + +#: ../shell/ev-window.c:5197 +msgid "_Go To" +msgstr "VĆ©_s a" + +#: ../shell/ev-window.c:5199 +msgid "Open in New _Window" +msgstr "Obre en una _finestra nova" + +#: ../shell/ev-window.c:5201 +msgid "_Copy Link Address" +msgstr "_Copia l'adreƧa de l'enllaƧ" + +#: ../shell/ev-window.c:5203 +msgid "_Save Image Asā¦" +msgstr "_Anomena i desa la imatgeā¦" + +#: ../shell/ev-window.c:5205 +msgid "Copy _Image" +msgstr "Copia la _imatge" + +#: ../shell/ev-window.c:5210 +msgid "_Open Attachment" +msgstr "_Obre l'adjunciĆ³" + +#: ../shell/ev-window.c:5212 +msgid "_Save Attachment Asā¦" +msgstr "_Desa l'adjunciĆ³ com aā¦" + +#: ../shell/ev-window.c:5265 +msgid "Zoom" +msgstr "AmpliaciĆ³" + +#: ../shell/ev-window.c:5267 +msgid "Adjust the zoom level" +msgstr "Ajusta el nivell de l'ampliaciĆ³" + +#: ../shell/ev-window.c:5277 +msgid "Navigation" +msgstr "NavegaciĆ³" + +#: ../shell/ev-window.c:5279 +msgid "Back" +msgstr "Enrere" + +# "Salta't les pĆ gines visitades"? (josep) +#. translators: this is the history action +#: ../shell/ev-window.c:5282 +msgid "Move across visited pages" +msgstr "Creua les pĆ gines visitades" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5312 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5317 +msgid "Next" +msgstr "SegĆ¼ent" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5321 +msgid "Zoom In" +msgstr "Apropa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5325 +msgid "Zoom Out" +msgstr "Allunya" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Fit Width" +msgstr "Encaixa a l'amplada" + +#: ../shell/ev-window.c:5494 ../shell/ev-window.c:5511 +msgid "Unable to launch external application." +msgstr "No s'ha pogut executar l'aplicaciĆ³ externa." + +#: ../shell/ev-window.c:5568 +msgid "Unable to open external link" +msgstr "No s'ha pogut obrir l'enllaƧ extern" + +#: ../shell/ev-window.c:5735 +msgid "Couldn't find appropriate format to save image" +msgstr "No s'ha trobat cap format adequat per desar la imatge" + +#: ../shell/ev-window.c:5777 +msgid "The image could not be saved." +msgstr "No s'ha pogut desar la imatge." + +#: ../shell/ev-window.c:5809 +msgid "Save Image" +msgstr "Desa la imatge" + +#: ../shell/ev-window.c:5876 +msgid "Unable to open attachment" +msgstr "No s'ha pogut obrir l'adjunciĆ³" + +#: ../shell/ev-window.c:5929 +msgid "The attachment could not be saved." +msgstr "No s'ha pogut desar l'adjunciĆ³." + +#: ../shell/ev-window.c:5974 +msgid "Save Attachment" +msgstr "Desa l'adjunciĆ³" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Necessita contrasenya" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "Per extensiĆ³" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "Visualitzador de documents del MATE" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "La pĆ gina del document a mostrar." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "PĆGINA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executa l'Evince en mode pantalla completa" + +# FIXME +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executa l'Evince en mode presentaciĆ³" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executa l'Evince com a previsualitzador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "La paraula o frase que es vol cercar en el document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CADENA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FITXERā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opcions booleanes disponibles: Ā«trueĀ» (cert) habilita les miniatures i " +"Ā«falseĀ» (fals) inhabilita la creaciĆ³ de noves miniatures" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Habilita les miniatures per als documents PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Ordre de miniatura per als documents PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Ordre vĆ lida amb arguments addicionals per al miniaturitzador de documents " +"PDF. Per a mĆ©s informaciĆ³ vegeu la documentaciĆ³ del miniaturitzador del " +"Caja." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "El document DJVU tĆ© un format incorrecte" + +#~ msgid "Print..." +#~ msgstr "Imprimeix..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Desa'n una cĆ²pia..." + +#~ msgid "_Print..." +#~ msgstr "_Imprimeix..." + +#~ msgid "_Find..." +#~ msgstr "_Cerca..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "No s'ha pogut crear el fitxer Ā«%sĀ»: %s" + +#~ msgid "Search string" +#~ msgstr "Cerca una cadena" + +#~ msgid "The name of the string to be found" +#~ msgstr "El nom de la cadena a cercar" + +#~ msgid "Case sensitive" +#~ msgstr "Distingeix entre majĆŗscules i minĆŗscules" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "Cert per a una cerca que distingeixi majĆŗscules de minĆŗscules" + +#~ msgid "Highlight color" +#~ msgstr "Color del ressaltat" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Color del ressaltat per a totes les coincidĆØncies" + +#~ msgid "Current color" +#~ msgstr "Color actual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Color del ressaltat de la coincidĆØncia actual" + +#~ msgid "Recover previous documents?" +#~ msgstr "Voleu recuperar els documents que tenieu oberts?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Sembla que l'Ćŗltima vegada que es va executar l'Evince va finalitzar " +#~ "sobtadament. Tot i aixĆ, podeu recuperar els documents oberts." + +#~ msgid "_Don't Recover" +#~ msgstr "_No els recuperis" + +#~ msgid "_Recover" +#~ msgstr "_Recupera'ls" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaciĆ³ de documents" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "No s'ha pogut crear l'enllaƧ simbĆ²lic Ā«%sĀ»: " + +#~ msgid "Cannot open a copy." +#~ msgstr "No se n'ha pogut obrir una cĆ²pia." + +#~ msgid "Co_nnect" +#~ msgstr "Co_nnecta" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connecta _anĆ²nimament" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Connecta com a u_suari:" + +#~ msgid "_Username:" +#~ msgstr "Nom d'_usuari:" + +#~ msgid "_Domain:" +#~ msgstr "_Domini:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Oblida la contrasenya immediatament" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Recorda la contrasenya durant aquesta sessiĆ³" + +#~ msgid "_Remember forever" +#~ msgstr "_Recorda-la per sempre" + +#~ msgid "File not available" +#~ msgstr "El fitxer no estĆ disponible" + +#~ msgid "Remote files aren't supported" +#~ msgstr "La gestiĆ³ de fitxers remots no estĆ implementada" + +#~ msgid "Find Previous" +#~ msgstr "Cerca l'anterior" + +#~ msgid "Find Next" +#~ msgstr "Cerca la segĆ¼ent" + +#~ msgid "Password Entry" +#~ msgstr "Entrada de la contrasenya" + +#~ msgid "Remember password for this session" +#~ msgstr "Recorda la contrasenya durant aquesta sessiĆ³" + +#~ msgid "Save password in keyring" +#~ msgstr "Desa la contrasenya a l'anell de claus" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>TĆtol:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Incorrect password" +#~ msgstr "Contrasenya errĆ²nia" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Visualitzador de documents Evince" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Carta" + +#~ msgid "Tabloid" +#~ msgstr "Tabloide" + +#~ msgid "Ledger" +#~ msgstr "Llibre de comptes" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "DeclaraciĆ³" + +#~ msgid "Executive" +#~ msgstr "Executiu" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Foli" + +#~ msgid "Quarto" +#~ msgstr "En quart" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "No s'ha pogut obrir el fitxer Ā«%sĀ»." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "No s'ha pogut carregar el document Ā«%sĀ». No s'ha trobat l'intĆØrpret " +#~ "Ghostscript en el camĆ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "PostScript encapsulat" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "L'intĆØrpret ha fallat." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Tipus MIME no gestionat: Ā«%sĀ»" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "La generaciĆ³ de PDF no estĆ implementada" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "Esteu intentant imprimir a una impressora amb el controlador Ā«%sĀ». Aquest " +#~ "programa requereix un controlador d'impressiĆ³ PostScript." + +#~ msgid "Pages" +#~ msgstr "PĆ gines" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "URI invĆ lid: Ā«%sĀ»" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "No es sap gestionar l'URI: Ā«%sĀ»" + +#~ msgid "Images" +#~ msgstr "Imatges" + +#~ msgid "Open ā%sā" +#~ msgstr "Obre Ā«%sĀ»" + +#~ msgid "Empty" +#~ msgstr "Buit" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "No hi ha cap document carregat." + +#~ msgid "Broken pipe." +#~ msgstr "Conducte trencat." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "S'ha produĆÆt un error en descomprimir el fitxer Ā«%sĀ»:\n" + +#~ msgid "File is not readable." +#~ msgstr "El fitxer no Ć©s llegible." + +#~ msgid "Document loaded." +#~ msgstr "S'ha carregat el document." + +#~ msgid "_Previous" +#~ msgstr "_Anterior" + +#~ msgid "_Next" +#~ msgstr "_SegĆ¼ent" + +#~ msgid "Hide attachments bar" +#~ msgstr "Amaga la barra d'adjuncions" + +#~ msgid "Not found" +#~ msgstr "No s'ha trobat" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "La caracterĆstica de Ā«CercaĀ» no funcionarĆ en aquest document" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "NomĆ©s es pot cercar text en els documents PDF." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Mida per defecte de la barra lateral" + +#~ msgid "Show sidebar by default" +#~ msgstr "Mostra la barra lateral per defecte" + +#~ msgid "Show statusbar by default" +#~ msgstr "Mostra la barra d'estat per defecte" + +#~ msgid "Show toolbar by default" +#~ msgstr "Mostra la barra d'eines per defecte" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "La barra lateral Ć©s l'element lateral que contĆ© les llistes d'Ćndex i " +#~ "miniatures. La mida per defecte estableix l'amplada en pĆxels de la barra " +#~ "lateral basada en el lateral de la finestra. Qualsevol enter s'acceptarĆ . " +#~ "La barra lateral mai serĆ mĆ©s petita que la mida del text que necessita " +#~ "per mostrar les miniatures o els Ćndexs. Valors alts faran que la barra " +#~ "lateral agafi bona part de l'Ć rea per mostrar la pĆ gina relatiu a la mida " +#~ "de la finestra." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "La barra lateral Ć©s l'element lateral que contĆ© les llistes d'Ćndexs i " +#~ "miniatures. Admet dues opcions booleanes, cert fa que la barra lateral " +#~ "sigui visible per defecte, mentre que fals farĆ que per defecte no sigui " +#~ "visible." + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "La barra d'estat Ć©s la barra estĆ ndard de baix de tot que mostra " +#~ "informaciĆ³ addicional sobre els enllaƧos i altres accions. Admet dues " +#~ "opcions booleanes, cert fa que la barra d'estat sigui visible per " +#~ "defecte, mentre que fals farĆ que per defecte no sigui visible." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "La barra d'eines Ć©s la barra de dalt de tot que contĆ© els controls de " +#~ "navegaciĆ³ i d'ampliaciĆ³. Admet dues opcions boolenaes, cert fa que la " +#~ "barra d'eines sigui visible per defecte, mentre que fals farĆ que per " +#~ "defecte no sigui visible." + +#~ msgid "Unable to find glade file" +#~ msgstr "No s'ha trobat el fitxer glade" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "El fitxer glade, %s, no s'ha trobat. Comproveu que la instalĀ·laciĆ³ " +#~ "estigui completa." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Visualitzador de documents - Es necessita contrasenya" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Desa el document actual amb un nom nou" + +#~ msgid "View the properties of this document" +#~ msgstr "Mostra les propietats d'aquest document" + +#~ msgid "Close this window" +#~ msgstr "Tanca aquesta finestra" + +#~ msgid "Copy text from the document" +#~ msgstr "Copia el text del document" + +#~ msgid "Select the entire page" +#~ msgstr "Selecciona la pĆ gina sencera" + +#~ msgid "Customize the toolbar" +#~ msgstr "Personalitza la barra d'eines" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Gira el document cap a l'esquerra" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Gira el document cap a la dreta" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Mostra l'ajuda del visualitzador" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Mostra els crĆØdits dels creadors del visualitzador de documents" + +#~ msgid "Scroll one page forward" +#~ msgstr "VĆ©s una pĆ gina endevant" + +#~ msgid "Scroll one page backward" +#~ msgstr "VĆ©s una pĆ gina enrere" + +#~ msgid "Focus the page selector" +#~ msgstr "Enfoca el selector de pĆ gina" + +#~ msgid "Go ten pages backward" +#~ msgstr "VĆ©s deu pĆ gines enrere" + +#~ msgid "Go ten pages forward" +#~ msgstr "VĆ©s deu pĆ gines endevant" + +#~ msgid "_Statusbar" +#~ msgstr "Barra d'e_stat" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Mostra o amaga la barra d'estat" + +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgid "<span size=\"smaller\"> </span>" +#~ msgstr "<span size=\"smaller\"> </span>" + +#~ msgid "unexpected EOF\n" +#~ msgstr "EOF inesperat\n" + +#~ msgid "could not load font `%s'\n" +#~ msgstr "no s'ha pogut carregar la font '%s'\n" + +#~ msgid "could not reload `%s'\n" +#~ msgstr "no s'ha pogut recarregar '%s'\n" + +#~ msgid "%s: unsupported DVI format (version %u)\n" +#~ msgstr "%s: el format DVI no estĆ implementat (versiĆ³ %u)\n" + +#~ msgid "%s: File corrupted, or not a DVI file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer DVI\n" + +#~ msgid "%s: vf macro had errors\n" +#~ msgstr "%s: la macro vf contĆ© errors\n" + +#~ msgid "%s: stack not empty after vf macro\n" +#~ msgstr "%s: la pila no Ć©s buida desprĆ©s de la macro vf\n" + +#~ msgid "%s: could not reopen file (%s)\n" +#~ msgstr "%s: no es pot tornar a obrir el fitxer (%s)\n" + +#~ msgid "%s: page %d out of range\n" +#~ msgstr "%s: la pĆ gina %d estĆ fora del rang\n" + +#~ msgid "%s: bad offset at page %d\n" +#~ msgstr "%s: compensaciĆ³ incorrecta a la pĆ gina %d\n" + +#~ msgid "stack not empty at end of page\n" +#~ msgstr "la pila no Ć©s buida al final de la pĆ gina\n" + +#~ msgid "no default font set yet\n" +#~ msgstr "encara no s'ha establert cap tipus de lletra per defecte\n" + +#~ msgid "requested character %d does not exist in `%s'\n" +#~ msgstr "el carĆ cter demanat %d no existeix a '%s'\n" + +#~ msgid "enlarging stack\n" +#~ msgstr "s'estĆ engrandint la pila\n" + +#~ msgid "font %d is not defined\n" +#~ msgstr "el tipus de lletra %d no estĆ definit\n" + +#~ msgid "unexpected opcode %d\n" +#~ msgstr "no s'esperava el codi d'operaciĆ³ %d\n" + +#~ msgid "undefined opcode %d\n" +#~ msgstr "el codi d'operaciĆ³ %d no estĆ definit\n" + +#~ msgid "%s: no fonts defined\n" +#~ msgstr "%s: no hi ha cap tipus de lletra definit\n" + +#~ msgid "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" +#~ msgstr "" +#~ "%s: %d: [%s] la codificaciĆ³ solĀ·licitada '%s' no coincideix amb el vector " +#~ "'%s'\n" + +#~ msgid "%s: could not load fontmap\n" +#~ msgstr "%s: no s'ha pogut carregar el mapa del tipus de lletra\n" + +#~ msgid "%s: could not set as default encoding\n" +#~ msgstr "%s: no s'ha pogut posar com a codificaciĆ³ per defecte\n" + +#~ msgid "encoding vector `%s' is in use\n" +#~ msgstr "s'estĆ utilitzant el vector de codificaciĆ³ '%s'\n" + +#~ msgid "GF: invalid opcode %d in character %d\n" +#~ msgstr "GF: el codi d'operaciĆ³ %d no Ć©s vĆ lid en el carĆ cter %d\n" + +#~ msgid "(gf) Character %d: invalid opcode %d\n" +#~ msgstr "(gf) CarĆ cter %d: el codi d'operaciĆ³ %d no Ć©s vĆ lid\n" + +#~ msgid "(gf) character %d has an incorrect bounding box\n" +#~ msgstr "(gf) el carĆ cter %d tĆ© una caixa de limitaciĆ³ incorrecte\n" + +#~ msgid "%s: bad checksum (expected %u, found %u)\n" +#~ msgstr "%s: suma de verificaciĆ³ errĆ²nia (s'esperava %u, s'ha trobat %u)\n" + +#~ msgid "%s: File corrupted, or not a GF file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer GF\n" + +#~ msgid "more than 10 counters in page specification\n" +#~ msgstr "mĆ©s de 10 contadors en l'especificaciĆ³ de pĆ gina\n" + +#~ msgid "custom" +#~ msgstr "personalitzat" + +#~ msgid "Bad PK file: More bits than required\n" +#~ msgstr "Fiter PK erroni: mĆ©s bits dels requerits\n" + +#~ msgid "%s: checksum mismatch (expected %u, got %u)\n" +#~ msgstr "" +#~ "%s: la suma de comprovaciĆ³ no coincideix (s'esperava %u, s'ha obtingut %" +#~ "u)\n" + +#~ msgid "%s: unexpected preamble\n" +#~ msgstr "%s: no s'esperava el preĆ mbul\n" + +#~ msgid "%s: File corrupted, or not a PK file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer PK\n" + +#~ msgid "%s: malformed value for key `%s'\n" +#~ msgstr "%s: valor malformat per a la clau '%s'\n" + +#~ msgid "%s: unknown key `%s' ignored\n" +#~ msgstr "%s: s'ha ignorat la clau desconeguda '%s'\n" + +#~ msgid "%s: no argument for key `%s', using defaults\n" +#~ msgstr "" +#~ "%s: no hi ha argument per a la clau '%s', s'utilitzarĆ allĆ² per defecte\n" + +#~ msgid "%s: argument `%s' ignored for key `%s'\n" +#~ msgstr "%s: s'ha ignorat l'argument '%s' per a la clau '%s'\n" + +#~ msgid "%s: tried to pop top level layer\n" +#~ msgstr "%s: s'ha provat de desempilar la capa superior\n" + +#~ msgid "(t1) failed to reset device resolution\n" +#~ msgstr "(t1) error al reiniciar la resoluciĆ³ del dispositiu\n" + +#~ msgid "%s: could not encode font\n" +#~ msgstr "%s: no s'ha pogut codificar el tipus de lletra\n" + +#~ msgid "(t1) unsupported bitmap pad size %d\n" +#~ msgstr "(t1) la mida %d del coixĆ del mapa de bits no estĆ implementada\n" + +#~ msgid "%s: Checksum mismatch (got %u, expected %u)\n" +#~ msgstr "" +#~ "%s: La suma de comprovaciĆ³ no coincideix (s'ha obtingut %u, s'esperava %" +#~ "u)\n" + +#~ msgid "%s: Error reading AFM data\n" +#~ msgstr "%s: S'ha produĆÆt un error en llegir dades AFM\n" + +#~ msgid "Warning: TFM file `%s' has suspicious size\n" +#~ msgstr "AvĆs: el fitxer TFM '%s' tĆ© una mida sospitosa\n" + +#~ msgid "%s: font coding scheme truncated to 40 bytes\n" +#~ msgstr "" +#~ "%s: s'ha truncat l'esquema de codificaciĆ³ del tipus de lletra a 40 bytes\n" + +#~ msgid "%s: File corrupted, or not a TFM file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer TFM\n" + +#~ msgid "(tt) %s: no acceptable map found, using #0\n" +#~ msgstr "(tt) %s: el mapa trobat no Ć©s acceptable, s'utilitza #0\n" + +#~ msgid "(tt) %s: could not set resolution: %s\n" +#~ msgstr "(tt) %s: no s'ha pogut establir la resoluciĆ³: %s\n" + +#~ msgid "(tt) %s: could not set point size: %s\n" +#~ msgstr "(tt) %s: no s'ha pogut establir la mida del punter: %s\n" + +#~ msgid "(tt) %s: could not load PS name table\n" +#~ msgstr "(tt) %s: no s'ha pogut carregar el nom de la taula PS\n" + +#~ msgid "%s: no encoding vector found, expect bad output\n" +#~ msgstr "" +#~ "%s: no s'ha trobat vector de codificaciĆ³, excepte una sortida errĆ²nia\n" + +#~ msgid "Crashing" +#~ msgstr "Fallant" + +#~ msgid "%s: Warning: " +#~ msgstr "%s: AvĆs: " + +#~ msgid "%s: Fatal: " +#~ msgstr "%s: Fatal: " + +#~ msgid "Fatal" +#~ msgstr "Fatal" + +# FIXME +#~ msgid "out of memory allocating %u bytes\n" +#~ msgstr "fora de memĆ²ria ubicant %u bytes\n" + +#~ msgid "attempted to reallocate with zero size\n" +#~ msgstr "intentat reassignar amb mida zero\n" + +#~ msgid "failed to reallocate %u bytes\n" +#~ msgstr "s'ha produĆÆt un error en reubicar %u bytes\n" + +#~ msgid "failed to allocate %ux%u bytes\n" +#~ msgstr "no s'ha pogut ubicar %ux%u bytes\n" + +#~ msgid "attempted to free NULL pointer\n" +#~ msgstr "s'ha intentat alliberar un punter NULL\n" + +#~ msgid "%s: Checksum mismatch (expected %u, got %u)\n" +#~ msgstr "" +#~ "%s: la suma de verificaciĆ³ no coincideix (s'esperava %u, s'ha obtingut %" +#~ "u)\n" + +#~ msgid "(vf) %s: could not load font `%s'\n" +#~ msgstr "(vf) %s: no s'ha pogut carregar el tipus de lletra '%s'\n" + +#~ msgid "(vf) %s: character %d redefined\n" +#~ msgstr "(vf) %s: el carĆ cter %d s'ha redefinit\n" + +#~ msgid "(vf) %s: no postamble\n" +#~ msgstr "(vf) %s: no hi ha postĆ mbul\n" + +#~ msgid "%s: File corrupted, or not a VF file.\n" +#~ msgstr "%s: El fitxer estĆ corruput, o no Ć©s un fitxer VF.\n" + +#~ msgid "Error while scanning file %s\n" +#~ msgstr "S'ha produĆÆt un error en analitzar el fitxer %s\n" + +#~ msgid "The file is not a PostScript document." +#~ msgstr "El fitxer no Ć©s un document PostScript." + +#~ msgid "Many..." +#~ msgstr "Molts..." + +#~ msgid "Not so many..." +#~ msgstr "No tants..." + +#~ msgid "Reset the zoom level to the default value" +#~ msgstr "Reinicia el zoom al valor per defecte" + +#~ msgid "Selection Caret" +#~ msgstr "Cursor de selecciĆ³" + +#~ msgid "Single" +#~ msgstr "Una a una" + +#~ msgid "Show the document one page at a time" +#~ msgstr "Mostra el document pĆ gina a pĆ gina" + +#~ msgid "Multi" +#~ msgstr "Totes" + +#~ msgid "Show the full document at once" +#~ msgstr "Mostra tot el document alhora" + +#~ msgid "Show sidebar by default." +#~ msgstr "Per defecte mostra la barra lateral." + +#~ msgid "Show statusbar by default." +#~ msgstr "Per defecte mostra la barra d'estat." + +#~ msgid "Show toolbar by default." +#~ msgstr "Per defecte mostra la barra d'eines." + +#~ msgid "The default sidebar size." +#~ msgstr "La mida per defecte de la barra lateral." + +#~ msgid "Error while converting pdf file %s:\n" +#~ msgstr "S'ha produĆÆt un error en convertir el pdf %s:\n" + +#~ msgid "Exit Fullscreen" +#~ msgstr "Surt de pantalla completa" + +#~ msgid "Open a file" +#~ msgstr "Obre un fitxer" + +#~ msgid "_Close" +#~ msgstr "_Tanca" diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 00000000..25a86eb2 --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,2211 @@ +# Catalan translation of evince. +# Copyright Ā© 2005, 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Gil Forcada <gilforcada@guifi.net>, 2005, 2006, 2007, 2008, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-04-22 00:11+0200\n" +"PO-Revision-Date: 2010-04-01 21:46+0200\n" +"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n" +"Language-Team: Catalan <tradmate@softcatala.org>\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" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"S'ha produĆÆt un error en executar l'orde Ā«%sĀ» per poder descomprimir el " +"cĆ²mic: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "No s'ha pogut descomprimir el cĆ²mic amb l'orde Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "L'orde Ā«%sĀ» no ha finalitzat correctament." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "El tipus MIME no Ć©s d'un cĆ²mic: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"No es pot trobar una orde adequada per descomprimir este tipus de cĆ²mic" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipus MIME desconegut" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "El fitxer estĆ malmĆ©s" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "No hi ha cap fitxer a l'arxiu" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "No s'han trobat imatges a l'arxiu %s" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "S'ha produĆÆt un error en suprimir Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Error %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "CĆ²mics" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "El document DjVu tĆ© un format incorrecte" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"El document Ć©s format per diversos fitxers, un o mĆ©s dels quals sĆ³n " +"inaccessibles." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documents DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "El document DVI tĆ© un format incorrecte" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documents DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Este treball Ć©s de domini pĆŗblic" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "SĆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Tipus 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Tipus 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Tipus 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Tipus 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Tipus 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Tipus de lletra desconegut" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Sense nom" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "Subconjunt incrustat" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "Incrustat" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "No incrustat" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documents PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Document invĆ lid" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapositives de l'Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Cap error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "No hi ha prou memĆ²ria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "No s'ha pogut trobar la signatura ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Fitxer ZIP no vĆ lid" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Encara no es poden fer servir arxius ZIP amb mĆŗltiples fitxers" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "No s'ha pogut obrir el fitxer" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "No s'han pogut llegir les dades del fitxer" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "No s'ha pogut trobar el fitxer a l'arxiu ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Error desconegut" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "No s'ha pogut carregar el document Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "No s'ha pogut alƧar el document Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documents PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "No s'ha pogut alƧar l'adjunciĆ³ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "No s'ha pogut obrir l'adjunciĆ³ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "No s'ha pogut obrir l'adjunciĆ³ Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Encara no es pot gestionar el tipus de fitxer %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Tots els documents" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Tots els fitxers" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "No s'ha pogut crear el fitxer temporal: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "No s'ha pogut crear el directori temporal: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El fitxer no Ć©s un fitxer .desktop vĆ lid" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Es desconeix la versiĆ³ Ā«%sĀ» del fitxer d'escriptori" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "S'estĆ iniciant %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicaciĆ³ no accepta documents des de la lĆnia d'ordes" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpciĆ³ d'execuciĆ³ desconeguda: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No es pot passar els URI del document a una entrada d'escriptori del tipus " +"Ā«Type=LinkĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "No Ć©s un element executable" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Inhabilita la connexiĆ³ al gestor de sessions" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especifica el fitxer que contĆ© la configuraciĆ³ alƧada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FITXER" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especifica l'identificador de gestiĆ³ de sessiĆ³" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Identificador" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opcions de gestiĆ³ de la sessiĆ³:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostra les opcions de gestiĆ³ de la sessiĆ³" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostra Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_Mou a la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "Mou l'element seleccionat a la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "Sup_rimeix de la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Suprimeix l'element seleccionat de la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "Sup_rimeix la barra d'eines" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Suprimeix la barra d'eines seleccionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Separador" + +# FIXME +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "S'estĆ executant en mode de presentaciĆ³" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5352 +msgid "Best Fit" +msgstr "Millor ajust" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ajusta a l'amplada de la pĆ gina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4208 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "Visualitzador de documents" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visualitzeu documents multi-pĆ gina" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "No faces cas de les restriccions del document" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"No faces cas de les restriccions del document, com les de cĆ²pia o " +"d'impressiĆ³." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Suprimeix el fitxer temporal" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Imprimeix el fitxer de configuraciĆ³" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "Visualitzador de documents del MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3008 +msgid "Failed to print document" +msgstr "No s'ha pogut imprimir el document" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "No s'ha pogut trobar la impressora Ā«%sĀ»" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5101 +msgid "_Previous Page" +msgstr "PĆ gina _anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5102 +msgid "Go to the previous page" +msgstr "VĆ©s a la pĆ gina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5104 +msgid "_Next Page" +msgstr "PĆ gina _segĆ¼ent" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5105 +msgid "Go to the next page" +msgstr "VĆ©s a la pĆ gina segĆ¼ent" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5088 +msgid "Enlarge the document" +msgstr "Amplia el document" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5091 +msgid "Shrink the document" +msgstr "Encongeix el document" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Imprimeix" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5059 +msgid "Print this document" +msgstr "Imprimeix el document" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5203 +msgid "_Best Fit" +msgstr "_Millor ajust" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5204 +msgid "Make the current document fill the window" +msgstr "Fes que el document Ć²mpliga la finestra" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5206 +msgid "Fit Page _Width" +msgstr "Aj_usta a l'amplada de la pĆ gina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5207 +msgid "Make the current document fill the window width" +msgstr "Fes que el document encaixi a l'amplada de la finestra" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5274 +msgid "Page" +msgstr "PĆ gina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5275 +msgid "Select Page" +msgstr "Selecciona la pĆ gina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtol:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "UbicaciĆ³:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Assumpte:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Paraules clau:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Productor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creat:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificat:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Nombre de pĆ gines:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimitzat:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Seguretat:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Mida del paper:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Cap" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f polzades" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, vertical (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, apaĆÆsat (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "S'estĆ preparant per imprimirā¦" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "S'estĆ acabantā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "S'estĆ imprimint la pĆ gina %d de %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "No es pot imprimir en esta impressora." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "La selecciĆ³ de pĆ gines no Ć©s vĆ lida" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "AvĆs" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "No hi ha cap pĆ gina en el rang d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "Escalat de la pĆ gina:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Redueix a l'Ć rea d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Ajusta a l'Ć rea d'impressiĆ³" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escala les pĆ gines del document per ajustar-les a la pĆ gina d'impressiĆ³ " +"seleccionada. Seleccioneu una de les opcions segĆ¼ents:\n" +"\n" +"ā¢ Ā«CapĀ»: No es fa cap escalat.\n" +"\n" +"ā¢ Ā«Redueix a l'Ć rea d'impressiĆ³Ā»: Es redueixen les pĆ gines mĆ©s grans que " +"l'Ć rea d'impressiĆ³ per ajustar-se a l'Ć rea de la pĆ gina d'impressiĆ³.\n" +"\n" +"ā¢ Ā«Ajusta a l'Ć rea d'impressiĆ³Ā»: S'amplien o es redueixen segons convingui " +"per ajustar-se a l'Ć rea de la pĆ gina d'impressiĆ³.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "Gira automĆ ticament i centra" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Gira l'orientaciĆ³ de la pĆ gina d'impressiĆ³ de cada pĆ gina perquĆØ coincidisca " +"amb cada pĆ gina del document. Es centraran les pĆ gines respecte la pĆ gina " +"d'impressiĆ³." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "Seleccioneu la mida de la pĆ gina amb la mida de la pĆ gina del document" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Quan s'habiliti cada pĆ gina s'imprimirĆ amb la mateixa mida de paper que la " +"pĆ gina del document." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "GestiĆ³ de la pĆ gina" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "No s'ha pogut imprimir la pĆ gina %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "DesplaƧa cap amunt" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "DesplaƧa cap avall" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "DesplaƧa la visualitzaciĆ³ cap amunt" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "DesplaƧa la visualitzaciĆ³ cap avall" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "VisualitzaciĆ³ del document" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "Salta a la pĆ gina:" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "Final de la presentaciĆ³. Feu clic per eixir." + +#: ../libview/ev-view.c:1727 +msgid "Go to first page" +msgstr "VĆ©s a la primera pĆ gina" + +#: ../libview/ev-view.c:1729 +msgid "Go to previous page" +msgstr "VĆ©s a la pĆ gina anterior" + +#: ../libview/ev-view.c:1731 +msgid "Go to next page" +msgstr "VĆ©s a la pĆ gina segĆ¼ent" + +#: ../libview/ev-view.c:1733 +msgid "Go to last page" +msgstr "VĆ©s a l'Ćŗltima pĆ gina" + +#: ../libview/ev-view.c:1735 +msgid "Go to page" +msgstr "VĆ©s a la pĆ gina" + +#: ../libview/ev-view.c:1737 +msgid "Find" +msgstr "Cerca" + +#: ../libview/ev-view.c:1765 +#, c-format +msgid "Go to page %s" +msgstr "VĆ©s a la pĆ gina %s" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "VĆ©s a %s en el fitxer Ā«%sĀ»" + +#: ../libview/ev-view.c:1774 +#, c-format +msgid "Go to file ā%sā" +msgstr "VĆ©s al fitxer Ā«%sĀ»" + +#: ../libview/ev-view.c:1782 +#, c-format +msgid "Launch %s" +msgstr "Engega %s" + +#: ../libview/ev-view.c:3926 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "S'estĆ carregantā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Cerca:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5076 +msgid "Find Pre_vious" +msgstr "Cerca l'_anterior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Cerca l'anterior ocurrĆØncia de la cadena de cerca" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5074 +msgid "Find Ne_xt" +msgstr "Cerca el _segĆ¼ent" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Cerca la segĆ¼ent ocurrĆØncia de cadena de cerca" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Distingeix entre majĆŗscules i minĆŗscules" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Commuta a una cerca que distingisca entre majĆŗscules i minĆŗscules" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Contrasenya per al document %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "S'estĆ convertint %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "S'han convertit %d de %d documents" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "S'estan convertint les metadades" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"L'Evince ha canviat el format de les metadades que utilitzava i s'han de " +"migrar. Si cancelĀ·leu la migraciĆ³ el magatzem de metadades no funcionarĆ ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Obri un document utilitzat recentment" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Este document estĆ protegit i nomĆ©s es pot llegir si s'introdueix la " +"contrasenya correcta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Desbloca el document" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "IntroduĆÆu la contrasenya" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Cal una contrasenya" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"El document Ā«%sĀ» estĆ protegit i cal una contrasenya per poder-lo obrir." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Contrasenya:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Oblida la contrasenya _immediatament" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "Recorda la contrasenya durant esta _sessiĆ³" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "_Recorda-la per sempre" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Propietats" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Tipus de lletra" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "LlicĆØncia del document" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Tipus de lletra" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "S'estĆ recollint informaciĆ³ del tipus de lletraā¦ %3d%%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "Termes d'Ćŗs" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "LlicĆØncia del text" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "MĆ©s informaciĆ³" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Adjuncions" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Capes" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimeixā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndex" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "Miniatures" + +#: ../shell/ev-window.c:840 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ gina %s ā %s" + +#: ../shell/ev-window.c:842 +#, c-format +msgid "Page %s" +msgstr "PĆ gina %s" + +#: ../shell/ev-window.c:1288 +msgid "The document contains no pages" +msgstr "El document no contĆ© cap pĆ gina" + +#: ../shell/ev-window.c:1291 +msgid "The document contains only empty pages" +msgstr "El document nomĆ©s contĆ© pĆ gines buides" + +#: ../shell/ev-window.c:1485 ../shell/ev-window.c:1651 +msgid "Unable to open document" +msgstr "No es pot obrir el document" + +#: ../shell/ev-window.c:1622 +#, c-format +msgid "Loading document from ā%sā" +msgstr "S'estĆ carregant el document des de Ā«%sĀ»" + +#: ../shell/ev-window.c:1764 ../shell/ev-window.c:2041 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "S'estĆ baixant el document (%d%%)" + +#: ../shell/ev-window.c:1797 +msgid "Failed to load remote file." +msgstr "No s'ha pogut carregar el fitxer remot." + +#: ../shell/ev-window.c:1985 +#, c-format +msgid "Reloading document from %s" +msgstr "S'estĆ tornant a carregar el document des de %s" + +#: ../shell/ev-window.c:2017 +msgid "Failed to reload document." +msgstr "No s'ha pogut tornar a carregar el document." + +#: ../shell/ev-window.c:2172 +msgid "Open Document" +msgstr "Obri un document" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving document to %s" +msgstr "S'estĆ desant el document a %s" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving attachment to %s" +msgstr "S'estĆ desant l'adjunciĆ³ a %s" + +#: ../shell/ev-window.c:2442 +#, c-format +msgid "Saving image to %s" +msgstr "S'estĆ desant la imatge %s" + +#: ../shell/ev-window.c:2486 ../shell/ev-window.c:2586 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "No s'ha pogut alƧar el fitxer com a Ā«%sĀ»." + +#: ../shell/ev-window.c:2517 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "S'estĆ pujant el document (%d%%)" + +#: ../shell/ev-window.c:2521 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "S'estĆ pujant l'adjunciĆ³ (%d%%)" + +#: ../shell/ev-window.c:2525 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "S'estĆ pujant la imatge (%d%%)" + +#: ../shell/ev-window.c:2647 +msgid "Save a Copy" +msgstr "AlƧa'n una cĆ²pia" + +#: ../shell/ev-window.c:2952 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d tasca pendent a la cua" +msgstr[1] "%d tasques pendents a la cua" + +#: ../shell/ev-window.c:3065 +#, c-format +msgid "Printing job ā%sā" +msgstr "S'estĆ imprimint la tasca Ā«%sĀ»" + +#: ../shell/ev-window.c:3277 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Voleu esperar per tancar fins que s'acabi la tasca d'impressiĆ³ Ā«%sĀ»?" + +#: ../shell/ev-window.c:3280 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Hi ha %d tasques d'impressiĆ³ actives. Voleu esperar per tancar fins que " +"s'acabi d'imprimir?" + +#: ../shell/ev-window.c:3292 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Si tanqueu la finestra, no s'imprimiran les tasques pendents." + +#: ../shell/ev-window.c:3296 +msgid "Cancel _print and Close" +msgstr "CancelĀ·la la im_pressiĆ³ i tanca" + +#: ../shell/ev-window.c:3300 +msgid "Close _after Printing" +msgstr "Tanca desprĆ©s d'im_primir" + +#: ../shell/ev-window.c:3861 +msgid "Toolbar Editor" +msgstr "Editor de la barra d'eines" + +#: ../shell/ev-window.c:3993 +msgid "There was an error displaying help" +msgstr "S'ha produĆÆt un error en mostrar l'ajuda" + +#: ../shell/ev-window.c:4204 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualitzador de documents.\n" +"S'utilitza el %s (%s)" + +#: ../shell/ev-window.c:4235 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"L'Evince Ć©s programari lliure; podeu redistribuir-lo i/o modificar-lo sota " +"els termes de la LlicĆØncia PĆŗblica General GNU tal com ha estat publicada " +"per la Free Software Foundation; ja siga la versiĆ³ 2 de la LlicĆØncia o bĆ© " +"(si ho preferiu) qualsevol altra versiĆ³ posterior.\n" + +#: ../shell/ev-window.c:4239 +msgid "" +"Evince 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.\n" +msgstr "" +"L'Evince es distribueix amb l'expectativa que serĆ Ćŗtil, perĆ² SENSE CAP " +"GARANTIA; ni tan sols la garantia implĆcita de COMERCIABILITAT o ADEQUACIĆ " +"PER UN PROPĆSIT PARTICULAR. Vegeu la LlicĆØncia PĆŗblica General GNU per " +"obtindre'n mĆ©s detalls.\n" + +#: ../shell/ev-window.c:4243 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"HaurĆeu d'haver rebut una cĆ²pia de la LlicĆØncia PĆŗblica General GNU " +"juntament amb l'Evince; en cas contrari, escriviu a la Free Software " +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4268 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4271 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Els autors de l'Evince" + +#: ../shell/ev-window.c:4277 +msgid "translator-credits" +msgstr "Gil Forcada <gilforcada@guifi.net>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4549 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "N'hi ha %d en esta pĆ gina" +msgstr[1] "N'hi ha %d en esta pĆ gina" + +#: ../shell/ev-window.c:4557 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Manca el %3d%% per cercar" + +#: ../shell/ev-window.c:5039 +msgid "_File" +msgstr "_Fitxer" + +#: ../shell/ev-window.c:5040 +msgid "_Edit" +msgstr "_Edita" + +#: ../shell/ev-window.c:5041 +msgid "_View" +msgstr "_Visualitza" + +#: ../shell/ev-window.c:5042 +msgid "_Go" +msgstr "VĆ©_s" + +#: ../shell/ev-window.c:5043 +msgid "_Help" +msgstr "A_juda" + +#. File menu +#: ../shell/ev-window.c:5046 ../shell/ev-window.c:5314 +msgid "_Openā¦" +msgstr "_Obriā¦" + +#: ../shell/ev-window.c:5047 ../shell/ev-window.c:5315 +msgid "Open an existing document" +msgstr "Obri un document existent" + +#: ../shell/ev-window.c:5049 +msgid "Op_en a Copy" +msgstr "Obri'n una _cĆ²pia" + +#: ../shell/ev-window.c:5050 +msgid "Open a copy of the current document in a new window" +msgstr "Obri una cĆ²pia del document actual en una finestra nova" + +#: ../shell/ev-window.c:5052 +msgid "_Save a Copyā¦" +msgstr "AlƧa'n una cĆ²piaā¦" + +#: ../shell/ev-window.c:5053 +msgid "Save a copy of the current document" +msgstr "AlƧa una cĆ²pia del document actual" + +#: ../shell/ev-window.c:5055 +msgid "Page Set_upā¦" +msgstr "_ConfiguraciĆ³ de la pĆ ginaā¦" + +#: ../shell/ev-window.c:5056 +msgid "Set up the page settings for printing" +msgstr "Configureu els parĆ metres de pĆ gina per a la impressiĆ³" + +#: ../shell/ev-window.c:5058 +msgid "_Printā¦" +msgstr "_Imprimeixā¦" + +#: ../shell/ev-window.c:5061 +msgid "P_roperties" +msgstr "_Propietats" + +#: ../shell/ev-window.c:5069 +msgid "Select _All" +msgstr "Selecciona-ho _tot" + +#: ../shell/ev-window.c:5071 +msgid "_Findā¦" +msgstr "_Cercaā¦" + +#: ../shell/ev-window.c:5072 +msgid "Find a word or phrase in the document" +msgstr "Cerca una paraula o frase al document" + +#: ../shell/ev-window.c:5078 +msgid "T_oolbar" +msgstr "_Barra d'eines" + +#: ../shell/ev-window.c:5080 +msgid "Rotate _Left" +msgstr "Gira a l'_esquerra" + +#: ../shell/ev-window.c:5082 +msgid "Rotate _Right" +msgstr "Gira a la _dreta" + +#: ../shell/ev-window.c:5093 +msgid "_Reload" +msgstr "Ac_tualitza" + +#: ../shell/ev-window.c:5094 +msgid "Reload the document" +msgstr "Actualitza el document" + +#: ../shell/ev-window.c:5097 +msgid "Auto_scroll" +msgstr "DesplaƧa _automĆ ticament" + +#: ../shell/ev-window.c:5107 +msgid "_First Page" +msgstr "_Primera pĆ gina" + +#: ../shell/ev-window.c:5108 +msgid "Go to the first page" +msgstr "VĆ©s a la primera pĆ gina" + +#: ../shell/ev-window.c:5110 +msgid "_Last Page" +msgstr "Ćl_tima pĆ gina" + +#: ../shell/ev-window.c:5111 +msgid "Go to the last page" +msgstr "VĆ©s a l'Ćŗltima pĆ gina" + +#. Help menu +#: ../shell/ev-window.c:5115 +msgid "_Contents" +msgstr "_Continguts" + +#: ../shell/ev-window.c:5118 +msgid "_About" +msgstr "_Quant a" + +#. Toolbar-only +#: ../shell/ev-window.c:5122 +msgid "Leave Fullscreen" +msgstr "Ix de la pantalla completa" + +#: ../shell/ev-window.c:5123 +msgid "Leave fullscreen mode" +msgstr "Ix de la pantalla completa" + +#: ../shell/ev-window.c:5125 +msgid "Start Presentation" +msgstr "Inicia la presentaciĆ³" + +#: ../shell/ev-window.c:5126 +msgid "Start a presentation" +msgstr "Inicia una presentaciĆ³" + +#. View Menu +#: ../shell/ev-window.c:5185 +msgid "_Toolbar" +msgstr "Barra d'_eines" + +#: ../shell/ev-window.c:5186 +msgid "Show or hide the toolbar" +msgstr "Mostra o amaga la barra d'eines" + +#: ../shell/ev-window.c:5188 +msgid "Side _Pane" +msgstr "Barra _lateral" + +#: ../shell/ev-window.c:5189 +msgid "Show or hide the side pane" +msgstr "Mostra o amaga la barra lateral" + +#: ../shell/ev-window.c:5191 +msgid "_Continuous" +msgstr "C_ontinu" + +#: ../shell/ev-window.c:5192 +msgid "Show the entire document" +msgstr "Mostra el document sencer" + +#: ../shell/ev-window.c:5194 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5195 +msgid "Show two pages at once" +msgstr "Mostra dues pĆ gines alhora" + +#: ../shell/ev-window.c:5197 +msgid "_Fullscreen" +msgstr "Pantalla _completa" + +#: ../shell/ev-window.c:5198 +msgid "Expand the window to fill the screen" +msgstr "Expandeix la finestra fins a omplir la pantalla" + +#: ../shell/ev-window.c:5200 +msgid "Pre_sentation" +msgstr "_PresentaciĆ³" + +# FIXME +#: ../shell/ev-window.c:5201 +msgid "Run document as a presentation" +msgstr "Mostra el document com a una presentaciĆ³" + +#: ../shell/ev-window.c:5209 +msgid "_Inverted Colors" +msgstr "_Inverteix els colors" + +#: ../shell/ev-window.c:5210 +msgid "Show page contents with the colors inverted" +msgstr "Mostra el contingut de la pĆ gina amb els colors invertits" + +#. Links +#: ../shell/ev-window.c:5218 +msgid "_Open Link" +msgstr "_Obri l'enllaƧ" + +#: ../shell/ev-window.c:5220 +msgid "_Go To" +msgstr "VĆ©_s a" + +#: ../shell/ev-window.c:5222 +msgid "Open in New _Window" +msgstr "Obri en una _finestra nova" + +#: ../shell/ev-window.c:5224 +msgid "_Copy Link Address" +msgstr "_Copia l'adreƧa de l'enllaƧ" + +#: ../shell/ev-window.c:5226 +msgid "_Save Image Asā¦" +msgstr "_Anomena i alƧa la imatgeā¦" + +#: ../shell/ev-window.c:5228 +msgid "Copy _Image" +msgstr "Copia la _imatge" + +#: ../shell/ev-window.c:5233 +msgid "_Open Attachment" +msgstr "_Obri l'adjunciĆ³" + +#: ../shell/ev-window.c:5235 +msgid "_Save Attachment Asā¦" +msgstr "Al_Ƨa l'adjunciĆ³ com aā¦" + +#: ../shell/ev-window.c:5288 +msgid "Zoom" +msgstr "AmpliaciĆ³" + +#: ../shell/ev-window.c:5290 +msgid "Adjust the zoom level" +msgstr "Ajusta el nivell de l'ampliaciĆ³" + +#: ../shell/ev-window.c:5300 +msgid "Navigation" +msgstr "NavegaciĆ³" + +#: ../shell/ev-window.c:5302 +msgid "Back" +msgstr "Arrere" + +# "Salta't les pĆ gines visitades"? (josep) +#. translators: this is the history action +#: ../shell/ev-window.c:5305 +msgid "Move across visited pages" +msgstr "Creua les pĆ gines visitades" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5335 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5340 +msgid "Next" +msgstr "SegĆ¼ent" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5344 +msgid "Zoom In" +msgstr "Apropa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5348 +msgid "Zoom Out" +msgstr "Allunya" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5356 +msgid "Fit Width" +msgstr "Encaixa a l'amplada" + +#: ../shell/ev-window.c:5517 ../shell/ev-window.c:5534 +msgid "Unable to launch external application." +msgstr "No s'ha pogut executar l'aplicaciĆ³ externa." + +#: ../shell/ev-window.c:5591 +msgid "Unable to open external link" +msgstr "No s'ha pogut obrir l'enllaƧ extern" + +#: ../shell/ev-window.c:5758 +msgid "Couldn't find appropriate format to save image" +msgstr "No s'ha trobat cap format adequat per alƧar la imatge" + +#: ../shell/ev-window.c:5800 +msgid "The image could not be saved." +msgstr "No s'ha pogut alƧar la imatge." + +#: ../shell/ev-window.c:5832 +msgid "Save Image" +msgstr "AlƧa la imatge" + +#: ../shell/ev-window.c:5899 +msgid "Unable to open attachment" +msgstr "No s'ha pogut obrir l'adjunciĆ³" + +#: ../shell/ev-window.c:5952 +msgid "The attachment could not be saved." +msgstr "No s'ha pogut alƧar l'adjunciĆ³." + +#: ../shell/ev-window.c:5997 +msgid "Save Attachment" +msgstr "AlƧa l'adjunciĆ³" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Necessita contrasenya" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "Per extensiĆ³" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "Visualitzador de documents del MATE" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "La pĆ gina del document a mostrar." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "PĆGINA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executa l'Evince en mode pantalla completa" + +# FIXME +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executa l'Evince en mode presentaciĆ³" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executa l'Evince com a previsualitzador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "La paraula o frase que es vol cercar en el document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CADENA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FITXERā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opcions booleanes disponibles: Ā«trueĀ» (cert) habilita les miniatures i " +"Ā«falseĀ» (fals) inhabilita la creaciĆ³ de noves miniatures" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Habilita les miniatures per als documents PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Orde de miniatura per als documents PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Orde vĆ lida amb arguments addicionals per al miniaturitzador de documents " +"PDF. Per a mĆ©s informaciĆ³ vegeu la documentaciĆ³ del miniaturitzador del " +"Caja." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "El document DJVU tĆ© un format incorrecte" + +#~ msgid "Print..." +#~ msgstr "Imprimeix..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Desa'n una cĆ²pia..." + +#~ msgid "_Print..." +#~ msgstr "_Imprimeix..." + +#~ msgid "_Find..." +#~ msgstr "_Cerca..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "No s'ha pogut crear el fitxer Ā«%sĀ»: %s" + +#~ msgid "Search string" +#~ msgstr "Cerca una cadena" + +#~ msgid "The name of the string to be found" +#~ msgstr "El nom de la cadena a cercar" + +#~ msgid "Case sensitive" +#~ msgstr "Distingeix entre majĆŗscules i minĆŗscules" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "Cert per a una cerca que distingeixi majĆŗscules de minĆŗscules" + +#~ msgid "Highlight color" +#~ msgstr "Color del ressaltat" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Color del ressaltat per a totes les coincidĆØncies" + +#~ msgid "Current color" +#~ msgstr "Color actual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Color del ressaltat de la coincidĆØncia actual" + +#~ msgid "Recover previous documents?" +#~ msgstr "Voleu recuperar els documents que tenieu oberts?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Sembla que l'Ćŗltima vegada que es va executar l'Evince va finalitzar " +#~ "sobtadament. Tot i aixĆ, podeu recuperar els documents oberts." + +#~ msgid "_Don't Recover" +#~ msgstr "_No els recuperis" + +#~ msgid "_Recover" +#~ msgstr "_Recupera'ls" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaciĆ³ de documents" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "No s'ha pogut crear l'enllaƧ simbĆ²lic Ā«%sĀ»: " + +#~ msgid "Cannot open a copy." +#~ msgstr "No se n'ha pogut obrir una cĆ²pia." + +#~ msgid "Co_nnect" +#~ msgstr "Co_nnecta" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connecta _anĆ²nimament" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Connecta com a u_suari:" + +#~ msgid "_Username:" +#~ msgstr "Nom d'_usuari:" + +#~ msgid "_Domain:" +#~ msgstr "_Domini:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Oblida la contrasenya immediatament" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Recorda la contrasenya durant aquesta sessiĆ³" + +#~ msgid "_Remember forever" +#~ msgstr "_Recorda-la per sempre" + +#~ msgid "File not available" +#~ msgstr "El fitxer no estĆ disponible" + +#~ msgid "Remote files aren't supported" +#~ msgstr "La gestiĆ³ de fitxers remots no estĆ implementada" + +#~ msgid "Find Previous" +#~ msgstr "Cerca l'anterior" + +#~ msgid "Find Next" +#~ msgstr "Cerca la segĆ¼ent" + +#~ msgid "Password Entry" +#~ msgstr "Entrada de la contrasenya" + +#~ msgid "Remember password for this session" +#~ msgstr "Recorda la contrasenya durant aquesta sessiĆ³" + +#~ msgid "Save password in keyring" +#~ msgstr "Desa la contrasenya a l'anell de claus" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>TĆtol:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Incorrect password" +#~ msgstr "Contrasenya errĆ²nia" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Visualitzador de documents Evince" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Carta" + +#~ msgid "Tabloid" +#~ msgstr "Tabloide" + +#~ msgid "Ledger" +#~ msgstr "Llibre de comptes" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "DeclaraciĆ³" + +#~ msgid "Executive" +#~ msgstr "Executiu" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Foli" + +#~ msgid "Quarto" +#~ msgstr "En quart" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "No s'ha pogut obrir el fitxer Ā«%sĀ»." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "No s'ha pogut carregar el document Ā«%sĀ». No s'ha trobat l'intĆØrpret " +#~ "Ghostscript en el camĆ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "PostScript encapsulat" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "L'intĆØrpret ha fallat." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Tipus MIME no gestionat: Ā«%sĀ»" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "La generaciĆ³ de PDF no estĆ implementada" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "Esteu intentant imprimir a una impressora amb el controlador Ā«%sĀ». Aquest " +#~ "programa requereix un controlador d'impressiĆ³ PostScript." + +#~ msgid "Pages" +#~ msgstr "PĆ gines" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "URI invĆ lid: Ā«%sĀ»" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "No es sap gestionar l'URI: Ā«%sĀ»" + +#~ msgid "Images" +#~ msgstr "Imatges" + +#~ msgid "Open ā%sā" +#~ msgstr "Obre Ā«%sĀ»" + +#~ msgid "Empty" +#~ msgstr "Buit" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "No hi ha cap document carregat." + +#~ msgid "Broken pipe." +#~ msgstr "Conducte trencat." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "S'ha produĆÆt un error en descomprimir el fitxer Ā«%sĀ»:\n" + +#~ msgid "File is not readable." +#~ msgstr "El fitxer no Ć©s llegible." + +#~ msgid "Document loaded." +#~ msgstr "S'ha carregat el document." + +#~ msgid "_Previous" +#~ msgstr "_Anterior" + +#~ msgid "_Next" +#~ msgstr "_SegĆ¼ent" + +#~ msgid "Hide attachments bar" +#~ msgstr "Amaga la barra d'adjuncions" + +#~ msgid "Not found" +#~ msgstr "No s'ha trobat" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "La caracterĆstica de Ā«CercaĀ» no funcionarĆ en aquest document" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "NomĆ©s es pot cercar text en els documents PDF." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Mida per defecte de la barra lateral" + +#~ msgid "Show sidebar by default" +#~ msgstr "Mostra la barra lateral per defecte" + +#~ msgid "Show statusbar by default" +#~ msgstr "Mostra la barra d'estat per defecte" + +#~ msgid "Show toolbar by default" +#~ msgstr "Mostra la barra d'eines per defecte" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "La barra lateral Ć©s l'element lateral que contĆ© les llistes d'Ćndex i " +#~ "miniatures. La mida per defecte estableix l'amplada en pĆxels de la barra " +#~ "lateral basada en el lateral de la finestra. Qualsevol enter s'acceptarĆ . " +#~ "La barra lateral mai serĆ mĆ©s petita que la mida del text que necessita " +#~ "per mostrar les miniatures o els Ćndexs. Valors alts faran que la barra " +#~ "lateral agafi bona part de l'Ć rea per mostrar la pĆ gina relatiu a la mida " +#~ "de la finestra." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "La barra lateral Ć©s l'element lateral que contĆ© les llistes d'Ćndexs i " +#~ "miniatures. Admet dues opcions booleanes, cert fa que la barra lateral " +#~ "sigui visible per defecte, mentre que fals farĆ que per defecte no sigui " +#~ "visible." + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "La barra d'estat Ć©s la barra estĆ ndard de baix de tot que mostra " +#~ "informaciĆ³ addicional sobre els enllaƧos i altres accions. Admet dues " +#~ "opcions booleanes, cert fa que la barra d'estat sigui visible per " +#~ "defecte, mentre que fals farĆ que per defecte no sigui visible." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "La barra d'eines Ć©s la barra de dalt de tot que contĆ© els controls de " +#~ "navegaciĆ³ i d'ampliaciĆ³. Admet dues opcions boolenaes, cert fa que la " +#~ "barra d'eines sigui visible per defecte, mentre que fals farĆ que per " +#~ "defecte no sigui visible." + +#~ msgid "Unable to find glade file" +#~ msgstr "No s'ha trobat el fitxer glade" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "El fitxer glade, %s, no s'ha trobat. Comproveu que la instalĀ·laciĆ³ " +#~ "estigui completa." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Visualitzador de documents - Es necessita contrasenya" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Desa el document actual amb un nom nou" + +#~ msgid "View the properties of this document" +#~ msgstr "Mostra les propietats d'aquest document" + +#~ msgid "Close this window" +#~ msgstr "Tanca aquesta finestra" + +#~ msgid "Copy text from the document" +#~ msgstr "Copia el text del document" + +#~ msgid "Select the entire page" +#~ msgstr "Selecciona la pĆ gina sencera" + +#~ msgid "Customize the toolbar" +#~ msgstr "Personalitza la barra d'eines" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Gira el document cap a l'esquerra" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Gira el document cap a la dreta" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Mostra l'ajuda del visualitzador" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Mostra els crĆØdits dels creadors del visualitzador de documents" + +#~ msgid "Scroll one page forward" +#~ msgstr "VĆ©s una pĆ gina endevant" + +#~ msgid "Scroll one page backward" +#~ msgstr "VĆ©s una pĆ gina enrere" + +#~ msgid "Focus the page selector" +#~ msgstr "Enfoca el selector de pĆ gina" + +#~ msgid "Go ten pages backward" +#~ msgstr "VĆ©s deu pĆ gines enrere" + +#~ msgid "Go ten pages forward" +#~ msgstr "VĆ©s deu pĆ gines endevant" + +#~ msgid "_Statusbar" +#~ msgstr "Barra d'e_stat" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Mostra o amaga la barra d'estat" + +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgid "<span size=\"smaller\"> </span>" +#~ msgstr "<span size=\"smaller\"> </span>" + +#~ msgid "unexpected EOF\n" +#~ msgstr "EOF inesperat\n" + +#~ msgid "could not load font `%s'\n" +#~ msgstr "no s'ha pogut carregar la font '%s'\n" + +#~ msgid "could not reload `%s'\n" +#~ msgstr "no s'ha pogut recarregar '%s'\n" + +#~ msgid "%s: unsupported DVI format (version %u)\n" +#~ msgstr "%s: el format DVI no estĆ implementat (versiĆ³ %u)\n" + +#~ msgid "%s: File corrupted, or not a DVI file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer DVI\n" + +#~ msgid "%s: vf macro had errors\n" +#~ msgstr "%s: la macro vf contĆ© errors\n" + +#~ msgid "%s: stack not empty after vf macro\n" +#~ msgstr "%s: la pila no Ć©s buida desprĆ©s de la macro vf\n" + +#~ msgid "%s: could not reopen file (%s)\n" +#~ msgstr "%s: no es pot tornar a obrir el fitxer (%s)\n" + +#~ msgid "%s: page %d out of range\n" +#~ msgstr "%s: la pĆ gina %d estĆ fora del rang\n" + +#~ msgid "%s: bad offset at page %d\n" +#~ msgstr "%s: compensaciĆ³ incorrecta a la pĆ gina %d\n" + +#~ msgid "stack not empty at end of page\n" +#~ msgstr "la pila no Ć©s buida al final de la pĆ gina\n" + +#~ msgid "no default font set yet\n" +#~ msgstr "encara no s'ha establert cap tipus de lletra per defecte\n" + +#~ msgid "requested character %d does not exist in `%s'\n" +#~ msgstr "el carĆ cter demanat %d no existeix a '%s'\n" + +#~ msgid "enlarging stack\n" +#~ msgstr "s'estĆ engrandint la pila\n" + +#~ msgid "font %d is not defined\n" +#~ msgstr "el tipus de lletra %d no estĆ definit\n" + +#~ msgid "unexpected opcode %d\n" +#~ msgstr "no s'esperava el codi d'operaciĆ³ %d\n" + +#~ msgid "undefined opcode %d\n" +#~ msgstr "el codi d'operaciĆ³ %d no estĆ definit\n" + +#~ msgid "%s: no fonts defined\n" +#~ msgstr "%s: no hi ha cap tipus de lletra definit\n" + +#~ msgid "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" +#~ msgstr "" +#~ "%s: %d: [%s] la codificaciĆ³ solĀ·licitada '%s' no coincideix amb el vector " +#~ "'%s'\n" + +#~ msgid "%s: could not load fontmap\n" +#~ msgstr "%s: no s'ha pogut carregar el mapa del tipus de lletra\n" + +#~ msgid "%s: could not set as default encoding\n" +#~ msgstr "%s: no s'ha pogut posar com a codificaciĆ³ per defecte\n" + +#~ msgid "encoding vector `%s' is in use\n" +#~ msgstr "s'estĆ utilitzant el vector de codificaciĆ³ '%s'\n" + +#~ msgid "GF: invalid opcode %d in character %d\n" +#~ msgstr "GF: el codi d'operaciĆ³ %d no Ć©s vĆ lid en el carĆ cter %d\n" + +#~ msgid "(gf) Character %d: invalid opcode %d\n" +#~ msgstr "(gf) CarĆ cter %d: el codi d'operaciĆ³ %d no Ć©s vĆ lid\n" + +#~ msgid "(gf) character %d has an incorrect bounding box\n" +#~ msgstr "(gf) el carĆ cter %d tĆ© una caixa de limitaciĆ³ incorrecte\n" + +#~ msgid "%s: bad checksum (expected %u, found %u)\n" +#~ msgstr "%s: suma de verificaciĆ³ errĆ²nia (s'esperava %u, s'ha trobat %u)\n" + +#~ msgid "%s: File corrupted, or not a GF file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer GF\n" + +#~ msgid "more than 10 counters in page specification\n" +#~ msgstr "mĆ©s de 10 contadors en l'especificaciĆ³ de pĆ gina\n" + +#~ msgid "custom" +#~ msgstr "personalitzat" + +#~ msgid "Bad PK file: More bits than required\n" +#~ msgstr "Fiter PK erroni: mĆ©s bits dels requerits\n" + +#~ msgid "%s: checksum mismatch (expected %u, got %u)\n" +#~ msgstr "" +#~ "%s: la suma de comprovaciĆ³ no coincideix (s'esperava %u, s'ha obtingut %" +#~ "u)\n" + +#~ msgid "%s: unexpected preamble\n" +#~ msgstr "%s: no s'esperava el preĆ mbul\n" + +#~ msgid "%s: File corrupted, or not a PK file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer PK\n" + +#~ msgid "%s: malformed value for key `%s'\n" +#~ msgstr "%s: valor malformat per a la clau '%s'\n" + +#~ msgid "%s: unknown key `%s' ignored\n" +#~ msgstr "%s: s'ha ignorat la clau desconeguda '%s'\n" + +#~ msgid "%s: no argument for key `%s', using defaults\n" +#~ msgstr "" +#~ "%s: no hi ha argument per a la clau '%s', s'utilitzarĆ allĆ² per defecte\n" + +#~ msgid "%s: argument `%s' ignored for key `%s'\n" +#~ msgstr "%s: s'ha ignorat l'argument '%s' per a la clau '%s'\n" + +#~ msgid "%s: tried to pop top level layer\n" +#~ msgstr "%s: s'ha provat de desempilar la capa superior\n" + +#~ msgid "(t1) failed to reset device resolution\n" +#~ msgstr "(t1) error al reiniciar la resoluciĆ³ del dispositiu\n" + +#~ msgid "%s: could not encode font\n" +#~ msgstr "%s: no s'ha pogut codificar el tipus de lletra\n" + +#~ msgid "(t1) unsupported bitmap pad size %d\n" +#~ msgstr "(t1) la mida %d del coixĆ del mapa de bits no estĆ implementada\n" + +#~ msgid "%s: Checksum mismatch (got %u, expected %u)\n" +#~ msgstr "" +#~ "%s: La suma de comprovaciĆ³ no coincideix (s'ha obtingut %u, s'esperava %" +#~ "u)\n" + +#~ msgid "%s: Error reading AFM data\n" +#~ msgstr "%s: S'ha produĆÆt un error en llegir dades AFM\n" + +#~ msgid "Warning: TFM file `%s' has suspicious size\n" +#~ msgstr "AvĆs: el fitxer TFM '%s' tĆ© una mida sospitosa\n" + +#~ msgid "%s: font coding scheme truncated to 40 bytes\n" +#~ msgstr "" +#~ "%s: s'ha truncat l'esquema de codificaciĆ³ del tipus de lletra a 40 bytes\n" + +#~ msgid "%s: File corrupted, or not a TFM file\n" +#~ msgstr "%s: El fitxer estĆ malmĆØs, o no Ć©s un fitxer TFM\n" + +#~ msgid "(tt) %s: no acceptable map found, using #0\n" +#~ msgstr "(tt) %s: el mapa trobat no Ć©s acceptable, s'utilitza #0\n" + +#~ msgid "(tt) %s: could not set resolution: %s\n" +#~ msgstr "(tt) %s: no s'ha pogut establir la resoluciĆ³: %s\n" + +#~ msgid "(tt) %s: could not set point size: %s\n" +#~ msgstr "(tt) %s: no s'ha pogut establir la mida del punter: %s\n" + +#~ msgid "(tt) %s: could not load PS name table\n" +#~ msgstr "(tt) %s: no s'ha pogut carregar el nom de la taula PS\n" + +#~ msgid "%s: no encoding vector found, expect bad output\n" +#~ msgstr "" +#~ "%s: no s'ha trobat vector de codificaciĆ³, excepte una sortida errĆ²nia\n" + +#~ msgid "Crashing" +#~ msgstr "Fallant" + +#~ msgid "%s: Warning: " +#~ msgstr "%s: AvĆs: " + +#~ msgid "%s: Fatal: " +#~ msgstr "%s: Fatal: " + +#~ msgid "Fatal" +#~ msgstr "Fatal" + +# FIXME +#~ msgid "out of memory allocating %u bytes\n" +#~ msgstr "fora de memĆ²ria ubicant %u bytes\n" + +#~ msgid "attempted to reallocate with zero size\n" +#~ msgstr "intentat reassignar amb mida zero\n" + +#~ msgid "failed to reallocate %u bytes\n" +#~ msgstr "s'ha produĆÆt un error en reubicar %u bytes\n" + +#~ msgid "failed to allocate %ux%u bytes\n" +#~ msgstr "no s'ha pogut ubicar %ux%u bytes\n" + +#~ msgid "attempted to free NULL pointer\n" +#~ msgstr "s'ha intentat alliberar un punter NULL\n" + +#~ msgid "%s: Checksum mismatch (expected %u, got %u)\n" +#~ msgstr "" +#~ "%s: la suma de verificaciĆ³ no coincideix (s'esperava %u, s'ha obtingut %" +#~ "u)\n" + +#~ msgid "(vf) %s: could not load font `%s'\n" +#~ msgstr "(vf) %s: no s'ha pogut carregar el tipus de lletra '%s'\n" + +#~ msgid "(vf) %s: character %d redefined\n" +#~ msgstr "(vf) %s: el carĆ cter %d s'ha redefinit\n" + +#~ msgid "(vf) %s: no postamble\n" +#~ msgstr "(vf) %s: no hi ha postĆ mbul\n" + +#~ msgid "%s: File corrupted, or not a VF file.\n" +#~ msgstr "%s: El fitxer estĆ corruput, o no Ć©s un fitxer VF.\n" + +#~ msgid "Error while scanning file %s\n" +#~ msgstr "S'ha produĆÆt un error en analitzar el fitxer %s\n" + +#~ msgid "The file is not a PostScript document." +#~ msgstr "El fitxer no Ć©s un document PostScript." + +#~ msgid "Many..." +#~ msgstr "Molts..." + +#~ msgid "Not so many..." +#~ msgstr "No tants..." + +#~ msgid "Reset the zoom level to the default value" +#~ msgstr "Reinicia el zoom al valor per defecte" + +#~ msgid "Selection Caret" +#~ msgstr "Cursor de selecciĆ³" + +#~ msgid "Single" +#~ msgstr "Una a una" + +#~ msgid "Show the document one page at a time" +#~ msgstr "Mostra el document pĆ gina a pĆ gina" + +#~ msgid "Multi" +#~ msgstr "Totes" + +#~ msgid "Show the full document at once" +#~ msgstr "Mostra tot el document alhora" + +#~ msgid "Show sidebar by default." +#~ msgstr "Per defecte mostra la barra lateral." + +#~ msgid "Show statusbar by default." +#~ msgstr "Per defecte mostra la barra d'estat." + +#~ msgid "Show toolbar by default." +#~ msgstr "Per defecte mostra la barra d'eines." + +#~ msgid "The default sidebar size." +#~ msgstr "La mida per defecte de la barra lateral." + +#~ msgid "Error while converting pdf file %s:\n" +#~ msgstr "S'ha produĆÆt un error en convertir el pdf %s:\n" + +#~ msgid "Exit Fullscreen" +#~ msgstr "Surt de pantalla completa" + +#~ msgid "Open a file" +#~ msgstr "Obre un fitxer" + +#~ msgid "_Close" +#~ msgstr "_Tanca" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 00000000..fdd5b72d --- /dev/null +++ b/po/cs.po @@ -0,0 +1,1562 @@ +# Czech translation of evince. +# Copyright (C) 2005, 2006, 2008, 2009, 2010 the author(s) of evince. +# Copyright (C) 2005, 2006 Miloslav Trmac <mitr@volny.cz>. +# Copyright (C) 2009 Martin Picek <picek.martin@mate-cesko.cz>. +# This file is distributed under the same license as the evince package. +# Miloslav Trmac <mitr@volny.cz>, 2005, 2006. +# Jakub Friedl <jfriedl@suse.cz>, 2006, 2007. +# Kamil PĆ”ral <ripper42@gmail.com>, 2008. +# Petr Kovar <pknbe@volny.cz>, 2008, 2009. +# Adrian GuniÅ” <andygun@seznam.cz>, 2008, 2009. +# Martin Picek <picek.martin@mate-cesko.cz>, 2009. +# Jan DrĆ”bek <repli2dev@gmail.com>, 2009. +# Marek ÄernockĆ½ <marek@manet.cz>, 2009. +# Lucas Lommer <llommer@svn.mate.org>, 2010 +# +msgid "" +msgstr "" +"Project-Id-Version: evince mate-2-28\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-28 20:24+0200\n" +"PO-Revision-Date: 2010-03-28 17:09+0100\n" +"Last-Translator: Lucas Lommer <llommer@svn.mate.org>\n" +"Language-Team: Czech <mate-cs-list@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Poedit-Language: Czech\n" +"X-Generator: KBabel 1.11.4\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "PÅi rozbalovĆ”nĆ (pomocĆ %s) knihy komiksÅÆ %s nastala chyba" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "PÅĆkaz %s pro rozbalenĆ knihy komiksÅÆ selhal." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "PÅĆkaz %s neskonÄil normĆ”lnÄ." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "NejednĆ” se o typ MIME pro komiks: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Nelze najĆt pÅĆsluÅ”nĆ½ pÅĆkaz pro rozbalenĆ tĆ©to komiksovĆ© knihy." + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "NeznĆ”mĆ½ typ MIME" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "Soubor je poÅ”kozen." + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "V archivu nebyly nalezeny Å¾Ć”dnĆ© soubory." + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "V archivu %s nebyly nalezeny Å¾Ć”dnĆ© obrĆ”zky" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "PÅi mazĆ”nĆ %s se vyskytla chyba." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Chyba %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komiksy" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Dokument DjVu nemĆ” sprĆ”vnĆ½ formĆ”t" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokument se sklĆ”dĆ” z nÄkolika souborÅÆ. K jednomu nebo vĆce souborÅÆm se " +"nepodaÅilo pÅistoupit." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Dokumenty DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Dokument DVI nemĆ” sprĆ”vnĆ½ formĆ”t" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dokumenty DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Toto je volnĆ© dĆlo (Public Domain)" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Ano" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Ne" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Typ 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Typ 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Typ 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Typ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Typ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "NeznĆ”mĆ½ Åez pĆsma" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Å½Ć”dnĆ½ nĆ”zev" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "VloženĆ” podmnožina" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "VloženĆ©" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "NevloženĆ©" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dokumenty PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "NeplatnĆ½ dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "SnĆmky Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Bez chyby" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nedostatek pamÄti" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "NepodaÅilo se najĆt podpis ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "NeplatnĆ½ soubor ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "VĆcesouborovĆ© ZIPy nejsou podporovĆ”ny" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "NepodaÅilo se otevÅĆt soubor" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Ze souboru se nepodaÅilo pÅeÄĆst data" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "V archivu ZIP se nepodaÅilo najĆt soubor" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "NeznĆ”mĆ” chyba" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "NepodaÅilo se naÄĆst dokument ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "NepodaÅilo se uložit dokument ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dokumenty PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "NepodaÅilo se uložit pÅĆlohu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "NepodaÅilo se otevÅĆt pÅĆlohu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "NepodaÅilo se otevÅĆt pÅĆlohu ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Typ souboru %s (%s) nenĆ podporovĆ”n" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "VÅ”echny dokumenty" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "VÅ”echny soubory" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "NepodaÅilo se vytvoÅit doÄasnĆ½ soubor: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "NepodaÅilo se vytvoÅit doÄasnĆ½ adresĆ”Å: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Soubor nenĆ platnĆ½m souborem .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "NerozpoznanĆ½ soubor typu .desktop ve verzi ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "SpouÅ”tĆ se %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikace nepÅijĆmĆ” dokumenty z pÅĆkazovĆ© ÅĆ”dky" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "NerozpoznanĆ” volba spouÅ”tÄnĆ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nelze pÅedat URI dokumentu položce .desktop āType=Linkā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "NenĆ spustitelnou položkou" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ZakĆ”zat spojenĆ se sprĆ”vcem sezenĆ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Zadejte soubor obsahujĆcĆ uloženĆ© nastavenĆ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "SOUBOR" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Zadejte ID sprĆ”vce sezenĆ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Volby sprĆ”vce sezenĆ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Zobrazit volby sprĆ”vce sezenĆ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Zobrazit ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_PÅesunout na liÅ”tu nĆ”strojÅÆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "PÅesunout vybranou položku na nĆ”strojovou liÅ”tu" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_Odstranit z nĆ”strojovĆ© liÅ”ty" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Odstranit vybranou položku z nĆ”strojovĆ© liÅ”ty" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_Odstranit nĆ”strojovou liÅ”tu" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Odstranit vybranou nĆ”strojovou liÅ”tu" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "OddÄlovaÄ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "BÄÅ¾Ć v režimu prezentace" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5341 +msgid "Best Fit" +msgstr "PÅizpÅÆsobit" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "PÅizpÅÆsobit Å”ĆÅce strĆ”nky" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400 %" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4205 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "ProhlĆžeÄ dokumentÅÆ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Zobrazovat dokumenty po vĆce strĆ”nkĆ”ch" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Ignorovat omezenĆ dokumentu" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Ignorovat omezenĆ dokumentu, napÅĆklad zĆ”kaz kopĆrovĆ”nĆ nebo tisku." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Smazat doÄasnĆ½ soubor" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Soubor s nastavenĆm tisku" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "ProhlĆžeÄ dokumentÅÆ pro pracovnĆ prostÅedĆ MATE" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "NepodaÅilo se vytisknout dokument" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "VybranĆ” tiskĆ”rna '%s' nebyla nalezena" + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5090 +msgid "_Previous Page" +msgstr "_PÅedchozĆ strĆ”nka" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5091 +msgid "Go to the previous page" +msgstr "PÅejĆt na pÅedchozĆ strĆ”nku" + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5093 +msgid "_Next Page" +msgstr "_NĆ”sledujĆcĆ strĆ”nka" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5094 +msgid "Go to the next page" +msgstr "PÅejĆt na nĆ”sledujĆcĆ strĆ”nku" + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5077 +msgid "Enlarge the document" +msgstr "ZvÄtÅ”it dokument" + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5080 +msgid "Shrink the document" +msgstr "ZmenÅ”it dokument" + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Tisk" + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5048 +msgid "Print this document" +msgstr "Vytisknout tento dokument" + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5192 +msgid "_Best Fit" +msgstr "PÅizpÅÆsob_it" + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5193 +msgid "Make the current document fill the window" +msgstr "Nechat aktuĆ”lnĆ dokument vyplnit okno" + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5195 +msgid "Fit Page _Width" +msgstr "PÅizpÅÆsobi_t Å”ĆÅce strany" + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5196 +msgid "Make the current document fill the window width" +msgstr "Nechat aktuĆ”lnĆ dokument vyplnit Å”ĆÅku okna" + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5263 +msgid "Page" +msgstr "StrĆ”nka" + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5264 +msgid "Select Page" +msgstr "Zvolit stranu" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "NĆ”zev:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "UmĆstÄnĆ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "PÅedmÄt:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "KlĆÄovĆ” slova:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producent:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "TvÅÆrce:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "VytvoÅeno:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ZmÄnÄno:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "PoÄet strĆ”nek:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimalizace:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "FormĆ”t:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ZabezpeÄenĆ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Velikost papĆru:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Å½Ć”dnĆ©" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f palcÅÆ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, na vĆ½Å”ku (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, na Å”ĆÅku (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d z %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "z %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "PÅipravuje se tiskā¦" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "ProbĆhĆ” dokonÄovĆ”nĆā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Tiskne se strĆ”nka %d z %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "Tisk nenĆ touto tiskĆ”rnou podporovĆ”n." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "NeplatnĆ½ vĆ½bÄr stran" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "VarovĆ”nĆ" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "SnažĆte se vytisknout vĆ½bÄr, kterĆ½ nezahrnuje Å¾Ć”dnĆ© strĆ”nky" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "ZmÄna velikosti strĆ”nky:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "ZmenÅ”it na tisknutelnou oblast" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "PÅizpÅÆsobit tisknutelnĆ© oblasti" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"PÅizpÅÆsobenĆ strĆ”nky dokumentu tak, aby odpovĆdaly velikosti dle zvolenĆ© " +"tiskĆ”rny. Vyberte jednu z nĆ”sledujĆcĆch možnostĆ:\n" +"\n" +"ā¢ āÅ½Ć”dnĆ”ā: Nebude provedena Å¾Ć”dnĆ” zmÄna velikosti.\n" +"\n" +"ā¢ āZmenÅ”it na tisknutelnou oblastā: StrĆ”nky dokumentu, kterĆ© jsou vÄtÅ”Ć než " +"tisknutelnĆ” oblast budou zmenÅ”eny tak, aby se veÅ”ly do tisknutelnĆ© oblasti " +"tiskĆ”rny.\n" +"\n" +"ā¢ āPÅizpÅÆsobit tisknutelnĆ© oblastiā: StrĆ”nky dokumentu budou podle potÅeby " +"zvÄtÅ”eny nebo zmenÅ”eny tak, aby odpovĆdaly tisknutelnĆ© oblasti tiskĆ”rny.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "Automaticky otoÄit a centrovat" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"OtoÄĆ každou tisknutou stranu tak, aby odpovĆdala orientaci strĆ”nky v " +"dokumentu. StrĆ”nky dokumentu budou vycentrovĆ”ny." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "Velikost strĆ”nky dle velikosti strĆ”nky dokumentu" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Pokud je povoleno, bude každĆ” strĆ”nka vytiÅ”tÄna na papĆr o velikosti, jakou " +"mĆ” v dokumentu." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "NastavenĆ strĆ”nky" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "NepodaÅilo se vytisknout stranu %d z dokumentu %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Posunout nahoru" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Posunout dolÅÆ" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Posunout pohled nahoru" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Posunout pohled dolÅÆ" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Pohled na dokument" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "PÅejĆt na strĆ”nku:" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "Konec prezentace. Prezentaci opustĆte klepnutĆm myÅ”i." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "PÅejĆt na prvnĆ strĆ”nku" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "PÅejĆt na pÅedchozĆ strĆ”nku" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "PÅejĆt na nĆ”sledujĆcĆ strĆ”nku" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "PÅejĆt na poslednĆ strĆ”nku" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "PÅejĆt na strĆ”nku" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "NajĆt" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "PÅejĆt na strĆ”nku %s" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "PÅejĆt na %s v souboru ā%sā" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "PÅejĆt na soubor ā%sā" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "Spustit %s" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ProbĆhĆ” naÄĆtĆ”nĆā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "NajĆt:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5065 +msgid "Find Pre_vious" +msgstr "NajĆt _pÅedchozĆ" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "NajĆt pÅedchozĆ vĆ½skyt hledanĆ©ho ÅetÄzce" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5063 +msgid "Find Ne_xt" +msgstr "NajĆt _nĆ”sledujĆcĆ" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "NajĆt nĆ”sledujĆcĆ vĆ½skyt hledanĆ©ho ÅetÄzce" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_RozliÅ”ovat velikost pĆsmen" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "PÅepnout rozliÅ”ovĆ”nĆ velikosti pĆsmen pÅi hledĆ”nĆ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Heslo dokumentu %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "PÅevĆ”dĆ se %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d z %d dokumentÅÆ pÅevedeno" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "PÅevod metadat" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"FormĆ”t metadat, kterĆ½ Evince požĆvĆ”, se zmÄnil, a proto musĆ bĆ½t proveden " +"pÅevod. Pokud pÅevod pÅeruÅ”Ćte, ĆŗložiÅ”tÄ metadat nebude fungovat." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "OtevÅĆt nedĆ”vno použitĆ½ dokument" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Tento dokument je uzamÄen a lze jej ÄĆst jen po zadĆ”nĆ sprĆ”vnĆ©ho hesla." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Odemknout dokument" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Zadejte heslo" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Je vyžadovĆ”no heslo" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokument ā%sā je uzamÄen a pÅed otevÅenĆm vyžaduje zadĆ”nĆ hesla." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Heslo:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Zapomenout heslo _okamžitÄ" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "_Pamatovat si heslo, dokud se neodhlĆ”sĆte" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "Zapamatovat si _napoÅĆ”d" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Vlastnosti" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "ObecnĆ©" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "PĆsma" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "Licence dokumentu" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "PĆsmo" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ZĆskĆ”vajĆ se informace o pĆsmechā¦ %3d %%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "PodmĆnky užĆvĆ”nĆ" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "Licence textu" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "DalÅ”Ć informace" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "PÅĆlohy" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Vrstvy" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Tiskā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "RejstÅĆk" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "NĆ”hledy" + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s ā %s" +msgstr "StrĆ”nka %s ā %s" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "StrĆ”nka %s" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "Dokument neobsahuje Å¾Ć”dnĆ© strĆ”nky" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "Dokument obsahuje pouze prĆ”zdnĆ© strĆ”nky" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "NepodaÅilo se otevÅĆt dokument" + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "NaÄĆtĆ” se dokument z %s" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Stahuje se dokument (%d %%)" + +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "NepodaÅilo se nahrĆ”t vzdĆ”lenĆ½ soubor" + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "Obnovuje se dokument z %s" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "NepodaÅilo se obnovit dokument" + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "OtevÅĆt dokument" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "Dokument se uklĆ”dĆ” do %s" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "PÅĆloha se uklĆ”dĆ” do %s" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "ObrĆ”zek se uklĆ”dĆ” do %s" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Soubor nelze uložit jako ā%sā." + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "NahrĆ”vĆ” se dokument (%d %%)" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "NahrĆ”vĆ” se pÅĆloha (%d %%)" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "NahrĆ”vĆ” se obrĆ”zek (%d %%)" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "Uložit kopii" + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d nevyÅĆzenĆ” Ćŗloha ve frontÄ" +msgstr[1] "%d nevyÅĆzenĆ© Ćŗlohy ve frontÄ" +msgstr[2] "%d nevyÅĆzenĆ½ch Ćŗloh ve frontÄ" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "Tiskne se Ćŗloha ā%sā" + +#: ../shell/ev-window.c:3274 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Odložit uzavÅenĆ, dokud se nedokonÄĆ tiskovĆ” Ćŗloha ā%sā?" + +#: ../shell/ev-window.c:3277 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d tiskovĆ© Ćŗlohy jsou aktivnĆ. Odložit uzavÅenĆ, dokud se nedokonÄĆ tisk?" + +#: ../shell/ev-window.c:3289 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Pokud zavÅete okno, nebudou vytiÅ”tÄny nevyÅĆzenĆ© tiskovĆ© Ćŗlohy." + +#: ../shell/ev-window.c:3293 +msgid "Cancel _print and Close" +msgstr "ZruÅ”it _tisk a zavÅĆt" + +#: ../shell/ev-window.c:3297 +msgid "Close _after Printing" +msgstr "ZavÅĆt _po vytiÅ”tÄnĆ" + +#: ../shell/ev-window.c:3858 +msgid "Toolbar Editor" +msgstr "Editor nĆ”strojovĆ© liÅ”ty" + +#: ../shell/ev-window.c:3990 +msgid "There was an error displaying help" +msgstr "PÅi zobrazovĆ”nĆ nĆ”povÄdy se vyskytla chyba" + +#: ../shell/ev-window.c:4201 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ProhlĆžeÄ dokumentÅÆ.\n" +"PouživĆ” se %s (%s)" + +#: ../shell/ev-window.c:4232 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince je svobodnĆ½ software; mÅÆžete jej Å”ĆÅit a/nebo modifikovat podle " +"ustanovenĆ GNU General Public License, vydĆ”vanĆ© Free Software Foundation; a " +"to buÄ verze 2 tĆ©to licence anebo (podle vlastnĆho uvĆ”Å¾enĆ) kterĆ©koliv " +"pozdÄjÅ”Ć verze.\n" + +#: ../shell/ev-window.c:4236 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince je rozÅ”iÅovĆ”n v nadÄji, že bude užiteÄnĆ½, avÅ”ak BEZ JAKĆKOLIV ZĆRUKY; " +"neposkytujĆ se ani odvozenĆ© zĆ”ruky PRODEJNOSTI anebo VHODNOSTI PRO URÄITĆ " +"ĆÄEL. DalÅ”Ć podrobnosti hledejte v GNU General Public License.\n" + +#: ../shell/ev-window.c:4240 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Kopii GNU General Public License byste mÄli obdržet spolu s tĆmto programem; " +"pokud se tak nestalo, napiÅ”te o ni Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA.\n" + +#: ../shell/ev-window.c:4265 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4268 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 AutoÅi Evince" + +#: ../shell/ev-window.c:4274 +msgid "translator-credits" +msgstr "" +"Miloslav TrmaÄ <mitr@volny.cz>\n" +"Jakub Friedl <jfriedl@suse.cz>\n" +"Kamil PĆ”ral <ripper42@gmail.com>\n" +"Petr KovĆ”Å <pknbe@volny.cz>\n" +"Adrian GuniÅ” <andygun696@gmail.com>\n" +"Martin Picek <picek.martin@mate-cesko.cz>\n" +"Jan DrĆ”bek <repli2dev@gmail.com>\n" +"Marek ÄernockĆ½ <marek@manet.cz>\n" +"Lucas Lommer <llommer@svn.mate.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4543 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d vĆ½sledek na tĆ©to strĆ”nce" +msgstr[1] "%d vĆ½sledky na tĆ©to strĆ”nce" +msgstr[2] "%d vĆ½sledkÅÆ na tĆ©to strĆ”nce" + +#: ../shell/ev-window.c:4551 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ZbĆ½vĆ” prohledat %3d %%" + +#: ../shell/ev-window.c:5028 +msgid "_File" +msgstr "_Soubor" + +#: ../shell/ev-window.c:5029 +msgid "_Edit" +msgstr "_Upravit" + +#: ../shell/ev-window.c:5030 +msgid "_View" +msgstr "_Zobrazit" + +#: ../shell/ev-window.c:5031 +msgid "_Go" +msgstr "PÅe_jĆt" + +#: ../shell/ev-window.c:5032 +msgid "_Help" +msgstr "_NĆ”povÄda" + +#. File menu +#: ../shell/ev-window.c:5035 ../shell/ev-window.c:5303 +msgid "_Openā¦" +msgstr "_OtevÅĆtā¦" + +#: ../shell/ev-window.c:5036 ../shell/ev-window.c:5304 +msgid "Open an existing document" +msgstr "OtevÅĆt existujĆcĆ dokument" + +#: ../shell/ev-window.c:5038 +msgid "Op_en a Copy" +msgstr "OtevÅĆt _kopii" + +#: ../shell/ev-window.c:5039 +msgid "Open a copy of the current document in a new window" +msgstr "OtevÅĆt kopii aktuĆ”lnĆho dokumentu v novĆ©m oknÄ" + +#: ../shell/ev-window.c:5041 +msgid "_Save a Copyā¦" +msgstr "_Uložit kopiiā¦" + +#: ../shell/ev-window.c:5042 +msgid "Save a copy of the current document" +msgstr "Uložit kopii aktuĆ”lnĆho dokumentu" + +#: ../shell/ev-window.c:5044 +msgid "Page Set_upā¦" +msgstr "Vlastnosti tisk_uā¦" + +#: ../shell/ev-window.c:5045 +msgid "Set up the page settings for printing" +msgstr "Nastavit strĆ”nku pro tisk" + +#: ../shell/ev-window.c:5047 +msgid "_Printā¦" +msgstr "_Tiskā¦" + +#: ../shell/ev-window.c:5050 +msgid "P_roperties" +msgstr "_Vlastnosti" + +#: ../shell/ev-window.c:5058 +msgid "Select _All" +msgstr "Vy_brat vÅ”e" + +#: ../shell/ev-window.c:5060 +msgid "_Findā¦" +msgstr "_NajĆtā¦" + +#: ../shell/ev-window.c:5061 +msgid "Find a word or phrase in the document" +msgstr "NajĆt v dokumentu slovo nebo frĆ”zi" + +#: ../shell/ev-window.c:5067 +msgid "T_oolbar" +msgstr "NĆ”s_trojovĆ” liÅ”ta" + +#: ../shell/ev-window.c:5069 +msgid "Rotate _Left" +msgstr "OtoÄit do_leva" + +#: ../shell/ev-window.c:5071 +msgid "Rotate _Right" +msgstr "OtoÄit dop_rava" + +#: ../shell/ev-window.c:5082 +msgid "_Reload" +msgstr "_Obnovit" + +#: ../shell/ev-window.c:5083 +msgid "Reload the document" +msgstr "Obnovit dokument" + +#: ../shell/ev-window.c:5086 +msgid "Auto_scroll" +msgstr "Automaticky po_sunovat" + +#: ../shell/ev-window.c:5096 +msgid "_First Page" +msgstr "P_rvnĆ strĆ”nka" + +#: ../shell/ev-window.c:5097 +msgid "Go to the first page" +msgstr "PÅejĆt na prvnĆ strĆ”nku" + +#: ../shell/ev-window.c:5099 +msgid "_Last Page" +msgstr "Po_slednĆ strĆ”nka" + +#: ../shell/ev-window.c:5100 +msgid "Go to the last page" +msgstr "PÅejĆt na poslednĆ strĆ”nku" + +#. Help menu +#: ../shell/ev-window.c:5104 +msgid "_Contents" +msgstr "_Obsah" + +#: ../shell/ev-window.c:5107 +msgid "_About" +msgstr "O _aplikaci" + +#. Toolbar-only +#: ../shell/ev-window.c:5111 +msgid "Leave Fullscreen" +msgstr "Opustit celou obrazovku" + +#: ../shell/ev-window.c:5112 +msgid "Leave fullscreen mode" +msgstr "Opustit režim pÅes celou obrazovku" + +#: ../shell/ev-window.c:5114 +msgid "Start Presentation" +msgstr "Spustit prezentaci" + +#: ../shell/ev-window.c:5115 +msgid "Start a presentation" +msgstr "Spustit prezentaci" + +#. View Menu +#: ../shell/ev-window.c:5174 +msgid "_Toolbar" +msgstr "_NĆ”strojovĆ” liÅ”ta" + +#: ../shell/ev-window.c:5175 +msgid "Show or hide the toolbar" +msgstr "Zobrazit nebo skrĆ½t nĆ”strojovou liÅ”tu" + +#: ../shell/ev-window.c:5177 +msgid "Side _Pane" +msgstr "_PostrannĆ liÅ”ta" + +#: ../shell/ev-window.c:5178 +msgid "Show or hide the side pane" +msgstr "Zobrazit nebo skrĆ½t postrannĆ liÅ”tu" + +#: ../shell/ev-window.c:5180 +msgid "_Continuous" +msgstr "_SouvislĆ©" + +#: ../shell/ev-window.c:5181 +msgid "Show the entire document" +msgstr "Zobrazovat celĆ½ dokument" + +#: ../shell/ev-window.c:5183 +msgid "_Dual" +msgstr "_DuĆ”lnĆ" + +#: ../shell/ev-window.c:5184 +msgid "Show two pages at once" +msgstr "Zobrazovat po dvou strĆ”nkĆ”ch" + +#: ../shell/ev-window.c:5186 +msgid "_Fullscreen" +msgstr "PÅes _celou obrazovku" + +#: ../shell/ev-window.c:5187 +msgid "Expand the window to fill the screen" +msgstr "ZvÄtÅ”it okno, aby vyplnilo obrazovku" + +#: ../shell/ev-window.c:5189 +msgid "Pre_sentation" +msgstr "Pr_ezentace" + +#: ../shell/ev-window.c:5190 +msgid "Run document as a presentation" +msgstr "Spustit dokument jako prezentaci" + +#: ../shell/ev-window.c:5198 +msgid "_Inverted Colors" +msgstr "_Invertovat barvy" + +#: ../shell/ev-window.c:5199 +msgid "Show page contents with the colors inverted" +msgstr "ZobrazĆ obsah strĆ”nky s invertovanĆ½mi barvami" + +#. Links +#: ../shell/ev-window.c:5207 +msgid "_Open Link" +msgstr "_OtevÅĆt odkaz" + +#: ../shell/ev-window.c:5209 +msgid "_Go To" +msgstr "_PÅejĆt na" + +#: ../shell/ev-window.c:5211 +msgid "Open in New _Window" +msgstr "OtevÅĆt v novĆ©m _oknÄ" + +#: ../shell/ev-window.c:5213 +msgid "_Copy Link Address" +msgstr "_KopĆrovat adresu odkazu" + +#: ../shell/ev-window.c:5215 +msgid "_Save Image Asā¦" +msgstr "_Uložit obrĆ”zek jakoā¦" + +#: ../shell/ev-window.c:5217 +msgid "Copy _Image" +msgstr "KopĆ_rovat obrĆ”zek" + +#: ../shell/ev-window.c:5222 +msgid "_Open Attachment" +msgstr "_OtevÅĆt pÅĆlohu" + +#: ../shell/ev-window.c:5224 +msgid "_Save Attachment Asā¦" +msgstr "_Uložit pÅĆlohu jakoā¦" + +#: ../shell/ev-window.c:5277 +msgid "Zoom" +msgstr "ZvÄtÅ”enĆ" + +#: ../shell/ev-window.c:5279 +msgid "Adjust the zoom level" +msgstr "Upravit ĆŗroveÅ zvÄtÅ”enĆ" + +#: ../shell/ev-window.c:5289 +msgid "Navigation" +msgstr "Navigace" + +#: ../shell/ev-window.c:5291 +msgid "Back" +msgstr "ZpÄt" + +#. translators: this is the history action +#: ../shell/ev-window.c:5294 +msgid "Move across visited pages" +msgstr "ProchĆ”zenĆ navÅ”tĆvenĆ½ch strĆ”nek" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5324 +msgid "Previous" +msgstr "PÅedchozĆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5329 +msgid "Next" +msgstr "NĆ”sledujĆcĆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Zoom In" +msgstr "ZvÄtÅ”it" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5337 +msgid "Zoom Out" +msgstr "ZmenÅ”it" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5345 +msgid "Fit Width" +msgstr "PÅizpÅÆsobit Å”ĆÅce" + +#: ../shell/ev-window.c:5506 ../shell/ev-window.c:5523 +msgid "Unable to launch external application." +msgstr "NepodaÅilo se spustit externĆ aplikaci." + +#: ../shell/ev-window.c:5580 +msgid "Unable to open external link" +msgstr "NepodaÅilo se otevÅĆt externĆ odkaz" + +#: ../shell/ev-window.c:5747 +msgid "Couldn't find appropriate format to save image" +msgstr "NepodaÅilo se najĆt vhodnĆ½ formĆ”t pro uloženĆ obrĆ”zku" + +#: ../shell/ev-window.c:5789 +msgid "The image could not be saved." +msgstr "NepodaÅilo se uložit obrĆ”zek." + +#: ../shell/ev-window.c:5821 +msgid "Save Image" +msgstr "Uložit obrĆ”zek" + +#: ../shell/ev-window.c:5888 +msgid "Unable to open attachment" +msgstr "NepodaÅilo se otevÅĆt pÅĆlohu" + +#: ../shell/ev-window.c:5941 +msgid "The attachment could not be saved." +msgstr "NepodaÅilo se uložit pÅĆlohu." + +#: ../shell/ev-window.c:5986 +msgid "Save Attachment" +msgstr "Uložit pÅĆlohu" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā VyžadovĆ”no heslo" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "Podle pÅĆpony" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "ProhlĆžeÄ dokumentÅÆ pro pracovnĆ prostÅedĆ MATE" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "StrĆ”nka dokumentu, kterou chcete zobrazit." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "STRĆNKA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Spustit Evince v celoobrazovkovĆ©m režimu" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Spustit Evince v prezentaÄnĆm režimu" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Spustit Evince v nĆ”hledovĆ©m režimu" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "HledanĆ© slovo nebo frĆ”ze v dokumentu" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ÅETÄZEC" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[SOUBORā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"DostupnĆ© logickĆ© hodnoty: pravdivĆ” hodnota povoluje tvorbu nĆ”hledÅÆ a " +"nepravdivĆ” hodnota zakazuje tvorbu novĆ½ch nĆ”hledÅÆ." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Povolit tvorbu nĆ”hledÅÆ dokumentÅÆ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PÅĆkaz nĆ”hledÅÆ pro dokumenty PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PlatnĆ½ pÅĆkaz a argumenty pro tvÅÆrce nĆ”hledÅÆ dokumentu PDF. Chcete-li se " +"dovÄdÄt vĆce informacĆ, podĆvejte se do dokumentace tvÅÆrce nĆ”hledÅÆ Nautilu." diff --git a/po/cy.po b/po/cy.po new file mode 100644 index 00000000..65bb6f72 --- /dev/null +++ b/po/cy.po @@ -0,0 +1,1115 @@ +# Cyfieithiad o evince i'r Gymraeg +# Translation of evince to Welsh +# Copyright (C) 2005 Gareth Bowker +# This file is distributed under the same license as the evince package. +# Gareth Bowker <tgb@tgb.org.uk>, 2005. +# Rhys Jones <rhys@sucs.org>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-02-25 12:29+0000\n" +"PO-Revision-Date: 2006-02-21 22:22-0000\n" +"Last-Translator: Rhys Jones <rhys@sucs.org>\n" +"Language-Team: Cymraeg <mate-cy@lists.linux.org.uk>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../comics/comics-document.c:148 +msgid "File corrupted." +msgstr "Ffeil wedi llygru." + +#: ../comics/comics-document.c:184 +#, c-format +msgid "No images found in archive %s" +msgstr "Dim delweddau wedi'u canfod yn yr archif %s" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:534 +msgid "_Remove Toolbar" +msgstr "Tynnu'r Bar Gweithrediadau" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:555 +msgid "Separator" +msgstr "Gwahanydd" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:3066 +msgid "Best Fit" +msgstr "Ffit Orau" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ffitio Lled y Tudalen" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "75%" +msgstr "75%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "Gwelydd Dogfennau" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Gweld dogfennau aml-dudalen" + +#: ../data/evince-password.glade.h:1 +msgid "Remember password for this session" +msgstr "Cofio'r cyfrinair ar gyfer y sesiwn hwn" + +#: ../data/evince-password.glade.h:2 +msgid "Save password in keyring" +msgstr "Cadw cyfrinair yn y cylch allweddi" + +#: ../data/evince-password.glade.h:3 +msgid "_Password:" +msgstr "_Cyfrinair" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Awdur:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>CrĆ«wyd:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>CrĆ«wr:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Fformat:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>Allweddeiriau:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Newidiwyd:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Nifer o Dudalennau:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>Optimeiddiwyd:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Producer:</b>" +msgstr "<b>Cynhyrchydd:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Security:</b>" +msgstr "<b>Diogelwch:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Subject:</b>" +msgstr "<b>Pwnc:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Title:</b>" +msgstr "<b>Teitl:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Gwrthwneud cyfyngiadau'r ddogfen" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Gwrthwneud cyfyngiadau'r ddogfen, er enghraifft, cyfyngiad rhag copĆÆo neu " +"brintio." + +#: ../dvi/dvi-document.c:91 +msgid "File not available" +msgstr "Ffeil ddim ar gael" + +#: ../dvi/dvi-document.c:104 +msgid "DVI document has incorrect format" +msgstr "Mae fformat y ffeil DVI yn anghywir" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:511 +msgid "Yes" +msgstr "Ie" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:514 +msgid "No" +msgstr "Na" + +#: ../pdf/ev-poppler.cc:614 +msgid "Type 1" +msgstr "Math 1" + +#: ../pdf/ev-poppler.cc:616 +msgid "Type 1C" +msgstr "Math 1C" + +#: ../pdf/ev-poppler.cc:618 +msgid "Type 3" +msgstr "Math 3" + +#: ../pdf/ev-poppler.cc:620 +msgid "TrueType" +msgstr "TrueType" + +#: ../pdf/ev-poppler.cc:622 +msgid "Type 1 (CID)" +msgstr "Math 1 (CID)" + +#: ../pdf/ev-poppler.cc:624 +msgid "Type 1C (CID)" +msgstr "Math 1C (CID)" + +#: ../pdf/ev-poppler.cc:626 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../pdf/ev-poppler.cc:628 +msgid "Unknown font type" +msgstr "Math ffont anhysbys" + +#: ../pdf/ev-poppler.cc:654 +msgid "No name" +msgstr "Dim enw" + +#: ../pdf/ev-poppler.cc:662 +msgid "Embedded subset" +msgstr "Is-set Ymgorfforol" + +#: ../pdf/ev-poppler.cc:664 +msgid "Embedded" +msgstr "Wedi Ymgorffori" + +#: ../pdf/ev-poppler.cc:666 +msgid "Not embedded" +msgstr "Heb ei Ymgorffori" + +#: ../properties/ev-properties-main.c:114 +msgid "Document" +msgstr "Dogfen" + +#: ../properties/ev-properties-view.c:173 +msgid "None" +msgstr "Dim" + +#: ../ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Llythyr" + +#: ../ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Tabloid" + +#: ../ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ../ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Cyfreithiol" + +#: ../ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Statement" + +#: ../ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Executive" + +#: ../ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Ffolio" + +#: ../ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ../ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../ps/ps-document.c:136 +msgid "No document loaded." +msgstr "Dim dogfen wedi'i lwytho." + +#: ../ps/ps-document.c:590 +msgid "Broken pipe." +msgstr "Torrwyd y Bibell." + +#: ../ps/ps-document.c:774 +msgid "Interpreter failed." +msgstr "Methodd y dehonglydd." + +#: ../ps/ps-document.c:900 +#, c-format +msgid "Error while decompressing file %s:\n" +msgstr "Nam wrth ddatgywasguār ffeil %s:\n" + +#: ../ps/ps-document.c:960 +#, c-format +msgid "Cannot open file %s.\n" +msgstr "Methwyd agor y ffeil %s.\n" + +#: ../ps/ps-document.c:965 +msgid "File is not readable." +msgstr "Methwyd darllen y ffeil." + +#: ../ps/ps-document.c:985 +msgid "Document loaded." +msgstr "Llwythwyd y ddogfen." + +#: ../ps/ps-document.c:1082 +#, c-format +msgid "" +"Failed to load document '%s'. Ghostscript interpreter was not found in path" +msgstr "" +"Methu llwytho'r ddogfen '%s'. Dehonglydd Ghostscript heb ei ganfod yn y " +"llwybr" + +#: ../ps/ps-document.c:1094 +#, c-format +msgid "Failed to load document '%s'" +msgstr "Methwyd llwythoār ddogfen '%s'" + +#: ../ps/ps-document.c:1267 +msgid "Encapsulated PostScript" +msgstr "PostScript AmgaĆ«dig" + +#: ../ps/ps-document.c:1268 +msgid "PostScript" +msgstr "PostScript" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "Chwilio am destun" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "Enw'r testun i'w ddarganfod" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "Prif lythrennau o bwys" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "GWIR i gael chwiliad lle bo prif lythrennau o bwys" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "Lliw Amlygu" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "Lliw amlygu'r cydweddion" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "Lliw cyfredol" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "Lliw amlygu i'r cydwedd cyfredol" + +#: ../shell/eggfindbar.c:319 +msgid "F_ind:" +msgstr "_Chwilio:" + +#: ../shell/eggfindbar.c:325 +msgid "_Previous" +msgstr "_Blaenorol" + +#: ../shell/eggfindbar.c:329 +msgid "_Next" +msgstr "_Nesaf" + +#: ../shell/eggfindbar.c:343 +msgid "C_ase Sensitive" +msgstr "_Prif lythrennau o bwys" + +#: ../shell/ev-document-types.c:60 +msgid "Unknown MIME Type" +msgstr "Math MIME anhysbys" + +#: ../shell/ev-document-types.c:71 +#, c-format +msgid "Unhandled MIME type: '%s'" +msgstr "Math MIME heb ei drin: '%s'" + +#: ../shell/ev-document-types.c:133 +msgid "All Documents" +msgstr "Pob Dogfen" + +#: ../shell/ev-document-types.c:141 +msgid "PostScript Documents" +msgstr "Dogfennau PostScript" + +#: ../shell/ev-document-types.c:150 +msgid "PDF Documents" +msgstr "Dogfennau PDF" + +#: ../shell/ev-document-types.c:159 +msgid "Images" +msgstr "Delweddau" + +#: ../shell/ev-document-types.c:169 +msgid "DVI Documents" +msgstr "Dogfennau DVI" + +#: ../shell/ev-document-types.c:179 +msgid "Djvu Documents" +msgstr "Dogfennau Djvu" + +#: ../shell/ev-document-types.c:189 +msgid "Comic Books" +msgstr "Llyfrau Comig" + +#: ../shell/ev-document-types.c:197 +msgid "All Files" +msgstr "Pob Ffeil" + +#: ../shell/ev-page-action.c:168 +#, c-format +msgid "(%d of %d)" +msgstr "(%d o %d)" + +#: ../shell/ev-page-action.c:170 +#, c-format +msgid "of %d" +msgstr "o %d" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "Rhaid cael cyfrinair" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "" +"The document <i>%s</i> is locked and requires a password before it can be " +"opened." +msgstr "" +"Mae'r ddogfen <i>%s</i> wedi'i gloi a rhaid mewnbynnu cyfrinair cyn y medrir " +"ei agor." + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "Rhowch y cyfrinair" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "Cyfrinair ar gyfer y ddogfen %s" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "Cyfrinair anghywir" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Mae'r ddogfen wedi'i gloi a medrir ei agor ond drwy fewnbynnu cyfrinair " +"cywir." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Datgloi Dogfen" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Priodweddau" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "Cyffredinol" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "Ffontiau" + +#: ../shell/ev-properties-fonts.c:123 +msgid "Font" +msgstr "Ffont" + +#: ../shell/ev-properties-fonts.c:134 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Casglu gwybodaeth ffontiau... %3d%%" + +#: ../shell/ev-sidebar-links.c:254 ../shell/ev-view.c:2080 +msgid "Loading..." +msgstr "Llwytho..." + +#: ../shell/ev-sidebar-links.c:318 +msgid "Print..." +msgstr "Print..." + +#: ../shell/ev-sidebar-links.c:686 +msgid "Index" +msgstr "Mynegai" + +#: ../shell/ev-sidebar-thumbnails.c:669 +msgid "Thumbnails" +msgstr "Rhagolygon" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "Sgrolio i Fyny" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "Sgrolio i Lawr" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "Sgrolio'r Olwg i Fyny" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "Sgrolio'r Olwg i Lawr" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "Golwg Dogfen" + +#: ../shell/ev-view.c:1249 +#, c-format +msgid "Go to page %s" +msgstr "Mynd i dudalen %s" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:3282 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "Darganfyddwyd %d ar y dudalen hon" + +#: ../shell/ev-view.c:3291 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% yn dal i chwilio" + +#: ../shell/ev-window.c:585 +msgid "Unable to open document" +msgstr "Methwyd agor y ddogfen" + +#: ../shell/ev-window.c:1123 +msgid "Open Document" +msgstr "Agor Dogfen" + +#: ../shell/ev-window.c:1202 +#, c-format +msgid "The file could not be saved as \"%s\"." +msgstr "Methwyd cadw'r ffeil fel \"%s\"." + +#: ../shell/ev-window.c:1246 +msgid "Save a Copy" +msgstr "Cadw Copi" + +#: ../shell/ev-window.c:1311 +msgid "Generating PDF is not supported" +msgstr "Nid yw allbynnu PDF wedi'i gynorthwyo" + +# Pam yn y byd byddai'r neges yma byth yn dod lan? +# Atebion ar gerdyn post i tgb@tgb.org.uk plĆ®s! +#: ../shell/ev-window.c:1320 +msgid "Printing is not supported on this printer." +msgstr "Nid yw argraffu wedi'i gynorthwyo ar yr argraffydd yma." + +#: ../shell/ev-window.c:1323 +#, c-format +msgid "" +"You were trying to print to a printer using the \"%s\" driver. This program " +"requires a PostScript printer driver." +msgstr "" +"Roeddech yn ceisio argraffu i argraffydd yn defnyddio'r gyrrwr \"%s\". Mae " +"angen gyrrwr PostScript ar y rhaglen yma i argraffu." + +#: ../shell/ev-window.c:1368 +msgid "Print" +msgstr "Argraffu" + +#: ../shell/ev-window.c:1374 +msgid "Pages" +msgstr "Tudalennau" + +#: ../shell/ev-window.c:1435 +msgid "The \"Find\" feature will not work with this document" +msgstr "Nid yw'r nodwedd \"Chwilio\" yn gweithio gyda'r ddogfen hon" + +#: ../shell/ev-window.c:1437 +msgid "Searching for text is only supported for PDF documents." +msgstr "Mae chwilio am destun ond wedi'i gefnogi ar gyfer dogfennau PDF." + +#. Toolbar-only +#: ../shell/ev-window.c:1668 ../shell/ev-window.c:2870 +msgid "Leave Fullscreen" +msgstr "Peidio Llenwi'r sgrin" + +#: ../shell/ev-window.c:1997 +msgid "Toolbar Editor" +msgstr "Golygydd Bar Offer" + +#: ../shell/ev-window.c:2373 +#, c-format +msgid "" +"PostScript and PDF File Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Gwelydd ffeiliau PostScript a PDF.\n" +"Defnyddio poppler %s (%s)" + +#: ../shell/ev-window.c:2396 +msgid "" +"Evince is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +msgstr "" +"Mae Evince yn feddalwedd rhydd; gallwch ei hailddosbarthu a/neu ei\n" +"haddasu dan delerau Trwydded Gyhoeddus Gyffredinol GNU fel y'i\n" +"cyhoeddwyd gan y Free Software Foundation; naill ai fersiwn 2 y\n" +"Drwydded, neu (yn Ć“l eich dewis) unrhyw fersiwn diweddarach.\n" + +#: ../shell/ev-window.c:2400 +msgid "" +"Evince is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +msgstr "" +"Mae Evince yn cael ei dosbarthu yn y gobaith y bydd yn\n" +"ddefnyddiol, ond HEB UNRHYW WARANT; heb hyd yn oed y warant\n" +"oblygedig o FARSIANDĆAETH neu FFITRWYDD AT BWRPAS ARBENNIG.\n" +"Gweler Trwydded Gyhoeddus Gyffredinol GNU am ragor o fanylion.\n" + +#: ../shell/ev-window.c:2404 +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with Evince; if not, write to the Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Dylech fod wedi derbyn copi o Drwydded Gyhoeddus Gyffredinol GNU ynghyd\n" +"Ć¢'r rhaglen hon; os na, ysgrifennwch at y Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:2428 ../shell/main.c:259 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:2431 +msgid "Ā© 1996-2005 The Evince authors" +msgstr "Ā© 1996-2005 Awduron Evince" + +#: ../shell/ev-window.c:2437 +msgid "translator-credits" +msgstr "" +"Gareth Bowker <tgb@tgb.org.uk>\n" +"Rhys Jones <rhys@sucs.org>" + +#: ../shell/ev-window.c:2799 +msgid "_File" +msgstr "_Ffeil" + +#: ../shell/ev-window.c:2800 +msgid "_Edit" +msgstr "_Golygu" + +#: ../shell/ev-window.c:2801 +msgid "_View" +msgstr "G_olwg" + +#: ../shell/ev-window.c:2802 +msgid "_Go" +msgstr "_Mynd" + +#: ../shell/ev-window.c:2803 +msgid "_Help" +msgstr "_Cymorth" + +#. File menu +#: ../shell/ev-window.c:2806 +msgid "_Open..." +msgstr "_Agor..." + +#: ../shell/ev-window.c:2807 +msgid "Open an existing document" +msgstr "Agor dogfen sy'n bodoli'n barod" + +#: ../shell/ev-window.c:2809 +msgid "_Save a Copy..." +msgstr "_Cadw copi..." + +#: ../shell/ev-window.c:2810 +msgid "Save a copy of the current document" +msgstr "Cadw copi o'r ddogfen bresennol" + +#: ../shell/ev-window.c:2812 +msgid "_Print..." +msgstr "_Argraffu..." + +#: ../shell/ev-window.c:2813 +msgid "Print this document" +msgstr "Argraffu'r ddogfen hon" + +#: ../shell/ev-window.c:2815 +msgid "P_roperties" +msgstr "P_riodweddau" + +#: ../shell/ev-window.c:2823 +msgid "Select _All" +msgstr "Dewis _Popeth" + +#: ../shell/ev-window.c:2826 +msgid "Find a word or phrase in the document" +msgstr "Chwilio am air neu eiriau yn y ddogfen" + +#: ../shell/ev-window.c:2828 +msgid "Find Ne_xt" +msgstr "Chwilio am y N_esaf" + +#: ../shell/ev-window.c:2830 +msgid "T_oolbar" +msgstr "_Bar Gweithrediadau" + +#: ../shell/ev-window.c:2832 +msgid "Rotate _Left" +msgstr "Troi i'r _Chwith" + +#: ../shell/ev-window.c:2834 +msgid "Rotate _Right" +msgstr "Troi i'r _Dde" + +#: ../shell/ev-window.c:2839 +msgid "Enlarge the document" +msgstr "Chwyddo'r ddogfen" + +#: ../shell/ev-window.c:2842 +msgid "Shrink the document" +msgstr "Lleihau'r ddogfen" + +#: ../shell/ev-window.c:2844 +msgid "_Reload" +msgstr "_Ail-lwytho" + +#: ../shell/ev-window.c:2845 +msgid "Reload the document" +msgstr "Ail-lwytho'r ddogfen" + +#. Go menu +#: ../shell/ev-window.c:2849 +msgid "_Previous Page" +msgstr "Tudalen _Blaenorol" + +#: ../shell/ev-window.c:2850 +msgid "Go to the previous page" +msgstr "Mynd i'r dudalen flaenorol" + +#: ../shell/ev-window.c:2852 +msgid "_Next Page" +msgstr "Tudalen _Nesaf" + +#: ../shell/ev-window.c:2853 +msgid "Go to the next page" +msgstr "Mynd i'r dudalen nesaf" + +#: ../shell/ev-window.c:2855 +msgid "_First Page" +msgstr "Tudalen _Gyntaf" + +#: ../shell/ev-window.c:2856 +msgid "Go to the first page" +msgstr "Mynd i'r dudalen gyntaf" + +#: ../shell/ev-window.c:2858 +msgid "_Last Page" +msgstr "Tudalen _Olaf" + +#: ../shell/ev-window.c:2859 +msgid "Go to the last page" +msgstr "Mynd i'r dudalen olaf" + +#. Help menu +#: ../shell/ev-window.c:2863 +msgid "_Contents" +msgstr "_Cynnwys" + +#: ../shell/ev-window.c:2866 +msgid "_About" +msgstr "_Ynghylch" + +#: ../shell/ev-window.c:2871 +msgid "Leave fullscreen mode" +msgstr "Gadael Modd Sgrin Lawn" + +#. View Menu +#: ../shell/ev-window.c:2922 +msgid "_Toolbar" +msgstr "Bar _Dewis" + +#: ../shell/ev-window.c:2923 +msgid "Show or hide the toolbar" +msgstr "Dangos neu guddio'r bar dewis" + +#: ../shell/ev-window.c:2925 +msgid "Side _Pane" +msgstr "Bar _Ochr" + +#: ../shell/ev-window.c:2926 +msgid "Show or hide the side pane" +msgstr "Dangos neu guddio'r bar ochr" + +#: ../shell/ev-window.c:2928 +msgid "_Continuous" +msgstr "_Parhaol" + +#: ../shell/ev-window.c:2929 +msgid "Show the entire document" +msgstr "Dangos yr holl ddogfen" + +#: ../shell/ev-window.c:2931 +msgid "_Dual" +msgstr "_Deuol" + +#: ../shell/ev-window.c:2932 +msgid "Show two pages at once" +msgstr "Dangos dau dudalen ar unwaith" + +#: ../shell/ev-window.c:2934 +msgid "_Fullscreen" +msgstr "_Modd Sgrin Lawn" + +#: ../shell/ev-window.c:2935 +msgid "Expand the window to fill the screen" +msgstr "Ehangu'r ffenest i lenwi'r sgrin" + +#: ../shell/ev-window.c:2937 +msgid "_Presentation" +msgstr "_Arddangos" + +#: ../shell/ev-window.c:2938 +msgid "Run document as a presentation" +msgstr "Rhedeg y ddogfen fel arddangosfa" + +#: ../shell/ev-window.c:2940 +msgid "_Best Fit" +msgstr "Ffit _Orau" + +#: ../shell/ev-window.c:2941 +msgid "Make the current document fill the window" +msgstr "Achosi i'r ddogfen lenwi'r ffenest" + +#: ../shell/ev-window.c:2943 +msgid "Fit Page _Width" +msgstr "Ffitio _Lled y Dudalen" + +#: ../shell/ev-window.c:2944 +msgid "Make the current document fill the window width" +msgstr "Achosi i'r ddogfen lenwi lled y ffenest" + +#. Links +#: ../shell/ev-window.c:2951 +msgid "_Open Link" +msgstr "_Agor Cyswllt" + +#: ../shell/ev-window.c:2953 +msgid "_Go To" +msgstr "_Mynd I" + +#: ../shell/ev-window.c:2955 +msgid "_Copy Link Address" +msgstr "_CopĆÆo Cyfeiriad Cyswllt" + +#: ../shell/ev-window.c:3015 +msgid "Page" +msgstr "Tudalen" + +#: ../shell/ev-window.c:3016 +msgid "Select Page" +msgstr "Dewis Tudalen" + +#: ../shell/ev-window.c:3028 +msgid "Zoom" +msgstr "Ehangu" + +#: ../shell/ev-window.c:3030 +msgid "Adjust the zoom level" +msgstr "Newid lefel yr ehangiad" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3046 +msgid "Previous" +msgstr "Blaenorol" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3052 +msgid "Next" +msgstr "Nesaf" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3056 +msgid "Zoom In" +msgstr "Ehangu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3061 +msgid "Zoom Out" +msgstr "Crebachu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3071 +msgid "Fit Width" +msgstr "Ffitio Lled" + +#: ../shell/ev-window-title.c:140 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Angen Cyfrinair" + +#: ../shell/main.c:50 +msgid "The page of the document to display." +msgstr "Tudalen y ddogfen i'w dangos" + +#: ../shell/main.c:50 +msgid "PAGE" +msgstr "TUDALEN" + +#: ../shell/main.c:286 +msgid "Evince Document Viewer" +msgstr "Gwelydd Dogfennau Evince" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opsiynau Boole ar gael, gwir yn galluogi creu lluniau cryno a ffug yn " +"analluogi creu lluniau cryno" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Galluogi lluniau cryno o ddogfennau PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Gorchymyn rhaglen creu lluniau cryno i ddogfennau PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Gorchymyn dilys ag ymresymiadau i'r rhaglen creu lluniau cryno i ddogfennau " +"PDF. Gweler dogfennau \"caja thumbnailer\" am wybodaeth bellach." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Maint rhagosodol y bar ochr" + +#~ msgid "Show sidebar by default" +#~ msgstr "Dangos y bar ochr yn ragosodol" + +#~ msgid "Show statusbar by default" +#~ msgstr "Dangos y bar statws yn ragosodol" + +#~ msgid "Show toolbar by default" +#~ msgstr "Dangos y bar gweithrediadau yn ragosodol" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "Y Bar Ochr yw'r eitem ochrol sy'n cynnwys y mynegai a'r lluniau cryno. " +#~ "Mae'r maint rhagosodiadol yn setio's lled mewn picseli o ochr y ffenest. " +#~ "Cymerir unrhyw gyfanrif. Ni fydd y bar ochr byth yn mynd o dan y maint " +#~ "sydd ei angen er mwyn dangos y testyn ar gyfer y lluniau cryno neu'r " +#~ "mynegai. Mi fydd cyfanrifoedd anferth yn achosi i'r bar ochr gymeryd " +#~ "gymaint o'r dudalen a phosib yn gymharol a maint y ffenest." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "Y Bar Ochr yw'r eitem ochrol sy'n cynnwys y mynegai a'r lluniau cryno. " +#~ "Dau werth boolaidd sydd iddo, gwir yn achosi i'r bar ochr fod yn weladwy, " +#~ "tra bod ffug yn achosi i'r bar ochr gael ei guddio" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "Y Bar Statws yw'r bar cyfredol ar y gwaelod sy'n dangos unrhyw wybodaeth " +#~ "ychwanegol ynghylch a cysylltiadau a gweithredoedd eraill. Dau werth " +#~ "boolaidd sydd iddo, gwir yn achosi i'r bar statws fod yn weladwy, tra bod " +#~ "ffug yn achosi i'r bar gael ei guddio." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "Y Bar Gweithrediadau yw'r bar ar hyd gopa'r ffenest sy'n cynnwys y " +#~ "gorchmynion rheoli llywio ac ehangu. Dau werth boolaidd sydd iddo, gwir " +#~ "yn achosi i'r bar gweithrediadau gael ei ddangos, tra bod ffug yn achosi " +#~ "i'r bar gael ei guddio." + +#~ msgid "Unable to find glade file" +#~ msgstr "Methu darganfod ffeil glade" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "Methwyd dod o hyd i'r ffeil glade %s. Sicrhewch bod eich gosodiad yn " +#~ "gyflawn." + +#~ msgid "Not found" +#~ msgstr "Heb ei ddarganfod" + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Gwelydd Dogfennau - Angen Cyfrinair" + +#~ msgid "Loading document. Please wait" +#~ msgstr "Llwytho'r ddogfen. Arhoswch os gwelwch yn dda" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Cadw'r dogfen cyfredol gyda enw newydd" + +#~ msgid "View the properties of this document" +#~ msgstr "Edrych ar briodweddau'r ddogfen hon" + +#~ msgid "Close this window" +#~ msgstr "Cau'r ffenest yma" + +#~ msgid "Copy text from the document" +#~ msgstr "CopĆÆo'r testyn o'r ddogfen hon" + +#~ msgid "Select the entire page" +#~ msgstr "Dewis y dudalen gyfan" + +#~ msgid "Find next occurrence of the word or phrase" +#~ msgstr "Chwilio am yr enghraifft nesaf o'r gair neu eiriau" + +#~ msgid "Customize the toolbar" +#~ msgstr "Newid y Bar Gweithredau" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Troi'r ddogfen i'r chwith" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Troi'r ddogfen i'r dde" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Dangos cymorth ar gyfer y rhaglen golygu" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Dangos clodion ar gyfer crewyr y rhaglen golygu" + +#~ msgid "Scroll one page forward" +#~ msgstr "Sgrolio ymlaen un tudalen" + +#~ msgid "Scroll one page backward" +#~ msgstr "Sgrolio yn Ć“l un tudalen" + +#~ msgid "Focus the page selector" +#~ msgstr "Ffocysu'r dewisydd tudalennau" + +#~ msgid "Go ten pages backward" +#~ msgstr "Mynd yn Ć“l deg tudalen" + +#~ msgid "Go ten pages forward" +#~ msgstr "Mynd ymlaen deg tudalen" + +#~ msgid "_Statusbar" +#~ msgstr "Bar _Statws" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Dangos neu cuddio'r bar statws" diff --git a/po/da.po b/po/da.po new file mode 100644 index 00000000..f05c2023 --- /dev/null +++ b/po/da.po @@ -0,0 +1,2155 @@ +# Danish translation of evince. +# Copyright (C) 2005-2009 Free Software Foundation, Inc. +# This file is distributed under the same licence as the evince package. +# Ole Laursen <olau@hardworking.dk>, 2005, 06. +# Peter Bach <bach.peter@gmail.com>, 2007. +# Kenneth Nielsen <k.nielsen81@gmail.com>, 2008-2010, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-22 15:20+0200\n" +"PO-Revision-Date: 2010-08-22 15:18+0200\n" +"Last-Translator: Kenneth Nielsen <k.nielsen81@gmail.com>\n" +"Language-Team: Danish <dansk@dansk-gruppen.dk>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Fejl ved kĆørsel af kommandoen ā%sā, med henblik pĆ„ at dekomprimere " +"tegneserien: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Kommandoen ā%sā fejlede under dekomprimering af tegneserien." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Kommandoen ā%sā afsluttedes ikke normalt." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ikke en MIME-type for en tegneserie: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Kan ikke finde en kommando som kan dekomprimere denne type af tegneserie" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Ukendt MIME-type" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Fil Ćødelagt" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Ingen filer i arkivet" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Ingen billeder fundet i arkivet %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Der opstod en fejl under sletning af ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Fejl %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Tegneserier" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokument har ugyldigt format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokumentet er sammensat af adskillige filer. En eller flere af disse filer " +"kan ikke tilgĆ„s." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-dokumenter" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-dokument har ugyldigt format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokumenter" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Dette vƦrk er placeret i det Ć„ndelige fƦlleseje (Public Domain)" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nej" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Ukendt skrifttype" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Intet navn" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Indlejret delmƦngde" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Indlejret" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Ikke indlejret" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokumenter" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ugyldig dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-slides" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Ingen fejl" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ikke tilstrƦkkelig hukommelse" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Kan ikke finde ZIP-signatur" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ugyldig ZIP-fil" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Flerfils-ZIP understĆøttes ikke" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Kan ikke Ć„bne filen" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Kan ikke lƦse data fra fil" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Kan ikke finde fil i ZIP-arkivet" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Ukendt fejl" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Kunne ikke indlƦse dokumentet ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Kunne ikke gemme dokumentet ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Postscript-dokumenter" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Kunne ikke gemme bilaget ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Kunne ikke Ć„bne bilaget ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Kunne ikke Ć„bne bilaget ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Filtype %s (%s) er ikke understĆøttet" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle dokumenter" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle filer" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Kunne ikke oprette en midlertidig fil: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Kunne ikke oprette et midlertidigt katalog: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen er ikke en gyldig .desktop-fil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ikke genkendt desktop-filversion \"%s\"" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Starter %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet accepterer ikke dokumenter givet ved kommandolinjen" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opstartstilvalg blev ikke genkendt : %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan ikke give dokument-URI'er til et \"Type=Link\" desktop-felt" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Ikke et startbart element" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Frakobl forbindelse til sessionshĆ„ndtering" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "SpecificĆ©r fil som indeholder gemt konfiguration" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FIL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "SpecificĆ©r sessionshĆ„ndterings-ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Indstillinger for sessionshĆ„ndtering:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Vis indstillinger for sessionshĆ„ndtering" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Vis ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Flyt pĆ„ vƦrktĆøjslinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Flyt det valgte element pĆ„ vƦrktĆøjslinjen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Fjern fra vƦrktĆøjslinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Fjern det valgte element pĆ„ vƦrktĆøjslinjen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Fjern vƦrktĆøjslinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Fjern den valgte vƦrktĆøjslinje" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Adskiller" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Bedste tilpasning" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Zoom sidebredde" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentfremviser" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Vis dokumenter med flere sider" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "IgnorĆ©r dokumentbegrƦnsninger" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"IgnorĆ©r dokumentbegrƦnsninger sĆ„som begrƦnsninger pĆ„ at kopiere eller " +"udskrive." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Slet den midlertidige fil" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Printer-indstillingsfil" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "DokumentforhĆ„ndsviser til MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Kunne ikke udskrive dokument" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Den valgte printer \"%s\" kunne ikke findes" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_ForegĆ„ende side" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "GĆ„ til den foregĆ„ende side" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_NƦste side" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "GĆ„ til den nƦste side" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ForstĆør dokumentet" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Formindsk dokumentet" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Udskriv" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Udskriv dette dokument" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "Zoom _vindue" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Lad det aktuelle dokument udfylde vinduet" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Zoom vindues_bredde" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Lad det aktuelle dokument udfylde vinduesbredden" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Side" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "VƦlg side" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Placering:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Emne:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Forfatter:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "NĆøgleord:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producent:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Ophavsmand:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Oprettet:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Ćndret:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Antal sider:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimeret:" + +# (v) eller (n) +# +# Ud af koden ses det at denne stĆ„r sammen med en hel rƦkke af egenskaber som ligner dokumentegenskaber, derfor antages det at det er (n). +# +# static const PropertyInfo properties_info[] = { +# { TITLE_PROPERTY, N_("Title") }, +# { URI_PROPERTY, N_("Location") }, +# { SUBJECT_PROPERTY, N_("Subject") }, +# { AUTHOR _PROPERTY, N_("Author") }, +# { KEYWORDS _PROPERTY, N_("Keywords") }, +# { PRODUCER_PROPERTY, N_("Producer") }, +# { CREATOR_PROPERTY, N_("Creator") }, +# { CREATION_DATE_PROPERTY, N_("Created") }, +# { MOD_DATE_PROPERTY, N_("Modified") }, +# { N_PAGES_PROPERTY, N_("Number of Pages") }, +# { LINEARIZED_PROPERTY, N_("Optimized") }, +# { FORMAT_PROPERTY, N_("Format") }, +# { SECURITY_PROPERTY, N_("Security") }, +# { PAPER_SIZE_PROPERTY, N_("Paper Size") } +# }; +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Sikkerhed:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "PapirstĆørrelse:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Ingen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f tommer" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, PortrƦt (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Landskab (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d af %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "af %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "IndlƦserā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Forbereder udskriftā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "FƦrdiggĆørā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Udskriver side %d af %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Udskrivning understĆøttes ikke for denne printer." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Ugyldigt sidevalg" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Advarsel" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Det valgte udskriftsinterval indeholder ingen sider" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Sideskalering:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Formindsk til printbart omrĆ„de" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Tilpas til printbart omrĆ„de" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"SkalĆ©r sider i dokumentet, sĆ„ledes at de passer til den valgte printerside. " +"VƦlg en af fĆølgende muligheder:\n" +"\n" +"ā¢ \"Ingen\": Der udfĆøres ikke nogen sideskalering.\n" +"\n" +"ā¢ \"Formindsk til printbart omrĆ„de\": Dokumentsider som er stĆørre end det " +"printbare omrĆ„de reduceres, sĆ„ledes at de passer til printersidens printbare " +"omrĆ„de.\n" +"\n" +"ā¢ \"Tilpas til printbart omrĆ„de\": Dokumentsider bliver forstĆørret eller " +"formindsket i passende grad, sĆ„ledes at de passer til printersidens " +"printbare omrĆ„de.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "AutorotĆ©r og centrĆ©r" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"RotĆ©r printerside-orientering for hver enkelt side, sĆ„ledes at den passer " +"til hver enkelt dokumentside. Dokumentsider vil blive centreret inden for " +"printersiden." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "VƦlg sidestĆørrelse ved hjƦlp af dokumentsidestĆørrelsen" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"NĆ„r dette er slĆ„et til, vil hver enkelt side blive udskrevet pĆ„ den samme " +"papirstĆørrelse som dokumentsiden." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "SidehĆ„ndtering" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Kunne ikke udskrive side %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rul op" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rul ned" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rul visning op" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rul visning ned" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentvisning" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "GĆ„ til side:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Slut pĆ„ prƦsentation. Klik for at afslutte." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "GĆ„ til fĆørste side" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "GĆ„ til foregĆ„ende side" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "GĆ„ til nƦste side" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "GĆ„ til sidste side" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "GĆ„ til side" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Find" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "GĆ„ til side %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "GĆ„ til %s i filen ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "GĆ„ til filen ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Start %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Find:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Find _forrige" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Find foregĆ„ende forekomst af sĆøgeteksten" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Find _nƦste" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Find nƦste forekomst af sĆøgeteksten" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Skeln mellem store/smĆ„ bogstaver" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Skift mellem versalfĆølsom sĆøgning" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Note" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Kommentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "NĆøgle" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "HjƦlp" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nyt afsnit" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Afsnit" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "IndsƦt" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kryds" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Cirkel" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Ukendt" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Annotationsegenskaber" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Farve:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Gennemsigtig" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Ugennemsigtig" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Indledende vinduestilstand:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ć bn" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Luk" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "KĆører i prƦsentationstilstand" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Adgangskode for dokumentet %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konverterer %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d af %d dokumenter konverteret" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konverterer metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evinces metadataformat er blevet Ʀndret og det vil derfor vƦre nĆødvendigt at " +"udfĆøre en konvertering. Hvis konverteringsprocessen afbrydes vil " +"metadatalageret ikke virke." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Ć bn et af de seneste dokumenter" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Dette dokument er lĆ„st og kan kun lƦses ved at indtaste den korrekte " +"adgangskode." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "LĆ„s dokument _op" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Indtast adgangskode" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Adgangskode pĆ„krƦvet" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumentet ā%sā er lĆ„st og krƦver en adgangskode fĆør det kan lƦses." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Adgangskode:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Glem adgangskode _Ćøjeblikkeligt" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Husk adgangskode indtil du _logger ud" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Husk altid" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Egenskaber" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Generelt" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Skrifttyper" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumentlicens" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Skrifttype" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Indsamler oplysninger om skrifttypeā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "BrugervilkĆ„r" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Tekstlicens" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Yderligere information" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Liste" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Annotationer" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "TilfĆøj tekstannotationer" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "TilfĆøj" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokumentet indeholder ingen annotationer" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Side %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Bilag" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lag" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Udskrivā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturer" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Side %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Side %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Dokumentet indeholder ingen sider" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Dokumentet indeholder kun tomme sider" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Kan ikke Ć„bne dokument" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "IndlƦser dokument fra ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Henter dokument (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Kunne ikke genindlƦse fjernfil." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "GenindlƦser dokumentet fra %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Kunne ikke genindlƦse dokument." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Ć bn dokument" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Gemmer dokument til %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Gemmer bilag til %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Gemmer billede til %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Filen kunne ikke gemmes som ā%sā." + +# Uf +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "LƦgger dokument op (%d%%)" + +# Dobbelt uf +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "LƦgger bilag op (%d%%)" + +# Ahh +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "LƦgger billede op (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Gem en kopi" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ventende job i kĆøen" +msgstr[1] "%d ventende job i kĆøen" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Udskriver job ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokumentet indeholder formularfelter, som er blevet udfyldt. Hvis du ikke " +"gemmer en kopi, vil disse Ʀndringer gĆ„ tabt." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokumentet indeholder nye eller modificerede annotationer. Hvis du ikke " +"gemmer en kopi, vil disse Ʀndringer gĆ„ tabt." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Gem en kopi af dokumentet ā%sā fĆør der lukkes?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Luk _uden at gemme" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Gem en _kopi" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Vent indtil udskriftsjob ā%sā fƦrdiggĆøres, fĆør der lukkes?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Der er %d aktive udskriftsjob. Vent indtil udskrivning fƦrdiggĆøres fĆør der " +"lukkes?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Hvis du lukker vinduet, vil ventende job ikke blive udskrevet." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Annuller _udskrivning og luk" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Luk _efter udskrivning" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "RedigĆ©r vƦrktĆøjslinje" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Der opstod en fejl ved visning af hjƦlp" + +# Dette er i "Om"-dialogen, sĆ„ vi har lidt frihed i formuleringen, derfor oversat til "GĆør brug af .." +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentfremviser.\n" +"GĆør brug af %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince er fri software. Du kan redistribuere og/eller Ʀndre programmet under " +"betingelserne givet i GNU General Public License som udgives af Free " +"Software Foundation; enten version 2 af licensen, eller (hvis du Ćønsker det) " +"enhver senere version.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Gossip distribueres i hĆ„b om at programmet er nyttigt, men uden NOGEN " +"GARANTI, ikke engang underforstĆ„et garanti om at det er SALGBART eller " +"PASSER TIL ET BESTEMT FORMĆ L. Se GNU General Public License for detaljer.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Du bĆør have modtaget en kopi af GNU General Public License sammen med " +"Evince. Hvis du ikke har det, kan du skrive til Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince-forfatterne" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Ole Laursen\n" +"Peter Bach\n" +"Kenneth Nielsen\n" +"\n" +"Dansk-gruppen <dansk@dansk-gruppen.dk>\n" +"Mere info: http://www.dansk-gruppen.dk" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d fundet pĆ„ denne side" +msgstr[1] "%d fundet pĆ„ denne side" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Ikke fundet" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% tilbage at sĆøge" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Fil" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_RedigĆ©r" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Vis" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Navigering" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_HjƦlp" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Ć bnā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Ć bn et eksisterende dokument" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Ć bn en _kopi" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Ć bn en kopi af det aktuelle dokument i et nyt vindue" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "_Gem en kopiā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Gem en kopi af det aktuelle dokument" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Udskrivā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "_Egenskaber" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "MarkĆ©r _alt" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Findā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "SĆøg efter noget tekst i dokumentet" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_VƦrktĆøjslinje" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "RotĆ©r _venstre" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "RotĆ©r _hĆøjre" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Gem de nuvƦrende indstillinger som _standardindstillinger" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_GenindlƦs" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "GenindlƦs dokumentet" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Auto_rul" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_FĆørste side" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "GĆ„ til den fĆørste side" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Sidste side" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "GĆ„ til den sidste side" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Indhold" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Om" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Forlad fuldskƦrm" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Forlad fuldskƦrmstilstand" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Start prƦsentation" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Start en prƦsentation" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_VƦrktĆøjslinje" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Vis eller skjul vƦrktĆøjslinjen" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Side_panel" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Vis eller skjul sidepanelet" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_FortlĆøbende" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Vis hele dokumentet" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dobbelt" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Vis to sider samtidigt" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_FuldskƦrm" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Udvid vinduet sĆ„ det fylder hele skƦrmen" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "PrƦ_sentation" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Vis dokumentet som en prƦsentation" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_InvertĆ©r farver" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Vis sideindhold med farverne inverteret" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Ć bn henvisning" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_GĆ„ til" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Ć ben i ny _vindue" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_KopiĆ©r adresse" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "_Gem billede somā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "KopiĆ©r _billede" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Annotationsegenskaberā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Ć bn bilag" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_Gem bilag somā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "JustĆ©r zoomniveauet" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Tilbage" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Flyt henover besĆøgte sider" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "ForegĆ„ende" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "NƦste" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Zoom ind" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Zoom ud" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Tilpas bredde" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Kan ikke Ć„bne ekstern applikation." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Kan ikke Ć„bne eksternt link" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Kunne ikke finde passende format at gemme billede i" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Billedet kunne ikke gemmes." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Gem billede" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Kan ikke Ć„bne bilag" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Kunne ikke gemme bilaget." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Gem bilag" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā adgangskode pĆ„krƦvet" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Efter filtype" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Mate Dokumentfremviser" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "SidemƦrkaten fra dokumentet som skal vises." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "SIDE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Sidenummeret fra dokumentet som skal vises." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Start evince i fuldskƦrmstilstand" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Start evince i prƦsentationstilstand" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Start evince som forhĆ„ndsvisning" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ordet eller teksten der skal sĆøges efter i dokumentet" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRENG" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Booleske valgmuligheder: Hvis sand aktiveres generering af miniaturer, hvis " +"falsk deaktiveres genereringen af nye miniaturer" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "AktivĆ©r miniaturer for PDF-dokumenter" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Miniature-kommando til PDF-dokumenter" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Gyldig kommando plus parametre til miniaturegenerering af PDF-dokumenter. Se " +"dokumentationen for Caja' miniaturegenerering for flere oplysninger." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Side_opsƦtningā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "OpsƦt sideindstillingerne for udskrivning" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU-dokument har ugyldigt format" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Kunne ikke oprette fil ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "SĆøgetekst" + +#~ msgid "The name of the string to be found" +#~ msgstr "Navnet pĆ„ teksten som skal findes" + +#~ msgid "Case sensitive" +#~ msgstr "Skeln mellem store/smĆ„ bogstaver" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "SAND for en sĆøgning der skelner mellem store og smĆ„ bogstaver" + +#~ msgid "Highlight color" +#~ msgstr "FremhƦvningsfarve" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Farve til fremhƦvning af fundne forekomster" + +#~ msgid "Current color" +#~ msgstr "Aktuel farve" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Farve til fremhƦvning af den aktuelle forekomst" + +#~ msgid "Recover previous documents?" +#~ msgstr "GendĆ”n tidligere dokumenter?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince har tilsyneladende lukket uventet ned sidste gang det blev brugt. " +#~ "Du kan gendanne de Ć„bnede dokumenter." + +#~ msgid "_Don't Recover" +#~ msgstr "GendĆ”n _ikke" + +#~ msgid "_Recover" +#~ msgstr "_GendĆ”n" + +#~ msgid "Crash Recovery" +#~ msgstr "Nedbrudsgendannelse" + +#~ msgid "Print..." +#~ msgstr "Udskriv..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Kunne ikke oprette symlink ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Kan ikke Ć„bne en kopi." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Gem en kopi..." + +#~ msgid "_Print..." +#~ msgstr "_Udskriv..." + +#~ msgid "_Find..." +#~ msgstr "_Find..." + +#~ msgid "Co_nnect" +#~ msgstr "Til_slut" + +#~ msgid "Connect _anonymously" +#~ msgstr "Tilslut _anonymt" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Tilslut som b_ruger:" + +#~ msgid "_Username:" +#~ msgstr "_Brugernavn:" + +#~ msgid "_Domain:" +#~ msgstr "_DomƦne:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Glem adgangskode Ćøjeblikkeligt" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Husk adgangskode indtil du logger ud" + +#~ msgid "_Remember forever" +#~ msgstr "_Husk altid" + +#~ msgid "File not available" +#~ msgstr "Filen er ikke tilgƦngelig" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Fjern-filer er ikke understĆøttet" + +#~ msgid "Password Entry" +#~ msgstr "Adgangskode indtastning" + +#~ msgid "Remember password for this session" +#~ msgstr "Husk adgangskode i denne session" + +#~ msgid "Save password in keyring" +#~ msgstr "Gem adgangskode i nĆøglering" + +#~ msgid "<b>Format:</b>" +#~ msgstr "<b>Format:</b>" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>Titel:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "Find foregĆ„ende" + +#~ msgid "Find Next" +#~ msgstr "Find nƦste" + +#~ msgid "Incorrect password" +#~ msgstr "Forkert adgangskode" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Statement" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10Ć14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Kan ikke Ć„bne filen ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "Kunne ikke indlƦse dokumentet ā%sā. Ghostscript-fortolkeren blev ikke " +#~ "fundet i sĆøgestien" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Indkapslet PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Fortolker fejlede." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Ikke-hĆ„ndteret MIME-type: ā%sā" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince - dokumentfremviser" + +#~ msgid "Images" +#~ msgstr "Billeder" + +#~ msgid "Open ā%sā" +#~ msgstr "Ć bn ā%sā" + +#~ msgid "Empty" +#~ msgstr "Tom" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "Generering af PDF er ikke understĆøttet" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "Du forsĆøgte at udskrive til en printer med driveren ā%sā. Dette program " +#~ "krƦver en Postscript-printerdriver." + +#~ msgid "Pages" +#~ msgstr "Sider" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "Ugyldig URI: ā%sā" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "Intet dokument indlƦst." + +#~ msgid "Broken pipe." +#~ msgstr "Brudt dataledning." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Fejl ved udpakning af filen ā%sā:\n" + +#~ msgid "File is not readable." +#~ msgstr "Filen kan ikke lƦses." + +#~ msgid "Document loaded." +#~ msgstr "Dokument indlƦst." + +#~ msgid "_Previous" +#~ msgstr "_ForegĆ„ende" + +#~ msgid "_Next" +#~ msgstr "_NƦste" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "SĆøgefunktionen virker ikke for dette dokument" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "SĆøgning efter tekst er kun understĆøttet for PDF-dokumenter." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "<span size=\"smaller\"> </span>" +#~ msgstr "<span size=\"smaller\"> </span>" + +#~ msgid "Show sidebar by default" +#~ msgstr "Vis sidepanel som standard" + +#~ msgid "Show sidebar by default." +#~ msgstr "Vis sidepanel som standard." + +#~ msgid "Show statusbar by default" +#~ msgstr "Vis statuslinje som standard" + +#~ msgid "Show statusbar by default." +#~ msgstr "Vis statuslinje som standard." + +#~ msgid "Show toolbar by default" +#~ msgstr "Vis vƦrktĆøjslinje som standard" + +#~ msgid "Show toolbar by default." +#~ msgstr "Vis vƦrktĆøjslinje som standard." + +#~ msgid "Sidebar size by default" +#~ msgstr "Forvalgt stĆørrelse af sidepanel" + +#~ msgid "Sidebar size by default." +#~ msgstr "Forvalgt stĆørrelse af sidepanel." + +#~ msgid "Error while converting pdf file %s:\n" +#~ msgstr "Fejl ved konvertering af PDF-filen %s:\n" + +#~ msgid "Error while scanning file %s\n" +#~ msgstr "Fejl ved gennemsĆøgning af filen %s\n" + +#~ msgid "The file is not a PostScript document." +#~ msgstr "Filen er ikke et Postscript-dokument." + +#~ msgid "Unable to find glade file" +#~ msgstr "Kunne ikke finde Glade-fil" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "Gladefilen \"%s\" blev ikke fundet. KontrollĆ©r at din installation er " +#~ "korrekt." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Dokumentfremviser - adgangskode pĆ„krƦvet" + +#~ msgid "Many..." +#~ msgstr "Mange..." + +#~ msgid "Not so many..." +#~ msgstr "Ikke sĆ„ mange..." + +#~ msgid "Close this window" +#~ msgstr "Luk dette vindue" + +#~ msgid "Copy text from the document" +#~ msgstr "KopiĆ©r tekst fra dokumentet" + +#~ msgid "Select the entire page" +#~ msgstr "MarkĆ©r hele siden" + +#~ msgid "Reset the zoom level to the default value" +#~ msgstr "Nulstil zoomniveauet til standardvƦrdien" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Vis hjƦlpen for fremvisningsprogrammet" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Vis bidragyderne til dokumentfremviseren" + +#~ msgid "_Statusbar" +#~ msgstr "_Statuslinje" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Vis eller skjul statuslinjen" + +#~ msgid "Single" +#~ msgstr "Enkelt" + +#~ msgid "Show the document one page at a time" +#~ msgstr "Vis dokumentet en side af gangen" + +#~ msgid "Multi" +#~ msgstr "Flere" + +#~ msgid "Exit Fullscreen" +#~ msgstr "Afslut fuldskƦrm" + +#~ msgid "Open a file" +#~ msgstr "Ć bn en fil" + +#~ msgid "_Copy" +#~ msgstr "_KopiĆ©r" + +#~ msgid "_Normal Size" +#~ msgstr "_Normal stĆørrelse" + +#~ msgid "Zoom to the normal size" +#~ msgstr "Zoom til den normal stĆørrelse" + +#~ msgid "Zoom to fit the document to the current window" +#~ msgstr "Zoom sĆ„ dokumentet passer i vinduet" + +#~ msgid "Zoom to fit the width of the current window " +#~ msgstr "Zoom sĆ„ dokumentet passer til bredden af vinduet" + +#~ msgid "_Page Up" +#~ msgstr "_Side op" + +#~ msgid "_Page Down" +#~ msgstr "_Side ned" + +#~ msgid "Up" +#~ msgstr "Op" + +#~ msgid "Down" +#~ msgstr "Ned" + +#~ msgid "Found on page %d" +#~ msgstr "Fundet pĆ„ %d" + +#~ msgid "_Back" +#~ msgstr "_Tilbage" + +#~ msgid "Go to the page viewed before this one" +#~ msgstr "GĆ„ til den side som blev vist fĆør denne" + +#~ msgid "Fo_rward" +#~ msgstr "_Fremad" + +#~ msgid "Go back" +#~ msgstr "GĆ„ tilbage" + +#~ msgid "Back history" +#~ msgstr "Tilbagehistorik" + +#~ msgid "Go forward" +#~ msgstr "GĆ„ fremad" + +#~ msgid "Forward history" +#~ msgstr "Fremadhistorik" diff --git a/po/de.po b/po/de.po new file mode 100644 index 00000000..dc22352e --- /dev/null +++ b/po/de.po @@ -0,0 +1,1812 @@ +# Copyright (C) Martin Kretzschmar +# This file is distributed under the same license as the Evince package. +# +# Based on German GPdf and GGv translations. +# +# Copyright on GPdf and GGv translations is held by its translators. +# Please keep in sync with GPdf and GGv translations. +# +# printer page - Druckseite +# printable area - Druckbereich +# +# Martin Kretzschmar <martink@gnome.org>, 2004. +# Frank Arnold <frank@scirocco-5v-turbo.de>, 2005. +# Hendrik Richter <hendrikr@gnome.org>, 2005, 2006. +# Hendrik Brandt <heb@mate-de.org>, 2005. +# Christian Kintner <ckintner@mate-de.org>, 2007. +# Mario BlƤttermann <mariobl@gnome.org>, 2008-2010. +# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-02 10:23+0200\n" +"PO-Revision-Date: 2010-09-02 10:24+0200\n" +"Last-Translator: Christian Kirbach <Christian.Kirbach@googlemail.com>\n" +"Language-Team: Deutsch <mate-de@gnome.org>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Fehler beim Aufruf des Befehls Ā»%sĀ« zum Entpacken des Comicbuchs: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Mit dem Befehl Ā»%sĀ« konnte das Comicbuch nicht entpackt werden." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Der Befehl Ā»%sĀ« wurde nicht normal beendet." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Kein MIME-Typ eines Comicbuchs: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Der entsprechende Befehl zum Entpacken eines Comicbuchs dieses Typs konnte " +"nicht gefunden werden" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Unbekannter MIME-Typ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Datei ist beschƤdigt" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Keine Dateien im Archiv" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Im Archiv Ā»%sĀ« konnten keine Bilder gefunden werden" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Beim Lƶschen von Ā»%sĀ« ist ein Fehler aufgetreten." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Fehler %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ComicbĆ¼cher" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Das DjVu-Dokument besitzt ein ungĆ¼ltiges Format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Das Dokument besteht aus mehreren Dateien. Auf eine oder mehrere Dateien " +"kann nicht zugegriffen werden." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-Dokumente" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Das DVI-Dokument besitzt ein ungĆ¼ltiges Format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-Dokumente" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Dieses Werk ist Gemeinfrei" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nein" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Unbekannter Schrifttyp" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Kein Name" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Eingebetteter Teilsatz" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Eingebettet" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Nicht eingebettet" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-Dokumente" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "UngĆ¼ltiges Dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-PrƤsentationen" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Kein Fehler" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nicht genug Speicher" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Keine ZIP-Signatur gefunden" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "UngĆ¼ltige ZIP-Datei" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIP-Archive mit mehreren Dateien werden nicht unterstĆ¼tzt" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Die Datei konnte nicht geƶffnet werden" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Die Daten der Datei konnten nicht gelesen werden" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Datei im ZIP-Archiv nicht gefunden" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Unbekannter Fehler" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Dokument Ā»%sĀ« konnte nicht geladen werden" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Dokument Ā»%sĀ« konnte nicht gespeichert werden" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-Dokumente" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Anlage Ā»%sĀ« konnte nicht gespeichert werden: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Anlage Ā»%sĀ« konnte nicht geƶffnet werden: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Anlage Ā»%sĀ« konnte nicht geƶffnet werden" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Der Dateityp %s (%s) wird nicht unterstĆ¼tzt." + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle Dokumente" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle Dateien" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Erstellung einer temporƤren Datei ist gescheitert: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Erstellung eines temporƤren Ordners ist gescheitert: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datei ist keine gĆ¼ltige *.desktop-Datei" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version der Desktop-Datei Ā»%sĀ« wurde nicht erkannt" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s wird gestartet" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Anwendung akzeptiert keine Dokumente als Befehlszeilenargumente" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nicht erkannte Startoption: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "URIs kƶnnen nicht an Ā»Type=LinkĀ«-Desktop-Dateien weitergegeben werden" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Kein ausfĆ¼hrbarer Eintrag" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Verbindung zur Sitzungsverwaltung deaktivieren" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Datei auswƤhlen, die eine gespeicherte Konfiguration enthƤlt" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "DATEI" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ID der Sitzungsverwaltung angeben" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Kennung" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Optionen der Sitzungsverwaltung:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Optionen der Sitzungsverwaltung anzeigen" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Ā»_%sĀ« anzeigen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Auf Werkzeugleiste _verschieben" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Das gewƤhlte Objekt auf der Werkzeugleiste verschieben" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Aus Werkzeugleiste _entfernen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Das gewƤhlte Objekt aus der Werkzeugleise entfernen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Werkzeugleiste _entfernen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Die gewƤhlte Werkzeugleiste entfernen" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Trennlinie" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Einpassen" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Auf Seitenbreite einpassen" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentenbetrachter" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Mehrseitige Dokumente anzeigen" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Restriktionen des Dokuments Ć¼bergehen" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Restriktionen des Dokuments, wie das Verbot zum Kopieren oder Drucken, " +"Ć¼bergehen." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "TemporƤre Datei lƶschen" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Einstellungsdatei drucken" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE Dokumentenvorschau" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Dokument konnte nicht gedruckt werden" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Der gewƤhlte Drucker Ā»%sĀ« konnte nicht gefunden werden" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Vorherige Seite" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Zur vorherigen Seite gehen" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_NƤchste Seite" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Zur nƤchsten Seite gehen" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "Ansicht vergrƶĆern" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Ansicht verkleinern" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Drucken" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Dieses Dokument drucken" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_Einpassen" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Das momentan angezeigte Dokument in das Fenster einpassen" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "_Seitenbreite einpassen" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "" +"Die Seitenbreite des momentan angezeigten Dokuments an die Fensterbreite " +"anpassen" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Seite" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Seite auswƤhlen" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Ort:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Betreff:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Verfasser:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "SchlĆ¼sselwƶrter:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Hersteller:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Ersteller:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Erstellt:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Bearbeitet:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Seitenanzahl:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimiert:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Sicherheit:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "PapiergrƶĆe:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Kein" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f Zoll" + +# CHECK +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Hochformat (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Querformat (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d von %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "von %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Wird geladen ā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Drucken wird vorbereitet ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "AbschlieĆen ā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Seite %d von %d wird gedruckt ā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Dieser Drucker wird nicht unterstĆ¼tzt." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "UngĆ¼ltige Seitenauswahl" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Warnung" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Ihre Druckbereichsauswahl enthƤlt keine Seiten" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Seitenskalierung:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Auf Druckbereich verkleinern" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Auf Druckbereich anpassen" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Die Dokumentseiten skalieren, so dass sie auf die gewƤhlte Druckseite " +"passen. WƤhlen Sie eine der folgenden Optionen:\n" +"\n" +"ā¢ Ā»KeinĀ«: Es wird keine Skalierung durchgefĆ¼hrt.\n" +"\n" +"ā¢ Ā»Auf Druckbereich verkleinernĀ«: Dokumentseiten werden auf den Druckbereich " +"der Seite verkleinert, wenn sie grƶĆer als dieser sind.\n" +"\n" +"ā¢ Ā»Auf Druckbereich anpassenĀ«: Dokumentseiten werden bei Bedarf vergrƶĆert " +"oder verkleinert, um in den Druckbereich der Seite zu passen.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Automatisch drehen und zentrieren" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Druckseiten auf das Hoch-/Querformat jeder Dokumentseite anpassen. Die " +"Dokumentseiten werden in der Druckseite zentriert." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Die SeitengrƶĆe anhand der GrƶĆe der Dokumentseite wƤhlen" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Legt fest, ob jede Seite auf der gleichen PapiergrƶĆe wie die Dokumentseite " +"gedruckt werden soll." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Seitenverarbeitung" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Fehler beim Drucken der Seite %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Hoch scrollen" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Runter scrollen" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Ansicht nach oben verschieben" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Ansicht nach unten verschieben" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentenansicht" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Zu folgender Seite gehen:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Ende der PrƤsentation. Klicken Sie zum SchlieĆen." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Zur ersten Seite gehen" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Zur vorherigen Seite gehen" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Zur nƤchsten Seite gehen" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Zur letzten Seite gehen" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Zu Seite gehen" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Suchen" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Zu Seite %s gehen" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Zu %s in Datei Ā»%sĀ« gehen" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Zu Datei Ā»%sĀ« gehen" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s starten" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Suchen:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "_RĆ¼ckwƤrts suchen" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Das vorherige Vorkommen dieser Zeichenkette suchen" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "_Weitersuchen" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Das nƤchste Vorkommen dieser Zeichenkette suchen" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "GroĆ-/Kleinschreibung be_achten" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" +"Legt fest, ob bei der Suche die GroĆ-/Kleinschreibung berĆ¼cksichtigt wird" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Symbol:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Notiz" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Kommentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "SchlĆ¼ssel" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Hilfe" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Neuer Absatz" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Absatz" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "EinfĆ¼gen" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kreuz" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Kreis" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Unbekannt" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Eigenschaften fĆ¼r Anmerkungen" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Farbe:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Deckend" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "AnfƤnglicher Fensterzustand:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ćffnen" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "SchlieĆen" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Derzeit im PrƤsentationsmodus" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Passwort fĆ¼r Dokument Ā»%sĀ«" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s wird umgewandelt" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d von %d Dokumenten umgewandelt" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Metadaten werden umgewandelt" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Das von Evince verwendete Metadaten-Format wurde geƤndert. Nun muss eine " +"Migration vorgenommen werden. Wenn diese Migration abgebrochen wird, dann " +"wird die Speicherung von Metadaten nicht funktionieren." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Eines der zuletzt geƶffneten Dokumente ƶffnen" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Dieses Dokument ist gesperrt und kann nur nach Eingabe des korrekten " +"Passworts gelesen werden." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "Dokument _freigeben" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Passwort eingeben" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Passwort erforderlich" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Das Dokument Ā»%sĀ« ist gesperrt und benƶtigt ein Passwort, bevor es geƶffnet " +"werden kann." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Passwort:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Passwort sofort _vergessen" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_Innerhalb dieser Sitzung an Passwort erinnern" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "FĆ¼r immer e_rinnern" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Eigenschaften" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Allgemein" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Schrift" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Lizenz des Dokuments" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Schrift" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Schriftinformationen werden gesammelt ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Nutzungsbedingungen" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Lizenztext" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Weitere Informationen" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Liste" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Anmerkungen" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Text" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Textanmerkung hinzufĆ¼gen" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "HinzufĆ¼gen" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Das Dokument enthƤlt keine Anmerkungen" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Seite %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Anlagen" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Ebenen" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Drucken ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Inhalt" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Vorschaubilder" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Seite %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Seite %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Das Dokument enthƤlt keine Seiten" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Das Dokument enthƤlt nur leere Seiten" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Dokument konnte nicht geƶffnet werden" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Dokument wird von Ā»%sĀ« geladen" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Dokument wird heruntergeladen (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Laden der entfernten Datei ist fehlgeschlagen." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Dokument wird erneut von %s geladen" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Dokument konnte nicht erneut geladen werden." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Dokument ƶffnen" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Dokument wird in %s gespeichert" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Anlage wird in %s gespeichert" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Bild wird in %s gespeichert" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Die Datei konnte nicht als Ā»%sĀ« gespeichert werden." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Dokument wird hochgeladen (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Anlage wird hochgeladen (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Bild wird hochgeladen (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Eine Kopie speichern" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ausstehender Auftrag in Warteschlange" +msgstr[1] "%d ausstehende AuftrƤge in Warteschlange" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Druckauftrag Ā»%sĀ«" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Das Dokument enthƤlt Formularfelder, die ausgefĆ¼llt wurden. Wenn keine Kopie " +"gespeichert wird, gehen die EintrƤge dauerhaft verloren." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Das Dokument enthƤlt neue oder geƤnderte Anmerkungen. Wenn keine Kopie " +"gespeichert wird, gehen die EintrƤge dauerhaft verloren." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Soll vor dem SchlieĆen eine Kopie von Ā»%sĀ« gespeichert werden?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "SchlieĆen _ohne zu speichern" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Eine Kopie _speichern" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"Soll vor dem SchlieĆen auf das Beenden des Druckauftrages Ā»%sĀ« gewartet " +"werden?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d DruckauftrƤge sind aktiv. Soll vor dem SchlieĆen auf das Beenden des " +"Druckens gewartet werden?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Wenn Sie das Fenster schlieĆen, werden ausstehende DruckauftrƤge nicht " +"ausgefĆ¼hrt." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Drucken a_bbrechen und schlieĆen" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Nach dem Drucken _schlieĆen" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Werkzeugleisteneditor" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Beim Anzeigen der Hilfe ist ein Fehler aufgetreten" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentenbetrachter\n" +"Verwendet %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ist freie Software. Sie kƶnnen es unter den Bedingungen der GNU " +"General Public License, wie von der Free Software Foundation verƶffentlicht, " +"weitergeben und/oder modifizieren, entweder gemĆ¤Ć Version 2 der Lizenz oder " +"(nach Ihrer Option) jeder spƤteren Version.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Die Verƶffentlichung von Evince erfolgt in der Hoffnung, dass es Ihnen von " +"Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite " +"Garantie der MARKTREIFE oder der VERWENDBARKEIT FĆR EINEN BESTIMMTEN ZWECK. " +"Details finden Sie in der GNU General Public License.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Sie sollten ein Exemplar der GNU General Public License zusammen mit Evince " +"erhalten haben. Falls nicht, schreiben Sie an die Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Die Evince-Autoren" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Martin Kretzschmar <martink@gnome.org>\n" +"Frank Arnold <frank@scirocco-5v-turbo.de>\n" +"Hendrik Brandt <heb@mate-de.org>\n" +"Mario BlƤttermann <mariobl@gnome.org>\n" +"Christian Kirbach <Christian.Kirbach@googlemail.com>\n" +"Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d Mal auf dieser Seite gefunden" +msgstr[1] "%d Mal auf dieser Seite gefunden" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Nicht gefunden" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Noch %3d%% zu durchsuchen" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Datei" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Bearbeiten" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Ansicht" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Gehe zu" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_Hilfe" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "Ć_ffnen ā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Ein vorhandenes Dokument ƶffnen" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Eine _Kopie ƶffnen" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "" +"Eine Kopie des momentan angezeigten Dokuments in einem neuen Fenster ƶffnen" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "Eine Kopie _speichern ā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Eine Kopie des momentan angezeigten Dokuments speichern" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Drucken ā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "Ei_genschaften" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "_Alles auswƤhlen" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Suchen ā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Ein Wort oder einen Ausdruck im Dokument suchen" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_Werkzeugleiste" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Nach _links drehen" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Nach _rechts drehen" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Momentane Einstellungen als Stan_dard speichern" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "Ak_tualisieren" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Das Dokument aktualisieren" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Automatischer _Bildlauf" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_Erste Seite" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Zur ersten Seite gehen" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Letzte Seite" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Zur letzten Seite gehen" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "I_nhalt" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Info" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Vollbild verlassen" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Vollbildmodus verlassen" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "PrƤsentation starten" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Eine PrƤsentation starten" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_Werkzeugleiste" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Die Werkzeugleiste anzeigen/verbergen" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "S_eitenleiste" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Die Seitenleiste anzeigen/verbergen" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Fortlaufend" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Das gesamte Dokument anzeigen" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Zweiseitig" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Zwei Seiten auf einmal anzeigen" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Vollbild" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Das Fenster bildschirmfĆ¼llend vergrƶĆern" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_PrƤsentation" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Das Dokument als PrƤsentation anzeigen" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Invertierte Farben" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Seiteninhalt mit invertierten Farben darstellen" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "Link ƶ_ffnen" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_Gehe zu" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "In neuem _Fenster ƶffnen" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "Link-Adresse _kopieren" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "Bild _speichern unter ā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Bild _kopieren" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Eigenschaften fĆ¼r Anmerkungen ā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "Anlage ƶ_ffnen" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Anlage _speichern als ā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "VergrƶĆern" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Die VergrƶĆerungsstufe anpassen" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "ZurĆ¼ck" + +# CHECK +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Durch die betrachteten Seiten bewegen" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Vorherige" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "NƤchste" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "VergrƶĆern" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Verkleinern" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Breite einpassen" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Externe Anwendung konnte nicht geƶffnet werden." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Externer Link konnte nicht geƶffnet werden" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Es wurde kein geeignetes Format zum Speichern des Bildes gefunden" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Das Bild konnte nicht gespeichert werden." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Bild speichern" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Anlage konnte nicht geƶffnet werden" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Die Anlage konnte nicht gespeichert werden." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Anlage speichern" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Passwort erforderlich" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Nach Endung" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE Dokumentenbetrachter" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Die anzuzeigende Seitenbezeichnung des Dokuments." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "SEITE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Die anzuzeigende Seitennummer des Dokuments." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Evince im Vollbildmodus starten" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Evince im PrƤsentationsmodus starten" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Evince als Vorschaubetrachter starten" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Das Schlagwort welches im Dokument gesucht werden soll" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ZEICHENKETTE" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[DATEI ā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"VerfĆ¼gbare boolesche Werte: Wahr (true) aktiviert die Erstellung von " +"Vorschaubildern, wƤhrend unwahr (false) das Erzeugen neuer Vorschaubilder " +"deaktiviert." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Vorschaubilder von PDF-Dokumenten aktivieren" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Vorschaubefehl fĆ¼r PDF-Dokumente" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"GĆ¼ltiger Befehl plus Argumente fĆ¼r die PDF-Dokumentenvorschau. Bitte schauen " +"Sie fĆ¼r weiterfĆ¼hrende Informationen in der Dokumentation der Caja-" +"Dokumentvorschau nach." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Seite einric_hten ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Die Seiteneinstellungen zum Drucken festlegen" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "Das DJVU-Dokument besitzt ein ungĆ¼ltiges Format" + +#~ msgid "Print..." +#~ msgstr "Drucken ā¦" + +#~ msgid "_Save a Copy..." +#~ msgstr "Eine Kopie _speichern ā¦" + +#~ msgid "_Print..." +#~ msgstr "_Drucken ā¦" + +#~ msgid "_Find..." +#~ msgstr "_Suchen ā¦" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Datei Ā»%sĀ« konnte nicht erstellt werden: %s" + +#~ msgid "Search string" +#~ msgstr "Suchausdruck" + +#~ msgid "The name of the string to be found" +#~ msgstr "Die zu suchende Zeichenkette" + +#~ msgid "Case sensitive" +#~ msgstr "GroĆ-/Kleinschreibung beachten" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE fĆ¼r Suche unter Beachtung der GroĆ-/Kleinschreibung" + +#~ msgid "Highlight color" +#~ msgstr "Hervorhebungsfarbe" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Farbe zur Hervorhebung aller Ćbereinstimmungen" + +#~ msgid "Current color" +#~ msgstr "Farbe fĆ¼r aktuelle Ćbereinstimmung" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Farbe zur Hervorhebung der aktuellen Ćbereinstimmung" + +#~ msgid "Recover previous documents?" +#~ msgstr "Vorherige Dokumente wiederherstellen?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince scheint beim letzten Mal abgestĆ¼rzt oder abgewĆ¼rgt worden zu sein. " +#~ "Sie kƶnnen die geƶffneten Dokumente wiederherstellen." + +#~ msgid "_Don't Recover" +#~ msgstr "_Nicht wiederherstellen" + +#~ msgid "_Recover" +#~ msgstr "_Wiederherstellen" + +#~ msgid "Crash Recovery" +#~ msgstr "Absturz-Wiederherstellung" diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 00000000..58e71d33 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,1603 @@ +# Dzongkha translation of evince +# Copyright @ 2006 Free Software Foundation,Inc. +# Mindu Dorji +# +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD.dz\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-04-12 03:16+0100\n" +"PO-Revision-Date: 2008-08-26 11:37+0530\n" +"Last-Translator: Dawa pemo <daws_403@hotmail.com>\n" +"Language-Team: DZONGKHA <pgeyleg@dit.gov.bt>\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: Dzongkha\n" +"X-Poedit-Country: Bhutan\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../backend/comics/comics-document.c:163 +#, c-format +msgid "File corrupted." +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ą½£ą½“ą¼ą½ą¾±ą½“ą½¢ą¼ą½ą½“ą½" + +#: ../backend/comics/comics-document.c:197 +#, c-format +msgid "No images found in archive %s" +msgstr "ą½”ą½²ą½ą¼ą½ą½ą½¼ą½ą¼%są½ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą¼" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą½ą½¢ą¼ą½¦ą¾²ą½“ą½ą¼ą½ą½²ą¼ą½ą½ŗą½ą¼" + +#: ../backend/djvu/djvu-document.c:167 +#, c-format +msgid "The document is composed by several files. One or more of such files cannot be accessed." +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½£ą½ŗą¼ą½¤ą¼ą½ ą½²ą½ą¼ą½ą½²ą½¦ą¼ą½ą½¢ą¾©ą½ą¼ą½ą½“ą½ą¼ ą½ą½ ą½²ą½ą¼ą½”ą½ą¼ą½ą¼ą½£ą½ŗą¼ą½¤ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½“ą¼ą½ ą½ą½“ą½£ą¼ą½¦ą¾¤ą¾±ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "ą½ą½²ą½ą½²ą¼ą½ą½“ą¼ą½”ą½²ą½ą¼ą½ą¼" + +#: ../backend/dvi/dvi-document.c:98 +#, c-format +msgid "File not available" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ ą½ą½¼ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼ą½ą½¦ą¼" + +#: ../backend/dvi/dvi-document.c:113 +#, c-format +msgid "DVI document has incorrect format" +msgstr "ą½ą½²ą½²ą¼ą½ą½²ą¼ą½Øą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½£ą½“ą¼ ą½ą½ą½ŗą½ą¼ą½ą½ŗą½ą¼ą½¢ą¾©ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½“ą½" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:694 +msgid "Yes" +msgstr "ą½Øą½²ą½ą¼" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:697 +msgid "No" +msgstr "ą½ą½ŗą½ą¼" + +#: ../backend/pdf/ev-poppler.cc:770 +msgid "Type 1" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¼ ą¼”ą¼" + +#: ../backend/pdf/ev-poppler.cc:772 +msgid "Type 1C" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¼ ą¼”ą½¦ą½²ą¼" + +#: ../backend/pdf/ev-poppler.cc:774 +msgid "Type 3" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¼ ą¼£ą¼" + +#: ../backend/pdf/ev-poppler.cc:776 +msgid "TrueType" +msgstr "ą¾ą½ą½“ą¼ą½ą½ ą½²ą½ą¼" + +#: ../backend/pdf/ev-poppler.cc:778 +msgid "Type 1 (CID)" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¼ ą¼” (ą½¦ą½²ą¼ą½Øą½ ą½²ą¼ą½ą½²)" + +#: ../backend/pdf/ev-poppler.cc:780 +msgid "Type 1C (CID)" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¼ ą¼”ą½¦ą½²ą¼ (ą½¦ą½²ą¼ą½Øą½ ą½²ą¼ą½ą½²)" + +#: ../backend/pdf/ev-poppler.cc:782 +msgid "TrueType (CID)" +msgstr "ą½ą½“ą¼ą½ą½ ą½²ą½ą¼ (ą½¦ą½²ą¼ą½Øą½ ą½²ą¼ą½ą½²)" + +#: ../backend/pdf/ev-poppler.cc:784 +msgid "Unknown font type" +msgstr "ą½ą¼ą½¤ą½ŗą½¦ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½ą¾±ą½ŗą¼ą½ą¼" + +#: ../backend/pdf/ev-poppler.cc:810 +msgid "No name" +msgstr "ą½ą½²ą½ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½" + +#: ../backend/pdf/ev-poppler.cc:818 +msgid "Embedded subset" +msgstr "ą½ą½¼ą½ą½¦ą¼ą½ ą½ą¾²ą½²ą½¦ą¼ą½ą½“ą½ą¼ą½ą½ ą½²ą¼ ą½”ą½ą¼ą½£ą½ą¼ą½ą¼ą½ą½ą¼" + +#: ../backend/pdf/ev-poppler.cc:820 +msgid "Embedded" +msgstr "ą½ą½¼ą½ą½¦ą¼ą½ ą½ą¾²ą½²ą½¦ą¼ą½ą½“ą½ą¼ą½ą½ ą½²ą¼" + +#: ../backend/pdf/ev-poppler.cc:822 +msgid "Not embedded" +msgstr "ą½ą½¼ą½ą½¦ą¼ą½ ą½ą¾²ą½²ą½¦ą¼ą½ą¼ą½ą½“ą½ą½ą¼" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼ " + +#: ../backend/impress/impress-document.c:296 +#, c-format +msgid "Remote files aren't supported" +msgstr "ą½ą½ą¼ą½¢ą½²ą½ą¼ą½ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½“ą¼ą½£ą½“ą¼ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½¦ą¼" + +#: ../backend/impress/impress-document.c:307 +#, c-format +msgid "Invalid document" +msgstr "ą½ą½“ą½¦ą¼ą½ ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą½Øą½²ą½ą¼ą½ą½ŗą½¢ą½ŗą½¦ą½²ą¼ ą½ą½¤ą½“ą½ą¼ą½ą½¢ą¾ą½ą¼" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½ą¼" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą½ą¾²ą½ą¼ą½ą½ą¼ą½£ą½ą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½ą¼" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ą½ą½ą½¦ą¼ą½”ą½“ą½£ą¼ ą½ą½ą½ą¼ą½¢ą¾ą½ą½¦ą¼ą½ ą½ą½¼ą½£ą¼ą½ą½²ą¼ą½ ą½ą½¼ą½ą¼" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ą½ą½ą½¦ą¼ą½”ą½“ą½£ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½“ą½¦ą¼ą½ą½ŗą½ą¼" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½¦ą¾£ą¼ą½ą½ą¼ą¼ą½ą½ą½¦ą¼ą½”ą½“ą½£ą¼ą½ą½“ą¼ą½£ą½“ą¼ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½¦ą¼ " + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½£ą½¦ą¼ ą½ą½ą½ą¼ą½¦ą¾”ą½“ą½ą¼ą½£ą¾·ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ą½ą½ą½¦ą¼ą½”ą½“ą½£ą¼ą½ą½ŗą¼ą½ą½ą¼ą½£ą½“ą¼ ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ ą½ą½¼ą½£ą¼ą½ą½²ą¼ą½ ą½ą½¼ą½ą¼" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą½ą¼ą½¤ą½ŗą½¦ą¼ą½ą½ ą½²ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼" + +#: ../backend/ps/ev-spectre.c:113 +#: ../backend/ps/ps-document.c:248 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ā%sāą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ā%sā ą½¦ą¾²ą½“ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼ " + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "ą½ą½²ą¼ą½¦ą¾ą¾²ą½¼ą½ą¼" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "ą½£ą½ŗą¼ą½ą½¢ą¼" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "ą½ą½ŗą½ą¼ą½£ą½¼ą½ ą½²ą½ą½²ą¼" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "ą½ą¼ą½ą½ŗą½ą¼" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "ą½£ą½²ą¼ą½ą½±ą½£ą¼" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "ą½ą½¦ą½£ą¼ą½ą½¤ą½ą¼" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "ą½Øą½ŗą½ą¼ą½ą½²ą¼ą½ą½“ą½¦ą¼ą½ą½²ą½ą¼" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "ą½Øą½ŗą¼ą¼ ą¼" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "ą½Øą½ŗą¼ą¼”ą¼" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "ą½Øą½ŗą¼ą¼¢ą¼" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "ą½Øą½ŗą¼ą¼£ą¼" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "ą½Øą½ŗą¼ą¼¤ą¼" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "ą½Øą½ŗą¼ą¼„ą¼" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "ą½ą½²ą¼ą¼¤ą¼" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "ą½ą½²ą¼ą¼„ą¼" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "ą½ą½¼ą¼ą½£ą½²ą½ ą½¼ą¼" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "ą½ą½¼ą¼ą½ ą½¢ą¼ą½ą½¼ą¼" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "ą¼”ą¼ xą¼”ą¼¤ą¼" + +#: ../backend/ps/ps-document.c:170 +#: ../backend/ps/ps-document.c:184 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ ā%sāą½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../backend/ps/ps-document.c:231 +#, c-format +msgid "Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ā%sāą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼ ą½ ą½ą¾²ą½“ą½£ą¼ą½£ą½ą¼ą½ą½ą¼ą½£ą½“ą¼ ą½ą¾²ą½²ą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½¦ą¾ą¾±ą½“ą½¢ą¼ą½ą½²ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą½¼ą½ą¼" + +#: ../backend/ps/ps-document.c:431 +msgid "Encapsulated PostScript" +msgstr "ą½ą½¦ą¾”ą½“ą½¦ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ ą½ą½¼ą½¦ą½²ą½ą½²ą¼ą½¦ą½²ą¼ą½ą½¼ą½¢ą½²ą½ą½ą½²ą¼" + +#: ../backend/ps/ps-document.c:432 +msgid "PostScript" +msgstr "ą½ą½¼ą½¦ą½²ą½ą½²ą¼ą½¦ą½²ą¼ą½ą½¼ą½¢ą½²ą½ą½ą½²ą¼" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "ą½ą½¼ą¼ą½¢ą½¼ą¼ą½ą¼ą½¦ą¾ą¾±ą½²ą½¢ą¼ą½ą½²ą¼ą½ą¼ą½ą½ą½“ą½ą¼" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą½ą½¼ą½¦ą½ą½²ą¼ą½¦ą½²ą¼ą½ą½²ą½¢ą½²ą½ą½ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼" + +#: ../libdocument/ev-attachment.c:303 +#: ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ ā%sā: %s ą½ą½¦ą¾²ą½“ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ā%sā: %są½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ ā%sāą½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../libdocument/ev-document-factory.c:177 +#: ../libdocument/ev-document-factory.c:295 +#, c-format +msgid "Unknown MIME Type" +msgstr "ą½ą¼ą½¤ą½ŗą½¦ą¼ą½ą½ ą½²ą¼ ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą¾±ą½ŗą¼ą½ą¼" + +#: ../libdocument/ev-document-factory.c:196 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "ą½£ą½ŗą½ą½¦ą¼ą½¦ą¾ą¾±ą½¼ą½ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½ ą½²ą¼ ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą¾±ą½ŗą¼ą½ą¼:ā%sāą¼" + +#: ../libdocument/ev-document-factory.c:350 +msgid "All Documents" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą¼ą½ą½ą½ą¼" + +#: ../libdocument/ev-document-factory.c:382 +msgid "All Files" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą¼ą½ą½ą½ą¼" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sāą½¦ą¾ą½¼ą½ą¼" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½“ą¼ą½¦ą¾¤ą½¼ą¼ (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½¢ą¾£ą½ą¼ą½ą¾²ą½ą½¦ą¼ ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½“ą¼ą½¦ą¾¤ą½¼ą¼" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½“ą¼ą½£ą½¦ą¼ ą½¢ą¾©ą¼ą½ą½¦ą¾ą¾²ą½ą¼ą½ą½ą½ą¼ą¼(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½“ą¼ą½£ą½¦ą¼ ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½¢ą¾£ą½ą¼ą½ą¾²ą½ą½¦ą¼ą½ą½ŗą¼ ą½¢ą¾©ą¼ą½ą½¦ą¾ą¾²ą½ą¼ą½ą½ą½ą¼ą¼" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą½ą½ą¼ą¼(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½¢ą¾©ą¼ą½ą½¦ą¾ą¾²ą½ą¼ą½ą½ą½ą¼ą¼" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "ą½ą½ą¾±ą½ŗą¼ą½ą¾±ą½ŗą½ą¼" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ą½ą½¦ą¼ą½£ą½ą¼ą½ą½ą¼ą½£ą½“ą¼ ą½ą½”ą½¼ą½ą¼ą½ą½ą½¼ą½£ą¼ą½ą½¼ą¼" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:4447 +msgid "Best Fit" +msgstr "ą½£ą½ŗą½ą½¦ą¼ą½¦ą¾ą¾²ą½²ą½" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą¾±ą½²ą¼ą½¢ą¾ą¾±ą¼ą½ą½ą¼ą½ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "%ą¼„ą¼ " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą¼„ą¼ %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą¼„ą¼ %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "%ą¼”ą¼ ą¼ " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "%ą¼”ą¼¢ą¼„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "%ą¼”ą¼„ą¼ " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "%ą¼”ą¼§ą¼„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "%ą¼¢ą¼ ą¼ " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "%ą¼£ą¼ ą¼ " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "%ą¼¤ą¼ ą¼ " + +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:3573 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą½¦ą¾£ą¼ą½ą½ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼ą½¦ą¾ą½¼ą½ą¼" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½²ą¼" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ą½£ą½±ą¼ą½”ą½“ą½ą¼ą½ ą½ą½²ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½¦ą½ŗą½ą½¦ą¼ą½ą½¢ą¼ą½ą½ą½" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ą½£ą¾”ą½ŗą¼ą½ ą½ą½¼ą½¢ą¼ą½ą½ą¼ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼:(_P)" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>ą½¢ą¾©ą½¼ą½ą¼ą½ą¼ą½ą½¼ą¼:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>ą½ą½¦ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>ą½ą½¦ą½¢ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>ą½¢ą¾©ą¼ą½¦ą¾ą¾²ą½²ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>ą½ą½ą½¼ą¼ą½ą½²ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>ą½£ą½ŗą½ą½¦ą¼ą½ą½ ą½¼ą½¦ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>ą½¤ą½¼ą½ą¼ą½ą¾²ą½ą½¦ą¼:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>ą½£ą½ŗą½ą½¦ą¼ą½£ą¾”ą½ą¼ą½ą½ą½¼ą½¦ą¼ą½ą¾²ą½“ą½ą¼ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>ą½ą½ą½¼ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>ą½¦ą¾²ą½“ą½ą¼ą½¦ą¾ą¾±ą½¼ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>ą½ą½¼ą½ą¼ą½ą½ą¼:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>ą½ą½ą½¼ą¼ą½ą½²ą½ą¼ą¼:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą½ą¼ą½ą½ą¼ą½ą½“ą½¢ą¼ą½ą½¢ą¼ą½ą½ą½" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą½ą¼ą½ą½ą¼ ą½ą½ą½ŗą½¢ą¼ą½ą¼ą½ ą½ą¾²ą¼ą½ą½¤ą½“ą½¦ą¼ą½ą½¢ą¾ą¾±ą½ą¼ą½ą½²ą¼ą½ą½ą¼ ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½ą½ą¼ą½ą½ą¼ą½ą½“ą¼ ą½ą½“ą½¢ą¼ą½ą½¢ą¼ą½ą½ą½" + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "ą½ ą½²ą¼ą½ą½ŗą½ą¼" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "mm:ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą½”ą½¢ą¼ą½ą¾²ą½ą¼ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą½ą½ŗą¼ą½ą½ŗą¼ (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "ą½ ą½ą½¼ą½ą¼ą½ą½ą½¼ą¼ą½ą½ ą½²ą¼ ą½”ą½²ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼ą½ą¾±ą½²ą¼ą½ą½²ą½ą¼ą¼" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "ą½ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ ą½ą¼" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "ą½ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ ą½ą¼ą½ ą½²ą½ą¼ ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½ą½ą½ŗą½ą¼ą½ą¼" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "ą½ą½¼ą½¦ą¼ą½ą½ą½²ą¼ą½ą½ą½¼ą¼ą½ą½ą½²ą½ą½¦ą¼ą½ ą½ą½ą¼" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "ą½ą½ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą¼ą½ą½ą½ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½ą½¼ą¼ą½ą½ą½²ą½ą½¦ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½¦ą¼ą½ą½ą½²ą¼" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½ą½¼ą½¦ą¼ą½ą½ą½²ą¼" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½ą½ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½ą½¼ą¼ą½ą½ą½²ą½ą½¦ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½¦ą¼ą½ą½ą½²ą¼" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "ą½ ą½ą½¼ą½£ą¼:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "ą½§ą½ŗą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/eggfindbar.c:334 +#: ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼ą½ą¾±ą½²ą¼ ą½ ą½ą¾±ą½“ą½ą¼ą½ą¼ą½§ą½ŗą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "ą½¤ą½“ą½£ą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/eggfindbar.c:347 +#: ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼ą½ą¾±ą½²ą¼ ą½ ą½ą¾±ą½“ą½ą¼ą½ą¼ą½¤ą½“ą½£ą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "ą½ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ ą½ą¼(_a)" + +#: ../shell/eggfindbar.c:363 +#: ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "ą½”ą½²ą¼ą½ą½“ą¼ą½ą½ŗą¼ą½ą½“ą½ą¼ą½ą½²ą¼ą½ą½ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ ą½¦ą½¼ą½¢ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-jobs.c:650 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ā%sā: %s ą½ą½¦ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ą½ ą½ą½“ą½¦ą¼ą½¤ą½¼ą½¢ą¼ą½ą¾±ą½“ą½ą¼ą½ą½“ą½" + +#: ../shell/ev-open-recent-action.c:71 +msgid "Open a recently used document" +msgstr "ą½ ą½ą¾²ą½£ą¼ą½ą½ą½¦ą¼ą½ ą½²ą½ą¼ą½ą½¢ą¼ ą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ ą½²ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ " + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą½ą½²ą¼ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "%d ą½ą½²ą¼" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½¼ą¼ą½ą¼" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą½”ą½²ą½ą¼ą½ą¼ā%sāą½ą½ŗą¼ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼ą½ą½¢ą¾ą¾±ą½ą½¦ą¼ą½ą½ŗą¼ą½”ą½¼ą½ą½ą¼ą½£ą½¦ą¼ ą½ą½ŗą¼ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą½ ą½²ą¼ą½§ą½ŗą¼ą½ą½¢ą¼ ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ ą½²ą½ą¼ą½ą½ą½¼ą¼ą½ą½¦ą¼" + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ %s ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½ą½¼ą½ą¼ą½”ą½²ą½" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ŗą½¦ą¼ą½ą½ą½ŗą½ą¼ą½ą½ŗą½ą¼ą½ą½¦ą¼" + +#: ../shell/ev-password-view.c:111 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼ą½ą½¢ą¾ą¾±ą½ą½¦ą¼ą½ą½ŗą¼ą½”ą½¼ą½ą½ą¼ą½£ą½¦ą¼ ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ŗą½¦ą¼ą½ą½ą½ŗą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½ŗą¼ą½ą¼ą½ą½ą½¼ą½ą½¦ą¼ ą½£ą¾·ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼ą½ą¾±ą½ŗą¼(_u)" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "ą½¢ą¾ą¾±ą½“ą¼ą½ą½ą½¼ą½¦ą¼ą½ą½“ą¼" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "ą½”ą½¼ą½ą½¦ą¼ą½ą¾±ą½ą¼" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½“ą¼" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾”ą¼ą½ą½¼ą½ą¼...%3d%%ą½ą½¦ą¾”ą½“ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼" + +#: ../shell/ev-sidebar-links.c:266 +#: ../shell/ev-view.c:3643 +msgid "Loading..." +msgstr "ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼..." + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼..." + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "ą½ą½“ą½¢ą¼ą½ą½¼ą¼" + +#: ../shell/ev-sidebar-thumbnails.c:728 +msgid "Thumbnails" +msgstr "ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą½”ą½¢ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą½ą½¢ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą½ą½ą½¼ą½ą¼ą½¦ą¾£ą½ą¼ą½”ą½¢ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą½ą½ą½¼ą½ą¼ą½¦ą¾£ą½ą¼ą½ą½¢ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą½¼ą½ą¼ą½¦ą¾£ą½ą¼ą¼" + +#: ../shell/ev-view.c:1442 +msgid "Go to first page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą¼ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1444 +msgid "Go to previous page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½§ą½ŗą¼ą½ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1446 +msgid "Go to next page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¤ą½“ą½£ą¼ą½ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1448 +msgid "Go to last page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą½ ą¼ą½ą½ą½“ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1450 +msgid "Go to page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1452 +msgid "Find" +msgstr "ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/ev-view.c:1480 +#, c-format +msgid "Go to page %s" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼%są½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1486 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%są½ą½ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ ā%sāą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1489 +#, c-format +msgid "Go to file ā%sā" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ā%sāą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-view.c:1497 +#, c-format +msgid "Launch %s" +msgstr "%są½ą½¦ą½¢ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-view.c:2449 +msgid "End of presentation. Press Escape to exit." +msgstr "ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½ą½“ą½ą¼ ą½ą¾±ą½²ą½¢ą¼ą½ ą½ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½¢ą¼ą½£ą½“ą¼ą½Øą½ŗą½ą¼" + +#: ../shell/ev-view.c:3372 +msgid "Jump to page:" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5153 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½²ą¼ą½ą½ŗą¼ą½ą½¼ą½ą¼ą½ ą½²ą¼" +msgstr[1] "%d ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½²ą¼ą½ą½ŗą¼ą½ą½¼ą½ą¼ą½ ą½²ą¼" + +#: ../shell/ev-view.c:5162 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ %3d%% ą½£ą¾·ą½ą¼ą½£ą½“ą½¦ą¼ą½”ą½¼ą½ą¼" + +#: ../shell/ev-window.c:752 +#, c-format +msgid "Page %s - %s" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ %s - %s" + +#: ../shell/ev-window.c:754 +#, c-format +msgid "Page %s" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼%s" + +#: ../shell/ev-window.c:1383 +#: ../shell/ev-window.c:1452 +msgid "Unable to open document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:1574 +msgid "Open Document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼" + +#: ../shell/ev-window.c:1635 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ą½¦ą½²ą½ą¼ą½£ą½²ą½ą½ą½²ą¼ ā%sā: %s ą½ą½¦ą½¢ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:1664 +msgid "Cannot open a copy." +msgstr "ą½ ą½ą¾²ą¼ą½ą½ą½¢ą¼ą½ ą½²ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:1908 +#: ../shell/ev-window.c:1958 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ŗą¼ā%sāą½¦ą¾¦ą½ŗą¼ą½ą½¦ą¾²ą½“ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:2003 +msgid "Save a Copy" +msgstr "ą½ ą½ą¾²ą¼ą½ ą½²ą½ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:2124 +#: ../shell/ev-window.c:3274 +msgid "Failed to print document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:2289 +msgid "Printing is not supported on this printer." +msgstr "ą½ą½ą½¢ą¼ą½ ą½ą¾²ą½“ą½£ą¼ą½ ą½ą½²ą¼ą½ą½“ą¼ ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½£ą½“ą¼ ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½" + +#: ../shell/ev-window.c:2415 +#: ../shell/ev-window.c:4241 +msgid "Print" +msgstr "ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼" + +#: ../shell/ev-window.c:3053 +msgid "Toolbar Editor" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½“ą½ą¼ą½ą½ą½ą¼" + +#: ../shell/ev-window.c:3569 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼\n" +"ą½ą½¼ą½ą¼ą½£ą½¢ą¼%s (%s) ą½ą½ŗą¼ą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼" + +#: ../shell/ev-window.c:3597 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ą½ą½ŗą¼ ą½¦ą¾ą½¼ą½ą¼ą½ą¼ą½ą½¼ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą½ŗą½ą¼ą½ą½¦ą¼ą½ ą½²ą½ą¼ą½Øą½²ą½ą½ą¼ą½£ą½¦ą¼ ą½ą½²ą½¢ą½²ą¼ą½¦ą½¼ą½ą½ą½²ą¼ą½ą½ŗą½¢ą¼ą½ą½ą½²ą¼ą½ą½¼ą½ą½¦ą¼ą½ą¾±ą½²ą½¦ą¼ ą½ą½ą½ŗą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½“ą¼ą½”ą½¼ą½ą½¦ą¼ą½ą¾±ą½ą¼ą½ą½²ą¼ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ą¼ą½ą¾±ą½²ą¼ą½ą¼ą½ą½²ą½ą¼ą½ą½ą¼ą½ ą½ą¾²ą½²ą½£ą¼ą½ą½ŗą¼ ą½ą¾±ą½¼ą½ą¼ą½ą¾±ą½²ą½¦ą¼ą½ą½¼ą½ą¼ą½ą½ą¼ą½ą½¼ą½ą¼ą½¢ą½²ą½ą¼ą¼¢ ą½”ą½ą¼ą½ą¼ (ą½ą¾±ą½¼ą½ą¼ą½¢ą½ ą½²ą¼ą½ą½ą½ą¼ą½ą¼ą½ą½ą½²ą½) ą½¤ą½“ą½£ą¼ą½£ą½¦ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½¢ą½²ą½ą¼ą½ą½ą¼ą½¢ą½“ą½ą¼ ą½ą½¦ą¾ą¾±ą½¢ą¼ą½ ą½ą¾²ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½ ą½ą¼ ą½£ą½ŗą½ą½¦ą¼ą½ą½ ą½¼ą½¦ą¼ą½ ą½ą½ą¼ą½ą½¼ą½\n" + +#: ../shell/ev-window.c:3601 +msgid "Evince 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.\n" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ą½ą½ŗą¼ ą½ą½ą¼ą½ą½¼ą½ą½¦ą¼ą½ą½ ą½²ą¼ą½¢ą½ŗą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½ ą½ą¾²ą½ŗą½ą¼ą½¦ą¾¤ą½ŗą½£ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą¼ ą½ą½ŗą¼ą½ ą½ą½ą½ą¼ą½ą¼ ą½ą½ŗą½ą¼ą½£ą½ŗą½ą¼ą½ą¼ą½ą½²ą¼ą½”ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ą½ą½ą¼ą½£ą½¦ą¼ ą½ą¼ą½ą¼ą½¦ą¾ą¾±ą½ŗą½£ą¼ą½ ą½ą¾²ą½ŗą½ą¼ą½ą½ą¼ ą½ą½ą½²ą½ą½¦ą¼ą½ą½¦ą½£ą¼ą½ą½ą½¼ą½¦ą¼ą½ą½¼ą½ą¼ą½ ą½²ą½ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½”ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ą¾±ą½²ą¼ą½ą½ŗą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą¼ą½”ą½ą¼ą½ą½ŗą½ą¼ ą½ą¼ą½ą½¦ą½£ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½“ą¼ ą½ą½²ą¼ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ą¼ą½£ą½“ą¼ą½ą½ą½²ą½ą½¦ą¼ą½ą½ą½ą¼ą¼\n" + +#: ../shell/ev-window.c:3605 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "ą½ą¾±ą½¼ą½ą¼ą½ą¾±ą½²ą½¦ą¼ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ą½ą½ą¼ą½ą½ ą½²ą½ą¼ą½ą½¢ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½“ą¼ ą½”ą½¼ą½ą½¦ą¼ą½ą¾±ą½ą¼ą½ą½²ą¼ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½ą¼ą½ą¾±ą½²ą¼ą½ ą½ą¾²ą¼ą½ ą½²ą½ą¼ą½ą½¼ą½ą¼ą½ą½¼ą½ą¼ą½ ą½¼ą½ą¼ą¼ ą½ą½£ą¼ą½¦ą¾²ą½²ą½ą¼ą½ą¼ą½ą½¼ą½ą¼ą½ą¼ą½ ą½²ą½ą¼ Free Software Foundation, Inc.,59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ą½£ą½“ą¼ą½”ą½²ą¼ą½ą½“ą¼ą½¦ą¾ą¾±ą½ŗą½£ą¼ą½ą½ą½ą¼ą¼\n" + +#: ../shell/ev-window.c:3629 +#: ../shell/main.c:349 +msgid "Evince" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼" + +#: ../shell/ev-window.c:3632 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© ą¼”ą¼©ą¼©ą¼¦-ą¼¢ą¼ ą¼ ą¼§ ą½ą½¢ą¾”ą¼ą½ą½ą½¼ą½ą¼ą½ą½²ą½ ą½²ą¼ą½¢ą¾©ą½¼ą½ą¼ą½ą¼ą½ą½¼ą¼" + +#: ../shell/ev-window.c:3638 +msgid "translator-credits" +msgstr "\"ą½Øą½ ą½²ą¼ą½ą½²ą¼ą½Øą½¢ą¼ą½¦ą½²ą¼ą½ą½²ą¼ą½ą¼ą½ą½ą½“ą½£ą¼ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½¢ą¾”ą¼ą½ą½¼ą½ą¼ą½ ą½ą¾²ą½“ą½£ą¼ą½¢ą½²ą½ą¼ą½£ą½¦ą¼ą½ą½“ą½ą½¦ą¼ą½ą½ą¼ ą½¦ą¾ą½ą¼ą½ą½¦ą¾ą¾±ą½“ą½¢ą¼ą½ ą½ą½ą¼ą½”ą½²ą¼ ą½ą¼ą½ą½¦ą½£ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ ą½ą¾²ą½ŗą½£ą¼ą½ą¼ą½ ą½ą½ą¼ą½¦ą¼: <pema_geyleg@druknet.bt>/<pgeyleg@dit.gov.bt>\"ą¼" + +#: ../shell/ev-window.c:4153 +msgid "_File" +msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼(_F)" + +#: ../shell/ev-window.c:4154 +msgid "_Edit" +msgstr "ą½ą½“ą½ą¼ą½ą½(_E)" + +#: ../shell/ev-window.c:4155 +msgid "_View" +msgstr "ą½ą½ą½¼ą½ą¼ą½¦ą¾£ą½ą¼ą¼(_V)" + +#: ../shell/ev-window.c:4156 +msgid "_Go" +msgstr "ą½ ą½ą¾±ą½¼ą¼(_G)" + +#: ../shell/ev-window.c:4157 +msgid "_Help" +msgstr "ą½ą¾²ą½¼ą½ą½¦ą¼ą½¢ą½ą¼(_H)" + +#. File menu +#: ../shell/ev-window.c:4160 +#: ../shell/ev-window.c:4337 +#: ../shell/ev-window.c:4409 +msgid "_Open..." +msgstr "ą½ą¼ą½ą¾±ą½ŗą¼...(_O)" + +#: ../shell/ev-window.c:4161 +#: ../shell/ev-window.c:4410 +msgid "Open an existing document" +msgstr "ą½ą½ą½¦ą¼ą½ą½ą½²ą½ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ ą½²ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼" + +#: ../shell/ev-window.c:4163 +msgid "Op_en a Copy" +msgstr "ą½ ą½ą¾²ą¼ą½ą½ą½¢ą¼ą½ ą½²ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼(_e)" + +#: ../shell/ev-window.c:4164 +msgid "Open a copy of the current document in a new window" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½ą½²ą¼ą½ ą½ą¾²ą¼ą½ą½ą½¢ą¼ą½ ą½²ą½ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¦ą½¢ą¼ą½ą½ ą½²ą¼ą½ą½ą¼ą½£ą½“ą¼ą½ą¼ą½ą¾±ą½ŗą¼" + +#: ../shell/ev-window.c:4166 +#: ../shell/ev-window.c:4339 +msgid "_Save a Copy..." +msgstr "ą½ ą½ą¾²ą¼ą½ą½¤ą½“ą½¦ą¼ą½ ą½²ą½ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼...(_S)" + +#: ../shell/ev-window.c:4167 +msgid "Save a copy of the current document" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ą½ą½²ą¼ą½ ą½ą¾²ą¼ą½ ą½²ą½ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4169 +msgid "Print Set_up..." +msgstr "ą½¦ą¾ą¾²ą½²ą½ą¼ą½¦ą¾ą½ą½¦ą¼ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą¼ą¼(u)" + +#: ../shell/ev-window.c:4170 +msgid "Setup the page settings for printing" +msgstr "ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½¦ą¾ą½ą½¦ą¼ą½ą½ŗą¼ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-window.c:4172 +msgid "_Print..." +msgstr "ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼...(_P)" + +#: ../shell/ev-window.c:4173 +#: ../shell/ev-window.c:4242 +msgid "Print this document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-window.c:4175 +msgid "P_roperties" +msgstr "ą½¢ą¾ą¾±ą½“ą¼ą½ą½ą½¼ą½¦ą¼ą½ą½“ą¼(_r)" + +#: ../shell/ev-window.c:4183 +msgid "Select _All" +msgstr "ą½ą¼ą½ą½ą½ą¼ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼(_A)" + +#: ../shell/ev-window.c:4185 +msgid "_Find..." +msgstr "ą½ ą½ą½¼ą½£ą¼...(_F)" + +#: ../shell/ev-window.c:4186 +msgid "Find a word or phrase in the document" +msgstr "ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą¼ ą½ą½²ą½ą¼ą½ą½²ą½ą¼ą½ ą½²ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą½ą¼ą½ą½ą¼ą½ ą½²ą½ą¼ą½ ą½ą½¼ą½£ą¼" + +#: ../shell/ev-window.c:4188 +msgid "Find Ne_xt" +msgstr "ą½¤ą½“ą½£ą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼(_x)" + +#: ../shell/ev-window.c:4190 +msgid "Find Pre_vious" +msgstr "ą½§ą½ŗą¼ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼(_v)" + +#: ../shell/ev-window.c:4192 +msgid "T_oolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą¼(_o)" + +#: ../shell/ev-window.c:4194 +msgid "Rotate _Left" +msgstr "ą½ą½”ą½¼ą½ą¼ą½£ą½“ą¼ą½ą½¦ą¾ą¾±ą½²ą½¢ą¼(_L)" + +#: ../shell/ev-window.c:4196 +msgid "Rotate _Right" +msgstr "ą½ą½”ą½¦ą¼ą½£ą½“ą¼ą½ą½¦ą¾ą¾±ą½²ą½¢ą¼(_R)" + +#: ../shell/ev-window.c:4201 +msgid "Enlarge the document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą½¢ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼" + +#: ../shell/ev-window.c:4204 +msgid "Shrink the document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½¦ą¾ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4206 +msgid "_Reload" +msgstr "ą½¦ą¾³ą½¢ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼(_R)" + +#: ../shell/ev-window.c:4207 +msgid "Reload the document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½¦ą¾³ą½¢ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-window.c:4210 +msgid "Auto_scroll" +msgstr "ą½¢ą½ą¼ą½ą½ą½²ą½ą¼ ą½ą½¤ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼ (_S)" + +#. Go menu +#: ../shell/ev-window.c:4214 +msgid "_Previous Page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½§ą½ŗą¼ą½ą½ą¼(_P)" + +#: ../shell/ev-window.c:4215 +msgid "Go to the previous page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½§ą½ŗą¼ą½ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-window.c:4217 +msgid "_Next Page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¤ą½“ą½£ą¼ą½ą½ą¼(_N)" + +#: ../shell/ev-window.c:4218 +msgid "Go to the next page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¤ą½“ą½£ą¼ą½ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-window.c:4220 +msgid "_First Page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą¼ą½ą¼(_F)" + +#: ../shell/ev-window.c:4221 +msgid "Go to the first page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą¼ą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#: ../shell/ev-window.c:4223 +msgid "_Last Page" +msgstr "ą½ą½ą½ ą¼ą½ą½ą½“ą½ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼(_L)" + +#: ../shell/ev-window.c:4224 +msgid "Go to the last page" +msgstr "ą½ą½ą½ ą¼ą½ą½ą½“ą½ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼" + +#. Help menu +#: ../shell/ev-window.c:4228 +msgid "_Contents" +msgstr "ą½ą½ą¼ą½ą½¼ą½ą¼ą½ą½“ą¼(_C)" + +#: ../shell/ev-window.c:4231 +msgid "_About" +msgstr "ą½¦ą¾ą½¼ą½¢ą¼ą½£ą½¦ą¼(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:4235 +msgid "Leave Fullscreen" +msgstr "ą½ą½¦ą½£ą¼ą½ą½ą½ą¼ą½ą½ą½ą¼ą½ą½ą½" + +#: ../shell/ev-window.c:4236 +msgid "Leave fullscreen mode" +msgstr "ą½ą½¦ą½£ą¼ą½ą½ą½²ą¼ą½ą½ą½ą¼ą½ą½²ą¼ą½ą½ą½¦ą¼ą½£ą½ą¼ą½ą½ą½" + +#: ../shell/ev-window.c:4238 +msgid "Start Presentation" +msgstr "ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½¼ą¼ą½ą½ą½“ą½ą½¦" + +#: ../shell/ev-window.c:4239 +msgid "Start a presentation" +msgstr "ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½²ą½ą¼ą½ ą½ą½¼ą¼ą½ą½ą½“ą½ą½¦" + +#. View Menu +#: ../shell/ev-window.c:4293 +msgid "_Toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą¼(_T)" + +#: ../shell/ev-window.c:4294 +msgid "Show or hide the toolbar" +msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½¦ą¾¦ą¼ą½ą½ą½" + +#: ../shell/ev-window.c:4296 +msgid "Side _Pane" +msgstr "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą½ŗą½ą¼" + +#: ../shell/ev-window.c:4297 +msgid "Show or hide the side pane" +msgstr "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą½ŗą½ą¼ą½¦ą¾ą½¼ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½¦ą¾¦ą¼ą½ą½ą½" + +#: ../shell/ev-window.c:4299 +msgid "_Continuous" +msgstr "ą½ ą½ą¾²ą½¼ą¼ą½ą½ą½“ą½ą¼ą½ ą½ą¼(_C)" + +#: ../shell/ev-window.c:4300 +msgid "Show the entire document" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½§ą¾²ą½²ą½£ą¼ą½ą½“ą¼ą½¦ą¾ą½¼ą½ą¼" + +#: ../shell/ev-window.c:4302 +msgid "_Dual" +msgstr "ą¾ą½ą½ą½²ą½¦ą¼ą½£ą¾”ą½ą¼(_D)" + +#: ../shell/ev-window.c:4303 +msgid "Show two pages at once" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą½²ą½¦ą¼ą½¦ą¾ą½ą½¦ą¼ą½ą½ ą½²ą½ą¼ą½ą½¢ą¼ą½¦ą¾ą½¼ą½ą¼" + +#: ../shell/ev-window.c:4305 +msgid "_Fullscreen" +msgstr "ą½ą½¦ą½£ą¼ą½ą½ą½²ą¼ą½ą½ą½ą¼(_F)" + +#: ../shell/ev-window.c:4306 +msgid "Expand the window to fill the screen" +msgstr "ą½ą½¦ą½£ą¼ą½ą½ą½²ą¼ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½¢ą¾ą¾±ą¼ą½ ą½ą½¢ą¼" + +#: ../shell/ev-window.c:4308 +msgid "Pre_sentation" +msgstr "ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼(_S)" + +#: ../shell/ev-window.c:4309 +msgid "Run document as a presentation" +msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ą½ą½“ą½ą¼ą½ ą½²ą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½”ą½¼ą½ą¼ą½ą½ą½¼ą½£ą¼" + +#: ../shell/ev-window.c:4311 +msgid "_Best Fit" +msgstr "ą½£ą½ŗą½ą½¦ą¼ą½¦ą¾ą¾²ą½²ą½(_B)" + +#: ../shell/ev-window.c:4312 +msgid "Make the current document fill the window" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½ą½ą¼ą¼" + +#: ../shell/ev-window.c:4314 +msgid "Fit Page _Width" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą¾±ą½²ą¼ą½¢ą¾ą¾±ą¼ą½ą½ą¼ą½¦ą¾ą¾²ą½²ą½(_W)" + +#: ../shell/ev-window.c:4315 +msgid "Make the current document fill the window width" +msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½²ą¼ą½¢ą¾ą¾±ą¼ą½ą½ą¼ą½ą½ą½ą¼ą¼" + +#. Links +#: ../shell/ev-window.c:4322 +msgid "_Open Link" +msgstr "ą½ ą½ą¾²ą½ŗą½£ą¼ą½£ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼(_O)" + +#: ../shell/ev-window.c:4324 +msgid "_Go To" +msgstr "ą½£ą½“ą¼ą½ ą½ą¾±ą½¼ą¼(_G)" + +#: ../shell/ev-window.c:4326 +msgid "Open in New _Window" +msgstr "ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¦ą½¢ą½ą¼ą½ą½ą¼ą½£ą½“ą¼ ą½ą¼ą½ą¾±ą½ŗą¼(_W)" + +#: ../shell/ev-window.c:4328 +msgid "_Copy Link Address" +msgstr "ą½ ą½ą¾²ą½ŗą½£ą¼ą½£ą½ą¼ą½ą¼ą½ą¾±ą½ą¼ą½ ą½ą¾²ą¼ą½ą½¤ą½“ą½¦ą¼ą½¢ą¾ą¾±ą½ą½¦ą¼(_C)" + +#: ../shell/ev-window.c:4330 +msgid "_Save Image As..." +msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½ą½ŗą¼ą½¦ą¾¦ą½ŗą¼ą½¦ą¾²ą½“ą½ą½¦ą¼ą¼ą¼(_S)" + +#: ../shell/ev-window.c:4332 +msgid "Copy _Image" +msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½ ą½ą¾²ą¼ą½ą½¤ą½“ą½¦ą¼ą½¢ą¾ą¾±ą½ą½¦ą¼(_I)" + +#: ../shell/ev-window.c:4371 +msgid "Page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼" + +#: ../shell/ev-window.c:4372 +msgid "Select Page" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-window.c:4383 +msgid "Zoom" +msgstr "ą½¢ą¾ą¾±ą½¦ą¼ą½ą½“ą½ą¼" + +#: ../shell/ev-window.c:4385 +msgid "Adjust the zoom level" +msgstr "ą½¢ą¾ą¾±ą½¦ą¼ą½ą½“ą½ą¼ą½ą½ą½¦ą¼ą½¢ą½²ą½ą¼ą½ą½ą½ŗą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" + +#: ../shell/ev-window.c:4395 +msgid "Navigation" +msgstr "ą½ ą½ą¾²ą½“ą½£ą¼ą½ą½¦ą¾ą¾±ą½¼ą½ą½ą¼" + +#: ../shell/ev-window.c:4397 +msgid "Back" +msgstr "ą½¢ą¾ą¾±ą½ą¼ą½ą½¢ą¼" + +#. translators: this is the history action +#: ../shell/ev-window.c:4400 +msgid "Move across visited pages" +msgstr "ą½ą½£ą¾ą¼ą½¦ą¾ą½¼ą½¢ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½“ą¼ą½ą½¦ą¾ą¾±ą½“ą½ą¼ą½ą½ŗą¼ ą½¦ą¾¤ą½¼ą¼ą½ą½¤ą½“ą½ą¼ą½ ą½ą½ą¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4430 +msgid "Previous" +msgstr "ą½§ą½ŗą¼ą½ą½ą¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4435 +msgid "Next" +msgstr "ą½¤ą½“ą½£ą¼ą½ą½ą¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4439 +msgid "Zoom In" +msgstr "ą½ą¾±ą½²ą½¢ą¼ą½¢ą¾ą¾±ą½¦ą¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4443 +msgid "Zoom Out" +msgstr "ą½ą½ą¼ą½ą¼ą½ą½“ą½ą¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4451 +msgid "Fit Width" +msgstr "ą½¢ą¾ą¾±ą¼ą½ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4646 +msgid "Unable to open external link" +msgstr "ą½ą¾±ą½²ą½ ą½²ą¼ą½ ą½ą¾²ą½ŗą½£ą¼ą½£ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4812 +msgid "Couldn't find appropriate format to save image" +msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ ą½¦ą¾²ą½“ą½ą¼ą½ą½ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½¢ą¾©ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½¼ą½¦ą¼ą½£ą¾”ą½ą¼ą½ ą½²ą½ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą½¼ą½ą¼ " + +#: ../shell/ev-window.c:4852 +msgid "The image could not be saved." +msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½ą½ŗą¼ą½¦ą¾²ą½“ą½ą¼ą½ą½ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4884 +msgid "Save Image" +msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4943 +msgid "Unable to open attachment" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:4995 +msgid "The attachment could not be saved." +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ą½ą½ŗą¼ ą½ą½¦ą¾²ą½“ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window.c:5040 +msgid "Save Attachment" +msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą½£ą½“ą¼ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½¼ą¼ą½ą½¦ą¼" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ą½¢ą¾ą¾±ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼ą½ą¾±ą½²ą½¦ą¼ " + +#: ../shell/main.c:58 +msgid "The page of the document to display." +msgstr "ą½ą½ą¾²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼" + +#: ../shell/main.c:58 +msgid "PAGE" +msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼" + +#: ../shell/main.c:59 +msgid "Run evince in fullscreen mode" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ ą½ą½¦ą½£ą¼ą½ą½ą½²ą¼ą½ą½ą½ą¼ą½ą½²ą¼ą½ą½ą½¦ą¼ą½£ą½ą¼ą½ą½ą¼ą½ą½”ą½¼ą½ą¼ą½ą½ą½¼ą½£ą¼" + +#: ../shell/main.c:60 +msgid "Run evince in presentation mode" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ ą½ą½¦ą½£ą¼ą½¦ą¾ą½¼ą½ą¼ą½ą½ą½¦ą¼ą½£ą½ą¼ą½ą½ą¼ą½ą½”ą½¼ą½ą¼ą½ą½ą½¼ą½£ą¼" + +#: ../shell/main.c:61 +msgid "Run evince as a previewer" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ ą½¦ą¾ą½¼ą½ą¼ą½£ą¾ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½ą½“ą½ą¼ą½ ą½²ą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½”ą½¼ą½ą¼ą½ą½ą½¼ą½£ą¼" + +#: ../shell/main.c:62 +msgid "The word or phrase to find in the document" +msgstr "ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½ą¼ ą½ą½ą¼ą½ ą½ą½¼ą½£ą¼ą½ą½²ą¼ą½Øą½²ą½ą¼ą½ą½ ą½²ą¼ ą½ą½²ą½ą¼ą½ą½²ą½ą¼ą½”ą½ą¼ą½ą¼ ą½ą½²ą½ą¼ą½ą½ą¼" + +#: ../shell/main.c:62 +msgid "STRING" +msgstr "ą½”ą½²ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼ " + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼...]" + +#: ../shell/main.c:332 +msgid "MATE Document Viewer" +msgstr "ą½ą½²ą¼ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼" + +#: ../shell/main.c:392 +msgid "Evince Document Viewer" +msgstr "ą½Øą½²ą¼ą½ą½²ą½ą½¦ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "ą½ ą½ą½¼ą½ą¼ą½ą½“ą½ą½¦ą¼ą½ą½ ą½²ą¼ą½ą½“ą¼ą½£ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½ą¼ą½ą¼ ą½ą½ą½ŗą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¢ą¾”ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą¼ą½ą½²ą¼ą½ą½ą¼ ą½¢ą¾«ą½“ą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¦ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą½ą¼ą½Øą½²ą½ą¼" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼ą½£ą½“ą¼ ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¢ą¾”ą½ą¼ą½ą½²ą¼ą½£ą¾ą½¼ą½ą½¦ą¼ą½ ą½ą¼ą½ą½ą½¼ą¼" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½“ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą¾±ą½²ą¼ą½ą½¢ą¾”ą¼ą½ą½ą½¼ą½ą¼" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½ą¼ą½£ą½“ą¼ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¢ą¾”ą½ą½¦ą¼ą½ą½²ą½ ą½²ą¼ ą½ą½“ą½¦ą¼ą½ ą½ą¼ą½ą½¢ą¾”ą¼ą½ą½ą½¼ą½ą¼ą½ą½ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½¢ą¾ą½ą½¦ą¼ą½ą½“ą¼ ą½ą½¢ą¾”ą¼ą½ą½¼ą½ą¼ą½§ą½ŗą½ą¼ą½ą½ą½£ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½ ą½“ą¼ą½ą½²ą¼ą½£ą½±ą½¦ą½²ą¼ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¢ą¾”ą½ą½¦ą¼ą½ą½²ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½£ą½“ą¼ą½ą½£ą¾ą¼" + +#~ msgid "Images" +#~ msgstr "ą½ą½ą½“ą½ą½¦ą¼ą½ą½¢ą¾ą½ą¼ą½ą½“ą¼" +#~ msgid "Open ā%sā" +#~ msgstr "ā%sāą½ą¼ą½ą¾±ą½ŗą¼" +#~ msgid "Empty" +#~ msgstr "ą½¦ą¾ą½¼ą½ą½ą¼" +#~ msgid "Generating PDF is not supported" +#~ msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½ą½¼ą¼ą½ą½ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½" +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ą½ą¾±ą½¼ą½ą¼ą½ą¾±ą½²ą½¦ą¼ą½ ą½ą¾²ą½ŗą½ą¼ą½ą¾±ą½ŗą½ą¼ā%sāą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½¢ą¾©ą½²ą½¦ą¼ą½¢ą¾ą¾±ą½ą¼ą½ą½¼ą¼ ą½£ą½¦ą¼ą½¢ą½²ą½ą¼ą½ ą½ą½²ą¼ą½£ą½“ą¼ ą½ą½¼ą½¦ą½²ą½ą½²ą¼" +#~ "ą½¦ą½²ą¼ą½ą½²ą½¢ą½²ą½ą½ą½²ą¼ ą½ą½ą½¢ą¼ą½ ą½ą¾²ą½“ą½£ą¼ą½ ą½ą¾²ą½ŗą½ą¼ą½ą¾±ą½ŗą½ą¼ą½ ą½²ą½ą¼ą½ą½ą½¼" +#~ msgid "Pages" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½ą¾²ą½ą½¦ą¼" +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "ą½ą½“ą½¦ą¼ą½ ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ą½”ą½“ą¼ą½Øą½¢ą¼ą½Øą½ ą½²: ā%sā" +#~ msgid "75%" +#~ msgstr "%ą¼§ą¼„" +#~ msgid "unexpected EOF\n" +#~ msgstr "ą½¢ą½ŗą¼ą½ ą½ą½“ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ ą½Øą½²ą¼ą½Øą½¼ą¼ą½Øą½ŗą½\n" +#~ msgid "could not load font `%s'\n" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼`%s' ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "could not reload `%s'\n" +#~ msgstr "`%s' ą½£ą½¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "%s: unsupported DVI format (version %u)\n" +#~ msgstr "%s:ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ ą½²ą¼ ą½¢ą¾©ą¼ą½¦ą¾ą¾²ą½²ą½ą¼(ą½ą½¼ą½ą¼ą½¢ą½²ą½ą¼ %u)\n" +#~ msgid "no pages selected\n" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼ą½ ą½ą½ą½ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½\n" +#~ msgid "%s: File corrupted, or not a DVI file\n" +#~ msgstr "%s:ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ą½ą½ą½¼ą¼ą½”ą½¼ą½ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ą½²ą¼\n" +#~ msgid "%s: vf macro had errors\n" +#~ msgstr "%s: ą½ą½²ą¼ą½Øą½ŗą½ą¼ ą½ą½ŗą½ą½¢ą½¼ą¼ą½£ą½“ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą¾±ą½“ą½ą¼ą½”ą½¼ą½ą½ą¼\n" +#~ msgid "%s: stack not empty after vf macro\n" +#~ msgstr "%s: ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½ŗą½ą½¢ą½¼ą¼ą½ą½²ą¼ą½¤ą½“ą½£ą¼ą½£ą½¦ą¼ ą½ą½¢ą¾©ą½ŗą½ą½¦ą¼ą½ą½“ą½ą¼ą½¦ą¾£ą½¼ą½ą½ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½ą¼\n" +#~ msgid "%s: could not reopen file (%s)\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼(%s)ą½£ą½¼ą½ą¼ą½ą¼ą½ą¾±ą½ŗą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼ą½ą½¦ą¼\n" +#~ msgid "%s: page %d out of range\n" +#~ msgstr "%s: ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼%d ą½ą¾±ą½ą¼ą½ą½ą¼ą½£ą½¦ą¼ą½ ą½ą½£ą¼ą½¦ą½¼ą½ą¼ą½ą½“ą½\n" +#~ msgid "%s: bad offset at page %d\n" +#~ msgstr "%s: ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼%d ą½ą½¢ą¼ą½£ą½ŗą½ą¼ą½ą¾±ą½ą¼ą½ą½ŗą½¦ą¼\n" +#~ msgid "stack not empty at end of page\n" +#~ msgstr "ą½¤ą½¼ą½ą½£ą½ŗą½ą¼ą½ą½ŗą¼ą½ą½²ą¼ą½ą½ą½“ą½ą¼ą½£ą½“ą¼ ą½ą½¢ą¾©ą½ŗą½ą½¦ą¼ą½ą½“ą½ą¼ą½¦ą¾ą½¼ą½ą½ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½\n" +#~ msgid "no default font set yet\n" +#~ msgstr "ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ ą½ą¼ą½£ą¾ą½¼ą¼ą½”ą½ą¼ą½ą½ŗą½ą¼\n" +#~ msgid "requested character %d does not exist in `%s'\n" +#~ msgstr "ą½ą½“ą¼ą½ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ ą½ą¾²ą½“ą¼%d ą½ą½ŗą¼`%s'ą½ą½ą¼ą½£ą½“ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½\n" +#~ msgid "enlarging stack\n" +#~ msgstr "ą½ą½¢ą¾©ą½ŗą½ą½¦ą¼ą½ą½“ą½ą¼ą½ą½ŗą½¢ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼ą¼\n" +#~ msgid "stack underflow\n" +#~ msgstr "ą½ą½¢ą¾©ą½ŗą½ą½¦ą¼ą½ą½“ą½ą¼ ą½ ą½¼ą½ą¼ą½¢ą¾ą¾±ą½“ą½ą¼\n" +#~ msgid "font %d is not defined\n" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼%d ą½ ą½ą½²ą¼ą½ą½ŗą½¦ą¼ą½ ą½ą½²ą½ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½¦ą¼\n" +#~ msgid "font %d is not defined in postamble\n" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼%d ą½ ą½ą½²ą¼ ą½ą½¼ą½¦ą½²ą¼ą½ą½ŗą½ą¼ą½ą½£ą½²ą¼ ą½ą½ą¼ą½£ą½“ą¼ą½ą½ŗą½¦ą¼ą½ ą½ą½²ą½ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½¦ą¼\n" +#~ msgid "unexpected opcode %d\n" +#~ msgstr "ą½¢ą½ŗą¼ą½ą½ą½“ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ ą½Øą½¼ą½ą¼ą½ą½¼ą½ą½²ą¼ %d\n" +#~ msgid "undefined opcode %d\n" +#~ msgstr "ą½ą½ŗą½¦ą¼ą½ą½ ą½²ą½ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½ ą½²ą¼ą½Øą½¼ą½ą¼ą½ą½¼ą½ą½²ą¼%d\n" +#~ msgid "%s: no fonts defined\n" +#~ msgstr "%s:ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ ą½²ą½ą¼ą½”ą½ą¼ą½ą½ŗą½¦ą¼ą½ ą½ą½²ą½ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½¦ą¼\n" +#~ msgid "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" +#~ msgstr "" +#~ "%s: %d:[%s] ą½ą½“ą¼ą½ą¼ą½ ą½ą½ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ą½Øą½²ą½ą¼ą½ą½¼ą¼ą½ą½²ą½ą¼`%s' ą½ą½ŗą¼ą½ą½ą½ą¼ą½ą½²ą½ą¼`%s' ą½ą½ą¼ą½ą½ ą½²ą½ą¼ą½ą½¢ą¼ą½ą½ą½“ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½²ą½ą¼" +#~ "ą½ ą½ą½“ą½\n" +#~ msgid "%s: could not load fontmap\n" +#~ msgstr "%s:ą½ą½ŗą¼ą½ą½²ą½¦ą¼ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½¦ą¼ą½ą¾²ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "%s: could not set as default encoding\n" +#~ msgstr "%s:ą½ą½ŗą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½Øą½ŗą½ą¼ą½ą½¼ą¼ą½ą½²ą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "encoding vector `%s' is in use\n" +#~ msgstr "ą½Øą½ŗą½ą¼ą½ą½¼ą¼ą½ą½²ą½ą¼ą½ą½ą½ą¼ą½ą½²ą½ą¼`%s' ą½ ą½ą½²ą¼ą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½ ą½²ą¼ą½¦ą¾ą½ą¼ą½”ą½¼ą½ą¼\n" +#~ msgid "GF: invalid opcode %d in character %d\n" +#~ msgstr "GF: ą½”ą½²ą½ą¼ą½ ą½ą¾²ą½“ą¼%d ą½ą½ą¼ą½£ą½“ą¼ ą½ą½“ą½¦ą¼ą½ą½ŗą½ą¼ą½Øą½¼ą½ą¼ą½ą½¼ą½ą½²ą¼%d ą½”ą½¼ą½ą½ą¼ą½Øą½²ą½ą¼\n" +#~ msgid "(gf) Character %d: invalid opcode %d\n" +#~ msgstr "(gf) ą½”ą½²ą½ą¼ą½ ą½ą¾²ą½“ą¼ %d: ą½ą½“ą½¦ą¼ą½ą½ŗą½ą¼ą½Øą½¼ą½ą¼ą½ą½¼ą½ą½²ą¼ %d\n" +#~ msgid "(gf) character %d has an incorrect bounding box\n" +#~ msgstr "(gf)ą½”ą½²ą½ą¼ą½ ą½ą¾²ą½“ą¼%d ą½ą½ŗą¼ą½£ą½“ą¼ ą½ą½ą½ŗą½ą¼ą½ą½ŗą½ą¼ą½ą½¼ą½ą¼ą½ą½²ą½ą¼ą½¦ą¾ą¾²ą½¼ą½ą¼ą½ ą½²ą½ą¼ą½ ą½ą½“ą½\n" +#~ msgid "%s: bad checksum (expected %u, found %u)\n" +#~ msgstr "%s: ą½ ą½ŗą½ą¼ą½¦ą½ą¼ą½ą¾±ą½ą¼ą½ą½ŗą½¦ą¼(ą½¢ą½ŗą¼ą½ą½ą½“ą½ą¼ą½ą½ŗą½ą¼ą½ą½²ą¼%u, ą½ ą½ą½¼ą½ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼%u)\n" +#~ msgid "%s: junk in postamble\n" +#~ msgstr "%s:ą½ą½¼ą½¦ą½²ą¼ą½ą½ŗą½ą¼ą½ą½£ą½²ą¼ą½ą½ą¼ą½£ą½“ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ ą½ą½ą½¼ą¼ą½ą½ŗą½ą¼\n" +#~ msgid "%s: File corrupted, or not a GF file\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ŗą½ą¼ą½ą½¦ą¼\n" +#~ msgid "invalid page specification `%s'\n" +#~ msgstr "ą½ą½“ą½¦ą¼ą½ą½ŗą½ą¼ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½¦ą½£ą¼ą½ą½ą½¼ą½ą¼`%s'\n" +#~ msgid "garbage after DVI page specification ignored\n" +#~ msgstr "ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ ą½²ą¼ ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½¦ą½£ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½²ą¼ą½¤ą½“ą½£ą¼ą½£ą½¦ą¼ ą½ą¾±ą½ą½¦ą¼ą½¦ą¾ą½²ą½ą½¦ą¼ą½¦ą¾£ą½ą¼ą½ą½ŗą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½ą½ą¼ą½ą½“ą½\n" +#~ msgid "more than 10 counters in page specification\n" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½¦ą½£ą¼ą½ą½ą½¼ą½ą¼ą½ą½ą¼ą½ą½²ą¼ ą½ą½ą½¼ą½ą¼ą½£ą½ą¼ą¼”ą¼ ą¼ą½£ą½¦ą¼ą½£ą¾·ą½ą¼ą½ą½ ą½²ą¼\n" +#~ msgid "garbage after TeX page specification ignored\n" +#~ msgstr "ą½ą½ŗą½ą½¦ą½²ą¼ ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½¦ą½£ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½²ą¼ą½¤ą½“ą½£ą¼ą½£ą½¦ą¼ ą½ą¾±ą½ą½¦ą¼ą½¦ą¾ą½²ą½ą½¦ą¼ą½¦ą¾£ą½ą¼ą½ą½ŗą½ą¼ą½¦ą¾¦ą½ŗą¼ą½ą½ą½ą¼ą½ą½“ą½\n" +#~ msgid "custom" +#~ msgstr "ą½¦ą¾²ą½¼ą½£ą¼ą½¦ą¾ą¾²ą½²ą½ą¼" +#~ msgid "Bad PK file: More bits than required\n" +#~ msgstr "ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą¾±ą½ą¼ą½ą½ŗą½¦ą¼\n" +#~ msgid "%s: checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s: ą½ ą½ŗą½ą¼ą½¦ą½ą¼ą½ą¼ą½ą½ą½“ą½ą½(ą½¢ą½ŗą¼ą½ ą½ą½“ą½ą¼ą½”ą½¼ą½ą½ą¼%u ą½ą½¼ą½ą¼ą½”ą½¼ą½ą½ą¼%u)\n" +#~ msgid "%s: unexpected preamble\n" +#~ msgstr "%s:ą½¢ą½ŗą¼ą½ą½ą½“ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ ą½ą½²ą½¢ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½±ą½£ą¼\n" +#~ msgid "%s: unexpected end of file (no postamble)\n" +#~ msgstr "%s: ą½¢ą½ŗą¼ą½ą½ą½“ą½ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½“ą½ą¼(ą½ą½¼ą½¦ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½±ą½£ą¼ą½ą½ŗą½ą¼)\n" +#~ msgid "invalid PK file! (junk in postamble)\n" +#~ msgstr "ą½ą½“ą½¦ą¼ą½ą½ŗą½ą¼ą½ą¾±ą½²ą¼ ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½²ą½ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½”!(ą½ą½¼ą½¦ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½±ą½£ą¼ą½ą½ą¼ą½ą½²ą¼ą½ą½ą½¼ą¼ą½ą½ŗą½ą¼)\n" +#~ msgid "%s: File corrupted, or not a PK file\n" +#~ msgstr "%s:ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ą½ą½ą½¼ą¼ą½”ą½¼ą½ą½ą¼ą½Øą½²ą½ą½ą¼ą½ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ ą½²ą½ą¼ą½ą½ŗą½ą¼\n" +#~ msgid "%s: malformed value for key `%s'\n" +#~ msgstr "%s: ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼`%s' ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½ą½¼ą¼ą½ą½ŗą½¦ą¼ą½ą¾±ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą½ą½¦ą¼ą½ą½¼ą½ą¼\n" +#~ msgid "%s: unknown key `%s' ignored\n" +#~ msgstr "%s:ą½ą¼ą½¤ą½ŗą½¦ą¼ą½ą½ ą½²ą¼ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼`%s' ą½¦ą¾£ą½ą¼ą½ą½ŗą½ą¼ą½ą½ą½ą¼ą½”ą½¼ą½ą¼\n" +#~ msgid "%s: no argument for key `%s', using defaults\n" +#~ msgstr "%s:ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼`%s' ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½¢ą¾ą½ą½¦ą¼ą½ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼\n" +#~ msgid "%s: argument `%s' ignored for key `%s'\n" +#~ msgstr "%s:ą½£ą¾”ą½ŗą¼ą½ą½²ą½ą¼`%s'ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½¦ą¾ą¾²ą½“ą½ą¼ą½¢ą¾ą½ą½¦ą¼ `%s' ą½¦ą¾£ą½ą¼ą½ą½ŗą½ą¼ą½ą½ą½ą¼ą½”ą½¼ą½ą½ą¼\n" +#~ msgid "%s: tried to pop top level layer\n" +#~ msgstr "%s:ą½¦ą¾¤ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½ą½²ą¼ą½ą½ą½¦ą¼ą½¢ą½²ą½ą¼ą½ą½“ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ą½ą½ą¼ą½¢ą½²ą½ą¼ ą½ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ą½ ą½ą½ą¼ą½ą½¢ą¾©ą½¼ą½£ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼ą½ ą½²ą¼\n" +#~ msgid "(t1) failed to reset device resolution\n" +#~ msgstr "(t1)ą½ą½ą½¦ą¼ą½ ą½ą¾²ą½“ą½£ą¼ą½§ą½“ą½ą¼ą½ą¼ą½ą½¦ą¾ą¾±ą½¢ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ ą½ ą½ą½“ą½¦ą¼ą½¤ą½¼ą½¢ą¼ą½ą¾±ą½“ą½ą¼ą½ą½“ą½\n" +#~ msgid "%s: could not encode font\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ ą½Øą½ŗą½ą¼ą½ą½¼ą½ą½²ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "(t1) unsupported bitmap pad size %d\n" +#~ msgstr "(t1) ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½ą½ŗą½ą¼ą½ą½ ą½²ą¼ ą½ą½²ą½ą½²ą¼ą½ą½ŗą½ą¼ ą½ą½ŗą½ą½²ą¼ą½ą½²ą¼ą½ą½ą¼%d\n" +#~ msgid "%s: Checksum mismatch (got %u, expected %u)\n" +#~ msgstr "%s:ą½ ą½ŗą½ą¼ą½¦ą½ą¼ ą½ą¼ą½ą½ą½“ą½ą½ą¼(ą½ą½¼ą½ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼%u, ą½¢ą½ŗą¼ą½ą½ą½“ą½ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ %u)\n" +#~ msgid "%s: Error reading AFM data\n" +#~ msgstr "%s: ą½Øą½ŗą¼ą½Øą½ŗą½ą¼ą½Øą½ŗą½ą¼ą½ą½ą½ą¼ą½¦ą¾”ą½“ą½ą¼ą½£ą¾·ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą¾±ą½“ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "Warning: TFM file `%s' has suspicious size\n" +#~ msgstr "ą½ą½ŗą½ą¼ą½ą½¢ą¾”ą¼:ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½Øą½ŗą½ą¼ ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ `%s' ą½£ą½“ą¼ą½ą½¼ą½ą½¦ą¼ą½ą¼ą½ ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą¼ą½”ą½¼ą½ą½ą¼ą½Øą½²ą½ą¼\n" +#~ msgid "%s: font coding scheme truncated to 40 bytes\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½¼ą¼ą½ą½²ą½ą¼ą½ ą½ą½¢ą¼ą½£ą½¦ą¼ą½ą½ŗą¼ ą½ą½±ą½ ą½²ą½ą½²ą¼ą¼¤ą¼ ą¼ą½£ą½“ą¼ą½ą½¢ą¼ą½ą½ą¼ą½ ą½ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "%s: File corrupted, or not a TFM file\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ą½ą½ą½¼ą¼ą½”ą½¼ą½ą½ą¼ą½ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ ą½²ą½ą¼ą½ą½ŗą½ą¼ą½ą½¦ą¼\n" +#~ msgid "(tt) %s: could not load face: %s\n" +#~ msgstr "(tt) %s: ą½ą½ą½¼ą½ą¼ą½¢ą¾£ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼: %s\n" +#~ msgid "(tt) %s: could not create face: %s\n" +#~ msgstr "(tt) %s:ą½ą½ą½¼ą½ą¼ą½¢ą¾£ą½ą¼ą½ą½¦ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦:%s\n" +#~ msgid "(tt) %s: could not create glyph: %s\n" +#~ msgstr "(tt) %s: ą½ą½²ą½£ą½²ą½ą¼ą½ą½¦ą½¢ą¼ą½ą½¦ą¾ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼: %s\n" +#~ msgid "(tt) %s: no acceptable map found, using #0\n" +#~ msgstr "(tt) %s: ą½ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½ą½“ą½ą¼ą½ą½ ą½²ą¼ ą½¦ą¼ą½ą¾²ą¼ą½ą¼ą½ ą½ą½¼ą½ą¼ą¼#0 ą½£ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼\n" +#~ msgid "(tt) %s: could not set resolution: %s\n" +#~ msgstr "(tt) %s: ą½§ą½“ą½ą¼ą½ą¼ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼: %s\n" +#~ msgid "(tt) %s: could not set point size: %s\n" +#~ msgstr "(tt) %s: ą½¦ą¼ą½ą½²ą½ą½¦ą¼ą½ą¾±ą½²ą¼ą½ą½ą¼ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼: %s\n" +#~ msgid "(tt) %s: could not load PS name table\n" +#~ msgstr "(tt) %s: ą½ą½²ą¼ą½Øą½ŗą½¦ą½²ą¼ą½ą½²ą½ą¼ą½ą½²ą¼ą½ą½²ą½ą¼ą½ą¾²ą½ą¼ ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "%s: no encoding vector found, expect bad output\n" +#~ msgstr "%s:ą½Øą½ŗą½ą¼ą½ą½¼ą¼ą½ą½²ą½ą¼ą½ą½ą½ą¼ą½ą½²ą½ą¼ą½ ą½²ą½ą¼ą½”ą½ą¼ą½ą¼ą½ą½¼ą½ą¼ ą½Øą½ ą½“ą½ą½²ą¼ą½ą½“ą½ą½²ą¼ ą½ą¾±ą½ą¼ą½ą½ŗą½¦ą¼ą½ ą½²ą½ą¼ą½¢ą½ŗą¼ą½ ą½ą½¼ą½ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼ą½¦ą¾”ą½¼ą½ą¼\n" +#~ msgid "(tt) %s: no font metric data\n" +#~ msgstr "(tt) %s: ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½ŗą¼ą½ą½²ą½ą¼ą½ą½ą½ą¼ą½¦ą¾”ą½“ą½ą¼ą½ą½ŗą½ą¼\n" +#~ msgid "Crashing" +#~ msgstr "ą½ą½¢ą¾”ą½ą¼ą½ ą½ą¾²ą½“ą½ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼" +#~ msgid "%s: Error: " +#~ msgstr "%s:ą½ ą½ą½¼ą½£ą¼ą½ą¼:" +#~ msgid "Error" +#~ msgstr "ą½ ą½ą½¼ą½£ą¼ą½ą¼" +#~ msgid "%s: Warning: " +#~ msgstr "%s: ą½ą½ŗą½ą¼ą½ą½¢ą¾”ą¼: " +#~ msgid "Warning" +#~ msgstr "ą½ą½ŗą½ą¼ą½ą½¢ą¾”ą¼" +#~ msgid "%s: Fatal: " +#~ msgstr "%s:ą½ ą½ą½“ą½ą¼ą½ą½ŗą½ą¼: " +#~ msgid "Fatal" +#~ msgstr "ą½ ą½ą½“ą½ą¼ą½ą½ŗą½ą¼" +#~ msgid "out of memory allocating %u bytes\n" +#~ msgstr "%u ą½ą½±ą½ ą½²ą½ą½²ą½¦ą½²ą¼ ą½¦ą¾¤ą¾²ą½¼ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ ą½ą¾²ą½ą¼ą½ą½ą¼ą½ą¾±ą½²ą¼ą½£ą½ą½¦ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼ą½ą½¦ą¼\n" +#~ msgid "attempted to reallocate with zero size\n" +#~ msgstr "ą½ą¾³ą½ą¼ą½ą½¼ą½¢ą¼ą½ą¾±ą½²ą¼ą½ą½ą¼ą½ą½ą¼ą½£ą½“ą¼ ą½£ą½¼ą½ą¼ą½¦ą¾¤ą¾²ą½¼ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½ą½ ą¼ą½ą½ ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "failed to reallocate %u bytes\n" +#~ msgstr "%u ą½ą½±ą½ ą½²ą½ą½²ą½¦ą½²ą¼ ą½¦ą¾¤ą¾²ą½¼ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ ą½ ą½ą½“ą½¦ą¼ą½¤ą½¼ą½¢ą¼ą½ą¾±ą½“ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "attempted to callocate 0 members\n" +#~ msgstr "ą½ ą½ą½“ą½¦ą¼ą½ą½²ą¼ ą¼ ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½“ą¼ ą½ą¼ą½£ą½¼ą¼ą½ą½ŗą½ą½²ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½ą½ ą¼ą½ą½ ą½ą¼ą½ ą½²ą¼\n" +#~ msgid "attempted to callocate %u members with size 0\n" +#~ msgstr "%u ą½ ą½ą½“ą½¦ą¼ą½ą½²ą¼ ą½ą½ą¼ą¼ ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą¼ą½£ą½¼ą¼ą½ą½ŗą½ą½²ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ ą½²ą¼ ą½ą½ ą½ą¼ą½ ą½²ą¼\n" +#~ msgid "failed to allocate %ux%u bytes\n" +#~ msgstr "%ux%u ą½ą½±ą½ ą½²ą½ą½²ą½¦ą½²ą¼ ą½¦ą¾¤ą¾²ą½¼ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ą½ ą½ą½“ą½¦ą¼ą½¤ą½¼ą½¢ą¼ą½ą¾±ą½“ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "attempted to free NULL pointer\n" +#~ msgstr "ą½ą½±ą½£ą¼ ą½ą½ą½ą¼ą½ą¾±ą½ą¼ą½ą½ŗą¼ ą½ą½£ą½ą¼ą½ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½ą½ą½ ą¼ą½ą½ ą½ą¼ą½ą½ ą½ą¼ą½Øą½²ą½ą¼\n" +#~ msgid "%s: Checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s:ą½ ą½ŗą½ą¼ą½¦ą½ą¼ ą½ą¼ą½ą½ą½“ą½ą½ą¼ (ą½ą½ŗą¼ą½ą½ą½“ą½ą¼ą½ą½¦ą¾ą¾±ą½ŗą½ą¼ą½”ą½¼ą½ą½ą¼ %u, ą½ą½¼ą½ą¼ą½”ą½¼ą½ą½ą¼ %u)\n" +#~ msgid "(vf) %s: could not load font `%s'\n" +#~ msgstr "(vf) %s: ą½”ą½²ą½ą¼ą½ą½ą½“ą½ą½¦ą¼`%s' ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą¼\n" +#~ msgid "(vf) %s: character %d redefined\n" +#~ msgstr "(vf) %s: ą½”ą½²ą½ą¼ą½ ą½ą¾²ą½“ą¼ %d ą½£ą½¼ą½ą¼ą½ą½ŗą½¦ą¼ą½ ą½ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą½“ą½ą¼\n" +#~ msgid "(vf) %s: no postamble\n" +#~ msgstr "(vf) %s: ą½ą½¼ą½¦ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½ą½±ą½£ą¼ą½ą½²ą½ą¼ą½ ą½ą½“ą½ą¼\n" +#~ msgid "%s: File corrupted, or not a VF file.\n" +#~ msgstr "%s: ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ą¼ą½ ą½ą¼ą½ą½ą½¼ą¼ą½”ą½¼ą½ą½ą¼ą½Øą½²ą½ą½ą¼ą½ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½ŗą½ą¼\n" +#~ msgid "No document loaded." +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą¼ą½ą½²ą¼ą½”ą½ą¼ ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ą¼ą½ ą½ą½ą¼ą½ą½¦ą¼" +#~ msgid "Broken pipe." +#~ msgstr "ą½¢ą¾ą¾±ą½“ą½ą¼ą½ą½ą¼ą½ą½ ą½²ą¼ą½¢ą¾ą¾±ą½“ą½ą¼ą½ą½“ą½ą¼ą¼" +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ā%sā:ą½Øą½ŗą½ą¼ą½ą½ą½“ą½ą½¦ą¼ą½ą½¤ą½¼ą½£ą¼ą½ą½ ą½²ą¼ą½¦ą¾ą½ą½¦ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą¾±ą½“ą½ą¼ą½”ą½²ą¼\n" +#~ msgid "File is not readable." +#~ msgstr "ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½£ą¾·ą½ą¼ą½ą½²ą¼ą½ą½ą½“ą½ą¼ą½ą½¦ą¼" +#~ msgid "Document loaded." +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½”ą½²ą¼" +#~ msgid "_Previous" +#~ msgstr "ą½§ą½ŗą¼ą½ą½ą¼(_P)" +#~ msgid "_Next" +#~ msgstr "ą½¤ą½“ą½£ą¼ą½ą½ą¼(_N)" +#~ msgid "Hide attachments bar" +#~ msgstr "ą½ą½ą½ą¼ą½¦ą¾¦ą¾²ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½¦ą¾¦ą¼ą½ą½ą½" +#~ msgid "*" +#~ msgstr "*" +#~ msgid "Default sidebar size" +#~ msgstr "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½²ą¼ą½ą½ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" +#~ msgid "Show sidebar by default" +#~ msgstr "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½¦ą¾ą½¼ą½ą¼" +#~ msgid "Show statusbar by default" +#~ msgstr "ą½ą½ą½¦ą¼ą½ą½ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ą½¦ą¾ą½¼ą½ą¼" +#~ msgid "Show toolbar by default" +#~ msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ą½¦ą¾ą½¼ą½ą¼" +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½ą½“ą½¢ą¼ą½ą½¼ą¼ą½ą½ą¼ ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¼ą¼ą½”ą½²ą½ą¼ą½ą½“ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½¢ą¾£ą½ą¼ą½ą¾²ą½ą½¦ą¼ą½ ą½²ą½ą¼ą½Øą½²ą½ą¼ ą½ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼" +#~ "ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½²ą¼ą½ą½“ą½¢ą¼ą½£ą½“ą¼ ą½ą½ą½²ą¼ą½ą½ą½ą¼ą½¦ą¾ą½ŗą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½²ą¼ą½¢ą¾ą¾±ą¼ą½ą½ą¼ ą½ą½²ą½ą¼ą½¦ą½ŗą½£ą½¦ą½²ą¼ą½ą½ą¼ ą½ą½ą½²ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą½ą¼ą½Øą½²ą½ą¼ " +#~ "ą½§ą¾²ą½²ą½ą¼ą½Øą½ą¼ą½ą¼ą½ ą½²ą¼ą½Øą½²ą½ą¼ą½¢ą½“ą½ą¼ ą½ą½ą¼ą½£ą½ŗą½ą¼ą½ ą½ą½ą¼ą½ ą½¼ą½ą¼ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½ą¼ ą½ą½“ą½¢ą¼ą½ą½¼ą¼ą½ą½ą¾²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼" +#~ "ą½ą½ą½¼ą¼ą½ą½ ą½²ą¼ ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½£ą½¦ą¼ą½ą½“ą½ą½ą¼ą½¦ą¾¦ą½ŗą¼ ą½ą½ą¼ą½”ą½ą¼ą½ą½²ą¼ą½ą½¦ą¾ą½“ą½ą¼ ą½ą½ŗą¼ą½£ą½“ą¼ą½ą½ŗą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½²ą¼ą½ą½ą¼ą½ą½ą¼ą½ ą½ą¾²ą½²ą½£ą¼ą½ą½ŗą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼" +#~ "ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ą½ą½²ą½¦ą¼ ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ą¾²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą½ ą½²ą¼ą½ą½ą½ ą¼ą½ą½¼ą½ą½¦ą¼ ą½ą¼ą½ą½ŗą¼ą½ą½ą¼ą½ą½ą¼ą½ą½ą½“ą½ą¼ą½ą½²ą¼ą½£ą½“ą¼ ą½¢ą¾ą¾±ą½“ą¼ą½¢ą¾ą¾±ą½ŗą½ą¼ą½ ą½ą½ą½ą¼ą½Øą½²ą½ą¼" +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½ą½“ą½¢ą¼ą½ą½¼ą¼ą½ą½ą¼ ą½ą½ą½ŗą¼ą½ą½ą½ŗą½¢ą¼ą½ą½¼ą¼ą½”ą½²ą½ą¼ą½ą½“ą¼ą½”ą½¼ą½ą¼ą½ą½ ą½²ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½¢ą¾£ą½ą¼ą½ą¾²ą½ą½¦ą¼ą½ą½ŗą¼ą½Øą½²ą½ą¼ ą½ą½“ą¼ą½£ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½ą¼" +#~ "ą½ą¼ą½ą½ą½²ą½¦ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½ą¼ ą½ą½ą½ŗą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½ą½¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą¼ą½ą½²ą¼ą½ą½ą¼ " +#~ "ą½¢ą¾«ą½“ą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½ą½ą½¼ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą½ą¼ą½Øą½²ą½ą¼" +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½ ą½ą¾²ą½ŗą½£ą¼ą½£ą½ą¼ą½ą½ą¼ ą½ą¾±ą¼ą½ą¼ą½ą½ą½ą¼ą½ą½“ą¼ą½ą½²ą¼ą½¦ą¾ą½¼ą½¢ą¼ą½£ą½¦ą¼ ą½ą½¢ą¾”ą¼ą½ą½¼ą½ą¼ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ą½ą¾²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ ą½ą½ą¼" +#~ "ą½£ą¾”ą½ą¼ą½ą½¤ą½ą¼ą½ą¾±ą½²ą¼ą½ą¾² ą½¢ą½²ą½ą¼ą½ą½ŗą¼ą½Øą½²ą½ą¼ ą½ą½“ą¼ą½£ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½ą¼ą½ą¼ą½ą½ą½²ą½¦ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½ą¼ ą½ą½ą½ŗą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ " +#~ "ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½ą½¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą¼ą½ą½²ą¼ą½ą½ą¼ ą½¢ą¾«ą½“ą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½ą½ą½¼ą½ą¼ą½ą¼" +#~ "ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą½ą¼ą½Øą½²ą½ą¼" +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½ ą½ą¾²ą½“ą½£ą¼ą½ą½¦ą¾ą¾±ą½¼ą½ą¼ą½ą½ą¼ ą½¢ą¾ą¾±ą½¦ą¼ą½ą½“ą½ą¼ą½ą½ą¼ą½ ą½ą½²ą½ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ ą½ą½ą½¼ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ą½Øą½²ą½ą¼ ą½ą½“ą¼ą½£ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½ą¼ą½ą¼" +#~ "ą½ą½ą½²ą½¦ą¼ą½”ą½¼ą½ą¼ą½ą½²ą¼ą½ą½ŗą¼ą½”ą½ą¼ ą½ą½ą½ŗą½ą¼ą½ą¼ą½ą½²ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½ą½ŗą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½ą½¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą¼ą½ą½²ą¼ą½ą½ą¼ ą½¢ą¾«ą½“ą½ą¼" +#~ "ą½ą¼ą½ą½²ą½¦ą¼ ą½¦ą¾ą½¼ą½ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ ą½ą½“ą½¢ą¼ą½ą½ ą½²ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ ą½ą½ą½¼ą½ą¼ą½ą¼ą½ą½“ą½ą½¦ą½ą¼ą½ą½ą½¼ą½ą¼ą½Øą½²ą½ą¼" +#~ msgid "Unable to find glade file" +#~ msgstr "ą½ą½ŗą¼ą½£ą½ŗą½ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ ą½ą½¼ą½£ą¼ą½ą¼ą½ą½¼ą½ą¼" +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "ą½ą½ŗą¼ą½£ą½ŗą½ą½²ą¼ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼%są½ ą½ą½¼ą½£ą¼ą½ą½²ą¼ą½ ą½ą½¼ą½ą¼ą½ą½¦ą¼ ą½ą¾±ą½¼ą½ą¼ą½¢ą½ ą½²ą¼ą½ą½ą½²ą¼ą½ą½ą½“ą½ą½¦ą¼ ą½ą¼ą½ą½ą¼ą½Øą½²ą½ą½ą¼ą½ą½ŗą½ą½ą¼ ą½ą½²ą½ą¼ą½ą½ą¾±ą½ą¼ą½ ą½ą½ą¼ą½ą½ą½ą¼ą¼" +#~ msgid "Not found" +#~ msgstr "ą½ą¼ą½ą½¼ą½ą¼" +#~ msgid "Document Viewer - Password Required" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼ - ą½ą½¼ą½ą¼ą½”ą½²ą½ą¼ą½ą½ą½¼ą¼ą½ą½¦ą¼" +#~ msgid "Loading document. Please wait" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą½¦ą½£ą¼ą½ ą½ą½ą¼ą½ą½¼ą¼ ą½ą½¦ą¾ą½“ą½ą¼ą½ą½ą½ą¼ą¼" +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "\"Find\" ą½ą¾±ą½ą¼ą½¢ą¾£ą½ą¼ą½ą½ŗą¼ą½ą½²ą½¦ą¼ ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ą½ą½ą¼ą½ą½ ą½²ą½ą¼ą½ą½¢ą¼ ą½£ą½±ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½ą½“ą½ą¼" +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ ą½ą½¼ą½£ą¼ą½ą½²ą½ą¼ą½ ą½ą½ą¼ą½ą½²ą¼ą½ą½ŗą¼ ą½ą½²ą¼ą½ą½²ą¼ą½Øą½ŗą½ą¼ą½”ą½²ą½ą¼ą½ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ą½¢ą¾ą¾±ą½ą½ą¼ą½ą½ ą½²ą½ą¼ ą½¢ą¾ą¾±ą½ą¼ą½¦ą¾ą¾±ą½¼ą½¢ą¼ą½”ą½¼ą½ą¼" +#~ msgid "Save the current document with a new filename" +#~ msgstr "ą½ą¼ą½£ą¾ą½¼ą½ ą½²ą¼ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ ą½”ą½²ą½ą¼ą½¦ą¾£ą½¼ą½ą¼ą½ą½²ą½ą¼ą½ą½¦ą½¢ą½ą¼ą½ ą½²ą½ą¼ą½ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½¦ą¼ą½¦ą¾²ą½“ą½ą½¦ą¼" +#~ msgid "View the properties of this document" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ ą½ą½²ą¼ą½ą½²ą¼ą½¢ą¾ą¾±ą½“ą¼ą½ą½ą½¼ą½¦ą¼ą½ą½“ą¼ą½¦ą¾ą½¼ą½ą¼" +#~ msgid "Close this window" +#~ msgstr "ą½¦ą¾ą½¼ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½²ą¼ą½ą¼ą½ą½¦ą¾”ą½ą½¦ą¼" +#~ msgid "Copy text from the document" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą¼ą½£ą½¦ą¼ą½ą½²ą½ą¼ą½”ą½²ą½ą¼ą½ ą½ą¾²ą¼ą½ą½¤ą½“ą½¦ą¼ą½¢ą¾ą¾±ą½ą½¦ą¼" +#~ msgid "Select the entire page" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½§ą¾²ą½²ą½£ą¼ą½ą½“ą¼ą½¦ą½ŗą½£ą¼ą½ ą½ą½“ą¼ą½ ą½ą½ą¼" +#~ msgid "Customize the toolbar" +#~ msgstr "ą½£ą½ą¼ą½ą½¦ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½¦ą¾²ą½¼ą½£ą¼ą½¦ą¾ą¾²ą½²ą½ą¼ą½ ą½ą½ą¼" +#~ msgid "Rotate the document to the left" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½ą½”ą½¼ą½ą¼ą½£ą½“ą¼ą½ą½¦ą¾ą¾±ą½²ą½¢ą¼" +#~ msgid "Rotate the document to the right" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ŗą¼ą½ą½”ą½¦ą¼ą½£ą½“ą¼ą½ą½¦ą¾ą¾±ą½²ą½¢ą¼" +#~ msgid "Display help for the viewer application" +#~ msgstr "ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼ą½ą¾³ą½¼ą½ą¼ą½¢ą½²ą½ą¼ą½ą¾±ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą¾²ą½¼ą½ą½¦ą¼ą½¢ą½ą¼ą½¦ą¾ą½¼ą½ą¼" +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "ą½”ą½²ą½ą¼ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½ŗą½ą¼ ą½ą½¦ą½¢ą¼ą½¦ą¾ą¾²ą½“ą½ą¼ą½ą½ ą½²ą¼ą½ą½¼ą½ą¼ą½£ą½“ą¼ ą½ą½¼ą¼ą½ą½¦ą¾ą½¼ą½ą¼ą½ą½ą¾²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ą½ ą½ą½ą¼" +#~ msgid "Scroll one page forward" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ ą½²ą½ą¼ą½ą½ą½¼ą½ą¼ą½ą¾±ą½¼ą½ą½¦ą¼ą½£ą½“ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" +#~ msgid "Scroll one page backward" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ ą½²ą½ą¼ą½¢ą¾ą¾±ą½ą¼ą½ą¾±ą½¼ą½ą½¦ą¼ą½£ą½“ą¼ą½¦ą¾ą¾²ą½²ą½£ą¼" +#~ msgid "Go ten pages backward" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ ą½“ą¼ą½ą½ą¼ą½ą¾±ą½²ą¼ą½¢ą¾ą¾±ą½ą¼ą½ą½¢ą¼ą½¦ą½¼ą½ą¼ą¼" +#~ msgid "Go ten pages forward" +#~ msgstr "ą½¤ą½¼ą½ą¼ą½£ą½ŗą½ą¼ą½ą½ ą½“ą¼ą½ą½ą¼ą½ą¾±ą½²ą¼ą½ą½ą½¼ą½ą¼ą½ą½¢ą¼ą½¦ą½¼ą½ą¼ą¼" +#~ msgid "_Statusbar" +#~ msgstr "ą½ą½ą½¦ą¼ą½ą½ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą¼(_S)" +#~ msgid "Show or hide the statusbar" +#~ msgstr "ą½ą½ą½¦ą¼ą½ą½ą¼ą½ą¾²ą¼ą½¢ą½²ą½ą¼ą½¦ą¾ą½¼ą½ą¼ ą½”ą½ą¼ą½ą¼ ą½¦ą¾¦ą¼ą½ą½ą½" + diff --git a/po/el.po b/po/el.po new file mode 100644 index 00000000..8b33df59 --- /dev/null +++ b/po/el.po @@ -0,0 +1,1709 @@ +# translation of evince.HEAD.po to Greek +# MATE evince Greek translation. +# Copyright (C) 2000, 2001,2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# +# Stylianos Papanastasiou <stelios@dcs.gla.ac.uk>, 2005. +# Kostas Papadimas <pkst@gnome.org>, 2006. +# Dimitris Glezos <dimitris@glezos.com>, 2006, 2007. +# Pierros Papadeas <ppapadeas@gmail.com>, 2008. +# Fotis Tsamis <ftsamis@gmail.com>, 2009. +# Initial translation by Stelios +# ĪĪ¬ĻĪ¹ĪæĻ ĪĪ·Ī½ĻĪÆĪ»Ī·Ļ <m.zindilis@dmajor.org>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-08-19 07:59+0000\n" +"PO-Revision-Date: 2010-08-22 21:04+0200\n" +"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n" +"Language-Team: Greek <team@mate.gr>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Ī£ĻĪ¬Ī»Ī¼Ī± ĪŗĪ±ĻĪ¬ ĻĪ·Ī½ ĪµĪŗĪŗĪÆĪ½Ī·ĻĪ· ĻĪ·Ļ ĪµĪ½ĻĪæĪ»Ī®Ļ ā%sā Ī¼Īµ ĻĪŗĪæĻĻ ĻĪ·Ī½ Ī±ĻĪæĻĻ Ī¼ĻĪÆĪµĻĪ· ĻĪæĻ comic book: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Ī ĪµĪ½ĻĪæĪ»Ī® ā%sā Ī±ĻĪĻĻ ĻĪµ ĻĻĪ·Ī½ Ī±ĻĪæĻĪæĻĻ Ī¼ĻĪÆĪµĻĪ· ĻĪæĻ comic book." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Ī ĪµĪ½ĻĪæĪ»Ī® ā%sā Ī“ĪµĪ½ ĪæĪ»ĪæĪŗĪ»Ī·ĻĻĪøĪ·ĪŗĪµ ĪŗĪ±Ī½ĪæĪ½Ī¹ĪŗĪ¬." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ĪĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĻĻĻĪæĻ comic book MIME: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻĪ·Ļ ĪŗĪ±ĻĪ¬Ī»Ī»Ī·Ī»Ī·Ļ ĪµĪ½ĻĪæĪ»Ī®Ļ Ī³Ī¹Ī± ĻĪ·Ī½ Ī±ĻĪæĻĻ Ī¼ĻĪÆĪµĻĪ· Ī±Ļ ĻĪæĻ ĻĪæĻ ĻĻĻĪæĻ ĻĪæĻ comic book" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ĪĪ³Ī½ĻĻĻĪæĻ ĻĻĻĪæĻ ĪĪĪĪ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Ī¤Īæ Ī±ĻĻĪµĪÆĪæ ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ±ĻĪµĻĻĻĪ±Ī¼Ī¼ĪĪ½Īæ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ĪĪµĪ½ Ī²ĻĪĪøĪ·ĪŗĪ±Ī½ Ī±ĻĻĪµĪÆĪ± ĻĻĪ·Ī½ Ī±ĻĻĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "ĪĪµĪ½ Ī²ĻĪĪøĪ·ĪŗĪ±Ī½ ĪµĪ¹ĪŗĻĪ½ĪµĻ ĻĻĪæ Ī±ĻĻĪµĪÆĪæ %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Ī Ī±ĻĪæĻ ĻĪ¹Ī¬ĻĻĪ·ĪŗĪµ ĻĻĪ¬Ī»Ī¼Ī± ĪŗĪ±ĻĪ¬ ĻĪ·Ī½ Ī“Ī¹Ī±Ī³ĻĪ±ĻĪ® ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Ī£ĻĪ¬Ī»Ī¼Ī± %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comic Books" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ DjVu ĪĻĪµĪ¹ ĪµĻĻĪ±Ī»Ī¼ĪĪ½Ī· Ī¼ĪæĻĻĪ®" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ Ī±ĻĪ±ĻĻĪÆĪ¶ĪµĻĪ±Ī¹ Ī±ĻĻ Ī“Ī¹Ī¬ĻĪæĻĪ± Ī±ĻĻĪµĪÆĪ±. ĪĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ Ī“Ļ Ī½Ī±ĻĪ® Ī· ĻĻĻĻĪ²Ī±ĻĪ· ĻĪµ ĪĪ½Ī± Ī® ĻĪµĻĪ¹ĻĻĻĻĪµĻĪ± Ī±ĻĻ Ī±Ļ ĻĪ¬ ĻĪ± Ī±ĻĻĪµĪÆĪ±." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ĪĪ³Ī³ĻĪ±ĻĪ± DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ DVI ĪĻĪµĪ¹ ĪµĻĻĪ±Ī»Ī¼ĪĪ½Ī· Ī¼ĪæĻĻĪ®" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ĪĪ³Ī³ĻĪ±ĻĪ± DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ĪĻ ĻĻ ĻĪæ ĪĻĪ³Īæ ĪµĪÆĪ½Ī±Ī¹ ĪĪ·Ī¼ĻĻĪ¹Īæ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ĪĪ±Ī¹" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ĪĻĪ¹" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Ī¤ĻĻĪæĻ 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Ī¤ĻĻĪæĻ 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Ī¤ĻĻĪæĻ 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Ī¤ĻĻĪæĻ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Ī¤ĻĻĪæĻ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ĪĪ³Ī½ĻĻĻĪæĻ ĻĻĻĪæĻ Ī³ĻĪ±Ī¼Ī¼Ī±ĻĪæĻĪµĪ¹ĻĪ¬Ļ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Ī§ĻĻĪÆĻ ĻĪ½ĪæĪ¼Ī±" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ĪĪ½ĻĻĪ¼Ī±ĻĻĪ¼ĪĪ½Īæ Ļ ĻĪæĻĻĪ½ĪæĪ»Īæ" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ĪĪ½ĻĻĪ¼Ī±ĻĻĪ¼ĪĪ½Īæ" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ĪĪ· ĪµĪ½ĻĻĪ¼Ī±ĻĻĪ¼ĪĪ½Īæ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ĪĪ³Ī³ĻĪ±ĻĪ± PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ĪĪŗĻ ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Ī£Ī»Ī¬Ī¹Ī½ĻĻ Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ĪĪ±Ī½ĪĪ½Ī± ĻĻĪ¬Ī»Ī¼Ī±" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ĪĪ½ĪµĻĪ±ĻĪŗĪ®Ļ Ī¼Ī½Ī®Ī¼Ī·" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻĪ·Ļ Ļ ĻĪæĪ³ĻĪ±ĻĪ®Ļ ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ĪĪ· ĪĪ³ĪŗĻ ĻĪæ Ī±ĻĻĪµĪÆĪæ ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ĪĪµĪ½ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪæĪ½ĻĪ±Ī¹ ZIP ĻĪæĪ»Ī»Ī±ĻĪ»ĻĪ½ Ī±ĻĻĪµĪÆĻĪ½" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĻĪæĻ Ī±ĻĻĪµĪÆĪæĻ " + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½Ī¬Ī³Ī½ĻĻĪ·Ļ Ī“ĪµĪ“ĪæĪ¼ĪĪ½ĻĪ½ Ī±ĻĻ ĻĪæ Ī±ĻĻĪµĪÆĪæ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻĪ·Ļ Ī±ĻĻĪµĪÆĪæĻ ĻĻĪæ ĻĻ Ī¼ĻĪ¹ĪµĻĪ¼ĪĪ½Īæ Ī±ĻĻĪµĪÆĪæ ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ĪĪ³Ī½ĻĻĻĪæ ĻĻĪ¬Ī»Ī¼Ī±" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĻĻĻĻĻĻĪ·Ļ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ·Ļ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ĪĪ³Ī³ĻĪ±ĻĪ± PostScript" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ·Ļ ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ĪĪµĪ½ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪµĻĪ±Ī¹ Ī· Ī¼ĪæĻĻĪ® Ī±ĻĻĪµĪÆĪæĻ %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ĪĪ»Ī± ĻĪ± ĪĪ³Ī³ĻĪ±ĻĪ±" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ĪĪ»Ī± ĻĪ± Ī±ĻĻĪµĪÆĪ±" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ĪĻĪæĻĻ ĻĪÆĪ± Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ±Ļ ĪµĪ½ĻĻ ĻĻĪæĻĻĻĪ¹Ī½ĪæĻ Ī±ĻĻĪµĪÆĪæĻ : %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ĪĻĪæĻĻ ĻĪÆĪ± Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ±Ļ ĪµĪ½ĻĻ ĻĻĪæĻĻĻĪ¹Ī½ĪæĻ ĻĪ±ĪŗĪĪ»ĪæĻ : %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ī¤Īæ Ī±ĻĻĪµĪÆĪæ Ī“ĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĪĪ³ĪŗĻ ĻĪæ Ī±ĻĻĪµĪÆĪæ .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ĪĪ· Ī±Ī½Ī±Ī³Ī½ĻĻĪÆĻĪ¹Ī¼Īæ Ī±ĻĻĪµĪÆĪæ ĪµĻĪ¹ĻĪ¬Ī½ĪµĪ¹Ī±Ļ ĪµĻĪ³Ī±ĻĪÆĪ±Ļ ĪĪŗĪ“ĪæĻĪ·Ļ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ĪĪŗĪŗĪÆĪ½Ī·ĻĪ· %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Ī ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® Ī“ĪµĪ½ Ī“ĪĻĪµĻĪ±Ī¹ ĪĪ³Ī³ĻĪ±ĻĪ± ĻĻĪ· Ī³ĻĪ±Ī¼Ī¼Ī® ĪµĪ½ĻĪæĪ»ĻĪ½" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ĪĪ· Ī±Ī½Ī±Ī³Ī½ĻĻĪÆĻĪ¹Ī¼Ī· ĪµĻĪ¹Ī»ĪæĪ³Ī® ĪµĪŗĪŗĪÆĪ½Ī·ĻĪ·Ļ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪæĻĪ¹ĻĪ¼ĪæĻ URI ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĪµ 'Type=Link' ĪµĪ³Ī³ĻĪ±ĻĪ® ĪµĻĪ¹ĻĪ¬Ī½ĪµĪ¹Ī±Ļ ĪµĻĪ³Ī±ĻĪÆĪ±Ļ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ĪĪ· ĪµĪŗĪŗĪ¹Ī½Ī®ĻĪ¹Ī¼Īæ Ī±Ī½ĻĪ¹ĪŗĪµĪÆĪ¼ĪµĪ½Īæ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ĪĻĪµĪ½ĪµĻĪ³ĪæĻĪæĪÆĪ·ĻĪ· ĻĻĪ½Ī“ĪµĻĪ·Ļ ĻĻĪæ Ī“Ī¹Ī±ĻĪµĪ¹ĻĪ¹ĻĻĪ® ĻĻ Ī½ĪµĪ“ĻĪÆĪ±Ļ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ĪĻĪ¹ĻĪ¼ĻĻ Ī±ĻĻĪµĪÆĪæĻ ĻĪæĻ ĻĪµĻĪ¹ĪĻĪµĪ¹ Ī±ĻĪæĪøĪ·ĪŗĪµĻ Ī¼ĪĪ½ĪµĻ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ĪĪ”Ī§ĪĪĪ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ĪĻĪ¹ĻĪ¼ĻĻ ID Ī“Ī¹Ī±ĻĪµĪÆĻĪ¹ĻĪ·Ļ ĻĻ Ī½ĪµĪ“ĻĪÆĪ±Ļ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ĪĻĪ¹Ī»ĪæĪ³ĪĻ Ī“Ī¹Ī±ĻĪµĪÆĻĪ¹ĻĪ·Ļ ĻĻ Ī½ĪµĪ“ĻĪ¹ĻĪ½" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ĪĪ¼ĻĪ¬Ī½Ī¹ĻĪ· ĪµĻĪ¹Ī»ĪæĪ³ĻĪ½ Ī“Ī¹Ī±ĻĪµĪÆĻĪ¹ĻĪ·Ļ ĻĻ Ī½ĪµĪ“ĻĪ¹ĻĪ½" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_ĪĪµĻĪ±ĪŗĪÆĪ½Ī·ĻĪ· ĻĪµ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ĪĪµĻĪ±ĪŗĪÆĪ½Ī·ĻĪ· ĻĪæĻ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½ĪæĻ Ī±Ī½ĻĪ¹ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ ĻĻĪ·Ī½ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Ī_ĻĪ±ĪÆĻĪµĻĪ· Ī±ĻĻ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ĪĻĪ±ĪÆĻĪµĻĪ· ĻĪæĻ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½ĪæĻ Ī±Ī½ĻĪ¹ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ Ī±ĻĻ ĻĪ·Ī½ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_ĪĻĪ±ĪÆĻĪµĻĪ· ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·Ļ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ĪĻĪ±ĪÆĻĪµĻĪ· ĻĪ·Ļ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½Ī·Ļ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·Ļ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ĪĪ¹Ī±ĻĻĻĪ¹ĻĻĪ¹ĪŗĻ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "ĪĪ±Ī»ĻĻĪµĻĪæ ĻĪ±ĪÆĻĪ¹Ī±ĻĪ¼Ī±" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ī¤Ī±ĪÆĻĪ¹Ī±ĻĪ¼Ī± ĻĻĪæ ĻĪ»Ī¬ĻĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ĪĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ ĻĪæĪ»Ī»Ī±ĻĪ»ĻĪ½ ĻĪµĪ»ĪÆĪ“ĻĪ½" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Ī Ī±ĻĪ¬ĪŗĪ±Ī¼ĻĪ· ĻĻĪ½ ĻĪµĻĪ¹ĪæĻĪ¹ĻĪ¼ĻĪ½ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Ī Ī±ĻĪ¬ĪŗĪ±Ī¼ĻĪ· ĻĻĪ½ ĻĪµĻĪ¹ĪæĻĪ¹ĻĪ¼ĻĪ½ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ , ĻĻĻĻ ĻĪµĻĪ¹ĪæĻĪ¹ĻĪ¼ĻĪ½ ĪµĪŗĻĻĻĻĻĪ·Ļ Ī® Ī±Ī½ĻĪ¹Ī³ĻĪ±ĻĪ®Ļ." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ĪĪ¹Ī±Ī³ĻĪ±ĻĪ® ĻĪæĻ ĻĻĪæĻĻĻĪ¹Ī½ĪæĻ Ī±ĻĻĪµĪÆĪæĻ " + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ĪĪŗĻĻĻĻĻĪ· Ī±ĻĻĪµĪÆĪæĻ ĻĻ ĪøĪ¼ĪÆĻĪµĻĪ½" + +#: ../previewer/ev-previewer.c:144 +#: ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ĪĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ ĻĪæĻ MATE" + +#: ../previewer/ev-previewer-window.c:91 +#: ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĪŗĻĻĻĻĻĪ·Ļ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Ī ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½ĪæĻ ĪµĪŗĻĻ ĻĻĻĪ®Ļ '%s' Ī“ĪµĪ½ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± Ī²ĻĪµĪøĪµĪÆ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 +#: ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../previewer/ev-previewer-window.c:285 +#: ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "ĪĻĻĪ¼Īµ_Ī½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../previewer/ev-previewer-window.c:288 +#: ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĪµĻĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../previewer/ev-previewer-window.c:291 +#: ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ĪĪµĪ³ĪĪøĻ Ī½ĻĪ· ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../previewer/ev-previewer-window.c:294 +#: ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ· ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../previewer/ev-previewer-window.c:297 +#: ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ĪĪŗĻĻĻĻĻĪ·" + +#: ../previewer/ev-previewer-window.c:298 +#: ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "ĪĪŗĻĻĻĻĻĪ· Ī±Ļ ĻĪæĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../previewer/ev-previewer-window.c:342 +#: ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_ĪĪ±Ī»ĻĻĪµĻĪæ ĻĪ±ĪÆĻĪ¹Ī±ĻĪ¼Ī±" + +#: ../previewer/ev-previewer-window.c:343 +#: ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "ĪĪµĻĪ±ĻĻĪæĻĪ® ĻĪæĻ ĻĻĪĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻĻĪµ Ī½Ī± Ī³ĪµĪ¼ĪÆĻĪµĪ¹ ĻĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ" + +#: ../previewer/ev-previewer-window.c:345 +#: ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Ī¤Ī±ĪÆĻĪ¹Ī±ĻĪ¼Ī± ĻĻĪæ Ļ_Ī»Ī¬ĻĪæĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: ../previewer/ev-previewer-window.c:346 +#: ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "ĪĪµĻĪ±ĻĻĪæĻĪ® ĻĪæĻ ĻĻĪĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻĻĪµ Ī½Ī± Ī³ĪµĪ¼ĪÆĻĪµĪ¹ ĻĪæ ĻĪ»Ī¬ĻĪæĻ ĻĪæĻ ĻĪ±ĻĪ±ĪøĻĻĪæĻ " + +#: ../previewer/ev-previewer-window.c:558 +#: ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Ī£ĪµĪ»ĪÆĪ“Ī±" + +#: ../previewer/ev-previewer-window.c:559 +#: ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "ĪĻĪ¹Ī»ĪæĪ³Ī® ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ĪĪ³Ī³ĻĪ±Ļo" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Ī¤ĪÆĻĪ»ĪæĻ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Ī¤ĪæĻĪæĪøĪµĻĪÆĪ±:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ĪĪĪ¼Ī±:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Ī£Ļ Ī³Ī³ĻĪ±ĻĪĪ±Ļ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ĪĪĪ¾ĪµĪ¹Ļ-ĪŗĪ»ĪµĪ¹Ī“ĪÆ:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Ī Ī±ĻĪ±Ī³ĻĪ³ĻĻ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ĪĪ·Ī¼Ī¹ĪæĻ ĻĪ³ĻĻ:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ĪĪ·Ī¼Ī¹ĪæĻ ĻĪ³Ī®ĪøĪ·ĪŗĪµ:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Ī¤ĻĪæĻĪæĻĪæĪ¹Ī®ĪøĪ·ĪŗĪµ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ĪĻĪ¹ĪøĪ¼ĻĻ Ī£ĪµĪ»ĪÆĪ“ĻĪ½:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ĪĪµĪ»ĻĪ¹ĻĪøĪ·ĪŗĪµ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ĪĪæĻĻĪ®:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ĪĻĻĪ¬Ī»ĪµĪ¹Ī±:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ĪĪĪ³ĪµĪøĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ:" + +#: ../properties/ev-properties-view.c:188 +#: ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ĪĪ±Ī½ĪĪ½Ī±" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "ĻĻĪæĪµĻĪ¹Ī»ĪæĪ³Ī®:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ĪÆĪ½ĻĻĪ±" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Ī ĪæĻĻĻĪ±ĪÆĻĪæ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Ī¤ĪæĻĪÆĪæ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Ī±ĻĻ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "Ī±ĻĻ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 +#: ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Ī¦ĪæĻĻĻĪ½ĪµĻĪ±Ī¹..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Ī ĻĪæĪµĻĪæĪ¹Ī¼Ī±ĻĪÆĪ± Ī³Ī¹Ī± ĪµĪŗĻĻĻĻĻĪ·..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ĪĪ»ĪæĪŗĪ»Ī®ĻĻĻĪ·..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ĪĪŗĻĻĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±Ļ %d Ī±ĻĻ %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Ī ĪµĪŗĻĻĻĻĻĪ· Ī“ĪµĪ½ Ļ ĻĪæĻĻĪ·ĻĪÆĪ¶ĪµĻĪ±Ī¹ ĻĪµ Ī±Ļ ĻĻĪ½ ĻĪæĪ½ ĪµĪŗĻĻ ĻĻĻĪ®." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ĪĪ· ĪĪ³ĪŗĻ ĻĪ· ĪµĻĪ¹Ī»ĪæĪ³Ī® ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Ī ĻĪæĪµĪ¹Ī“ĪæĻĪæĪÆĪ·ĻĪ·" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Ī ĪµĻĪ¹Ī»ĪæĪ³Ī® ĻĪæĻ ĪµĻĻĪæĻ Ļ ĪµĪŗĻĻĻĻĻĪ·Ļ Ī“ĪµĪ½ ĻĪµĻĪ¹ĪĻĪµĪ¹ ĪŗĪ±Ī¼ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ĪĪ»Ī¹Ī¼Ī¬ĪŗĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±Ļ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ· ĻĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ®" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Ī ĻĪæĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ®" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" +"ĪĪ»Ī¹Ī¼Ī¬ĪŗĻĻĪ· ĻĻĪ½ ĻĪµĪ»ĪÆĪ“ĻĪ½ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ī³Ī¹Ī± ĻĻĪæĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪ·Ī½ ĪµĻĪ¹Ī»ĪµĪ³Ī¼ĪĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī± ĪµĪŗĻĻ ĻĻĻĪ®. ĪĻĪ¹Ī»ĪĪ¾ĻĪµ ĪĪ½Ī± Ī±ĻĻ ĻĪ± Ī±ĪŗĻĪ»ĪæĻ ĪøĪ±:\n" +"\n" +"ā¢ \"ĪĪ±Ī¼ĪÆĪ±\": ĪĪµĪ½ ĪµĻĪ±ĻĪ¼ĻĪ¶ĪµĻĪ±Ī¹ ĪŗĪ±Ī¼ĪÆĪ± ĪŗĪ»Ī¹Ī¼Ī¬ĪŗĻĻĪ·.\n" +"\n" +"ā¢ \"Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ· ĻĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ®\": ĪĪ¹ ĻĪµĪ»ĪÆĪ“ĪµĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĪæĻ ĪµĪÆĪ½Ī±Ī¹ Ī¼ĪµĪ³Ī±Ī»ĻĻĪµĻĪµĻ Ī±ĻĻ ĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ® ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪŗĻĻ ĻĻĻĪ® ĻĪ¼Ī¹ĪŗĻĻĪ½ĪæĪ½ĻĪ±Ī¹ Ī³Ī¹Ī± Ī½Ī± ĻĻĻĪĻĪæĻ Ī½.\n" +"\n" +"ā¢ \"Ī ĻĪæĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ®\": ĪĪ¹ ĻĪµĪ»ĪÆĪ“ĪµĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ī½ Ī¼ĪµĪ³ĪµĪøĻĪ½ĪæĪ½ĻĪ±Ī¹ Ī® ĻĪ¼Ī¹ĪŗĻĻĪ½ĪæĪ½ĻĪ±Ī¹ Ī±Ī½Ī¬Ī»ĪæĪ³Ī±, Ī³Ī¹Ī± Ī½Ī± ĻĻĻĪĻĪæĻ Ī½ ĻĻĪ·Ī½ ĪµĪŗĻĻ ĻĻĻĪ¹Ī¼Ī· ĻĪµĻĪ¹ĪæĻĪ® ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪŗĻĻ ĻĻĻĪ®.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ĪĻ ĻĻĪ¼Ī±ĻĪ· ĻĪµĻĪ¹ĻĻĻĪæĻĪ® ĪŗĪ±Ī¹ ĪŗĪµĪ½ĻĻĪ¬ĻĪ¹ĻĪ¼Ī±" + +#: ../libview/ev-print-operation.c:1885 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "Ī ĪµĻĪ¹ĻĻĻĪæĻĪ® ĻĪ·Ļ ĪŗĪ¬ĪøĪµ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĪµĪŗĻĻ ĻĻĻĪ® ĻĻĻĪµ Ī½Ī± ĻĪ±Ī¹ĻĪ¹Ī¬Ī¶ĪµĪ¹ Ī¼Īµ ĻĪæĪ½ ĻĻĪæĻĪ±Ī½Ī±ĻĪæĪ»Ī¹ĻĪ¼Ļ ĪŗĪ¬ĪøĪµ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ . " + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ĪĻĪ¹Ī»ĪæĪ³Ī® ĻĪæĻ Ī¼ĪµĪ³ĪĪøĪæĻ Ļ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ Ī²Ī¬ĻĪµĪ¹ ĻĪæĻ Ī¼ĪµĪ³ĪĪøĪæĻ Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../libview/ev-print-operation.c:1892 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "ĪĪ½ ĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹Ī·ĪøĪµĪÆ, ĪŗĪ¬ĪøĪµ ĻĪµĪ»ĪÆĪ“Ī± ĪøĪ± ĪµĪŗĻĻ ĻĻĪøĪµĪÆ ĻĻĪæ ĪÆĪ“Ī¹Īæ Ī¼ĪĪ³ĪµĪøĪæĻ ĻĪ±ĻĻĪ¹ĪæĻ Ī¼Īµ ĻĪ· ĻĪµĪ»ĪÆĪ“Ī± ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ĪĪ¹Ī±ĻĪµĪÆĻĪ¹ĻĪ· ĻĪµĪ»ĪÆĪ“Ī±Ļ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ĪĻĪæĻĻ ĻĪÆĪ± ĪµĪŗĻĻĻĻĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĻĪ¬Ī½Ļ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĪŗĪ¬ĻĻ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĻĪ¬Ī½Ļ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ĪĻĪ»Ī¹ĻĪ· ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĪŗĪ¬ĻĻ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Ī¤ĪĪ»ĪæĻ ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·Ļ. ĪĪ¬Ī½ĻĪµ ĪŗĪ»Ī¹Īŗ Ī³Ī¹Ī± ĪĪ¾ĪæĪ“Īæ." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĪµĻĻĪ¼ĪµĪ½Ī· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ĪĻĻĪµĻĪ·" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī± %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĪµ %s ĻĻĪæ Ī±ĻĻĪµĪÆĪæ ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪæ Ī±ĻĻĪµĪÆĪæ ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "ĪĪŗĪŗĪÆĪ½Ī·ĻĪ· %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ĪĻĻĪµĻĪ·:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ĪĻĻĪµĻĪ· ĻĻĪæĪ·_Ī³ĪæĻ Ī¼ĪĪ½ĪæĻ " + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ĪĻĻĪµĻĪ· ĻĪ·Ļ ĻĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī·Ļ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĻĪæĻ Ī±Ī»ĻĪ±ĻĪ¹ĪøĪ¼Ī·ĻĪ¹ĪŗĪæĻ Ī±Ī½Ī±Ī¶Ī®ĻĪ·ĻĪ·Ļ" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ĪĻĻĪµĻĪ· Īµ_ĻĪæĪ¼ĪĪ½ĪæĻ " + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ĪĻĻĪµĻĪ· ĻĪ·Ļ ĪµĻĻĪ¼ĪµĪ½Ī·Ļ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·Ļ ĻĪæĻ Ī±Ī»ĻĪ±ĻĪ¹ĪøĪ¼Ī·ĻĪ¹ĪŗĪæĻ Ī±Ī½Ī±Ī¶Ī®ĻĪ·ĻĪ·Ļ" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_ĪĪ¹Ī¬ĪŗĻĪ¹ĻĪ· ĻĪµĪ¶ĻĪ½ Ī±ĻĻ ĪŗĪµĻĪ±Ī»Ī±ĪÆĪ±" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ĪĪ½Ī±Ī»Ī»Ī±Ī³Ī® Ī±Ī½Ī±Ī¶Ī®ĻĪ·ĻĪ·Ļ ĻĪµĪ¶ĻĪ½-ĪŗĪµĻĪ±Ī»Ī±ĪÆĻĪ½ " + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ĪĪ¹ĪŗĪæĪ½ĪÆĪ“Ī¹Īæ:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "Ī£Ī·Ī¼ĪµĪÆĻĻĪ·" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "Ī£ĻĪæĪ»Ī¹Ī±ĻĪ¼ĻĻ" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ĪĪ»ĪµĪ¹Ī“ĪÆ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "ĪĪæĪ®ĪøĪµĪ¹Ī±" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ĪĪĪ± ĻĪ±ĻĪ¬Ī³ĻĪ±ĻĪæĻ" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Ī Ī±ĻĪ¬Ī³ĻĪ±ĻĪæĻ" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ĪĪ¹ĻĪ±Ī³ĻĪ³Ī®" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Ī£ĻĪ±Ļ ĻĻĻ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ĪĻĪŗĪ»ĪæĻ" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "ĪĪ³Ī½ĻĻĻĪæ" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ ĻĻĪæĪ»ĪÆĻĪ½" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Ī§ĻĻĪ¼Ī±:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#| msgid "Title:" +msgid "Style:" +msgstr "Ī ĻĻĻĻ ĻĪæ:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ĪĪ¹Ī±ĻĪ±Ī½ĪĻ" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ĪĪ“Ī¹Ī±ĻĪ¬Ī½ĪµĪ¹Ī±" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ĪĻĻĪ¹ĪŗĪ® ĪŗĪ±ĻĪ¬ĻĻĪ±ĻĪ· ĻĪ±ĻĪ±ĪøĻĻĪæĻ :" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Openā¦" +msgid "Open" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī±" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ĪĪ»ĪµĪÆĻĪ¹Ī¼Īæ" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ĪĪŗĻĪĪ»ĪµĻĪ· ĻĪµ Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ± ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·Ļ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ĪĻĪ“Ī¹ĪŗĻĻ Ī³Ī¹Ī± ĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ĪĪµĻĪ±ĻĻĪæĻĪ® %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d Ī±ĻĻ %d ĪĪ³Ī³ĻĪ±ĻĪ± Ī¼ĪµĻĪ±ĻĻĪ¬ĻĪ·ĪŗĪ±Ī½" + +#: ../shell/ev-convert-metadata.c:165 +#: ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ĪĪµĻĪ±ĻĻĪæĻĪ® Ī¼ĪµĻĪ±Ī“ĪµĪ“ĪæĪ¼ĪĪ½ĻĪ½" + +#: ../shell/ev-convert-metadata.c:187 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Ī Ī¼ĪæĻĻĪ® Ī¼ĪµĻĪ±Ī“ĪµĪ“ĪæĪ¼ĪĪ½ĻĪ½ ĻĪæĻ ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹ĪµĪÆĻĪ±Ī¹ Ī±ĻĻ ĻĪæ Evince ĪĻĪµĪ¹ Ī±Ī»Ī»Ī¬Ī¾ĪµĪ¹, ĪŗĪ±Ī¹ ĻĻĪµĪ¹Ī¬Ī¶ĪµĻĪ±Ī¹ Ī½Ī± Ī³ĪÆĪ½ĪµĪ¹ Ī¼ĪµĻĪ¬Ī²Ī±ĻĪ·. ĪĪ½ Ī±ĪŗĻ ĻĻĪøĪµĪÆ Ī· Ī¼ĪµĻĪ¬Ī²Ī±ĻĪ· Ī“Īµ ĪøĪ± Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪµĪÆ Ī· Ī±ĻĪæĪøĪ®ĪŗĪ· Ī¼ĪµĻĪ±Ī“ĪµĪ“ĪæĪ¼ĪĪ½ĻĪ½." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĪµĪ½ĻĻ ĻĻĻĻĻĪ±ĻĪ± ĻĻĪ·ĻĪ¹Ī¼ĪæĻĪæĪ¹Ī·Ī¼ĪĪ½ĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ»ĪµĪ¹Ī“ĻĪ¼ĪĪ½Īæ ĪŗĪ±Ī¹ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± Ī±Ī½Ī±Ī³Ī½ĻĻĻĪµĪÆ Ī¼ĻĪ½Īæ Ī¼ĪµĻĪ¬ Ī±ĻĻ ĻĪ·Ī½ ĪµĪ¹ĻĪ±Ī³ĻĪ³Ī® ĻĪæĻ ĻĻĻĻĪæĻ ĪŗĻĪ“Ī¹ĪŗĪæĻ." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_ĪĪµĪŗĪ»ĪµĪÆĪ“ĻĪ¼Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ĪĪ¹ĻĪ¬Ī³ĪµĻĪµ ĪŗĻĪ“Ī¹ĪŗĻ" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ĪĻĪ±Ī¹ĻĪµĪÆĻĪ±Ī¹ ĪŗĻĪ“Ī¹ĪŗĻĻ." + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ ā%sā ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ»ĪµĪ¹Ī“ĻĪ¼ĪĪ½Īæ ĪŗĪ±Ī¹ Ī±ĻĪ±Ī¹ĻĪµĪÆĻĪ±Ī¹ ĪŗĻĪ“Ī¹ĪŗĻĻ ĻĻĪ¹Ī½ ĻĪæ Ī¬Ī½ĪæĪ¹Ī³Ī¼Ī±." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ĪĻĪ“Ī¹ĪŗĻĻ:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_ĪĪ· Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĻĪæĻ ĪŗĻĪ“Ī¹ĪŗĪæĻ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ĪĻĪæĪ¼Ī½Ī·Ī¼ĻĪ½ĪµĻ ĻĪ· ĪŗĻĪ“Ī¹ĪŗĪæĻ Ī¼ĪĻĻĪ¹ Ī½Ī± Ī±_ĻĪæĻĻ Ī½Ī“ĪµĪøĪ®ĻĪµ" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ĪĻĪ½Ī¹Ī¼Ī· Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· _ĻĻĪæĪ¹ĻĪµĪÆĻĪ½" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ĪĪµĪ½Ī¹ĪŗĪ¬" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ĪĻĪ±Ī¼Ī¼Ī±ĻĪæĻĪµĪ¹ĻĪĻ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ĪĪ“ĪµĪ¹Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ĪĻĪ±Ī¼Ī¼Ī±ĻĪæĻĪµĪ¹ĻĪ¬" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Ī£Ļ Ī»Ī»ĪæĪ³Ī® ĻĪ»Ī·ĻĪæĻĪæĻĪ¹ĻĪ½ Ī³Ī¹Ī± ĻĪ¹Ļ Ī³ĻĪ±Ī¼Ī¼Ī±ĻĪæĻĪµĪ¹ĻĪĻ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ĪĻĪæĪ¹ ĻĻĪ®ĻĪ·Ļ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ĪĪ“ĪµĪ¹Ī± ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ " + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Ī ĪµĻĪ¹ĻĻĻĻĪµĻĪµĻ ĻĪ»Ī·ĻĪæĻĪæĻĪÆĪµĻ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ĪĪÆĻĻĪ±" + +#: ../shell/ev-sidebar-annotations.c:203 +#: ../shell/ev-sidebar-annotations.c:533 +#| msgid "Location:" +msgid "Annotations" +msgstr "Ī£ĻĻĪ»Ī¹Ī±" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "ĪĪµĪÆĪ¼ĪµĪ½Īæ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Ī ĻĪæĻĪøĪ®ĪŗĪ· ĻĻĪæĪ»ĪÆĪæĻ ĪŗĪµĪ¹Ī¼ĪĪ½ĪæĻ " + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Ī ĻĪæĻĪøĪ®ĪŗĪ·" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "The document contains no pages" +msgid "Document contains no annotations" +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ Ī“ĪµĪ½ ĻĪµĻĪ¹ĪĻĪµĪ¹ ĻĻĻĪ»Ī¹Ī±" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "Ī£ĪµĪ»ĪÆĪ“Ī± %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Ī£Ļ Ī½Ī·Ī¼Ī¼ĪĪ½Ī± " + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Ī£ĻĻĻĪ¼Ī±ĻĪ±" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ĪĪŗĻĻĻĻĻĪ·..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ĪĪ±ĻĪ¬Ī»ĪæĪ³ĪæĻ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ĪĪ¹ĪŗĻĪæĪ³ĻĪ±ĻĪÆĪµĻ" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Ī£ĪµĪ»ĪÆĪ“Ī± %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Ī£ĪµĪ»ĪÆĪ“Ī± %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Ī¤Īæ Ī±ĻĻĪµĪÆĪæ Ī“ĪµĪ½ ĻĪµĻĪ¹ĪĻĪµĪ¹ ĻĪµĪ»ĪÆĪ“ĪµĻ" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµĻĪ¹ĪĻĪµĪ¹ Ī¼ĻĪ½Īæ ĪŗĪµĪ½ĪĻ ĻĪµĪ»ĪÆĪ“ĪµĻ" + +#: ../shell/ev-window.c:1627 +#: ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Ī¦ĻĻĻĻĻĪ· ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ī±ĻĻ ā%sā" + +#: ../shell/ev-window.c:1906 +#: ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ĪĪ±ĻĪĪ²Ī±ĻĪ¼Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĻĻĻĻĻĻĪ·Ļ ĻĪæĻ Ī±ĻĪæĪ¼Ī±ĪŗĻĻ ĻĪ¼ĪĪ½ĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "ĪĻĪ±Ī½Ī±ĻĻĻĻĻĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ī±ĻĻ %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĻĪ±Ī½Ī±ĻĻĻĻĻĻĪ·Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĪµ %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ ĻĪµ %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ¹ĪŗĻĪ½Ī±Ļ ĻĪµ %s" + +#: ../shell/ev-window.c:2664 +#: ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Ī¤Īæ Ī±ĻĻĪµĪÆĪæ Ī“ĪµĪ½ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± Ī±ĻĪæĪøĪ·ĪŗĪµĻ ĻĪµĪÆ ĻĻ ā%sā." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ĪĪ½ĪĪ²Ī±ĻĪ¼Ī± ĪµĪ³Ī³ĻĪ¬ĻĪæĻ (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ĪĪ½ĪĪ²Ī±ĻĪ¼Ī± ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ĪĪ½ĪĪ²Ī±ĻĪ¼Ī± ĪµĪ¹ĪŗĻĪ½Ī±Ļ (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ĪĪŗĪŗĻĪµĪ¼ĪµĪÆ %d ĪµĻĪ³Ī±ĻĪÆĪ± ĻĻĪ·Ī½ ĻĪµĪ¹ĻĪ¬ Ī±Ī½Ī±Ī¼ĪæĪ½Ī®Ļ" +msgstr[1] "ĪĪŗĪŗĻĪµĪ¼ĪæĻĪ½ %d ĪµĻĪ³Ī±ĻĪÆĪµĻ ĻĻĪ·Ī½ ĻĪµĪ¹ĻĪ¬ Ī±Ī½Ī±Ī¼ĪæĪ½Ī®Ļ" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ĪĻĪ³Ī±ĻĪÆĪ± ĪµĪŗĻĻĻĻĻĪ·Ļ ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "Document contains form fields that have been filled out. If you don't save a copy, changes will be permanently lost." +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµĻĪ¹ĪĻĪµĪ¹ ĻĪµĪ“ĪÆĪ± ĻĻĻĪ¼Ī±Ļ ĻĪæĻ ĪĻĪæĻ Ī½ ĻĻ Ī¼ĻĪ»Ī·ĻĻĪøĪµĪÆ. ĪĪ½ Ī“ĪµĪ½ Ī±ĻĪæĪøĪ·ĪŗĪµĻĻĪµĻĪµ ĪĪ½Ī± Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæ, ĪæĪ¹ Ī±Ī»Ī»Ī±Ī³ĪĻ ĪøĪ± ĻĪ±ĪøĪæĻĪ½ ĪæĻĪ¹ĻĻĪ¹ĪŗĪ¬." + +#: ../shell/ev-window.c:3406 +msgid "Document contains new or modified annotations. If you don't save a copy, changes will be permanently lost." +msgstr "Ī¤Īæ ĪĪ³Ī³ĻĪ±ĻĪæ ĻĪµĻĪ¹ĪĻĪµĪ¹ Ī½ĪĪ± Ī· ĻĻĪæĻĪæĻĪæĪ¹Ī·Ī¼ĪĪ½Ī± ĻĻĻĪ»Ī¹Ī±. ĪĪ½ Ī“ĪµĪ½ Ī±ĻĪæĪøĪ·ĪŗĪµĻĻĪµĻĪµ ĪĪ½Ī± Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæ, ĪæĪ¹ Ī±Ī»Ī»Ī±Ī³ĪĻ ĪøĪ± ĻĪ±ĪøĪæĻĪ½ ĪæĻĪ¹ĻĻĪ¹ĪŗĪ¬." + +#: ../shell/ev-window.c:3413 +#, c-format +#| msgid "Wait until print job ā%sā finishes before closing?" +msgid "Save a copy of document ā%sā before closing?" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ½ĻĻ Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ā«%sĀ» ĻĻĪ¹Ī½ ĻĪæ ĪŗĪ»ĪµĪÆĻĪ¹Ī¼Īæ;" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ĪĪ»ĪµĪÆĻĪ¹Ī¼Īæ _ĻĻĻĪÆĻ Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ·" + +#: ../shell/ev-window.c:3436 +#| msgid "Save a Copy" +msgid "Save a _Copy" +msgstr "ĪĻĪæ_ĪøĪ®ĪŗĪµĻ ĻĪ· Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ĪĪ½Ī±Ī¼ĪæĪ½Ī® Ī¼ĪĻĻĪ¹ Ī· ĪµĻĪ³Ī±ĻĪÆĪ± ĪµĪŗĻĻĻĻĻĪ·Ļ ā%sā Ī½Ī± ĪæĪ»ĪæĪŗĪ»Ī·ĻĻĪøĪµĪÆ ĻĻĪ¹Ī½ ĻĪæ ĪŗĪ»ĪµĪÆĻĪ¹Ī¼Īæ;" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "Ī„ĻĪ¬ĻĻĪæĻ Ī½ %d ĪµĪ½ĪµĻĪ³ĪĻ ĪµĻĪ³Ī±ĻĪÆĪµĻ ĪµĪŗĻĻĻĻĻĪ·Ļ. ĪĪ½Ī±Ī¼ĪæĪ½Ī® Ī¼ĪĻĻĪ¹ Ī· ĪµĪŗĻĻĻĻĻĪ· Ī½Ī± ĻĪµĪ»ĪµĪ¹ĻĻĪµĪ¹ ĻĻĪ¹Ī½ ĻĪæ ĪŗĪ»ĪµĪÆĻĪ¹Ī¼Īæ;" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ĪĪ½ ĪŗĪ»ĪµĪÆĻĪµĻĪµ ĻĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ, ĪæĪ¹ ĪµĪŗĪŗĻĪµĪ¼ĪµĪÆĻ ĪµĻĪ³Ī±ĻĪÆĪµĻ ĪµĪŗĻĻĻĻĻĪ·Ļ Ī“ĪµĪ½ ĪøĪ± ĪµĪŗĻĻ ĻĻĪøĪæĻĪ½." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "ĪĪŗĻĻĻĻĪ· _ĪµĪŗĻĻĻĻĻĪ·Ļ ĪŗĪ±Ī¹ ĪŗĪ»ĪµĪÆĻĪ¹Ī¼Īæ" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ĪĪ»ĪµĪÆĻĪ¹_Ī¼Īæ Ī¼ĪµĻĪ¬ ĻĪ·Ī½ ĪµĪŗĻĻĻĻĻĪ·" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "ĪĻĪµĪ¾ĪµĻĪ³Ī±ĻĪÆĪ± ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·Ļ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Ī Ī±ĻĪæĻ ĻĪ¹Ī¬ĻĻĪ·ĪŗĪµ ĻĻĪ¬Ī»Ī¼Ī± ĪŗĪ±ĻĪ¬ ĻĪ·Ī½ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ· ĻĪ·Ļ Ī²ĪæĪ®ĪøĪµĪ¹Ī±Ļ" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Ī ĻĪæĪ²ĪæĪ»Ī® ĪĪ³Ī³ĻĪ¬ĻĻĪ½.\n" +"ĪĪÆĪ½ĪµĻĪ±Ī¹ ĻĻĪ®ĻĪ· ĻĪæĻ %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Ī¤Īæ Evince ĪµĪÆĪ½Ī±Ī¹ ĪµĪ»ĪµĻĪøĪµĻĪæ Ī»ĪæĪ³Ī¹ĻĪ¼Ī¹ĪŗĻ. ĪĻĪ¹ĻĻĪĻĪµĻĪ±Ī¹ Ī· Ī±Ī½Ī±Ī“Ī¹Ī±Ī½ĪæĪ¼Ī® Ī®/ĪŗĪ±Ī¹ ĻĻĪæĻĪæĻĪæĪÆĪ·ĻĪ® ĻĪæĻ Ļ ĻĻ ĻĪæĻ Ļ ĻĻĪæĻ Ļ ĻĪ·Ļ ĪĪµĪ½Ī¹ĪŗĪ®Ļ ĪĪ“ĪµĪ¹Ī±Ļ ĪĪ·Ī¼ĻĻĪ¹Ī±Ļ Ī§ĻĪ®ĻĪ·Ļ GNU (GNU General Public License) ĻĻĻĻ Ī±Ļ ĻĪ® Ī“Ī·Ī¼ĪæĻĪ¹ĪµĻĪµĻĪ±Ī¹ Ī±ĻĻ ĻĪæ ĪĪ“ĻĻ Ī¼Ī± ĪĪ»ĪµĻĪøĪµĻĪæĻ ĪĪæĪ³Ī¹ĻĪ¼Ī¹ĪŗĪæĻ (Free Software Foundation) - ĪµĪÆĻĪµ ĻĪ·Ļ ĪĪŗĪ“ĪæĻĪ·Ļ 2 ĻĪ·Ļ Ī¬Ī“ĪµĪ¹Ī±Ļ, ĪµĪÆĻĪµ (ĪŗĪ±Ļ' ĪµĻĪ¹Ī»ĪæĪ³Ī®Ī½) ĪæĻĪæĪ¹Ī±ĻĪ“Ī®ĻĪæĻĪµ Ī¼ĪµĻĪ±Ī³ĪµĪ½ĪĻĻĪµĻĪ·Ļ ĪĪŗĪ“ĪæĻĪ·Ļ.\n" + +#: ../shell/ev-window.c:4567 +msgid "Evince 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.\n" +msgstr "Ī¤Īæ Evince Ī“Ī¹Ī±Ī½ĪĪ¼ĪµĻĪ±Ī¹ Ī¼Īµ ĻĪ·Ī½ ĪµĪ»ĻĪÆĪ“Ī± ĪæĻĪ¹ ĪøĪ± ĪµĪÆĪ½Ī±Ī¹ ĻĻĪ®ĻĪ¹Ī¼Īæ, Ī±Ī»Ī»Ī¬ Ī§Ī©Ī”ĪĪ£ ĪĪĪĪĪĪ ĪĪ ĪĪĪ„Ī¤Ī©Ī£ ĪĪĪĪ„ĪĪ£Ī - ĻĻĻĪÆĻ Ī±ĪŗĻĪ¼Ī· ĪŗĪ±Ī¹ ĻĪ·Ī½ ĪĪ¼Ī¼ĪµĻĪ· ĪµĪ³Ī³ĻĪ·ĻĪ· ĪĪĪ ĪĪ”ĪĪ„Ī£ĪĪĪĪ¤ĪĪ¤ĪĪ£ Ī®ĪĪĪ¤ĪĪĪĪĪĪĪ¤ĪĪ¤ĪĪ£ ĪĪĪ Ī£Ī„ĪĪĪĪĪ”ĪĪĪĪĪ Ī£ĪĪĪ Ī. ĪĪµĪÆĻĪµ Ī³Ī¹Ī± ĻĪµĻĪ¹ĻĻĻĻĪµĻĪµĻ Ī»ĪµĻĻĪæĪ¼ĪĻĪµĪ¹ĪµĻ ĻĪ·Ī½ ĪĪµĪ½Ī¹ĪŗĪ® ĪĪ“ĪµĪ¹Ī± ĪĪ·Ī¼ĻĻĪ¹Ī±Ļ Ī§ĻĪ®ĻĪ·Ļ GNU (GNU General Public License).\n" + +#: ../shell/ev-window.c:4571 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "ĪĪ± ĻĻĪĻĪµĪ¹ Ī½Ī± ĪĻĪµĻĪµ Ī»Ī¬Ī²ĪµĪ¹ ĪĪ½Ī± Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæ ĻĪ·Ļ ĪĪµĪ½Ī¹ĪŗĪ®Ļ ĪĪ“ĪµĪ¹Ī±Ļ ĪĪ·Ī¼ĻĻĪ¹Ī±Ļ Ī§ĻĪ®ĻĪ·Ļ GNU (GNU General Public License) Ī¼Ī±Ī¶ĪÆ Ī¼Īµ ĻĪæ Evince. ĪĪ½ ĻĻĪ¹, ĪµĻĪ¹ĪŗĪæĪ¹Ī½ĻĪ½Ī®ĻĻĪµ Ī³ĻĪ±ĻĻĻĻ Ī¼Īµ ĻĪæ ĪĪ“ĻĻ Ī¼Ī± ĪĪ»ĪµĻĪøĪµĻĪæĻ ĪĪæĪ³Ī¹ĻĪ¼Ī¹ĪŗĪæĻ (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 ĪĪ¹ ĻĻ Ī³Ī³ĻĪ±ĻĪµĪÆĻ ĻĪæĻ Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"ĪĪ»Ī»Ī·Ī½Ī¹ĪŗĪ® Ī¼ĪµĻĪ±ĻĻĪ±ĻĻĪ¹ĪŗĪ® ĪæĪ¼Ī¬Ī“Ī± MATE\n" +" Ī£ĻĻ Ī»Ī¹Ī±Ī½ĻĻ Ī Ī±ĻĪ±Ī½Ī±ĻĻĪ±ĻĪÆĪæĻ <stelios@dcs.gla.ac.uk>\n" +" ĪĪ·Ī¼Ī®ĻĻĪ·Ļ ĪĪ»ĪĪ¶ĪæĻ <dimitris@glezos.com>\n" +" Ī¦ĻĻĪ·Ļ Ī¤ĻĪ¬Ī¼Ī·Ļ <ftsamis@gmail.com>\n" +" ĪĪ¬ĻĪ¹ĪæĻ ĪĪ·Ī½ĻĪÆĪ»Ī·Ļ <m.zindilis@dmajor.org\n" +"\n" +"ĪĪ¹Ī± ĻĪµĻĪ¹ĻĻĻĻĪµĻĪµĻ ĻĪ»Ī·ĻĪæĻĪæĻĪÆĪµĻ, ĪµĻĪ¹ĻĪŗĪµĻĪøĪµĪÆĻĪµ ĻĪ· ĻĪµĪ»ĪÆĪ“Ī± http://www.mate.gr/" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d Ī²ĻĪĪøĪ·ĪŗĪµ ĻĪµ Ī±Ļ ĻĪ®Ī½ ĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" +msgstr[1] "%d Ī²ĻĪĪøĪ·ĪŗĪ±Ī½ ĻĪµ Ī±Ļ ĻĪ®Ī½ ĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ĪĪµĪ½ Ī²ĻĪĪøĪ·ĪŗĪµ" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Ī±ĻĪæĪ¼ĪĪ½ĪæĻ Ī½ Ī³Ī¹Ī± Ī±Ī½Ī±Ī¶Ī®ĻĪ·ĻĪ·" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_ĪĻĻĪµĪÆĪæ" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_ĪĻĪµĪ¾ĪµĻĪ³Ī±ĻĪÆĪ±" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Ī ĻĪæĪ²ĪæĪ»Ī®" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_ĪĪµĻĪ¬Ī²Ī±ĻĪ·" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_ĪĪæĪ®ĪøĪµĪ¹Ī±" + +#. File menu +#: ../shell/ev-window.c:5402 +#: ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "ĪĪ½_ĪæĪ¹Ī³Ī¼Ī±..." + +#: ../shell/ev-window.c:5403 +#: ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "ĪĪ½_ĪæĪ¹Ī³Ī¼Ī± Ļ ĻĪ¬ĻĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Ī_Ī½ĪæĪ¹Ī³Ī¼Ī± ĪµĪ½ĻĻ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæĻ " + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĪµĪ½ĻĻ Ī±Ī½ĻĪÆĪ³ĻĪ±ĻĪæĻ ĻĪæĻ ĻĻĪĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĪµ ĪĪ½Ī± Ī½ĪĪæ ĻĪ±ĻĪ¬ĪøĻ ĻĪæ" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "_ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ ..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ½ĻĻ Ī±Ī½ĻĪ¹Ī³ĻĪ¬ĻĪæĻ ĻĪæĻ ĻĻĪĻĪæĪ½ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_ĪĪŗĻĻĻĻĻĪ·..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "_ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "ĪĻĪ¹Ī»ĪæĪ³Ī® Ļ_Ī»ĻĪ½" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_ĪĻĻĪµĻĪ·..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "ĪĻĻĪµĻĪ· Ī¼ĪÆĪ±Ļ Ī»ĪĪ¾Ī·Ļ Ī® Ī¼ĪÆĪ±Ļ ĻĻĪ¬ĻĪ·Ļ Ī¼ĪĻĪ± ĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_ĪĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Ī ĪµĻĪ¹ĻĻĻĪæĻĪ® _Ī±ĻĪ¹ĻĻĪµĻĪ¬" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Ī ĪµĻĪ¹ĻĻĻĪæĻĪ® _Ī“ĪµĪ¾Ī¹Ī¬" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĻĻĪµĻĪæĻ ĻĻĪ½ ĻĻ ĪøĪ¼ĪÆĻĪµĻĪ½ ĻĻ _Ī ĻĪæĪµĻĪ¹Ī»ĪæĪ³Ī®" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_ĪĻĪ±Ī½Ī±ĻĻĻĻĻĻĪ·" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "ĪĻĪ±Ī½Ī±ĻĻĻĻĻĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "ĪĻ ĻĻĪ¼Ī±ĻĪ· ĪŗĻĪ»Ī¹ĻĪ·" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_Ī ĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĻĻĻĪ· ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Ī¤ĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī±" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĻĪ·Ī½ ĻĪµĪ»ĪµĻ ĻĪ±ĪÆĪ± ĻĪµĪ»ĪÆĪ“Ī±" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "Ī ĪµĻĪ¹Īµ_ĻĻĪ¼ĪµĪ½Ī±" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Ī ĪµĻĪÆ" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "ĪĪ¾ĪæĪ“ĪæĻ Ī±ĻĻ ĻĪ»Ī®ĻĪ· ĪæĪøĻĪ½Ī·" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "ĪĪ¾ĪæĪ“ĪæĻ Ī±ĻĻ Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ± ĻĪ»Ī®ĻĪæĻ Ļ ĪæĪøĻĪ½Ī·" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "ĪĪ½Ī±ĻĪ¾Ī· ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·Ļ" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ĪĪ½Ī±ĻĪ¾Ī· Ī¼Ī¹Ī±Ļ ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·Ļ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_ĪĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® Ī® Ī±ĻĻĪŗĻĻ ĻĪ· ĻĪ·Ļ ĪµĻĪ³Ī±Ī»ĪµĪ¹ĪæĪøĪ®ĪŗĪ·Ļ" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Ī Ī»ĪµĻ ĻĪ¹ĪŗĻ _ĻĪ±Ī¼ĻĪ»Ļ" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Ī ĻĪæĪ²ĪæĪ»Ī® Ī® Ī±ĻĻĪŗĻĻ ĻĪ· ĻĪ»ĪµĻ ĻĪ¹ĪŗĪæĻ ĻĪ±Ī¼ĻĪ»Ļ" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "Ī£Ļ Ī½Īµ_ĻĪ®Ļ" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "ĪĪ¼ĻĪ¬Ī½Ī¹ĻĪ· ĪæĪ»ĻĪŗĪ»Ī·ĻĪæĻ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ " + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_ĪĪ¹ĻĪ»Ī®" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "ĪĪ¼ĻĪ¬Ī½Ī¹ĻĪ· Ī“ĻĪæ ĻĪµĪ»ĪÆĪ“ĻĪ½ ĻĪ±Ļ ĻĻĻĻĪæĪ½Ī±" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Ī Ī»Ī®ĻĪ·Ļ ĪæĪøĻĪ½Ī·" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "ĪĪ½Ī¬ĻĻĻ Ī¾Ī· ĻĪ±ĻĪ±ĪøĻĻĪæĻ ĻĻĻĪµ Ī½Ī± Ī³ĪµĪ¼ĪÆĻĪµĪ¹ ĻĪ·Ī½ ĪæĪøĻĪ½Ī·" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_Ī Ī±ĻĪæĻ ĻĪÆĪ±ĻĪ·" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Ī§ĻĪ®ĻĪ· ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ Ī³Ī¹Ī± ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_ĪĪ½ĻĪ¹ĻĻĻĪ±Ī¼Ī¼ĪĪ½Ī± ĻĻĻĪ¼Ī±ĻĪ±" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "ĪĪ¼ĻĪ¬Ī½Ī¹ĻĪ· ĻĻĪ½ ĻĪµĻĪ¹ĪµĻĪæĪ¼ĪĪ½ĻĪ½ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ Ī¼Īµ ĻĪ± ĻĻĻĪ¼Ī±ĻĪ± Ī±Ī½ĻĪ¹ĻĻĻĪ±Ī¼Ī¼ĪĪ½Ī±" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "Ī_Ī½ĪæĪ¹Ī³Ī¼Ī± Ī“ĪµĻĪ¼ĪæĻ" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_ĪĪµĻĪ¬Ī²Ī±ĻĪ· ĻĪµ" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "ĪĪ½ĪæĪ¹Ī³Ī¼Ī± ĻĪµ Ī½ĪĪæ _ĻĪ±ĻĪ¬ĪøĻ ĻĪæ" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "ĪĪ½ĻĪ¹_Ī³ĻĪ±ĻĪ® Ī“Ī¹ĪµĻĪøĻ Ī½ĻĪ·Ļ Ī“ĪµĻĪ¼ĪæĻ" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "ĪĻĪæ_ĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ¹ĪŗĻĪ½Ī±Ļ ĻĻ..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "ĪĪ½ĻĪ¹_Ī³ĻĪ±ĻĪ® ĪµĪ¹ĪŗĻĪ½Ī±Ļ" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "ĪĪ“Ī¹ĻĻĪ·ĻĪµĻ ĻĻĪæĪ»ĪÆĻĪ½..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "Ī_Ī½ĪæĪ¹Ī³Ī¼Ī± ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ " + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ _ĻĪ· ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ ĻĻ..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ĪĪµĪ³ĪĪøĻ Ī½ĻĪ·" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Ī ĻĪæĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĪæĻ ĪµĻĪ¹ĻĪĪ“ĪæĻ Ī¼ĪµĪ³ĪĪøĻ Ī½ĻĪ·Ļ" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Ī Ī»ĪæĪ®Ī³Ī·ĻĪ·" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Ī ĪÆĻĻ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "ĪĪµĻĪ±ĪŗĪÆĪ½Ī·ĻĪ· ĻĪµ ĻĪµĪ»ĪÆĪ“ĪµĻ ĻĪæĻ ĪĻĪµĻĪµ Ī®Ī“Ī· ĪµĻĪ¹ĻĪŗĪµĻĻĪµĪÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "ĪĻĻĪ¼ĪµĪ½Īæ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ĪĪµĪ³ĪĪøĻ Ī½ĻĪ·" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Ī£Ī¼ĪÆĪŗĻĻ Ī½ĻĪ·" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Ī¤Ī±ĪÆĻĪ¹Ī±ĻĪ¼Ī± ĻĻĪæ ĻĪ»Ī¬ĻĪæĻ" + +#: ../shell/ev-window.c:5890 +#: ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĪŗĪŗĪÆĪ½Ī·ĻĪ·Ļ ĪµĪ¾ĻĻĪµĻĪ¹ĪŗĪ®Ļ ĪµĻĪ±ĻĪ¼ĪæĪ³Ī®Ļ." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĪµĪ¾ĻĻĪµĻĪ¹ĪŗĪæĻ ĻĻ Ī½Ī“ĪĻĪ¼ĪæĻ " + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻĪ·Ļ ĪŗĪ±ĻĪ¬Ī»Ī»Ī·Ī»Ī·Ļ Ī¼ĪæĻĻĪ®Ļ Ī±ĻĪæĪøĪ®ĪŗĪµĻ ĻĪ·Ļ Ī³Ī¹Ī± ĻĪ·Ī½ ĪµĪ¹ĪŗĻĪ½Ī±" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Ī ĪµĪ¹ĪŗĻĪ½Ī± Ī“ĪµĪ½ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± Ī±ĻĪæĪøĪ·ĪŗĪµĻ ĻĪµĪÆ." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĪµĪ¹ĪŗĻĪ½Ī±Ļ" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ĪĪ“Ļ Ī½Ī±Ī¼ĪÆĪ± Ī±Ī½ĪæĪÆĪ³Ī¼Ī±ĻĪæĻ ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĪæĻ " + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Ī¤Īæ ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½Īæ Ī“ĪµĪ½ Ī¼ĻĪæĻĪµĪÆ Ī½Ī± Ī±ĻĪæĪøĪ·ĪŗĪµĻ ĻĪµĪÆ." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "ĪĻĪæĪøĪ®ĪŗĪµĻ ĻĪ· ĻĻ Ī½Ī·Ī¼Ī¼ĪĪ½ĻĪ½" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ĪĻĪ±Ī¹ĻĪµĪÆĻĪ±Ī¹ ĪŗĻĪ“Ī¹ĪŗĻĻ" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ĪĪ±ĻĪ¬ ĪµĻĪĪŗĻĪ±ĻĪ·" + +#: ../shell/main.c:69 +#: ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ĪĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪæĪ²ĪæĪ»Ī®Ļ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ ĻĪæĻ MATE" + +#: ../shell/main.c:77 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "Ī ĻĪÆĻĪ»ĪæĻ ĻĪ·Ļ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻĪæĻ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "Ī£ĪĪĪĪĪ" + +#: ../shell/main.c:78 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "Ī Ī±ĻĪ¹ĪøĪ¼ĻĻ ĻĪµĪ»ĪÆĪ“Ī±Ļ ĻĪæĻ ĪµĪ³Ī³ĻĪ¬ĻĪæĻ ĻĻĪæĻ ĪµĪ¼ĻĪ¬Ī½Ī¹ĻĪ·." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ĪĪŗĻĪĪ»ĪµĻĪ· evince ĻĪµ Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ± ĻĪ»Ī®ĻĪæĻ Ļ ĪæĪøĻĪ½Ī·Ļ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ĪĪŗĻĪĪ»ĪµĻĪ· evince ĻĪµ Ī»ĪµĪ¹ĻĪæĻ ĻĪ³ĪÆĪ± ĻĪ±ĻĪæĻ ĻĪÆĪ±ĻĪ·Ļ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ĪĪŗĻĪĪ»ĪµĻĪ· evince ĻĻ ĪµĻĪ±ĻĪ¼ĪæĪ³Ī® ĻĻĪæĪµĻĪ¹ĻĪŗĻĻĪ·ĻĪ·Ļ" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ī Ī»ĪĪ¾Ī· Ī® Ī· ĻĻĪ¬ĻĪ· Ī³Ī¹Ī± Ī±Ī½Ī±Ī¶Ī®ĻĪ·ĻĪ· Ī¼ĪĻĪ± ĻĻĪæ ĪĪ³Ī³ĻĪ±ĻĪæ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ĪĪĪ¦ĪĪ”ĪĪĪĪĪ¤ĪĪĪ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ĪĪ”Ī§ĪĪĪ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "ĪĪ¹Ī±ĪøĪĻĪ¹Ī¼ĪµĻ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ boolean: true ĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹ĪµĪÆ ĻĪ· Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ± Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½ ĪµĪ½Ļ false Ī±ĻĪµĪ½ĪµĻĪ³ĪæĻĪæĪ¹ĪµĪÆ ĻĪ· Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ± Ī½ĪĻĪ½ Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ĪĪ½ĪµĻĪ³ĪæĻĪæĪÆĪ·ĻĪ· Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½ Ī³Ī¹Ī± ĪĪ³Ī³ĻĪ±ĻĪ± ĻĻĻĪæĻ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ĪĪ½ĻĪæĪ»Ī® Ī³Ī¹Ī± Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ± Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "ĪĪ³ĪŗĻ ĻĪ· ĪµĪ½ĻĪæĪ»Ī® ĪŗĪ±Ī¹ ĪµĻĪ¹Ī»ĪæĪ³ĪĻ Ī³Ī¹Ī± ĻĪ· Ī“Ī·Ī¼Ī¹ĪæĻ ĻĪ³ĪÆĪ± Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½ ĪµĪ³Ī³ĻĪ¬ĻĻĪ½ ĻĻĻĪæĻ PDF. ĪĪµĪÆĻĪµ ĻĪ·Ī½ ĻĪµĪŗĪ¼Ī·ĻĪ¹ĻĻĪ· ĻĻĪ½ Ī¼Ī¹ĪŗĻĪæĪ³ĻĪ±ĻĪ¹ĻĪ½ ĻĪæĻ ĪĪ±Ļ ĻĪÆĪ»ĪæĻ Ī³Ī¹Ī± ĻĪµĻĪ¹ĻĻĻĻĪµĻĪµĻ ĻĪ»Ī·ĻĪæĻĪæĻĪÆĪµĻ." + diff --git a/po/en@shaw.po b/po/en@shaw.po new file mode 100644 index 00000000..ccfcf90b --- /dev/null +++ b/po/en@shaw.po @@ -0,0 +1,1537 @@ +# Shavian translation for evince. +# Copyright (C) 2009-2010 The Mate Foundation. +# Thomas Thurman <tthurman@gnome.org>, 2010. +# Transliterate Evince as Ā·š¦šš¦šÆš +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-05-12 22:43+0000\n" +"PO-Revision-Date: 2010-05-16 16:05 -0400\n" +"Last-Translator: Thomas Thurman <tthurman@gnome.org>\n" +"Language-Team: Shavian <ubuntu-l10n-en-shaw@launchpad.net>\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" + +#, c-format +#, fuzzy +#: ../backend/comics/comics-document.c:160 +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "š»š¼ š¤š·šÆšš¦š š šš©š„ššÆš ā%sā š¦šÆ š¹šš¼ š decompress š ššŖš„š¦š šš«š: %s" + +#, c-format +#, fuzzy +#: ../backend/comics/comics-document.c:174 +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "š šš©š„ššÆš ā%sā šš±š¤š šØš decompressing š ššŖš„š¦š šš«š." + +#, c-format +#: ../backend/comics/comics-document.c:183 +msgid "The command ā%sā did not end normally." +msgstr "š šš©š„ššÆš ā%sā šš¦š šÆšŖš š§šÆš šÆš¹š„š©š¤š¦." + +#, c-format +#: ../backend/comics/comics-document.c:350 +msgid "Not a comic book MIME type: %s" +msgstr "šÆšŖš š© ššŖš„š¦š šš«š MIME šš²š: %s" + +#, fuzzy +#: ../backend/comics/comics-document.c:357 +msgid "" +"Can't find an appropriate command to decompress this type of comic book" +msgstr "šššÆš šš²šÆš š©šÆ š©šš®š“šš®š¦š©š šš©š„ššÆš š decompress šš¦š šš²š š ššŖš„š¦š šš«š" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "š³šÆš“šÆ MIME šš²š" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "šš²š¤ šš¼š³ššš©š" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "šÆš“ šš²š¤š š¦šÆ šøšš²š" + +#, c-format +#: ../backend/comics/comics-document.c:474 +msgid "No images found in archive %s" +msgstr "šÆš“ š¦š„š¦š”š©š šš¬šÆš š¦šÆ šøšš²š %s" + +#, c-format +#: ../backend/comics/comics-document.c:718 +msgid "There was an error deleting ā%sā." +msgstr "ššŗ š¢šŖš š©šÆ š»š¼ šš¦š¤š°šš¦š ā%sā." + +#, c-format +#: ../backend/comics/comics-document.c:850 +msgid "Error %s" +msgstr "š»š¼ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ššŖš„š¦š šš«šš" + +#, fuzzy +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ššŖššæš„š©šÆš š£šØš š¦šÆšš©š®š§šš šš¹š„šØš" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"š ššŖššæš„š©šÆš š¦š šš©š„šš“šš š šš§šš¼š©š¤ šš²š¤š. š¢š³šÆ š¹ š„š¹ š šš°š šš²š¤š ššØšÆšŖš šš° šØššš§šš." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ššŖššæš„š©šÆšš" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ššŖššæš„š©šÆš š£šØš š¦šÆšš©š®š§šš šš¹š„šØš" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ššŖššæš„š©šÆšš" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "šš¦š š¢š»š š¦š š¦šÆ š šš³šš¤š¦š šš“š„š±šÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "šš§š" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "šÆš“" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "šš²š 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "šš²š 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "šš²š 3" + +#, fuzzy +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "šš²š 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "šš²š 1C (CID)" + +#, fuzzy +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (šš¦š)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "š³šÆš“šÆ ššŖšÆš šš²š" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "šÆš“ šÆš±š„" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "š§š„šš§šš¦š šš©ššš§š" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "š§š„šš§šš¦š" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "šÆšŖš š§š„šš§šš¦š" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ššŖššæš„š©šÆšš" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "š¦šÆššØš¤š¦š ššŖššæš„š©šÆš" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "š¦š„šš®š§š šš¤š²šš" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "šÆš“ š»š¼" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "šÆšŖš š¦šÆš³š š„š§š„š¼š¦" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ššØšÆšŖš šš²šÆš šš¦š šš¦ššÆš©šš¼" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "š¦šÆššØš¤š¦š šš¦š šš²š¤" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "š„š©š¤šš° šš²š¤ šš¦šš šø šÆšŖš šš©šš¹šš©š" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ššØšÆšŖš š“šš©šÆ š šš²š¤" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ššØšÆšŖš š®š°š šš±šš© šš®šŖš„ šš²š¤" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ššØšÆšŖš šš²šÆš šš²š¤ š¦šÆ š šš¦š šøšš²š" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "š³šÆš“šÆ š»š¼" + +#, c-format +#: ../backend/ps/ev-spectre.c:102 +msgid "Failed to load document ā%sā" +msgstr "šš±š¤š š š¤š“š ššŖššæš„š©šÆš ā%sā" + +#, c-format +#: ../backend/ps/ev-spectre.c:135 +msgid "Failed to save document ā%sā" +msgstr "šš±š¤š š šš±š ššŖššæš„š©šÆš ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "šš“ššššš®š¦šš ššŖššæš„š©šÆšš" + +#, c-format +#, fuzzy +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +msgid "Couldn't save attachment ā%sā: %s" +msgstr "šš«ššÆš šš±š š©ššØšš„š©šÆš ā%sā: %s" + +#, c-format +#, fuzzy +#: ../libdocument/ev-attachment.c:372 +msgid "Couldn't open attachment ā%sā: %s" +msgstr "šš«ššÆš š“šš©šÆ š©ššØšš„š©šÆš ā%sā: %s" + +#, c-format +#, fuzzy +#: ../libdocument/ev-attachment.c:407 +msgid "Couldn't open attachment ā%sā" +msgstr "šš«ššÆš š“šš©šÆ š©ššØšš„š©šÆš ā%sā" + +#, c-format +#: ../libdocument/ev-document-factory.c:168 +msgid "File type %s (%s) is not supported" +msgstr "šš²š¤ šš²š %s (%s) š¦š šÆšŖš šš©šš¹šš©š" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "š·š¤ ššŖššæš„š©šÆšš" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "š·š¤ šš²š¤š" + +#, c-format +#: ../libdocument/ev-file-helpers.c:146 +msgid "Failed to create a temporary file: %s" +msgstr "šš±š¤š š šš®š¦š±š š© šš§š„šš¼š¼š¦ šš²š¤: %s" + +#, c-format +#: ../libdocument/ev-file-helpers.c:308 +msgid "Failed to create a temporary directory: %s" +msgstr "šš±š¤š š šš®š¦š±š š© šš§š„šš¼š¼š¦ šš²š®š§ššš¼š¦: %s" + +#, c-format +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +msgid "File is not a valid .desktop file" +msgstr "šš²š¤ š¦š šÆšŖš š© ššØš¤š¦š .šš§ššššŖš šš²š¤" + +#, c-format +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +msgid "Unrecognized desktop file Version '%s'" +msgstr "š©šÆš®š§šš©ššÆš²šš šš§ššššŖš šš²š¤ šš»š š©šÆ '%s'" + +#, c-format +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +msgid "Starting %s" +msgstr "šššøšš¦š %s" + +#, c-format +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +msgid "Application does not accept documents on command line" +msgstr "š©šš¤š¦šš±šš©šÆ šš³š šÆšŖš šØššš§šš ššŖššæš„š©šÆšš šŖšÆ šš©š„ššÆš š¤š²šÆ" + +#, c-format +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +msgid "Unrecognized launch option: %d" +msgstr "š©šÆš®š§šš©ššÆš²šš š¤š·šÆš šŖššš©šÆ: %d" + +#, c-format +#, fuzzy +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "šššÆš ššš ššŖššæš„š©šÆš URIs š š© 'šš²š=š¤š¦šš' šš§ššššŖš š§šÆšš®š¦" + +#, c-format +#, fuzzy +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +msgid "Not a launchable item" +msgstr "šÆšŖš š© launchable š²šš©š„" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "šš¦šš±šš©š¤ šš©šÆš§ššš©šÆ š šš§šš©šÆ š„šØšÆš©š”š¼" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ššš§šš¦šš² šš²š¤ šš©šÆšš±šÆš¦š šš±šš šš©šÆšš¦ššš¼š±šš©šÆ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "šš²š¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ššš§šš¦šš² šš§šš©šÆ š„šØšÆš©š”š„š©šÆš ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "šš§šš©šÆ š„šØšÆš©š”š„š©šÆš šŖššš©šÆš:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "šš“ šš§šš©šÆ š„šØšÆš©š”š„š©šÆš šŖššš©šÆš" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#, c-format +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:944 +msgid "Show ā_%sā" +msgstr "šš“ ā%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1412 +msgid "_Move on Toolbar" +msgstr "_š„šµš šŖšÆ ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1413 +msgid "Move the selected item on the toolbar" +msgstr "š„šµš š šš©š¤š§ššš©š š²šš©š„ šŖšÆ š ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Remove from Toolbar" +msgstr "_š®š¦š„šµš šš®šŖš„ ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Remove the selected item from the toolbar" +msgstr "š®š¦š„šµš š šš©š¤š§ššš©š š²šš©š„ šš®šŖš„ š ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Delete Toolbar" +msgstr "_šš¦š¤š°š ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected toolbar" +msgstr "š®š¦š„šµš š šš©š¤š§ššš©š ššµš¤ššø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "šš§šš¼š±šš¼" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "š®š³šÆš¦š š¦šÆ šš®š§šš©šÆšš±šš©šÆ š„š“š" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5380 +msgid "Best Fit" +msgstr "šš§šš šš¦š" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "šš¦š šš±š” š¢š¦šš" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#, c-format +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4232 +#: ../shell/ev-window-title.c:149 ../shell/main.c:318 +msgid "Document Viewer" +msgstr "ššŖššæš„š©šÆš ššæš¼" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ššæ š„š©š¤šš°-šš±š” ššŖššæš„š©šÆšš" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "šš¦š¤š°š š šš§š„šš¼š¼š¦ šš²š¤" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "šš®š¦šÆš šš§šš¦šš šš²š¤" + +#, fuzzy +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "Ā·ššÆš“š„ ššŖššæš„š©šÆš Previewer" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3020 +msgid "Failed to print document" +msgstr "šš±š¤š š šš®š¦šÆš ššŖššæš„š©šÆš" + +#, c-format +#: ../previewer/ev-previewer-window.c:237 +msgid "The selected printer '%s' could not be found" +msgstr "š šš©š¤š§ššš©š šš®š¦šÆšš¼ '%s' šš«š šÆšŖš šš° šš¬šÆš" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5129 +msgid "_Previous Page" +msgstr "_šš®š°šš¦š©š šš±š”" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5130 +msgid "Go to the previous page" +msgstr "šš“ š š šš®š°šš¦š©š šš±š”" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5132 +msgid "_Next Page" +msgstr "_šÆš§ššš šš±š”" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5133 +msgid "Go to the next page" +msgstr "šš“ š š šÆš§ššš šš±š”" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5116 +msgid "Enlarge the document" +msgstr "š§šÆš¤šøš” š ššŖššæš„š©šÆš" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5119 +msgid "Shrink the document" +msgstr "šš®š°šš š ššŖššæš„š©šÆš" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "šš®š¦šÆš" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5087 +msgid "Print this document" +msgstr "šš®š¦šÆš šš¦š ššŖššæš„š©šÆš" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5231 +msgid "_Best Fit" +msgstr "_šš§šš šš¦š" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5232 +msgid "Make the current document fill the window" +msgstr "š„š±š š šš³š®š©šÆš ššŖššæš„š©šÆš šš¦š¤ š š¢š¦šÆšš“" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5234 +msgid "Fit Page _Width" +msgstr "šš¦š šš±š” _š¢š¦šš" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5235 +msgid "Make the current document fill the window width" +msgstr "š„š±š š šš³š®š©šÆš ššŖššæš„š©šÆš šš¦š¤ š š¢š¦šÆšš“ š¢š¦šš" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5302 +msgid "Page" +msgstr "šš±š”" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5303 +msgid "Select Page" +msgstr "šš©š¤š§šš šš±š”" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ššŖššæš„š©šÆš" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "šš²šš©š¤:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "š¤š“šš±šš©šÆ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "šš©šš”š§šš:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "š·šš¼:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "šš°š¢š»šš:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "šš®š©ššæšš¼:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "šš®š¦š±šš¼:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "šš®š¦š±šš©š:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "š„šŖšš¦šš²š:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "šÆš³š„šš¼ š šš±š”š§š:" + +#, fuzzy +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimized:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "šš¹š„šØš:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "šš¦ššš«š¼š¦šš¦:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "šš±šš¼ šš²š:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "šÆš³šÆ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#, c-format +#: ../properties/ev-properties-view.c:284 +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#, c-format +#: ../properties/ev-properties-view.c:288 +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f š¦šÆš" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#, c-format +#: ../properties/ev-properties-view.c:312 +msgid "%s, Portrait (%s)" +msgstr "%s, ššŖš®šš®š©š (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#, c-format +#: ../properties/ev-properties-view.c:319 +msgid "%s, Landscape (%s)" +msgstr "%s, š¤šØšÆššššØš (%s)" + +#, c-format +#: ../libmisc/ev-page-action-widget.c:68 +msgid "(%d of %d)" +msgstr "(%d š %d)" + +#, c-format +#: ../libmisc/ev-page-action-widget.c:70 +msgid "of %d" +msgstr "š %d" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "šš®š°ššŗš¦š š šš®š¦šÆšā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "šš¦šÆš¦šš¦šā¦" + +#, c-format +#: ../libview/ev-print-operation.c:338 +msgid "Printing page %d of %dā¦" +msgstr "šš®š¦šÆšš¦š šš±š” %d š %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "šš®š¦šÆšš¦š š¦š šÆšŖš šš©šš¹šš©š šŖšÆ šš¦š šš®š¦šÆšš¼." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "š¦šÆššØš¤š¦š šš±š” šš¦š¤š§ššš©šÆ" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "š¢š¹šÆš¦š" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "šæš¼ šš®š¦šÆš š®š±šÆš” šš¦š¤š§ššš©šÆ šš³š šÆšŖš š¦šÆšš¤šµš š§šÆš¦ šš±š”š§š" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "šš±š” ššš±š¤š¦š:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "šš®š°šš š šš®š¦šÆšš©šš©š¤ šŗš¦š©" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "šš¦š š šš®š¦šÆšš©šš©š¤ šŗš¦š©" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the " +"following:\n\nā¢ \"None\": No page scaling is performed.\n\nā¢ \"Shrink to " +"Printable Area\": Document pages larger than the printable area are reduced " +"to fit the printable area of the printer page.\n\nā¢ \"Fit to Printable " +"Area\": Document pages are enlarged or reduced as required to fit the " +"printable area of the printer page.\n" +msgstr "" +"ššš±š¤ ššŖššæš„š©šÆš šš±š”š§š š šš¦š š šš©š¤š§ššš©š šš®š¦šÆšš¼ šš±š”. šš©š¤š§šš šš®šŖš„ š¢š³šÆ š š " +"ššŖš¤š“š¦š:\n\nā¢ \"šÆš³šÆ\": šÆš“ šš±š” ššš±š¤š¦š š¦š šš¼šš¹š„š.\n\nā¢ \"šš®š°šš š šš®š¦šÆšš©šš©š¤ " +"šŗš¦š©\": ššŖššæš„š©šÆš šš±š”š§š š¤šøš”š¼ ššØšÆ š šš®š¦šÆšš©šš©š¤ šŗš¦š© šø š®š¦ššæšš š šš¦š š šš®š¦šÆšš©šš©š¤ šŗš¦š© " +"š š šš®š¦šÆšš¼ šš±š”.\n\nā¢ \"šš¦š š šš®š¦šÆšš©šš©š¤ šŗš¦š©\": ššŖššæš„š©šÆš šš±š”š§š šø š§šÆš¤šš®š”š š¹ " +"š®š¦ššæšš šØš š®š¦šš¢š²š¼š š šš¦š š šš®š¦šÆšš©šš©š¤ šŗš¦š© š š šš®š¦šÆšš¼ šš±š”.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "š·šš“ š®š“šš±š šÆ šš§šÆšš¼" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"š®š“šš±š šš®š¦šÆšš¼ šš±š” šŖš®š¦š©šÆšš±šš©šÆ š š°š šš±š” š š„šØš šŖš®š¦š©šÆšš±šš©šÆ š š°š ššŖššæš„š©šÆš šš±š”. " +"ššŖššæš„š©šÆš šš±š”š§š š¢š¦š¤ šš° šš§šÆšš¼š š¢š¦šš¦šÆ š šš®š¦šÆšš¼ šš±š”." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "šš©š¤š§šš šš±š” šš²š šæšš¦š ššŖššæš„š©šÆš šš±š” šš²š" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"š¢š§šÆ š¦šÆš±šš©š¤š, š°š šš±š” š¢š¦š¤ šš° šš®š¦šÆšš©š šŖšÆ š šš±š„ šš²š šš±šš¼ šØš š ššŖššæš„š©šÆš šš±š”." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "šš±š” š£šØšÆšš¤š¦š" + +#, c-format +#: ../libview/ev-jobs.c:1438 +msgid "Failed to print page %d: %s" +msgstr "šš±š¤š š šš®š¦šÆš šš±š” %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ššš®š“š¤ š³š" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ššš®š“š¤ šš¬šÆ" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ššš®š“š¤ ššæ š³š" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ššš®š“š¤ ššæ šš¬šÆ" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ššŖššæš„š©šÆš ššæ" + +#: ../libview/ev-view-presentation.c:674 +msgid "Jump to page:" +msgstr "š”š³š„š š šš±š”:" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "š§šÆš š šš®š§šš©šÆšš±šš©šÆ. šš¤š¦š š š§ššš¦š." + +#: ../libview/ev-view.c:1758 +msgid "Go to first page" +msgstr "šš“ š šš»šš šš±š”" + +#: ../libview/ev-view.c:1760 +msgid "Go to previous page" +msgstr "šš“ š šš®š°šš¦š©š šš±š”" + +#: ../libview/ev-view.c:1762 +msgid "Go to next page" +msgstr "šš“ š šÆš§ššš šš±š”" + +#: ../libview/ev-view.c:1764 +msgid "Go to last page" +msgstr "šš“ š š¤ššš šš±š”" + +#: ../libview/ev-view.c:1766 +msgid "Go to page" +msgstr "šš“ š šš±š”" + +#: ../libview/ev-view.c:1768 +msgid "Find" +msgstr "šš²šÆš" + +#, c-format +#: ../libview/ev-view.c:1796 +msgid "Go to page %s" +msgstr "šš“ š šš±š” %s" + +#, c-format +#: ../libview/ev-view.c:1802 +msgid "Go to %s on file ā%sā" +msgstr "šš“ š %s šŖšÆ šš²š¤ ā%sā" + +#, c-format +#: ../libview/ev-view.c:1805 +msgid "Go to file ā%sā" +msgstr "šš“ š šš²š¤ ā%sā" + +#, c-format +#: ../libview/ev-view.c:1813 +msgid "Launch %s" +msgstr "š¤š·šÆš %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "šš²šÆš:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5104 +msgid "Find Pre_vious" +msgstr "šš²šÆš _šš®š°šš¦š©š" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "šš²šÆš šš®š°šš¦š©š šŖšš»š©šÆš š š šš»š ššš®š¦š" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5102 +msgid "Find Ne_xt" +msgstr "šš²šÆš _šÆš§ššš" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "šš²šÆš šÆš§ššš šŖšš»š©šÆš š š šš»š ššš®š¦š" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_šš±š šš§šÆšš¦šš¦š" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ššŖšš©š¤ šš±š šš§šÆšš¦šš¦š šš»š" + +#, c-format +#: ../shell/ev-keyring.c:102 +msgid "Password for document %s" +msgstr "šššš¢š¼š šš¹ ššŖššæš„š©šÆš %s" + +#, c-format +#: ../shell/ev-convert-metadata.c:88 +msgid "Converting %s" +msgstr "šš©šÆšš»šš¦š %s" + +#, c-format +#: ../shell/ev-convert-metadata.c:92 +msgid "%d of %d documents converted" +msgstr "%d š %d ššŖššæš„š©šÆšš šš©šÆšš»šš©š" + +#, fuzzy +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "šš©šÆšš»šš¦š metadata" + +#, fuzzy +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"š metadata šš¹š„šØš šæšš šš² š¦šš¦šÆš š£šØš šš±šÆš”š, šÆ š£š§šÆš š¦š šÆš°šš š šš° š„š²šš®š±šš¦š. š¦š š " +"š„š²šš®š±šš©šÆ š¦š ššØšÆšš©š¤š š metadata ššš¹š¦š” š¢š¦š¤ šÆšŖš š¢š»š." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "š“šš©šÆ š© š®š°šš©šÆšš¤š¦ šæšš ššŖššæš„š©šÆš" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct password." +msgstr "šš¦š ššŖššæš„š©šÆš š¦š š¤šŖšš šÆ ššØšÆ š“šÆš¤š¦ šš° š®š§š šš² š§šÆšš¼š¦š š šš¼š§šš šššš¢š¼š." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_š©šÆš¤šš ššŖššæš„š©šÆš" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "š§šÆšš¼ šššš¢š¼š" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "šššš¢š¼š š®š¦šš¢š²š¼š" + +#, c-format +#: ../shell/ev-password-view.c:305 +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "š ššŖššæš„š©šÆš ā%sā š¦š š¤šŖšš šÆ š®š¦šš¢š²š¼š š© šššš¢š¼š šš¦šš¹ š¦š ššØšÆ šš° š“šš©šÆš." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_šššš¢š¼š:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "šš¼šš§š šššš¢š¼š _š¦š„š°šš¾šš¤š°" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "š®š¦š„š§š„šš¼ šššš¢š¼š š³šÆšš¦š¤ šæ _š¤šŖš š¬š" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "š®š¦š„š§š„šš¼ _šš¹š§šš¼" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "šš®šŖšš¼šš¦š" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "š”š§šÆš¼š©š¤" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ššŖšÆšš" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ššŖššæš„š©šÆš š¤š²šš©šÆš" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ššŖšÆš" + +#, c-format +#: ../shell/ev-properties-fonts.c:162 +msgid "Gathering font informationā¦ %3d%%" +msgstr "ššØšš¼š¦š ššŖšÆš š¦šÆšš¼š„š±šš©šÆā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "šæšš¦š” šš»š„š" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "šš§ššš š¤š²šš©šÆš" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "šš»šš¼ š¦šÆšš¼š„š±šš©šÆ" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "š©ššØšš„š©šÆšš" + +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "š¤š“šš¦šā¦" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "š¤š±š¼š" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "šš®š¦šÆšā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "š¦šÆšš§šš" + +#, fuzzy +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Thumbnails" + +#, c-format +#: ../shell/ev-window.c:840 +msgid "Page %s ā %s" +msgstr "šš±š” %s ā %s" + +#, c-format +#: ../shell/ev-window.c:842 +msgid "Page %s" +msgstr "šš±š” %s" + +#: ../shell/ev-window.c:1300 +msgid "The document contains no pages" +msgstr "š ššŖššæš„š©šÆš šš©šÆšš±šÆš šÆš“ šš±š”š§š" + +#: ../shell/ev-window.c:1303 +msgid "The document contains only empty pages" +msgstr "š ššŖššæš„š©šÆš šš©šÆšš±šÆš š“šÆš¤š¦ š§š„ššš¦ šš±š”š§š" + +#: ../shell/ev-window.c:1497 ../shell/ev-window.c:1663 +msgid "Unable to open document" +msgstr "š³šÆš±šš©š¤ š š“šš©šÆ ššŖššæš„š©šÆš" + +#, c-format +#: ../shell/ev-window.c:1634 +msgid "Loading document from ā%sā" +msgstr "š¤š“šš¦š ššŖššæš„š©šÆš šš®šŖš„ ā%sā" + +#, c-format +#: ../shell/ev-window.c:1776 ../shell/ev-window.c:2054 +msgid "Downloading document (%d%%)" +msgstr "šš¬šÆš¤š“šš¦š ššŖššæš„š©šÆš (%d%%)" + +#: ../shell/ev-window.c:1809 +msgid "Failed to load remote file." +msgstr "šš±š¤š š š¤š“š š®š¦š„š“š šš²š¤." + +#, c-format +#, fuzzy +#: ../shell/ev-window.c:1998 +msgid "Reloading document from %s" +msgstr "Reloading ššŖššæš„š©šÆš šš®šŖš„ %s" + +#: ../shell/ev-window.c:2030 +msgid "Failed to reload document." +msgstr "šš±š¤š š š®š°š¤š“š ššŖššæš„š©šÆš." + +#: ../shell/ev-window.c:2185 +msgid "Open Document" +msgstr "š“šš©šÆ ššŖššæš„š©šÆš" + +#, c-format +#: ../shell/ev-window.c:2483 +msgid "Saving document to %s" +msgstr "šš±šš¦š ššŖššæš„š©šÆš š %s" + +#, c-format +#: ../shell/ev-window.c:2486 +msgid "Saving attachment to %s" +msgstr "šš±šš¦š š©ššØšš„š©šÆš š %s" + +#, c-format +#: ../shell/ev-window.c:2489 +msgid "Saving image to %s" +msgstr "šš±šš¦š š¦š„š¦š” š %s" + +#, c-format +#: ../shell/ev-window.c:2533 ../shell/ev-window.c:2633 +msgid "The file could not be saved as ā%sā." +msgstr "š šš²š¤ šš«š šÆšŖš šš° šš±šš šØš ā%sā." + +#, c-format +#: ../shell/ev-window.c:2564 +msgid "Uploading document (%d%%)" +msgstr "š³šš¤š“šš¦š ššŖššæš„š©šÆš (%d%%)" + +#, c-format +#: ../shell/ev-window.c:2568 +msgid "Uploading attachment (%d%%)" +msgstr "š³šš¤š“šš¦š š©ššØšš„š©šÆš (%d%%)" + +#, c-format +#: ../shell/ev-window.c:2572 +msgid "Uploading image (%d%%)" +msgstr "š³šš¤š“šš¦š š¦š„š¦š” (%d%%)" + +#: ../shell/ev-window.c:2696 +msgid "Save a Copy" +msgstr "šš±š š© ššŖšš¦" + +#, c-format +#: ../shell/ev-window.c:2964 +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d šš§šÆšš¦š š”šŖš š¦šÆ ššæ" +msgstr[1] "%d šš§šÆšš¦š š”šŖšš š¦šÆ ššæ" + +#, c-format +#: ../shell/ev-window.c:3077 +msgid "Printing job ā%sā" +msgstr "šš®š¦šÆšš¦š š”šŖš ā%sā" + +#, c-format +#: ../shell/ev-window.c:3289 +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "š¢š±š š³šÆšš¦š¤ šš®š¦šÆš š”šŖš ā%sā šš¦šÆš¦šš©š šš¦šš¹ šš¤š“šš¦š?" + +#, c-format +#: ../shell/ev-window.c:3292 +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ššŗ šø %d šš®š¦šÆš š”šŖšš šØššš¦š. š¢š±š š³šÆšš¦š¤ šš®š¦šÆš šš¦šÆš¦šš©š šš¦šš¹ šš¤š“šš¦š?" + +#: ../shell/ev-window.c:3304 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "š¦š šæ šš¤š“š š š¢š¦šÆšš“, šš§šÆšš¦š šš®š¦šÆš š”šŖšš š¢š¦š¤ šÆšŖš šš° šš®š¦šÆšš©š." + +#: ../shell/ev-window.c:3308 +msgid "Cancel _print and Close" +msgstr "ššØšÆšš©š¤ _šš®š¦šÆš šÆ šš¤š“š" + +#: ../shell/ev-window.c:3312 +msgid "Close _after Printing" +msgstr "šš¤š“š _šššš¼ šš®š¦šÆšš¦š" + +#: ../shell/ev-window.c:3878 +msgid "Toolbar Editor" +msgstr "ššµš¤ššø š§šš¦šš¹" + +#: ../shell/ev-window.c:4017 +msgid "There was an error displaying help" +msgstr "ššŗ š¢šŖš š©šÆ š»š¼ šš¦ššš¤š±š¦š š£š§š¤š" + +#, c-format +#, fuzzy +#: ../shell/ev-window.c:4228 +msgid "Document Viewer\nUsing %s (%s)" +msgstr "ššŖššæš„š©šÆš ššæš¼\nšæšš¦š %s (%s)" + +#: ../shell/ev-window.c:4259 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Ā·š¦šš¦šÆš š¦š šš®š° ššŖššš¢šŗ; šæ ššØšÆ š®š°šš¦ššš®š¦ššæš š¦š šÆ/š¹ š„šŖšš¦šš² š¦š š³šÆšš¼ š šš»š„š š š Ā·ššÆšæ " +"š”š§šÆš¼š©š¤ šš³šš¤š¦š š¤š²šš©šÆš šØš šš³šš¤š¦šš šš² š šš®š° ššŖššš¢šŗ šš¬šÆšš±šš©šÆ; š²šš¼ šš»š š©šÆ 2 š š " +"š¤š²šš©šÆš, š¹ (šØš šæš¼ šŖššš©šÆ) š§šÆš¦ š¤š±šš¼ šš»š š©šÆ.\n" + +#, fuzzy +#: ../shell/ev-window.c:4263 +msgid "" +"Evince 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.\n" +msgstr "" +"Ā·š¦šš¦šÆš š¦š šš¦ššš®š¦ššæšš©š š¦šÆ š š£š“š ššØš š¦š š¢š¦š¤ šš° šæššš©š¤, šš³š š¢š¦šš¬š š§šÆš¦ š¢šŖš®š©šÆšš°; " +"š¢š¦šš¬š š°šš©šÆ š š¦š„šš¤š²š š¢šŖš®š©šÆšš° š MERCHANTABILITY š¹ šš¦ššÆš©š šš¹ š© šš¼šš¦ššæš¤š¼ šš»šš©š. " +"šš° š Ā·ššÆšæ š”š§šÆš¼š©š¤ šš³šš¤š¦š š¤š²šš©šÆš šš¹ š„š¹ šš°šš±š¤š.\n" + +#: ../shell/ev-window.c:4267 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"šæ šš«š š£šØš š®š¦šš°šš š© ššŖšš¦ š š Ā·ššÆšæ š”š§šÆš¼š©š¤ šš³šš¤š¦š š¤š²šš©šÆš š©š¤šŖš š¢š¦š š¦šš¦šÆš; š¦š šÆšŖš, " +"š®š²š š š šš®š° ššŖššš¢šŗ šš¬šÆšš±šš©šÆ, š¦šš., 51 Ā·šš®šØššš¤š¦šÆ ššš®š°š, šš¦šš šš¤š¹, Ā·ššŖššš©šÆ, MA " +"02110-1301 USA\n" + +#: ../shell/ev-window.c:4292 +msgid "Evince" +msgstr "Ā·š¦šš¦šÆš" + +#: ../shell/ev-window.c:4295 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 š Ā·š¦šš¦šÆš š·šš¼š" + +#: ../shell/ev-window.c:4301 +msgid "translator-credits" +msgstr "Ā·ššŖš„š©š Ā·šš»š„š©šÆ" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#, c-format +#: ../shell/ev-window.c:4575 +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d šš¬šÆš šŖšÆ šš¦š šš±š”" +msgstr[1] "%d šš¬šÆš šŖšÆ šš¦š šš±š”" + +#, c-format +#: ../shell/ev-window.c:4583 +msgid "%3d%% remaining to search" +msgstr "%3d%% š®š¦š„š±šÆš¦š š šš»š" + +#: ../shell/ev-window.c:5070 +msgid "_File" +msgstr "_šš²š¤" + +#: ../shell/ev-window.c:5071 +msgid "_Edit" +msgstr "_š§šš¦š" + +#: ../shell/ev-window.c:5072 +msgid "_View" +msgstr "_ššæ" + +#: ../shell/ev-window.c:5073 +msgid "_Go" +msgstr "_šš“" + +#: ../shell/ev-window.c:5074 +msgid "_Help" +msgstr "_š£š§š¤š" + +#. File menu +#: ../shell/ev-window.c:5077 ../shell/ev-window.c:5342 +msgid "_Openā¦" +msgstr "_š“šš©šÆā¦" + +#: ../shell/ev-window.c:5078 ../shell/ev-window.c:5343 +msgid "Open an existing document" +msgstr "š“šš©šÆ š©šÆ š§ššš¦ššš¦š ššŖššæš„š©šÆš" + +#: ../shell/ev-window.c:5080 +msgid "Op_en a Copy" +msgstr "_š“šš©šÆ š© ššŖšš¦" + +#: ../shell/ev-window.c:5081 +msgid "Open a copy of the current document in a new window" +msgstr "š“šš©šÆ š© ššŖšš¦ š š šš³š®š©šÆš ššŖššæš„š©šÆš š¦šÆ š© šÆšæ š¢š¦šÆšš“" + +#: ../shell/ev-window.c:5083 +msgid "_Save a Copyā¦" +msgstr "_šš±š š© ššŖšš¦ā¦" + +#: ../shell/ev-window.c:5084 +msgid "Save a copy of the current document" +msgstr "šš±š š© ššŖšš¦ š š šš³š®š©šÆš ššŖššæš„š©šÆš" + +#: ../shell/ev-window.c:5086 +msgid "_Printā¦" +msgstr "_šš®š¦šÆšā¦" + +#: ../shell/ev-window.c:5089 +msgid "P_roperties" +msgstr "_šš®šŖšš¼šš¦š" + +#: ../shell/ev-window.c:5097 +msgid "Select _All" +msgstr "šš©š¤š§šš _š·š¤" + +#: ../shell/ev-window.c:5099 +msgid "_Findā¦" +msgstr "_šš²šÆšā¦" + +#: ../shell/ev-window.c:5100 +msgid "Find a word or phrase in the document" +msgstr "šš²šÆš š© š¢š»š š¹ šš®š±š š¦šÆ š ššŖššæš„š©šÆš" + +#: ../shell/ev-window.c:5106 +msgid "T_oolbar" +msgstr "_ššµš¤ššø" + +#: ../shell/ev-window.c:5108 +msgid "Rotate _Left" +msgstr "š®š“šš±š _š¤š§šš" + +#: ../shell/ev-window.c:5110 +msgid "Rotate _Right" +msgstr "š®š“šš±š _š®š²š" + +#: ../shell/ev-window.c:5121 +msgid "_Reload" +msgstr "_š®š°š¤š“š" + +#: ../shell/ev-window.c:5122 +msgid "Reload the document" +msgstr "š®š°š¤š“š š ššŖššæš„š©šÆš" + +#, fuzzy +#: ../shell/ev-window.c:5125 +msgid "Auto_scroll" +msgstr "_Autoscroll" + +#: ../shell/ev-window.c:5135 +msgid "_First Page" +msgstr "_šš»šš šš±š”" + +#: ../shell/ev-window.c:5136 +msgid "Go to the first page" +msgstr "šš“ š š šš»šš šš±š”" + +#: ../shell/ev-window.c:5138 +msgid "_Last Page" +msgstr "_š¤ššš šš±š”" + +#: ../shell/ev-window.c:5139 +msgid "Go to the last page" +msgstr "šš“ š š š¤ššš šš±š”" + +#. Help menu +#: ../shell/ev-window.c:5143 +msgid "_Contents" +msgstr "_ššŖšÆšš©šÆšš" + +#: ../shell/ev-window.c:5146 +msgid "_About" +msgstr "_š©šš¬š" + +#. Toolbar-only +#, fuzzy +#: ../shell/ev-window.c:5150 +msgid "Leave Fullscreen" +msgstr "š¤š°š Fullscreen" + +#, fuzzy +#: ../shell/ev-window.c:5151 +msgid "Leave fullscreen mode" +msgstr "š¤š°š fullscreen š„š“š" + +#: ../shell/ev-window.c:5153 +msgid "Start Presentation" +msgstr "šššøš šš®š§šš©šÆšš±šš©šÆ" + +#: ../shell/ev-window.c:5154 +msgid "Start a presentation" +msgstr "šššøš š© šš®š§šš©šÆšš±šš©šÆ" + +#. View Menu +#: ../shell/ev-window.c:5213 +msgid "_Toolbar" +msgstr "_ššµš¤ššø" + +#: ../shell/ev-window.c:5214 +msgid "Show or hide the toolbar" +msgstr "šš“ š¹ š£š²š š ššµš¤ššø" + +#: ../shell/ev-window.c:5216 +msgid "Side _Pane" +msgstr "šš²š _šš±šÆ" + +#: ../shell/ev-window.c:5217 +msgid "Show or hide the side pane" +msgstr "šš“ š¹ š£š²š š šš²š šš±šÆ" + +#: ../shell/ev-window.c:5219 +msgid "_Continuous" +msgstr "_šš©šÆšš¦šÆšæš©š" + +#: ../shell/ev-window.c:5220 +msgid "Show the entire document" +msgstr "šš“ š š§šÆšš²š¼ ššŖššæš„š©šÆš" + +#: ../shell/ev-window.c:5222 +msgid "_Dual" +msgstr "_ššµš©š¤" + +#: ../shell/ev-window.c:5223 +msgid "Show two pages at once" +msgstr "šš“ ššµ šš±š”š§š šØš š¢š³šÆš" + +#, fuzzy +#: ../shell/ev-window.c:5225 +msgid "_Fullscreen" +msgstr "_Fullscreen" + +#: ../shell/ev-window.c:5226 +msgid "Expand the window to fill the screen" +msgstr "š¦ššššØšÆš š š¢š¦šÆšš“ š šš¦š¤ š ššš®š°šÆ" + +#: ../shell/ev-window.c:5228 +msgid "Pre_sentation" +msgstr "_šš®š§šš©šÆšš±šš©šÆ" + +#: ../shell/ev-window.c:5229 +msgid "Run document as a presentation" +msgstr "š®š³šÆ ššŖššæš„š©šÆš šØš š© šš®š§šš©šÆšš±šš©šÆ" + +#: ../shell/ev-window.c:5237 +msgid "_Inverted Colors" +msgstr "_š¦šÆšš»šš¦š šš³š¤š¼š" + +#: ../shell/ev-window.c:5238 +msgid "Show page contents with the colors inverted" +msgstr "šš“ šš±š” ššŖšÆšš©šÆšš š¢š¦š š šš³š¤š¼š š¦šÆšš»šš¦š" + +#. Links +#: ../shell/ev-window.c:5246 +msgid "_Open Link" +msgstr "_š“šš©šÆ š¤š¦šš" + +#: ../shell/ev-window.c:5248 +msgid "_Go To" +msgstr "_šš“ š" + +#: ../shell/ev-window.c:5250 +msgid "Open in New _Window" +msgstr "š“šš©šÆ š¦šÆ šÆšæ _š¢š¦šÆšš“" + +#: ../shell/ev-window.c:5252 +msgid "_Copy Link Address" +msgstr "_ššŖšš¦ š¤š¦šš š©šš®š§š" + +#: ../shell/ev-window.c:5254 +msgid "_Save Image Asā¦" +msgstr "_šš±š š¦š„š¦š” šØšā¦" + +#: ../shell/ev-window.c:5256 +msgid "Copy _Image" +msgstr "ššŖšš¦ _š¦š„š¦š”" + +#: ../shell/ev-window.c:5261 +msgid "_Open Attachment" +msgstr "_š“šš©šÆ š©ššØšš„š©šÆš" + +#: ../shell/ev-window.c:5263 +msgid "_Save Attachment Asā¦" +msgstr "_šš±š š©ššØšš„š©šÆš šØšā¦" + +#: ../shell/ev-window.c:5316 +msgid "Zoom" +msgstr "ššµš„" + +#: ../shell/ev-window.c:5318 +msgid "Adjust the zoom level" +msgstr "š©š”š³šš š ššµš„ š¤š§šš©š¤" + +#: ../shell/ev-window.c:5328 +msgid "Navigation" +msgstr "šÆšØšš¦šš±šš©šÆ" + +#: ../shell/ev-window.c:5330 +msgid "Back" +msgstr "ššØš" + +#. translators: this is the history action +#: ../shell/ev-window.c:5333 +msgid "Move across visited pages" +msgstr "š„šµš š©šš®šŖš šš¦šš©šš©š šš±š”š§š" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5363 +msgid "Previous" +msgstr "šš®š°šš¦š©š" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5368 +msgid "Next" +msgstr "šÆš§ššš" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5372 +msgid "Zoom In" +msgstr "ššµš„ š¦šÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5376 +msgid "Zoom Out" +msgstr "ššµš„ š¬š" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5384 +msgid "Fit Width" +msgstr "šš¦š š¢š¦šš" + +#: ../shell/ev-window.c:5545 ../shell/ev-window.c:5562 +msgid "Unable to launch external application." +msgstr "š³šÆš±šš©š¤ š š¤š·šÆš š¦šššš»šÆš©š¤ š©šš¤š¦šš±šš©šÆ." + +#: ../shell/ev-window.c:5619 +msgid "Unable to open external link" +msgstr "š³šÆš±šš©š¤ š š“šš©šÆ š¦šššš»šÆš©š¤ š¤š¦šš" + +#: ../shell/ev-window.c:5786 +msgid "Couldn't find appropriate format to save image" +msgstr "šš«ššÆš šš²šÆš š©šš®š“šš®š¦š±š šš¹š„šØš š šš±š š¦š„š¦š”" + +#: ../shell/ev-window.c:5828 +msgid "The image could not be saved." +msgstr "š š¦š„š¦š” šš«š šÆšŖš šš° šš±šš." + +#: ../shell/ev-window.c:5860 +msgid "Save Image" +msgstr "šš±š š¦š„š¦š”" + +#: ../shell/ev-window.c:5927 +msgid "Unable to open attachment" +msgstr "š³šÆš±šš©š¤ š š“šš©šÆ š©ššØšš„š©šÆš" + +#: ../shell/ev-window.c:5980 +msgid "The attachment could not be saved." +msgstr "š š©ššØšš„š©šÆš šš«š šÆšŖš šš° šš±šš." + +#: ../shell/ev-window.c:6025 +msgid "Save Attachment" +msgstr "šš±š š©ššØšš„š©šÆš" + +#, c-format +#: ../shell/ev-window-title.c:162 +msgid "%s ā Password Required" +msgstr "%s ā šššš¢š¼š š®š¦šš¢š²š¼š" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "šš² š©šššš§šÆšš©šÆ" + +#: ../shell/main.c:72 ../shell/main.c:282 +msgid "MATE Document Viewer" +msgstr "Ā·ššÆš“š„ ššŖššæš„š©šÆš ššæš¼" + +#: ../shell/main.c:80 +msgid "The page label of the document to display." +msgstr "š šš±š” š¤š±šš©š¤ š š ššŖššæš„š©šÆš š šš¦ššš¤š±." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "šš±š”" + +#: ../shell/main.c:81 +msgid "The page number of the document to display." +msgstr "š šš±š” šÆš³š„šš¼ š š ššŖššæš„š©šÆš š šš¦ššš¤š±." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "šÆš³š„šš¼" + +#, fuzzy +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "š®š³šÆ š¦šš¦šÆš š¦šÆ fullscreen š„š“š" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "š®š³šÆ Ā·š¦šš¦šÆš š¦šÆ šš®š§šš©šÆšš±šš©šÆ š„š“š" + +#, fuzzy +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "š®š³šÆ š¦šš¦šÆš šØš š© previewer" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "š š¢š»š š¹ šš®š±š š šš²šÆš š¦šÆ š ššŖššæš„š©šÆš" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "ššš®š¦š" + +#: ../shell/main.c:89 +msgid "[FILEā¦]" +msgstr "[šš²š¤ā¦]" + +#, fuzzy +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ššµš¤š°š©šÆ šŖššš©šÆš š©šš±š¤š©šš©š¤: šš®šµ š¦šÆš±šš©š¤š thumbnailing šÆ šš·š¤š šš¦šš±šš©š¤š š šš®š°š±šš©šÆ š " +"šÆšæ thumbnails" + +#, fuzzy +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "š¦šÆš±šš©š¤ thumbnailing š PDF ššŖššæš„š©šÆšš" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "šš³š„šÆš±š¤ šš©š„ššÆš šš¹ PDF ššŖššæš„š©šÆšš" + +#, fuzzy +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ššØš¤š¦š šš©š„ššÆš šš¤š³š šøššæš„š©šÆšš šš¹ š Ā·šĀ·šĀ·š ššŖššæš„š©šÆš thumbnailer. šš° šÆšŖšš©š¤š©š " +"thumbnailer ššŖššæš„š©šÆšš±šš©šÆ šš¹ š„š¹ š¦šÆšš¼š„š±šš©šÆ." + diff --git a/po/en_CA.po b/po/en_CA.po new file mode 100644 index 00000000..46d755fa --- /dev/null +++ b/po/en_CA.po @@ -0,0 +1,1260 @@ +# Canadian English translation for evince +# Copyright (C) 2004-2005 Adam Weinberger and the MATE Foundation +# This file is distributed under the same licence as the evince package. +# Adam Weinberger <adamw@gnome.org>, 2004, 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-04-21 23:52-0400\n" +"PO-Revision-Date: 2005-08-16 10:30-0400\n" +"Last-Translator: Adam Weinberger <adamw@gnome.org>\n" +"Language-Team: Canadian English <adamw@gnome.org>\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" + +#: ../backend/comics/comics-document.c:163 +#, c-format +msgid "File corrupted." +msgstr "File corrupted." + +#: ../backend/comics/comics-document.c:197 +#, c-format +msgid "No images found in archive %s" +msgstr "No images found in archive %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comic Books" + +#: ../backend/djvu/djvu-document.c:167 +#, c-format +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" +"The document is composed of several files. One or more of those files cannot " +"be accessed." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu Documents" + +#: ../backend/dvi/dvi-document.c:94 +#, c-format +msgid "File not available" +msgstr "File not available" + +#: ../backend/dvi/dvi-document.c:109 +#, c-format +msgid "DVI document has incorrect format" +msgstr "DVI document has incorrect format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Documents" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:685 +msgid "Yes" +msgstr "Yes" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:688 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:762 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:764 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:766 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:768 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:770 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:772 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:774 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:776 +msgid "Unknown font type" +msgstr "Unknown font type" + +#: ../backend/pdf/ev-poppler.cc:802 +msgid "No name" +msgstr "No name" + +#: ../backend/pdf/ev-poppler.cc:810 +msgid "Embedded subset" +msgstr "Embedded subset" + +#: ../backend/pdf/ev-poppler.cc:812 +msgid "Embedded" +msgstr "Embedded" + +#: ../backend/pdf/ev-poppler.cc:814 +msgid "Not embedded" +msgstr "Not embedded" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF Documents" + +#: ../backend/impress/impress-document.c:296 +#, c-format +msgid "Remote files aren't supported" +msgstr "Remote files aren't supported" + +#: ../backend/impress/impress-document.c:307 +#, c-format +msgid "Invalid document" +msgstr "Invalid document" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress Slides" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "No error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Not enough memory" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "Cannot find ZIP signature" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Invalid ZIP file" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "Multi-file ZIPs are not supported" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Cannot open the file" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Cannot read data from file" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "Cannot find file in the ZIP archive" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Unknown error" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Failed to load document ā%sā" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Failed to save document ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Documents" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Couldn't save attachment ā%sā: %s" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Couldn't open attachment ā%sā: %s" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Couldn't open attachment ā%sā" + +#: ../libdocument/ev-document-factory.c:177 +#: ../libdocument/ev-document-factory.c:293 +#, c-format +msgid "Unknown MIME Type" +msgstr "Unknown MIME Type" + +#: ../libdocument/ev-document-factory.c:194 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "Unhandled MIME type: ā%sā" + +#: ../libdocument/ev-document-factory.c:348 +msgid "All Documents" +msgstr "All Documents" + +#: ../libdocument/ev-document-factory.c:380 +msgid "All Files" +msgstr "All Files" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "Co_nnect" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "Connect _anonymously" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "Connect as u_ser:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "_Username:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_Domain:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_Password:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_Forget password immediately" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_Remember password until you log out" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_Remember forever" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "Show ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "_Move on Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "Move the selected item on the toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "_Remove from Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "Remove the selected item from the toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "_Delete Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "Remove the selected toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "Separator" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "Running in presentation mode" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4482 +msgid "Best Fit" +msgstr "Best Fit" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Fit Page Width" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3606 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "Document Viewer" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "View multipage documents" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "Password Entry" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "Remember password for this session" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "Save password in keyring" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Author:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Created:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Creator:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Format:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>Keywords:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Modified:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Number of Pages:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>Optimized:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>Paper Size:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>Producer:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>Security:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Subject:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>Title:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Override document restrictions" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Override document restrictions, such as restriction to copy or to print." + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "None" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "default:inch" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portrait (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Landscape (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "Search string" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "The name of the string to be found" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "Case sensitive" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "TRUE for a case sensitive search" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "Highlight colour" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "Colour of highlight for all matches" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "Current colour" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "Colour of highlight for the current match" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "Find:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "Find Previous" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "Find previous occurrence of the search string" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "Find Next" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "Find next occurrence of the search string" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "C_ase Sensitive" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "Toggle case sensitive search" + +#: ../shell/ev-jobs.c:658 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Failed to create file ā%sā: %s" + +#: ../shell/ev-open-recent-action.c:71 +msgid "Open a recently used document" +msgstr "Open a recently used document" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d of %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "of %d" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "Password required" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"The document ā%sā is locked and requires a password before it can be opened." + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "Enter password" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "Password for document %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "Incorrect password" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"This document is locked and can only be read by entering the correct " +"password." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Unlock Document" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Properties" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "Fonts" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Gathering font information... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "Attachments" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3645 +msgid "Loading..." +msgstr "Loading..." + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "Print..." + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:725 +msgid "Thumbnails" +msgstr "Thumbnails" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Scroll Up" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Scroll Down" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Scroll View Up" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Scroll View Down" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Document View" + +#: ../shell/ev-view.c:1443 +msgid "Go to first page" +msgstr "Go to first page" + +#: ../shell/ev-view.c:1445 +msgid "Go to previous page" +msgstr "Go to previous page" + +#: ../shell/ev-view.c:1447 +msgid "Go to next page" +msgstr "Go to next page" + +#: ../shell/ev-view.c:1449 +msgid "Go to last page" +msgstr "Go to last page" + +#: ../shell/ev-view.c:1451 +msgid "Go to page" +msgstr "Go to page" + +#: ../shell/ev-view.c:1453 +msgid "Find" +msgstr "Find" + +#: ../shell/ev-view.c:1481 +#, c-format +msgid "Go to page %s" +msgstr "Go to page %s" + +#: ../shell/ev-view.c:1487 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Go to %s on file ā%sā" + +#: ../shell/ev-view.c:1490 +#, c-format +msgid "Go to file ā%sā" +msgstr "Go to file ā%sā" + +#: ../shell/ev-view.c:1498 +#, c-format +msgid "Launch %s" +msgstr "Launch %s" + +#: ../shell/ev-view.c:2450 +msgid "End of presentation. Press Escape to exit." +msgstr "End of presentation. Press Escape to exit." + +#: ../shell/ev-view.c:3374 +msgid "Jump to page:" +msgstr "Jump to page:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5156 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d found on this page" +msgstr[1] "%d found on this page" + +#: ../shell/ev-view.c:5165 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% remaining to search" + +#: ../shell/ev-window.c:755 +#, c-format +msgid "Page %s - %s" +msgstr "Page %s - %s" + +#: ../shell/ev-window.c:757 +#, c-format +msgid "Page %s" +msgstr "Page %s" + +#: ../shell/ev-window.c:1381 ../shell/ev-window.c:1434 +msgid "Unable to open document" +msgstr "Unable to open document" + +#: ../shell/ev-window.c:1607 +msgid "Open Document" +msgstr "Open Document" + +#: ../shell/ev-window.c:1668 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "Couldn't create symlink ā%sā: %s" + +#: ../shell/ev-window.c:1697 +msgid "Cannot open a copy." +msgstr "Cannot open a copy." + +#: ../shell/ev-window.c:1941 ../shell/ev-window.c:1991 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "The file could not be saved as ā%sā." + +#: ../shell/ev-window.c:2036 +msgid "Save a Copy" +msgstr "Save a Copy" + +#: ../shell/ev-window.c:2157 ../shell/ev-window.c:3307 +msgid "Failed to print document" +msgstr "Failed to print document" + +#: ../shell/ev-window.c:2322 +msgid "Printing is not supported on this printer." +msgstr "Printing is not supported on this printer." + +#: ../shell/ev-window.c:2448 ../shell/ev-window.c:4274 +msgid "Print" +msgstr "Print" + +#: ../shell/ev-window.c:3086 +msgid "Toolbar Editor" +msgstr "Toolbar Editor" + +#: ../shell/ev-window.c:3602 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Document Viewer.\n" +"Using poppler %s (%s)" + +#: ../shell/ev-window.c:3630 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince is free software; you can redistribute it and/or modify it under the " +"terms of the GNU General Public Licence as published by the Free Software " +"Foundation; either version 2 of the Licence, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:3634 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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 Licence for more " +"details.\n" + +#: ../shell/ev-window.c:3638 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public Licence along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:3662 ../shell/main.c:349 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3665 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 The Evince authors" + +#: ../shell/ev-window.c:3671 +msgid "translator-credits" +msgstr "Adam Weinberger <adamw@gnome.org>" + +#: ../shell/ev-window.c:4186 +msgid "_File" +msgstr "_File" + +#: ../shell/ev-window.c:4187 +msgid "_Edit" +msgstr "_Edit" + +#: ../shell/ev-window.c:4188 +msgid "_View" +msgstr "_View" + +#: ../shell/ev-window.c:4189 +msgid "_Go" +msgstr "_Go" + +#: ../shell/ev-window.c:4190 +msgid "_Help" +msgstr "_Help" + +#. File menu +#: ../shell/ev-window.c:4193 ../shell/ev-window.c:4372 +#: ../shell/ev-window.c:4444 +msgid "_Open..." +msgstr "_Open..." + +#: ../shell/ev-window.c:4194 ../shell/ev-window.c:4445 +msgid "Open an existing document" +msgstr "Open an existing document" + +#: ../shell/ev-window.c:4196 +msgid "Op_en a Copy" +msgstr "Op_en a Copy" + +#: ../shell/ev-window.c:4197 +msgid "Open a copy of the current document in a new window" +msgstr "Open a copy of the current document in a new window" + +#: ../shell/ev-window.c:4199 ../shell/ev-window.c:4374 +msgid "_Save a Copy..." +msgstr "_Save a Copy..." + +#: ../shell/ev-window.c:4200 +msgid "Save a copy of the current document" +msgstr "Save a copy of the current document" + +#: ../shell/ev-window.c:4202 +msgid "Print Set_up..." +msgstr "Print Set_up..." + +#: ../shell/ev-window.c:4203 +msgid "Setup the page settings for printing" +msgstr "Configure the page settings for printing" + +#: ../shell/ev-window.c:4205 +msgid "_Print..." +msgstr "_Print..." + +#: ../shell/ev-window.c:4206 ../shell/ev-window.c:4275 +msgid "Print this document" +msgstr "Print this document" + +#: ../shell/ev-window.c:4208 +msgid "P_roperties" +msgstr "P_roperties" + +#: ../shell/ev-window.c:4216 +msgid "Select _All" +msgstr "Select _All" + +#: ../shell/ev-window.c:4218 +msgid "_Find..." +msgstr "_Find..." + +#: ../shell/ev-window.c:4219 +msgid "Find a word or phrase in the document" +msgstr "Find a word or phrase in the document" + +#: ../shell/ev-window.c:4221 +msgid "Find Ne_xt" +msgstr "Find Ne_xt" + +#: ../shell/ev-window.c:4223 +msgid "Find Pre_vious" +msgstr "Find Pre_vious" + +#: ../shell/ev-window.c:4225 +msgid "T_oolbar" +msgstr "T_oolbar" + +#: ../shell/ev-window.c:4227 +msgid "Rotate _Left" +msgstr "Rotate _Left" + +#: ../shell/ev-window.c:4229 +msgid "Rotate _Right" +msgstr "Rotate _Right" + +#: ../shell/ev-window.c:4234 +msgid "Enlarge the document" +msgstr "Enlarge the document" + +#: ../shell/ev-window.c:4237 +msgid "Shrink the document" +msgstr "Shrink the document" + +#: ../shell/ev-window.c:4239 +msgid "_Reload" +msgstr "_Reload" + +#: ../shell/ev-window.c:4240 +msgid "Reload the document" +msgstr "Reload the document" + +#: ../shell/ev-window.c:4243 +msgid "Auto_scroll" +msgstr "Auto_scroll" + +#. Go menu +#: ../shell/ev-window.c:4247 +msgid "_Previous Page" +msgstr "_Previous Page" + +#: ../shell/ev-window.c:4248 +msgid "Go to the previous page" +msgstr "Go to the previous page" + +#: ../shell/ev-window.c:4250 +msgid "_Next Page" +msgstr "_Next Page" + +#: ../shell/ev-window.c:4251 +msgid "Go to the next page" +msgstr "Go to the next page" + +#: ../shell/ev-window.c:4253 +msgid "_First Page" +msgstr "_First Page" + +#: ../shell/ev-window.c:4254 +msgid "Go to the first page" +msgstr "Go to the first page" + +#: ../shell/ev-window.c:4256 +msgid "_Last Page" +msgstr "_Last Page" + +#: ../shell/ev-window.c:4257 +msgid "Go to the last page" +msgstr "Go to the last page" + +#. Help menu +#: ../shell/ev-window.c:4261 +msgid "_Contents" +msgstr "_Contents" + +#: ../shell/ev-window.c:4264 +msgid "_About" +msgstr "_About" + +#. Toolbar-only +#: ../shell/ev-window.c:4268 +msgid "Leave Fullscreen" +msgstr "Leave Fullscreen" + +#: ../shell/ev-window.c:4269 +msgid "Leave fullscreen mode" +msgstr "Leave fullscreen mode" + +#: ../shell/ev-window.c:4271 +msgid "Start Presentation" +msgstr "Start Presentation" + +#: ../shell/ev-window.c:4272 +msgid "Start a presentation" +msgstr "Start a presentation" + +#. View Menu +#: ../shell/ev-window.c:4328 +msgid "_Toolbar" +msgstr "_Toolbar" + +#: ../shell/ev-window.c:4329 +msgid "Show or hide the toolbar" +msgstr "Show or hide the toolbar" + +#: ../shell/ev-window.c:4331 +msgid "Side _Pane" +msgstr "Side _Pane" + +#: ../shell/ev-window.c:4332 +msgid "Show or hide the side pane" +msgstr "Show or hide the side pane" + +#: ../shell/ev-window.c:4334 +msgid "_Continuous" +msgstr "_Continuous" + +#: ../shell/ev-window.c:4335 +msgid "Show the entire document" +msgstr "Show the entire document" + +#: ../shell/ev-window.c:4337 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:4338 +msgid "Show two pages at once" +msgstr "Show two pages at once" + +#: ../shell/ev-window.c:4340 +msgid "_Fullscreen" +msgstr "_Fullscreen" + +#: ../shell/ev-window.c:4341 +msgid "Expand the window to fill the screen" +msgstr "Expand the window to fill the screen" + +#: ../shell/ev-window.c:4343 +msgid "Pre_sentation" +msgstr "Pre_sentation" + +#: ../shell/ev-window.c:4344 +msgid "Run document as a presentation" +msgstr "Run document as a presentation" + +#: ../shell/ev-window.c:4346 +msgid "_Best Fit" +msgstr "_Best Fit" + +#: ../shell/ev-window.c:4347 +msgid "Make the current document fill the window" +msgstr "Make the current document fill the window" + +#: ../shell/ev-window.c:4349 +msgid "Fit Page _Width" +msgstr "Fit Page _Width" + +#: ../shell/ev-window.c:4350 +msgid "Make the current document fill the window width" +msgstr "Make the current document fill the window width" + +#. Links +#: ../shell/ev-window.c:4357 +msgid "_Open Link" +msgstr "_Open Link" + +#: ../shell/ev-window.c:4359 +msgid "_Go To" +msgstr "_Go To" + +#: ../shell/ev-window.c:4361 +msgid "Open in New _Window" +msgstr "Open in New _Window" + +#: ../shell/ev-window.c:4363 +msgid "_Copy Link Address" +msgstr "_Copy Link Address" + +#: ../shell/ev-window.c:4365 +msgid "_Save Image As..." +msgstr "_Save Image As..." + +#: ../shell/ev-window.c:4367 +msgid "Copy _Image" +msgstr "Copy _Image" + +#: ../shell/ev-window.c:4406 +msgid "Page" +msgstr "Page" + +#: ../shell/ev-window.c:4407 +msgid "Select Page" +msgstr "Select Page" + +#: ../shell/ev-window.c:4418 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:4420 +msgid "Adjust the zoom level" +msgstr "Adjust the zoom level" + +#: ../shell/ev-window.c:4430 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:4432 +msgid "Back" +msgstr "Back" + +#. translators: this is the history action +#: ../shell/ev-window.c:4435 +msgid "Move across visited pages" +msgstr "Move across visited pages" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4465 +msgid "Previous" +msgstr "Previous" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4470 +msgid "Next" +msgstr "Next" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4474 +msgid "Zoom In" +msgstr "Zoom In" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4478 +msgid "Zoom Out" +msgstr "Zoom Out" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4486 +msgid "Fit Width" +msgstr "Fit Width" + +#: ../shell/ev-window.c:4681 +msgid "Unable to open external link" +msgstr "Unable to open external link" + +#: ../shell/ev-window.c:4842 +msgid "Couldn't find appropriate format to save image" +msgstr "Could not find appropriate format to save image" + +#: ../shell/ev-window.c:4882 +msgid "The image could not be saved." +msgstr "The image could not be saved." + +#: ../shell/ev-window.c:4914 +msgid "Save Image" +msgstr "Save Image" + +#: ../shell/ev-window.c:4973 +msgid "Unable to open attachment" +msgstr "Unable to open attachment" + +#: ../shell/ev-window.c:5025 +msgid "The attachment could not be saved." +msgstr "The attachment could not be saved." + +#: ../shell/ev-window.c:5070 +msgid "Save Attachment" +msgstr "Save Attachment" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Password Required" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "By extension" + +#: ../shell/main.c:58 +msgid "The page of the document to display." +msgstr "The page of the document to display." + +#: ../shell/main.c:58 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:59 +msgid "Run evince in fullscreen mode" +msgstr "Run evince in fullscreen mode" + +#: ../shell/main.c:60 +msgid "Run evince in presentation mode" +msgstr "Run evince in presentation mode" + +#: ../shell/main.c:61 +msgid "Run evince as a previewer" +msgstr "Run evince as a previewer" + +#: ../shell/main.c:62 +msgid "The word or phrase to find in the document" +msgstr "The word or phrase to find in the document" + +#: ../shell/main.c:62 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../shell/main.c:332 +msgid "MATE Document Viewer" +msgstr "MATE Document Viewer" + +#: ../shell/main.c:392 +msgid "Evince Document Viewer" +msgstr "Evince Document Viewer" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Enable thumbnailing of PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Thumbnail command for PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 00000000..b4eb8784 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,2359 @@ +# English (British) translation for evince +# Copyright (C) 2005 The Mate Foundation +# This file is distributed under the same licence as the evince package. +# David Lodge <dave@cirt.net>, 2005, 2009. +# Philip Withnall <philip@tecnocode.co.uk>, 2009ā2010. +# Bruce Cowan <bruce@bcowan.me.uk>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-31 15:40+0100\n" +"PO-Revision-Date: 2010-08-31 15:41+0100\n" +"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n" +"Language-Team: British English <en@li.org>\n" +"Language: en_GB\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-Generator: Virtaal 0.6.1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Error launching the command ā%sā in order to decompress the comic book: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "The command ā%sā failed at decompressing the comic book." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "The command ā%sā did not end normally." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Not a comic book MIME type: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Can't find an appropriate command to decompress this type of comic book" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Unknown MIME Type" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "File corrupted" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "No files in archive" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "No images found in archive %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "There was an error deleting ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Error %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comic Books" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu document has incorrect format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu Documents" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI document has incorrect format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Documents" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "This work is in the Public Domain" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Yes" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Unknown font type" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "No name" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Embedded subset" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Embedded" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Not embedded" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF Documents" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Invalid document" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress Slides" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "No error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Not enough memory" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Cannot find ZIP signature" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Invalid ZIP file" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Multi-file ZIPs are not supported" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Cannot open the file" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Cannot read data from file" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Cannot find file in the ZIP archive" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Unknown error" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Failed to load document ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Failed to save document ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Documents" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Couldn't save attachment ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Couldn't open attachment ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Couldn't open attachment ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "File type %s (%s) is not supported" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "All Documents" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "All Files" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Failed to create a temporary file: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Failed to create a temporary directory: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "File is not a valid .desktop file" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Unrecognised desktop file Version '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Starting %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Application does not accept documents on command line" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Unrecognised launch option: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Can't pass document URIs to a 'Type=Link' desktop entry" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Not a launchable item" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Disable connection to session manager" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Specify file containing saved configuration" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Specify session management ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Session management options:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Show session management options" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Show ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Move on Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Move the selected item on the toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Remove from Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Remove the selected item from the toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Delete Toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Remove the selected toolbar" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separator" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Best Fit" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Fit Page Width" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Document Viewer" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "View multi-page documents" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Override document restrictions" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Override document restrictions, like restriction to copy or to print." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Delete the temporary file" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Print settings file" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE Document Previewer" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Failed to print document" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "The selected printer '%s' could not be found" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Previous Page" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Go to the previous page" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_Next Page" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Go to the next page" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "Enlarge the document" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Shrink the document" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Print" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Print this document" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_Best Fit" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Make the current document fill the window" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Fit Page _Width" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Make the current document fill the window width" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Page" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Select Page" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Title:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Location:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Subject:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Author:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Keywords:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producer:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creator:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Created:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modified:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Number of Pages:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimised:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Security:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Paper Size:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "None" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portrait (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Landscape (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d of %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "of %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Loadingā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Preparing to printā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Finishingā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Printing page %d of %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Printing is not supported on this printer." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Invalid page selection" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Warning" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Your print range selection does not include any pages" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Page Scaling:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Shrink to Printable Area" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Fit to Printable Area" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Auto Rotate and Centre" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centred within the printer page." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Select page size using document page size" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"When enabled, each page will be printed on the same size paper as the " +"document page." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Page Handling" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Failed to print page %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Scroll Up" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Scroll Down" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Scroll View Up" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Scroll View Down" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Document View" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Jump to page:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "End of presentation. Click to exit." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Go to first page" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Go to previous page" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Go to next page" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Go to last page" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Go to page" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Find" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Go to page %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Go to %s on file ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Go to file ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Launch %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Find:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Find Pre_vious" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Find previous occurrence of the search string" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Find Ne_xt" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Find next occurrence of the search string" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "C_ase Sensitive" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Toggle case sensitive search" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Icon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Note" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Comment" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Key" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Help" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "New Paragraph" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragraph" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Insert" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cross" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Circle" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Unknown" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Annotation Properties" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Colour:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Style:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaque" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Initial window state:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Open" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Close" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Running in presentation mode" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Password for document %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Converting %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d of %d documents converted" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Converting metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Open a recently used document" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"This document is locked and can only be read by entering the correct " +"password." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Unlock Document" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Enter password" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Password required" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"The document ā%sā is locked and requires a password before it can be opened." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Password:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Forget password _immediately" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Remember password until you _log out" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Remember _forever" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Properties" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Fonts" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Document Licence" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Gathering font informationā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Usage terms" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Text Licence" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Further Information" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "List" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Annotations" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Text" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Add text annotation" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Add" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Document contains no annotations" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Page %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Attachments" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Layers" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Printā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Thumbnails" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Page %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Page %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "The document contains no pages" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "The document contains only empty pages" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Unable to open document" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Loading document from ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Downloading document (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Failed to load remote file." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Reloading document from %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Failed to reload document." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Open Document" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Saving document to %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Saving attachment to %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Saving image to %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "The file could not be saved as ā%sā." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Uploading document (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Uploading attachment (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Uploading image (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Save a Copy" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d pending job in queue" +msgstr[1] "%d pending jobs in queue" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Printing job ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Save a copy of document ā%sā before closing?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Close _without Saving" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Save a _Copy" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Wait until print job ā%sā finishes before closing?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"There are %d print jobs active. Wait until print finishes before closing?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "If you close the window, pending print jobs will not be printed." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Cancel _print and Close" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Close _after Printing" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Toolbar Editor" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "There was an error displaying help" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Document Viewer.\n" +"Using %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "Evince is free software; you can redistribute it and/or modify it under the " +"terms of the GNU General Public Licence as published by the Free Software " +"Foundation; either version 2 of the Licence, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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 Licence for more " +"details.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "You should have received a copy of the GNU General Public Licence along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"David Lodge <dave@cirt.net>\n" +"James Ogley <james@usr-local-bin.org>\n" +"Philip Withnall <philip@tecnocode.co.uk>\n" +"Bruce Cowan <bruce@bcowan.me.uk>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d found on this page" +msgstr[1] "%d found on this page" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Not found" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% remaining to search" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_File" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Edit" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_View" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Go" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_Help" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Openā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Open an existing document" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Op_en a Copy" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Open a copy of the current document in a new window" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "_Save a Copyā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Save a copy of the current document" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Printā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "P_roperties" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Select _All" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Findā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Find a word or phrase in the document" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "T_oolbar" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Rotate _Left" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Rotate _Right" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Save Current Settings as _Default" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_Reload" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Reload the document" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Auto_scroll" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_First Page" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Go to the first page" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Last Page" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Go to the last page" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Contents" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_About" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Leave Fullscreen" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Leave fullscreen mode" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Start Presentation" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Start a presentation" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_Toolbar" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Show or hide the toolbar" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Side _Pane" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Show or hide the side pane" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Continuous" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Show the entire document" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Show two pages at once" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Fullscreen" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Expand the window to fill the screen" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "Pre_sentation" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Run document as a presentation" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Inverted Colours" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Show page contents with the colours inverted" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Open Link" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_Go To" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Open in New _Window" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Copy Link Address" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "_Save Image Asā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Copy _Image" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Annotation Propertiesā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Open Attachment" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_Save Attachment Asā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Adjust the zoom level" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Back" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Move across visited pages" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Previous" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Next" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Zoom In" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Zoom Out" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Fit Width" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Unable to launch external application." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Unable to open external link" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Couldn't find appropriate format to save image" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "The image could not be saved." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Save Image" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Unable to open attachment" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "The attachment could not be saved." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Save Attachment" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Password Required" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "By extension" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE Document Viewer" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "The page label of the document to display." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "The page number of the document to display." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Run evince in fullscreen mode" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Run evince in presentation mode" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Run evince as a previewer" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "The word or phrase to find in the document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Enable thumbnailing of PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Thumbnail command for PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Page Set_upā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Set up the page settings for printing" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DjVu document has incorrect format" + +#~ msgid "Print..." +#~ msgstr "Printā¦" + +#~ msgid "_Save a Copy..." +#~ msgstr "_Save a Copyā¦" + +#~ msgid "_Print..." +#~ msgstr "_Printā¦" + +#~ msgid "_Find..." +#~ msgstr "_Findā¦" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Failed to create file ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Search string" + +#~ msgid "The name of the string to be found" +#~ msgstr "The name of the string to be found" + +#~ msgid "Case sensitive" +#~ msgstr "Case sensitive" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE for a case sensitive search" + +#~ msgid "Highlight color" +#~ msgstr "Highlight colour" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Colour of highlight for all matches" + +#~ msgid "Current color" +#~ msgstr "Current colour" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Colour of highlight for the current match" + +#~ msgid "Recover previous documents?" +#~ msgstr "Recover previous documents?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." + +#~ msgid "_Don't Recover" +#~ msgstr "_Don't Recover" + +#~ msgid "_Recover" +#~ msgstr "_Recover" + +#~ msgid "Crash Recovery" +#~ msgstr "Crash Recovery" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Couldn't create symlink ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Cannot open a copy." + +#~ msgid "Co_nnect" +#~ msgstr "Co_nnect" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connect _anonymously" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Connect as u_ser:" + +#~ msgid "_Username:" +#~ msgstr "_Username:" + +#~ msgid "_Domain:" +#~ msgstr "_Domain:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Forget password immediately" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Remember password until you logout" + +#~ msgid "_Remember forever" +#~ msgstr "_Remember forever" + +#~ msgid "File not available" +#~ msgstr "File not available" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Remote files aren't supported" + +#~ msgid "Password Entry" +#~ msgstr "Password Entry" + +#~ msgid "Remember password for this session" +#~ msgstr "Remember password for this session" + +#~ msgid "Save password in keyring" +#~ msgstr "Save password in keyring" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "Find Previous" + +#~ msgid "Find Next" +#~ msgstr "Find Next" + +#~ msgid "Incorrect password" +#~ msgstr "Incorrect password" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince Document Viewer" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Statement" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Cannot open file ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Encapsulated PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Interpreter failed." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Unhandled MIME type: ā%sā" + +#~ msgid "Images" +#~ msgstr "Images" + +#~ msgid "Open ā%sā" +#~ msgstr "Open ā%sā" + +#~ msgid "Empty" +#~ msgstr "Empty" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "Generating PDF is not supported" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." + +#~ msgid "Pages" +#~ msgstr "Pages" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "Invalid URI: ā%sā" + +#~ msgid "No document loaded." +#~ msgstr "No document loaded." + +#~ msgid "File is not readable." +#~ msgstr "File is not readable." + +#~ msgid "Document loaded." +#~ msgstr "Document loaded." + +#~ msgid "Broken pipe." +#~ msgstr "Broken pipe." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Error while decompressing file ā%sā:\n" + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Default sidebar size" + +#~ msgid "Show sidebar by default" +#~ msgstr "Show sidebar by default" + +#~ msgid "Show statusbar by default" +#~ msgstr "Show statusbar by default" + +#~ msgid "Show toolbar by default" +#~ msgstr "Show toolbar by default" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." + +#~ msgid "_Previous" +#~ msgstr "_Previous" + +#~ msgid "_Next" +#~ msgstr "_Next" + +#~ msgid "Unable to find glade file" +#~ msgstr "Unable to find glade file" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Document Viewer ā Password Required" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "The \"Find\" feature will not work with this document" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Searching for text is only supported for PDF documents." + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Save the current document with a new filename" + +#~ msgid "View the properties of this document" +#~ msgstr "View the properties of this document" + +#~ msgid "Close this window" +#~ msgstr "Close this window" + +#~ msgid "Copy text from the document" +#~ msgstr "Copy text from the document" + +#~ msgid "Select the entire page" +#~ msgstr "Select the entire page" + +#~ msgid "Customize the toolbar" +#~ msgstr "Customise the toolbar" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Rotate the document to the left" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Rotate the document to the right" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Display help for the viewer application" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Display credits for the document viewer creators" + +#~ msgid "Scroll one page forward" +#~ msgstr "Scroll one page forward" + +#~ msgid "Scroll one page backward" +#~ msgstr "Scroll one page backward" + +#~ msgid "Focus the page selector" +#~ msgstr "Focus the page selector" + +#~ msgid "Go ten pages backward" +#~ msgstr "Go ten pages backward" + +#~ msgid "Go ten pages forward" +#~ msgstr "Go ten pages forward" + +#~ msgid "_Statusbar" +#~ msgstr "_Statusbar" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Show or hide the statusbar" + +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgid "<span size=\"smaller\"> </span>" +#~ msgstr "<span size=\"smaller\"> </span>" + +#~ msgid "unexpected EOF\n" +#~ msgstr "unexpected EOF\n" + +#~ msgid "could not load font `%s'\n" +#~ msgstr "could not load font `%s'\n" + +#~ msgid "could not reload `%s'\n" +#~ msgstr "could not reload `%s'\n" + +#~ msgid "%s: unsupported DVI format (version %u)\n" +#~ msgstr "%s: unsupported DVI format (version %u)\n" + +#~ msgid "%s: File corrupted, or not a DVI file\n" +#~ msgstr "%s: File corrupted, or not a DVI file\n" + +#~ msgid "%s: vf macro had errors\n" +#~ msgstr "%s: vf macro had errors\n" + +#~ msgid "%s: stack not empty after vf macro\n" +#~ msgstr "%s: stack not empty after vf macro\n" + +#~ msgid "%s: could not reopen file (%s)\n" +#~ msgstr "%s: could not reopen file (%s)\n" + +#~ msgid "%s: page %d out of range\n" +#~ msgstr "%s: page %d out of range\n" + +#~ msgid "%s: bad offset at page %d\n" +#~ msgstr "%s: bad offset at page %d\n" + +#~ msgid "stack not empty at end of page\n" +#~ msgstr "stack not empty at end of page\n" + +#~ msgid "no default font set yet\n" +#~ msgstr "no default font set yet\n" + +#~ msgid "requested character %d does not exist in `%s'\n" +#~ msgstr "requested character %d does not exist in `%s'\n" + +#~ msgid "enlarging stack\n" +#~ msgstr "enlarging stack\n" + +#~ msgid "stack underflow\n" +#~ msgstr "stack underflow\n" + +#~ msgid "font %d is not defined\n" +#~ msgstr "font %d is not defined\n" + +#~ msgid "font %d is not defined in postamble\n" +#~ msgstr "font %d is not defined in postamble\n" + +#~ msgid "unexpected opcode %d\n" +#~ msgstr "unexpected opcode %d\n" + +#~ msgid "undefined opcode %d\n" +#~ msgstr "undefined opcode %d\n" + +#~ msgid "%s: no fonts defined\n" +#~ msgstr "%s: no fonts defined\n" + +#~ msgid "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" +#~ msgstr "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" + +#~ msgid "%s: could not load fontmap\n" +#~ msgstr "%s: could not load fontmap\n" + +#~ msgid "%s: could not set as default encoding\n" +#~ msgstr "%s: could not set as default encoding\n" + +#~ msgid "encoding vector `%s' is in use\n" +#~ msgstr "encoding vector `%s' is in use\n" + +#~ msgid "GF: invalid opcode %d in character %d\n" +#~ msgstr "GF: invalid opcode %d in character %d\n" + +#~ msgid "(gf) Character %d: invalid opcode %d\n" +#~ msgstr "(gf) Character %d: invalid opcode %d\n" + +#~ msgid "(gf) character %d has an incorrect bounding box\n" +#~ msgstr "(gf) character %d has an incorrect bounding box\n" + +#~ msgid "%s: bad checksum (expected %u, found %u)\n" +#~ msgstr "%s: bad checksum (expected %u, found %u)\n" + +#~ msgid "%s: junk in postamble\n" +#~ msgstr "%s: junk in postamble\n" + +#~ msgid "%s: File corrupted, or not a GF file\n" +#~ msgstr "%s: File corrupted, or not a GF file\n" + +#~ msgid "garbage after DVI page specification ignored\n" +#~ msgstr "garbage after DVI page specification ignored\n" + +#~ msgid "more than 10 counters in page specification\n" +#~ msgstr "more than 10 counters in page specification\n" + +#~ msgid "garbage after TeX page specification ignored\n" +#~ msgstr "garbage after TeX page specification ignored\n" + +#~ msgid "custom" +#~ msgstr "custom" + +#~ msgid "Bad PK file: More bits than required\n" +#~ msgstr "Bad PK file: More bits than required\n" + +#~ msgid "%s: checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s: checksum mismatch (expected %u, got %u)\n" + +#~ msgid "%s: unexpected preamble\n" +#~ msgstr "%s: unexpected preamble\n" + +#~ msgid "%s: unexpected end of file (no postamble)\n" +#~ msgstr "%s: unexpected end of file (no postamble)\n" + +#~ msgid "invalid PK file! (junk in postamble)\n" +#~ msgstr "invalid PK file! (junk in postamble)\n" + +#~ msgid "%s: File corrupted, or not a PK file\n" +#~ msgstr "%s: File corrupted, or not a PK file\n" + +#~ msgid "%s: malformed value for key `%s'\n" +#~ msgstr "%s: malformed value for key `%s'\n" + +#~ msgid "%s: unknown key `%s' ignored\n" +#~ msgstr "%s: unknown key `%s' ignored\n" + +#~ msgid "%s: no argument for key `%s', using defaults\n" +#~ msgstr "%s: no argument for key `%s', using defaults\n" + +#~ msgid "%s: argument `%s' ignored for key `%s'\n" +#~ msgstr "%s: argument `%s' ignored for key `%s'\n" + +#~ msgid "%s: tried to pop top level layer\n" +#~ msgstr "%s: tried to pop top level layer\n" + +#~ msgid "(t1) failed to reset device resolution\n" +#~ msgstr "(t1) failed to reset device resolution\n" + +#~ msgid "%s: could not encode font\n" +#~ msgstr "%s: could not encode font\n" + +#~ msgid "(t1) unsupported bitmap pad size %d\n" +#~ msgstr "(t1) unsupported bitmap pad size %d\n" + +#~ msgid "%s: Checksum mismatch (got %u, expected %u)\n" +#~ msgstr "%s: Checksum mismatch (got %u, expected %u)\n" + +#~ msgid "%s: Error reading AFM data\n" +#~ msgstr "%s: Error reading AFM data\n" + +#~ msgid "Warning: TFM file `%s' has suspicious size\n" +#~ msgstr "Warning: TFM file `%s' has suspicious size\n" + +#~ msgid "%s: font coding scheme truncated to 40 bytes\n" +#~ msgstr "%s: font coding scheme truncated to 40 bytes\n" + +#~ msgid "%s: File corrupted, or not a TFM file\n" +#~ msgstr "%s: File corrupted, or not a TFM file\n" + +#~ msgid "(tt) %s: could not load face: %s\n" +#~ msgstr "(tt) %s: could not load face: %s\n" + +#~ msgid "(tt) %s: could not create face: %s\n" +#~ msgstr "(tt) %s: could not create face: %s\n" + +#~ msgid "(tt) %s: could not create glyph: %s\n" +#~ msgstr "(tt) %s: could not create glyph: %s\n" + +#~ msgid "(tt) %s: no acceptable map found, using #0\n" +#~ msgstr "(tt) %s: no acceptable map found, using #0\n" + +#~ msgid "(tt) %s: could not set resolution: %s\n" +#~ msgstr "(tt) %s: could not set resolution: %s\n" + +#~ msgid "(tt) %s: could not set point size: %s\n" +#~ msgstr "(tt) %s: could not set point size: %s\n" + +#~ msgid "(tt) %s: could not load PS name table\n" +#~ msgstr "(tt) %s: could not load PS name table\n" + +#~ msgid "%s: no encoding vector found, expect bad output\n" +#~ msgstr "%s: no encoding vector found, expect bad output\n" + +#~ msgid "(tt) %s: no font metric data\n" +#~ msgstr "(tt) %s: no font metric data\n" + +#~ msgid "Crashing" +#~ msgstr "Crashing" + +#~ msgid "%s: Warning: " +#~ msgstr "%s: Warning: " + +#~ msgid "%s: Fatal: " +#~ msgstr "%s: Fatal: " + +#~ msgid "Fatal" +#~ msgstr "Fatal" + +#~ msgid "out of memory allocating %u bytes\n" +#~ msgstr "out of memory allocating %u bytes\n" + +#~ msgid "attempted to reallocate with zero size\n" +#~ msgstr "attempted to reallocate with zero size\n" + +#~ msgid "failed to reallocate %u bytes\n" +#~ msgstr "failed to reallocate %u bytes\n" + +#~ msgid "attempted to callocate 0 members\n" +#~ msgstr "attempted to callocate 0 members\n" + +#~ msgid "attempted to callocate %u members with size 0\n" +#~ msgstr "attempted to callocate %u members with size 0\n" + +#~ msgid "failed to allocate %ux%u bytes\n" +#~ msgstr "failed to allocate %ux%u bytes\n" + +#~ msgid "attempted to free NULL pointer\n" +#~ msgstr "attempted to free NULL pointer\n" + +#~ msgid "%s: Checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s: Checksum mismatch (expected %u, got %u)\n" + +#~ msgid "(vf) %s: could not load font `%s'\n" +#~ msgstr "(vf) %s: could not load font `%s'\n" + +#~ msgid "(vf) %s: character %d redefined\n" +#~ msgstr "(vf) %s: character %d redefined\n" + +#~ msgid "(vf) %s: no postamble\n" +#~ msgstr "(vf) %s: no postamble\n" + +#~ msgid "%s: File corrupted, or not a VF file.\n" +#~ msgstr "%s: File corrupted, or not a VF file.\n" + +#~ msgid "Error while scanning file %s\n" +#~ msgstr "Error while scanning file %s\n" + +#~ msgid "The file is not a PostScript document." +#~ msgstr "The file is not a PostScript document." + +#~ msgid "Many..." +#~ msgstr "Manyā¦" + +#~ msgid "Not so many..." +#~ msgstr "Not so manyā¦" + +#~ msgid "Reset the zoom level to the default value" +#~ msgstr "Reset the zoom level to the default value" + +#~ msgid "Selection Caret" +#~ msgstr "Selection Caret" + +#~ msgid "Single" +#~ msgstr "Single" + +#~ msgid "Show the document one page at a time" +#~ msgstr "Show the document one page at a time" + +#~ msgid "Multi" +#~ msgstr "Multi" + +#~ msgid "Show the full document at once" +#~ msgstr "Show the full document at once" diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 00000000..e0912a39 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,1648 @@ +# Esperanto translation for evince +# Copyright (c) (c) 2005 Canonical Ltd, and Rosetta Contributors 2005 +# This file is distributed under the same license as the evince package. +# Dominique PELLĆ <dominique.pelle@free.fr>, 2005. +# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-06-11 11:35+0000\n" +"PO-Revision-Date: 2010-06-20 10:01+0200\n" +"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" +"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\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-Launchpad-Export-Date: 2010-06-11 16:12+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Eraro dum rulado de komando \"%s\" por maldensigi la bildstrian libron: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "La komando \"%s\" malsukcesis maldensigi la bildstrian libron." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "La komando \"%s\" finiÄis nenormale." + +#: ../backend/comics/comics-document.c:418 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ne estas MIME-tipo de bildstria libro: %s" + +#: ../backend/comics/comics-document.c:425 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Mi ne trovas taÅgan komandon por maldensigi tiun Äi tipon de bildstria libro." + +#: ../backend/comics/comics-document.c:463 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Nekonata MIME-a tipo" + +#: ../backend/comics/comics-document.c:490 +msgid "File corrupted" +msgstr "DamaÄita dosiero" + +#: ../backend/comics/comics-document.c:503 +msgid "No files in archive" +msgstr "Neniu dosiero en arkivo" + +#: ../backend/comics/comics-document.c:542 +#, c-format +msgid "No images found in archive %s" +msgstr "Trovis neniun bildon en arkivo %s" + +#: ../backend/comics/comics-document.c:786 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Okazis eraro dum forigo de \"%s\"." + +#: ../backend/comics/comics-document.c:925 +#, c-format +msgid "Error %s" +msgstr "Eraro %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komiksolibroj" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokumento havas malÄustan strukturon." + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Tiu Äi dokumento konsistas el pluraj dosieroj. AlmenaÅ unu el ili estas ne " +"atingebla." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-dokumentoj" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "La DVI-dokumento havas nekorektan formaton" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokumentoj" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Tiu Äi verko estas publika havaĵo." + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Jes" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Ne" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Tipo 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Tipo 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Tipo 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "Trutajpa" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Tipo 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Tipo 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "Trutajpa (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Nekonata tipo de tiparo" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Neniu nomo" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "Enkorpigita subaro" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "Enkorpigite" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "Ne enkorpigite" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokumentoj" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Nevalida dokumento" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +#, fuzzy +msgid "Impress Slides" +msgstr "Printi prezentaĵoj" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Neniu eraro" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ne sufiÄe da memoro" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Ne eblas trovi ZIP-subskribon" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Nevalida ZIP-dosiero" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Plur-dosieraj ZIP-arkivoj ne estas subtenataj." + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Ne eblas malfermi la dosieron" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Ne eblas legi datumojn el dosiero" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Ne eblas trovi dosieron en la ZIP-dosiero" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Nekonata eraro" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Malsukcesis ÅarÄado de dokumento ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Malsukcesis konservado de dokumento ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostSkripto-dokumentoj" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Ne povis konservi kunsendaĵon ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Ne povis malfermi kunsendaĵon ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Ne povis malfermi kunsendaĵon ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Dosiertipo %s (%s) ne estas subtenata" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Äiuj dokumentoj" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Äiuj dosieroj" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Dosiero ne estas valida .desktop-dosiero" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nerekonata versio '%s' de labortabla dosiero" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "LanÄante %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikaĵo ne akceptas dokumentojn per komandlinio" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nerekonata lanÄparametro: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ne eblas transdoni URI-dokumentojn al labortabla elemento 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "NelanÄebla ero" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ElÅalti konekton al seanco-administrilo" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Specifi dosieron kiun enhavas konservitan agordon" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "DOSIERO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Specifi seancoadministran identigilon" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opcioj de seancoadministrilo:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Montri opciojn de la seancoadministrilo" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Montri \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Movi sur ilobreto" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Movi la elektitan eron sur la ilobreto" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Fo_rigi de la ilobreto" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Forigi la elektitan eron el la ilobreto" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Forigi ilobreton" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Forigi la elektitan ilobreton" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Apartigilo" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:101 +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:176 +msgid "Running in presentation mode" +msgstr "LanÄante prezentaĵe" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5403 +msgid "Best Fit" +msgstr "Pli bona adapto" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Adapti al la paÄa larÄo" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4254 +#: ../shell/ev-window-title.c:149 ../shell/main.c:313 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentrigardilo" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Superskribi rajtlimigojn de dokumento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Superskribi rajtlimigojn de dokumento, kiel rajtlimigo por kopii aÅ printi." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3017 +msgid "Failed to print document" +msgstr "Malsukcesis malfermi dokumenton" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5152 +msgid "_Previous Page" +msgstr "_AntaÅa paÄo" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5153 +msgid "Go to the previous page" +msgstr "Iri al la antaÅa paÄo" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5155 +msgid "_Next Page" +msgstr "_Sekva paÄo" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5156 +msgid "Go to the next page" +msgstr "Iri al la sekva paÄo" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5139 +msgid "Enlarge the document" +msgstr "Pligrandigi la dokumenton" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5142 +msgid "Shrink the document" +msgstr "Malpligrandigi la dokumenton" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Printi" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5110 +msgid "Print this document" +msgstr "Printi tiun dokumenton" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5254 +msgid "_Best Fit" +msgstr "_Plej bona adekvateco" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5255 +msgid "Make the current document fill the window" +msgstr "Fari ke la aktuala dokumento plenumos la fenestron" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5257 +msgid "Fit Page _Width" +msgstr "LaÅ _larÄeco de paÄo" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5258 +msgid "Make the current document fill the window width" +msgstr "Plenigi la larÄecon de la fenestro" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5325 +msgid "Page" +msgstr "PaÄo" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5326 +msgid "Select Page" +msgstr "Elekti paÄon" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokumento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titolo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Situo:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Temo:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "AÅtoro:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Ålosilvortoj:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Kreanto:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Kreinto:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Kreita:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modifite:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Nombro de paÄoj:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimumigite:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Datumsekurigo:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Papergrando:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Neniu" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portreto (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, PejzaÄo (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "SĢargante..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Pretiganta por printi..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Finigante..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Printi ne estas subtenata Äe tiu printilo." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Averto" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Rulumi supren" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Rulumi suben" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Rulumi vidpanelon supren" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Rulumi vidpanelon suben" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Vido de dokumento" + +#: ../libview/ev-view-presentation.c:673 +msgid "Jump to page:" +msgstr "Salti al la paÄo:" + +#: ../libview/ev-view-presentation.c:969 +msgid "End of presentation. Click to exit." +msgstr "" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Iri al la unua paÄo" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Iri al la antaÅa paÄo" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Iri al la sekva paÄo" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Iri al la lasta paÄo" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Iri al paÄo" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Trovi" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Iri al paÄo %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Iri al %s en dosiero ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Iri al dosiero ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "LanÄi %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Trovi:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5127 +msgid "Find Pre_vious" +msgstr "Trovi _antaÅan" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Trovi antaÅan aperon de la serÄata Äeno" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5125 +msgid "Find Ne_xt" +msgstr "Trovi se_kvan" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Trovi sekvan aperon de la serÄata Äeno" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Us_klecodistinga" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Baskuli usklecodistingan traserÄon" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Pasvorto por dokumento %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Malfermi lasttempe uzita dokumenton" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Tiu dokumento estas Ålosita kaj nur estos legebla per la Äusta pasvorto." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_MalÅlosi dokumenton" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Enigi pasvorton" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Pasvorto bezonata" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "La dokumento ā%sā estas Ålosita kaj bezonas pasvorton por malfermado." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Pasvorto:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_Forgesi pasvorton tuj" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Memori porcĢiame" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Atributoj" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Äenerala" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Tiparoj" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Tiparo" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Kunsendaĵoj" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Tavoloj" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Printi..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indekso" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "AntaÅvidaj bildetoj" + +#: ../shell/ev-window.c:835 +#, c-format +msgid "Page %s ā %s" +msgstr "PaÄo %s ā %s" + +#: ../shell/ev-window.c:837 +#, c-format +msgid "Page %s" +msgstr "PaÄo %s" + +#: ../shell/ev-window.c:1297 +msgid "The document contains no pages" +msgstr "Tiu dokumento ne enhavas paÄojn" + +#: ../shell/ev-window.c:1300 +msgid "The document contains only empty pages" +msgstr "" + +#: ../shell/ev-window.c:1494 ../shell/ev-window.c:1660 +msgid "Unable to open document" +msgstr "Ne eblis malfermi dokumenton" + +#: ../shell/ev-window.c:1631 +#, c-format +msgid "Loading document from ā%sā" +msgstr "" + +#: ../shell/ev-window.c:1773 ../shell/ev-window.c:2051 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:1806 +msgid "Failed to load remote file." +msgstr "" + +#: ../shell/ev-window.c:1995 +#, c-format +msgid "Reloading document from %s" +msgstr "ReÅargi la dokumenton de %s" + +#: ../shell/ev-window.c:2027 +msgid "Failed to reload document." +msgstr "Malsukcesis reÅaÄi dokumenton." + +#: ../shell/ev-window.c:2182 +msgid "Open Document" +msgstr "Malfermi dokumenton" + +#: ../shell/ev-window.c:2480 +#, c-format +msgid "Saving document to %s" +msgstr "" + +#: ../shell/ev-window.c:2483 +#, c-format +msgid "Saving attachment to %s" +msgstr "Konservi kunsendaĵon al %s" + +#: ../shell/ev-window.c:2486 +#, c-format +msgid "Saving image to %s" +msgstr "Konservi bildon al %s" + +#: ../shell/ev-window.c:2530 ../shell/ev-window.c:2630 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "La dosiero ne povas esti konservita kiel ā%sā." + +#: ../shell/ev-window.c:2561 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "AlÅuti dikumenton (%d%%)" + +#: ../shell/ev-window.c:2565 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "AlÅutante kunsendaĵon (%d%%)" + +#: ../shell/ev-window.c:2569 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "AlÅuti bildon (%d%%)" + +#: ../shell/ev-window.c:2693 +msgid "Save a Copy" +msgstr "Konservi kopion" + +#: ../shell/ev-window.c:2961 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-window.c:3074 +#, c-format +msgid "Printing job ā%sā" +msgstr "Print-tasko ā%sā" + +#: ../shell/ev-window.c:3286 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3289 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3301 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3305 +msgid "Cancel _print and Close" +msgstr "" + +#: ../shell/ev-window.c:3309 +msgid "Close _after Printing" +msgstr "Fermi _post printo" + +#: ../shell/ev-window.c:3899 +msgid "Toolbar Editor" +msgstr "Redaktilo de ilobreto" + +#: ../shell/ev-window.c:4038 +msgid "There was an error displaying help" +msgstr "" + +#: ../shell/ev-window.c:4250 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" + +#: ../shell/ev-window.c:4281 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince estas libera programo; vi povas pludisdoni kopiojn kaj modifi Äin sub " +"la kondiÄoj de la Äenerala Publika Rajtigilo de GNU, kiel tio estas eldonita " +"de Free Software Foundation; aÅ versio 2 de la rajtigilo, aÅ (laÅ via " +"elekto) iu sekva versio.\n" + +#: ../shell/ev-window.c:4285 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince estas disdonita kun la espero, ke Äi estos utila, sed SEN IA AJN " +"GARANTIO; eÄ sen la implicita garantio de KOMERCA KVALITO aÅ ADEKVATECO POR " +"DIFINITA CELO. Vidu la Äeneralan Publikan Rajtigilon de GNU por pli da " +"detaloj.\n" + +#: ../shell/ev-window.c:4289 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Vi devus esti ricevinta kopion de la Äenerala Publika Permesilo de GNU kun " +"Evince; se ne, skribu al Free Software Foundation, Inc., 51 Franklin Street, " +"Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4314 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4317 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 La aÅtoroj de Evince" + +#: ../shell/ev-window.c:4323 +msgid "translator-credits" +msgstr "" +"Dominique PELLĆ <dominique.pelle@free.fr>\n" +"Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" +"Launchpad Contributions:\n" +" Aisano https://launchpad.net/~info-ais-sanmarino\n" +" Andreas Schlapsi https://launchpad.net/~a-schlapsi\n" +" Michael MORONI https://launchpad.net/~haikara90\n" +" Sergio Aldana https://launchpad.net/~sangtrinkulo\n" +" William Theaker https://launchpad.net/~wsttrollboy" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4597 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "Trovis %d en tiu paÄo" +msgstr[1] "Trovis %d en tiu paÄo" + +#: ../shell/ev-window.c:4605 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Restas %3d%% por traserÄi" + +#: ../shell/ev-window.c:5093 +msgid "_File" +msgstr "_Dosiero" + +#: ../shell/ev-window.c:5094 +msgid "_Edit" +msgstr "_Redakti" + +#: ../shell/ev-window.c:5095 +msgid "_View" +msgstr "_Vidi" + +#: ../shell/ev-window.c:5096 +msgid "_Go" +msgstr "_Ek" + +#: ../shell/ev-window.c:5097 +msgid "_Help" +msgstr "_Helpo" + +#. File menu +#: ../shell/ev-window.c:5100 ../shell/ev-window.c:5365 +msgid "_Openā¦" +msgstr "_Malfermiā¦" + +#: ../shell/ev-window.c:5101 ../shell/ev-window.c:5366 +msgid "Open an existing document" +msgstr "Malfermi ekzistan dokumenton" + +#: ../shell/ev-window.c:5103 +msgid "Op_en a Copy" +msgstr "Mal_fermi kopion" + +#: ../shell/ev-window.c:5104 +msgid "Open a copy of the current document in a new window" +msgstr "Malfermi kopion de kuranta dokumento en nova fenestro" + +#: ../shell/ev-window.c:5106 +msgid "_Save a Copyā¦" +msgstr "Kon_servi kopion..." + +#: ../shell/ev-window.c:5107 +msgid "Save a copy of the current document" +msgstr "Konservi kaj kopii la aktualan dokumenton" + +#: ../shell/ev-window.c:5109 +msgid "_Printā¦" +msgstr "_Printiā¦" + +#: ../shell/ev-window.c:5112 +msgid "P_roperties" +msgstr "At_ributoj" + +#: ../shell/ev-window.c:5120 +msgid "Select _All" +msgstr "Elekti Äi_on" + +#: ../shell/ev-window.c:5122 +msgid "_Findā¦" +msgstr "_Trovi..." + +#: ../shell/ev-window.c:5123 +msgid "Find a word or phrase in the document" +msgstr "Trovi vorton aÅ frazon en la dokumento" + +#: ../shell/ev-window.c:5129 +msgid "T_oolbar" +msgstr "_Ilobreto" + +#: ../shell/ev-window.c:5131 +msgid "Rotate _Left" +msgstr "Turni _maldekstren" + +#: ../shell/ev-window.c:5133 +msgid "Rotate _Right" +msgstr "Turni _dekstren" + +#: ../shell/ev-window.c:5144 +msgid "_Reload" +msgstr "_ReÅargi" + +#: ../shell/ev-window.c:5145 +msgid "Reload the document" +msgstr "ReÅargi la dokumenton" + +#: ../shell/ev-window.c:5148 +msgid "Auto_scroll" +msgstr "AÅtomata _rulumado" + +#: ../shell/ev-window.c:5158 +msgid "_First Page" +msgstr "_Unua paÄo" + +#: ../shell/ev-window.c:5159 +msgid "Go to the first page" +msgstr "Iri al la unua paÄo" + +#: ../shell/ev-window.c:5161 +msgid "_Last Page" +msgstr "_Lasta paÄo" + +#: ../shell/ev-window.c:5162 +msgid "Go to the last page" +msgstr "Iri al la lasta paÄo" + +#. Help menu +#: ../shell/ev-window.c:5166 +msgid "_Contents" +msgstr "_Enhavo" + +#: ../shell/ev-window.c:5169 +msgid "_About" +msgstr "_Pri" + +#. Toolbar-only +#: ../shell/ev-window.c:5173 +msgid "Leave Fullscreen" +msgstr "Eliri el plenekrana reÄimo" + +#: ../shell/ev-window.c:5174 +msgid "Leave fullscreen mode" +msgstr "Eliri el plenekrana reÄimo" + +#: ../shell/ev-window.c:5176 +msgid "Start Presentation" +msgstr "Komenci prezentadon" + +#: ../shell/ev-window.c:5177 +msgid "Start a presentation" +msgstr "Komenci prezentadon" + +#. View Menu +#: ../shell/ev-window.c:5236 +msgid "_Toolbar" +msgstr "_Ilobreto" + +#: ../shell/ev-window.c:5237 +msgid "Show or hide the toolbar" +msgstr "Montri aÅ kaÅi la ilobreton" + +#: ../shell/ev-window.c:5239 +msgid "Side _Pane" +msgstr "Flanka _panelo" + +#: ../shell/ev-window.c:5240 +msgid "Show or hide the side pane" +msgstr "Montri aÅ kaÅi la flankan panelon" + +#: ../shell/ev-window.c:5242 +msgid "_Continuous" +msgstr "_LongdaÅra" + +#: ../shell/ev-window.c:5243 +msgid "Show the entire document" +msgstr "Montri la tutan dokumenton" + +#: ../shell/ev-window.c:5245 +msgid "_Dual" +msgstr "_Duobla" + +#: ../shell/ev-window.c:5246 +msgid "Show two pages at once" +msgstr "Montri du paÄojn samtempe" + +#: ../shell/ev-window.c:5248 +msgid "_Fullscreen" +msgstr "_Plenekrane" + +#: ../shell/ev-window.c:5249 +msgid "Expand the window to fill the screen" +msgstr "Ekspansii la fenestran por plenigi la ekranon" + +#: ../shell/ev-window.c:5251 +msgid "Pre_sentation" +msgstr "Pre_zentaĵo" + +#: ../shell/ev-window.c:5252 +msgid "Run document as a presentation" +msgstr "Ruli dokumenton kiel prezentaĵo" + +#: ../shell/ev-window.c:5260 +msgid "_Inverted Colors" +msgstr "_Inversigitaj koloroj" + +#: ../shell/ev-window.c:5261 +msgid "Show page contents with the colors inverted" +msgstr "Montri paÄ-enhavon per inversigitaj koloroj." + +#. Links +#: ../shell/ev-window.c:5269 +msgid "_Open Link" +msgstr "_Malfermi ligilon" + +#: ../shell/ev-window.c:5271 +msgid "_Go To" +msgstr "_Iri al" + +#: ../shell/ev-window.c:5273 +msgid "Open in New _Window" +msgstr "Malfermi en nova _fenestro" + +#: ../shell/ev-window.c:5275 +msgid "_Copy Link Address" +msgstr "_Kopii adreson de ligilo" + +#: ../shell/ev-window.c:5277 +msgid "_Save Image Asā¦" +msgstr "Kon_servi bildon kiel..." + +#: ../shell/ev-window.c:5279 +msgid "Copy _Image" +msgstr "Kopii _bildon" + +#: ../shell/ev-window.c:5284 +msgid "_Open Attachment" +msgstr "_Malfermi kunsendaĵon" + +#: ../shell/ev-window.c:5286 +msgid "_Save Attachment Asā¦" +msgstr "Kon_servi kunsendaĵon kiel..." + +#: ../shell/ev-window.c:5339 +msgid "Zoom" +msgstr "Zomo" + +#: ../shell/ev-window.c:5341 +msgid "Adjust the zoom level" +msgstr "Äustigi la nivelon de zomo" + +#: ../shell/ev-window.c:5351 +msgid "Navigation" +msgstr "Navigado" + +#: ../shell/ev-window.c:5353 +msgid "Back" +msgstr "MalantaÅen" + +#. translators: this is the history action +#: ../shell/ev-window.c:5356 +msgid "Move across visited pages" +msgstr "MoviÄi inter vizititaj paÄoj" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5386 +msgid "Previous" +msgstr "AntaÅa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5391 +msgid "Next" +msgstr "Sekva" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5395 +msgid "Zoom In" +msgstr "Zomi" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5399 +msgid "Zoom Out" +msgstr "Malzomi" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5407 +msgid "Fit Width" +msgstr "Adekvatigi larÄecon" + +#: ../shell/ev-window.c:5568 ../shell/ev-window.c:5585 +msgid "Unable to launch external application." +msgstr "" + +#: ../shell/ev-window.c:5642 +msgid "Unable to open external link" +msgstr "Malsukcesis malfermi eksteran ligilon" + +#: ../shell/ev-window.c:5809 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:5851 +msgid "The image could not be saved." +msgstr "Ne povas konservi bildon." + +#: ../shell/ev-window.c:5883 +msgid "Save Image" +msgstr "Konservi bildon" + +#: ../shell/ev-window.c:5950 +msgid "Unable to open attachment" +msgstr "Malsukcesis malfermi kunsendaĵon." + +#: ../shell/ev-window.c:6003 +msgid "The attachment could not be saved." +msgstr "Ne povis konservi kunsendaĵon." + +#: ../shell/ev-window.c:6048 +msgid "Save Attachment" +msgstr "Konservi kunsendaĵon" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Pasvorto bezonatas" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "LaÅ kromaĵo" + +#: ../shell/main.c:72 ../shell/main.c:277 +msgid "MATE Document Viewer" +msgstr "MATE vidigilo de dokumentoj" + +#: ../shell/main.c:80 +msgid "The page label of the document to display." +msgstr "La paÄ-etikedo de la dokumento por vidigi." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "PAÄO" + +#: ../shell/main.c:81 +msgid "The page number of the document to display." +msgstr "La paÄ-numero de la dokumento por vidigi." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "NUMERO" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "Ruli Envince tutekrane" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "Ruli Envince prezentaĵe" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "LanÄi Evince kiel antaÅvidilo" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "Vorto aÅ frazo por trovi en la dokumento" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "SIGNOÄENO" + +#: ../shell/main.c:89 +msgid "[FILEā¦]" +msgstr "[DOSIERO...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Ebligi antaÅvidan bildeton de PDF dokumentoj" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Komando por antaÅvida bildeto de PDF dokumentoj" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" + +#~ msgid "%.2f x %.2f inch" +#~ msgstr "%.2f x %.2f coloj" + +#~ msgid "Page %s - %s" +#~ msgstr "PaÄo %s - %s" + +#~ msgid "%.0f x %.0f mm" +#~ msgstr "%.0f x %.0f mm" + +#~ msgid "%s - Password Required" +#~ msgstr "%s - Pasvorto bezonatas" + +#~ msgid "_Save Image As..." +#~ msgstr "_Konservi bildon kiel..." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "La DJVU-dokumento havas nekorektan formaton" + +#~ msgid "" +#~ "The document is composed of several files. One or more of such files " +#~ "cannot be accessed." +#~ msgstr "" +#~ "La dokumento konsistas el multaj dosieroj. Unu aÅ pli dosieroj ne povas " +#~ "esti atingitaj." + +#~ msgid "Djvu Documents" +#~ msgstr "DJVU-dokumentoj" + +#~ msgid "Cannot find zip signature" +#~ msgstr "Ne eblas trovi ZIP-subskribon" + +#~ msgid "Invalid zip file" +#~ msgstr "Nevalida ZIP-dosiero" + +#~ msgid "Multi file zips are not supported" +#~ msgstr "Multedosieroj ZIP-arkivoj ne estas subtenataj" + +#~ msgid "Cannot find file in the zip archive" +#~ msgstr "Ne eblas trovi dosieron en ZIP-dosiero" + +#~ msgid "View multipage documents" +#~ msgstr "Vidi plurpaÄaj dokumentoj" + +#~ msgid "End of presentation. Press Escape to exit." +#~ msgstr "Fino de la prezentaĵo. Presi eskapklavon por eliri." + +#~ msgid "Loading..." +#~ msgstr "Åargante..." + +#~ msgid "Remember password until you _logout" +#~ msgstr "Memori pasvorton Äis elsaluto" + +#~ msgid "Gathering font information... %3d%%" +#~ msgstr "Kolektante informojn de tiparoj... %3d%%" + +#~ msgid "Print..." +#~ msgstr "Printante..." + +#~ msgid "" +#~ "Document Viewer.\n" +#~ "Using poppler %s (%s)" +#~ msgstr "" +#~ "Vidigilo de dokumentoj.\n" +#~ "Uzanta poppler %s (%s)" + +#~ msgid "_Open..." +#~ msgstr "_Malfermi..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Konservi kopion..." + +#~ msgid "Page Set_up..." +#~ msgstr "Print-agordoj..." + +#~ msgid "Setup the page settings for printing" +#~ msgstr "Agordi parametrojn de paÄo por presado" + +#~ msgid "_Print..." +#~ msgstr "_Printi..." + +#~ msgid "_Find..." +#~ msgstr "_Trovi..." + +#~ msgid "[FILE...]" +#~ msgstr "[DOSIERO...]" + +#~ msgid "" +#~ "Boolean options available, true enables thumbnailing and false disables " +#~ "the creation of new thumbnails" +#~ msgstr "" +#~ "Buleaj haveblaj opcioj, vera ebligas antaÅvidan bildeton, kaj malvera " +#~ "malebligas kreadon de novaj antaÅvidaj bildetoj" + +#~ msgid "" +#~ "Valid command plus arguments for the PDF Document thumbnailer. See " +#~ "caja thumbnailer documentation for more information." +#~ msgstr "" +#~ "Valida komando, kaj argumentoj por la ilo de antaÅvidaj bildetoj. Vidi la " +#~ "dokumentaron de la antaÅvida bildetilo Caja por pli da informoj." diff --git a/po/es.po b/po/es.po new file mode 100644 index 00000000..81c719b6 --- /dev/null +++ b/po/es.po @@ -0,0 +1,1853 @@ +# translation of evince.HEAD.po to EspaƱol +# TraducciĆ³n de Evince al espaƱol. +# Copyright (C) Spanish translation for Evince +# This file is distributed under the same license as the Evince package. +# +# Antonio Ognio <gnrfan@gnrfan.org, 2004, 2005. +# Daniel Fernandez <dfdez@ya.com>, 2005. +# Francisco Javier F. Serrador <serrador@cvs.mate.org>, 2005, 2006. +# Juanje Ojeda Croissier <jojeda@emergya.es>, 2008, 2009. +# Jorge GonzĆ”lez <jorgegonz@svn.mate.org>, 2007, 2008, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-08-14 09:01+0000\n" +"PO-Revision-Date: 2010-08-15 20:43+0200\n" +"Last-Translator: Jorge GonzĆ”lez <jorgegonz@svn.mate.org>\n" +"Language-Team: EspaƱol <mate-es-list@gnome.org>\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-Generator: Gtranslator 1.9.3\n" +"\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Error al lanzar el comando Ā«%sĀ» para descomprimir el cĆ³mic en el directorio " +"temporal: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" +"El comando Ā«%sĀ» fallĆ³ al descomprimir el cĆ³mic en el directorio temporal." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "El comando Ā«%sĀ» no finalizĆ³ de forma normal." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "No es un tipo MIME de cĆ³mic: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"No se puede encontrar un comando apropiado para descomprimir este tipo de " +"archivo de cĆ³mic" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipo MIME desconocido" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Archivo corrupto" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "No hay archivos en el archivador" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "No se encontraron imĆ”genes en el archivador %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Hubo un error al borrar Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Error %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Libros de cĆ³mics" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "El documento DjVu tiene un formato incorrecto" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"El documento estĆ” compuesto de varios archivos. No se puede acceder a uno o " +"mĆ”s de ellos." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documentos DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "El documento DVI tiene un formato incorrecto" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documentos DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Este trabajo estĆ” en Dominio pĆŗblico" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "SĆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Tipo 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Tipo 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Tipo 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Tipo 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Tipo 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipo de tipografĆa desconocida" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Sin nombre" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subconjunto incrustado" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Incrustado" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "No incrustado" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documentos PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documento no vĆ”lido" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapositivas Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Sin error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "No hay suficiente memoria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "No se puede encontrar la firma ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Archivo ZIP invĆ”lido" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "No se soportan los ZIP multiarchivo" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "No se puede abrir el archivo" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "No se pueden leer los datos del archivo" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "No se puede encontrar el archivo en el archivador ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Error desconocido" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "No se pudo al cargar el documento Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "FallĆ³ al guardar el documento Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documentos PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "No se pudo guardar el adjunto Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "No se pudo abrir el adjunto Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "No se pudo abrir el adjunto Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "El tipo de archivo %s (%s) no estĆ” soportado" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Todos los documentos" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Todos los archivos" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "FallĆ³ al crear un archivo temporal: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "FallĆ³ al crear un directorio temporal: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El archivo no es un archivo .desktop vĆ”lido" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "VersiĆ³n Ā«%sĀ» del archivo .desktop no reonocida" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "La aplicaciĆ³n no acepta documentos en la lĆnea de comandos" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpciĆ³n de lanzamiento no reconocida: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "No se pueden pasar URI de documentos a un aentrada .desktop Ā«Type=LinkĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "No es un elemento lanzable" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desactivar la conexiĆ³n con el gestor de sesiones" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especificar el archivo que contiene la configuraciĆ³n guardada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ARCHIVO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especificar el ID de gestiĆ³n de sesiĆ³n" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opciones de gestiĆ³n de la sesiĆ³n:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostrar las opciones de gestiĆ³n de la sesiĆ³n" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostrar Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Mover a la barra de herramientas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Mueve el elemento seleccionado a la barra de herramientas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Quitar de la barra de herramientas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Quita el elemento seleccionado de la barra de herramientas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Eliminar barra de herramientas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Quitar barra de herramientas seleccionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separador" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Ajuste Ć³ptimo" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ajustar al ancho de pĆ”gina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visor de documentos" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Vea documentos multipĆ”gina" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Saltarse las restricciones del documento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Saltarse las restricciones del documento, como restricciĆ³n para copiar o " +"imprimir." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Eliminar el archivo temporal" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Archivo de ajustes de impresiĆ³n" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Visor de documentos de Mate" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "No se pudo imprimir el documento" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "No se pudo encontrar la impresora actual Ā«%sĀ»" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "PĆ”gina _anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Ir a la pĆ”gina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_Siguiente pĆ”gina" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Ir a la pĆ”gina siguiente" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "AmplĆa el documento" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Reduce el documento" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Imprimir" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Imprime este documento" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "Ajuste Ć³p_timo" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Hace que el documento actual llene la ventana" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Ajustar al a_ncho de pĆ”gina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Hace que el documento actual llene la anchura de la ventana" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "PĆ”gina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Seleccione la pĆ”gina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtulo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "UbicaciĆ³n:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Asunto:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Palabras clave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Productor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creado:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificado:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NĆŗmero de pĆ”ginas:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizado:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Seguridad:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "TamaƱo del papel:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Ninguno" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f pulg" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, vertical (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, apaisado (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Cargandoā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "PrepaÅandose para imprimirā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Terminandoā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Imprimiendo pĆ”gina %d de %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "La impresiĆ³n no estĆ” soportada con esta impresora." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Archivo zip invĆ”lido" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Advertencia" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Su selecciĆ³n de intervalo de pĆ”ginas no incluye ninguna pĆ”gina" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Escalado de pĆ”gina:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Encoger a un Ć”rea imprimible" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Ajustar a un Ć”rea imprimible" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escalar las pĆ”ginas del documento para ajustarlas a la pĆ”gina de impresiĆ³n " +"seleccionada. Seleccionar una de las siguientes:\n" +"\n" +"ā¢ Ā«NingunaĀ»: No se realiza escalado de pĆ”gina.\n" +"\n" +"ā¢ Ā«Encoger a un Ć”rea imprimibleĀ»: Las pĆ”ginas del documento mĆ”s grandes que " +"el Ć”rea de impresiĆ³n se reducen para ajustarse al Ć”rea de impresiĆ³n de " +"pĆ”gina de la impresora.\n" +"\n" +"ā¢ Ā«Ajustar a un Ć”rea imprimibleĀ»: Las pĆ”ginas del documento se aumentan o " +"reducen segĆŗn se requiera para ajustarse al Ć”rea de impresiĆ³n de pĆ”gina de " +"la impresora.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Autorotar y centrar" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Rotar la orientaciĆ³n de impresiĆ³n de pĆ”gina de cada pĆ”gina para que coincida " +"con cada pĆ”gina del documento. Las pĆ”ginas del documento se centrarĆ”n en la " +"pĆ”gina de impresiĆ³n." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" +"Seleccionar el tamaƱo de pĆ”gina usando tamaƱos de pĆ”ginas de documentos" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Cuando estĆ” activado, cada pĆ”gina se imprimirĆ” en el mismo tamaƱo de papel " +"que la pĆ”gina del documento." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "GestiĆ³n de pĆ”ginas" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "FallĆ³ al imprimir la pĆ”gina %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Desplazar arriba" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Desplazar abajo" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Desplaza la vista arriba" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Desplaza la vista abajo" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Vista de documento" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Saltar a la pĆ”gina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fin de la presentaciĆ³n. Pulse para salir." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ir a la primera pĆ”gina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ir a la pĆ”gina anterior" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ir a la pĆ”gina siguiente" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ir a la Ćŗltima pĆ”gina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ir a la pĆ”gina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Buscar" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ir a la pĆ”gina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ir a %s en el archivo Ā«%sĀ»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ir al archivo Ā«%sĀ»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Lanzar %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Buscar:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Buscar _anterior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Buscar la apariciĆ³n anterior de la cadena" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Buscar _siguiente" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Buscar la siguiente apariciĆ³n de la cadena" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Coi_ncidir con capitalizaciĆ³n" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Conmutar bĆŗsqueda discriminando capitalizaciĆ³n" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Icono:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Nota" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Comentario" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Clave" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Ayuda" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "PĆ”rrafo nuevo" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "PaĢrrafo" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Insertar" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cruz" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "CĆrculo" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Desconocido" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Propiedades de las anotaciones" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Color:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Estilo:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparente" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaca" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Estado inicial de la ventana:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Abierta" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Cerrada" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Ejecutar en modo presentaciĆ³n" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ContraseƱa para el documentos %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Convirtiendo %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d de %d documentos convertidos" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Convirtiendo metadatos" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"El formato de metadatos usado por Evince ha cambiado y por ello necesita " +"migrarse. Si la migraciĆ³n se cancela, no funcionarĆ” el almacenamiento de los " +"metadatos." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Abrir un documento recientemente usado" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Este documento estĆ” bloqueado y sĆ³lo puede leerse introduciendo la " +"contraseƱa correcta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Desbloquear documento" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Introduzca la contraseƱa" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Se requiere una contraseƱa" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"El documento Ā«%sĀ» estĆ” bloqueado y requiere una contraseƱa antes de que pueda " +"abrirse." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ContraseƱa:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Olvidar la contraseƱa _inmediatamente" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_Recordar contraseƱa para esta sesiĆ³n" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Recordar para _siempre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Propiedades" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "TipografĆas" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licencia del documento" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "TipografĆa" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Obteniendo informaciĆ³n tipogrĆ”ficaā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "TĆ©rminos de uso" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Texto de la licencia" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "MĆ”s informaciĆ³n" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Anotaciones" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Texto" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "AƱadir anotaciĆ³n de texto" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "AnĢadir" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "El documento no contiene ninguna anotaciĆ³n" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "PĆ”gina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Adjuntos" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Capas" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimirā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndice" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ”gina %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "PĆ”gina %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "El documento no contiene ninguna pĆ”gina" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "El documento sĆ³lo contiene pĆ”ginas vacĆas" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "No se pudo abrir el documento" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Cargando documento desde Ā«%sĀ»" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Descargando documento (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "FallĆ³ al cargar el archivo remoto." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Recargando el documento desde %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "FallĆ³ al recargar el documento." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Abrir un documento" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Guardando el documento en %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Guardando el adjunto en %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Guardando la imagen en %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "El archivo no se pudo guardar como Ā«%sĀ»." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Subiendo el documento (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Subiendo el adjunto (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Subiendo la imagen (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Guardar una copia" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d trabajo pendiente en cola" +msgstr[1] "%d trabajos pendientes en cola" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Imprimiendo trabajo Ā«%sĀ»" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"El documento contiene campos de formulario que se han rellenado. Los cambios " +"se perderĆ”n permanentemente si no guarda una copia." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"El documento contiene anotaciones nuevas o modificadas. Los cambios se " +"perderĆ”n automĆ”ticamente si no guarda una copia." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ĀæGuardar una copia del documento Ā«%sĀ» antes de cerrar?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Cerrar _sin guardar" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Guardar una _copia" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"ĀæEsperar hasta que termine el trabajo de impresiĆ³n Ā«%sĀ» antes de cerrar?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Existen %d trabajos de impresiĆ³n activos. ĀæDesea esperar a que termine la " +"impresora antes de cerrar?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Si cierra la ventana, los trabajos de impresiĆ³n pendientes no se imprimirĆ”n." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Cancelar la _impresiĆ³n y cerrar" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Cerrar _despuĆ©s de imprimir" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Editor de la barra de herramientas" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Hubo un error al mostrar la ayuda" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visor de documentos\n" +"Usando %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince es software libre; puede redistribuirlo y/o modificarlo bajo los " +"tĆ©rminos de la Licencia PĆŗblica General de GNU publicada por la Free " +"Software Foundation; ya sea en su versiĆ³n 2 Ć³ (a su criterio)en una versiĆ³n " +"posterior.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince se distribuye con la esperanza que sea Ćŗtil, pero SIN GARANTĆA; sin " +"ninguna garantĆa implĆcita de COMERCIALIDAD o IDONEIDAD PARA UN FIN " +"DETERMINADO. Mire la Licencia General GNU para mĆ”s detalles.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"DeberĆa haber recibido una copia de la Licencia PĆŗblica General de GNU junto " +"con Evince; si no es el caso, escriba a la Free Software Foundation, Inc., " +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE. UU.\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Los autores de Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Jorge GonzĆ”lez <jorgegonz@svn.mate.org>, 2007-2010\n" +"Francisco Javier F. Serrador <serrador@gnome.org>, 2005-2006\n" +"Daniel FernĆ”ndez <dfdez@ya.com>, 2005\n" +"Antonio Ognio <gnrfan@gnrfan.org>, 2004-2005" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d encontrado en esta pĆ”gina" +msgstr[1] "%d encontrados en esta pĆ”gina" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "No encontrado" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% restante para buscar" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Archivo" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Editar" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Ver" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Ir" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "Ay_uda" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Abrirā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Abre un documento existente" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "A_brir una copia" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Abre una copia del documento actual en una ventana nueva" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "Guardar una _copiaā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Guarda una copia del documento actual" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Imprimirā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "_Propiedades" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Seleccionar _todo" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Buscarā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Busca una palabra o frase en el documento" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "Barra de _herramientas" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Rotar a la _izquierda" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Rotar a la _derecha" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Guardar los ajustes actuales como pre_determinados" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "Re_cargar" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Recarga el documento" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Autode_splazar" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_Primera pĆ”gina" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Ir a la primera pĆ”gina" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "Ć_ltima pĆ”gina" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Ir a la Ćŗltima pĆ”gina" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "Ćnd_ice" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "Acerca _de" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Salir de Ā«Pantalla completaĀ»" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Deja el modo a pantalla completa" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Iniciar presentaciĆ³n" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Iniciar una presentaciĆ³n" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "Barra de _herramientas" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Muestra u oculta la barra de herramientas" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Panel _lateral" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Muestra o oculta el panel lateral" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "C_ontinuo" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Mostrar el documento completo" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Mostrar dos pĆ”ginas a la vez" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "Pantalla _completa" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Expandir la ventana hasta llenar la pantalla" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_PresentaciĆ³n" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Ver el documento como una presentaciĆ³n" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "Colores _invertidos" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Mostrar el contenido de la pĆ”gina invirtiendo los colores" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Abrir enlace" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_Ir" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Abrir en una _ventana nueva" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Copiar direcciĆ³n del enlace" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "Guardar imagen _comoā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Copiar _imagen" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Propiedades de la anotaciĆ³nā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Abrir adjuntos" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_Guardar adjunto comoā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "AmpliaciĆ³n" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Ajustar el nivel de ampliaciĆ³n" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "NavegaciĆ³n" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "AtrĆ”s" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Moverse a travĆ©s de las pĆ”ginas visitadas" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Siguiente" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Ampliar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Reducir" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Ajustar anchura" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "No se pudo lanzar la aplicaciĆ³n externa." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "No se pudo abrir el enlace externo" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "No se pudo encontrar el formato apropiado para guardar la imagen" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "La imagen no se pudo guardar." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Guardar imagen" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "No se pudo abrir el adjunto" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "El adjunto no se pudo guardar." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Guardar adjuntos" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Se requiere una contraseƱa" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Por extensiĆ³n" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visor de documentos de Mate" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "La etiqueta de pĆ”gina del documento que mostrar." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PĆGINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "El nĆŗmero de pĆ”gina del documento que mostrar." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NĆMERO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Ejecutar Evince en modo pantalla completa" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Ejecutar Evince en modo presentaciĆ³n" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Ejecutar Evince como un previsualizador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "La palabra o frase que buscar en el documento" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CADENA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ARCHIVOā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opciones booleanas disponibles, Ā«trueĀ» activa las miniaturas y Ā«falseĀ» " +"desactiva la creaciĆ³n de miniaturas nuevas" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Activar miniaturas de documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Comando para sacar las miniaturas para los documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Comando vĆ”lido y argumentos para el miniaturizador de documentos PDF. " +"Consulte la documentaciĆ³n para el miniaturizador de Caja para mĆ”s " +"informaciĆ³n." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Config_uraciĆ³n de pĆ”ginaā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Configurar los ajustes de pĆ”gina para impresiĆ³n" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "El documento DJVU tiene un formato incorrecto" + +#~ msgid "Print..." +#~ msgstr "Imprimirā¦" + +#~ msgid "_Save a Copy..." +#~ msgstr "Guardar una _copiaā¦" + +#~ msgid "_Print..." +#~ msgstr "_Imprimirā¦" + +#~ msgid "_Find..." +#~ msgstr "_Buscarā¦" + +#~ msgid "Search string" +#~ msgstr "Buscar cadena" + +#~ msgid "The name of the string to be found" +#~ msgstr "Nombre de la cadena a ser buscada" + +#~ msgid "Case sensitive" +#~ msgstr "Coincidir con capitalizaciĆ³n" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "VERDADERO si se desea coincidir con capitalizaciĆ³n" + +#~ msgid "Highlight color" +#~ msgstr "Color de resaltado" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Color de resaltado para todas las coincidencias" + +#~ msgid "Current color" +#~ msgstr "Color actual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Color de resaltado para la coincidencia actual" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "No se pudo crear el archivo Ā«%sĀ»: %s" + +#~ msgid "Recover previous documents?" +#~ msgstr "ĀæRecuperar los documentos anteriores?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince parece haber salido de forma inesperada la Ćŗltima vez que se " +#~ "ejecutĆ³. Puede recuperar los documentos que estaban abiertos." + +#~ msgid "_Don't Recover" +#~ msgstr "_No recuperar" + +#~ msgid "_Recover" +#~ msgstr "_Recuperar" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaciĆ³n de cuelgue" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "No se pudo crear el enlace simbĆ³lico Ā«%sĀ»: " + +#~ msgid "Cannot open a copy." +#~ msgstr "No se puede abrir una copia." + +#~ msgid "" +#~ "Internal error configuring the command for decompressing the comic book " +#~ "file" +#~ msgstr "" +#~ "Error interno al configurar el comando para descomprimir el archivo de " +#~ "cĆ³mic" + +#~| msgid "Failed to create a directory on the \t\t\t\ttemporary directory." +#~ msgid "Failed to create a directory %s in the temporary directory: %s" +#~ msgstr "FallĆ³ al crear el directorio %s en el directorio temporal: %s" + +#~ msgid "Co_nnect" +#~ msgstr "Co_nectar" + +#~ msgid "Connect _anonymously" +#~ msgstr "Conectar de forma _anĆ³nima" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Conectar como u_suario:" + +#~ msgid "_Username:" +#~ msgstr "_Usuario:" + +#~ msgid "_Domain:" +#~ msgstr "_Dominio:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Olvidar la contraseƱa inmediatamente" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Recordar contraseƱa para esta sesiĆ³n" + +#~ msgid "_Remember forever" +#~ msgstr "_Recordar para siempre" + +#~ msgid "File not available" +#~ msgstr "Archivo no disponible" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Los archivos remotos no estĆ”n soportados" + +#~ msgid "Find Previous" +#~ msgstr "Buscar anterior" + +#~ msgid "Find Next" +#~ msgstr "Buscar siguiente" diff --git a/po/et.po b/po/et.po new file mode 100644 index 00000000..43007082 --- /dev/null +++ b/po/et.po @@ -0,0 +1,1344 @@ +# Evince'i eesti keele tƵlge. +# Estonian translation of Evince. +# +# Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2007ā2010 The MATE Project +# This file is distributed under the same license as the evince package. +# +# Sven Sapelson <sven.sapelson gmail com>, 2005. +# Ivar Smolin <okul linux ee>, 2005ā2010. +# Priit Laes <amd store20 com>, 2005ā2007. +# Mattias PƵldaru <mahfiaz gmail com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince 2.32\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-08-19 07:59+0000\n" +"PO-Revision-Date: 2010-09-23 10:21+0300\n" +"Last-Translator: Ivar Smolin <okul@linux.ee>\n" +"Language-Team: Estonian <mate-et@linux.ee>\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" + +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "TƵrge koomiksiraamatu lahtipakkimiseks kƤsu ā%sā kƤivitamisel: %s" + +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Koomiksiraamatu lahtipakkimise kƤsk ā%sā lƵpetas tƵrkega." + +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "KƤsk ā%sā ei lƵpetanud normaalselt." + +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Pole koomiksiraamatu MIME-tĆ¼Ć¼p: %s" + +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Seda liiki koomiksiraamatu lahtipakkimiseks ei leitud Ć¼htegi sobivat kƤsku" + +msgid "Unknown MIME Type" +msgstr "Tundmatu MIME-tĆ¼Ć¼p" + +msgid "File corrupted" +msgstr "Fail on rikutud" + +msgid "No files in archive" +msgstr "Arhiivis pole faile" + +#, c-format +msgid "No images found in archive %s" +msgstr "Arhiivist %s pilte ei leitud" + +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā kustutamisel tekkis viga." + +#, c-format +msgid "Error %s" +msgstr "Viga %s" + +msgid "Comic Books" +msgstr "Koomiksiraamatud" + +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokument pole korrektses vormingus" + +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"See dokument koosneb mitmest failist, paraku pole vƵimalik mƵnele nendest " +"failidest ligi pƤƤseda." + +msgid "DjVu Documents" +msgstr "DjVu-dokumendid" + +msgid "DVI document has incorrect format" +msgstr "DVI-dokument pole korrektses vormingus" + +msgid "DVI Documents" +msgstr "DVI-dokumendid" + +msgid "This work is in the Public Domain" +msgstr "See tƶƶ on avalik omand (Public Domain)" + +#. translators: this is the document security state +msgid "Yes" +msgstr "Jah" + +#. translators: this is the document security state +msgid "No" +msgstr "Ei" + +msgid "Type 1" +msgstr "TĆ¼Ć¼p 1" + +msgid "Type 1C" +msgstr "TĆ¼Ć¼p 1C" + +msgid "Type 3" +msgstr "TĆ¼Ć¼p 3" + +msgid "TrueType" +msgstr "TrueType" + +msgid "Type 1 (CID)" +msgstr "TĆ¼Ć¼p 1 (CID)" + +msgid "Type 1C (CID)" +msgstr "TĆ¼Ć¼p 1C (CID)" + +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +msgid "Unknown font type" +msgstr "Tundmatu kirjatĆ¼Ć¼p" + +msgid "No name" +msgstr "Nimi puudub" + +msgid "Embedded subset" +msgstr "PƵimitud alamhulk" + +msgid "Embedded" +msgstr "PƵimitud" + +msgid "Not embedded" +msgstr "PƵimimata" + +msgid "PDF Documents" +msgstr "PDF-dokumendid" + +msgid "Invalid document" +msgstr "Vigane dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +msgid "Impress Slides" +msgstr "Impress'i slaidid" + +msgid "No error" +msgstr "Vigu ei esinenud" + +msgid "Not enough memory" +msgstr "Pole piisavalt mƤlu" + +msgid "Cannot find ZIP signature" +msgstr "ZIP-signatuuri pole vƵimalik leida" + +msgid "Invalid ZIP file" +msgstr "Vigane ZIP-fail" + +# Ƥkki peaks olema: Mitmest failist koosnevad zip'id pole toetatud +msgid "Multi file ZIPs are not supported" +msgstr "Mitut faili sisaldavad ZIP-id pole toetatud" + +msgid "Cannot open the file" +msgstr "Faili pole vƵimalik avada" + +msgid "Cannot read data from file" +msgstr "Andmeid pole vƵimalik failist lugeda" + +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP-arhiivist ei leitud faili" + +msgid "Unknown error" +msgstr "Tundmatu viga" + +#, c-format +msgid "Failed to load document ā%sā" +msgstr "TƵrge dokumendi ā%sā laadimisel" + +#, c-format +msgid "Failed to save document ā%sā" +msgstr "TƵrge dokumendi ā%sā salvestamisel" + +msgid "PostScript Documents" +msgstr "PostScript-dokumendid" + +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Manust ā%sā pole vƵimalik salvestada: %s" + +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Manust ā%sā pole vƵimalik avada: %s" + +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Manust ā%sā pole vƵimalik avada" + +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "FailitĆ¼Ć¼p %s (%s) pole toetatud" + +msgid "All Documents" +msgstr "KƵik dokumendid" + +msgid "All Files" +msgstr "KƵik failid" + +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "TƵrge ajutise faili loomisel: %s" + +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "TƵrge ajutise kataloogi loomisel: %s" + +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fail pole korrektne .desktop fail" + +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Tƶƶlauafaili tundmatu versioon '%s'" + +#, c-format +msgid "Starting %s" +msgstr "KƤivitamine: %s" + +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Rakendus ei luba kƤsureadokumente" + +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tundmatu kƤivitusvalik: %d" + +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Dokumendi URI-sid pole vƵimalik 'Liik=Viit' tƶƶlauakirjetele edasi anda" + +#, c-format +msgid "Not a launchable item" +msgstr "Pole kƤivitatav kirje" + +msgid "Disable connection to session manager" +msgstr "Seansihalduriga Ć¼hendumise keelamine" + +msgid "Specify file containing saved configuration" +msgstr "Salvestatud seadistusi sisaldava faili mƤƤramine" + +msgid "FILE" +msgstr "FAIL" + +msgid "Specify session management ID" +msgstr "Seansihalduse ID mƤƤramine" + +msgid "ID" +msgstr "ID" + +msgid "Session management options:" +msgstr "Seansihalduse valikud:" + +msgid "Show session management options" +msgstr "Seansihalduse valikute nƤitamine" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#, c-format +msgid "Show ā_%sā" +msgstr "NƤita ā_%sā" + +msgid "_Move on Toolbar" +msgstr "_Liiguta tƶƶriistaribal" + +msgid "Move the selected item on the toolbar" +msgstr "Valitud kirje liigutamine tƶƶriistaribal" + +msgid "_Remove from Toolbar" +msgstr "_Eemalda tƶƶriistaribalt" + +msgid "Remove the selected item from the toolbar" +msgstr "Valitud kirje eemaldamine tƶƶriistaribalt" + +msgid "_Delete Toolbar" +msgstr "_Kustuta tƶƶriistariba" + +msgid "Remove the selected toolbar" +msgstr "Valitud tƶƶriistariba eemaldamine" + +msgid "Separator" +msgstr "Eraldaja" + +#. translators: this is the label for toolbar button +msgid "Best Fit" +msgstr "Parim sobitus" + +msgid "Fit Page Width" +msgstr "Sobitus laiuse jƤrgi" + +msgid "50%" +msgstr "50%" + +msgid "70%" +msgstr "70%" + +msgid "85%" +msgstr "85%" + +msgid "100%" +msgstr "100%" + +msgid "125%" +msgstr "125%" + +msgid "150%" +msgstr "150%" + +msgid "175%" +msgstr "175%" + +msgid "200%" +msgstr "200%" + +msgid "300%" +msgstr "300%" + +msgid "400%" +msgstr "400%" + +msgid "800%" +msgstr "800%" + +msgid "1600%" +msgstr "1600%" + +msgid "3200%" +msgstr "3200%" + +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#, c-format +msgid "Document Viewer" +msgstr "DokumendinƤitaja" + +msgid "View multi-page documents" +msgstr "MitmelehekĆ¼ljeliste dokumentide vaatamine" + +msgid "Override document restrictions" +msgstr "Dokumendi piirangute eiramine" + +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Dokumendi piirangute (nƤiteks kopeerimis- ja printimispiirangud) eiramine." + +msgid "Delete the temporary file" +msgstr "Ajutise faili kustutamine" + +msgid "Print settings file" +msgstr "PrinterisƤtete fail" + +msgid "MATE Document Previewer" +msgstr "MATE dokumentide eelvaatlemine" + +msgid "Failed to print document" +msgstr "TƵrge dokumendi printimisel" + +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Valitud printerit '%s' pole vƵimalik leida" + +#. Go menu +msgid "_Previous Page" +msgstr "_Eelmine lehekĆ¼lg" + +msgid "Go to the previous page" +msgstr "Eelmisele lehekĆ¼ljele liikumine" + +msgid "_Next Page" +msgstr "_JƤrgmine lehekĆ¼lg" + +msgid "Go to the next page" +msgstr "JƤrgmisele lehekĆ¼ljele liikumine" + +msgid "Enlarge the document" +msgstr "Dokumendi suurendamine" + +msgid "Shrink the document" +msgstr "Dokumendi kahandamine" + +msgid "Print" +msgstr "Prindi" + +msgid "Print this document" +msgstr "Selle dokumendi printimine" + +msgid "_Best Fit" +msgstr "Par_im sobitus" + +msgid "Make the current document fill the window" +msgstr "Dokumendi lehekĆ¼lje mahutamine aknasse" + +msgid "Fit Page _Width" +msgstr "Sobitus _laiuse jƤrgi" + +msgid "Make the current document fill the window width" +msgstr "Dokumendi laiuse sobitamine akna laiusega" + +msgid "Page" +msgstr "LehekĆ¼lg" + +msgid "Select Page" +msgstr "LehekĆ¼lje valimine" + +msgid "Document" +msgstr "Dokument" + +msgid "Title:" +msgstr "Pealkiri:" + +msgid "Location:" +msgstr "Asukoht:" + +msgid "Subject:" +msgstr "Teema:" + +msgid "Author:" +msgstr "Autor:" + +msgid "Keywords:" +msgstr "MƤrksƵnad:" + +msgid "Producer:" +msgstr "Tootja" + +msgid "Creator:" +msgstr "Looja:" + +msgid "Created:" +msgstr "Loodud:" + +msgid "Modified:" +msgstr "Muudetud:" + +msgid "Number of Pages:" +msgstr "LehekĆ¼lgede arv:" + +msgid "Optimized:" +msgstr "Optimeering:" + +msgid "Format:" +msgstr "Vorming:" + +msgid "Security:" +msgstr "Turvalisus:" + +msgid "Paper Size:" +msgstr "Paberi suurus:" + +msgid "None" +msgstr "Puudub" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +msgid "default:mm" +msgstr "default:mm" + +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f tolli" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, pĆ¼stpaigutus (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, rƵhtpaigutus (%s)" + +#, c-format +msgid "(%d of %d)" +msgstr "(%d %d-st)" + +#, c-format +msgid "of %d" +msgstr "%d-st" + +#. Create tree view +msgid "Loadingā¦" +msgstr "Laadimineā¦" + +#. Initial state +msgid "Preparing to printā¦" +msgstr "Printimise ettevalmistamineā¦" + +msgid "Finishingā¦" +msgstr "LƵpetamineā¦" + +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "LehekĆ¼lje %d/%d printimineā¦" + +msgid "Printing is not supported on this printer." +msgstr "Selle printeriga printimine pole toetatud." + +msgid "Invalid page selection" +msgstr "Sobimatu lehekĆ¼lgede valik" + +msgid "Warning" +msgstr "Hoiatus" + +msgid "Your print range selection does not include any pages" +msgstr "Sinu mƤƤratud printimisvahemik ei sisalda Ć¼htegi lehekĆ¼lge" + +msgid "Page Scaling:" +msgstr "LehekĆ¼lje mastaapimine:" + +msgid "Shrink to Printable Area" +msgstr "VƤhenda prindialale" + +msgid "Fit to Printable Area" +msgstr "TƤida prindiala" + +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Dokumendi lehtede mastaapimine, et need mahuksid paberile. Vali Ć¼ks " +"jƤrgnevaist:\n" +"\n" +"ā¢ \"Puudub\": mitte mingit mastaapimist ei teostata.\n" +"\n" +"ā¢ \"VƤhenda prindialale\": prindialast suuremaid dokumendilehti vƤhendatakse " +"eesmƤrgiga mahutada need printerilehe prindialale.\n" +"\n" +"ā¢ \"TƤida prindiala\": vastavalt vajadusele dokumendi lehti kas " +"suurendatakse vƵi vƤhendatakse nii, et need tƤidaks kogu printerilehe " +"prindiala.\n" + +msgid "Auto Rotate and Center" +msgstr "Automaatne pƶƶramine ja keskele paigutamine" + +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Igal prinditaval lehel pƶƶratakse paberi suund samaks dokumendi lehe " +"suunaga. Dokumendi leht paigutatakse paberi keskele." + +msgid "Select page size using document page size" +msgstr "Paberi formaat valitakse vastavalt dokumendi lehe suurusele" + +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Kui lubatud, prinditakse kƵik lehed sama suurele paberile, kui on dokumendis." + +msgid "Page Handling" +msgstr "LehekĆ¼lje kƤsitlemine" + +#, c-format +msgid "Failed to print page %d: %s" +msgstr "TƵrge lehekĆ¼lje %d printimisel: %s" + +msgid "Scroll Up" +msgstr "Keri Ć¼les" + +msgid "Scroll Down" +msgstr "Keri alla" + +msgid "Scroll View Up" +msgstr "Vaate Ć¼leskerimine" + +msgid "Scroll View Down" +msgstr "Vaate allakerimine" + +msgid "Document View" +msgstr "Dokumendivaade" + +msgid "Jump to page:" +msgstr "HĆ¼ppa lehekĆ¼ljele:" + +msgid "End of presentation. Click to exit." +msgstr "Esitluse lƵpp. VƤljumiseks klƵpsa." + +msgid "Go to first page" +msgstr "Esimesele lehekĆ¼ljele liikumine" + +msgid "Go to previous page" +msgstr "Eelmisele lehekĆ¼ljele liikumine" + +msgid "Go to next page" +msgstr "JƤrgmisele lehekĆ¼ljele liikumine" + +msgid "Go to last page" +msgstr "Viimasele lehekĆ¼ljele liikumine" + +msgid "Go to page" +msgstr "Liikumine lehekĆ¼ljele" + +msgid "Find" +msgstr "Otsing" + +#, c-format +msgid "Go to page %s" +msgstr "Liikumine lehekĆ¼ljele %s" + +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Liikumine asukohta %s failis ā%sā" + +#, c-format +msgid "Go to file ā%sā" +msgstr "Liikumine failile ā%sā" + +#, c-format +msgid "Launch %s" +msgstr "KƤivita %s" + +msgid "Find:" +msgstr "Leia:" + +msgid "Find Pre_vious" +msgstr "Leia _eelmine" + +msgid "Find previous occurrence of the search string" +msgstr "Eelmise sarnase sƵna vƵi lause leidmine" + +msgid "Find Ne_xt" +msgstr "Leia _jƤrgmine" + +msgid "Find next occurrence of the search string" +msgstr "JƤrgmise sarnase sƵna vƵi lause leidmine" + +msgid "C_ase Sensitive" +msgstr "_TƵstutundlik" + +msgid "Toggle case sensitive search" +msgstr "TƵstutundliku otsingu sisse- ja vƤljalĆ¼litamine" + +msgid "Icon:" +msgstr "Ikoon:" + +msgid "Note" +msgstr "MƤrkus" + +msgid "Comment" +msgstr "Kommentaar" + +msgid "Key" +msgstr "VƵti" + +msgid "Help" +msgstr "Abi" + +msgid "New Paragraph" +msgstr "Uus lƵik" + +msgid "Paragraph" +msgstr "LƵik" + +msgid "Insert" +msgstr "Lisamine" + +msgid "Cross" +msgstr "Rist" + +msgid "Circle" +msgstr "Ring" + +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Annotation Properties" +msgstr "Kommentaari omadused" + +msgid "Color:" +msgstr "VƤrvus:" + +msgid "Style:" +msgstr "Laad:" + +msgid "Transparent" +msgstr "LƤbipaistev" + +msgid "Opaque" +msgstr "LƤbipaistmatu" + +msgid "Initial window state:" +msgstr "Akna lƤhteolek:" + +msgid "Open" +msgstr "Avamine" + +msgid "Close" +msgstr "Sulgemine" + +msgid "Running in presentation mode" +msgstr "Evince kƤivitamine esitlusrežiimis" + +#, c-format +msgid "Password for document %s" +msgstr "Dokumendi %s parool" + +#, c-format +msgid "Converting %s" +msgstr "Teisendamine: %s" + +#, c-format +msgid "%d of %d documents converted" +msgstr "%d/%d dokumenti teisendatud" + +msgid "Converting metadata" +msgstr "Metaandmete teisendamine" + +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evince poolt kasutatavate metaandmete vorming on muutunud ja vanad andmed " +"tuleb teisendada uude vormingusse. Teisendamise katkestamise korral lakkab " +"metaandmete hoidla tƶƶtamast." + +msgid "Open a recently used document" +msgstr "Hiljuti kasutatud dokumendi avamine" + +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "See dokument on lukustatud, avamiseks tuleb sisestada Ƶige parool." + +msgid "_Unlock Document" +msgstr "_Ava dokument" + +msgid "Enter password" +msgstr "Parooli sisestamine" + +msgid "Password required" +msgstr "Parool on vajalik" + +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokument ā%sā on lukustatud ning selle avamiseks on tarvis parooli." + +msgid "_Password:" +msgstr "_Parool:" + +msgid "Forget password _immediately" +msgstr "_Unusta parool koheselt" + +msgid "Remember password until you _log out" +msgstr "JƤta parool kuni _vƤljalogimiseni meelde" + +msgid "Remember _forever" +msgstr "JƤta alat_iseks meelde" + +msgid "Properties" +msgstr "Omadused" + +msgid "General" +msgstr "Ćldine" + +msgid "Fonts" +msgstr "KirjatĆ¼Ć¼bid" + +msgid "Document License" +msgstr "Dokumendi litsents" + +msgid "Font" +msgstr "KirjatĆ¼Ć¼p" + +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Kasutatud kirjatĆ¼Ć¼pide kohta andmete kogumineā¦ %3d%%" + +msgid "Usage terms" +msgstr "Kasutustingimused" + +msgid "Text License" +msgstr "Teksti litsents" + +msgid "Further Information" +msgstr "Lisateave" + +msgid "List" +msgstr "Nimekiri" + +msgid "Annotations" +msgstr "Kommentaarid" + +msgid "Text" +msgstr "Tekst" + +msgid "Add text annotation" +msgstr "Tekstikommentaari lisamine" + +msgid "Add" +msgstr "Lisamine" + +msgid "Document contains no annotations" +msgstr "Dokumendis pole Ć¼htegi kommentaari" + +#, c-format +msgid "Page %d" +msgstr "LehekĆ¼lg %d" + +msgid "Attachments" +msgstr "Manused" + +msgid "Layers" +msgstr "Kihid" + +msgid "Printā¦" +msgstr "Printimineā¦" + +msgid "Index" +msgstr "Sisukord" + +msgid "Thumbnails" +msgstr "Pisipildid" + +#, c-format +msgid "Page %s ā %s" +msgstr "LehekĆ¼lg %s ā %s" + +#, c-format +msgid "Page %s" +msgstr "LehekĆ¼lg %s" + +msgid "The document contains no pages" +msgstr "Dokumendis pole Ć¼htegi lehekĆ¼lge" + +msgid "The document contains only empty pages" +msgstr "Dokument sisaldab ainult tĆ¼hje lehekĆ¼lgi" + +msgid "Unable to open document" +msgstr "Dokumenti pole vƵimalik avada" + +#, c-format +msgid "Loading document from ā%sā" +msgstr "Dokumendi laadimine asukohast ā%sā" + +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Dokumendi allalaadimine (%d%%)" + +msgid "Failed to load remote file." +msgstr "TƵrge kaugfaili laadimisel." + +#, c-format +msgid "Reloading document from %s" +msgstr "Dokumendi uuestilaadimine asukohast %s" + +msgid "Failed to reload document." +msgstr "TƵrge dokumendi uuestilaadimisel." + +msgid "Open Document" +msgstr "Dokumendi avamine" + +#, c-format +msgid "Saving document to %s" +msgstr "Dokumendi salvestamine asukohale %s" + +#, c-format +msgid "Saving attachment to %s" +msgstr "Manuse salvestamine asukohale %s" + +#, c-format +msgid "Saving image to %s" +msgstr "Pildi salvestamine kataloogi %s" + +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Faili pole vƵimalik ā%sā-na salvestada." + +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Dokumendi Ć¼leslaadimine (%d%%)" + +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Manuse Ć¼leslaadimine (%d%%)" + +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Pildi Ć¼leslaadimine (%d%%)" + +msgid "Save a Copy" +msgstr "Koopia salvestamine" + +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d tƶƶ on ootel" +msgstr[1] "%d tƶƶd on ootel" + +#, c-format +msgid "Printing job ā%sā" +msgstr "Printimistƶƶ ā%sā" + +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokument sisaldab tƤidetud vormivƤlju. Kui sa ei salvesta koopiat, siis " +"lƤhevad muudatused jƤƤdavalt kaotsi." + +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokument sisaldab uusi vƵi muudetud kommentaare. Kui sa ei salvesta koopiat, " +"siis lƤhevad muudatused jƤƤdavalt kaotsi." + +#, c-format +#| msgid "Wait until print job ā%sā finishes before closing?" +msgid "Save a copy of document ā%sā before closing?" +msgstr "Kas salvestada enne sulgemist dokumendist ā%sā koopia?" + +msgid "Close _without Saving" +msgstr "Sulge _ilma salvestamata" + +#| msgid "Save a Copy" +msgid "Save a _Copy" +msgstr "Salvesta _koopia" + +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Kas oodata enne sulgemist, kuni printimistƶƶ ā%sā lƵpetab?" + +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Hetkel on %d aktiivset printimistƶƶd. Kas oodata enne sulgemist, kuni " +"printimine lƵpeb?" + +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Kui sa akna sulged, siis jƤƤvad ootelolevad printimistƶƶd printimata." + +msgid "Cancel _print and Close" +msgstr "_Katkesta printimine ja sulge" + +msgid "Close _after Printing" +msgstr "Sulge _pƤrast printimist" + +msgid "Toolbar Editor" +msgstr "Tƶƶriistariba redaktor" + +msgid "There was an error displaying help" +msgstr "Abiteabe kuvamisel tekkis viga" + +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"DokumendinƤitaja.\n" +"Kasutusel %s (%s)" + +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince on vaba tarkvara. Te vƵite seda edasi levitada ja/vƵi muuta vastavalt " +"GNU Ćldise Avaliku Litsentsi tingimustele, nagu need on Vaba Tarkvara Fondi " +"poolt avaldatud; kas Litsentsi versioon number 2 vƵi (vastavalt Teie " +"valikule) Ć¼kskƵik milline hilisem versioon.\n" + +msgid "" +"Evince 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.\n" +msgstr "" +"Evince'i levitatakse lootuses, et see on kasulik, kuid ILMA IGASUGUSE " +"GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDIGARANTIITA vƵi SOBIVUSELE " +"TEATUD KINDLAKS EESMĆRGIKS. Ćksikasjade suhtes vaata GNU Ćldist Avalikku " +"Litsentsi.\n" + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Te peaks olema saanud GNU Ćldise Avaliku Litsentsi koopia koos Evince'ga; " +"kui ei, siis vƵtke Ć¼hendust Free Software Foundation'iga, 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +msgid "Evince" +msgstr "Evince" + +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince'i autorid" + +msgid "translator-credits" +msgstr "" +"Sven Sapelson <sven.sapelson gmail com>, 2005.\n" +"Ivar Smolin <okul linux ee>, 2005ā2010.\n" +"Priit Laes <amd store20 com>, 2005ā2007.\n" +"Mattias PƵldaru <mahfiaz gmail com>, 2010." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d vastus sel lehekĆ¼ljel" +msgstr[1] "%d vastust sel lehekĆ¼ljel" + +msgid "Not found" +msgstr "Ei leitud" + +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% otsingu lƵpuni" + +msgid "_File" +msgstr "_Fail" + +msgid "_Edit" +msgstr "_Redaktor" + +msgid "_View" +msgstr "_Vaade" + +msgid "_Go" +msgstr "_Liikumine" + +msgid "_Help" +msgstr "A_bi" + +#. File menu +msgid "_Openā¦" +msgstr "_Avaā¦" + +msgid "Open an existing document" +msgstr "Olemasoleva dokumendi avamine" + +msgid "Op_en a Copy" +msgstr "Ava _koopia" + +msgid "Open a copy of the current document in a new window" +msgstr "KƤesolevast dokumendist koopia avamine uuest aknas" + +msgid "_Save a Copyā¦" +msgstr "Sa_lvesta koopiaā¦" + +msgid "Save a copy of the current document" +msgstr "KƤesolevast dokumendist koopia salvestamine" + +msgid "_Printā¦" +msgstr "_Prindiā¦" + +msgid "P_roperties" +msgstr "_Omadused" + +msgid "Select _All" +msgstr "V_ali kƵik" + +msgid "_Findā¦" +msgstr "_Leiaā¦" + +msgid "Find a word or phrase in the document" +msgstr "Dokumendist sƵna vƵi fraasi leidmine" + +msgid "T_oolbar" +msgstr "_Tƶƶriistariba" + +msgid "Rotate _Left" +msgstr "Pƶƶra _vasakule" + +msgid "Rotate _Right" +msgstr "Pƶƶra _paremale" + +msgid "Save Current Settings as _Default" +msgstr "Salvesta praegused sƤtted _vaikesƤtetena" + +msgid "_Reload" +msgstr "Laadi _uuesti" + +msgid "Reload the document" +msgstr "Dokumendi uuestilaadimine" + +msgid "Auto_scroll" +msgstr "Automaat_kerimine" + +msgid "_First Page" +msgstr "E_simene lehekĆ¼lg" + +msgid "Go to the first page" +msgstr "Esimesele lehekĆ¼ljele liikumine" + +msgid "_Last Page" +msgstr "_Viimane lehekĆ¼lg" + +msgid "Go to the last page" +msgstr "Viimasele lehekĆ¼ljele liikumine" + +#. Help menu +msgid "_Contents" +msgstr "_Sisu" + +msgid "_About" +msgstr "_Evince'ist lƤhemalt" + +#. Toolbar-only +msgid "Leave Fullscreen" +msgstr "VƤlju tƤisekraanvaatest" + +msgid "Leave fullscreen mode" +msgstr "TƤisekraanvaatest lahkumine" + +msgid "Start Presentation" +msgstr "Alusta esitlust" + +msgid "Start a presentation" +msgstr "Esitluse alustamine" + +#. View Menu +msgid "_Toolbar" +msgstr "_Tƶƶriistariba" + +msgid "Show or hide the toolbar" +msgstr "Tƶƶriistariba nƤitamine vƵi peitmine" + +msgid "Side _Pane" +msgstr "KĆ¼l_gpaan" + +msgid "Show or hide the side pane" +msgstr "KĆ¼lgpaani nƤitamine vƵi peitmine" + +msgid "_Continuous" +msgstr "JƤt_kuv" + +msgid "Show the entire document" +msgstr "Kogu dokumendi nƤitamine" + +msgid "_Dual" +msgstr "_Paaris" + +msgid "Show two pages at once" +msgstr "Kahe lehekĆ¼lje nƤitamine korraga" + +msgid "_Fullscreen" +msgstr "TƤisek_raan" + +msgid "Expand the window to fill the screen" +msgstr "Akna suurendamine kogu ekraani suuruseks" + +msgid "Pre_sentation" +msgstr "_Esitlus" + +msgid "Run document as a presentation" +msgstr "Dokumenti nƤitamine esitlusena" + +# kas siia vƵib kirjutada "Pƶƶratud vƤrvid?" +msgid "_Inverted Colors" +msgstr "Pƶƶratud vƤrvi_d" + +msgid "Show page contents with the colors inverted" +msgstr "Lehe sisu nƤitamine inverteeritud vƤrvides" + +#. Links +msgid "_Open Link" +msgstr "_Ava viit" + +msgid "_Go To" +msgstr "_Liigu" + +msgid "Open in New _Window" +msgstr "Ava _uues aknas" + +msgid "_Copy Link Address" +msgstr "_Kopeeri viida aadress" + +msgid "_Save Image Asā¦" +msgstr "Salvesta _pilt kuiā¦" + +msgid "Copy _Image" +msgstr "_Kopeeri pilt" + +msgid "Annotation Propertiesā¦" +msgstr "Kommentaari omadusedā¦" + +msgid "_Open Attachment" +msgstr "Ava _manus" + +msgid "_Save Attachment Asā¦" +msgstr "Salvesta manus _kuiā¦" + +msgid "Zoom" +msgstr "Suurendus" + +msgid "Adjust the zoom level" +msgstr "Muuda suurendusastet" + +msgid "Navigation" +msgstr "Ringiliikumine" + +msgid "Back" +msgstr "Tagasi" + +#. translators: this is the history action +msgid "Move across visited pages" +msgstr "Ćle kƵigi kĆ¼lastatud lehtede liikumine" + +#. translators: this is the label for toolbar button +msgid "Previous" +msgstr "Eelmine" + +#. translators: this is the label for toolbar button +msgid "Next" +msgstr "JƤrgmine" + +#. translators: this is the label for toolbar button +msgid "Zoom In" +msgstr "Suurendamine" + +#. translators: this is the label for toolbar button +msgid "Zoom Out" +msgstr "VƤhendamine" + +#. translators: this is the label for toolbar button +msgid "Fit Width" +msgstr "Laiuse sobitamine" + +msgid "Unable to launch external application." +msgstr "VƤlist rakendust pole vƵimalik kƤivitada." + +msgid "Unable to open external link" +msgstr "VƤlist viita pole vƵimalik avada" + +msgid "Couldn't find appropriate format to save image" +msgstr "Pildi salvestamiseks pole vƵimalik sobilikku vormingut leida" + +msgid "The image could not be saved." +msgstr "Pilti pole vƵimalik salvestada." + +msgid "Save Image" +msgstr "Pildi salvestamine" + +msgid "Unable to open attachment" +msgstr "Manust pole vƵimalik avada" + +msgid "The attachment could not be saved." +msgstr "Manust pole vƵimalik salvestada." + +msgid "Save Attachment" +msgstr "Manuse salvestamine" + +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Vajalik on parool" + +msgid "By extension" +msgstr "Laiendi jƤrgi" + +msgid "MATE Document Viewer" +msgstr "MATE dokumendinƤitaja" + +msgid "The page label of the document to display." +msgstr "Millise sildiga lehekĆ¼lge dokumendist nƤidata." + +msgid "PAGE" +msgstr "LEHEKĆLG" + +msgid "The page number of the document to display." +msgstr "Mitmendat dokumendi lehekĆ¼lge nƤidata." + +msgid "NUMBER" +msgstr "NUMBER" + +msgid "Run evince in fullscreen mode" +msgstr "Evince kƤivitamine tƤisekraanirežiimis" + +msgid "Run evince in presentation mode" +msgstr "Evince kƤivitamine esitlusžiimis" + +msgid "Run evince as a previewer" +msgstr "Evince kƤivitamine eelvaatlusrežiimis" + +msgid "The word or phrase to find in the document" +msgstr "Dokumendist otsitav sƵna vƵi fraas" + +msgid "STRING" +msgstr "STRING" + +msgid "[FILEā¦]" +msgstr "[FAILā¦]" + +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"TƵevƤƤrtusvalikud olemas, tƵene lubab pisipiltide tegemise ja vƤƤr keelab " +"selle" + +msgid "Enable thumbnailing of PDF Documents" +msgstr "Luba PDF-dokumentidest pisipiltide tegemine" + +msgid "Thumbnail command for PDF Documents" +msgstr "PDF-dokumentidest pisipildi tegemise kƤsk" + +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF-dokumentide pisipilditegija kƤsk koos argumentidega. LƤhema teabe " +"saamiseks vaata Cajae pisipilditegija dokumentatsiooni." diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 00000000..c5c384fa --- /dev/null +++ b/po/eu.po @@ -0,0 +1,1722 @@ +# translation of eu_to_be_translate.po to Basque +# Basque translation of evince. +# Copyright (C) 2005 Mikel Olasagasti +# This file is distributed under the same license as the evince package. +# +# Mikel Olasagasti <hey_neken@mundurat.net>, 2005. +# IƱaki LarraƱaga Murgoitio <dooteo@euskalgnu.org>, 2005, 2006, 2007, 2008, 2009, 2010. +# IƱaki LarraƱaga Murgoitio <dooteo@zundan.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: eu_to_be_translate\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-22 12:42+0200\n" +"PO-Revision-Date: 2010-09-22 12:56+0200\n" +"Last-Translator: IƱaki LarraƱaga Murgoitio <dooteo@euskalgnu.org>\n" +"Language-Team: Basque <itzulpena@euskalgnu.org>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Errorea gertatu da '%s' komandoa abiaraztean komikia deskonprimitzeko: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Huts egin du '%s' komandoak komikia deskonprimitzean." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "'%s' komandoa ez da behar bezala amaitu." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ez da komikien MIME mota: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Ezin da komando egokirik aurkitu komiki mota hau deskonprimitzeko" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "MIME mota ezezaguna" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Fitxategia hondatuta" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Ez dago fitxategirik artxiboan" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Ez da irudirik aurkitu %s artxiboan" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Errorea gertatu da '%s' ezabatzean." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Errorea: %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komikiak" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu dokumentuak okerreko formatua du" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokumentua hainbat fitxategirekin osatua dago. Fitxategi bat edo gehiago " +"ezin da atzitu." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu dokumentuak" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI dokumentuak okerreko formatua du" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI dokumentuak" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Lan hau Domeinu Publikoan dago" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Bai" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Ez" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "1 mota" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "1C mota" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "3 mota" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "1 mota (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "1C mota (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Letra-tipo mota ezezaguna" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Izenik gabe" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Kapsulatutako azpimultzoa" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Kapsulatua" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Kapsulatu gabea" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF dokumentuak" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Dokumentu baliogabea" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress aurkezpenak" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Errorerik ez" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ez dago nahikoa memoria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Ezin da ZIP sinadura aurkitu" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Baliogabeko ZIP fitxategia" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIP anitzen fitxategiak ez daude onartuta" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Ezin da fitxategia ireki" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Ezin dira datuak irakurri fitxategitik" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Ezin da fitxategia aurkitu ZIP artxiboan" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Errore ezezaguna" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Huts egin du '%s' dokumentua kargatzean" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Huts egin du '%s' dokumentua gordetzean" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript dokumentuak" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Ezin izan da '%s' eranskina gorde: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Ezin izan da '%s' eranskina ireki: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Ezin izan da '%s' eranskina ireki" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) fitxategi mota ez dago onartuta" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Dokumentu guztiak" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Fitxategi guztiak" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Huts egin du aldi baterako fitxategia sortzean: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Huts egin du aldi baterako direktorioa sortzean: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fitxategia ez da baliozko .desktop fitxategia" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Mahaigaineko fitxategiaren '%s' bertsioa ezezaguna" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s abiarazten" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikazioak ez du dokumenturik onartzen komando-lerroan" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Abiarazteko aukera ezezaguna: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ezin zaio dokumentuen URIrik eman 'Type=Link' mahaigaineko sarrerari" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Ez da elementu abiarazgarria" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desgaitu saio-kudeatzailearen konexioa" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Zehaztu gordetako konfigurazioa duen fitxategia" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FITXATEGIA" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Zehaztu saio-kudeaketaren IDa" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "IDa" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Saio-kudeaketaren aukerak:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Erakutsi saio-kudeaketaren aukerak" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Erakutsi '_%s'" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Aldatu lekuz tresna-barran" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Aldatu lekuz hautatutako elementua tresna-barran" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Kendu tresna-barratik" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Kendu hautatutako elementua tresna-barratik" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Kendu tresna-barra" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Kendu hautatutako tresna-barra" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Bereizlea" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Egokiena" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Doitu orriaren zabalera" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "%50" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "%70" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "%85" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "%100" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "%125" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "%150" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "%175" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "%200" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "%300" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "%400" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "%800" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "%1600" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "%3200" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "%6400" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentu ikustailea" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Ikusi orrialde anitzeko dokumentuak" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Jaramonik ez egin dokumentuaren murriztapenei" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Jaramonik ez egin dokumentuaren kopiatzeko edo inprimatzeko bezalako " +"murriztapenei" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Ezabatu aldi baterako fitxategia" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Inprimatu ezarpenen fitxategia" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATEko dokumentu aurre-ikustailea" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "Huts egin du dokumentua inprimatzean" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Ezin izan da hautatutako '%s' inprimagailua aurkitu" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "_Aurreko orrialdea" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Joan aurreko orrialdera" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "_Hurrengo orrialdea" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Joan hurrengo orrialdera" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Handiagotu dokumentua" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Uzkurtu dokumentua" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Inprimatu" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Inprimatu dokumentu hau" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "_Egokiena" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Uneko dokumentuak leiho guztia betetzen du" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "Doitu orriaren _zabalera" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Uneko dokumentuak leihoaren zabalera guztia betetzen du" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Orrialdea" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "Hautatu orrialdea" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokumentua" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titulua:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Kokalekua:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Gaia:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Egilea:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Gako-hitzak:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Ekoizlea:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Sortzailea:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Sortuta:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Aldatuta:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Orri kopurua:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizatua:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formatua:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Segurtasuna:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Paper-tamaina:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Bat ere ez" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f hazbete" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, bertikala (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, horizontala (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Kargatzen..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Inprimatzeko prestatzen..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Amaitzen..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Orrialdea inprimatzen: %d / %d ..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Inprimatzea ez dago onartuta inprimagailu honekin." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Baliogabeko orrialde hautapena" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Abisua" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Inprimatzeko hautatutako barrutiak ez du inolako orrialderik" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Orrialdea eskalatzea:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Uzkurtu area inprimagarrira" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Doitu area inprimagarrira" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Eskalatu dokumentuko orrialdeak hautatutako inprimagailuaren orrialdera " +"doitzeko. Hautatu hauetariko bat:\n" +"ā¢ \"Bat ere ez\": ez da orrialdeen eskalatzerik landuko.\n" +"\n" +"ā¢ \"Uzkurtu area inprimagarrira\": area inprimagarriak baino handiagoak " +"diren dokumentuko orrialdeak txikitu egingo dira inprimagailuaren orrialdeko " +"area inprimagarrira doitzeko.\n" +"\n" +"ā¢ \"Doitu area inprimagarrira\": dokumentuko orrialdeak behar haina bezain " +"handitu edo txikitu egingo dira inprimagailuaren orrialdeko areara " +"doitzeko.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Biratu eta zentratu automatikoki" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Biratu inprimagailuaren orrialdearen orrialde bakoitza orientazioa " +"dokumentuko orrialde bakoitzaren orientazioarekin bat etortzeko. Dokumentuko " +"orrialdeak zentratu egingo dira inprimagailuaren orrialdean." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Hautatu orrialdearen tamaina dokumentuko orrialdearen tamaina erabiliz" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Gaitutakoan, dokumentuko orrialdearen paperaren tamaina berdinarekin " +"inprimatuko da orrialde bakoitza." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Orrialdeen kudeaketa" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Huts egin du %d orrialdea inprimatzean: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Korritu gora" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Korritu behera" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Korritu ikuspegia gora" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Korritu ikuspegia behera" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentuaren ikuspegia" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Joan orrira:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Aurkezpenaren amaiera. Sakatu 'Ihes' tekla irtetzeko." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Joan lehen orrialdera" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Joan aurreko orrialdera" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Joan hurrengo orrialdera" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Joan azken orrialdera" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Joan orrira:" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Bilatu" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Joan %s orrira" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Joan hona: %s ('%s' fitxategian)" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Joan '%s' fitxategira" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Abiarazi %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Bilatu:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "Bilatu _aurrekoa" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Hitzaren aurreko agerraldia bilatzen du" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "Bilatu _hurrengoa" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Hitzaren hurrengo agerraldia bilatzen du" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "M_aiuskulak/minuskulak" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Txandakatu maiuskulak eta minuskulak bereiztea bilaketan" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikonoa:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Oharra" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Iruzkina" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Gakoa" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Laguntza" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Paragrafo berria" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragrafoa" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Txertatu" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Gurutzea" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Zirkulua" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Ezezaguna" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Oharpenaren propietateak" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Kolorea:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Estiloa:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Gardena" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opakoa" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Hasierako leihoaren egoera:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ireki" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Itxi" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Exekutatu aurkezpen moduan" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "'%s' dokumentuaren pasahitza" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s bihurtzen" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d / %d dokumentu bihurtuta" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Metadatuak bihurtzen" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evince aplikazioak erabiltzen dituen metadatuen formatua aldatu egin denez, " +"migratu beharra dago. Migrazioa bertan behera uzten bada, gordetako " +"metadatuek ez dute funtzionatuko." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Ireki erabilitako azkenetariko fitxategia" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Dokumentu hau blokeatuta dago, pasahitz egokia sartuz irakur daiteke soilik." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Desblokeatu dokumentua" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Sartu pasahitza" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Pasahitza behar da" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "'%s' dokumentua blokeatuta dago, pasahitza behar da irekitzeko." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Pasahitza:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Ahaztu pasahitza _berehala" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Gogoratu pasahitza saio _amaitu arte" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Gogoratu beti" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Propietateak" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Orokorra" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Letra-tipoak" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumentuaren lizentzia" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Letra-tipoa" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Letra-tipoaren informazioa biltzen... %%%3d" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Erabilpenaren baldintzak" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Testuaren lizentzia" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Informazio gehiago" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Zerrenda" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Oharpenak" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Testua" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Gehitu testuaren oharpena" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Gehitu" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokumentuak ez du oharpenik" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "%d. orrialdea" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Eranskinak" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Geruzak" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Inprimatu..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indizea" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Koadro txikiak" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "%s ā %s orrialdea" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "%s orrialdea" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Dokumentuak ez du orrialderik" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Dokumentuak orrialde hutsak soilik ditu" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Ezin da dokumentua ireki" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "%s(e)tik dokumentua kargatzen" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Dokumentua deskargatzen (%% %d)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Huts egin du urruneko fitxategia kargatzean." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "%s(e)ndik dokumentua birkargatzen" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Huts egin du dokumentua birkargatzean." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Ireki dokumentua" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Dokumentua %s(e)n gordetzen" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Eranskina %s(e)n gordetzen" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Irudia %s(e)n gordetzen" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Fitxategia ezin izan da '%s' bezala gorde." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Dokumentua igotzen (%% %d)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Eranskina igotzen (%% %d)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Irudia igotzen (%% %d)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Gorde kopia bat" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "Lan %d ilaran zai" +msgstr[1] "%d lan ilaran zai" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "'%s' lana inprimatzen" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokumentuak bete beharreko inprimaki-eremuak ditu. Ez baduzu kopia bat " +"gordetzen, aldaketak betirako galduko dira." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokumentuak oharpen berriak edo aldatutakoak ditu. Ez baduzu kopia bat " +"gordetzen, aldaketak betirako galduko dira." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Gorde '%s' dokumentuaren kopia itxi aurretik?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Itxi gorde _gabe" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Gorde _kopia bat" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Itxi aurretik '%s' lana inprimatu arte zai egon?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d lan daude aktibo. Itxi aurretik inprimatzea amaitu arte zai egon?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Leihoa ixten baduzu, falta diren inprimatze-lanak ez dira inprimatuko." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "_Utzi inprimatzea eta irten" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "Itxi inprimatu _ondoren" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Tresna-barraren editorea" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "Errorea gertatu da laguntza bistaratzean" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentu-ikustailea.\n" +"%s (%s) erabiltzen" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince software librea da; birbana eta/edo alda dezakezu Free Software " +"Foundation-ek argitaratutako GNU Lizentzia Publiko Orokorraren 2. bertsioan, " +"edo (nahiago baduzu) bertsio berriago batean, jasotako baldintzak betez " +"gero.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince erabilgarria izango delakoan banatzen da, baina INOLAKO BERMERIK " +"GABE; era berean, ez da bermatzen beraren EGOKITASUNA MERKATURATZEKO edo " +"HELBURU PARTIKULARRETARAKO ERABILTZEKO. Argibide gehiago nahi izanez gero, " +"ikus GNU Lizentzia Publiko Orokorra.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Programa honekin batera GNU Lizentzia Publiko Orokorraren kopia bat ere jaso " +"beharko zenuke; horrela ez bada, idatzi helbide honetara: Free Software " +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " +"USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince-ren egileak" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"Mikel Olasagasti <hey_neken@mundurat.net>\n" +"IƱaki LarraƱaga Murgoitio <dooteo@euskalgnu.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d aurkitu da orrialdean" +msgstr[1] "%d aurkitu dira orrialdean" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Ez da aurkitu" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%%%3d falta dira bilatzeko" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Fitxategia" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Editatu" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Ikusi" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "J_oan" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "_Laguntza" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Ireki..." + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Ireki existitzen den dokumentua" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "Ireki _kopia bat" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Ireki uneko dokumentuaren kopia leiho berrian" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_Gorde kopia bat..." + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Gorde uneko dokumentuaren kopia" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "_Inprimatu..." + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "_Propietateak" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "Hautatu _dena" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_Bilatu..." + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Bilatu hitz bat edo esaldi bat dokumentuan" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "_Tresna-barra" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "Biratu _ezkerrera" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "Biratu _eskuinera" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Gorde uneko ezarpenak _lehenetsi gisa" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_Birkargatu" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Birkargatu dokumentua" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "Korritze automatikoa" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "_Aurreneko orrialdea" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Joan aurreneko orrialdera" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_Azken orrialdea" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Joan azkeneko orrialdera" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Edukia" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_Honi buruz" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "Irten pantaila osotik" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Irten pantaila osoko modutik" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "Abiarazi aurkezpena" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "Abiatu aurkezpen bat" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "_Tresna-barra" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "Erakutsi edo ezkutatu tresna-barra" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "Alboko p_anela" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "Erakutsi edo ezkutatu alboko panela" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_Etengabea" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "Erakutsi dokumentu osoa" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_Duala" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "Erakutsi bi orrialde batera" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "_Pantaila osoa" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Zabaldu leihoa pantaila guztia bete arte" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "_Aurkezpena" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "Abiatu dokumentua aurkezpen gisa" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "Kolore _alderantzikatuak" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "Erakutsi orrialdearen edukia alderantzikatutako koloreekin" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_Ireki esteka" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "J_oan" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Ireki leiho _berrian" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_Kopiatu estekaren helbidea" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_Gorde irudia honela..." + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "Kopiatu _irudia" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "Oharpenaren propietateak..." + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_Ireki eranskina" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_Gorde eranskina honela..." + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Zooma" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Doitu zoom-aren maila" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Nabigazioa" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Atzera" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Joan bisitatutako orrialdeetara" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "Aurrekoa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Hurrengoa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Zooma handiagotu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Zooma txikiagotu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Doitu zabalera" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "Ezin da kanpoko aplikazioa abiarazi." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "Ezin da kanpoko esteka ireki" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Ezin izan da formatu egokirik aurkitu irudia gordetzeko" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "Irudia ezin izan da gorde." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Gorde irudia" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "Ezin da eranskina ireki" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "Eranskina ezin izan da gorde." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Gorde eranskina" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Pasahitza behar da" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Luzapenaren arabera" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATEko dokumentu ikustailea" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Dokumentuaren orrialdearen etiketa bistaratzeko." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "ORRIALDEA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Dokumentuaren orrialdearen zenbakia bistaratzeko." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ZENBAKIA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Exekutatu evince pantaila osoko moduan" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Exekutatu evince aurkezpen moduan" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Exekutatu evince aurrebista gisa" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Hitz edo esaldi bat bilatzen du dokumentuan" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "KATEA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FITXATEGIA...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Eskuragarri dauden aukera boolearrak: true (egia) balioak koadro txikiak " +"gaitzen ditu eta false balioak (faltsua) koadro txiki berriak sortzea " +"desgaitzen du." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Gaitu PDF dokumentuen koadro txikiak" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF dokumentuen koadro txikiak sortzeko komandoa" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Komando baliagarria gehi argumentuak PDF dokumentutako koadro txikiak " +"sortzeko. Ikusi Caja-en koadro txikien dokumentazioa informazio " +"gehiagorako." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Prestatu i_nprimaketa..." + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Konfiguratu orriaren ezarpenak inprimatzeko" diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 00000000..fac05cf2 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,1108 @@ +# Persian translation of evince. +# Copyright (C) 2003, 2004, 2005, 2006 Sharif FarsiWeb, Inc. +# This file is distributed under the same license as the evince package. +# Roozbeh Pournader <roozbeh@farsiweb.info>, 2003, 2004, 2005, 2006. +# Meelad Zakaria <meelad@farsiweb.info>, 2004, 2005, 2006. +# Elnaz Sarbar <elnaz@farsiweb.info>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-02-15 06:10+0100\n" +"PO-Revision-Date: 2006-09-04 12:57+0330\n" +"Last-Translator: Roozbeh Pournader <roozbeh@farsiweb.info>\n" +"Language-Team: Persian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../comics/comics-document.c:148 +msgid "File corrupted." +msgstr "Ł¾Ų±ŁŁŲÆŁ Ų®Ų±Ų§ŲØ Ų“ŲÆŁ Ų§Ų³ŲŖ." + +#: ../comics/comics-document.c:184 +#, c-format +msgid "No images found in archive %s" +msgstr "ŲŖŲµŁŪŲ±Ū ŲÆŲ± Ų¢Ų±Ų“ŪŁ %s Ł¾ŪŲÆŲ§ ŁŲ“ŲÆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:534 +msgid "_Remove Toolbar" +msgstr "_ŲŲ°Ł ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų±" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:555 +msgid "Separator" +msgstr "Ų¬ŲÆŲ§Ų³Ų§Ų²" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:3056 +msgid "Best Fit" +msgstr "ŲØŁŲŖŲ±ŪŁ Ų§ŁŲÆŲ§Ų²Ł" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ų¬Ų§ ŲÆŲ§ŲÆŁ Ų¹Ų±Ų¶ ŲµŁŲŁ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ŁŖŪµŪ°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "75%" +msgstr "ŁŖŪ·Ūµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "100%" +msgstr "ŁŖŪ±Ū°Ū°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "125%" +msgstr "ŁŖŪ±Ū²Ūµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "150%" +msgstr "ŁŖŪ±ŪµŪ°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "175%" +msgstr "ŁŖŪ±Ū·Ūµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "200%" +msgstr "ŁŖŪ²Ū°Ū°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "300%" +msgstr "ŁŖŪ³Ū°Ū°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "400%" +msgstr "ŁŖŪ“Ū°Ū°" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "ŁŁ Ų§ŪŲ“ŚÆŲ± ŁŁŲ“ŲŖŲ§Ų±" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ŁŁ Ų§ŪŲ“ ŚŁŲÆŪŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../data/evince-password.glade.h:1 +msgid "Remember password for this session" +msgstr "ŚÆŲ°Ų±ŁŲ§ŚŁŁ ŲÆŲ± Ų·ŁŁ Ų§ŪŁ ŁŲ“Ų³ŲŖ ŲØŁ Ų®Ų§Ų·Ų± Ų³Ł¾Ų±ŲÆŁ Ų“ŁŲÆ" + +#: ../data/evince-password.glade.h:2 +msgid "Save password in keyring" +msgstr "Ų°Ų®ŪŲ±ŁŁ ŚÆŲ°Ų±ŁŲ§ŚŁ ŲÆŲ± ŲÆŲ³ŲŖŁāŚ©ŁŪŲÆ" + +#: ../data/evince-password.glade.h:3 +msgid "_Password:" +msgstr "_ŚÆŲ°Ų±ŁŲ§ŚŁ:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Ł Ų¤ŁŁ:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Ų²Ł Ų§Ł Ų§ŪŲ¬Ų§ŲÆ:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Ų§ŪŲ¬Ų§ŲÆŚ©ŁŁŲÆŁ:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>ŁŲ§ŁŲØ:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>Ś©ŁŪŲÆŁŲ§ŚŁāŁŲ§:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Ų²Ł Ų§Ł ŲŖŲŗŪŪŲ±:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>ŲŖŲ¹ŲÆŲ§ŲÆ ŲµŁŲŲ§ŲŖ:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>ŲØŁŪŁŁāŲ³Ų§Ų²Ū Ų“ŲÆŁ:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Producer:</b>" +msgstr "<b>ŲŖŁŁŪŲÆŚ©ŁŁŲÆŁ:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Security:</b>" +msgstr "<b>Ų§Ł ŁŪŲŖ:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Subject:</b>" +msgstr "<b>Ł ŁŲ¶ŁŲ¹:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Title:</b>" +msgstr "<b>Ų¹ŁŁŲ§Ł:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ŁŲ§ŲÆŪŲÆŁ ŚÆŲ±ŁŲŖŁ Ł ŲŲÆŁŲÆŪŲŖāŁŲ§Ū ŁŁŲ“ŲŖŲ§Ų±" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ŁŲ§ŲÆŪŲÆŁ ŚÆŲ±ŁŲŖŁ Ł ŲŲÆŁŲÆŪŲŖāŁŲ§Ū ŁŁŲ“ŲŖŲ§Ų±Ų Ł Ų«Ł Ł ŲŲÆŁŲÆŪŲŖ ŁŲ³Ų®ŁāŲØŲ±ŲÆŲ§Ų±Ū ŪŲ§ ŚŲ§Ł¾." + +#: ../dvi/dvi-document.c:91 +msgid "File not available" +msgstr "Ł¾Ų±ŁŁŲÆŁ Ł ŁŲ¬ŁŲÆ ŁŪŲ³ŲŖ" + +#: ../dvi/dvi-document.c:104 +msgid "DVI document has incorrect format" +msgstr "ŁŁŲ“ŲŖŲ§Ų± DVI ŁŲ§ŁŲØ ŁŲ§ŲÆŲ±Ų³ŲŖŪ ŲÆŲ§Ų±ŲÆ" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:511 +msgid "Yes" +msgstr "ŲØŁŁ" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:514 +msgid "No" +msgstr "Ų®ŪŲ±" + +#: ../pdf/ev-poppler.cc:614 +msgid "Type 1" +msgstr "ŁŁŲ¹ Ū±" + +#: ../pdf/ev-poppler.cc:616 +msgid "Type 1C" +msgstr "ŁŁŲ¹ ā1C" + +#: ../pdf/ev-poppler.cc:618 +msgid "Type 3" +msgstr "ŁŁŲ¹ Ū³" + +#: ../pdf/ev-poppler.cc:620 +msgid "TrueType" +msgstr "ŲŖŲ±ŁŲŖŲ§ŪŁ¾" + +#: ../pdf/ev-poppler.cc:622 +msgid "Type 1 (CID)" +msgstr "ŁŁŲ¹ Ū± (CID)" + +#: ../pdf/ev-poppler.cc:624 +msgid "Type 1C (CID)" +msgstr "ŁŁŲ¹ ā1Cā (CID)" + +#: ../pdf/ev-poppler.cc:626 +msgid "TrueType (CID)" +msgstr "ŲŖŲ±ŁŲŖŲ§ŪŁ¾ (CID)" + +#: ../pdf/ev-poppler.cc:628 +msgid "Unknown font type" +msgstr "ŁŁŲ¹ ŁŁŁ ŁŲ§Ł Ų¹ŁŁŁ " + +#: ../pdf/ev-poppler.cc:654 +msgid "No name" +msgstr "ŲØŲÆŁŁ ŁŲ§Ł " + +#: ../pdf/ev-poppler.cc:662 +msgid "Embedded subset" +msgstr "Ų²ŪŲ±Ł Ų¬Ł ŁŲ¹ŁŁ ŲŖŁŚ©Ų§Ų±" + +#: ../pdf/ev-poppler.cc:664 +msgid "Embedded" +msgstr "ŲŖŁŚ©Ų§Ų±" + +#: ../pdf/ev-poppler.cc:666 +msgid "Not embedded" +msgstr "ŲŗŪŲ± ŲŖŁŚ©Ų§Ų±" + +#: ../properties/ev-properties-main.c:114 +msgid "Document" +msgstr "ŁŁŲ“ŲŖŲ§Ų±" + +#: ../properties/ev-properties-view.c:173 +msgid "None" +msgstr "ŁŪŚāŚ©ŲÆŲ§Ł " + +#: ../ps/gsdefaults.c:30 +msgid "BBox" +msgstr "Ś©Ų§ŲÆŲ± ŲµŁŲŁ" + +#: ../ps/gsdefaults.c:31 +msgid "Letter" +msgstr "ŁŲ§Ł Ł" + +#: ../ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "ŁŪŁ āŁŲ±Ł Ų±ŁŲ²ŁŲ§Ł ŁāŲ§Ū" + +#: ../ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ł Ų¹ŪŁ" + +#: ../ps/gsdefaults.c:34 +msgid "Legal" +msgstr "ŲŁŁŁŪ" + +#: ../ps/gsdefaults.c:35 +msgid "Statement" +msgstr "ŲŚ©Ł " + +#: ../ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Ų§ŲÆŲ§Ų±Ū" + +#: ../ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Ų±ŲŁŪ" + +#: ../ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Ų±ŲØŲ¹Ū" + +#: ../ps/gsdefaults.c:47 +msgid "10x14" +msgstr "Ū±Ū°ĆŪ±Ū“ Ų§ŪŁŚ" + +#: ../ps/ps-document.c:136 +msgid "No document loaded." +msgstr "ŁŪŚ Ł¾Ų±ŁŁŲÆŁāŲ§Ū ŲØŲ§Ų± ŁŲ“ŲÆŁ Ų§Ų³ŲŖ." + +#: ../ps/ps-document.c:584 +msgid "Broken pipe." +msgstr "ŁŁŁŁŁ Ų“Ś©Ų³ŲŖŁ." + +#: ../ps/ps-document.c:768 +msgid "Interpreter failed." +msgstr "Ł ŁŲ³Ų± Ų“Ś©Ų³ŲŖ Ų®ŁŲ±ŲÆ." + +#: ../ps/ps-document.c:894 +#, c-format +msgid "Error while decompressing file %s:\n" +msgstr "Ų®Ų·Ų§ ŲÆŲ± ŲØŲ§Ų² Ś©Ų±ŲÆŁ Ł¾Ų±ŁŁŲÆŁŁ ŁŲ“Ų±ŲÆŁŁ %s:\n" + +#: ../ps/ps-document.c:954 +#, c-format +msgid "Cannot open file %s.\n" +msgstr "ŁŁ ŪāŲŖŁŲ§Ł Ł¾Ų±ŁŁŲÆŁŁ %s Ų±Ų§ ŲØŲ§Ų² Ś©Ų±ŲÆ.\n" + +#: ../ps/ps-document.c:959 +msgid "File is not readable." +msgstr "Ł¾Ų±ŁŁŲÆŁ ŁŲ§ŲØŁ Ų®ŁŲ§ŁŲÆŁ ŁŪŲ³ŲŖ." + +#: ../ps/ps-document.c:979 +msgid "Document loaded." +msgstr "ŁŁŲ“ŲŖŲ§Ų± ŲØŲ§Ų± Ų“ŲÆ." + +#: ../ps/ps-document.c:1076 +#, c-format +msgid "" +"Failed to load document '%s'. Ghostscript interpreter was not found in path" +msgstr "ŲØŲ§Ų± Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų± Ā«ā%sĀ» Ų“Ś©Ų³ŲŖ Ų®ŁŲ±ŲÆ. Ł ŁŲ³Ų± ŚÆŁŲ³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ ŲÆŲ± Ł Ų³ŪŲ± Ł¾ŪŲÆŲ§ ŁŲ“ŲÆ" + +#: ../ps/ps-document.c:1088 +#, c-format +msgid "Failed to load document '%s'" +msgstr "ŲØŲ§Ų² Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų± Ā«%sĀ» Ł Ł Ś©Ł ŁŪŲ³ŲŖ" + +#: ../ps/ps-document.c:1261 +msgid "Encapsulated PostScript" +msgstr "Ł¾Ų³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ ŲØŲ³ŲŖŁāŲØŁŲÆŪāŲ“ŲÆŁ" + +#: ../ps/ps-document.c:1262 +msgid "PostScript" +msgstr "Ł¾Ų³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ" + +#: ../shell/eggfindbar.c:148 +msgid "Search string" +msgstr "Ų±Ų“ŲŖŁŁ Ų¬Ų³ŲŖŲ¬Ł" + +#: ../shell/eggfindbar.c:149 +msgid "The name of the string to be found" +msgstr "ŁŲ§Ł Ų±Ų“ŲŖŁāŲ§Ū Ś©Ł ŲØŲ§ŪŲÆ Ł¾ŪŲÆŲ§ Ų“ŁŲÆ" + +#: ../shell/eggfindbar.c:162 +msgid "Case sensitive" +msgstr "ŲŲ³Ų§Ų³ ŲØŁ Ś©ŁŚŚ©Ū Ł ŲØŲ²Ų±ŚÆŪ ŲŲ±ŁŁ" + +#: ../shell/eggfindbar.c:163 +msgid "TRUE for a case sensitive search" +msgstr "āĀ«ŲÆŲ±Ų³ŲŖĀ» ŲØŲ±Ų§Ū Ų¬Ų³ŲŖŲ¬ŁŪ ŲŲ³Ų§Ų³ ŲØŁ Ś©ŁŚŚ©Ū Ł ŲØŲ²Ų±ŚÆŪ ŲŲ±ŁŁ" + +#: ../shell/eggfindbar.c:170 +msgid "Highlight color" +msgstr "Ų±ŁŚÆ Ł¾Ų±Ų±ŁŚÆŪ" + +#: ../shell/eggfindbar.c:171 +msgid "Color of highlight for all matches" +msgstr "Ų±ŁŚÆ Ł¾Ų±Ų±ŁŚÆŪ ŲØŲ±Ų§Ū ŁŁ ŁŁ ŲŖŲ·Ų§ŲØŁāŁŲ§" + +#: ../shell/eggfindbar.c:177 +msgid "Current color" +msgstr "Ų±ŁŚÆ ŁŲ¹ŁŪ" + +#: ../shell/eggfindbar.c:178 +msgid "Color of highlight for the current match" +msgstr "Ų±ŁŚÆ Ł¾Ų±Ų±ŁŚÆŪ ŲØŲ±Ų§Ū ŲŖŲ·Ų§ŲØŁ ŁŲ¹ŁŪ" + +#: ../shell/eggfindbar.c:301 +msgid "F_ind:" +msgstr "Ł¾_ŪŲÆŲ§ Ś©Ų±ŲÆŁ:" + +#: ../shell/eggfindbar.c:307 +msgid "_Previous" +msgstr "_ŁŲØŁŪ" + +#: ../shell/eggfindbar.c:311 +msgid "_Next" +msgstr "_ŲØŲ¹ŲÆŪ" + +#: ../shell/eggfindbar.c:325 +msgid "C_ase Sensitive" +msgstr "_ŲŲ³Ų§Ų³ ŲØŁ Ś©ŁŚŚ©Ū Ł ŲØŲ²Ų±ŚÆŪ ŲŲ±ŁŁ" + +#: ../shell/ev-document-types.c:60 +msgid "Unknown MIME Type" +msgstr "ŁŁŲ¹ MIME ŁŲ§Ł Ų¹ŁŁŁ " + +#: ../shell/ev-document-types.c:71 +#, c-format +msgid "Unhandled MIME type: '%s'" +msgstr "ŁŁŲ¹ MIME ŲØŲÆŁŁ Ł ŲŖŲµŲÆŪ: Ā«%sĀ»" + +#: ../shell/ev-document-types.c:133 +msgid "All Documents" +msgstr "ŁŁ ŁŁ ŁŁŲ“ŲŖŲ§Ų±ŁŲ§" + +#: ../shell/ev-document-types.c:141 +msgid "PostScript Documents" +msgstr "ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū Ł¾Ų³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ" + +#: ../shell/ev-document-types.c:150 +msgid "PDF Documents" +msgstr "ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū PDF" + +#: ../shell/ev-document-types.c:159 +msgid "Images" +msgstr "ŲŖŲµŲ§ŁŪŲ±" + +#: ../shell/ev-document-types.c:169 +msgid "DVI Documents" +msgstr "ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū DVI" + +#: ../shell/ev-document-types.c:179 +msgid "Djvu Documents" +msgstr "ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū Djvu" + +#: ../shell/ev-document-types.c:189 +msgid "Comic Books" +msgstr "Ś©ŲŖŲ§ŲØāŁŲ§Ū Ś©Ł ŪŚ©" + +#: ../shell/ev-document-types.c:197 +msgid "All Files" +msgstr "ŁŁ ŁŁ Ł¾Ų±ŁŁŲÆŁāŁŲ§" + +#: ../shell/ev-page-action.c:168 +#, c-format +msgid "(%d of %d)" +msgstr "(%Id Ų§Ų² %Id)" + +#: ../shell/ev-page-action.c:170 +#, c-format +msgid "of %d" +msgstr "Ų§Ų² %Id" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "ŚÆŲ°Ų±ŁŲ§ŚŁ ŁŲ§Ų²Ł Ų§Ų³ŲŖ" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "" +"The document <i>%s</i> is locked and requires a password before it can be " +"opened." +msgstr "ŁŁŲ“ŲŖŲ§Ų± <i>%s</i> ŁŁŁ Ų“ŲÆŁ Ų§Ų³ŲŖ Ł Ł¾ŪŲ“ Ų§Ų² ŲØŲ§Ų² Ų“ŲÆŁ ŲØŁ ŚÆŲ°Ų±ŁŲ§ŚŁ ŁŪŲ§Ų² ŲÆŲ§Ų±ŲÆ." + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "ŚÆŲ°Ų±ŁŲ§ŚŁ Ų±Ų§ ŁŲ§Ų±ŲÆ Ś©ŁŪŲÆ" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "ŚÆŲ°Ų±ŁŲ§ŚŁŁ ŁŁŲ“ŲŖŲ§Ų± %s" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "ŚÆŲ°Ų±ŁŲ§ŚŁŁ ŁŲ§ŲÆŲ±Ų³ŲŖ" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ų§ŪŁ ŁŁŲ“ŲŖŲ§Ų± ŁŁŁ Ų“ŲÆŁ Ų§Ų³ŲŖ Ł ŁŁŲ· ŲØŲ§ ŁŲ§Ų±ŲÆ Ś©Ų±ŲÆŁ ŚÆŲ°Ų±ŁŲ§ŚŁŁ ŲÆŲ±Ų³ŲŖ ŁŲ§ŲØŁ Ų®ŁŲ§ŁŲÆŁ Ų§Ų³ŲŖ." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "ŲØŲ§Ų² Ś©Ų±ŲÆŁ _ŁŁŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "ŁŪŚŚÆŪāŁŲ§" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "Ś©ŁŪŲ§ŲŖ" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ŁŁŁ āŁŲ§" + +#: ../shell/ev-properties-fonts.c:123 +msgid "Font" +msgstr "ŁŁŁ " + +#: ../shell/ev-properties-fonts.c:134 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ŲÆŲ± ŲŲ§Ł Ų¬Ł Ų¹āŲ¢ŁŲ±Ū Ų§Ų·ŁŲ§Ų¹Ų§ŲŖ ŁŁŁ ... ŁŖ%I3d" + +#: ../shell/ev-sidebar-links.c:254 ../shell/ev-view.c:2101 +msgid "Loading..." +msgstr "ŲÆŲ± ŲŲ§Ł ŲØŲ§Ų± Ś©Ų±ŲÆŁ..." + +#: ../shell/ev-sidebar-links.c:318 +msgid "Print..." +msgstr "ŚŲ§Ł¾..." + +#: ../shell/ev-sidebar-links.c:686 +msgid "Index" +msgstr "ŁŁ Ų§ŪŁ" + +#: ../shell/ev-sidebar-thumbnails.c:669 +msgid "Thumbnails" +msgstr "Ł Ų³Ų·ŁŲ±ŁāŁŲ§" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "ŁŲŗŲ²Ų“ ŲØŁ ŲØŲ§ŁŲ§" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "ŁŲŗŲ²Ų“ ŲØŁ Ł¾Ų§ŪŪŁ" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "ŁŲŗŲ²Ų“ ŁŁ Ų§ ŲØŁ ŲØŲ§ŁŲ§" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "ŁŲŗŲ²Ų“ ŁŁ Ų§ ŲØŁ Ł¾Ų§ŪŪŁ" + +#: ../shell/ev-view-accessible.c:535 +msgid "Document View" +msgstr "ŁŁ Ų§ŪŲ“ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-view.c:1271 +#, c-format +msgid "Go to page %s" +msgstr "Ų±ŁŲŖŁ ŲØŁ ŲµŁŲŁŁ %s" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:3292 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%Id Ł ŁŲ±ŲÆ ŲÆŲ± Ų§ŪŁ ŲµŁŲŁ" + +#: ../shell/ev-view.c:3302 +msgid "Not found" +msgstr "Ł¾ŪŲÆŲ§ ŁŲ“ŲÆ" + +#: ../shell/ev-view.c:3304 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ŁŖ%I3d Ų§Ų² Ų¬Ų³ŲŖŲ¬Ł ŲØŲ§ŁŪ Ł Ų§ŁŲÆŁ" + +#: ../shell/ev-window.c:585 +msgid "Unable to open document" +msgstr "ŲØŲ§Ų² Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų± Ł Ł Ś©Ł ŁŪŲ³ŲŖ" + +#: ../shell/ev-window.c:1123 +msgid "Open Document" +msgstr "ŲØŲ§Ų² Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:1202 +#, c-format +msgid "The file could not be saved as \"%s\"." +msgstr "ŁŁ ŪāŲŖŁŲ§Ł Ų§ŪŁ Ł¾Ų±ŁŁŲÆŁ Ų±Ų§ ŲØŁ Ų¹ŁŁŲ§Ł Ā«%sĀ» Ų°Ų®ŪŲ±Ł Ś©Ų±ŲÆ." + +#: ../shell/ev-window.c:1246 +msgid "Save a Copy" +msgstr "Ų°Ų®ŪŲ±ŁŁ ŪŚ© ŁŲ³Ų®Ł" + +#: ../shell/ev-window.c:1308 +msgid "Generating PDF is not supported" +msgstr "ŲŖŁŁŪŲÆ PDF Ł¾Ų“ŲŖŪŲØŲ§ŁŪ ŁŁ ŪāŲ“ŁŲÆ" + +#: ../shell/ev-window.c:1317 +msgid "Printing is not supported on this printer." +msgstr "ŚŲ§Ł¾ ŲØŲ§ Ų§ŪŁ ŚŲ§Ł¾ŚÆŲ± Ł¾Ų“ŲŖŪŲØŲ§ŁŪ ŁŁ ŪāŲ“ŁŲÆ." + +#: ../shell/ev-window.c:1320 +#, c-format +msgid "" +"You were trying to print to a printer using the \"%s\" driver. This program " +"requires a PostScript printer driver." +msgstr "" +"Ų“Ł Ų§ Ų³Ų¹Ū Ł ŪāŚ©Ų±ŲÆŪŲÆ ŲØŲ§ Ų§Ų³ŲŖŁŲ§ŲÆŁ Ų§Ų² ŚÆŲ±ŲÆŲ§ŁŁŲÆŁŁ Ā«%sĀ» Ų±ŁŪ ŚŲ§Ł¾ŚÆŲ±Ū ŚŲ§Ł¾ Ś©ŁŪŲÆ. Ų§ŪŁ ŲØŲ±ŁŲ§Ł Ł " +"ŲØŁ ŪŚ© ŚÆŲ±ŲÆŲ§ŁŁŲÆŁŁ ŚŲ§Ł¾ŚÆŲ± Ł¾Ų³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ ŁŪŲ§Ų² ŲÆŲ§Ų±ŲÆ." + +#: ../shell/ev-window.c:1365 +msgid "Print" +msgstr "ŚŲ§Ł¾" + +#: ../shell/ev-window.c:1371 +msgid "Pages" +msgstr "ŲµŁŲŲ§ŲŖ" + +#: ../shell/ev-window.c:1432 +msgid "The \"Find\" feature will not work with this document" +msgstr "Ų§Ł Ś©Ų§ŁŲ§ŲŖ Ā«Ł¾ŪŲÆŲ§ Ś©Ų±ŲÆŁĀ» ŲÆŲ± Ų§ŪŁ ŁŁŲ“ŲŖŲ§Ų± Ś©Ų§Ų± ŁŁ ŪāŚ©ŁŲÆ" + +#: ../shell/ev-window.c:1434 +msgid "Searching for text is only supported for PDF documents." +msgstr "Ų¬Ų³ŲŖŲ¬Ł ŲØŁ ŲÆŁŲØŲ§Ł Ł ŲŖŁ ŁŁŲ· ŲØŲ±Ų§Ū ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū PDF Ł¾Ų“ŲŖŪŲØŲ§ŁŪ Ł ŪāŲ“ŁŲÆ." + +#. Toolbar-only +#: ../shell/ev-window.c:1665 ../shell/ev-window.c:2860 +msgid "Leave Fullscreen" +msgstr "ŲŖŲ±Ś© ŲŲ§ŁŲŖ ŲŖŁ Ų§Ł āŲµŁŲŁ" + +#: ../shell/ev-window.c:1994 +msgid "Toolbar Editor" +msgstr "ŁŪŲ±Ų§ŪŲ“ŚÆŲ± ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų±" + +#: ../shell/ev-window.c:2370 +#, c-format +msgid "" +"PostScript and PDF File Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ŁŁ Ų§ŪŲ“ŚÆŲ± Ł¾Ų±ŁŁŲÆŁāŁŲ§Ū PDF Ł Ł¾Ų³ŲŖāŲ§Ų³Ś©Ų±ŪŁ¾ŲŖ.\n" +"ŲØŲ§ Ų§Ų³ŲŖŁŲ§ŲÆŁ Ų§Ų² poppler ŁŲ³Ų®ŁŁ %s ā(Ł¾Ų³Ų§ŁŁŁ %s)" + +#: ../shell/ev-window.c:2393 +msgid "" +"Evince is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +msgstr "" +"ŁŲ±Ł āŲ§ŁŲ²Ų§Ų± EvinceŲ ŁŲ±Ł āŲ§ŁŲ²Ų§Ų± Ų¢Ų²Ų§ŲÆ Ų§Ų³ŲŖ: Ų“Ł Ų§ Ł ŪāŲŖŁŲ§ŁŪŲÆ ŲŖŲŲŖ Ų“Ų±Ų§ŪŲ· Ł Ų¬ŁŲ² Ų¹Ł ŁŁ Ū ŁŁ ŚÆŲ§ŁŪ " +"ŚÆŁŁ\n" +"Ś©Ł ŲØŁ ŁŲ³ŪŁŁŁ ŲØŁŪŲ§ŲÆ ŁŲ±Ł āŲ§ŁŲ²Ų§Ų±ŁŲ§Ū Ų¢Ų²Ų§ŲÆ Ł ŁŲŖŲ“Ų± Ų“ŲÆŁ Ų§Ų³ŲŖŲ Ų¢Ł Ų±Ų§ ŲŖŁŲ²ŪŲ¹ Ł Ų¬ŲÆŲÆ Ś©ŁŪŲÆ\n" +"Ł ŪŲ§ ŲŖŲŗŪŪŲ± ŲÆŁŪŲÆŲ Ł ŪāŲŖŁŲ§ŁŪŲÆ Ų§Ų² ŁŲ³Ų®ŁŁ 2 Ł Ų¬ŁŲ² ŪŲ§ (Ų§ŚÆŲ± Ų®ŁŲ§Ų³ŲŖŪŲÆ)\n" +"ŁŲ± ŁŲ³Ų®ŁŁ ŲØŲ¹ŲÆ Ų§Ų² Ų¢Ł Ų§Ų³ŲŖŁŲ§ŲÆŁ Ś©ŁŪŲÆ.\n" + +#: ../shell/ev-window.c:2397 +msgid "" +"Evince is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +msgstr "" +"ŁŲ±Ł āŲ§ŁŲ²Ų§Ų± Evince ŲØŁ Ų§ŪŁ Ų§Ł ŪŲÆ ŲŖŁŲ²ŪŲ¹ Ł ŪāŲ“ŁŲÆ Ś©Ł ŲØŁ ŲÆŲ±ŲÆ ŲØŲ®ŁŲ±ŲÆŲ\n" +"ŁŁŪ ŲØŲÆŁŁ ŁŪŚ ŁŁŲ¹ ŲŖŲ¶Ł ŪŁŲ ŲŲŖŪ ŲØŲÆŁŁ ŲŖŲ¶Ł ŪŁ Ų¶Ł ŁŪ Ś©ŪŁŪŲŖ\n" +"ŪŲ§ Ł ŁŲ§Ų³ŲØ ŲØŁŲÆŁ ŲØŲ±Ų§Ū Ł ŁŲøŁŲ±Ū Ų®Ų§Ųµ. ŲØŲ±Ų§Ū Ų¬Ų²Ų¦ŪŲ§ŲŖ ŲØŪŲ“ŲŖŲ±\n" +"Ł Ų¬ŁŲ² Ų¹Ł ŁŁ Ū ŁŁ ŚÆŲ§ŁŪ ŚÆŁŁ Ų±Ų§ ŲØŲØŪŁŪŲÆ.\n" + +#: ../shell/ev-window.c:2401 +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with Evince; if not, write to the Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Ų“Ł Ų§ ŲØŲ§ŪŲÆ ŪŚ© ŁŲ³Ų®Ł Ų§Ų² Ł Ų¬ŁŲ² Ų¹Ł ŁŁ Ū ŁŁ ŚÆŲ§ŁŪ Ų±Ų§ ŁŁ Ų±Ų§Ł ŲØŲ§\n" +"āEvince ŲÆŲ±ŪŲ§ŁŲŖ Ś©Ų±ŲÆŁ ŲØŲ§Ų“ŪŲÆŲ Ų§ŚÆŲ± ŁŁŲ ŁŲ§Ł ŁāŲ§Ū ŲØŁ Ų§ŪŁ ŁŲ“Ų§ŁŪ ŲØŁŲ±Ų³ŲŖŪŲÆ:\n" +"Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:2425 ../shell/main.c:259 +msgid "Evince" +msgstr "Ų§ŪāŁŪŁŲ³" + +#: ../shell/ev-window.c:2428 +msgid "Ā© 1996-2005 The Evince authors" +msgstr "Ā© 1996-2005 The Evince authors" + +#: ../shell/ev-window.c:2434 +msgid "translator-credits" +msgstr "" +"Ų±ŁŲ²ŲØŁ Ł¾ŁŲ±ŁŲ§ŲÆŲ± <roozbeh@farsiweb.info>ā\n" +"Ł ŪŁŲ§ŲÆ Ų²Ś©Ų±ŪŲ§ <meelad@farsiweb.info>ā\n" +"Ų§ŁŁŲ§Ų² Ų³Ų±ŲØŲ± <elnaz@farsiweb.info>" + +#: ../shell/ev-window.c:2789 +msgid "_File" +msgstr "_Ł¾Ų±ŁŁŲÆŁ" + +#: ../shell/ev-window.c:2790 +msgid "_Edit" +msgstr "_ŁŪŲ±Ų§ŪŲ“" + +#: ../shell/ev-window.c:2791 +msgid "_View" +msgstr "_ŁŁ Ų§" + +#: ../shell/ev-window.c:2792 +msgid "_Go" +msgstr "_Ų±ŁŲŖŁ" + +#: ../shell/ev-window.c:2793 +msgid "_Help" +msgstr "_Ų±Ų§ŁŁŁ Ų§" + +#. File menu +#: ../shell/ev-window.c:2796 +msgid "_Open..." +msgstr "_ŲØŲ§Ų² Ś©Ų±ŲÆŁ..." + +#: ../shell/ev-window.c:2797 +msgid "Open an existing document" +msgstr "ŲØŲ§Ų² Ś©Ų±ŲÆŁ ŪŚ© ŁŁŲ“ŲŖŲ§Ų± Ł ŁŲ¬ŁŲÆ" + +#: ../shell/ev-window.c:2799 +msgid "_Save a Copy..." +msgstr "_Ų°Ų®ŪŲ±ŁŁ ŪŚ© ŁŲ³Ų®Ł..." + +#: ../shell/ev-window.c:2800 +msgid "Save a copy of the current document" +msgstr "Ų°Ų®ŪŲ±ŁŁ ŪŚ© ŁŲ³Ų®Ł Ų§Ų² ŁŁŲ“ŲŖŲ§Ų± ŁŲ¹ŁŪ" + +#: ../shell/ev-window.c:2802 +msgid "_Print..." +msgstr "_ŚŲ§Ł¾..." + +#: ../shell/ev-window.c:2803 +msgid "Print this document" +msgstr "ŚŲ§Ł¾ Ų§ŪŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:2805 +msgid "P_roperties" +msgstr "ŁŪŚ_ŚÆŪāŁŲ§" + +#: ../shell/ev-window.c:2813 +msgid "Select _All" +msgstr "Ų§ŁŲŖŲ®Ų§ŲØ _ŁŁ Ł" + +#: ../shell/ev-window.c:2816 +msgid "Find a word or phrase in the document" +msgstr "Ł¾ŪŲÆŲ§ Ś©Ų±ŲÆŁ ŪŚ© Ś©ŁŁ Ł ŪŲ§ Ų¹ŲØŲ§Ų±ŲŖ ŲÆŲ± ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:2818 +msgid "Find Ne_xt" +msgstr "Ł¾ŪŲÆŲ§ Ś©Ų±ŲÆŁ ŲØ_Ų¹ŲÆŪ" + +#: ../shell/ev-window.c:2820 +msgid "T_oolbar" +msgstr "ŁŁŲ§Ų± Ų§ŲØ_Ų²Ų§Ų±" + +#: ../shell/ev-window.c:2822 +msgid "Rotate _Left" +msgstr "ŚŲ±Ų®Ų“ ŲØŁ _ŚŁ¾" + +#: ../shell/ev-window.c:2824 +msgid "Rotate _Right" +msgstr "ŚŲ±Ų®Ų“ ŲØŁ _Ų±Ų§Ų³ŲŖ" + +#: ../shell/ev-window.c:2829 +msgid "Enlarge the document" +msgstr "ŲØŲ²Ų±ŚÆ Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:2832 +msgid "Shrink the document" +msgstr "Ś©ŁŚŚ© Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:2834 +msgid "_Reload" +msgstr "_ŲØŲ§Ų²Ų®ŁŲ§ŁŪ" + +#: ../shell/ev-window.c:2835 +msgid "Reload the document" +msgstr "ŲØŲ§Ų²Ų®ŁŲ§ŁŪ ŁŁŲ“ŲŖŲ§Ų±" + +#. Go menu +#: ../shell/ev-window.c:2839 +msgid "_Previous Page" +msgstr "ŲµŁŲŁŁ _ŁŲØŁ" + +#: ../shell/ev-window.c:2840 +msgid "Go to the previous page" +msgstr "Ų±ŁŲŖŁ ŲØŁ ŲµŁŲŁŁ ŁŲØŁ" + +#: ../shell/ev-window.c:2842 +msgid "_Next Page" +msgstr "ŲµŁŲŁŁ _ŲØŲ¹ŲÆ" + +#: ../shell/ev-window.c:2843 +msgid "Go to the next page" +msgstr "Ų±ŁŲŖŁ ŲØŁ ŲµŁŲŁŁ ŲØŲ¹ŲÆ" + +#: ../shell/ev-window.c:2845 +msgid "_First Page" +msgstr "ŲµŁŲŁŁ _Ų§ŁŁ" + +#: ../shell/ev-window.c:2846 +msgid "Go to the first page" +msgstr "Ų±ŁŲŖŁ ŲØŁ ŲµŁŲŁŁ Ų§ŁŁ" + +#: ../shell/ev-window.c:2848 +msgid "_Last Page" +msgstr "Ų¢_Ų®Ų±ŪŁ ŲµŁŲŁ" + +#: ../shell/ev-window.c:2849 +msgid "Go to the last page" +msgstr "Ų±ŁŲŖŁ ŲØŁ ŲµŁŲŁŁ Ų¢Ų®Ų±" + +#. Help menu +#: ../shell/ev-window.c:2853 +msgid "_Contents" +msgstr "_Ł ŲŲŖŁŪŲ§ŲŖ" + +#: ../shell/ev-window.c:2856 +msgid "_About" +msgstr "_ŲÆŲ±ŲØŲ§Ų±Ł" + +#: ../shell/ev-window.c:2861 +msgid "Leave fullscreen mode" +msgstr "ŲŖŲ±Ś© ŲŲ§ŁŲŖ ŲŖŁ Ų§Ł ŲµŁŲŁ" + +#. View Menu +#: ../shell/ev-window.c:2912 +msgid "_Toolbar" +msgstr "ŁŁŲ§Ų± Ų§_ŲØŲ²Ų§Ų±" + +#: ../shell/ev-window.c:2913 +msgid "Show or hide the toolbar" +msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŪŲ§ Ł Ų®ŁŪ Ś©Ų±ŲÆŁ ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų±" + +#: ../shell/ev-window.c:2915 +msgid "Side _Pane" +msgstr "_ŁŲ§ŲØ Ś©ŁŲ§Ų±Ū" + +#: ../shell/ev-window.c:2916 +msgid "Show or hide the side pane" +msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŪŲ§ Ł Ų®ŁŪ Ś©Ų±ŲÆŁ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū" + +#: ../shell/ev-window.c:2918 +msgid "_Continuous" +msgstr "_Ł¾ŪŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:2919 +msgid "Show the entire document" +msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŁŁ ŁŁ ŁŁŲ“ŲŖŲ§Ų±" + +#: ../shell/ev-window.c:2921 +msgid "_Dual" +msgstr "_ŲÆŁŲŖŲ§ŪŪ" + +#: ../shell/ev-window.c:2922 +msgid "Show two pages at once" +msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŲÆŁ ŲµŁŲŁ ŲÆŲ± ŪŚ© Ų²Ł Ų§Ł" + +#: ../shell/ev-window.c:2924 +msgid "_Fullscreen" +msgstr "_ŲŖŁ Ų§Ł āŲµŁŲŁ" + +#: ../shell/ev-window.c:2925 +msgid "Expand the window to fill the screen" +msgstr "ŲØŲ²Ų±ŚÆ Ś©Ų±ŲÆŁ Ł¾ŁŲ¬Ų±Ł ŲŖŲ§ Ų¬Ų§ŪŪ Ś©Ł ŲŖŁ Ų§Ł ŲµŁŲŁ Ų±Ų§ Ł¾Ų± Ś©ŁŲÆ" + +#: ../shell/ev-window.c:2927 +msgid "_Presentation" +msgstr "Ų§_Ų±Ų§Ų¦Ł" + +#: ../shell/ev-window.c:2928 +msgid "Run document as a presentation" +msgstr "Ų§Ų¬Ų±Ų§Ū ŁŁŲ“ŲŖŲ§Ų± ŲØŁ ŲµŁŲ±ŲŖ Ų§Ų±Ų§Ų¦ŁŁ Ł Ų·ŁŲØ" + +#: ../shell/ev-window.c:2930 +msgid "_Best Fit" +msgstr "_ŲØŁŲŖŲ±ŪŁ Ų§ŁŲÆŲ§Ų²Ł" + +#: ../shell/ev-window.c:2931 +msgid "Make the current document fill the window" +msgstr "ŁŁŲ“ŲŖŲ§Ų± ŁŲ¹ŁŪ ŲŖŁ Ų§Ł Ł¾ŁŲ¬Ų±Ł Ų±Ų§ Ł¾Ų± Ś©ŁŲÆ" + +#: ../shell/ev-window.c:2933 +msgid "Fit Page _Width" +msgstr "Ų¬Ų§ ŲÆŲ§ŲÆŁ _Ų¹Ų±Ų¶ ŲµŁŲŁ" + +#: ../shell/ev-window.c:2934 +msgid "Make the current document fill the window width" +msgstr "ŁŁŲ“ŲŖŲ§Ų± ŁŲ¹ŁŪ Ų¹Ų±Ų¶ Ł¾ŁŲ¬Ų±Ł Ų±Ų§ Ł¾Ų± Ś©ŁŲÆ" + +#. Links +#: ../shell/ev-window.c:2941 +msgid "_Open Link" +msgstr "_ŲØŲ§Ų² Ś©Ų±ŲÆŁ Ł¾ŪŁŁŲÆ" + +#: ../shell/ev-window.c:2943 +msgid "_Go To" +msgstr "_Ų±ŁŲŖŁ ŲØŁ" + +#: ../shell/ev-window.c:2945 +msgid "_Copy Link Address" +msgstr "_ŁŲ³Ų®ŁāŲØŲ±ŲÆŲ§Ų±Ū Ų§Ų² ŁŲ“Ų§ŁŪ Ł¾ŪŁŁŲÆ" + +#: ../shell/ev-window.c:3005 +msgid "Page" +msgstr "ŲµŁŲŁ" + +#: ../shell/ev-window.c:3006 +msgid "Select Page" +msgstr "Ų§ŁŲŖŲ®Ų§ŲØ ŲµŁŲŁ" + +#: ../shell/ev-window.c:3018 +msgid "Zoom" +msgstr "Ų²ŁŁ " + +#: ../shell/ev-window.c:3020 +msgid "Adjust the zoom level" +msgstr "ŲŖŁŲøŪŁ Ų³Ų·Ų Ų²ŁŁ " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3036 +msgid "Previous" +msgstr "ŁŲØŁŪ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3042 +msgid "Next" +msgstr "ŲØŲ¹ŲÆŪ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3046 +msgid "Zoom In" +msgstr "Ų²ŁŁ ŲØŁ ŲÆŲ§Ų®Ł" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3051 +msgid "Zoom Out" +msgstr "Ų²ŁŁ ŲØŁ Ų®Ų§Ų±Ų¬" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3061 +msgid "Fit Width" +msgstr "Ų¬Ų§ ŲÆŲ§ŲÆŁ Ų¹Ų±Ų¶" + +#: ../shell/ev-window-title.c:140 +#, c-format +msgid "%s - Password Required" +msgstr "ā%s Ł ŚÆŲ°Ų±ŁŲ§ŚŁ ŁŲ§Ų²Ł Ų§Ų³ŲŖ" + +#: ../shell/main.c:50 +msgid "The page of the document to display." +msgstr "ŲµŁŲŁāŲ§Ū Ų§Ų² ŁŁŲ“ŲŖŲ§Ų± Ś©Ł ŁŁ Ų§ŪŲ“ ŲÆŲ§ŲÆŁ Ų“ŁŲÆ." + +#: ../shell/main.c:50 +msgid "PAGE" +msgstr "ŲµŁŲŁ" + +#: ../shell/main.c:286 +msgid "Evince Document Viewer" +msgstr "ŁŁ Ų§ŪŲ“ŚÆŲ± ŁŁŲ“ŲŖŲ§Ų± Evince" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŲÆŁ ŚÆŲ²ŪŁŁŁ ŲØŁŁŪ Ł Ł Ś©Ł Ų§Ų³ŲŖŲ ŲÆŲ±Ų³ŲŖ Ł Ų³Ų·ŁŲ±ŁāŲ³Ų§Ų²Ū Ų±Ų§ ŲØŁ Ś©Ų§Ų± Ł ŪāŲ§ŁŲÆŲ§Ų²ŲÆ Ł ŁŲ§ŲÆŲ±Ų³ŲŖ Ų§ŪŲ¬Ų§ŲÆ " +"Ł Ų³Ų·ŁŲ±ŁāŁŲ§Ū Ų¬ŲÆŪŲÆ Ų±Ų§ ŁŲ·Ų¹ Ł ŪāŚ©ŁŲÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ŲØŁ Ś©Ų§Ų± Ų§ŁŲÆŲ§Ų®ŲŖŁ Ł Ų³Ų·ŁŲ±ŁāŲ³Ų§Ų²Ū ŲØŲ±Ų§Ū ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŁŲ±Ł Ų§Ł Ł Ų³Ų·ŁŲ±Ł ŲØŲ±Ų§Ū ŁŁŲ“ŲŖŲ§Ų±ŁŲ§Ū PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"ŁŲ±Ł Ų§Ł Ł Ų¹ŲŖŲØŲ± ŲØŁ ŁŁ Ų±Ų§Ł Ų¢Ų±ŚÆŁŁ Ų§ŁāŁŲ§ŪŪ ŲØŲ±Ų§Ū ŁŁŲ“ŲŖŲ§Ų± PDF. ŲØŲ±Ų§Ū Ų§Ų·ŁŲ§Ų¹Ų§ŲŖ ŲØŪŲ“ŲŖŲ± Ł Ų³ŲŖŁŲÆŲ§ŲŖ " +"Ł Ų³Ų·ŁŲ±ŁāŲ³Ų§Ų² ŁŲ§ŲŖŪŁŁŲ³ Ų±Ų§ ŲØŲØŪŁŪŲÆ." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Ų§ŁŲÆŲ§Ų²ŁŁ Ł¾ŪŲ“āŁŲ±Ų¶ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū" + +#~ msgid "Show sidebar by default" +#~ msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶" + +#~ msgid "Show statusbar by default" +#~ msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŁŁŲ§Ų± ŁŲ¶Ų¹ŪŲŖ ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶" + +#~ msgid "Show toolbar by default" +#~ msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų± ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū Ų“ŪŲ¦Ū Ų¬Ų§ŁŲØŪ Ų§Ų³ŲŖ Ś©Ł ŲŲ§ŁŪ ŁŁŲ±Ų³ŲŖāŁŲ§Ū ŁŁ Ų§ŪŁ Ł Ł Ų³Ų·ŁŲ±Ł Ų§Ų³ŲŖ. Ų§ŁŲÆŲ§Ų²ŁŁ " +#~ "Ł¾ŪŲ“āŁŲ±Ų¶Ų Ų¹Ų±Ų¶ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū Ų±Ų§ ŁŲ³ŲØŲŖ ŲØŁ ŁŲØŁŁ Ś©ŁŲ§Ų± Ł¾ŁŲ¬Ų±Ł ŲØŲ±ŲŲ³ŲØ ŁŁŲ·Ł ŲŖŲ¹ŪŪŁ Ł ŪāŚ©ŁŲÆ. " +#~ "ŁŲ± Ų¹ŲÆŲÆ ŲµŲŪŲŪ ŁŲ§ŲØŁ ŁŲØŁŁ Ų§Ų³ŲŖ. ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū ŁŪŚāŁŁŲŖ Ų§Ų² Ų§ŁŲÆŲ§Ų²ŁŁ Ł ŲŖŁ ŁŲ§Ų²Ł ŲØŲ±Ų§Ū " +#~ "ŁŁ Ų§ŪŲ“ Ł Ų³Ų·ŁŲ±ŁāŁŲ§ ŪŲ§ ŁŁ Ų§ŪŁ Ś©ŁŚŚ©ŲŖŲ± ŁŁ ŪāŲ“ŁŲÆ. Ł ŁŲ§ŲÆŪŲ± ŲØŲ²Ų±ŚÆ Ų³ŲØŲØ Ł ŪāŲ“ŁŁŲÆ Ś©Ł ŲØŲ³ŲŖŁ ŲØŁ " +#~ "Ų§ŁŲÆŲ§Ų²ŁŁ Ł¾ŁŲ¬Ų±ŁŲ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū ŲŖŲ§ Ų¬Ų§ŪŪ Ų§Ų² Ł ŲŁŲ·ŁŁ ŁŁ Ų§ŪŲ“ ŲµŁŲŁ Ų±Ų§ Ś©Ł Ų§Ł Ś©Ų§Ł ŲÆŲ§Ų±ŲÆŲ " +#~ "Ų§Ų“ŲŗŲ§Ł Ś©ŁŲÆ." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū Ų“ŪŲ¦Ū Ų¬Ų§ŁŲØŪ Ų§Ų³ŲŖ Ś©Ł ŲŲ§ŁŪ ŁŁŲ±Ų³ŲŖāŁŲ§Ū ŁŁ Ų§ŪŁ Ł Ł Ų³Ų·ŁŲ±Ł Ų§Ų³ŲŖ. ŲÆŁ ŚÆŲ²ŪŁŁŁ " +#~ "ŲØŁŁŪ Ł Ł Ś©Ł Ų§Ų³ŲŖ: ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŲØŲ§Ų“ŲÆ ŲÆŲ± ŲŲ§ŁŪ " +#~ "Ś©Ł ŁŲ§ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± Ś©ŁŲ§Ų±Ū ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŁŲØŲ§Ų“ŲÆ." + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "ŁŁŲ§Ų± ŁŲ¶Ų¹ŪŲŖŲ ŁŁŲ§Ų± ŲÆŚ©Ł ŁŁ Ų§Ų³ŲŖŲ§ŁŲÆŲ§Ų±ŲÆŪ Ų§Ų³ŲŖ Ś©Ł Ų§Ų·ŁŲ§Ų¹Ų§ŲŖ Ų§Ų¶Ų§ŁŪ ŲÆŲ±ŲØŲ§Ų±ŁŁ Ł¾ŪŁŁŲÆāŁŲ§ Ł " +#~ "Ś©ŁŲ“āŁŲ§Ū ŲÆŪŚÆŲ± ŁŁ Ų§ŪŲ“ Ł ŪāŲÆŁŲÆ. ŲÆŁ ŚÆŲ²ŪŁŁŁ ŲØŁŁŪ Ł Ł Ś©Ł Ų§Ų³ŲŖ: ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± " +#~ "ŁŲ¶Ų¹ŪŲŖ ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŲØŲ§Ų“ŲÆ ŲÆŲ± ŲŲ§ŁŪ Ś©Ł ŁŲ§ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± ŁŲ¶Ų¹ŪŲŖ ŲØŁ " +#~ "Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŁŲØŲ§Ų“ŲÆ." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų±Ų ŁŁŲ§Ų± ŲØŲ§ŁŲ§Ū ŲµŁŲŁ Ų§Ų³ŲŖ Ś©Ł ŲŲ§ŁŪ Ś©ŁŲŖŲ±ŁāŁŲ§Ū ŲŲ±Ś©ŲŖ Ł Ų²ŁŁ Ų§Ų³ŲŖ. ŲÆŁ " +#~ "ŚÆŲ²ŪŁŁŁ ŲØŁŁŪ Ł Ł Ś©Ł Ų§Ų³ŲŖ: ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų± ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŲØŲ§Ų“ŲÆ " +#~ "ŲÆŲ± ŲŲ§ŁŪ Ś©Ł ŁŲ§ŲÆŲ±Ų³ŲŖ ŲØŲ§Ų¹Ų« Ł ŪāŲ“ŁŲÆ ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų± ŲØŁ Ų·ŁŲ± Ł¾ŪŲ“āŁŲ±Ų¶ Ł Ų±Ų¦Ū ŁŲØŲ§Ų“ŲÆ." + +#~ msgid "Unable to find glade file" +#~ msgstr "Ų°Ų®ŪŲ±ŁŁ Ł¾Ų±ŁŁŲÆŁŁ glade Ł Ł Ś©Ł ŁŪŲ³ŲŖ" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "Ł¾Ų±ŁŁŲÆŁŁ glade ŲØŁ ŁŲ§Ł %s ŪŲ§ŁŲŖŁ ŁŲ“ŲÆ. ŁŲ·ŁŲ§Ł ŲØŲ±Ų±Ų³Ū Ś©ŁŪŲÆ Ś©Ł ŁŲµŲØŲŖŲ§Ł Ś©Ų§Ł Ł ŲØŲ§Ų“ŲÆ." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "ŁŁ Ų§ŪŲ“ŚÆŲ± ŁŁŲ“ŲŖŲ§Ų± Ł ŚÆŲ°Ų±ŁŲ§ŚŁ ŁŲ§Ų²Ł Ų§Ų³ŲŖ" + +#~ msgid "Loading document. Please wait" +#~ msgstr "ŲÆŲ± ŲŲ§Ł ŲØŲ§Ų± Ś©Ų±ŲÆŁ ŁŁŲ“ŲŖŲ§Ų±. ŁŲ·ŁŲ§Ł ŲµŲØŲ± Ś©ŁŪŲÆ" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Ų°Ų®ŪŲ±ŁŁ ŁŁŲ“ŲŖŲ§Ų± ŁŲ¹ŁŪ ŲØŲ§ ŪŚ© ŁŲ§Ł Ł¾Ų±ŁŁŲÆŁŁ Ų¬ŲÆŪŲÆ" + +#~ msgid "View the properties of this document" +#~ msgstr "ŁŁ Ų§ŪŲ“ ŁŪŚŚÆŪāŁŲ§Ū Ų§ŪŁ ŁŁŲ“ŲŖŲ§Ų±" + +#~ msgid "Close this window" +#~ msgstr "ŲØŲ³ŲŖŁ Ų§ŪŁ Ł¾ŁŲ¬Ų±Ł" + +#~ msgid "Copy text from the document" +#~ msgstr "ŁŲ³Ų®ŁāŲØŲ±ŲÆŲ§Ų±Ū Ų§Ų² Ł ŲŖŁ ŁŁŲ“ŲŖŲ§Ų±" + +#~ msgid "Select the entire page" +#~ msgstr "Ų§ŁŲŖŲ®Ų§ŲØ Ś©Ł ŲµŁŲŁ" + +#~ msgid "Find next occurrence of the word or phrase" +#~ msgstr "Ł¾ŪŲÆŲ§ Ś©Ų±ŲÆŁ Ł ŁŲ±ŲÆ ŲØŲ¹ŲÆŪ ŁŁŁŲ¹ Ś©ŁŁ Ł ŪŲ§ Ų¹ŲØŲ§Ų±ŲŖ" + +#~ msgid "Customize the toolbar" +#~ msgstr "Ų³ŁŲ§Ų±Ų“Ū Ś©Ų±ŲÆŁ ŁŁŲ§Ų± Ų§ŲØŲ²Ų§Ų±" + +#~ msgid "Rotate the document to the left" +#~ msgstr "ŚŲ±Ų®Ų§ŁŲÆŁ ŁŁŲ“ŲŖŲ§Ų± ŲØŁ ŚŁ¾" + +#~ msgid "Rotate the document to the right" +#~ msgstr "ŚŲ±Ų®Ų§ŁŲÆŁ ŁŁŲ“ŲŖŲ§Ų± ŲØŁ Ų±Ų§Ų³ŲŖ" + +#~ msgid "Display help for the viewer application" +#~ msgstr "ŁŁ Ų§ŪŲ“ Ų±Ų§ŁŁŁ Ų§Ū ŲØŲ±ŁŲ§Ł ŁŁ ŁŁ Ų§ŪŲ“ŚÆŲ±" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "ŁŁ Ų§ŪŲ“ ŁŁŲ±Ų³ŲŖ Ų§Ų³Ų§Ł Ū Ų³Ų§Ų²ŁŲÆŚÆŲ§Ł ŁŁ Ų§ŪŲ“ŚÆŲ± ŁŁŲ“ŲŖŲ§Ų±" + +#~ msgid "Scroll one page forward" +#~ msgstr "ŁŲŗŲ²Ų“ ŲØŁ ŪŚ© ŲµŁŲŁ Ų¬ŁŁŲŖŲ±" + +#~ msgid "Scroll one page backward" +#~ msgstr "ŁŲŗŲ²Ų“ ŲØŁ ŪŚ© ŲµŁŲŁ Ų¹ŁŲØāŲŖŲ±" + +#~ msgid "Focus the page selector" +#~ msgstr "ŲŖŁ Ų±Ś©Ų² Ų±ŁŪ Ų§ŁŲŖŲ®Ų§ŲØāŚÆŲ± ŲµŁŲŁ" + +#~ msgid "Go ten pages backward" +#~ msgstr "Ų±ŁŲŖŁ ŲØŁ ŲÆŁ ŲµŁŲŁ Ų¹ŁŲØāŲŖŲ±" + +#~ msgid "Go ten pages forward" +#~ msgstr "Ų±ŁŲŖŁ ŲØŁ ŲÆŁ ŲµŁŲŁ Ų¬ŁŁŲŖŲ±" + +#~ msgid "_Statusbar" +#~ msgstr "ŁŁŲ§Ų± _ŁŲ¶Ų¹ŪŲŖ" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "ŁŲ“Ų§Ł ŲÆŲ§ŲÆŁ ŪŲ§ Ł Ų®ŁŪ Ś©Ų±ŲÆŁ ŁŁŲ§Ų± ŁŲ¶Ų¹ŪŲŖ" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 00000000..9051684b --- /dev/null +++ b/po/fi.po @@ -0,0 +1,1764 @@ +# Finnish translations for evince package. +# Copyright (C) 2005-2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Tommi Vainikainen <Tommi.Vainikainen@iki.fi>, 2005, 2009-2010. +# Ilkka Tuohela <hile@iki.fi>, 2005-2009. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-15 15:37+0200\n" +"PO-Revision-Date: 2010-03-15 15:37+0200\n" +"Last-Translator: Tommi Vainikainen <thv@iki.fi>\n" +"Language-Team: Finnish <mate-fi-laatu@lists.sourceforge.net>\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" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Virhe kƤynnistettƤessƤ komentoa ā%sā sarjakuvakirjan avaamiseksi: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Komento ā%sā epƤonnistui avaamaan sarjakuvakirjan." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Komento ā%sā ei pƤƤttynyt normaalisti." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ei ole sarjakuvakirjan MIME-tyyppi: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Ei lƶytynyt sopivaa komentoa, jolla avata tƤmƤn tyyppiset sarjakuvakirjat" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tuntematon MIME-tyyppi" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "Tiedosto on viallinen" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "Arkistossa ei ole tiedostoja" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "Arkistosta ā%sā ei lƶytynyt kuvia" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Tapahtui virhe poistaessa ā%sā." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Virhe %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Sarjakuvakirjat" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-asiakirjassa on virheellisiƤ muotoiluja" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Asiakirja koostuu useista tiedostoista, mutta yhtƤ tai useampia nƤistƤ " +"tiedostoista ei voitu avata." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-asiakirjat" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-asiakirjassa on virheellisiƤ muotoiluja" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-asiakirjat" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "TƤmƤ teos on vapaasti kƤytettƤvissƤ (public domain)" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "KyllƤ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Ei" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Tyyppi 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Tyyppi 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Tyyppi 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Tyyppi 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Tyyppi 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Tuntematon kirjasintyyppi" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Ei nimeƤ" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "Upotettu osajoukko" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "Upotettu" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "Ei upotettu" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-asiakirjat" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Virheellinen asiakirja" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-esitykset" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ei virhettƤ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Muisti ei riitƤ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ZIP-allekirjoitusta ei lƶydy" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Virheellinen ZIP-tiedosto" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Usean tiedoston sisƤltƤvƤt ZIP-tiedostot eivƤt ole tuettu" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Tiedostoa ei voi avata" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Tiedostosta ei voi lukea tietoja" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Tiedostoa ei lƶydy ZIP-arkistosta" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Tuntematon virhe" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Asiakirjan ā%sā lataaminen epƤonnistui" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Asiakirjan ā%sā tallennus epƤonnistui" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-asiakirjat" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "LiitettƤ ei voitu tallentaa ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "LiitettƤ ā%sā ei voi avata: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "LiitettƤ ā%sā ei voi avata" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Tiedostotyyppi %s (%s) ei ole tuettu" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Kaikki asiakirjat" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Kaikki tiedostot" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "TilapƤishakemiston luominen epƤonnistui: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "TilapƤishakemiston luominen epƤonnistui: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Tiedosto ei ole kelvollinen .desktop-tiedosto" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Tuntematon tyƶpƶytƤtiedoston versionumero ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Alkaen %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Sovellus ei hyvƤksy asiakirjoja komentoriviltƤ annettuna" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tuntematon kƤynnistysvalitsin: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Asiakirjojen URI:a ei voi antaa āType=Linkā-muotoisille tyƶpƶytƤlinkeille" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Kohta ei ole kƤynnistin" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ĆlƤ ota yhteyttƤ istunnonhallintaan" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Anna tiedosto, joka sisƤltƤƤ tallennetut asetukset" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "TIEDOSTO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Anna istunnonhallinnan tunniste" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Tunniste" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Istunnonhallinnan valitsimet:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "NƤytƤ istunnonhallinnan valitsimet" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "NƤytƤ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_SiirrƤ tyƶkalupalkissa" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "SiirrƤ valittua kohtaa tyƶkalupalkissa" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_Poista tyƶkalupalkista" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Poista valittu kohta tyƶkalupalkista" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_Poista tyƶkalupalkki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Poista valittu tyƶkalupalkki" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Erotin" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "Suoritus esitystilassa" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5341 +msgid "Best Fit" +msgstr "Paras sovitus" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Sovita sivun leveys" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400 %" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4205 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "Asiakirjakatselin" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Katsele monisivuisia asiakirjoja" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Ohita asiakirjan rajoitukset" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Ohita asiakirjan rajoitukset, kuten kopioinnin tai tulostuksen rajoitus." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Poista tilapƤistiedosto" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Tulosta asetustiedosto" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "Maten asiakirjojen esikatselu" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "Asiakirjaa ei voitu tulostaa" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Valittua tulostinta ā%sā ei lƶytynyt" + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5090 +msgid "_Previous Page" +msgstr "E_dellinen sivu" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5091 +msgid "Go to the previous page" +msgstr "Siirry edelliselle sivulle" + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5093 +msgid "_Next Page" +msgstr "_Seuraava sivu" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5094 +msgid "Go to the next page" +msgstr "Siirry seuraavalle sivulle" + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5077 +msgid "Enlarge the document" +msgstr "Suurenna asiakirjaa" + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5080 +msgid "Shrink the document" +msgstr "Kutista asiakirjaa" + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Tulosta" + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5048 +msgid "Print this document" +msgstr "Tulosta tƤmƤ asiakirja" + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5192 +msgid "_Best Fit" +msgstr "_Paras sovitus" + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5193 +msgid "Make the current document fill the window" +msgstr "Sovita nykyinen asiakirja ikkunan kokoiseksi" + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5195 +msgid "Fit Page _Width" +msgstr "So_vita sivun leveys" + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5196 +msgid "Make the current document fill the window width" +msgstr "Sovita nykyinen asiakirja tƤyttƤmƤƤn ikkunan leveys" + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5263 +msgid "Page" +msgstr "Sivu" + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5264 +msgid "Select Page" +msgstr "Valitse sivu" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Asiakirja" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Otsikko:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Sijainti:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Aihe:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "TekijƤ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Avainsanat:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Tuottaja:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Luoja:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Luotu:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Muokattu:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "SivumƤƤrƤ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimoitu:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Muoto:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Turvallisuus:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Paperin koko:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Ei mitƤƤn" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "oletus:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f tuumaa" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, pysty (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, vaaka (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "Valmistellaan tulostustaā¦" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "ViimeistellƤƤnā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Tulostetaan sivua %d / %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "Tulostamista ei ole tuettu tƤmƤn tulostimen kohdalla." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "Virheellinen sivuvalinta" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "Varoitus" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "Tulostuksen sivualuevalinta ei sisƤllƤ yhtƤƤn sivua" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "Sivun skaalaus:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Kutista tulostettavaan alueeseen" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Sovita tulostettavaan alueeseen" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Skaalaa asiakirjan sivut sopimaan tulostimen sivuille. Valitse yksi " +"seuraavista:\n" +"\n" +"ā¢ āEi mitƤƤnā: Sivunskaalausta ei tehdƤ.\n" +"\n" +"ā¢ āKutista tulostettavaan alueeseenā: Tulostettavaa aluetta suuremmat " +"asiakirjan sivut kutistetaan sopimaan tulostimen sivun tulostettaan " +"alueeseen.\n" +"\n" +"ā¢ āSovita tulostettavaan alueeseenā: Asiakirjan sivuja kasvatetaan tai " +"kutistetaan tarpeen mukaan sopimaan tulostimen sivun tulostettavaan " +"alueeseen.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "KƤƤnnƤ ja keskitƤ automaattisesti" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"KƤƤnnƤ tulostimen sivusuunta jokaiselle sivulle tƤsmƤƤmƤƤn asiakirjan sivun " +"suuntaa. Asiakirjan sivut keskitetƤƤn tulostettavalle sivulle." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "Valitse sivukoko kƤyttƤmƤllƤ asiakirjan sivukokoa" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Jos valittuna, jokainen sivu tulostetaan samaan paperikokoon kuin asiakirjan " +"sivu." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "SivunkƤsittely" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Sivun %d tulostus epƤonnistui: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "VieritƤ ylƶs" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "VieritƤ alas" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "VieritƤ nƤkymƤƤ ylƶs" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "VieritƤ nƤkymƤƤ alas" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Asiakirjan nƤyttƶ" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "Siirry sivulle:" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "Esitys pƤƤttyi. Sulje napsauttamalla." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "Siirry ensimmƤiselle sivulle" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "Siirry edelliselle sivulle" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "Siirry seuraavalle sivulle" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "Siirry viimeiselle sivulle" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "Siirry sivulle" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "Etsi" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "Siirry sivulle %s" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Siirry kohtaan %s tiedostossa ā%sā" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "Siirry tiedostoon ā%sā" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "KƤynnistƤ %s" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Ladataanā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Etsi:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5065 +msgid "Find Pre_vious" +msgstr "Etsi edellinen" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Etsi haettavan merkkijonon edellinen osuma" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5063 +msgid "Find Ne_xt" +msgstr "Etsi _seuraava" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Etsi haettavan merkkijonon seuraava osuma" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Kirjainkoko huomioidaan" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Huomioidaanko kirjainkoko hauissa" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Salasana asiakirjalle %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Muunnetaan %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d/%d asiakirjaa muunnettu" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "Muunnetaan metatietoja" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evincen kƤyttƤmƤ metatietomuoto on muuttunut ja se pitƤƤ muuntaa. MikƤli " +"muunnos keskeytetƤƤn, metatietojen tallennus ei toimi." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Avaa ƤskettƤin kƤytetty asiakirja" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"TƤmƤ asiakirja on lukittu ja voidaan lukea vain syƶttƤmƤllƤ oikea salasana." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "Avaa asiakirja _lukituksesta" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "SyƶtƤ salasana" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Salasana tarvitaan" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Asiakirja ā%sā on lukittu ja vaatii salasanan ennen kuin se voidaan avata." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Salasana:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "_Unohda salasana heti" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "_Muista salasana uloskirjautumiseen saakka" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "Muista _pysyvƤsti" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Ominaisuudet" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "Yleinen" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Kirjasimet" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "Asiakirjan lisenssi" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Kirjasin" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "KerƤtƤƤn kirjasintietoaā¦ %3d %%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "KƤyttƶehdot" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "Lisenssiteksti" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "LisƤtietoa" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Liitteet" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Tasot" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Tulostaā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Hakemisto" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "Pienoiskuvat" + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s ā %s" +msgstr "Sivu %s ā %s" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "Sivu %s" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "Asiakirja ei sisƤllƤ yhtƤƤn sivua" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "Asiakirja sisƤltƤƤ vain tyhjiƤ sivuja" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "Asiakirjaa ei voitu avata" + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Ladataan asiakirjaa lƤhteestƤ ā%sā" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Noudetaan asiakirjaa (%d %%)" + +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "EtƤtiedostoa ei voitu ladata." + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "Ladataan asiakirja uudestaan lƤhteestƤ %s" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "Asiakirjaa ei voitu ladata uudestaan." + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "Avaa asiakirja" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "Tallennetaan asiakirjaa kohteeseen %s" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "Tallennetaan liitettƤ kohteeseen %s" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "Tallennetaan kuvaa kohteeseen %s" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Tiedostoa ei voitu tallentaa nimellƤ ā%sā." + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ViedƤƤn asiakirjaa (%d %%)" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ViedƤƤn liitettƤ (%d %%)" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ViedƤƤn kuvaa (%d %%)" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "Tallenna kopio" + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d odottava tyƶ jonossa" +msgstr[1] "%d odottavaa tyƶtƤ jonossa" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "Tulostetaan tyƶtƤ ā%sā" + +#: ../shell/ev-window.c:3274 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Odotetaanko ennen sulkemista kunnes tulostustyƶ ā%sā on valmis?" + +#: ../shell/ev-window.c:3277 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d tulostustyƶtƤ on kesken. Haluatko odottaa ennen sulkemista niiden " +"valmistumista?" + +#: ../shell/ev-window.c:3289 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Jos suljet ikkunat, odottavia tulostustƶitƤ ei tulosteta." + +#: ../shell/ev-window.c:3293 +msgid "Cancel _print and Close" +msgstr "Peru _tulostus ja sulje" + +#: ../shell/ev-window.c:3297 +msgid "Close _after Printing" +msgstr "Sulje tulostuksen _jƤlkeen" + +#: ../shell/ev-window.c:3858 +msgid "Toolbar Editor" +msgstr "Tyƶkalupalkin muokkain" + +#: ../shell/ev-window.c:3990 +msgid "There was an error displaying help" +msgstr "Tapahtui virhe nƤytettƤessƤ ohjetta" + +#: ../shell/ev-window.c:4201 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Asiakirjakatselin\n" +"KƤyttƤƤ kirjastoa %s (%s)" + +#: ../shell/ev-window.c:4232 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince on vapaa ohjelma; voit levittƤƤ sitƤ edelleen ja/tai muokata sitƤ GNU:" +"n GPL-lisenssin sallimilla tavoilla siten kuin Free Software Foundation on " +"sen mƤƤritellyt; voit halutessasi kƤyttƤƤ lisenssin versiota 2 taikka mitƤ " +"tahansa tƤmƤn jƤlkeen ilmestynyttƤ versiota.\n" + +#: ../shell/ev-window.c:4236 +msgid "" +"Evince 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.\n" +msgstr "" +"EvinceƤ levitetƤƤn siinƤ toivossa, ettƤ siitƤ on hyƶtyƤ, mutta ILMAN MITĆĆN " +"TAKUUTA; jopa ilman konkludenttista takuuta MYYNTIKELPOISUUDESTA TAI " +"SOVELTUMISESTA TIETTYYN ERITYISEEN TARKOITUKSEEN. Yksityiskohtien osalta " +"katso GNU:n GPL-lisenssiƤ.\n" + +#: ../shell/ev-window.c:4240 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Sinun olisi pitƤnyt saada kopio GNU:n GPL-lisenssistƤ Evincen mukana; jos et " +"sitƤ saanut, niin lƤhetƤ kirje Free Software Foundation, Inc. :lle, 59 " +"Temple Place - Suite 330, Boston, MA 02111-1307, USA\n" + +#: ../shell/ev-window.c:4265 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4268 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evincen tekijƤt" + +#: ../shell/ev-window.c:4274 +msgid "translator-credits" +msgstr "" +"Ilkka Tuohela, 2005-2008\n" +"Tommi Vainikainen, 2005, 2009\n" +"\n" +"http://mate.fi/" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4543 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d osuma tƤllƤ sivulla" +msgstr[1] "%d osumaa tƤllƤ sivulla" + +#: ../shell/ev-window.c:4551 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d %% haettavasta jƤljellƤ" + +#: ../shell/ev-window.c:5028 +msgid "_File" +msgstr "_Tiedosto" + +#: ../shell/ev-window.c:5029 +msgid "_Edit" +msgstr "_Muokkaa" + +#: ../shell/ev-window.c:5030 +msgid "_View" +msgstr "_NƤytƤ" + +#: ../shell/ev-window.c:5031 +msgid "_Go" +msgstr "_Siirry" + +#: ../shell/ev-window.c:5032 +msgid "_Help" +msgstr "O_hje" + +#. File menu +#: ../shell/ev-window.c:5035 ../shell/ev-window.c:5303 +msgid "_Openā¦" +msgstr "_Avaaā¦" + +#: ../shell/ev-window.c:5036 ../shell/ev-window.c:5304 +msgid "Open an existing document" +msgstr "Avaa olemassaoleva asiakirja" + +#: ../shell/ev-window.c:5038 +msgid "Op_en a Copy" +msgstr "Avaa _kopio" + +#: ../shell/ev-window.c:5039 +msgid "Open a copy of the current document in a new window" +msgstr "Avaa kopio nykyisestƤ asiakirjasta uudessa ikkunassa" + +#: ../shell/ev-window.c:5041 +msgid "_Save a Copyā¦" +msgstr "_Tallenna kopioā¦" + +#: ../shell/ev-window.c:5042 +msgid "Save a copy of the current document" +msgstr "Tallenna kopio tƤmƤnhetkisestƤ asiakirjasta" + +#: ../shell/ev-window.c:5044 +msgid "Page Set_upā¦" +msgstr "_Sivuasetuksetā¦" + +#: ../shell/ev-window.c:5045 +msgid "Set up the page settings for printing" +msgstr "MƤƤrittele sivuasetukset tulostusta varten" + +#: ../shell/ev-window.c:5047 +msgid "_Printā¦" +msgstr "_Tulostaā¦" + +#: ../shell/ev-window.c:5050 +msgid "P_roperties" +msgstr "O_minaisuudet" + +#: ../shell/ev-window.c:5058 +msgid "Select _All" +msgstr "Valitse k_aikki" + +#: ../shell/ev-window.c:5060 +msgid "_Findā¦" +msgstr "_Etsiā¦" + +#: ../shell/ev-window.c:5061 +msgid "Find a word or phrase in the document" +msgstr "Etsi sanaa tai lausetta asiakirjasta" + +#: ../shell/ev-window.c:5067 +msgid "T_oolbar" +msgstr "_Tyƶkalupalkki" + +#: ../shell/ev-window.c:5069 +msgid "Rotate _Left" +msgstr "KierrƤ _vasemmalle" + +#: ../shell/ev-window.c:5071 +msgid "Rotate _Right" +msgstr "KierrƤ _oikealle" + +#: ../shell/ev-window.c:5082 +msgid "_Reload" +msgstr "_Lataa uudestaan" + +#: ../shell/ev-window.c:5083 +msgid "Reload the document" +msgstr "Lataa asiakirja uudestaan" + +#: ../shell/ev-window.c:5086 +msgid "Auto_scroll" +msgstr "VieritƤ _automaattisesti" + +#: ../shell/ev-window.c:5096 +msgid "_First Page" +msgstr "_EnsimmƤinen sivu" + +#: ../shell/ev-window.c:5097 +msgid "Go to the first page" +msgstr "Siirry ensimmƤiselle sivulle" + +#: ../shell/ev-window.c:5099 +msgid "_Last Page" +msgstr "_Viimeinen sivu" + +#: ../shell/ev-window.c:5100 +msgid "Go to the last page" +msgstr "Siirry viimeiselle sivulle" + +#. Help menu +#: ../shell/ev-window.c:5104 +msgid "_Contents" +msgstr "_SisƤltƶ" + +#: ../shell/ev-window.c:5107 +msgid "_About" +msgstr "_Tietoja" + +#. Toolbar-only +#: ../shell/ev-window.c:5111 +msgid "Leave Fullscreen" +msgstr "Lopeta kokoruutu" + +#: ../shell/ev-window.c:5112 +msgid "Leave fullscreen mode" +msgstr "Lopeta kokoruututila" + +#: ../shell/ev-window.c:5114 +msgid "Start Presentation" +msgstr "KƤynnistƤ esitys" + +#: ../shell/ev-window.c:5115 +msgid "Start a presentation" +msgstr "KƤynnistƤ asiakirjan esitys" + +#. View Menu +#: ../shell/ev-window.c:5174 +msgid "_Toolbar" +msgstr "_Tyƶkalupalkki" + +#: ../shell/ev-window.c:5175 +msgid "Show or hide the toolbar" +msgstr "NƤytƤ tai piilota tyƶkalupalkki" + +#: ../shell/ev-window.c:5177 +msgid "Side _Pane" +msgstr "_Sivupaneeli" + +#: ../shell/ev-window.c:5178 +msgid "Show or hide the side pane" +msgstr "NƤytƤ tai piilota sivupaneeli" + +#: ../shell/ev-window.c:5180 +msgid "_Continuous" +msgstr "_Jatkuva" + +#: ../shell/ev-window.c:5181 +msgid "Show the entire document" +msgstr "NƤytƤ koko asiakirja" + +#: ../shell/ev-window.c:5183 +msgid "_Dual" +msgstr "K_aksi" + +#: ../shell/ev-window.c:5184 +msgid "Show two pages at once" +msgstr "NƤytƤ kaksi sivua kerrallaan" + +#: ../shell/ev-window.c:5186 +msgid "_Fullscreen" +msgstr "_Kokoruutu" + +#: ../shell/ev-window.c:5187 +msgid "Expand the window to fill the screen" +msgstr "Laajenna ikkuna tƤyttƤmƤƤn nƤyttƶ" + +#: ../shell/ev-window.c:5189 +msgid "Pre_sentation" +msgstr "E_sitys" + +#: ../shell/ev-window.c:5190 +msgid "Run document as a presentation" +msgstr "NƤytƤ asiakirja esityksenƤ" + +#: ../shell/ev-window.c:5198 +msgid "_Inverted Colors" +msgstr "_KƤƤnteiset vƤrit" + +#: ../shell/ev-window.c:5199 +msgid "Show page contents with the colors inverted" +msgstr "NƤytƤ sivun sisƤltƶ kƤƤnteisillƤ vƤreillƤ" + +#. Links +#: ../shell/ev-window.c:5207 +msgid "_Open Link" +msgstr "_Avaa linkki" + +#: ../shell/ev-window.c:5209 +msgid "_Go To" +msgstr "_Siirry" + +#: ../shell/ev-window.c:5211 +msgid "Open in New _Window" +msgstr "Avaa uudessa _ikkunassa" + +#: ../shell/ev-window.c:5213 +msgid "_Copy Link Address" +msgstr "_Kopioi linkin osoite" + +#: ../shell/ev-window.c:5215 +msgid "_Save Image Asā¦" +msgstr "_Tallenna kuva nimellƤā¦" + +#: ../shell/ev-window.c:5217 +msgid "Copy _Image" +msgstr "Kopioi _kuva" + +#: ../shell/ev-window.c:5222 +msgid "_Open Attachment" +msgstr "_Avaa liite" + +#: ../shell/ev-window.c:5224 +msgid "_Save Attachment Asā¦" +msgstr "_Tallenna liite nimellƤā¦" + +#: ../shell/ev-window.c:5277 +msgid "Zoom" +msgstr "Kuvasuhde" + +#: ../shell/ev-window.c:5279 +msgid "Adjust the zoom level" +msgstr "Muuta kuvasuhdetta" + +#: ../shell/ev-window.c:5289 +msgid "Navigation" +msgstr "Navigointi" + +#: ../shell/ev-window.c:5291 +msgid "Back" +msgstr "Takaisin" + +#. translators: this is the history action +#: ../shell/ev-window.c:5294 +msgid "Move across visited pages" +msgstr "Siirry luettujen sivujen vƤlillƤ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5324 +msgid "Previous" +msgstr "Edellinen" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5329 +msgid "Next" +msgstr "Seuraava" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Zoom In" +msgstr "LƤhennƤ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5337 +msgid "Zoom Out" +msgstr "Loitonna" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5345 +msgid "Fit Width" +msgstr "Sovita leveyteen" + +#: ../shell/ev-window.c:5506 ../shell/ev-window.c:5523 +msgid "Unable to launch external application." +msgstr "Ulkoista ohjelmaa ei voitu kƤynnistƤƤ." + +#: ../shell/ev-window.c:5580 +msgid "Unable to open external link" +msgstr "Ulkoista linkkiƤ ei voi avata" + +#: ../shell/ev-window.c:5747 +msgid "Couldn't find appropriate format to save image" +msgstr "Sopivaa tallennusmuotoa kuvalle ei lƶytynyt" + +#: ../shell/ev-window.c:5789 +msgid "The image could not be saved." +msgstr "Kuvaa ei voi tallentaa." + +#: ../shell/ev-window.c:5821 +msgid "Save Image" +msgstr "Tallenna kuva" + +#: ../shell/ev-window.c:5888 +msgid "Unable to open attachment" +msgstr "LiitettƤ ei voi avata" + +#: ../shell/ev-window.c:5941 +msgid "The attachment could not be saved." +msgstr "LiitettƤ ei voi tallentaa." + +#: ../shell/ev-window.c:5986 +msgid "Save Attachment" +msgstr "Tallenna liite" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā vaaditaan salasana" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "PƤƤtteen mukaan" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "Maten asiakirjakatselin" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "Asiakirjan sivu, joka nƤytetƤƤn." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "SIVU" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Suorita evince kokoruututilassa" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Suorita evince esitystilassa" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Suorita evince esikatselimena" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Asiakirjasta etsittƤvƤ sana tai lause" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "MERKKIJONO" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[TIEDOSTOā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Mahdolliset totuusarvot: ātrueā (tosi) ottaa pienoiskuvat kƤyttƶƶn, " +"āfalseā (epƤtosi) poistaa pienoiskuvien luomisen kƤytƶstƤ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Ota PDF-asiakirjojen pienoiskuvat kƤyttƶƶn" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Pienoiskuvakomento PDF-asiakirjoille" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Komento sekƤ argumentit PDF-asiakirjan pienoiskuvien tuottamiseen. Katso " +"lisƤtietoja Nautiluksen pienoiskuvien tuottajan ohjeista." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DVI-asiakirjan muoto virheellinen" + +#~ msgid "Search string" +#~ msgstr "Hakusana" + +#~ msgid "The name of the string to be found" +#~ msgstr "Merkkijonon nimi, jota etsitƤƤn" + +#~ msgid "Case sensitive" +#~ msgstr "Kirjainkoko huomioidaan" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TOSI kirjainkoon huomioivalle haulle" + +#~ msgid "Highlight color" +#~ msgstr "KorostusvƤri" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "KorostusvƤri kaikille osumille" + +#~ msgid "Current color" +#~ msgstr "Nykyinen vƤri" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "KorostusvƤri viimeisimmƤlle osumalle" + +#~ msgid "Recover previous documents?" +#~ msgstr "Palautetaanko aiemmat asiakirjat?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince nƤyttƤƤ sulkeutuneen odottamattomasti edellisellƤ ajokerralla. " +#~ "Voit palautta avatut asiakirjat." + +#~ msgid "_Don't Recover" +#~ msgstr "_ĆlƤ palauta" + +#~ msgid "_Recover" +#~ msgstr "_Palauta" + +#~ msgid "Crash Recovery" +#~ msgstr "Kaatumisesta palautuminen" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Symbolista linkkiƤ ā%sā ei voi luoda: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Kopioita ei voi avata." + +#~ msgid "Co_nnect" +#~ msgstr "_YhdistƤ" + +#~ msgid "Connect _anonymously" +#~ msgstr "YhdistƤ _anonyymisti" + +#~ msgid "Connect as u_ser:" +#~ msgstr "YhdistƤ _kƤyttƤjƤnƤ:" + +#~ msgid "_Username:" +#~ msgstr "_KƤyttƤjƤtunnus:" + +#~ msgid "_Domain:" +#~ msgstr "_Toimialue:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Unohda salasana heti" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Muista salasana uloskirjautumiseen saakka" + +#~ msgid "_Remember forever" +#~ msgstr "Muista _pysyvƤsti" + +#~ msgid "File not available" +#~ msgstr "Tiedosto ei saatavilla" + +#~ msgid "Remote files aren't supported" +#~ msgstr "EtƤtiedostot eivƤt ole tuettu" + +#~ msgid "Password Entry" +#~ msgstr "SalasanakenttƤ" + +#~ msgid "Remember password for this session" +#~ msgstr "Muista salasana tƤssƤ istunnossa" + +#~ msgid "Save password in keyring" +#~ msgstr "Tallenna salasana avainnippuun" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f Ć %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "Etsi edellinen" + +#~ msgid "Find Next" +#~ msgstr "Etsi seuraava" + +#~ msgid "Incorrect password" +#~ msgstr "VƤƤrƤ salasana" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince-asiakirjakatselin" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Statement" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Kalvo" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10Ć14" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Encapsulated PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Tulkinta epƤonnistui." + +#~ msgid "Images" +#~ msgstr "Kuvat" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "PDF:n generoinnille ei ole tukea" + +#~ msgid "Pages" +#~ msgstr "Sivut" + +#~ msgid "Error: dvipdfm exited with non-zero status." +#~ msgstr "Virhe: dvipdfm palautti muun arvon kuin nolla." + +#~ msgid "Empty" +#~ msgstr "TyhjƤ" + +#~ msgid "75%" +#~ msgstr "75 %" + +#~ msgid "No document loaded." +#~ msgstr "MitƤƤn asiakirjaa ei ole ladattu." + +#~ msgid "File is not readable." +#~ msgstr "Tiedostoa ei voi lukea." + +#~ msgid "Document loaded." +#~ msgstr "Asiakirja latautui." + +#~ msgid "Broken pipe." +#~ msgstr "Putkirikko." + +#~ msgid "_Previous" +#~ msgstr "E_dellinen" + +#~ msgid "_Next" +#~ msgstr "Seu_raava" + +#~ msgid "Not found" +#~ msgstr "Ei lƶytynyt" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Tekstin hakemista tuetaan vain PDF-asiakirjoissa." + +#~ msgid "*" +#~ msgstr "*" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 00000000..8cab0561 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,1747 @@ +# French translation of evince. +# Copyright (C) 2005-2010 The Free Software Foundation, Inc. +# This file is distributed under the GNU General Public License Version 2. +# +# Vincent Carriere <carriere_vincent@yahoo.fr>, 2005. +# Christophe Merlet <redfox@redfoxcenter.org>, 2005-2006. +# Vincent Untz <vuntz@gnome.org>, 2005. +# Thomas Vergnaud <thomas.vergnaud@laposte.net>, 2006. +# Guillaume Desmottes <cass@skynet.be>, 2006. +# Jonathan Ernst <jonathan@ernstfamily.ch>, 2006-2007, 2009. +# Robert-AndrĆ© Mauchin <zebob.m@pengzone.org>, 2006-2008. +# Damien Durand <splinux@fedoraproject.org>, 2006. +# Claude Paroz <claude@2xlibre.net>, 2007-2010. +# StĆ©phane Raimbault <stephane.raimbault@gmail.com>, 2007-2008. +# Pierre Lemaire <pierre.lemaire@kamick.org>, 2008. +# Milan Bouchet-Valat <nalimilan@club.fr>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-13 11:43+0000\n" +"PO-Revision-Date: 2010-09-20 11:51+0100\n" +"Last-Translator: Milan Bouchet-Valat <nalimilan@club.fr>\n" +"Language-Team: MATE French Team <matefr@traduc.org>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Erreur lors de l'exĆ©cution de la commande Ā« %s Ā» afin de dĆ©compresser la " +"bande dessinĆ©e : %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" +"La commande Ā« %s Ā» a Ć©chouĆ© lors de la dĆ©compression de la bande dessinĆ©e." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "La commande Ā« %s Ā» ne s'est pas terminĆ©e normalement." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Mauvais type MIME bande dessinĆ©e : %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Impossible de trouver une commande appropriĆ©e pour dĆ©compresser ce type de " +"bande dessinĆ©e" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Type MIME inconnu" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Fichier corrompu" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Aucun fichier dans l'archive" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Aucune image trouvĆ©e dans l'archive %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Une erreur est survenue lors de la suppression de Ā« %s Ā»." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Erreur %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Bandes dessinĆ©es" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Le document DjVu a un format incorrect" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Le document est composĆ© de plusieurs fichiers. Un ou plusieurs de ces\n" +"fichiers ne sont pas accessibles." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documents DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Le document DVI a un format incorrect" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documents DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Cette Åuvre est dans le domaine public" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Oui" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Non" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Type de police inconnu" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Sans nom" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Sous-ensemble intĆ©grĆ©" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "IntĆ©grĆ©" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Non intĆ©grĆ©" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documents PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Document non valide" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapos Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Aucune erreur" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "MĆ©moire insuffisante" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Impossible de trouver la signature ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Fichier ZIP non valide" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Les fichiers ZIP multiples ne sont pas pris en charge" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Impossible d'ouvrir le fichier" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Impossible de lire les donnĆ©es Ć partir du fichier" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Impossible de trouver un fichier dans l'archive ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Erreur inconnue" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Le chargement du document Ā« %s Ā» a Ć©chouĆ©" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "L'enregistrement du document Ā« %s Ā» a Ć©chouĆ©" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documents PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Impossible d'enregistrer la piĆØce jointe Ā« %s Ā» : %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Impossible d'ouvrir la piĆØce jointe Ā« %s Ā» : %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Impossible d'ouvrir la piĆØce jointe Ā« %s Ā»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Le type de fichier %s (%s) n'est pas pris en charge" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Tous les documents" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Tous les fichiers" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Impossible de crĆ©er un fichier temporaire : %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Impossible de crĆ©er un rĆ©pertoire temporaire : %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Le fichier n'est pas un fichier .desktop valide" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version Ā« %s Ā» du fichier .desktop non reconnue" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "DĆ©marrage de %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'application n'accepte pas les documents en ligne de commande" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Option de lancement non reconnue : %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossible de passer les URI de documents vers une entrĆ©e .desktop de type " +"Ā« Type=Link Ā»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "L'Ć©lĆ©ment n'est pas exĆ©cutable" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "DĆ©sactive la connexion au gestionnaire de sessions" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Indique un fichier contenant la configuration enregistrĆ©e" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FICHIER" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Indique l'ID de la gestion de sessions" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Options de gestion de sessions :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Afficher les options de gestion de sessions" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Afficher Ā« _%s Ā»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_DĆ©placer sur la barre d'outils" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "DĆ©place l'Ć©lĆ©ment sĆ©lectionnĆ© sur la barre d'outils" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Retirer de la barre d'outils" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Retire l'Ć©lĆ©ment sĆ©lectionnĆ© de la barre d'outils" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Supprimer la barre d'outils" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Supprime la barre d'outils sĆ©lectionnĆ©e" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "SĆ©parateur" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Taille idĆ©ale" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ajuster Ć la largeur de la page" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400 %" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visionneur de documents" + +# Utilisation de l'infinitif dans les infobulles du Bureau +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Afficher des documents multipages" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Passer outre les restrictions du document" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Passer outre les restrictions du document, par exemple sur la copie ou " +"l'impression." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Supprimer le fichier temporaire" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Imprimer le fichier de paramĆØtres" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "PrĆ©visualiseur de documents de MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "L'impression du document a Ć©chouĆ©" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "L'imprimante sĆ©lectionnĆ©e Ā« %s Ā» ne peut pas ĆŖtre trouvĆ©e" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "Page _prĆ©cĆ©dente" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Aller Ć la page prĆ©cĆ©dente" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "Page _suivante" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Aller Ć la page suivante" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Agrandir le document" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "RĆ©duire le document" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Imprimer" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Imprime ce document" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "Taille _idĆ©ale" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Ajuste le document actuel Ć la taille de la fenĆŖtre" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "_Ajuster Ć la largeur de la page" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Ajuste le document actuel Ć la largeur de la fenĆŖtre" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Page" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "SĆ©lectionne la page" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titre :" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Emplacement :" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Sujet :" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Auteur :" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Mots-clĆ©s :" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producteur :" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "CrĆ©ateur :" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "CrĆ©Ć© le :" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ModifiĆ© le :" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Nombre de pages :" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "OptimisĆ© :" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format :" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "SĆ©curitĆ© :" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Format de papier :" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Aucun" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f pouces" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, portrait (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, paysage (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d sur %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "sur %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Chargementā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "PrĆ©paration de l'impressionā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Finalisationā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Impression de la page %d sur %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "L'impression n'est pas prise en charge pour cette imprimante." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "SĆ©lection de pages non valide" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Avertissement" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Votre intervalle d'impression n'inclut aucune page" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Ajustement des pages :" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "RĆ©duire selon la zone imprimable" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Ajuster selon la zone imprimable" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Redimensionne les pages du document pour correspondre Ć la taille de page de " +"l'imprimante sĆ©lectionnĆ©e. Choisissez parmi les options suivantes :\n" +"\n" +"ā¢ Aucune : les pages ne sont pas redimensionnĆ©es.\n" +"\n" +"ā¢ RĆ©duire selon la zone imprimable : les pages plus grandes que la zone " +"imprimable sont rĆ©duites pour correspondre Ć la zone imprimable de " +"l'imprimante.\n" +"\n" +"ā¢ Ajuster selon la zone imprimable : les pages sont rĆ©duites ou agrandies " +"afin de correspondre au mieux Ć la zone imprimable de l'imprimante.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Pivoter et centrer automatiquement" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Fait pivoter les pages Ć l'impression selon l'orientation de chaque page du " +"document imprimĆ©. Les pages sont centrĆ©es dans la zone d'impression de " +"l'imprimante." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Choisir la taille du papier en fonction de celle des pages du document" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Si activĆ©, chaque page est imprimĆ©e selon la taille de papier indiquĆ©e dans " +"le document." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Gestion des pages" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Impossible d'imprimer la page %d : %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "DĆ©filer vers le haut" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "DĆ©filer vers le bas" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Faire dĆ©filer la vue vers le haut" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Faire dĆ©filer la vue vers le bas" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Vue du document" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Aller Ć la page :" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fin de la prĆ©sentation. Cliquez pour quitter." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Aller Ć la premiĆØre page" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Aller Ć la page prĆ©cĆ©dente" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Aller Ć la page suivante" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Aller Ć la derniĆØre page" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Aller Ć la page" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Rechercher" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Aller Ć la page %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Aller Ć %s sur le fichier Ā« %s Ā»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Aller Ć la page Ā« %s Ā»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Lancer %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Rechercher :" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "Rechercher le _prĆ©cĆ©dent" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Recherche l'occurrence prĆ©cĆ©dente de la chaĆ®ne" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "Rechercher le _suivant" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Recherche l'occurrence suivante de la chaĆ®ne" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Respecter la c_asse" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Utilise ou non une recherche sensible Ć la casse" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "IcĆ“ne :" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Note" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Commentaire" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ClĆ©" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Aide" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nouveau paragraphe" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragraphe" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Insertion" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Croix" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Cercle" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Inconnu" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "PropriĆ©tĆ©s des annotations" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Couleur :" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Style :" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaque" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Ćtat initial de la fenĆŖtre :" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ouvrir" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Fermer" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ExĆ©cution en mode prĆ©sentation" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Mot de passe pour le document %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Conversion de %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d documents sur %d convertis" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Conversion de mĆ©tadonnĆ©es" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Le format des mĆ©tadonnĆ©es utilisĆ©es par Evince a changĆ©, elles doivent donc " +"ĆŖtre adaptĆ©es. Si la migration est annulĆ©e, le stockage des mĆ©tadonnĆ©es ne " +"fonctionnera pas." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Ouvre un document rĆ©cemment utilisĆ©" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ce document est verrouillĆ© et ne peut ĆŖtre lu qu'en saisissant le mot de " +"passe correct." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_DĆ©verrouiller le document" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Saisissez le mot de passe" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Mot de passe requis" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Le document Ā« %s Ā» est verrouillĆ© et nĆ©cessite un mot de passe avant de " +"pouvoir ĆŖtre ouvert." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Mot de passe :" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_Oublier le mot de passe immĆ©diatement" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Se _souvenir du mot de passe pour cette session" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Se souvenir du mot de passe _indĆ©finiment" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "PropriĆ©tĆ©s" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "GĆ©nĆ©ral" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Polices" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licence du document" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Police" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Collecte des informations de policesā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Conditions d'utilisation" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Texte de la licence" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Informations complĆ©mentaires" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Liste" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Annotations" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Texte" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Ajouter une annotation texte" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Ajouter" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Le document ne contient aucune annotation" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Page %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "PiĆØces jointes" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Couches" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimerā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Vignettes" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Page %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Page %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Le document n'a aucune page" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Le document ne contient que des pages vides" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Impossible d'ouvrir le document" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Chargement du document Ć partir de Ā« %s Ā»" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "TĆ©lĆ©chargement du document (%d %%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Impossible de charger le fichier distant." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Rechargement du document Ć partir de %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Le rechargement du document a Ć©chouĆ©." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Ouvrir un document" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Enregistrement du document vers %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Enregistrement de la piĆØce jointe vers %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Enregistrement de l'image vers %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Le fichier ne peut pas ĆŖtre enregistrĆ© sous Ā« %s Ā»." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Envoi du document (%d %%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Envoi de la piĆØce jointe (%d %%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Envoi de l'image (%d %%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Enregistrer une copie" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d tĆ¢che en attente dans la file" +msgstr[1] "%d tĆ¢ches en attente dans la file" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Impression de la tĆ¢che Ā« %s Ā»" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Le document contient des champs de formulaire qui ont Ć©tĆ© remplis. Si vous " +"n'enregistrez pas une copie, les modifications seront dĆ©finitivement perdues." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Le document contient des annotations nouvelles ou modifiĆ©es. Si vous " +"n'enregistrez pas une copie, les modifications seront dĆ©finitivement perdues." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Enregistrer une copie du document Ā« %s Ā» avant de fermer ?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Fermer _sans enregistrer" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Enregistrer une _copie" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Faut-il attendre la fin de l'impression de Ā« %s Ā» avant de fermer ?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d tĆ¢ches d'impression sont en cours. Faut-il attendre la fin de " +"l'impression avant de fermer ?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Si vous fermez la fenĆŖtre, les tĆ¢ches en attente d'impression ne seront pas " +"imprimĆ©es." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "Annuler l'_impression et fermer" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "Fermer _aprĆØs l'impression" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Ćditeur de la barre d'outils" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "Une erreur s'est produite lors de l'affichage de l'aide" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visionneur de documents\n" +"Utilise %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince est un logiciel libre ; vous pouvez le redistribuer et/ou le\n" +"modifier selon les termes de la Licence Publique GĆ©nĆ©rale GNU, telle\n" +"que publiĆ©e par la Free Software Foundation ; version 2 de la licence,\n" +"ou (Ć votre discrĆ©tion) toute version ultĆ©rieure.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince est distribuĆ© dans l'espoir qu'il sera utile, mais SANS AUCUNE " +"GARANTIE ; sans mĆŖme la garantie implicite de VALEUR MARCHANDE ou " +"D'ADĆQUATION Ć UN BESOIN PARTICULIER. Pour plus de dĆ©tails, voir la Licence " +"Publique GĆ©nĆ©rale GNU.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Un exemplaire de la Licence Publique GĆ©nĆ©rale GNU doit ĆŖtre fourni avec " +"Evince ; si ce n'est pas le cas, Ć©crivez Ć la Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Les auteurs d'Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"Vincent Carriere <carriere_vincent@yahoo.fr>\n" +"Christophe Merlet <redfox@redfoxcenter.org>\n" +"Thomas Vergnaud <thomas.vergnaud@laposte.net>\n" +"Guillaume Desmottes <cass@skynet.be>\n" +"Jonathan Ernst <jonathan@ernstfamily.ch>\n" +"Robert-AndrĆ© Mauchin <zebob.m@pengzone.org>\n" +"Damien Durand <splinux@fedoraproject.org>\n" +"Claude Paroz <claude@2xlibre.net>\n" +"Pierre Lemaire <pierre.lemaire@kamick.org>\n" +"Bruno Brouard <annoa.b@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "TrouvĆ© %d fois sur cette page" +msgstr[1] "TrouvĆ©s %d fois sur cette page" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Non trouvĆ©" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d %% restant Ć rechercher" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Fichier" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "Ć_dition" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Affichage" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "A_ller Ć " + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "Aid_e" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Ouvrirā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Ouvre un document existant" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "Ouvrir une _copie" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Ouvre une copie du document actuel dans une nouvelle fenĆŖtre" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "Enregi_strer une copieā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Enregistre une copie du document actuel" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "_Imprimerā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "_PropriĆ©tĆ©s" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "_Tout sĆ©lectionner" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "Rec_hercherā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Recherche un mot ou une phrase dans le document" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "Barre d'_outils" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "Pivoter vers la _gauche" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "Pivoter vers la _droite" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "RĆ©glages actuels par _dĆ©faut" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_Recharger" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Recharge le document" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "DĆ©_filement automatique" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "_PremiĆØre page" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Aller Ć la premiĆØre page" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_DerniĆØre page" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Aller Ć la derniĆØre page" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Sommaire" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "Ć _propos" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "Quitter le mode plein Ć©cran" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Quitte le mode plein Ć©cran" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "DĆ©marrer la prĆ©sentation" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "DĆ©marre une prĆ©sentation" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "Barre d'_outils" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "Affiche ou masque la barre d'outils" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "Panneau _latĆ©ral" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "Affiche ou masque le panneau latĆ©ral" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_Continu" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "Affiche le document entier" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "Pages _doubles" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "Affiche deux pages Ć la fois" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "Pl_ein Ć©cran" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Agrandit la fenĆŖtre pour occuper tout l'Ć©cran" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "PrĆ©_sentation" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "Affiche le document comme une prĆ©sentation" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "Couleurs _inversĆ©es" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "Affiche le contenu des pages en inversant les couleurs" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_Ouvrir le lien" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "A_ller Ć " + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Ouvrir dans une _nouvelle fenĆŖtre" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_Copier l'adresse du lien" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_Enregistrer l'image sousā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "Copier l'_image" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "PropriĆ©tĆ©s de l'annotationā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_Ouvrir la piĆØce jointe" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_Enregistrer la piĆØce jointe sousā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Ajuste le niveau de zoom" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Navigation" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "PrĆ©cĆ©dent" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Se dĆ©place Ć travers les pages visitĆ©es" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "PrĆ©cĆ©dente" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Suivante" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Zoom avant" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Zoom arriĆØre" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Ajuster la largeur" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "Impossible de lancer l'application externe." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "Impossible d'ouvrir le lien externe" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Impossible de trouver le format appropriĆ© pour enregistrer l'image" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "L'image ne peut pas ĆŖtre enregistrĆ©e." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Enregistrer l'image" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "Impossible d'ouvrir la piĆØce jointe" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "La piĆØce jointe ne peut pas ĆŖtre enregistrĆ©e." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Enregistrer la piĆØce jointe" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Mot de passe requis" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Par extension" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visionneur de documents de MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "L'Ć©tiquette de la page du document Ć afficher." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Le numĆ©ro de la page du document Ć afficher." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMĆRO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ExĆ©cute evince en mode plein Ć©cran" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ExĆ©cute evince en mode prĆ©sentation" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ExĆ©cute evince en mode aperƧu" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Le mot ou la phrase Ć rechercher dans le document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CHAĆNE" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FICHIERā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Valeurs boolĆ©ennes disponibles : VRAI active la crĆ©ation de vignettes et " +"FAUX dĆ©sactive la crĆ©ation de nouvelles vignettes" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Active la crĆ©ation de vignettes pour les documents PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Commande pour la crĆ©ation des vignettes des documents PDF" + +# FIXME: Caja thumbnailer ? Ć vĆ©rifier. +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Commande valide et ses paramĆØtres pour le crĆ©ateur de vignettes des " +"documents PDF. Consultez la documentation de Caja thumbnailer pour plus " +"d'informations." + diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 00000000..9b918083 --- /dev/null +++ b/po/ga.po @@ -0,0 +1,1462 @@ +# Irish translations for evince package. +# Copyright (C) 2007-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# SeĆ”n de BĆŗrca <leftmostcat@gmail.com>, 2007-2009. +# +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-01 00:56-0600\n" +"PO-Revision-Date: 2009-08-01 01:23-0600\n" +"Last-Translator: SeĆ”n de BĆŗrca <leftmostcat@gmail.com>\n" +"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n%" +"10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n" + +#: ../backend/comics/comics-document.c:155 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" + +#: ../backend/comics/comics-document.c:178 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "" + +#: ../backend/comics/comics-document.c:225 +#, c-format +msgid "Failed to create a temporary directory." +msgstr "" + +#: ../backend/comics/comics-document.c:347 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:354 +msgid "Can't find an appropiate command to decompress this type of comic book" +msgstr "" + +#: ../backend/comics/comics-document.c:385 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "CineĆ”l MIME Anaithnid" + +#: ../backend/comics/comics-document.c:412 +msgid "File corrupted" +msgstr "Comhad truaillithe" + +#: ../backend/comics/comics-document.c:424 +msgid "No files in archive" +msgstr "" + +#: ../backend/comics/comics-document.c:465 +#, c-format +msgid "No images found in archive %s" +msgstr "" + +#: ../backend/comics/comics-document.c:704 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "" + +#: ../backend/comics/comics-document.c:854 +#, c-format +msgid "Error %s" +msgstr "EarrĆ”id %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Leabhair GreannĆ”in" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "TĆ” formĆ”id mhĆcheart ag an gcĆ”ipĆ©is DJVU" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "CĆ”ipĆ©isĆ Djvu" + +#: ../backend/dvi/dvi-document.c:108 +msgid "DVI document has incorrect format" +msgstr "TĆ” formĆ”id mhĆcheart ag an gcĆ”ipĆ©is DVI" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "CĆ”ipĆ©isĆ DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:826 +msgid "Yes" +msgstr "TĆ”" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:829 +msgid "No" +msgstr "NĆl" + +#: ../backend/pdf/ev-poppler.cc:903 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "Unknown font type" +msgstr "CineĆ”l clĆ³ anaithnid" + +#: ../backend/pdf/ev-poppler.cc:943 +msgid "No name" +msgstr "Gan ainm" + +#: ../backend/pdf/ev-poppler.cc:951 +msgid "Embedded subset" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Not embedded" +msgstr "" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "CĆ”ipĆ©isĆ PDF" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "CĆ”ipĆ©is neamhbhailĆ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "SleamhnĆ”in Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Gan earrĆ”id" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Comhad zip neamhbhailĆ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "NĆ fĆ©idir an comhad a oscailt" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "NĆ fĆ©idir sonraĆ a lĆ©amh Ć³ chomhad" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "EarrĆ”id anaithnid" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Theip ar luchtĆŗ na cĆ”ipĆ©ise \"%s\"" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Theip ar shĆ”bhĆ”il na cĆ”ipĆ©ise \"%s\"" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "CĆ”ipĆ©isĆ PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "NĆorbh fhĆ©idir iatĆ”n \"%s\" a shĆ”bhĆ”il: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "NĆorbh fhĆ©idir iatĆ”n \"%s\" a oscailt: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "NĆorbh fhĆ©idir iatĆ”n \"%s\" a oscailt" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Gach CĆ”ipĆ©is" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Gach Comhad" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:46 +#: ../previewer/ev-previewer.c:47 +msgid "FILE" +msgstr "COMHAD" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "TaispeĆ”in \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_Bain Ć³n mBarra UirlisĆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_Scrios Barra UirlisĆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Deighilteoir" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5211 +msgid "Best Fit" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4133 +#: ../shell/ev-window-title.c:150 ../shell/main.c:484 +#, c-format +msgid "Document Viewer" +msgstr "AmharcĆ”n CĆ”ipĆ©isĆ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../previewer/ev-previewer.c:45 +msgid "Delete the temporary file" +msgstr "" + +#: ../previewer/ev-previewer.c:46 +msgid "Print settings file" +msgstr "" + +#: ../previewer/ev-previewer.c:141 ../previewer/ev-previewer.c:175 +msgid "MATE Document Previewer" +msgstr "RĆ©amhamharcĆ”n CĆ”ipĆ©isĆ MATE" + +#: ../previewer/ev-previewer-window.c:122 ../shell/ev-window.c:2875 +msgid "Failed to print document" +msgstr "Theip ar phriontĆ”il cĆ”ipĆ©is" + +#: ../previewer/ev-previewer-window.c:242 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "" + +#. Go menu +#: ../previewer/ev-previewer-window.c:286 ../shell/ev-window.c:4970 +msgid "_Previous Page" +msgstr "An Leathanach _Roimhe Seo" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:4971 +msgid "Go to the previous page" +msgstr "" + +#: ../previewer/ev-previewer-window.c:289 ../shell/ev-window.c:4973 +msgid "_Next Page" +msgstr "An ChĆ©ad Leathanaigh _Eile" + +#: ../previewer/ev-previewer-window.c:290 ../shell/ev-window.c:4974 +msgid "Go to the next page" +msgstr "" + +#: ../previewer/ev-previewer-window.c:293 ../shell/ev-window.c:4957 +msgid "Enlarge the document" +msgstr "" + +#: ../previewer/ev-previewer-window.c:296 ../shell/ev-window.c:4960 +msgid "Shrink the document" +msgstr "" + +#: ../previewer/ev-previewer-window.c:299 ../shell/ev-print-operation.c:1294 +msgid "Print" +msgstr "PriontĆ”il" + +#: ../previewer/ev-previewer-window.c:300 ../shell/ev-window.c:4929 +msgid "Print this document" +msgstr "PriontĆ”il an cĆ”ipĆ©is seo" + +#: ../previewer/ev-previewer-window.c:306 ../shell/ev-window.c:5068 +msgid "_Best Fit" +msgstr "_OiriĆŗnĆŗ is Fearr" + +#: ../previewer/ev-previewer-window.c:307 ../shell/ev-window.c:5069 +msgid "Make the current document fill the window" +msgstr "" + +#: ../previewer/ev-previewer-window.c:309 ../shell/ev-window.c:5071 +msgid "Fit Page _Width" +msgstr "OiriĆŗnaigh do Le_ithead an Leathanaigh" + +#: ../previewer/ev-previewer-window.c:310 ../shell/ev-window.c:5072 +msgid "Make the current document fill the window width" +msgstr "" + +#: ../previewer/ev-previewer-window.c:441 ../shell/ev-window.c:5135 +msgid "Page" +msgstr "Leathanach" + +#: ../previewer/ev-previewer-window.c:442 ../shell/ev-window.c:5136 +msgid "Select Page" +msgstr "Roghnaigh Leathanach" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "CĆ”ipĆ©is" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "Teideal:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "SuĆomh:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Ćbhar:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "Ćdar:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "Lorgfhocail:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "TĆ”irgeoir:" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "Cruthaitheoir:" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "Cruthaithe:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "Athraithe:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "LĆon Leathanaigh:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Optamaithe:" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "FormĆ”id:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "SlĆ”ndĆ”il:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "MĆ©id PhĆ”ipĆ©ir:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "NeamhnĆ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f orlach" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, PortrĆ”id (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, TĆrdhreach (%s)" + +#: ../libmisc/ev-page-action.c:72 +#, c-format +msgid "(%d of %d)" +msgstr "(%d as %d)" + +#: ../libmisc/ev-page-action.c:74 +#, c-format +msgid "of %d" +msgstr "as %d" + +#: ../libview/ev-jobs.c:958 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "" + +#: ../libview/ev-jobs.c:1435 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Theip ar phriontĆ”il leathanaigh %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Amharc CĆ”ipĆ©ise" + +#: ../libview/ev-view.c:1466 +msgid "Go to first page" +msgstr "" + +#: ../libview/ev-view.c:1468 +msgid "Go to previous page" +msgstr "" + +#: ../libview/ev-view.c:1470 +msgid "Go to next page" +msgstr "" + +#: ../libview/ev-view.c:1472 +msgid "Go to last page" +msgstr "" + +#: ../libview/ev-view.c:1474 +msgid "Go to page" +msgstr "TĆ©igh go leathanach" + +#: ../libview/ev-view.c:1476 +msgid "Find" +msgstr "Aimsigh" + +#: ../libview/ev-view.c:1504 +#, c-format +msgid "Go to page %s" +msgstr "" + +#: ../libview/ev-view.c:1510 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "TĆ©igh go %s i gcomhad \"%s\"" + +#: ../libview/ev-view.c:1513 +#, c-format +msgid "Go to file ā%sā" +msgstr "TĆ©igh go comhad \"%s\"" + +#: ../libview/ev-view.c:1521 +#, c-format +msgid "Launch %s" +msgstr "Tosaigh %s" + +#: ../libview/ev-view.c:2781 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../libview/ev-view.c:3720 +msgid "Jump to page:" +msgstr "LĆ©im go leathanach:" + +#: ../libview/ev-view.c:4002 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "Ć luchtĆŗ..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "TeaghrĆ”n cuardaigh" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "Dath aibhsithe" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Dath reatha" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Aimsigh:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:4946 +msgid "Find Pre_vious" +msgstr "An Ceann _Roimhe Seo" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:4944 +msgid "Find Ne_xt" +msgstr "An ChĆ©ad Cheann _Eile" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-application.c:264 +msgid "Recover previous documents?" +msgstr "AthshlĆ”naigh cĆ”ipĆ©isĆ roimhe seo?" + +#: ../shell/ev-application.c:267 +msgid "" +"Evince appears to have exited unexpectedly the last time it was run. You can " +"recover the opened documents." +msgstr "" + +#: ../shell/ev-application.c:271 +msgid "_Don't Recover" +msgstr "" + +#: ../shell/ev-application.c:274 +msgid "_Recover" +msgstr "" + +#: ../shell/ev-application.c:277 +msgid "Crash Recovery" +msgstr "" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Focal faire le cĆ”ipĆ©is %s" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_DĆghlasĆ”il CĆ”ipĆ©is" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "IontrĆ”il focal faire" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Focal faire de dhĆth" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Focal Faire:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "" + +#. Initial state +#: ../shell/ev-print-operation.c:316 +msgid "Preparing to print ..." +msgstr "" + +#: ../shell/ev-print-operation.c:318 +msgid "Finishing..." +msgstr "Ć chrĆochnĆŗ..." + +#: ../shell/ev-print-operation.c:320 +#, c-format +msgid "Printing page %d of %d..." +msgstr "" + +#: ../shell/ev-print-operation.c:1143 +msgid "Printing is not supported on this printer." +msgstr "" + +#: ../shell/ev-print-operation.c:1208 +msgid "Invalid page selection" +msgstr "RoghnĆŗ leathanach neamhbhailĆ" + +#: ../shell/ev-print-operation.c:1209 +msgid "Warning" +msgstr "Rabhadh" + +#: ../shell/ev-print-operation.c:1211 +msgid "Your print range selection does not include any page" +msgstr "" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "AirĆonna" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "GinearĆ”lta" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "ClĆ³nna" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ClĆ³" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "IatĆ”in" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "Sraitheanna" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "PriontĆ”il..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "InnĆ©acs" + +#: ../shell/ev-sidebar-thumbnails.c:756 +msgid "Thumbnails" +msgstr "Mionsamhlacha" + +#: ../shell/ev-window.c:828 +#, c-format +msgid "Page %s - %s" +msgstr "Leathanach %s - %s" + +#: ../shell/ev-window.c:830 +#, c-format +msgid "Page %s" +msgstr "Leathanahc %s" + +#: ../shell/ev-window.c:1253 +msgid "The document contains no pages" +msgstr "" + +#: ../shell/ev-window.c:1256 +msgid "The document contains only empty pages" +msgstr "" + +#: ../shell/ev-window.c:1479 ../shell/ev-window.c:1632 +msgid "Unable to open document" +msgstr "NĆ fĆ©idir cĆ”ipĆ©is a oscailt" + +#: ../shell/ev-window.c:1603 +#, c-format +msgid "Loading document from ā%sā" +msgstr "CĆ”ipĆ©is Ć” luchtĆŗ Ć³ \"%s\"" + +#: ../shell/ev-window.c:1741 ../shell/ev-window.c:1924 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:1871 +#, c-format +msgid "Reloading document from %s" +msgstr "CĆ”ipĆ©is Ć” athluchtĆŗ Ć³ %s" + +#: ../shell/ev-window.c:1903 +msgid "Failed to reload document." +msgstr "Theip ar athluchtĆ na cĆ”ipĆ©ise." + +#: ../shell/ev-window.c:2055 +msgid "Open Document" +msgstr "Oscail CĆ”ipĆ©is" + +#: ../shell/ev-window.c:2134 +#, c-format +msgid "Couldn't create symlink ā%sā: " +msgstr "NĆorbh fhĆ©idir nasc siombalach \"%s\" a chruthĆŗ:" + +#: ../shell/ev-window.c:2161 +msgid "Cannot open a copy." +msgstr "NĆ fĆ©idir cĆ³ip a oscailt." + +#: ../shell/ev-window.c:2397 +#, c-format +msgid "Saving document to %s" +msgstr "" + +#: ../shell/ev-window.c:2400 +#, c-format +msgid "Saving attachment to %s" +msgstr "IatĆ”n Ć” shĆ”bhĆ”il go %s" + +#: ../shell/ev-window.c:2403 +#, c-format +msgid "Saving image to %s" +msgstr "" + +#: ../shell/ev-window.c:2447 ../shell/ev-window.c:2544 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "" + +#: ../shell/ev-window.c:2475 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2479 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2483 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2605 +msgid "Save a Copy" +msgstr "SĆ”bhĆ”il CĆ³ip" + +#: ../shell/ev-window.c:2819 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#: ../shell/ev-window.c:2932 +#, c-format +msgid "Printing job ā%sā" +msgstr "" + +#: ../shell/ev-window.c:3139 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3142 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3154 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3158 +msgid "Cancel _print and Close" +msgstr "" + +#: ../shell/ev-window.c:3162 +msgid "Close _after Printing" +msgstr "" + +#: ../shell/ev-window.c:3768 +msgid "Toolbar Editor" +msgstr "EagarthĆ³ir Bharra UirlisĆ" + +#: ../shell/ev-window.c:3899 +msgid "There was an error displaying help" +msgstr "" + +#: ../shell/ev-window.c:4129 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"AmharcĆ”n CĆ”ipĆ©isĆ.\n" +"poppler %s (%s) Ć” ĆŗsĆ”id" + +#: ../shell/ev-window.c:4158 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" + +#: ../shell/ev-window.c:4162 +msgid "" +"Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:4166 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:4190 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4193 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Na hĆŗdair Evince" + +#: ../shell/ev-window.c:4199 +msgid "translator-credits" +msgstr "SeĆ”n de BĆŗrca <leftmostcat@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4417 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../shell/ev-window.c:4425 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:4909 +msgid "_File" +msgstr "_Comhad" + +#: ../shell/ev-window.c:4910 +msgid "_Edit" +msgstr "_Eagar" + +#: ../shell/ev-window.c:4911 +msgid "_View" +msgstr "_Amharc" + +#: ../shell/ev-window.c:4912 +msgid "_Go" +msgstr "_TĆ©igh" + +#: ../shell/ev-window.c:4913 +msgid "_Help" +msgstr "Cab_hair" + +#. File menu +#: ../shell/ev-window.c:4916 ../shell/ev-window.c:5094 +#: ../shell/ev-window.c:5173 +msgid "_Open..." +msgstr "_Oscail..." + +#: ../shell/ev-window.c:4917 ../shell/ev-window.c:5174 +msgid "Open an existing document" +msgstr "" + +#: ../shell/ev-window.c:4919 +msgid "Op_en a Copy" +msgstr "Osca_il CĆ³ip" + +#: ../shell/ev-window.c:4920 +msgid "Open a copy of the current document in a new window" +msgstr "" + +#: ../shell/ev-window.c:4922 ../shell/ev-window.c:5096 +msgid "_Save a Copy..." +msgstr "_SĆ”bhĆ”il CĆ³ip..." + +#: ../shell/ev-window.c:4923 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:4925 +msgid "Page Set_up..." +msgstr "Soc_rĆŗ Leathanaigh..." + +#: ../shell/ev-window.c:4926 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4928 +msgid "_Print..." +msgstr "_PriontĆ”il..." + +#: ../shell/ev-window.c:4931 +msgid "P_roperties" +msgstr "_AirĆonna" + +#: ../shell/ev-window.c:4939 +msgid "Select _All" +msgstr "Roghnaigh _Gach Rud" + +#: ../shell/ev-window.c:4941 +msgid "_Find..." +msgstr "_Aimsigh..." + +#: ../shell/ev-window.c:4942 +msgid "Find a word or phrase in the document" +msgstr "" + +#: ../shell/ev-window.c:4948 +msgid "T_oolbar" +msgstr "_Barra UirlisĆ" + +#: ../shell/ev-window.c:4950 +msgid "Rotate _Left" +msgstr "Rothlaigh go _Tuathalach" + +#: ../shell/ev-window.c:4952 +msgid "Rotate _Right" +msgstr "Rothlaigh go _Deisealach" + +#: ../shell/ev-window.c:4962 +msgid "_Reload" +msgstr "_Athluchtaigh" + +#: ../shell/ev-window.c:4963 +msgid "Reload the document" +msgstr "Athluchtaigh an cĆ”ipĆ©is" + +#: ../shell/ev-window.c:4966 +msgid "Auto_scroll" +msgstr "" + +#: ../shell/ev-window.c:4976 +msgid "_First Page" +msgstr "An _ChĆ©ad Leathanach" + +#: ../shell/ev-window.c:4977 +msgid "Go to the first page" +msgstr "" + +#: ../shell/ev-window.c:4979 +msgid "_Last Page" +msgstr "An Leathanach _Deireanach" + +#: ../shell/ev-window.c:4980 +msgid "Go to the last page" +msgstr "" + +#. Help menu +#: ../shell/ev-window.c:4984 +msgid "_Contents" +msgstr "_Inneachar" + +#: ../shell/ev-window.c:4987 +msgid "_About" +msgstr "_Maidir Leis Seo" + +#. Toolbar-only +#: ../shell/ev-window.c:4991 +msgid "Leave Fullscreen" +msgstr "FĆ”g LĆ”nscĆ”ileĆ”n" + +#: ../shell/ev-window.c:4992 +msgid "Leave fullscreen mode" +msgstr "FĆ”g mĆ³d lĆ”nscĆ”ileĆ”in" + +#: ../shell/ev-window.c:4994 +msgid "Start Presentation" +msgstr "Tosaigh LĆ”ithreoireacht" + +#: ../shell/ev-window.c:4995 +msgid "Start a presentation" +msgstr "" + +#. View Menu +#: ../shell/ev-window.c:5050 +msgid "_Toolbar" +msgstr "_Barra UirlisĆ" + +#: ../shell/ev-window.c:5051 +msgid "Show or hide the toolbar" +msgstr "" + +#: ../shell/ev-window.c:5053 +msgid "Side _Pane" +msgstr "_PĆ”na Taoibh" + +#: ../shell/ev-window.c:5054 +msgid "Show or hide the side pane" +msgstr "" + +#: ../shell/ev-window.c:5056 +msgid "_Continuous" +msgstr "L_eanĆŗnach" + +#: ../shell/ev-window.c:5057 +msgid "Show the entire document" +msgstr "" + +#: ../shell/ev-window.c:5059 +msgid "_Dual" +msgstr "_DĆ©ach" + +#: ../shell/ev-window.c:5060 +msgid "Show two pages at once" +msgstr "" + +#: ../shell/ev-window.c:5062 +msgid "_Fullscreen" +msgstr "_LĆ”nscĆ”ileĆ”n" + +#: ../shell/ev-window.c:5063 +msgid "Expand the window to fill the screen" +msgstr "" + +#: ../shell/ev-window.c:5065 +msgid "Pre_sentation" +msgstr "LĆ”_ithreoireacht" + +#: ../shell/ev-window.c:5066 +msgid "Run document as a presentation" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5079 +msgid "_Open Link" +msgstr "_Oscail Nasc" + +#: ../shell/ev-window.c:5081 +msgid "_Go To" +msgstr "_TĆ©igh Go" + +#: ../shell/ev-window.c:5083 +msgid "Open in New _Window" +msgstr "Oscail i bh_Fuinneog Nua" + +#: ../shell/ev-window.c:5085 +msgid "_Copy Link Address" +msgstr "_CĆ³ipeĆ”il Seoladh an Naisc" + +#: ../shell/ev-window.c:5087 +msgid "_Save Image As..." +msgstr "_SĆ”bhĆ”il ĆomhĆ” Mar..." + +#: ../shell/ev-window.c:5089 +msgid "Copy _Image" +msgstr "CĆ³ipeĆ”il Ć_omhĆ”" + +#: ../shell/ev-window.c:5147 +msgid "Zoom" +msgstr "SĆŗmĆ”il" + +#: ../shell/ev-window.c:5149 +msgid "Adjust the zoom level" +msgstr "" + +#: ../shell/ev-window.c:5159 +msgid "Navigation" +msgstr "" + +#: ../shell/ev-window.c:5161 +msgid "Back" +msgstr "Siar" + +#. translators: this is the history action +#: ../shell/ev-window.c:5164 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5194 +msgid "Previous" +msgstr "Roimhe Seo" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5199 +msgid "Next" +msgstr "Ar Aghaidh" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5203 +msgid "Zoom In" +msgstr "SĆŗmĆ”il Isteach" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5207 +msgid "Zoom Out" +msgstr "SĆŗmĆ”il Amach" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5215 +msgid "Fit Width" +msgstr "OiriĆŗnaigh don Leithead" + +#: ../shell/ev-window.c:5382 ../shell/ev-window.c:5398 +msgid "Unable to launch external application." +msgstr "" + +#: ../shell/ev-window.c:5437 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:5593 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:5632 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5664 +msgid "Save Image" +msgstr "SĆ”bhĆ”il ĆomhĆ”" + +#: ../shell/ev-window.c:5731 +msgid "Unable to open attachment" +msgstr "" + +#: ../shell/ev-window.c:5782 +msgid "The attachment could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5827 +msgid "Save Attachment" +msgstr "SĆ”bhĆ”il IatĆ”n" + +#: ../shell/ev-window-title.c:163 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Focal Faire de DhĆth" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "" + +#: ../shell/main.c:73 ../shell/main.c:436 +msgid "MATE Document Viewer" +msgstr "AmharcĆ”n CĆ”ipĆ©isĆ MATE" + +#: ../shell/main.c:81 +msgid "The page of the document to display." +msgstr "" + +#: ../shell/main.c:81 +msgid "PAGE" +msgstr "LEATHANACH" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "TEAGHRĆN" + +#: ../shell/main.c:89 +msgid "[FILE...]" +msgstr "[COMHAD...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 00000000..c42b438b --- /dev/null +++ b/po/gl.po @@ -0,0 +1,1757 @@ +# translation of evince-master-po-gl-7620.po to Galician +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005, 2006. +# Ignacio Casal Quinteiro <icq@cvs.mate.org>, 2007. +# Ignacio Casal Quinteiro <icq@svn.mate.org>, 2007, 2008. +# MancomĆŗn - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009. +# AntĆ³n MĆ©ixome <meixome@mancomun.org>, 2009. +# Suso Baleato <suso.baleato@xunta.es> +# Fran DiĆ©guez <frandieguez@ubuntu.com>, 2009, 2010. +# Fran Dieguez <frandieguez@ubuntu.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince-master-po-gl-7620\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-16 10:32+0200\n" +"PO-Revision-Date: 2010-08-16 10:32+0200\n" +"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n" +"Language-Team: Galician <mate-gl-list@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Produciuse un erro ao executar a orde Ā«%sĀ» para descomprimir o cĆ³mic: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Produciuse un fallo na orde Ā«%sĀ» ao descomprimir o cĆ³mic." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "A orde Ā«%sĀ» non finalizou normalmente." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "O tipo MIME non Ć© un libro de banda deseƱada: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Non foi posĆbel atopar unha orde apropiada para descomprimir este tipo de " +"libro de banda deseƱada" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipo MIME descoƱecido" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Ficheiro danado" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Non hai ficheiros no arquivo" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Non se encontraron imaxes no arquivo %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Produciuse un erro ao borrar Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Erro %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Libros de banda deseƱada" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "O documento DjVu ten un formato incorrecto" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"O documento estĆ” composto por varios ficheiros. A un ou mĆ”is destes " +"ficheiros non Ć© posĆbel acceder." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documentos DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "O documento DVI ten un formato incorrecto" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documentos DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Este traballo estĆ” no dominio pĆŗblico" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Si" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Non" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Tipo 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Tipo 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Tipo 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Tipo 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Tipo 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipo de letra descoƱecido" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Sen nome" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subconxunto incorporado" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Incorporado" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Non incorporado" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documentos PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documento incorrecto" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapositivas de Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Non hai erros" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Non hai suficiente memoria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Non Ć© posĆbel encontrar a sinatura zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "O ficheiro ZIP Ć© incorrecto" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Os ZIP multificheiro non se admiten" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Non foi posĆbel abrir o ficheiro" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Non foi posĆbel ler os datos do ficheiro" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Non foi posĆbel encontrar o ficheiro no arquivo ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Erro descoƱecido" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Produciuse un fallo ao cargar o documento Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Produciuse un fallo ao gardar o documento Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documentos PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Non foi posĆbel gardar o anexo Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Non foi posĆbel abrir o anexo Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Non foi posĆbel abrir o anexo Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Non se admite o tipo de ficheiro %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Todos os documentos" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Todos os ficheiros" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Produciuse un fallo ao crear un cartafol temporal: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Produciuse un fallo ao crear un cartafol temporal: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O ficheiro non Ć© un ficheiro .desktop vĆ”lido" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Non se recoƱece a versiĆ³n do ficheiro desktop '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "O aplicativo non acepta documentos na liƱa de ordes" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Non se recoƱece a opciĆ³n de inicio: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Non Ć© posĆbel pasar o URI do documento a unha entrada desktop do tipo " +"'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Non Ć© un elemento executĆ”bel" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desactivar a conexiĆ³n co xestor de sesiĆ³n" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especificar o ficheiro que contĆ©n a configuraciĆ³n gardada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FICHEIRO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especificar o ID de xestiĆ³n de sesiĆ³n" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "OpciĆ³ns de xestiĆ³n de sesiĆ³n:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostrar as opciĆ³ns de xestiĆ³n de sesiĆ³n" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostrar ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Mover na barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Mover o elemento seleccionado na barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Elimina_r da barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Eliminar o elemento seleccionado da barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "E_liminar a barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Eliminar a barra de ferramentas seleccionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separador" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Axuste Ć³ptimo" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Axustar Ć” largura da pĆ”xina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visualizador de documentos" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Ver documentos de varias pĆ”xinas" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Ignorar as restriciĆ³ns do documento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Ignorar as restriciĆ³ns do documento, como a restriciĆ³n para copiar ou " +"imprimir." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Eliminar o ficheiro temporal" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Ficheiro de configuraciĆ³ns de impresiĆ³n" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Visualizador de documentos do MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Produciuse un fallo ao imprimir o documento" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Non foi posĆbel encontrar a impresora seleccionada '%s'" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "PĆ”xina _anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Ir Ć” pĆ”xina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "PĆ”xina _seguinte" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Ir Ć” pĆ”xina seguinte" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "Ampliar o documento" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Reducir o documento" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Imprimir" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Imprimir este documento" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "A_xuste Ć³ptimo" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Facer que o documento actual encha a xanela" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Axustar Ć” _largura da pĆ”xina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Facer que o documento actual encha a largura da xanela" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "PĆ”xina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Seleccionar a pĆ”xina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtulo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "LocalizaciĆ³n:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Asunto:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Palabras chave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produtor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creado:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificado:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NĆŗmero de pĆ”xinas:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizado:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Seguranza:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "TamaƱo do papel:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "NingĆŗn" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f polgadas" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Vertical (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Horizontal (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Cargando..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "PreparĆ”ndose para imprimir ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Finalizando..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Imprimindo a pĆ”xina %d de %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Non se admite a impresiĆ³n nesta impresora." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "A selecciĆ³n de pĆ”xina non Ć© correcta" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Advertencia" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "A sĆŗa selecciĆ³n de intervalo para impresiĆ³n non contĆ©n ningunha pĆ”xina" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Escalado de pĆ”xina:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Reducir Ć” Ć”rea imprimĆbel" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Axustar Ć” Ć”rea imprimĆbel" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escalar as pĆ”xinas do documento para axustalas Ć” pĆ”xina de impresora " +"seleccionada. Seleccione unha das seguintes:\n" +"\n" +"ā¢ Ā«NingĆŗnĀ»: Non se leva a cabo o escalado da pĆ”xina.\n" +"\n" +"ā¢ Ā«Reducir Ć” Ć”rea imprimĆbelĀ»: As pĆ”xinas do documento mĆ”is grandes que a " +"Ć”rea imprimĆbel son reducidas para axustarse Ć” Ć”rea imprimĆbel da pĆ”xina na " +"impresora.\n" +"\n" +"ā¢ Ā«Axustar Ć” Ć”rea imprimĆbelĀ»: As pĆ”xinas do documento son ampliadas ou " +"reducidas para axustarse Ć” Ć”rea imprimĆbel da pĆ”xina na impresora.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Rotar automaticamente e centrar." + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Rotar a orientaciĆ³n da pĆ”xina da impresora en cada pĆ”xina para coincidir a " +"orientaciĆ³n de cada pĆ”xina do documento. As pĆ”xinas do documento serĆ”n " +"centradas na pĆ”xina da impresora." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" +"Seleccione o tamaƱo de pĆ”xina empregando o tamaƱo de pĆ”xina do documento." + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Cando estĆ” activo, cada pĆ”xina serĆ” imprimida no mesmo tamaƱo de papel que a " +"pĆ”xina do documento." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "XestiĆ³n de pĆ”xina" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Produciuse un fallo ao imprimir a pĆ”xina %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Desprazar cara arriba" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Desprazar cara abaixo" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Desprazar a visualizaciĆ³n cara arriba" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Desprazar a visualizaciĆ³n cara abaixo" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "VisualizaciĆ³n de documentos" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Saltar Ć” pĆ”xina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fin da presentaciĆ³n. Prema para saĆr." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ir Ć” primeira pĆ”xina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ir Ć” pĆ”xina anterior" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ir Ć” seguinte pĆ”xina" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ir Ć” Ćŗltima pĆ”xina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ir Ć” pĆ”xina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Buscar" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ir Ć” pĆ”xina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ir a %s no ficheiro Ā«%sĀ»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ir ao ficheiro Ā«%sĀ»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Iniciar %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Buscar:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Buscar a an_terior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Buscar a anterior apariciĆ³n da cadea de busca" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "_Buscar a seguinte" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Buscar a seguinte apariciĆ³n da cadea de busca" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Diferenciar as maiĆŗsculas das minĆŗsculas" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Alternar a busca diferenciando maiĆŗsculas de minĆŗsculas" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Icona:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Nota" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Comentario" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Chave" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Axuda" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Novo parĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ParĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Insertar" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cruz" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "CĆrculo" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "DescoƱecido" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Preferencias das anotaciĆ³ns" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Cor:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Estilo:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparente" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaco" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Estado inicial da xanela:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Abrir" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Pechar" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Executando no modo presentaciĆ³n" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Contrasinal para o documento %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Convertendo %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d de %d documentos convertidos" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Convertendo os metadatos" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"O formato dos metadatos empregados por Evince cambiou, e polo tanto precisan " +"migrarse. Se cancela a migraciĆ³n o almacenamento dos metadatos non " +"funcionarĆ”." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Abrir un documento recente" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Este documento estĆ” bloqueado e sĆ³ se pode ler introducindo o contrasinal " +"correcto." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Desbloquear o documento" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Introduza o contrasinal" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "RequĆrese un contrasinal" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"O documento Ā«%sĀ» estĆ” bloqueado e require un contrasinal antes de que se " +"poida abrir." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Contrasinal:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Esquecer o contrasinal _inmediatamente" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Lembrar o contrasinal atĆ© saĆr da _sesiĆ³n" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Lem_brar sempre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Propiedades" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Xeral" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Tipos de letra" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licenza do documento" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Tipo de letra" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Obtendo informaciĆ³n do tipo de letra... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Termos de uso" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Licenza do texto" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "MĆ”is informaciĆ³n" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "AnotaciĆ³ns" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Texto" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Engadir texto de anotaciĆ³n" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Engadir" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "O documento non contĆ©n anotaciĆ³ns" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "PĆ”xina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Anexos" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Capas" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimir..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndice" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ”xina %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "PĆ”xina %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "O documento non contĆ©n pĆ”xinas" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "O documento sĆ³ contĆ©n pĆ”xinas baleiras" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Non Ć© posĆbel abrir o documento" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Cargando o documento desde Ā«%sĀ»" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Descargando o documento (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Produciuse un fallo ao cargar o ficheiro remoto." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Recargando o documento desde %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Produciuse un fallo ao recargar o documento." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Abrir o documento" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Gardando o documento en %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Gardando o anexo en %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Gardando a imaxe en %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Non foi posĆbel gardar como Ā«%sĀ»." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Subindo o documento (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Subindo o anexo (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Subindo a imaxe (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Gardar unha copia" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d traballo pendente na cola" +msgstr[1] "%d traballos pendentes na cola" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Imprimindo o traballo Ā«%sĀ»" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"O documento contĆ©n campos de formulario que foron recheados. Os cambios " +"perderanse permanentemente se non garda unha copia." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"O documento contĆ©n anotaciĆ³ns novas ou modificadas. Os cambios perderanse " +"permanentemente se non garda unha copia." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Desexa gardar unha copia do documento Ā«%sĀ» antes de pechar?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Pechar _sen gardar" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Gardar unha _copia" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"Quere esperar a que termine o traballo de impresiĆ³n Ā«%sĀ» antes de pechar?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Hai %d traballos de impresiĆ³n activos. Quere esperar a que termine a " +"impresiĆ³n antes de pechar?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Se pecha a xanela, non se imprimirĆ”n os traballos pendentes." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Cancelar a im_presiĆ³n e Pechar" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Pechar _despois de imprimir" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Editor da barra de ferramentas" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Produciuse un erro ao mostrar a axuda" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualizador de documentos.\n" +"Usando %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"O Evince Ć© software libre, pode redistribuĆlo ou modificalo baixo as " +"condiciĆ³ns da Licenza pĆŗblica xeral GNU tal como a publica a Free Software " +"Foundation; tanto na versiĆ³n 2 da Licenza como (segundo o seu criterio) en " +"calquera versiĆ³n posterior.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"O Evince distribĆŗese esperando que sexa Ćŗtil, mais SEN NINGUNHA GARANTĆA; " +"mesmo sen a garantĆa implĆcita de VALOR COMERCIAL ou ADECUACIĆN PARA UN " +"PROPĆSITO PARTICULAR. Para mĆ”is detalles vexa a Licenza pĆŗblica xeral GNU.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Debeu de recibir unha copia da Licenza pĆŗblica xeral GNU xunto co Evince; en " +"caso contrario, escriba Ć” Free Software Foundation, Inc., 59 Temple Place, " +"Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Os autores do Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Fran DiĆ©guez <frandieguez@ubuntu.com>, 2009, 2010.\n" +"MancomĆŗn - Centro de Referencia e Servizos de Software Libre <g11n@mancomun." +"org>, 2009.\n" +"AntĆ³n MĆ©ixome <meixome@mancomun.org>, 2009.\n" +"Suso Baleato <suso.baleato@xunta.es>\n" +"Ignacio Casal Quinteiro <icq@svn.mate.org>, 2007, 2008.\n" +"Ignacio Casal Quinteiro <icq@cvs.mate.org>, 2007.\n" +"Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005, 2006." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d apariciĆ³n nesta pĆ”xina" +msgstr[1] "%d apariciĆ³ns nesta pĆ”xina" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Non encontrado" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "falta por buscar %3d%%" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Ficheiro" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Editar" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Ver" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Ir" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "A_xuda" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Abrir..." + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Abrir un documento existente" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "A_brir unha copia" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Abrir unha copia do documento actual nunha xanela nova" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "Gardar unha _copia..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Gardar unha copia do documento actual" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Imprimir..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "P_ropiedades" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Seleccionar _todo" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Buscar..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Buscar unha palabra ou frase no documento" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_Barra de ferramentas" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Rotar Ć” _esquerda" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Rotar Ć” _dereita" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Gardar as configuraciĆ³ns actuais como as _predefinidas" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_Recargar" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Recargar o documento" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Despra_zamento automĆ”tico" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_Primeira pĆ”xina" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Ir Ć” primeira pĆ”xina" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "Ć_ltima pĆ”xina" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Ir Ć” Ćŗltima pĆ”xina" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Contidos" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Sobre" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "SaĆr do modo de pantalla completa" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "SaĆr do modo de pantalla completa" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Iniciar a presentaciĆ³n" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Iniciar unha presentaciĆ³n" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "Barra de _ferramentas" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Mostrar ou ocultar a barra de ferramentas" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "_Panel lateral" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Mostrar ou ocultar o panel lateral" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Continuo" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Mostrar todo o documento" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Mostrar dĆŗas pĆ”xinas Ć” vez" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Pantalla completa" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Expandir a xanela para encher a pantalla" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "Pre_sentaciĆ³n" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Executar o documento como unha presentaciĆ³n" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Inverter cores" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Mostrar os contidos da pĆ”xina coas cores invertidas" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Abrir a ligazĆ³n" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_Ir a" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Abrir nunha _xanela nova" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Copiar a ligazĆ³n do enderezo" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "_Gardar a imaxe como..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Copiar a _imaxe" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Propiedades das anotaciĆ³ns..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Abrir anexo" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_Gardar o anexo como..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Axustar o nivel de zoom" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "NavegaciĆ³n" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "AtrĆ”s" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Moverse a travĆ©s das pĆ”xinas visitadas" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Seguinte" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Ampliar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Reducir" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Axustarse Ć” largura" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Non foi posĆbel iniciar o aplicativo externo." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Non foi posĆbel abrir a ligazĆ³n externa" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Non foi posĆbel encontrar o formato apropiado para gardar a imaxe" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Non foi posĆbel gardar a imaxe." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Gardar a imaxe" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Non foi posĆbel abrir o anexo" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Non foi posĆbel gardar o anexo." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Gardar o anexo" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā RequĆrese o contrasinal" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Por extensiĆ³n" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visualizador de documentos do MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "A etiqueta da pĆ”xina do documento para mostrar." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PĆXINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "O nĆŗmero de pĆ”xina do documento para mostrar." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NĆMERO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executar o Evince no modo de pantalla completa" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executar o Evince no modo de presentaciĆ³n" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executar o Evince como un previsualizador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "A palabra ou frase que se buscarĆ” no documento" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CADEA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FICHEIRO...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"OpciĆ³ns booleanas dispoƱĆbeis: Ā«trueĀ» activa as miniaturas e Ā«falseĀ» desactiva " +"a creaciĆ³n de novas miniaturas" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Activar as miniaturas dos documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Orde para crear miniaturas nos documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Orde vĆ”lida e argumentos para o creador de miniaturas de documentos PDF. " +"Para mĆ”is informaciĆ³n vexa a documentaciĆ³n sobre o miniaturizador do " +"Caja." + +#~ msgid "Page Set_upā¦" +#~ msgstr "ConfiguraciĆ³n de pĆ”_xina..." + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Configurar as preferencias de impresiĆ³n" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "O formato do ficheiro DJVU Ć© incorrecto" + +#~ msgid "Print..." +#~ msgstr "Imprimindo..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Gardar unha copia..." + +#~ msgid "_Print..." +#~ msgstr "_Imprimir..." + +#~ msgid "_Find..." +#~ msgstr "_Buscar..." diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 00000000..3c492b27 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,1740 @@ +# translation of evince.master.gu.po to Gujarati +# Ankit Patel <ankit644@yahoo.com>, 2005, 2006. +# Ankit Patel <ankit@redhat.com>, 2007, 2008. +# Sweta Kothari <swkothar@redhat.com>, 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.master.gu\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-07-20 15:08+0000\n" +"PO-Revision-Date: 2010-07-22 16:39+0530\n" +"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n" +"Language-Team: Gujarati\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ąŖą«ąŖ®ąŖæąŖ ąŖą«ąŖŖąŖ”ą«ąŖØą«ąŖ ąŖ¦ąŖ¬ąŖ¾ąŖ£ ąŖąŖą« ąŖąŖ°ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖą«ąŖ°ąŖ®ąŖ®ąŖ¾ąŖ ąŖąŖ¦ą«ąŖ¶ ā%sāąŖØą« ąŖ¶ąŖ°ą« ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖ¹ą«ąŖÆ ąŖ¤ą«ąŖÆąŖ¾ąŖ°ą« ąŖą«ąŖ²: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ąŖą«ąŖ®ąŖæąŖ ąŖą«ąŖŖąŖ”ą«ąŖØą«ąŖ ąŖ¦ąŖ¬ąŖ¾ąŖ£ ąŖąŖą« ąŖąŖ°ąŖµąŖ¾ ąŖ¦ąŖ°ąŖ®ą«ąŖÆąŖ¾ąŖØ ąŖąŖ¦ą«ąŖ¶ ā%sā ąŖØąŖæąŖ·ą«ąŖ«ąŖ³." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ąŖąŖ¦ą«ąŖ¶ ā%sā ąŖØą« ąŖøąŖ¾ąŖ®ąŖ¾ąŖØą«ąŖÆ ąŖ°ą«ąŖ¤ą« ąŖ ąŖąŖ¤ ąŖąŖµąŖ¤ą« ąŖØąŖ„ą«." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ąŖą«ąŖ®ąŖæąŖ ąŖ¬ą«ąŖ MIME ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° ąŖØąŖ„ą«: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ąŖą«ąŖ®ąŖæąŖ ąŖą«ąŖŖąŖ”ą«ąŖØąŖ¾ąŖ ąŖ ąŖŖą«ąŖ°ąŖąŖ¾ąŖ°ąŖØąŖ¾ąŖ ąŖ¦ąŖ¬ąŖ¾ąŖ£ąŖØą« ąŖąŖą« ąŖąŖ°ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖ ąŖØą«ąŖą«ąŖ³ ąŖąŖ¦ą«ąŖ¶ąŖØą« ąŖ¶ą«ąŖ§ą« ąŖ¶ąŖąŖ¾ąŖ¤ą« ąŖØąŖ„ą«" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ąŖ ąŖą«ąŖąŖ¾ąŖ¤ MIME ąŖŖą«ąŖ°ąŖąŖ¾ąŖ°" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ąŖ¬ąŖąŖ”ą« ąŖąŖÆą«ąŖ² ąŖą«" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ąŖŖą«ąŖą«ąŖ®ąŖ¾ąŖ ąŖ«ąŖ¾ąŖąŖ²ą« ąŖØąŖ„ą«" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "ąŖŖą«ąŖą« %s ąŖ®ąŖ¾ąŖ ąŖą«ąŖ ąŖąŖæąŖ¤ą«ąŖ°ą« ąŖ®ąŖ³ą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ąŖØą« ąŖąŖ¾ąŖ¢ąŖ¤ą« ąŖµąŖąŖ¤ą« ąŖą«ąŖ² ąŖ¹ąŖ¤ą«." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ąŖą«ąŖ² %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ąŖµąŖ¾ąŖ°ą«ąŖ¤ąŖ¾ąŖØą« ąŖŖą«ąŖøą«ąŖ¤ąŖą«" + +#: ../backend/djvu/djvu-document.c:173 +#| msgid "DVI document has incorrect format" +msgid "DjVu document has incorrect format" +msgstr "DjVu ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą«ąŖ ąŖ¬ąŖąŖ§ąŖ¾ąŖ°ąŖ£ ąŖ ąŖÆą«ąŖą«ąŖÆ ąŖą«" + +#: ../backend/djvu/djvu-document.c:250 +#| msgid "" +#| "The document is composed of several files. One or more of such files " +#| "cannot be accessed." +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖąŖ£ą«ąŖ¬ąŖ§ą« ąŖ«ąŖ¾ąŖąŖ²ą«ąŖ„ą« ąŖ¬ąŖØąŖ¾ąŖµąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖąŖµą«ąŖ² ąŖą«. ąŖąŖµą« ąŖ«ąŖ¾ąŖąŖ²ą«ąŖ®ąŖ¾ąŖąŖØą« ąŖąŖ ąŖ ąŖ„ąŖµąŖ¾ ąŖµąŖ§ą« ąŖµąŖ¾ąŖŖąŖ°ą« ąŖ¶ąŖąŖ¾ąŖ¶ą« " +"ąŖØąŖ¹ąŖæąŖ." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#| msgid "Djvu Documents" +msgid "DjVu Documents" +msgstr "DjVu ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą«ąŖ ąŖ¬ąŖąŖ§ąŖ¾ąŖ°ąŖ£ ąŖ ąŖÆą«ąŖą«ąŖÆ ąŖą«" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«" + +#: ../backend/pdf/ev-poppler.cc:521 +msgid "This work is in the Public Domain" +msgstr "ąŖ ąŖąŖ¾ąŖ°ą«ąŖÆ ąŖøąŖ¾ąŖ°ą«ąŖµąŖąŖØąŖæąŖ ąŖ”ą«ąŖ®ą«ąŖąŖØąŖ®ąŖ¾ąŖ ąŖą«" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:774 +msgid "Yes" +msgstr "ąŖ¹ąŖ¾" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:777 +msgid "No" +msgstr "ąŖØąŖ¾" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1" +msgstr "ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° ą«§" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 1C" +msgstr "ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° 1C" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "Type 3" +msgstr "ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° ą«©" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1 (CID)" +msgstr "ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "Type 1C (CID)" +msgstr "ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:919 +msgid "Unknown font type" +msgstr "ąŖ ąŖą«ąŖąŖ¾ąŖ¤ ąŖ«ą«ąŖØą«ąŖ ąŖŖą«ąŖ°ąŖąŖ¾ąŖ°" + +#: ../backend/pdf/ev-poppler.cc:945 +msgid "No name" +msgstr "ąŖØąŖ¾ąŖ®ąŖµąŖæąŖ¹ą«ąŖØ" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded subset" +msgstr "ąŖąŖ”ąŖæąŖ¤ ąŖąŖŖąŖøąŖ®ą«ąŖ¹" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Embedded" +msgstr "ąŖąŖ”ąŖæąŖ¤" + +#: ../backend/pdf/ev-poppler.cc:957 +msgid "Not embedded" +msgstr "ąŖąŖ”ąŖæąŖ¤ ąŖØąŖ„ą«" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ąŖ ąŖÆą«ąŖą«ąŖÆ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ąŖ°ąŖą«ąŖąŖ¤ ąŖøą«ąŖ²ąŖ¾ąŖąŖ”ą«" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ąŖą«ąŖ ąŖą«ąŖ² ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ąŖŖą«ąŖ°ąŖ¤ą« ąŖ®ą«ąŖ®ąŖ°ą« ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:59 +#| msgid "Cannot find zip signature" +msgid "Cannot find ZIP signature" +msgstr "ZIP ąŖøąŖ¹ą« ąŖ¶ą«ąŖ§ą« ąŖ¶ąŖąŖ¤ąŖ¾ ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:62 +#| msgid "Invalid zip file" +msgid "Invalid ZIP file" +msgstr "ąŖ ąŖÆą«ąŖą«ąŖÆ ZIP ąŖ«ąŖ¾ąŖąŖ²" + +#: ../backend/impress/zip.c:65 +#| msgid "Multi file zips are not supported" +msgid "Multi file ZIPs are not supported" +msgstr "ąŖąŖ£ą«ąŖ¬ąŖ§ą« ąŖ«ąŖ¾ąŖąŖ²ą«ąŖØąŖ¾ ZIPs ąŖąŖ§ąŖ¾ąŖ°ąŖą«ąŖ¤ ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ąŖą«ąŖ²ą« ąŖ¶ąŖąŖ¤ąŖ¾ ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ąŖ«ąŖ¾ąŖąŖ²ąŖ®ąŖ¾ąŖąŖ„ą« ąŖ®ąŖ¾ąŖ¹ąŖæąŖ¤ą« ąŖµąŖ¾ąŖąŖą« ąŖ¶ąŖąŖ¤ąŖ¾ ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:74 +#| msgid "Cannot find file in the zip archive" +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP ąŖŖą«ąŖą«ąŖ®ąŖ¾ąŖąŖ„ą« ąŖ«ąŖ¾ąŖąŖ² ąŖ¶ą«ąŖ§ą« ąŖ¶ąŖąŖ¤ąŖ¾ ąŖØąŖ„ą«" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ąŖ ąŖą«ąŖąŖ¾ąŖ¤ ąŖą«ąŖ²" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ā%sā ąŖ²ąŖ¾ąŖµąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ā%sā ąŖøąŖąŖą«ąŖ°ąŖ¹ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ąŖŖą«ąŖøą«ąŖąŖøą«ąŖą«ąŖ°ąŖæąŖŖą«ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ā%sā ąŖøąŖąŖą«ąŖ°ąŖ¹ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ā%sā ąŖą«ąŖ²ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ā%sā ąŖą«ąŖ²ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ąŖŖą«ąŖ°ąŖąŖ¾ąŖ° %s (%s) ąŖąŖ§ąŖ¾ąŖ°ąŖą«ąŖ¤ ąŖØąŖ„ą«" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ąŖ¬ąŖ§ąŖ¾ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ąŖ¬ąŖ§ą« ąŖ«ąŖ¾ąŖąŖ²ą«" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +#| msgid "Failed to create a temporary directory." +msgid "Failed to create a temporary file: %s" +msgstr "ąŖąŖ¾ąŖ®ąŖąŖ²ąŖ¾ąŖ ąŖ«ąŖ¾ąŖąŖ²ąŖØą« ąŖ¬ąŖØąŖ¾ąŖµąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +#| msgid "Failed to create a temporary directory." +msgid "Failed to create a temporary directory: %s" +msgstr "ąŖąŖ¾ąŖ®ąŖąŖ²ąŖ¾ąŖ ąŖ”ąŖæąŖ°ą«ąŖą«ąŖąŖ°ą«ąŖØą« ąŖ¬ąŖØąŖ¾ąŖµąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ąŖ ąŖÆą«ąŖą«ąŖÆ .desktop ąŖ«ąŖ¾ąŖąŖ² ąŖØąŖ„ą«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ąŖ”ą«ąŖøą«ąŖąŖą«ąŖŖ ąŖ«ąŖ¾ąŖąŖ² ąŖąŖµą«ąŖ¤ą«ąŖ¤ąŖæ '%s' ąŖąŖ³ąŖąŖ¾ąŖÆą«ąŖ² ąŖØąŖ„ą«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ąŖ¶ąŖ°ą« ąŖ„ąŖ ąŖąŖÆą« ąŖą«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ąŖąŖ¾ąŖ°ą«ąŖÆąŖą«ąŖ°ąŖ® ąŖ ąŖąŖ¦ą«ąŖ¶ ąŖ²ą«ąŖą« ąŖŖąŖ° ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą« ąŖØą« ąŖøą«ąŖµą«ąŖąŖ¾ąŖ°ąŖ¤ą« ąŖØąŖ„ą«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ąŖ²ą«ąŖØą«ąŖ ąŖµąŖæąŖąŖ²ą«ąŖŖ ąŖąŖ³ąŖąŖ¾ąŖÆą«ąŖ² ąŖØąŖ„ą«: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr " 'Type=Link' ąŖ”ą«ąŖøą«ąŖąŖą«ąŖŖ ąŖØą«ąŖąŖ§ąŖ£ą«ąŖØą« URIs ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖØą« ąŖŖąŖøąŖ¾ąŖ° ąŖąŖ°ą« ąŖ¶ąŖąŖ¤ą« ąŖØąŖ„ą«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ąŖ²ą«ąŖØą«ąŖą«ąŖ¬ąŖ² ąŖµąŖøą«ąŖ¤ą« ąŖØąŖ„ą«" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ąŖµą«ąŖÆąŖµąŖøą«ąŖ„ąŖ¾ąŖŖąŖ ąŖøąŖ¤ą«ąŖ°ąŖØą«ąŖ ąŖą«ąŖ”ąŖ¾ąŖ£ ąŖØąŖæąŖ·ą«ąŖą«ąŖ°ąŖæąŖÆ ąŖąŖ°ą«" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ąŖøąŖąŖą«ąŖ°ąŖ¹ ąŖ„ąŖÆą«ąŖ² ąŖ°ą«ąŖŖąŖ°ą«ąŖąŖ¾ąŖąŖąŖØ ąŖ®ąŖ¾ąŖ ąŖ°ąŖ¹ą«ąŖ²ą« ąŖ«ąŖ¾ąŖąŖ²ąŖØą« ąŖøą«ąŖŖąŖ·ą«ąŖ ąŖąŖ°ą«" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ąŖøąŖ¤ą«ąŖ° ąŖµą«ąŖÆąŖµąŖøą«ąŖ„ąŖ¾ąŖŖąŖØ ID ąŖØą« ąŖøą«ąŖŖąŖ·ą«ąŖ ąŖąŖ°ą«" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ąŖøąŖ¤ą«ąŖ° ąŖµą«ąŖÆąŖµąŖøą«ąŖ„ąŖ¾ąŖŖąŖØ ąŖµąŖæąŖąŖ²ą«ąŖŖą«:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ąŖøąŖ¤ą«ąŖ° ąŖµą«ąŖÆąŖµąŖøą«ąŖ„ąŖ¾ąŖŖąŖØ ąŖµąŖæąŖąŖ²ą«ąŖŖą«ąŖØą« ąŖ¬ąŖ¤ąŖ¾ąŖµą«" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ąŖ¬ąŖ¤ąŖ¾ąŖµą«" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖŖąŖ° ąŖąŖøą« (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖŖąŖ° ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«ąŖ² ąŖµąŖøą«ąŖ¤ą« ąŖąŖøą«ąŖ”ą«" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą«ąŖ®ąŖ¾ąŖąŖ„ą« ąŖ¦ą«ąŖ° ąŖąŖ°ą« (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą«ąŖ®ąŖ¾ąŖąŖ„ą« ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«ąŖ² ąŖµąŖøą«ąŖ¤ą« ąŖ¦ą«ąŖ° ąŖąŖ°ą«" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖąŖ¾ąŖ¢ą« ąŖØąŖ¾ąŖąŖą« (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«ąŖ² ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖ¦ą«ąŖ° ąŖąŖ°ą«" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ąŖµąŖæąŖąŖ¾ąŖąŖ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5517 +msgid "Best Fit" +msgstr "ąŖ¶ą«ąŖ°ą«ąŖ·ą«ąŖ ąŖ°ą«ąŖ¤ą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¤ą«ąŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖØą« ąŖŖąŖ¹ą«ąŖ³ąŖ¾ąŖ ąŖŖą«ąŖ°ąŖ®ąŖ¾ąŖ£ą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¤ą«ąŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą««ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą«ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą«®ą««%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą«§ą«¦ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą«§ą«Øą««%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą«§ą««ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą«§ą«ą««%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą«Øą«¦ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą«©ą«¦ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą«Ŗą«¦ą«¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4304 +#: ../shell/ev-window-title.c:149 ../shell/main.c:313 +#, c-format +msgid "Document Viewer" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¦ąŖ°ą«ąŖ¶ąŖ" + +#: ../data/evince.desktop.in.in.h:2 +#| msgid "View multipage documents" +msgid "View multi-page documents" +msgstr "ąŖąŖ£ąŖ¾-ąŖŖąŖ¾ąŖØąŖ¾ąŖØąŖ¾ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą« ąŖą«ąŖ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØąŖ¾ ąŖ¬ąŖąŖ§ąŖØą« ąŖŖąŖ° ąŖ«ąŖ°ą«ąŖ„ą« ąŖ²ąŖą«" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØąŖ¾ ąŖ¬ąŖąŖ§ąŖØą« ąŖŖąŖ° ąŖ«ąŖ°ą«ąŖ„ą« ąŖ²ąŖą«, ąŖą«ąŖ® ąŖą« ąŖØąŖąŖ² ąŖąŖ°ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖ ąŖ„ąŖµąŖ¾ ąŖąŖ¾ąŖŖąŖØ ąŖąŖ°ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą«ąŖØąŖ¾ ąŖ¬ąŖąŖ§ąŖØą«." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ąŖąŖ¾ąŖ®ąŖąŖ²ąŖ¾ąŖ ąŖ«ąŖ¾ąŖąŖ² ąŖąŖ¾ąŖ¢ą« ąŖØąŖ¾ąŖąŖą«" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ąŖøą«ąŖÆą«ąŖąŖØą«ąŖØą« ąŖąŖ¾ąŖŖą«" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "MATE ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¦ąŖ°ą«ąŖ¶ąŖ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3065 +msgid "Failed to print document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ąŖŖąŖøąŖąŖ¦ ąŖ„ąŖÆą«ąŖ² ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° '%s' ąŖØą« ąŖ¶ą«ąŖ§ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5232 +msgid "_Previous Page" +msgstr "ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖØą«ąŖ ąŖŖąŖ¾ąŖØą«ąŖ (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5233 +msgid "Go to the previous page" +msgstr "ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖØąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5235 +msgid "_Next Page" +msgstr "ąŖąŖąŖ³ąŖØą«ąŖ ąŖŖąŖ¾ąŖØą«ąŖ (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5236 +msgid "Go to the next page" +msgstr "ąŖąŖąŖ³ąŖØąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5219 +msgid "Enlarge the document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ®ą«ąŖą«ąŖ ąŖąŖ°ą«" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5222 +msgid "Shrink the document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖøąŖąŖą«ąŖą«" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ąŖąŖ¾ąŖŖą«" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5190 +msgid "Print this document" +msgstr "ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖąŖ¾ąŖŖą«" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5334 +msgid "_Best Fit" +msgstr "ąŖ¶ą«ąŖ°ą«ąŖ·ą«ąŖ ąŖ°ą«ąŖ¤ą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¤ą«ąŖ (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5335 +msgid "Make the current document fill the window" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖ„ą« ąŖµąŖæąŖØą«ąŖ”ą« ąŖąŖ°ą«" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5337 +msgid "Fit Page _Width" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖØą« ąŖŖąŖ¹ą«ąŖ³ąŖ¾ąŖ ąŖŖą«ąŖ°ąŖ®ąŖ¾ąŖ£ą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ą« (_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5338 +msgid "Make the current document fill the window width" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖ„ą« ąŖµąŖæąŖØą«ąŖ”ą«ąŖØą« ąŖŖąŖ¹ą«ąŖ³ąŖ¾ąŖ ąŖąŖ°ą«" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5439 +msgid "Page" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5440 +msgid "Select Page" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ąŖ¶ą«ąŖ°ą«ąŖ·ąŖ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ąŖøą«ąŖ„ąŖ¾ąŖØ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ąŖµąŖæąŖ·ąŖÆ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ąŖ²ą«ąŖąŖ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ąŖ®ą«ąŖą«ąŖÆ ąŖ¶ąŖ¬ą«ąŖ¦ą«:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ąŖąŖ¤ą«ąŖŖąŖ¾ąŖ¦ąŖ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ąŖ¬ąŖØąŖ¾ąŖµąŖØąŖ¾ąŖ°:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ąŖ¬ąŖØąŖ¾ąŖµą«ąŖ²:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ąŖøą«ąŖ§ąŖ¾ąŖ°ąŖ¾ąŖÆą«ąŖ²:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖąŖØą« ąŖøąŖąŖą«ąŖÆąŖ¾:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ąŖ¶ą«ąŖ°ą«ąŖ·ą«ąŖ ąŖ¬ąŖØąŖ¾ąŖµą«ąŖ²:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ąŖ¬ąŖąŖ§ąŖ¾ąŖ°ąŖ£:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ąŖøą«ąŖ°ąŖą«ąŖ·ąŖ¾:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ąŖąŖ¾ąŖąŖ³ ąŖ®ąŖ¾ąŖŖ:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ąŖąŖąŖ ąŖØąŖ¹ą«" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +#| msgid "%.0f x %.0f mm" +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +#| msgid "%.2f x %.2f inch" +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ąŖąŖą«ąŖ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ąŖąŖ”ą«ąŖ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ąŖØąŖ¾ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ąŖØąŖ¾" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +#| msgid "Loading..." +msgid "Loadingā¦" +msgstr "ąŖ²ąŖ¾ąŖµą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«ąŖ..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#| msgid "Preparing to print ..." +msgid "Preparing to printā¦" +msgstr "ąŖąŖ¾ąŖŖąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖ¤ą«ąŖÆąŖ¾ąŖ°ą« ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«..." + +#: ../libview/ev-print-operation.c:336 +#| msgid "Finishing..." +msgid "Finishingā¦" +msgstr "ąŖøąŖ®ąŖ¾ąŖŖą«ąŖ¤ ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +#| msgid "Printing page %d of %d..." +msgid "Printing page %d of %dā¦" +msgstr "%d ąŖØą«ąŖ ąŖŖąŖ¾ąŖØą«ąŖ %d ąŖØą« ąŖąŖ¾ąŖŖą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ąŖ ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ° ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖØą«ąŖ ąŖąŖ§ąŖ¾ąŖ°ąŖą«ąŖ¤ ąŖØąŖ„ą«." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ąŖ ąŖÆą«ąŖą«ąŖÆ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖøąŖąŖ¦ąŖą«" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ąŖą«ąŖ¤ąŖµąŖ£ą«" + +#: ../libview/ev-print-operation.c:1229 +#| msgid "Your print range selection does not include any page" +msgid "Your print range selection does not include any pages" +msgstr "ąŖ¤ąŖ®ąŖ¾ąŖ°ą« ąŖąŖ¾ąŖŖąŖØ ąŖøą«ąŖ®ąŖ¾ ąŖŖąŖøąŖąŖ¦ąŖą« ąŖą«ąŖąŖŖąŖ£ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ®ąŖ¾ąŖ ąŖąŖ®ą«ąŖ°ąŖ¾ąŖ¤ą« ąŖØąŖ„ą«" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖØą«ąŖ ąŖ®ąŖ¾ąŖŖąŖØ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖØą« ąŖøąŖąŖą«ąŖą«" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖ®ąŖ¾ąŖ ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ą«" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖŖąŖøąŖąŖ¦ ąŖ„ąŖÆą«ąŖ² ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖØą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøą« ąŖąŖ® ąŖ®ąŖ¾ąŖŖą«. ąŖØą«ąŖą«ąŖØąŖ¾ąŖ ąŖąŖąŖØą« ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«:\n" +"\n" +"ā¢ \"ąŖąŖąŖ ąŖØąŖ¹ąŖæąŖ\": ąŖŖąŖ¾ąŖØąŖ¾ąŖØą«ąŖ ąŖ®ąŖ¾ąŖŖąŖØ ąŖ„ąŖ¤ą« ąŖØąŖ„ą«.\n" +"\n" +"ā¢ \"ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖØą« ąŖøąŖąŖą«ąŖą«\": ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖ ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖąŖ°ąŖ¤ąŖ¾ ąŖ®ą«ąŖąŖ¾ ąŖ¹ą«ąŖµąŖ¾ąŖ„ą« ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ¾ąŖØąŖ¾ąŖØąŖ¾ąŖ ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖØą« " +"ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖąŖąŖ¾ąŖ”ą« ąŖą«.\n" +"\n" +"ā¢ \"ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖØą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ą«\": ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ¾ąŖØąŖ¾ąŖØąŖ¾ąŖ ąŖąŖ¾ąŖŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą«ąŖµąŖ¾ ąŖµąŖæąŖøą«ąŖ¤ąŖ¾ąŖ°ąŖØą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖąŖ°ą«ąŖ°ąŖæąŖÆąŖ¾ąŖ¤ ąŖŖą«ąŖ°ąŖ®ąŖ¾ąŖ£ą« ąŖµąŖ§ą« ąŖ ąŖ„ąŖµąŖ¾ ąŖąŖą« " +"ąŖą«.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ąŖøą«ąŖµąŖÆąŖ ąŖ«ą«ąŖ°ąŖµą« ąŖ ąŖØą« ąŖą«ąŖØą«ąŖ¦ą«ąŖ°ąŖ®ąŖ¾ąŖ ąŖ²ąŖ¾ąŖµą«" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "ąŖ¦ąŖ°ą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖØą«ąŖ ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖØą« ąŖ¦ąŖæąŖ¶ąŖ¾ ąŖ ąŖ¦ąŖ°ą«ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖØą« ąŖ¦ąŖæąŖ¶ąŖ¾ąŖØą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøą« ąŖąŖ® ąŖ«ą«ąŖ°ąŖµą«. ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖŖą«ąŖ°ąŖæąŖØą«ąŖąŖ° ąŖŖąŖ¾ąŖØąŖ¾ąŖ®ąŖ¾ąŖ ąŖą«ąŖØą«ąŖ¦ą«ąŖ°ąŖæąŖ¤ ąŖ„ąŖÆą«ąŖ² ąŖ¹ąŖ¶ą«." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖØąŖ¾ąŖ ąŖ®ąŖ¾ąŖŖąŖØą« ąŖ®ąŖ¦ąŖ¦ąŖ„ą« ąŖŖąŖ¾ąŖØąŖ¾ąŖØą«ąŖ ąŖ®ąŖ¾ąŖŖ ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą«" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ąŖą«ąŖÆąŖ¾ąŖ°ą« ąŖøąŖą«ąŖ°ąŖæąŖÆ ąŖ„ąŖÆą«ąŖ² ąŖ¹ą«ąŖÆ ąŖ¤ą«ąŖÆąŖ¾ąŖ°ą«, ąŖ¦ąŖ°ą«ąŖ ąŖŖąŖ¾ąŖØą«ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ ąŖ¤ąŖ°ą«ąŖą« ąŖąŖ ąŖ®ąŖ¾ąŖŖąŖØąŖ¾ąŖ ąŖŖą«ąŖŖąŖ° ąŖŖąŖ° ąŖąŖ¾ąŖŖą«ąŖ² ąŖ¹ąŖ¶ą«." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖØą« ąŖøąŖąŖąŖ¾ąŖ³ąŖµąŖ¾ąŖØą«ąŖ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ %d ąŖØą« ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ąŖąŖŖąŖ° ąŖøąŖ°ąŖąŖ¾ąŖµą«" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ąŖØą«ąŖą« ąŖøąŖ°ąŖąŖ¾ąŖµą«" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ąŖ¦ą«ąŖąŖ¾ąŖµ ąŖąŖŖąŖ° ąŖøąŖ°ąŖąŖ¾ąŖµą«" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ąŖ¦ą«ąŖąŖ¾ąŖµ ąŖØą«ąŖą« ąŖøąŖ°ąŖąŖ¾ąŖµą«" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¦ą«ąŖ¶ą«ąŖÆ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖµ:" + +#: ../libview/ev-view-presentation.c:968 +#| msgid "End of presentation. Press Escape to exit." +msgid "End of presentation. Click to exit." +msgstr "ąŖ°ąŖą«ąŖąŖ¤ąŖØą« ąŖ ąŖąŖ¤. ąŖ¬ąŖ¹ąŖ¾ąŖ° ąŖØą«ąŖąŖ³ąŖµąŖ¾ ąŖą«ąŖ²ąŖæąŖ ąŖąŖ°ą«." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ąŖŖą«ąŖ°ąŖ„ąŖ® ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖØąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ąŖąŖąŖ³ąŖØąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ąŖą«ąŖ²ą«ąŖ²ąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖµ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ąŖ¶ą«ąŖ§ą«" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ąŖŖąŖ¾ąŖØąŖ¾ąŖ %s ąŖŖąŖ° ąŖąŖ¾ąŖµ" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ąŖŖąŖ° ąŖ«ąŖ¾ąŖąŖ² ā%sā ąŖ®ąŖ¾ąŖ ąŖąŖ¾ąŖµ" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ąŖ«ąŖ¾ąŖąŖ² ā%sā ąŖ®ąŖ¾ąŖ ąŖąŖ¾ąŖµ" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ąŖ²ą«ąŖØą«ąŖ ąŖąŖ°ą«" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ąŖ¶ą«ąŖ§ą«:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5207 +msgid "Find Pre_vious" +msgstr "ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖąŖØą«ąŖ ąŖ¶ą«ąŖ§ą« (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ąŖ¶ą«ąŖ§ ąŖ¶ąŖ¬ą«ąŖ¦ąŖ®ąŖ¾ąŖ³ąŖ¾ąŖąŖØą« ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖąŖØą« ąŖµąŖ¾ąŖ°ą« ąŖ¶ą«ąŖ§ą«" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5205 +msgid "Find Ne_xt" +msgstr "ąŖąŖąŖ³ąŖØą«ąŖ ąŖ¶ą«ąŖ§ą« (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ąŖ¶ą«ąŖ§ ąŖ¶ąŖ¬ą«ąŖ¦ąŖ®ąŖ¾ąŖ³ąŖ¾ąŖØą« ąŖąŖąŖ³ąŖØą« ąŖµąŖ¾ąŖ°ą« ąŖ¶ą«ąŖ§ą«" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ąŖą«ąŖø ąŖŖą«ąŖ°ąŖ¤ą«ąŖÆą« ąŖøąŖąŖµą«ąŖ¦ąŖØąŖ¶ą«ąŖ² (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ąŖą«ąŖø ąŖŖą«ąŖ°ąŖ¤ą«ąŖÆą« ąŖøąŖąŖµą«ąŖ¦ąŖØąŖ¶ą«ąŖ² ąŖ¶ą«ąŖ§ ąŖ¬ąŖ¦ąŖ²ą«" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ąŖąŖæąŖ¹ą«ąŖØ:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "ąŖØą«ąŖąŖ§" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "ąŖąŖæąŖŖą«ąŖŖąŖ£ą«" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ąŖą«" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "ąŖ®ąŖ¦ąŖ¦" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ąŖØąŖµą« ąŖ«ąŖąŖ°ą«" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ąŖ«ąŖąŖ°ą«" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ąŖąŖ®ą«ąŖ°ą«" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ąŖą«ąŖąŖ”ą«" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ąŖą«ąŖ³" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "ąŖ ąŖą«ąŖąŖ¾ąŖ¤" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "ąŖµąŖæąŖµąŖ°ąŖ£ ąŖą«ąŖ£ąŖ§ąŖ°ą«ąŖ®ą«" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "ąŖ°ąŖąŖ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#| msgid "Title:" +msgid "Style:" +msgstr "ąŖ¶ą«ąŖ²ą«:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ąŖŖąŖ¾ąŖ°ąŖ¦ąŖ°ą«ąŖ¶ąŖ" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ąŖ ąŖŖąŖ¾ąŖ°ąŖ¦ąŖ°ą«ąŖ¶ąŖ" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ąŖŖą«ąŖ°ąŖ¾ąŖ°ąŖąŖąŖæąŖ ąŖµąŖæąŖØą«ąŖ”ą« ąŖøą«ąŖ„ąŖæąŖ¤ąŖæ:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Open..." +msgid "Open" +msgstr "ąŖą«ąŖ²ą«" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ąŖ¬ąŖąŖ§ ąŖąŖ°ą«" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ąŖ°ąŖą«ąŖąŖ¤ ąŖøą«ąŖ„ąŖæąŖ¤ąŖæąŖ®ąŖ¾ąŖ ąŖąŖ²ąŖ¾ąŖµą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«ąŖ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ %s ąŖ®ąŖ¾ąŖą«ąŖØą« ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ”" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +#| msgid "Starting %s" +msgid "Converting %s" +msgstr "%s ąŖØą« ąŖ°ą«ąŖŖąŖ¾ąŖąŖ¤ąŖ° ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ąŖ°ą«ąŖŖąŖ¾ąŖąŖ¤ąŖ°ąŖæąŖ¤ ąŖ„ąŖÆą«ąŖ² %d ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«ąŖØą«ąŖ %d" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ąŖ®ą«ąŖąŖ¾ąŖ”ą«ąŖąŖ¾ąŖØą« ąŖ°ą«ąŖŖąŖ¾ąŖąŖ¤ąŖ° ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Evince ąŖ¦ą«ąŖ¦ąŖ¾ąŖ°ąŖ¾ ąŖµąŖ¾ąŖŖąŖ°ą«ąŖ² ąŖ®ą«ąŖąŖ¾ąŖ”ą«ąŖąŖ¾ ąŖ¬ąŖąŖ§ąŖ¾ąŖ°ąŖ£ ąŖ¬ąŖ¦ąŖ²ąŖ¾ąŖ ąŖąŖÆą«ąŖ, ąŖ ąŖØą« ąŖ¤ą«ąŖ„ą« ąŖ¤ą«ąŖØą«ąŖ ąŖøą«ąŖ„ąŖ³ąŖ¾ąŖąŖ¤ąŖ° ąŖąŖ°ąŖµąŖ¾ąŖØą« ąŖąŖ°ą«ąŖ° ąŖą«. ąŖą« ąŖøą«ąŖ„ąŖ³ąŖ¾ąŖąŖ¤ąŖ° ąŖ°ąŖ¦ ąŖ„ąŖÆą«ąŖ² ąŖ¹ą«ąŖÆ ąŖ¤ą« ąŖ®ą«ąŖąŖ¾ąŖ”ą«ąŖąŖ¾ ąŖąŖ¾ąŖ® ąŖąŖ°ąŖ¶ą« ąŖØąŖ¹ąŖæąŖ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ąŖą«ąŖ²ą«ąŖ²ą« ąŖµąŖŖąŖ°ąŖ¾ąŖÆą«ąŖ² ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖą«ąŖ²ą«" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖ¤ąŖ¾ąŖ³ą«ąŖ ąŖ²ąŖąŖ¾ąŖµą«ąŖ² ąŖą« ąŖ ąŖØą« ąŖ¤ą« ąŖ®ąŖ¾ąŖ¤ą«ąŖ° ąŖÆą«ąŖą«ąŖÆ ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ” ąŖ¦ąŖ¾ąŖąŖ² ąŖąŖ°ą«ąŖØą« ąŖ ąŖµąŖ¾ąŖąŖą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖą«." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą«ąŖ ąŖ¤ąŖ¾ąŖ³ą«ąŖ ąŖą«ąŖ²ą« (_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ” ąŖ¦ąŖ¾ąŖąŖ² ąŖąŖ°ą«" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ” ąŖąŖ°ą«ąŖ°ą«" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ā%sā ąŖØą« ąŖ¤ąŖ¾ąŖ³ą«ąŖ ąŖ®ąŖ°ąŖ¾ąŖÆą«ąŖ² ąŖą« ąŖ ąŖØą« ąŖ¤ą«ąŖØą« ąŖą«ąŖ²ą« ąŖ¶ąŖąŖ¾ąŖÆ ąŖ¤ą« ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖ ąŖ¤ą«ąŖØą« ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ”ąŖØą« ąŖąŖ°ą«ąŖ° ąŖą«." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ” (_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ąŖ¤ąŖ°ąŖ¤ ąŖ ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ”ąŖØą« ąŖą«ąŖ²ą« ąŖąŖ¾ąŖ (_i)" + +#: ../shell/ev-password-view.c:380 +#| msgid "Remember password until you _logout" +msgid "Remember password until you _log out" +msgstr "ąŖ¤ąŖ®ą« ąŖ¬ąŖ¹ąŖ¾ąŖ° ąŖØąŖ¾ ąŖØą«ąŖąŖ³ą« ąŖ¤ą«ąŖÆąŖ¾ąŖ ąŖøą«ąŖ§ą« ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ”ąŖØą« ąŖÆąŖ¾ąŖ¦ ąŖ°ąŖ¾ąŖą« (_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ąŖ¹ąŖąŖ®ą«ąŖ¶ ąŖ®ąŖ¾ąŖą« ąŖÆąŖ¾ąŖ¦ ąŖ°ąŖ¾ąŖą« (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ąŖą«ąŖ£ąŖ§ąŖ°ą«ąŖ®ą«" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ąŖøąŖ¾ąŖ®ąŖ¾ąŖØą«ąŖÆ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ąŖ«ą«ąŖØą«ąŖ" + +#: ../shell/ev-properties-dialog.c:118 +#| msgid "Document Viewer" +msgid "Document License" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ²ąŖ¾ąŖąŖøąŖØą«ąŖø" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ąŖ«ą«ąŖØą«ąŖ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +#| msgid "Gathering font information... %3d%%" +msgid "Gathering font informationā¦ %3d%%" +msgstr "ąŖ«ą«ąŖØą«ąŖ ąŖąŖ¾ąŖ£ąŖąŖ¾ąŖ°ą« ąŖą«ąŖą« ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«ąŖ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ąŖ®ąŖ°ą«ąŖÆąŖ¾ąŖ¦ąŖ¾ąŖØą« ąŖµąŖŖąŖ°ąŖ¾ąŖ¶" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ąŖ²ąŖąŖ¾ąŖ£ ąŖ²ąŖ¾ąŖąŖøąŖØą«ąŖø" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ąŖąŖµąŖæąŖ·ą«ąŖÆąŖØą« ąŖąŖ¾ąŖ£ąŖąŖ¾ąŖ°ą«" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ąŖÆąŖ¾ąŖ¦ą«" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#| msgid "Location:" +msgid "Annotations" +msgstr "ąŖµąŖæąŖµąŖ°ąŖ£:" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "ąŖ²ąŖąŖ¾ąŖ£" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ąŖ²ąŖąŖ¾ąŖ£ ąŖµąŖæąŖ¤ąŖ°ąŖ£ąŖØą« ąŖąŖ®ą«ąŖ°ą«" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ąŖąŖ®ą«ąŖ°ą«" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "The document contains no pages" +msgid "Document contains no annotations" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą« ąŖµąŖæąŖµąŖ°ąŖ£ą«ąŖØą« ąŖøąŖ®ąŖ¾ąŖµąŖ¤ąŖ¾ ąŖØąŖ„ą«" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ą«" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ąŖøą«ąŖ¤ąŖ°ą«" + +#: ../shell/ev-sidebar-links.c:335 +#| msgid "Print" +msgid "Printā¦" +msgstr "ąŖąŖ¾ąŖŖą«..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ąŖ ąŖØą«ąŖą«ąŖ°ąŖ®ąŖ£ąŖæąŖąŖ¾" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ²ą«" + +#: ../shell/ev-window.c:855 +#, c-format +#| msgid "Page %s - %s" +msgid "Page %s ā %s" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ %s ā %s" + +#: ../shell/ev-window.c:857 +#, c-format +msgid "Page %s" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ %s" + +#: ../shell/ev-window.c:1322 +msgid "The document contains no pages" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖ§ąŖ°ąŖ¾ąŖµąŖ¤ą« ąŖØąŖ„ą«" + +#: ../shell/ev-window.c:1325 +msgid "The document contains only empty pages" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ«ąŖą«ąŖ¤ ąŖąŖ¾ąŖ²ą« ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖøąŖ®ąŖ¾ąŖµą« ąŖą«" + +#: ../shell/ev-window.c:1525 ../shell/ev-window.c:1691 +msgid "Unable to open document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖą«ąŖ²ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖ ąŖøąŖ®ąŖ°ą«ąŖ„" + +#: ../shell/ev-window.c:1662 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ąŖ®ąŖ¾ąŖąŖ„ą« ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:1804 ../shell/ev-window.c:2082 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ (%d%%) ąŖØą« ąŖ”ąŖ¾ąŖąŖØąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:1837 +#| msgid "Failed to reload document." +msgid "Failed to load remote file." +msgstr "ąŖ¦ą«ąŖ°ąŖøą«ąŖ„ ąŖ«ąŖ¾ąŖąŖ²ąŖØą« ąŖ²ąŖ¾ąŖµąŖµąŖ¾ąŖØą«ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³." + +#: ../shell/ev-window.c:2026 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ąŖ®ąŖ¾ąŖąŖ„ą« ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖØą« ąŖŖą«ąŖØ:ąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2058 +msgid "Failed to reload document." +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖØą« ąŖŖą«ąŖØ:ąŖ²ą«ąŖ” ąŖąŖ°ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖØąŖæąŖ·ą«ąŖ«ąŖ³." + +#: ../shell/ev-window.c:2213 +msgid "Open Document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖą«ąŖ²ą«" + +#: ../shell/ev-window.c:2511 +#, c-format +msgid "Saving document to %s" +msgstr "%s ąŖ®ąŖ¾ąŖ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖøąŖąŖą«ąŖ°ąŖ¹ ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ąŖ®ąŖ¾ąŖ ąŖą«ąŖ”ąŖ¾ąŖ£ ąŖąŖ°ąŖµąŖ¾ ąŖøąŖąŖą«ąŖ°ąŖ¹ ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2517 +#, c-format +msgid "Saving image to %s" +msgstr "%s ąŖ®ąŖ¾ąŖ ąŖąŖ®ą«ąŖ ąŖØą« ąŖøąŖąŖą«ąŖ°ąŖ¹ ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2561 ../shell/ev-window.c:2661 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ąŖ«ąŖ¾ąŖąŖ² ā%sā ąŖ°ą«ąŖ¤ą« ąŖøąŖąŖą«ąŖ°ąŖ¹ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ." + +#: ../shell/ev-window.c:2592 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ (%d%%) ąŖØą« ąŖ ąŖŖąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2596 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ (%d%%) ąŖØą« ąŖ ąŖŖąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2600 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ąŖąŖ®ą«ąŖ (%d%%) ąŖØą« ąŖ ąŖŖąŖ²ą«ąŖ” ąŖąŖ°ą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:2724 +msgid "Save a Copy" +msgstr "ąŖØąŖąŖ² ąŖøąŖąŖą«ąŖ°ąŖ¹ą«" + +#: ../shell/ev-window.c:3009 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ąŖąŖ¤ąŖ¾ąŖ° ąŖ®ąŖ¾ąŖ %d ąŖ ąŖąŖą«ąŖ² ąŖą«ąŖ¬" +msgstr[1] "ąŖąŖ¤ąŖ¾ąŖ° ąŖ®ąŖ¾ąŖ %d ąŖ ąŖąŖą«ąŖ² ąŖą«ąŖ¬ą«" + +#: ../shell/ev-window.c:3122 +#, c-format +msgid "Printing job ā%sā" +msgstr "ąŖą«ąŖ¬ ā%sā ąŖØą« ąŖąŖ¾ąŖŖą« ąŖ°ąŖ¹ą«ąŖÆąŖ¾ ąŖą«" + +#: ../shell/ev-window.c:3336 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ąŖ¬ąŖąŖ§ ąŖąŖ°ąŖ¤ąŖ¾ ąŖŖą«ąŖ¹ąŖ²ąŖ¾ąŖ ąŖą«ąŖ¬ ā%sāąŖØą« ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖØą«ąŖ ąŖøąŖ®ąŖ¾ąŖŖą«ąŖ¤ ąŖ„ąŖ¾ąŖÆ ąŖ¤ą«ąŖÆąŖ¾ąŖ ąŖøą«ąŖ§ą« ąŖ„ą«ąŖą«?" + +#: ../shell/ev-window.c:3339 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ąŖ¤ą«ąŖÆąŖ¾ąŖ %d ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖØą« ąŖą«ąŖ¬ą« ąŖøąŖą«ąŖ°ąŖæąŖÆ ąŖą«. ąŖ¬ąŖąŖ§ ąŖąŖ°ąŖ¤ąŖ¾ ąŖŖąŖ¹ą«ąŖ²ąŖ¾ ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖØą«ąŖ ąŖøąŖ®ąŖ¾ąŖŖą«ąŖ¤ ąŖ„ąŖ¾ąŖÆ ąŖ¤ą«ąŖÆąŖ¾ąŖ ąŖøą«ąŖ§ą« ąŖ„ą«ąŖą«?" + +#: ../shell/ev-window.c:3351 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ąŖą« ąŖ¤ąŖ®ą« ąŖµąŖæąŖØą«ąŖ”ą« ąŖØą« ąŖ¬ąŖąŖ§ ąŖąŖ°ą« ąŖ¤ą«, ąŖ ąŖąŖą«ąŖ² ąŖąŖ¾ąŖŖąŖµąŖ¾ąŖØą« ąŖą«ąŖ¬ą« ąŖ ąŖąŖ¾ąŖŖą«ąŖ² ąŖ¹ąŖ¶ą«." + +#: ../shell/ev-window.c:3355 +msgid "Cancel _print and Close" +msgstr "ąŖąŖ¾ąŖŖą« ąŖ ąŖØą« ąŖ¬ąŖąŖ§ ąŖąŖ°ą« ąŖØą« ąŖ°ąŖ¦ ąŖąŖ°ą« (_p)" + +#: ../shell/ev-window.c:3359 +msgid "Close _after Printing" +msgstr "ąŖąŖ¾ąŖŖąŖµąŖ¾ ąŖŖąŖą« ąŖ¬ąŖąŖ§ ąŖąŖ°ą« (_a)" + +#: ../shell/ev-window.c:3949 +msgid "Toolbar Editor" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖøąŖąŖŖąŖ¾ąŖ¦ąŖ" + +#: ../shell/ev-window.c:4088 +msgid "There was an error displaying help" +msgstr "ąŖ®ąŖ¦ąŖ¦ ąŖØą« ąŖ¦ąŖ°ą«ąŖ¶ąŖ¾ąŖµąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖą«ąŖ² ąŖ¹ąŖ¤ą«" + +#: ../shell/ev-window.c:4300 +#, c-format +#| msgid "" +#| "Document Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¦ąŖ°ą«ąŖ¶ąŖ.\n" +"%s (%s) ąŖ®ąŖ¦ąŖ¦ąŖ„ą«" + +#: ../shell/ev-window.c:4331 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4335 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4339 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4364 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4367 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4373 +msgid "translator-credits" +msgstr "ąŖ ąŖąŖąŖæąŖ¤ ąŖŖąŖą«ąŖ² <ankit644@yahoo.com>, ąŖ¶ą«ąŖ°ą«ąŖµą«ąŖ¤ąŖ¾ ąŖą«ąŖ ąŖ¾ąŖ°ą« <swkothar@redhat.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4658 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖ®ąŖ³ą« ąŖąŖµą«ąŖÆą«ąŖ" +msgstr[1] "%d ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖ®ąŖ³ą« ąŖąŖµą«ąŖÆąŖ¾" + +#: ../shell/ev-window.c:4666 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ąŖ¶ą«ąŖ§ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖ¬ąŖ¾ąŖą«" + +#: ../shell/ev-window.c:5173 +msgid "_File" +msgstr "ąŖ«ąŖ¾ąŖąŖ² (_F)" + +#: ../shell/ev-window.c:5174 +msgid "_Edit" +msgstr "ąŖ«ą«ąŖ°ąŖ«ąŖ¾ąŖ° (_E)" + +#: ../shell/ev-window.c:5175 +msgid "_View" +msgstr "ąŖ¦ą«ąŖąŖ¾ąŖµ (_V)" + +#: ../shell/ev-window.c:5176 +msgid "_Go" +msgstr "ąŖąŖ¾ąŖ (_G)" + +#: ../shell/ev-window.c:5177 +msgid "_Help" +msgstr "ąŖ®ąŖ¦ąŖ¦ (_H)" + +#. File menu +#: ../shell/ev-window.c:5180 ../shell/ev-window.c:5479 +#| msgid "_Open..." +msgid "_Openā¦" +msgstr "ąŖą«ąŖ²ą« (_O)..." + +#: ../shell/ev-window.c:5181 ../shell/ev-window.c:5480 +msgid "Open an existing document" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖą«ąŖ²ą«" + +#: ../shell/ev-window.c:5183 +msgid "Op_en a Copy" +msgstr "ąŖØąŖąŖ² ąŖą«ąŖ²ą« (_e)" + +#: ../shell/ev-window.c:5184 +msgid "Open a copy of the current document in a new window" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖØąŖąŖ² ąŖØąŖµą« ąŖµąŖæąŖØą«ąŖ”ą«ąŖ®ąŖ¾ąŖ ąŖą«ąŖ²ą«" + +#: ../shell/ev-window.c:5186 +#| msgid "Save a Copy" +msgid "_Save a Copyā¦" +msgstr "ąŖØąŖąŖ² ąŖøąŖąŖą«ąŖ°ąŖ¹ą« (_S)..." + +#: ../shell/ev-window.c:5187 +msgid "Save a copy of the current document" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖØąŖąŖ² ąŖøąŖąŖą«ąŖ°ąŖ¹ą«" + +#: ../shell/ev-window.c:5189 +#| msgid "Print" +msgid "_Printā¦" +msgstr "ąŖąŖ¾ąŖŖą« (_P)..." + +#: ../shell/ev-window.c:5192 +msgid "P_roperties" +msgstr "ąŖą«ąŖ£ąŖ§ąŖ°ą«ąŖ®ą« (_r)" + +#: ../shell/ev-window.c:5200 +msgid "Select _All" +msgstr "ąŖ¬ąŖ§ą«ąŖ ąŖŖąŖøąŖąŖ¦ ąŖąŖ°ą« (_A)" + +#: ../shell/ev-window.c:5202 +#| msgid "Find" +msgid "_Findā¦" +msgstr "ąŖ¶ą«ąŖ§ą« (_F)..." + +#: ../shell/ev-window.c:5203 +msgid "Find a word or phrase in the document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖ®ąŖ¾ąŖ ąŖ¶ąŖ¬ą«ąŖ¦ ąŖ ąŖ„ąŖµąŖ¾ ąŖ®ąŖ¹ąŖ¾ąŖµąŖ°ą« ąŖ¶ą«ąŖ§ą«" + +#: ../shell/ev-window.c:5209 +msgid "T_oolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« (_o)" + +#: ../shell/ev-window.c:5211 +msgid "Rotate _Left" +msgstr "ąŖ”ąŖ¾ąŖ¬ą« ąŖ«ą«ąŖ°ąŖµą« (_L)" + +#: ../shell/ev-window.c:5213 +msgid "Rotate _Right" +msgstr "ąŖąŖ®ąŖ£ą« ąŖ«ą«ąŖ°ąŖµą« (_R)" + +#: ../shell/ev-window.c:5224 +msgid "_Reload" +msgstr "ąŖŖą«ąŖØąŖąŖ²ąŖ¾ąŖµą« (_R)" + +#: ../shell/ev-window.c:5225 +msgid "Reload the document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖŖąŖ¾ąŖą«ąŖ ąŖ²ąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5228 +msgid "Auto_scroll" +msgstr "ąŖąŖŖą«ąŖąŖŖ ąŖøąŖ°ąŖąŖ¾ąŖµą« (_s)" + +#: ../shell/ev-window.c:5238 +msgid "_First Page" +msgstr "ąŖŖą«ąŖ°ąŖ„ąŖ® ąŖŖąŖ¾ąŖØą«ąŖ (_F)" + +#: ../shell/ev-window.c:5239 +msgid "Go to the first page" +msgstr "ąŖŖą«ąŖ°ąŖ„ąŖ® ąŖŖąŖ¾ąŖØąŖ¾ąŖ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#: ../shell/ev-window.c:5241 +msgid "_Last Page" +msgstr "ąŖą«ąŖ²ą«ąŖ²ą«ąŖ ąŖŖąŖ¾ąŖØą«ąŖ (_L)" + +#: ../shell/ev-window.c:5242 +msgid "Go to the last page" +msgstr "ąŖą«ąŖ²ą«ąŖ²ąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ ąŖŖąŖ° ąŖąŖ¾ąŖ" + +#. Help menu +#: ../shell/ev-window.c:5246 +msgid "_Contents" +msgstr "ąŖøąŖ®ąŖ¾ąŖµąŖæąŖ·ą«ąŖą« (_C)" + +#: ../shell/ev-window.c:5249 +msgid "_About" +msgstr "ąŖµąŖæąŖ¶ą« (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5253 +msgid "Leave Fullscreen" +msgstr "ąŖŖą«ąŖ°ą«ąŖ£ ąŖøą«ąŖą«ąŖ°ą«ąŖØ ąŖą«ąŖ”ą«" + +#: ../shell/ev-window.c:5254 +msgid "Leave fullscreen mode" +msgstr "ąŖŖą«ąŖ°ą«ąŖ£ąŖøą«ąŖą«ąŖ°ą«ąŖØ ąŖøą«ąŖ„ąŖæąŖ¤ąŖæ ąŖą«ąŖ”ą« ąŖ®ą«ąŖą«" + +#: ../shell/ev-window.c:5256 +msgid "Start Presentation" +msgstr "ąŖ°ąŖą«ąŖąŖ¤ ąŖ¶ąŖ°ą« ąŖąŖ°ą«" + +#: ../shell/ev-window.c:5257 +msgid "Start a presentation" +msgstr "ąŖ°ąŖą«ąŖąŖ¤ ąŖ¶ąŖ°ą« ąŖąŖ°ą«" + +#. View Menu +#: ../shell/ev-window.c:5316 +msgid "_Toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« (_T)" + +#: ../shell/ev-window.c:5317 +msgid "Show or hide the toolbar" +msgstr "ąŖøąŖ¾ąŖ§ąŖØąŖŖąŖą«ąŖą« ąŖ¬ąŖ¤ąŖ¾ąŖµą« ąŖ ąŖ„ąŖµąŖ¾ ąŖą«ąŖŖąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5319 +msgid "Side _Pane" +msgstr "ąŖ¬ąŖ¾ąŖą«ąŖØą« ąŖ¤ąŖąŖ¤ą« (_P)" + +#: ../shell/ev-window.c:5320 +msgid "Show or hide the side pane" +msgstr "ąŖ¬ąŖ¾ąŖą«ąŖØą« ąŖ¤ąŖąŖ¤ą« ąŖ¬ąŖ¤ąŖ¾ąŖµą« ąŖ ąŖ„ąŖµąŖ¾ ąŖą«ąŖŖąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5322 +msgid "_Continuous" +msgstr "ąŖøąŖ¤ąŖ¤ (_C)" + +#: ../shell/ev-window.c:5323 +msgid "Show the entire document" +msgstr "ąŖµąŖ°ą«ąŖ¤ąŖ®ąŖ¾ąŖØ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¬ąŖ¤ąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5325 +msgid "_Dual" +msgstr "ąŖ¦ą«ąŖµąŖæ (_D)" + +#: ../shell/ev-window.c:5326 +msgid "Show two pages at once" +msgstr "ąŖ¬ą« ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖ ąŖąŖąŖøąŖ¾ąŖ„ą« ąŖ¬ąŖ¤ąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5328 +msgid "_Fullscreen" +msgstr "ąŖŖą«ąŖ°ą«ąŖ£ąŖøą«ąŖą«ąŖ°ą«ąŖØ (_F)" + +#: ../shell/ev-window.c:5329 +msgid "Expand the window to fill the screen" +msgstr "ąŖµąŖæąŖØą«ąŖ”ą«ąŖØą« ąŖŖą«ąŖ°ą«ąŖ£ ąŖøą«ąŖą«ąŖ°ą«ąŖØąŖ®ąŖ¾ąŖ ąŖµąŖæąŖøą«ąŖ¤ą«ąŖ¤ ąŖ¬ąŖØąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5331 +msgid "Pre_sentation" +msgstr "ąŖ°ąŖą«ąŖąŖ¤ (_s)" + +#: ../shell/ev-window.c:5332 +msgid "Run document as a presentation" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØą« ąŖ°ąŖą«ąŖąŖ¤ ąŖ¤ąŖ°ą«ąŖą« ąŖąŖ²ąŖ¾ąŖµą«" + +#: ../shell/ev-window.c:5340 +msgid "_Inverted Colors" +msgstr "ąŖµąŖæąŖŖąŖ°ą«ąŖ¤ ąŖ°ąŖąŖą« (_I)" + +#: ../shell/ev-window.c:5341 +msgid "Show page contents with the colors inverted" +msgstr "ąŖµąŖæąŖŖąŖ°ą«ąŖ¤ ąŖ°ąŖąŖą« ąŖøąŖ¾ąŖ„ą« ąŖŖąŖ¾ąŖØąŖ¾ąŖØąŖ¾ąŖ ąŖøąŖ®ąŖ¾ąŖµąŖæąŖ·ą«ąŖą«ąŖØą« ąŖ¬ąŖ¤ąŖ¾ąŖµą«" + +#. Links +#: ../shell/ev-window.c:5349 +msgid "_Open Link" +msgstr "ąŖąŖ”ą« ąŖą«ąŖ²ą« (_O)" + +#: ../shell/ev-window.c:5351 +msgid "_Go To" +msgstr "ąŖŖąŖ° ąŖąŖ¾ąŖ (_G)" + +#: ../shell/ev-window.c:5353 +msgid "Open in New _Window" +msgstr "ąŖØąŖµą« ąŖµąŖæąŖØą«ąŖ”ą«ąŖ®ąŖ¾ąŖ ąŖą«ąŖ²ą« (_W)" + +#: ../shell/ev-window.c:5355 +msgid "_Copy Link Address" +msgstr "ąŖąŖ”ą« ąŖøąŖ°ąŖØąŖ¾ąŖ®ąŖ¾ąŖØą« ąŖØąŖąŖ² ąŖąŖ°ą« (_C)" + +#: ../shell/ev-window.c:5357 +#| msgid "_Save Image As..." +msgid "_Save Image Asā¦" +msgstr "ąŖąŖæąŖ¤ą«ąŖ°ąŖØą« ąŖ ąŖ°ą«ąŖ¤ą« ąŖøąŖąŖą«ąŖ°ąŖ¹ą« (_S)..." + +#: ../shell/ev-window.c:5359 +msgid "Copy _Image" +msgstr "ąŖąŖæąŖ¤ą«ąŖ°ąŖØą« ąŖØąŖąŖ² ąŖąŖ°ą« (_I)" + +#: ../shell/ev-window.c:5361 +msgid "Annotation Propertiesā¦" +msgstr "ąŖµąŖæąŖµąŖ°ąŖ£ ąŖą«ąŖ£ąŖ§ąŖ°ą«ąŖ®ą«..." + +#: ../shell/ev-window.c:5366 +#| msgid "Save Attachment" +msgid "_Open Attachment" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ąŖØą« ąŖą«ąŖ²ą« (_O)" + +#: ../shell/ev-window.c:5368 +#| msgid "Save Attachment" +msgid "_Save Attachment Asā¦" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ąŖØą« ąŖ ąŖ°ą«ąŖ¤ą« ąŖøąŖąŖą«ąŖ°ąŖ¹ą« (_S)..." + +#: ../shell/ev-window.c:5453 +msgid "Zoom" +msgstr "ąŖØąŖ¾ąŖØą«ąŖ®ą«ąŖą« ąŖąŖ°ąŖµą«ąŖ" + +#: ../shell/ev-window.c:5455 +msgid "Adjust the zoom level" +msgstr "ąŖØąŖ¾ąŖØąŖ¾ąŖ®ą«ąŖąŖ¾ąŖŖąŖ£ąŖ¾ąŖØą«ąŖ ąŖøą«ąŖ¤ąŖ° ąŖøąŖąŖ¤ą«ąŖ²ąŖæąŖ¤ ąŖąŖ°ą«" + +#: ../shell/ev-window.c:5465 +msgid "Navigation" +msgstr "ąŖ¶ą«ąŖ§ąŖą«ąŖ³" + +#: ../shell/ev-window.c:5467 +msgid "Back" +msgstr "ąŖŖąŖ¾ąŖąŖ³" + +#. translators: this is the history action +#: ../shell/ev-window.c:5470 +msgid "Move across visited pages" +msgstr "ąŖ®ą«ąŖ²ąŖ¾ąŖąŖ¾ąŖ¤ ąŖ²ą«ąŖ§ą«ąŖ² ąŖŖąŖ¾ąŖØąŖ¾ąŖąŖąŖ®ąŖ¾ąŖ ąŖąŖøą«ąŖ”ą«" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5500 +msgid "Previous" +msgstr "ąŖŖąŖ¹ą«ąŖ²ąŖ¾ąŖØą«ąŖ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5505 +msgid "Next" +msgstr "ąŖąŖąŖ³ąŖØą«ąŖ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5509 +msgid "Zoom In" +msgstr "ąŖ®ą«ąŖą«ąŖ ąŖąŖ°ą«" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5513 +msgid "Zoom Out" +msgstr "ąŖØąŖ¾ąŖØą«ąŖ ąŖąŖ°ą«" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5521 +msgid "Fit Width" +msgstr "ąŖŖąŖ¹ą«ąŖ³ąŖ¾ąŖąŖ„ą« ąŖ¬ąŖąŖ§ąŖ¬ą«ąŖøąŖ¾ąŖ”ą«" + +#: ../shell/ev-window.c:5682 ../shell/ev-window.c:5699 +msgid "Unable to launch external application." +msgstr "ąŖ¬ąŖ¹ąŖ¾ąŖ°ąŖØąŖ¾ąŖ ąŖąŖ¾ąŖ°ą«ąŖÆąŖą«ąŖ°ąŖ®ąŖØą« ąŖŖą«ąŖ°ąŖąŖ¾ąŖ¶ąŖæąŖ¤ ąŖąŖ°ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖ ąŖøąŖ®ąŖ°ą«ąŖ„." + +#: ../shell/ev-window.c:5756 +msgid "Unable to open external link" +msgstr "ąŖ¬ąŖ¾ąŖ¹ą«ąŖÆ ąŖąŖ”ą« ąŖą«ąŖ²ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖ ąŖøąŖ®ąŖ°ą«ąŖ„" + +#: ../shell/ev-window.c:5923 +msgid "Couldn't find appropriate format to save image" +msgstr "ąŖąŖæąŖ¤ą«ąŖ° ąŖøąŖąŖą«ąŖ°ąŖ¹ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖÆą«ąŖą«ąŖÆ ąŖ¬ąŖąŖ§ąŖ¾ąŖ°ąŖ£ ąŖ¶ą«ąŖ§ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ" + +#: ../shell/ev-window.c:5965 +msgid "The image could not be saved." +msgstr "ąŖąŖæąŖ¤ą«ąŖ° ąŖøąŖąŖą«ąŖ°ąŖ¹ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ." + +#: ../shell/ev-window.c:5997 +msgid "Save Image" +msgstr "ąŖąŖæąŖ¤ą«ąŖ° ąŖøąŖąŖą«ąŖ°ąŖ¹ą«" + +#: ../shell/ev-window.c:6125 +msgid "Unable to open attachment" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ąŖą«ąŖ²ąŖµąŖ¾ąŖ®ąŖ¾ąŖ ąŖ ąŖøąŖ®ąŖ°ą«ąŖ„" + +#: ../shell/ev-window.c:6178 +msgid "The attachment could not be saved." +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ąŖøąŖąŖą«ąŖ°ąŖ¹ą« ąŖ¶ąŖą«ąŖÆąŖ¾ ąŖØąŖ¹ąŖæąŖ." + +#: ../shell/ev-window.c:6223 +msgid "Save Attachment" +msgstr "ąŖą«ąŖ”ąŖ¾ąŖ£ ąŖøąŖąŖą«ąŖ°ąŖ¹ą«" + +#: ../shell/ev-window-title.c:162 +#, c-format +#| msgid "%s - Password Required" +msgid "%s ā Password Required" +msgstr "%s ā ąŖŖąŖ¾ąŖøąŖµąŖ°ą«ąŖ” ąŖąŖ°ą«ąŖ°ą«" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ąŖąŖą«ąŖøąŖą«ąŖØą«ąŖøąŖØ ąŖŖą«ąŖ°ąŖ®ąŖ¾ąŖ£ą«" + +#: ../shell/main.c:72 ../shell/main.c:277 +msgid "MATE Document Viewer" +msgstr "ąŖą«ąŖØą«ąŖ® ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ¦ąŖ°ą«ąŖ¶ąŖ" + +#: ../shell/main.c:80 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "ąŖ¦ąŖ°ą«ąŖ¶ąŖ¾ąŖµąŖµąŖ¾ ąŖ®ąŖ¾ąŖą«ąŖØąŖ¾ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØąŖ¾ ąŖŖąŖ¾ąŖØąŖ¾ąŖØą«ąŖ ąŖ²ą«ąŖ¬ąŖ²." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "ąŖŖąŖ¾ąŖØą«ąŖ" + +#: ../shell/main.c:81 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "ąŖ¦ąŖ°ą«ąŖ¶ąŖ¾ąŖµąŖµąŖ¾ ąŖ®ąŖ¾ąŖą«ąŖØąŖ¾ ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖØąŖ¾ąŖ ąŖŖąŖ¾ąŖØąŖ¾ąŖØą« ąŖØąŖąŖ¬ąŖ°." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "evince ąŖØą« ąŖŖą«ąŖ°ą«ąŖ£ąŖøą«ąŖą«ąŖ°ą«ąŖØ ąŖøą«ąŖ„ąŖæąŖ¤ąŖæąŖ®ąŖ¾ąŖ ąŖąŖ²ąŖ¾ąŖµą«" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "evince ąŖØą« ąŖ°ąŖą«ąŖąŖ¤ ąŖøą«ąŖ„ąŖæąŖ¤ąŖæąŖ®ąŖ¾ąŖ ąŖąŖ²ąŖ¾ąŖµą«" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "evince ąŖØą« ąŖŖą«ąŖ°ą«ąŖµąŖ¦ąŖ°ą«ąŖ¶ąŖ ąŖ¤ąŖ°ą«ąŖą« ąŖąŖ²ąŖ¾ąŖµą«" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖąŖ®ąŖ¾ąŖ ąŖ¶ą«ąŖ§ąŖµąŖ¾ ąŖ®ąŖ¾ąŖą« ąŖ¶ąŖ¬ą«ąŖ¦ ąŖą« ąŖ®ąŖ¹ąŖ¾ąŖµąŖ°ą«" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "ąŖ¶ąŖ¬ą«ąŖ¦ąŖ®ąŖ¾ąŖ³ąŖ¾" + +#: ../shell/main.c:89 +#| msgid "[FILE...]" +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#| msgid "" +#| "Boolean options available, true enables thumbnailing and false disables " +#| "the creation of new thumbnails" +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "ąŖ¬ą«ąŖ²ąŖæąŖÆąŖØ ąŖµąŖæąŖąŖ²ą«ąŖŖą« ąŖąŖŖąŖ²ąŖ¬ą«ąŖ§ ąŖą«, ąŖøąŖ¾ąŖą«ąŖ ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ²ą«ąŖąŖąŖØą« ąŖøąŖą«ąŖ°ąŖæąŖÆ ąŖąŖ°ą« ąŖą« ąŖ ąŖØą« ąŖą«ąŖą«ąŖ ąŖØąŖµąŖ¾ ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ²ąŖØą« ąŖ¬ąŖØąŖ¾ąŖµąŖąŖØą« ąŖØąŖæąŖ·ą«ąŖą«ąŖ°ąŖæąŖÆ ąŖąŖ°ą« ąŖą«" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«ąŖØą«ąŖ ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ² ąŖąŖ°ąŖµąŖ¾ąŖØą«ąŖ ąŖøąŖą«ąŖ°ąŖæąŖÆ ąŖąŖ°ą«" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą« ąŖ®ąŖ¾ąŖą« ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ² ąŖąŖ¦ą«ąŖ¶" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#| msgid "" +#| "Valid command plus arguments for the PDF Document thumbnailer. See " +#| "caja thumbnailer documentation for more information." +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "PDF ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖ ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ² ąŖ¬ąŖØąŖ¾ąŖµąŖØąŖ¾ąŖ° ąŖ®ąŖ¾ąŖą« ąŖ®ąŖ¾ąŖØą«ąŖÆ ąŖąŖ¦ą«ąŖ¶ ąŖµąŖ¤ą«ąŖ¤ąŖ¾ ąŖ¦ąŖ²ą«ąŖ²ą«. ąŖµąŖ§ą« ąŖąŖ¾ąŖ£ąŖąŖ¾ąŖ°ą« ąŖ®ąŖ¾ąŖą« ąŖØą«ąŖą«ąŖ²ąŖø ąŖ„ąŖ®ą«ąŖ¬ąŖØą«ąŖąŖ² ąŖ¬ąŖØąŖ¾ąŖµąŖØąŖ¾ąŖ° ąŖ¦ąŖøą«ąŖ¤ąŖ¾ąŖµą«ąŖą«ąŖąŖ°ąŖ£ ąŖą«ąŖ." + diff --git a/po/he.po b/po/he.po new file mode 100644 index 00000000..43776b5c --- /dev/null +++ b/po/he.po @@ -0,0 +1,1719 @@ +# translation of evince.HEAD.he.po to Hebrew +# translation of he.po to Hebrew +# translation of gpdf.HEAD.he.po to Hebrew +# translation of xpdf.HEAD.po to Hebrew +# This file is distributed under the same license as the PACKAGE package. +# Yuval Tanny, 2005. +# Yuval Tanny, 2005. +# Yuval Tanny, 2005. +# Yuval Tanny, 2005. +# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER. +# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2003. +# Yuval Tanny, 2005. +# Yaron Shahrabani <sh.yaron@gmail.com>, 2010. +# Yaron Shahrabani <gezer@lists.launchpad.net>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD.he\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-17 01:22+0300\n" +"PO-Revision-Date: 2010-08-17 01:30+0200\n" +"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" +"Language-Team: Gezer (Hebrew)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.6.1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Error launching the command ā%sā in order to decompress the comic book: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "The command ā%sā failed at decompressing the comic book." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "The command ā%sā did not end normally." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "×”×× ×Ö¾MIME ××× × ×©× ×”×¤×Ø ×§×××קה: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Can't find an appropriate command to decompress this type of comic book" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "×”×× MIME ×× ××××¢" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "File corrupted" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "No files in archive" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "No images found in archive %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "There was an error deleting ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Error %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "הפ×Ø× ×§×××קה" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu document has incorrect format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "×××”×× ×××Ø×× ××הפ×Ø ×§×צ××. ×× × ××Ŗ× ××ש×Ŗ ×××× ×× ×××Ŗ×Ø ×××." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "××”××× DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI document has incorrect format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "××”××× DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "×צ××Ø× ×× ××× ××Øש××Ŗ ×צ××××Ø" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "××" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "××" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "×”×× ×××¤× ×× ××××¢" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "××× ×©×" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "×Ŗ×Ŗ־ק×××¦× ×××××¢×Ŗ" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "×××××¢" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "×× ×××××¢" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "××”××× PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "××”×× ×× ×Ŗק××" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "×צ×××Ŗ Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "××× ×©××××" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "××× ×הפ×ק ××××Ø××" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "××Ŗ×××Ŗ ×Ö¾zip ×× × ×צ××" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ק××ׄ ×Ö¾zip ××× × ×Ŗק××" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ק×××¦× zip ××××ק×× ××× × × ×Ŗ××××" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ××Ŗ ×ק××ׄ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "×× × ××Ŗ× ×ק×Ø×× ××ק××ׄ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "×× × ××¦× ×§××ׄ ×××Ø×××× ×Ö¾zip" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ש×××× ×× ××××¢×" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "×× × ××Ŗ× ×××¢×× ××Ŗ ×××”×× ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "××Ø×¢ ××©× ×ש×××Ø×Ŗ ×××”×× ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "××”××× PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "×× × ××Ŗ× ×ש×××Ø ××Ŗ ×צ×Ø××¤× ā%sā:ā %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ××Ŗ ×צ×Ø××¤× ā%sā:ā %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ××Ŗ ×צ×Ø××¤× ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "×”×× ×ק××ׄ %s ā(%s) ××× × × ×Ŗ××" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "×× ×××”××××" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "×× ×ק×צ××" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "××Ø×¢ ××©× ××צ××Ø×Ŗ ×ק××ׄ ×××× ×: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "××Ø×¢ ××©× ××צ××Ø×Ŗ ××Ŗ×ק××× ×××× ××Ŗ: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "×ק××ׄ ××× × ×§××ׄ ā.desktop ×Ŗק××" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "××Ø×”×Ŗ ק××ׄ ש×××× ×¢×××× '%s' ××× × ×××××" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ××פע×" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "×××ש×× ××× × ×ק×× ××”×××× ×ש××Ø×Ŗ ×פק×××" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "×פש×Ø××Ŗ ש××××Ø ×× ××××Ø×Ŗ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "×× × ××Ŗ× ×××¢×××Ø ××Ŗ×××Ŗ ××”×× ××× ××”×Ŗ ש×××× ×¢×××× 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "×פ×Ø×× ××× × × ××Ŗ× ×ש××××Ø" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Disable connection to session manager" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Specify file containing saved configuration" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Specify session management ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Session management options:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Show session management options" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "×צ××Ŗ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "×_××× ××”×Ø×× ×××××" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "××××Ŗ ×פ×Ø×× ×× ×××Ø ××”×Ø×× ×××××" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "×_×”×Ø× ××”×Ø×× ××××" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "××”×Ø×Ŗ ×פ×Ø×× ×× ×××Ø ××”×Ø×× ×××××" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_×××ק×Ŗ ×”×Ø×× ××××" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "×_×”×Ø×Ŗ ×”×Ø×× ××××× ×× ×××Ø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "×פ×Ø××" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "×××Ŗ××× ××××× ××××Ŗ×Ø" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "××Ŗ××× ××Ø××× ××¢×××" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "×צ×× ××”××××" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "×צ××Ŗ ××”×××× ××Ø××× ×¢×××××" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Override document restrictions" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Override document restrictions, like restriction to copy or to print." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Delete the temporary file" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Print settings file" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "××× ××צ×× ×ק×××× ×©× ××”×××× ×©× MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "××Ø×¢ ××©× ×××פה×Ŗ ×××”××" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "×××פה×Ŗ ×× ×××Ø×Ŗ '%s' ×× × ×צ××" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "××¢××× ×_ק×××" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "××¢××Ø ××¢××× ×ק×××" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "××¢××× ×_××" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "××¢××Ø ××¢××× ×××" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "×××××Ŗ ×××”××" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "×ק×× ×Ŗ ×××”××" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "××פה" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "××פה×Ŗ ××”×× ××" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_×××Ŗ××× ××××× ××××Ŗ×Ø" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "×צ××Ŗ ×××”×× ×× ×××× ×× ×©×××× ××Ŗ ×××××" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "××Ŗ××× ×_×Ø××× ×¢×××" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "×צ××Ŗ ×××”×× ×× ×××× ×× ×©×××× ××Ŗ ×Ø××× ××¢×××" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "×¢×××" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "××××Ø×Ŗ ×¢×××" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "××”××" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ש×:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "××ק××:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ā× ×ש×:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ā××××Ø:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ā×××××Ŗ ×פ×Ŗ×:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "×צ×Ø×:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "××צ×Ø:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "× ×צ×Ø:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ā×ש×Ŗ× ×:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "×הפ×Ø ×¢×××××:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ā××××:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ā×”××:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ā×××××:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ā×××× ××£:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "×××" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f ×××××××Ø××" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ××× ×ש××" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "ā%s, ××××§× (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "ā%s, × ××£ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "ā(%d ××Ŗ×× %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "××Ŗ×× %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "×××¢×× ×..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "×××× ××Ŗ ××××¤×”× ..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "××”×Ŗ×××..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "××פ××” ×¢××× %d ××Ŗ×× %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "×××¤×”× ×× × ×Ŗ×××Ŗ ×××פה×Ŗ ××" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "××××Ø×Ŗ ××¢××××× ×©××××" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Warning" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "××××Ø×Ŗ ×××× ××××¤×”× ×©×× ××× × ×××× ×¢××××× ××ש××" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "×××××Ŗ ××¢×××:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "××××ׄ ×××××Ø ×× ××Ŗ× ×××פה×" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "××Ŗ××× ×××××Ø ×× ××Ŗ× ×××פה×" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"××Ŗ×××Ŗ ×¢×××× ×××”×× ××××× ××¢××× ×××פה×Ŗ. ×ש ×××××Ø ××××××:\n" +"\n" +"ā¢ \"×××\": ×× ××Ŗ×צע××Ŗ ××Ŗ××××Ŗ ××¢×××.\n" +"\n" +"ā¢ \"××××ׄ ×××××Ø ×× ××Ŗ× ×××פה×\": ×¢×××× ×××”×× ×××××× ××××××Ø ×× ××Ŗ× ××××¤×”× " +"××ק×× ×× ××× ×©××Ŗ×××× ×××××Ø ×¢××× × ××Ŗ× ×××פ××” ×××¤× ×××פה×Ŗ.\n" +"\n" +"ā¢ \"××Ŗ××× ×××××Ø ×× ××Ŗ× ×××פה×\": ×¢×××× ×××”×× ××××××× ×× ××ק×× ×× ××× ×××Ŗ××× " +"×××××Ø ×× ××Ŗ× ××××¤×”× ×××£ ×××פה×Ŗ.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "×××× ×××Ø××× ×××××××××" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"×××××Ŗ ××××× ××¢××× ×©× ×× ×¢××× ×× ×¤×Ø× ×× ×©××Ŗ××× ××××× ×©× ×× ×¢××× ×××”××. ×¢×××× " +"×××”×× ××××Ø××× ×××£ ×××פה×Ŗ." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "××××Ø×Ŗ ×××× ××¢××× ×××צע××Ŗ ×××× ×¢××× ×××”××" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "××ש×Ø ×¤×¢××, ×× ×¢××× ×××פה ××××Ŗ× ×××× ×××£ ××× ×¢××× ×××”××." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "××פ×× ××¢×××××" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "××Ø×¢ ××©× ×××פה×Ŗ ×¢××× %d: ā%s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "××××× ×××¢××" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "××××× ××××" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "×××××Ŗ ××Ŗצ××× ×××¢××" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "×××××Ŗ ××Ŗצ××× ××××" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "×Ŗצ×××Ŗ ××”××" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "קפ××¦× ××¢×××:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "×”××£ ××צ××Ŗ. × × ××××ׄ ××צ×××." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "××¢××Ø ××¢××× ××Ø×ש××" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "××¢××Ø ××¢××× ×ק×××" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "××¢××Ø ××¢××× ×××" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "××¢××Ø ××¢××× ××××Ø××" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "××¢××Ø ××¢×××" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "××פ×ש" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "××¢××Ø ××¢××× %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "××¢××Ø ×Ö¾%s ×ק××ׄ ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "××¢××Ø ×ק××ׄ ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "ש××××Ø %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "××פ×ש:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "××פ×ש ×_ק×××" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "××פ×ש ×××פע ×ק××× ×©× ××××Ø×××Ŗ" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "××פ×ש _×××" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "××פ×ש ×××פע ××× ×©× ××××Ø×××Ŗ" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_×Ŗ××× ×Øש×××Ŗ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "××××Ø× ×××פ×ש ×Ŗ××× ×Øש×××Ŗ" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "×”××:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "פ×Ŗק××Ŗ" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "××¢×Ø×" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "×פ×Ŗ×" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "×¢××Ø×" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "×¤×”×§× ××ש×" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "פהק×" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "××הפ×" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "צ××" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "×¢××××" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "×× ××××¢" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "××פ××× × ×פ×Ø×©× ××Ŗ" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "צ××¢:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "×”×× ××:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "שק××£" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "××××" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "××¦× ××××× ×××Ŗ×××Ŗ×:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "פ×Ŗ×××" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "×”×××Ø×" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "×××¤×¢× ××¦× ×צ××Ŗ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "×”×”×× ×¢×××Ø ×××”×× %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ×××××× ×××Ø×" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ā%d ××Ŗ×× %d ××”×××× ××××Ø×" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "× ×Ŗ×× × ××¢× ××××Ø××" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"××× × × ×Ŗ×× × ××¢× ×× Evince ×¢×©× ×©×××ש ש×× × ×××× ×ש ××××× ×××Ŗ×. ×× ×Ŗ×××× ×××××× " +"××××× ×××”×× × ×Ŗ×× × ××¢× ×× ××¢×××." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "פ×Ŗ×××Ŗ ××”×× ×©××× ×ש×××ש ××××Ø×× ×" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "××”×× ×× × ×¢××, ××ש צ××Ø× ××”×”×× ××× ×ק×Ø×× ×××Ŗ×." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_ש××Ø××Ø ×××”××" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "××× ×Ŗ ×”×”××" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "× ××Øש×Ŗ ×”×”××" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "×××”×× ā%sā × ×¢×× ×× ××Øש×Ŗ ×”×”×× ××× ×פ×Ŗ×× ×××Ŗ×." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_×”×”××:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "×_×Ŗ×¢××××Ŗ ×××”×”×× ×××××Ŗ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ש×××Ø×Ŗ ××”×”×× _×¢× ×× ××Ŗ×ק" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_ש×××Ø× ××¢×" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "××פ××× ××" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "××××" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "×××¤× ××" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "×Ø×ש××× ×××”××" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "××פ×" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "× ××”×£ ××××¢ ×¢× ××××¤× ××... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "×Ŗ× ×× ×©×××ש" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "×Ø×ש××× ××קה×" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "××××¢ × ××”×£" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "×Øש×××" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "××¢×Ø××Ŗ" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "×קה×" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "××הפ×Ŗ פ×Ø×©× ××Ŗ ×קה×" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "××הפ×" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "×××”×× ××× × ×××× ××¢×Ø××Ŗ" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "×¢××× %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "צ×Ø×פ××Ŗ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ש××××Ŗ" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "××פה×..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "×פ×Ŗ×" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "×Ŗ××× ××Ŗ ×××××¢×Ø××Ŗ" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "×¢××× %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "×¢××× %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "×××”×× ××× × ×××× ×¢×××××" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "×××”×× ×××× ×¢××××× ×Ø×ק×× ××××" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ××Ŗ ×××”××" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "×××”×× ×Ö¾\"%s\" × ××¢×" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "×××Ø×× ××”×× (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "××Ø×¢ ××©× ×××¢×× ×Ŗ ק××ׄ ××Ø××ק." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "×××”×× ×Ö¾%s × ××¢× ×××ש" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "××Ø×¢ ××©× ×××¢×× ×Ŗ ×××”×× ×××ש." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "פ×Ŗ× ××”××" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "×××”×× × ×©××Ø ×Ö¾%s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "××Ŗצ×Ø××£ × ×©××Ø ×Ö¾%s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "××Ŗ××× × × ×©××Ø×Ŗ ×Ö¾%s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "×× × ××Ŗ× ×ש×××Ø ××Ŗ ×ק××ׄ ××©× ā%sā." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "×××”×× ×××¢×× (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "××Ŗצ×Ø××£ ×××¢×× (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "××Ŗ××× × ×××¢×× (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ש×××Ø×Ŗ ××¢×Ŗק" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "×ש××× ×××Ŗ ×××Ŗ×× × ××Ŗ××Ø" +msgstr[1] "%d ×ש××××Ŗ ×××Ŗ×× ××Ŗ ××Ŗ××Ø" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "××ש××× ā%sā ×××פה×Ŗ" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "×××”×× ×××× ×©×××Ŗ ××פה ש×ש ××××. ×× ×× ××ש××Ø ×¢××Ŗק, ×ש×× ×××× ××××× ××¢×." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"×××”×× ×××× ××¢×Ø××Ŗ ××ש××Ŗ ×× ×¢×Ø××××Ŗ. ×× ×× ××ש××Ø ×¢××Ŗק, ×ש×× ×××× ××××× ××¢×." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "××× ×ש×××Ø ×¢××Ŗק ×©× ×××”×× ā%sā ××¤× × ××”×××Ø×?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "_×”×××Ø× ××× ×©×××Ø×" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "ש×××Ø×Ŗ _×¢××Ŗק" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "××× ××××Ŗ×× ××”××× ××ש××× ā%sā ××¤× × ××”×××Ø×?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "×ש %d ×ש××××Ŗ ×××¤×”× ×¤×¢××××Ŗ. ××× ××××Ŗ×× ××”××× ×××פה××Ŗ ××¤× × ××”×××Ø×?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "×× ××××× ×××”××Ø, ×ש××××Ŗ ×××¤×”× ××××Ŗ×× ××Ŗ ×× ×××פה×." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "××××× ××_××¤×”× ××”×××Ø×" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "_×”×××Ø× ××××Ø ×××פה×" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "×¢××Ø× ×”×Ø×× ×××××" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "××Ø×¢× ×©×××× ××צ××Ŗ ××¢××Ø×" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"×צ×× ××”××××.\n" +"××¢××Ø×Ŗ %s (ā%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"×Ö¾Evince ××××Ø ××× ×××××Ŗ ×צ××Ø×£ ×¢××Ŗק ×©× ××Ø×ש××× ×צ××××Ø× ××××× ×©× GNU; ×× ××, " +"×ש ×××Ŗ×× ×× Free Software Foundation, Inc., 59 Temple Place, Suite 330, " +"Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "āEvince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 ××צ×Ø× Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"×××× ×× ××\n" +"YoĀ“av Moshe <black_jesus@myrealbox.com>\n" +"Yaron Shahrabani <sh.yaron@gmail.com>\n" +"פ×Ø×××§× ×Ŗ×Ø××× MATE ××¢××Ø××Ŗ:\n" +"āhttp://mate-il.berlios.de" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ā××× × ××¦× ××¢××× ××" +msgstr[1] "ā%d × ×צ×× ××¢××× ××" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "××× ××Ŗ×××" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ā%3d%% × ×©××Ø× ×××פ×ש" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_ק××ׄ" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "×¢_×Ø×××" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_×Ŗצ×××" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_××¢××Ø" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "×¢_××Ø×" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_פ×Ŗ×××..." + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "פ×Ŗ×××Ŗ ××”×× ×§×××" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "_פ×Ŗ×××Ŗ ××¢×Ŗק" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "פ×Ŗ×××Ŗ ××¢×Ŗק ×©× ×××”×× ×× ×××× ××××× ××ש" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "ש×××Ø×Ŗ _×¢××Ŗק..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "ש×××Ø ×¢××Ŗק ×©× ×××”×× ×× ××××" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "×_×פה×..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "_××פ××× ××" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "_××××Ø×Ŗ ××××" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_××פ×ש..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "××פ×ש ×××× ×× ××©×¤× ×××”××" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_×”×Ø×× ××××" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "×”×××× _ש××××" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "×”×××× _×××× ×" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "ש×××Ø×Ŗ ×××××Ø××Ŗ ×_× ××××××Ŗ ×××Ø××Ø×Ŗ ××××" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_××¢×× × ×××ש" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "××¢×× × ×××ש ×©× ×××”××" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "_××××× ××××××××Ŗ" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "×¢××× _×Ø×ש××" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "××¢××Ø ××¢××× ××Ø×ש××" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "×¢××× _×××Ø××" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "××¢××Ø ××¢××× ××××Ø××" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_×Ŗ××× ×¢× ××× ××" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "×¢× _×××××Ŗ" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "×צ××× ×××”× ×××" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "×צ××× ×××¦× ××”× ×××" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "×_×Ŗ×××Ŗ ××צ××Ŗ" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "××Ŗ×××Ŗ ××צ××Ŗ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "×”×Ø×× _××××" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "×צ×× ×× ××”×Ŗ×Ø× ×©× ×”×Ø×× ×××××" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "×”×Ø×× _צ×" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "×צ×× ×× ××”×Ŗ×Ø× ×©× ×”×Ø×× ×צ×" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_×Øצ××£" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "×צ××Ŗ ×× ×××”××" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_××××" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "×צ××Ŗ ×©× × ×¢××××× ××××" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_××”× ×××" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "××Ø×××Ŗ ××××× ××× ×××”×" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_×צ××Ŗ" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "××Øצ×Ŗ ×××”×× ××צ××Ŗ" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "צ××¢×× _×פ××××" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "×צ××Ŗ ×Ŗ××× ××¢××× ×¢× ×צ××¢×× ×פ××××" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "פ×Ŗ×××Ŗ _ק×ש××Ø" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_××¢××Ø" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "פ×Ŗ××× ×_×××× ××ש" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "××¢×Ŗק×Ŗ _××ק×× ×ק×ש××Ø" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "ש×××Ø×Ŗ _×Ŗ××× × ×ש×..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "××¢×Ŗק×Ŗ ×Ŗ_××× ×" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "××פ××× × ×פ×Ø×©× ××Ŗ..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_פ×Ŗ×××Ŗ ×Ŗצ×Ø××£" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_ש×××Ø×Ŗ ×ק××ׄ ××צ××Ø×£ ×ש×..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "×Ŗק×Ø××" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "ש×× ×× ×Ø××Ŗ ××Ŗק×Ø××" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "× ××××" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "×××Ø×" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "××¢××Ø ××× ××¢××××× ××× ××ק×Ø×Ŗ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "×ק×××" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "×××" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "××Ŗק×Ø×××Ŗ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "××Ŗ×Ø×ק××Ŗ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "××Ŗ××× ××Ø×××" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "×× × ××Ŗ× ×ש××Ø ××ש×× ××צ×× ×" + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ×§×ש××Ø ××צ×× ×" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "×× × ×צ×× ××Ŗצ××Ø× ×××Ŗ×××× ×ש×××Ø×Ŗ ××Ŗ××× ×" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "×× × ××Ŗ× ×ש×××Ø ××Ŗ ××Ŗ××× ×." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "ש×××Ø ×Ŗ××× ×" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "×× × ××Ŗ× ×פ×Ŗ×× ××Ŗ ×צ×Ø×פ×" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "×× × ××Ŗ× ×ש×××Ø ××Ŗ ×צ×Ø×פ×." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "ש×××Ø×Ŗ צ×Ø×פ×" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā × ××Øש×Ŗ ×”×”××" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "××¤× ×”××××Ŗ" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE Document Viewer" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "The page label of the document to display." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "The page number of the document to display." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Run evince in fullscreen mode" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Run evince in presentation mode" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Run evince as a previewer" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "The word or phrase to find in the document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Enable thumbnailing of PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Thumbnail command for PDF Documents" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "×××”×× ×Ö¾DJVU ×Ŗצ××Ø× ×©××××" + +#~ msgid "Print..." +#~ msgstr "××פה..." + +#~ msgid "_Save a Copy..." +#~ msgstr "ש_×××Ø ××¢×Ŗק..." diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 00000000..c858c5c1 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,1459 @@ +# translation of evince.HEAD.hi.po to Hindi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Rajesh Ranjan <rranjan@redhat.com>, 2005, 2006, 2009. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD.hi\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-02-15 13:53+0000\n" +"PO-Revision-Date: 2009-03-13 23:13+0530\n" +"Last-Translator: Rajesh Ranjan <rranjan@redhat.com>\n" +"Language-Team: Hindi <hindi.sf.net>\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\n" +"\n" +"\n" +"\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:131 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:281 +msgid "Unknown MIME Type" +msgstr "ą¤ ą¤Øą¤ą¤¾ą¤Ø MIME ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/comics/comics-document.c:165 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¤ą„ą¤®ą¤æą¤ ą¤¬ą„ą¤ MIME ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą¤Øą¤¹ą„ą¤: %s" + +#: ../backend/comics/comics-document.c:186 +msgid "File corrupted." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą¤°ą¤¾ą¤¬." + +#: ../backend/comics/comics-document.c:198 +msgid "No files in archive." +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤ ą¤®ą„ą¤ ą¤ą„ą¤ ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤Øą¤¹ą„ą¤." + +#: ../backend/comics/comics-document.c:230 +#, c-format +msgid "No images found in archive %s" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤ %s ą¤®ą„ą¤ ą¤ą„ą¤ ą¤ą¤æą¤¤ą„ą¤° ą¤Øą¤¹ą„ą¤ ą¤®ą¤æą¤²ą¤¾" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¤ą„ą¤®ą¤æą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤" + +#: ../backend/djvu/djvu-document.c:174 +#| msgid "DVI document has incorrect format" +msgid "DJVU document has incorrect format" +msgstr "DJVU ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼ ą¤®ą„ą¤ ą¤ą¤²ą¤¤ ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ ą¤¹ą„" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "ą¤Æą¤¹ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą¤ ą¤«ą¤¼ą¤¾ą¤ą¤²ą„ą¤ ą¤øą„ ą¤®ą¤æą¤²ą¤ą¤° ą¤¬ą¤Øą¤¾ ą¤¹ą„. ą¤ą¤ ą¤Æą¤¾ ą¤ ą¤§ą¤æą¤ ą¤µą„ą¤øą„ ą¤«ą¤¾ą¤ą¤²ą„ą¤ ą¤Ŗą¤¹ą„ą¤ą¤ ą¤Øą¤¹ą„ą¤ ą¤²ą„ ą¤ą¤¾ ą¤øą¤ą¤¤ą„ ą¤¹ą„ą¤." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#: ../backend/dvi/dvi-document.c:106 +msgid "DVI document has incorrect format" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤®ą„ą¤ ą¤ą¤²ą¤¤ ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ " + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:700 +msgid "Yes" +msgstr "ą¤¹ą¤¾ą¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:703 +msgid "No" +msgstr "ą¤Øą¤¹ą„ą¤" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "Type 1" +msgstr "ą¤µą¤°ą„ą¤ 1" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Type 1C" +msgstr "ą¤µą¤°ą„ą¤ 1C" + +#: ../backend/pdf/ev-poppler.cc:781 +msgid "Type 3" +msgstr "ą¤µą¤°ą„ą¤ 3" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:785 +msgid "Type 1 (CID)" +msgstr "ą¤µą¤°ą„ą¤ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:787 +msgid "Type 1C (CID)" +msgstr "ą¤µą¤°ą„ą¤ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:789 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "Unknown font type" +msgstr "ą¤ ą¤Øą¤ą¤¾ą¤Ø ą¤«ą¤ą¤ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "No name" +msgstr "ą¤ą„ą¤ ą¤Øą¤¾ą¤® ą¤Øą¤¹ą„ą¤" + +#: ../backend/pdf/ev-poppler.cc:825 +msgid "Embedded subset" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤ą¤Ŗą¤øą¤®ą„ą¤ą„ą¤ą¤Æ" + +#: ../backend/pdf/ev-poppler.cc:827 +msgid "Embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤”" + +#: ../backend/pdf/ev-poppler.cc:829 +msgid "Not embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤Øą¤¹ą„ą¤" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤«ą¤¼ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#: ../backend/impress/impress-document.c:303 +#| msgid "Print this document" +msgid "Invalid document" +msgstr "ą¤ ą¤µą„ą¤§ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤ø ą¤øą„ą¤²ą¤¾ą¤ą¤”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¤ą„ą¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ ą¤Øą¤¹ą„ą¤" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Ŗą„ą¤¤ ą¤øą„ą¤®ą„ą¤¤ą¤æ ą¤Øą¤¹ą„ą¤ ą¤¹ą„" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ą¤ą¤æą¤Ŗ ą¤¹ą¤øą„ą¤¤ą¤¾ą¤ą„ą¤·ą¤° ą¤Øą¤¹ą„ą¤ ą¤Ŗą¤¾ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ą¤ ą¤µą„ą¤§ ą¤ą¤æą¤Ŗ ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/impress/zip.c:65 +#| msgid "Generating PDF is not supported" +msgid "Multi file zips are not supported" +msgstr "ą¤®ą¤²ą„ą¤ą„ ą¤«ą¤¾ą¤ą¤² ą¤ą¤æą¤Ŗ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤¹ą„" + +#: ../backend/impress/zip.c:68 +#| msgid "Cannot open file ā%sā.\n" +msgid "Cannot open the file" +msgstr "ą„ą¤¾ą¤ą¤² ą¤ą„ą¤² ą¤Øą¤¹ą„ą¤ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤øą„ ą¤”ą¤¾ą¤ą¤¾ ą¤Øą¤¹ą„ą¤ ą¤Ŗą¤¢ą¤¼ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ą¤ą¤æą¤Ŗ ą¤ ą¤ą¤æą¤²ą„ą¤ ą¤®ą„ą¤ ą¤«ą¤¾ą¤ą¤² ą¤Øą¤¹ą„ą¤ ą¤Ŗą¤¾ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„" + +#: ../backend/impress/zip.c:77 +#| msgid "Unknown MIME Type" +msgid "Unknown error" +msgstr "ą¤ ą¤ą„ą¤ą¤¾ą¤¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤²ą„ą¤” ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ ą¤µą¤æą¤«ą¤²" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤øą¤¹ą„ą¤ą¤Øą„ ą¤®ą„ą¤ ą¤µą¤æą¤«ą¤²" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą„ą¤ ą¤øą¤¹ą„ą¤ ą¤øą¤ą¤¾: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą„ą¤ ą¤ą„ą¤² ą¤øą¤ą¤¾: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą„ą¤ ą¤ą„ą¤² ą¤øą¤ą¤¾" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +#| msgid "Generating PDF is not supported" +msgid "File type %s (%s) is not supported" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° %s (%s) ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤¹ą„" + +#: ../libdocument/ev-document-factory.c:353 +msgid "All Documents" +msgstr "ą¤øą¤ą„ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#: ../libdocument/ev-document-factory.c:385 +msgid "All Files" +msgstr "ą¤øą¤ą„ ą¤«ą¤¼ą¤¾ą¤ą¤²ą„ą¤" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "ą¤ą¤Øą„ą¤ą„ą¤ ą¤ą¤°ą„ą¤ (_n)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "ą¤¬ą„ą¤Øą¤¾ą¤® ą¤ą¤Øą„ą¤ą„ą¤ ą¤ą¤°ą„ą¤ (_a)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "ą¤¬ą¤¤ą„ą¤° ą¤ą¤Ŗą¤Æą„ą¤ą„ą¤¤ą¤¾ ą¤ą¤Øą„ą¤ą„ą¤ ą¤ą¤°ą„ą¤ (_s):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "ą¤Ŗą„ą¤°ą¤Æą„ą¤ą„ą¤¤ą¤¾ ą¤Øą¤¾ą¤® (_U):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "ą¤”ą„ą¤®ą„ą¤Ø (_D):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”: (_P)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¤ą¤¤ą„ą¤ą¤¾ą¤² ą¤ą„ą¤² ą¤ą¤ (_F)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +#| msgid "Remember password for this session" +msgid "_Remember password until you logout" +msgstr "ą¤²ą„ą¤ą¤ą¤ą¤ ą¤¹ą„ą¤Øą„ ą¤¤ą¤ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ą¤¦ ą¤°ą¤ą„ą¤ (_R)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "ą¤øą¤¦ą¤¾ ą¤ą„ ą¤²ą¤æą¤ ą¤Æą¤¾ą¤¦ ą¤°ą¤ą„ą¤ (_R)" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤µą„ą¤§ .desktop ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤Øą¤¹ą„ą¤ ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą¤æą¤¤ ą¤”ą„ą¤øą„ą¤ą¤ą„ą¤Ŗ ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¤¶ą„ą¤°ą„ ą¤¹ą„ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¤ą¤®ą¤¾ą¤ą¤” ą¤²ą¤¾ą¤ą¤Ø ą¤Ŗą¤° ą¤ ą¤Øą„ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼ ą¤øą„ą¤µą„ą¤ą¤¾ą¤° ą¤Øą¤¹ą„ą¤ ą¤ą¤°ą¤¤ą¤¾ ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą¤æą¤¤ ą¤²ą„ą¤Øą„ą¤ ą¤µą¤æą¤ą¤²ą„ą¤Ŗ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼ URI ą¤ą„ 'Type=Link' ą¤”ą„ą¤øą„ą¤ą¤ą„ą¤Ŗ ą¤Ŗą„ą¤°ą¤µą¤æą¤·ą„ą¤ą¤æ ą¤®ą„ą¤ ą¤ą„ą¤ ą¤Øą¤¹ą„ą¤ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¤ą¤²ą¤¾ą¤Øą„ ą¤Æą„ą¤ą„ą¤Æ ą¤Ŗą„ą¤°ą„ą¤ą„ą¤°ą¤¾ą¤® ą¤Øą¤¹ą„ą¤ ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggsmclient.c:224 +msgid "Disable connection to session manager" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤ ą¤®ą„ą¤ ą¤øą¤ą¤¬ą¤ą¤§ą¤Ø ą¤Øą¤æą¤·ą„ą¤ą„ą¤°ą¤æą¤Æ ą¤ą¤°ą„ą¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Specify file containing saved configuration" +msgstr "ą¤øą¤¹ą„ą¤ą¤¾ ą¤µą¤æą¤Øą„ą¤Æą¤¾ą¤ø ą¤øą¤®ą¤¾ą¤¹ą¤æą¤¤ ą¤ą¤°ą¤¤ą¤¾ ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤Øą¤æą¤°ą„ą¤¦ą¤æą¤·ą„ą¤ ą¤ą¤°ą„ą¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +#| msgid "[FILE...]" +msgid "FILE" +msgstr "ą¤«ą¤¼ą¤¾ą¤ą¤²" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "Specify session management ID" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤Ø ID ą¤Øą¤æą¤°ą„ą¤¦ą¤æą¤·ą„ą¤ ą¤ą¤°ą„ą¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "ID" +msgstr "ą¤ą¤ą¤”ą„" + +#: ../cut-n-paste/smclient/eggsmclient.c:244 +msgid "Session management options:" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:245 +msgid "Show session management options" +msgstr "ą¤¦ą¤æą¤ą¤¾ą¤ą¤ ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:918 +#, c-format +msgid "Show ā_%sā" +msgstr "ą¤¦ą¤æą¤ą¤¾ą¤Æą„ą¤ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1381 +msgid "_Move on Toolbar" +msgstr "ą¤ą¤ą¤¾ą¤°-ą¤Ŗą¤ą„ą¤ą„ ą¤Ŗą¤° ą¤²ą„ ą¤ą¤¾ą¤Æą„ą¤ (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1382 +msgid "Move the selected item on the toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤®ą¤¦ ą¤ą„ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤®ą„ą¤ ą¤ą¤æą¤øą¤ą¤¾ą¤ą¤" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1383 +msgid "_Remove from Toolbar" +msgstr "ą¤ą¤ą¤¾ą¤°-ą¤Ŗą¤ą„ą¤ą„ ą¤øą„ ą¤®ą¤æą¤ą¤¾ą¤ą¤ (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1384 +msgid "Remove the selected item from the toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤®ą¤¦ ą¤ą„ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤øą„ ą¤¹ą¤ą¤¾ą¤ą¤" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1385 +msgid "_Delete Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ ą¤®ą¤æą¤ą¤¾ą¤ą¤ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1386 +msgid "Remove the selected toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ ą¤¹ą¤ą¤¾ą¤Æą„ą¤" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¤ ą¤²ą¤ą¤¾ą¤Øą„ą¤µą¤¾ą¤²ą¤¾" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +#| msgid "Run evince in presentation mode" +msgid "Running in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤®ą„ą¤” ą¤®ą„ą¤ ą¤ą¤²ą¤¾ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5294 +msgid "Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ą¤”ą¤¼ą¤¾ą¤" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +#| msgid "50%" +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +#| msgid "50%" +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4272 +#: ../shell/ev-window-title.c:149 +#, c-format +msgid "Document Viewer" +msgstr "ą¤²ą„ą¤ą¤Ŗą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą¤¦ą„ą¤ą„ą¤ ą¤¬ą¤¹ą„ą¤Ŗą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤Ŗą¤° ą¤²ą¤æą¤ą„ą¤" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤ ą¤§ą„ą¤Æą¤¾ą¤°ą„ą¤¹ą¤æą¤¤ ą¤ą¤°ą„ą¤, ą¤ą„ą¤Ŗą„ ą¤ą¤°ą¤Øą„ ą¤Æą¤¾ ą¤ą¤¾ą¤Ŗą¤Øą„ ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤ą„ ą¤¤ą¤°ą¤¹." + +#: ../properties/ev-properties-main.c:113 +msgid "Document" +msgstr "ą¤²ą„ą¤ą¤Ŗą¤¤ą„ą¤°" + +#: ../properties/ev-properties-view.c:59 +#| msgid "<b>Title:</b>" +msgid "Title:" +msgstr "ą¤¶ą„ą¤°ą„ą¤·ą¤:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "ą¤øą„ą¤„ą¤¾ą¤Øą¤" + +#: ../properties/ev-properties-view.c:61 +#| msgid "<b>Subject:</b>" +msgid "Subject:" +msgstr "ą¤µą¤æą¤·ą¤Æ:" + +#: ../properties/ev-properties-view.c:62 +#| msgid "<b>Author:</b>" +msgid "Author:" +msgstr "ą¤²ą„ą¤ą¤ą¤" + +#: ../properties/ev-properties-view.c:63 +#| msgid "<b>Keywords:</b>" +msgid "Keywords:" +msgstr "ą¤¬ą„ą¤ą¤¶ą¤¬ą„ą¤¦:" + +#: ../properties/ev-properties-view.c:64 +#| msgid "<b>Producer:</b>" +msgid "Producer:" +msgstr "ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤¤ą¤¾:" + +#: ../properties/ev-properties-view.c:65 +#| msgid "<b>Creator:</b>" +msgid "Creator:" +msgstr "ą¤øą„ą¤ą¤:" + +#: ../properties/ev-properties-view.c:66 +#| msgid "<b>Created:</b>" +msgid "Created:" +msgstr "ą¤øą„ą¤ą¤æą¤¤ą¤" + +#: ../properties/ev-properties-view.c:67 +#| msgid "<b>Modified:</b>" +msgid "Modified:" +msgstr "ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤§ą¤æą¤¤ą¤" + +#: ../properties/ev-properties-view.c:68 +#| msgid "<b>Number of Pages:</b>" +msgid "Number of Pages:" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ ą¤øą¤ą¤ą„ą¤Æą¤¾:" + +#: ../properties/ev-properties-view.c:69 +#| msgid "<b>Optimized:</b>" +msgid "Optimized:" +msgstr "ą¤ ą¤Øą„ą¤ą„ą¤²ą¤æą¤¤:" + +#: ../properties/ev-properties-view.c:70 +#| msgid "<b>Format:</b>" +msgid "Format:" +msgstr "ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ:" + +#: ../properties/ev-properties-view.c:71 +#| msgid "<b>Security:</b>" +msgid "Security:" +msgstr "ą¤øą„ą¤°ą¤ą„ą¤·ą¤¾:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "ą¤ą¤¾ą¤ą¤ ą¤ą¤ą¤¾ą¤°:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "ą¤ą„ą¤ ą¤Øą¤¹ą„ą¤" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f ą¤ą¤ą¤" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¤Ŗą„ą¤ą„ą¤°ą„ą¤ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¤²ą„ą¤ą¤”ą¤øą„ą¤ą„ą¤Ŗ (%s)" + +#: ../libview/ev-jobs.c:949 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ā%sā ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤¬ą¤Øą¤¾ą¤Øą„ ą¤®ą„ą¤ ą¤ ą¤øą¤®ą¤°ą„ą¤„: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ ą¤Ŗ" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤”ą¤¾ą¤ą¤Ø" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¦ą„ą¤¶ą„ą¤Æ ą¤ą¤Ŗą¤°" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¦ą„ą¤¶ą„ą¤Æ ą¤Øą„ą¤ą„ą¤" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../libview/ev-view.c:1417 +msgid "Go to first page" +msgstr "ą¤Ŗą„ą¤°ą¤„ą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:1419 +msgid "Go to previous page" +msgstr "ą¤Ŗą¤æą¤ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:1421 +msgid "Go to next page" +msgstr "ą¤ ą¤ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą„ą¤ ą¤ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:1423 +msgid "Go to last page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:1425 +msgid "Go to page" +msgstr "ą¤Ŗą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤Æą„ą¤" + +#: ../libview/ev-view.c:1427 +msgid "Find" +msgstr "ą¤¢ą„ą¤ą¤¢ą„ą¤" + +#: ../libview/ev-view.c:1455 +#, c-format +msgid "Go to page %s" +msgstr "ą¤Ŗą„ą¤ %s ą¤Ŗą¤° ą¤ą¤¾ą¤Æą„ą¤" + +#: ../libview/ev-view.c:1461 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ą¤®ą„ą¤ ā%sā ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:1464 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤° ą¤ą¤¾ą¤Æą„ą¤" + +#: ../libview/ev-view.c:1472 +#, c-format +msgid "Launch %s" +msgstr "%s ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą„ą¤" + +#: ../libview/ev-view.c:2387 +msgid "End of presentation. Press Escape to exit." +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤ą¤¾ ą¤ ą¤ą¤¤. ą¤¬ą¤¾ą¤¹ą¤° ą¤Øą¤æą¤ą¤²ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤ Escape ą¤¦ą¤¬ą¤¾ą¤ą¤" + +#: ../libview/ev-view.c:3278 +#| msgid "Go to page" +msgid "Jump to page:" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤:" + +#: ../libview/ev-view.c:3541 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "ą¤²ą„ą¤” ą¤ą¤æą¤Æą¤¾ ą¤ą¤¾ ą¤°ą¤¹ą¤¾ ą¤¹ą„..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "ą¤¢ą„ą¤ą¤¢ą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "ą¤Ŗą¤¾ą¤Æą„ ą¤ą¤¾ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤ą¤¾ ą¤Øą¤¾ą¤®" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą¤æą¤ą¤æą¤µ" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "TRUE ą¤ą¤ ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą„ą¤ą¤æą¤µ ą¤¢ą„ą¤ą¤¢ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "ą¤ą¤ą¤¾ą¤°ą„ą¤ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "ą¤øą¤ą„ ą¤®ą„ą¤ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤¾ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "ą¤®ą„ą¤ą¤¼ą„ą¤¦ą¤¾ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤®ą„ą¤ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤¾ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¤¢ą„ą¤ą¤¢ą„ą¤:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5028 +msgid "Find Pre_vious" +msgstr "ą¤Ŗą¤æą¤ą¤²ą¤¾ ą¤¢ą„ą¤ą¤¢ą„ą¤ (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¤ą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤ą„ ą¤Ŗą¤æą¤ą¤²ą„ ą¤ą¤Ŗą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤¢ą„ą¤ą¤¢ą„ą¤" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5026 +msgid "Find Ne_xt" +msgstr "ą¤ ą¤ą¤²ą¤¾ ą¤¢ą„ą¤ą¤¢ą„ą¤ (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¤ą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤ą„ ą¤ ą¤ą¤²ą„ ą¤ą¤Ŗą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤¢ą„ą¤ą¤¢ą„ą¤" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² ą¤ą„ą¤ ą¤ą„ą¤ą¤² ą¤ą¤°ą„ą¤" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦" + +#: ../shell/ev-open-recent-action.c:72 +#| msgid "Open an existing document" +msgid "Open a recently used document" +msgstr "ą¤¹ą¤¾ą¤² ą¤®ą„ą¤ ą¤Ŗą„ą¤°ą¤Æą„ą¤ą„ą¤¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą„ą¤" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą¤ą¤¾ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "%d ą¤ą¤¾" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¤ą¤¾ą¤²ą¤¾ą¤ą¤æą¤¤ ą¤¹ą„ ą¤ą¤° ą¤øą¤¹ą„ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą¤¾ą¤ą¤æą¤² ą¤ą¤° ą¤¹ą„ ą¤Ŗą¤¢ą¤¾ ą¤ą¤¾ ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą„ą¤ (_U)" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą¤¾ą¤ą¤æą¤² ą¤ą¤°ą„ą¤" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤°ą„ą¤°ą„" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ā%sā ą¤¤ą¤¾ą¤²ą¤¾ą¤ą¤æą¤¤ ą¤¹ą„ ą¤ą¤° ą¤ą„ą¤²ą„ ą¤ą¤¾ą¤Øą„ ą¤ą„ ą¤Ŗą¤¹ą¤²ą„ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤¾ą¤¹ą¤¤ą¤¾ ą¤¹ą„." + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¤ą¤¤ą„ą¤ą¤¾ą¤² ą¤ą„ą¤² ą¤ą¤ (_i)" + +#: ../shell/ev-password-view.c:377 +#| msgid "Remember password for this session" +msgid "Remember password until you _logout" +msgstr "ą¤²ą„ą¤ą¤ą¤ą¤ ą¤¹ą„ą¤Øą„ ą¤¤ą¤ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ą¤¦ ą¤°ą¤ą„ą¤ (_l)" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "ą¤øą¤¦ą¤¾ ą¤ą„ ą¤²ą¤æą¤ ą¤Æą¤¾ą¤¦ ą¤°ą¤ą„ą¤ (_f)" + +#. Initial state +#: ../shell/ev-print-operation.c:318 +msgid "Preparing to print ..." +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤ą„ ą¤²ą¤æą¤ ą¤¤ą„ą¤Æą¤¾ą¤° ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„ ..." + +#: ../shell/ev-print-operation.c:320 +#| msgid "_Find..." +msgid "Finishing..." +msgstr "ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„..." + +#: ../shell/ev-print-operation.c:322 +#, c-format +msgid "Printing page %d of %d..." +msgstr "%d ą¤ą„ ą¤ą¤¾ą¤Ŗ ą¤°ą¤¹ą¤¾ ą¤¹ą„ %d ą¤Ŗą„ą¤ ą¤øą„..." + +#: ../shell/ev-print-operation.c:1010 +msgid "Printing is not supported on this printer." +msgstr "ą¤ą¤ø ą¤®ą„ą¤¦ą„ą¤°ą¤ ą¤Ŗą¤° ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤¹ą„." + +#: ../shell/ev-print-operation.c:1136 ../shell/ev-window.c:5079 +msgid "Print" +msgstr "ą¤ą¤Ŗą¤¾ą¤" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "ą¤ą„ą¤£" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "ą¤øą¤¾ą¤®ą¤¾ą¤Øą„ą¤Æ" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤ą„ą¤ø" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą¤«ą¤ą¤ ą¤øą„ą¤ą¤Øą¤¾ ą¤Ŗą¤¾ ą¤°ą¤¹ą¤¾ ą¤¹ą„... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "ą¤Ŗą¤°ą¤¤ą„ą¤" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "ą¤ą¤¾ą¤Ŗą„ą¤..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "ą¤Øą¤æą¤°ą„ą¤¦ą„ą¤¶ą¤æą¤ą¤¾" + +#: ../shell/ev-sidebar-thumbnails.c:751 +msgid "Thumbnails" +msgstr "ą¤²ą¤ą„ ą¤ą¤µą¤æ" + +#: ../shell/ev-window.c:843 +#, c-format +msgid "Page %s - %s" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ %s - %s" + +#: ../shell/ev-window.c:845 +#, c-format +#| msgid "Pages" +msgid "Page %s" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ %s" + +#: ../shell/ev-window.c:1255 +msgid "The document contains no pages" +msgstr "ą¤Æą¤¹ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤ ą¤Ŗą„ą¤·ą„ą¤ ą¤øą¤®ą¤¾ą¤¹ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤°ą¤¤ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:1480 ../shell/ev-window.c:1637 +msgid "Unable to open document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą¤Øą„ ą¤®ą„ą¤ ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:1611 +#, c-format +msgid "Loading document from %s" +msgstr "%s ą¤øą„ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:1749 ../shell/ev-window.c:1942 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ (%d%%) ą¤”ą¤¾ą¤ą¤Øą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:1888 +#, c-format +#| msgid "Reload the document" +msgid "Reloading document from %s" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ %s ą¤øą„ ą¤«ą¤æą¤° ą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:1921 +msgid "Failed to reload document." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤«ą¤æą¤° ą¤²ą„ą¤” ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ ą¤µą¤æą¤«ą¤²." + +#: ../shell/ev-window.c:2070 +msgid "Open Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą„ą¤" + +#: ../shell/ev-window.c:2131 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ā%sā ą¤øą¤¾ą¤ą¤ą„ą¤¤ą¤æą¤ ą¤²ą¤æą¤ą¤ ą¤Øą¤¹ą„ą¤ ą¤Ŗą¤¾ ą¤øą¤ą¤¾: %s" + +#: ../shell/ev-window.c:2160 +#| msgid "Cannot open file ā%sā.\n" +msgid "Cannot open a copy." +msgstr "ą¤ą¤ ą¤Øą¤ą¤¼ą¤² ą¤Øą¤¹ą„ą¤ ą¤ą„ą¤² ą¤øą¤ą¤¤ą¤¾ ą¤¹ą„." + +#: ../shell/ev-window.c:2400 +#, c-format +#| msgid "Shrink the document" +msgid "Saving document to %s" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ %s ą¤®ą„ą¤ ą¤øą¤¹ą„ą¤ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2403 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ą¤®ą„ą¤ ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ą¤øą¤¹ą„ą¤ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2406 +#, c-format +msgid "Saving image to %s" +msgstr "%s ą¤®ą„ą¤ ą¤ą¤µą¤æ ą¤øą¤¹ą„ą¤ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2451 ../shell/ev-window.c:2548 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¤Æą¤¹ ą¤«ą¤¼ą¤¾ą¤ą¤² ą¤¬ą¤¤ą„ą¤° ā%sā ą¤øą¤¹ą„ą¤ą¤¾ ą¤Øą¤¹ą„ą¤ ą¤ą¤¾ ą¤øą¤ą¤¾." + +#: ../shell/ev-window.c:2479 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ (%d%%) ą¤ ą¤Ŗą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2483 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ (%d%%) ą¤ ą¤Ŗą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2487 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¤ą¤µą¤æ (%d%%) ą¤ ą¤Ŗą¤²ą„ą¤” ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:2594 +msgid "Save a Copy" +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤øą¤¹ą„ą¤ą„ą¤" + +#: ../shell/ev-window.c:2797 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ą¤øą„ą¤„ą¤ą¤æą¤¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤ą¤¤ą¤¾ą¤° ą¤®ą„ą¤" +msgstr[1] "%d ą¤øą„ą¤„ą¤ą¤æą¤¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤ą¤¤ą¤¾ą¤° ą¤®ą„ą¤" + +#: ../shell/ev-window.c:2853 ../shell/ev-window.c:3963 +msgid "Failed to print document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą¤¾ą¤Ŗą¤Øą„ ą¤®ą„ą¤ ą¤µą¤æą¤«ą¤²" + +#: ../shell/ev-window.c:2910 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā ą¤ą¤¾ą¤°ą„ą¤Æ ą¤ą¤¾ą¤Ŗ ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:3107 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą„ą¤ą„ą¤·ą¤¾ ą¤ą¤°ą„ą¤ ą¤ą¤¬ ą¤¤ą¤ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ā%sā ą¤¬ą¤ą¤¦ ą¤¹ą„ą¤Øą„ ą¤ą„ ą¤Ŗą¤¹ą¤²ą„ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤¹ą„ą¤¤ą¤¾ ą¤¹ą„?" + +#: ../shell/ev-window.c:3110 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ą¤ą„ą¤² %d ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤øą¤ą„ą¤°ą¤æą¤Æ ą¤¹ą„ą¤. ą¤¤ą¤¬ ą¤¤ą¤ ą¤Ŗą„ą¤°ą¤¤ą„ą¤ą„ą¤·ą¤¾ ą¤ą¤°ą„ą¤ ą¤ą¤¬ ą¤¤ą¤ ą¤¬ą¤ą¤¦ ą¤Øą¤¹ą„ą¤ ą¤¹ą„ ą¤ą¤¾ą¤?" + +#: ../shell/ev-window.c:3122 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¤Æą¤¦ą¤æ ą¤ą¤Ŗ ą¤µą¤æą¤ą¤”ą„ ą¤¬ą¤ą¤¦ ą¤ą¤°ą¤¤ą„ ą¤¹ą„ą¤, ą¤øą„ą¤„ą¤ą¤æą¤¤ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤Øą¤¹ą„ą¤ ą¤ą¤¾ą¤Ŗą¤¾ ą¤ą¤¾ą¤ą¤ą¤¾." + +#: ../shell/ev-window.c:3126 +msgid "Cancel _print and Close" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤°ą¤¦ą„ą¤¦ ą¤ą¤°ą„ą¤ ą¤ą¤° ą¤¬ą¤ą¤¦ ą¤ą¤°ą„ą¤ (_p)" + +#: ../shell/ev-window.c:3130 +msgid "Close _after Printing" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤ą„ ą¤¬ą¤¾ą¤¦ ą¤¬ą¤ą¤¦ ą¤ą¤°ą„ą¤ (_a)" + +#: ../shell/ev-window.c:3733 +msgid "Toolbar Editor" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤" + +#: ../shell/ev-window.c:3865 +msgid "There was an error displaying help" +msgstr "ą¤®ą¤¦ą¤¦ ą¤¦ą¤æą¤ą¤¾ą¤Øą„ ą¤®ą„ą¤ ą¤ą„ą¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ ą¤„ą„." + +#: ../shell/ev-window.c:4268 +#, c-format +#| msgid "" +#| "PostScript and PDF File Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤.\n" +"ą¤Ŗą„ą¤Ŗą„ą¤²ą¤° %s (%s) ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤ą¤° ą¤°ą¤¹ą¤¾ ą¤¹ą„" + +#: ../shell/ev-window.c:4296 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4300 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4304 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#. Manually set name and icon in win32 +#: ../shell/ev-window.c:4328 ../shell/main.c:382 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4331 +#| msgid "Ā© 1996-2005 The Evince authors" +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 The Evince authors" + +#: ../shell/ev-window.c:4337 +msgid "translator-credits" +msgstr "ą¤°ą¤¾ą¤ą„ą¤¶ ą¤°ą¤ą¤ą¤Ø (rajeshkajha@yahoo.com, rranjan@redhat.com)" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4555 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą¤ą¤ø ą¤Ŗą„ą¤ ą¤Ŗą¤° ą¤®ą¤æą¤²ą¤¾" +msgstr[1] "%d ą¤ą¤ø ą¤Ŗą„ą¤ ą¤Ŗą¤° ą¤®ą¤æą¤²ą¤¾" + +#: ../shell/ev-window.c:4563 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¤ą„ą¤ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¶ą„ą¤·" + +#: ../shell/ev-window.c:4991 +msgid "_File" +msgstr "ą¤«ą¤¼ą¤¾ą¤ą¤² (_F)" + +#: ../shell/ev-window.c:4992 +msgid "_Edit" +msgstr "ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤Ø (_E)" + +#: ../shell/ev-window.c:4993 +msgid "_View" +msgstr "ą¤¦ą„ą¤ą„ą¤ (_V)" + +#: ../shell/ev-window.c:4994 +msgid "_Go" +msgstr "ą¤ą¤¾ą¤ą¤ (_G)" + +#: ../shell/ev-window.c:4995 +msgid "_Help" +msgstr "ą¤®ą¤¦ą¤¦ (_H)" + +#. File menu +#: ../shell/ev-window.c:4998 ../shell/ev-window.c:5177 +#: ../shell/ev-window.c:5256 +msgid "_Open..." +msgstr "ą¤ą„ą¤²ą„ą¤ (_O)..." + +#: ../shell/ev-window.c:4999 ../shell/ev-window.c:5257 +msgid "Open an existing document" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą„ą¤" + +#: ../shell/ev-window.c:5001 +#| msgid "Save a Copy" +msgid "Op_en a Copy" +msgstr "ą¤ą¤ ą¤Øą¤ą¤¼ą¤² ą¤ą„ą¤²ą„ą¤ (_e)" + +#: ../shell/ev-window.c:5002 +#| msgid "Save a copy of the current document" +msgid "Open a copy of the current document in a new window" +msgstr "ą¤Øą¤Æą„ ą¤µą¤æą¤ą¤”ą„ ą¤®ą„ą¤ ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ ą¤ą¤ ą¤Øą¤ą¤¼ą¤² ą¤ą„ą¤²ą„ą¤" + +#: ../shell/ev-window.c:5004 ../shell/ev-window.c:5179 +msgid "_Save a Copy..." +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤øą¤¹ą„ą¤ą„ą¤...(_S)" + +#: ../shell/ev-window.c:5005 +msgid "Save a copy of the current document" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ ą¤ą„ą¤Ŗą„ ą¤øą¤¹ą„ą¤ą„ą¤" + +#: ../shell/ev-window.c:5007 +#| msgid "Print..." +msgid "Print Set_up..." +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤øą„ą¤ą¤ ą¤Ŗ... (_u)" + +#: ../shell/ev-window.c:5008 +msgid "Setup the page settings for printing" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤¹ą„ą¤¤ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤µą¤æą¤Øą„ą¤Æą¤¾ą¤ø ą¤øą„ą¤ą¤ ą¤Ŗ ą¤ą¤°ą„ą¤" + +#: ../shell/ev-window.c:5010 +msgid "_Print..." +msgstr "ą¤ą¤¾ą¤Ŗą„ą¤ (_P)..." + +#: ../shell/ev-window.c:5011 ../shell/ev-window.c:5080 +msgid "Print this document" +msgstr "ą¤ą¤ø ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ ą¤ą¤¾ą¤Ŗą„ą¤" + +#: ../shell/ev-window.c:5013 +msgid "P_roperties" +msgstr "ą¤ą„ą¤£ (_r)" + +#: ../shell/ev-window.c:5021 +msgid "Select _All" +msgstr "ą¤øą¤ą„ ą¤ą„ą¤Øą„ą¤ (_A)" + +#: ../shell/ev-window.c:5023 +msgid "_Find..." +msgstr "ą¤¢ą„ą¤ą¤¢ą„ą¤ (_F)..." + +#: ../shell/ev-window.c:5024 +msgid "Find a word or phrase in the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤®ą„ą¤ ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ ą¤®ą„ą¤¹ą¤¾ą¤µą¤°ą¤¾ ą¤¢ą„ą¤ą¤¢ą„ą¤" + +#: ../shell/ev-window.c:5030 +msgid "T_oolbar" +msgstr "ą¤ą„ą¤²ą¤¬ą¤¾ą¤° (_o)" + +#: ../shell/ev-window.c:5032 +msgid "Rotate _Left" +msgstr "ą¤ą„ą¤®ą¤¾ą¤ą¤ ą¤¬ą¤¾ą¤Æą¤¾ą¤ (_L)" + +#: ../shell/ev-window.c:5034 +msgid "Rotate _Right" +msgstr "ą¤ą„ą¤®ą¤¾ą¤ą¤ ą¤¦ą¤¾ą¤¹ą¤æą¤Øą¤¾ (_R)" + +#: ../shell/ev-window.c:5039 +msgid "Enlarge the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¬ą¤”ą¤¼ą¤¾ ą¤ą¤°ą„ą¤" + +#: ../shell/ev-window.c:5042 +msgid "Shrink the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤øą¤æą¤ą„ą¤”ą¤¼ą„ą¤" + +#: ../shell/ev-window.c:5044 +msgid "_Reload" +msgstr "ą¤Ŗą„ą¤Øą¤ ą¤²ą„ą¤” ą¤ą¤°ą„ą¤ (_R)" + +#: ../shell/ev-window.c:5045 +msgid "Reload the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤Øą¤ ą¤²ą„ą¤”ą¤¼ ą¤ą¤°ą„" + +#: ../shell/ev-window.c:5048 +msgid "Auto_scroll" +msgstr "ą¤øą„ą¤µą¤¤ą¤ ą¤øą„ą¤ą„ą¤°ą„ą¤² (_s)" + +#. Go menu +#: ../shell/ev-window.c:5052 +msgid "_Previous Page" +msgstr "ą¤Ŗą¤æą¤ą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ (_P)" + +#: ../shell/ev-window.c:5053 +msgid "Go to the previous page" +msgstr "ą¤Ŗą¤æą¤ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:5055 +msgid "_Next Page" +msgstr "ą¤ ą¤ą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ (_N)" + +#: ../shell/ev-window.c:5056 +msgid "Go to the next page" +msgstr "ą¤ ą¤ą¤²ą„ ą¤Ŗą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:5058 +msgid "_First Page" +msgstr "ą¤Ŗą„ą¤°ą¤„ą¤® ą¤Ŗą„ą¤·ą„ą¤ (_F)" + +#: ../shell/ev-window.c:5059 +msgid "Go to the first page" +msgstr "ą¤Ŗą„ą¤°ą¤„ą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:5061 +msgid "_Last Page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ (_L)" + +#: ../shell/ev-window.c:5062 +msgid "Go to the last page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤ą¤" + +#. Help menu +#: ../shell/ev-window.c:5066 +msgid "_Contents" +msgstr "ą¤µą¤æą¤·ą¤Æ ą¤øą„ą¤ą„ (_C)" + +#: ../shell/ev-window.c:5069 +msgid "_About" +msgstr "ą¤ą„ ą¤¬ą¤¾ą¤°ą„ ą¤®ą„ą¤ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5073 +msgid "Leave Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą„ą¤”ą¤¼ą„ą¤" + +#: ../shell/ev-window.c:5074 +msgid "Leave fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą„ą¤”ą¤¼ą„ą¤" + +#: ../shell/ev-window.c:5076 +#| msgid "_Presentation" +msgid "Start Presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤ą¤¾ą¤²ą„ ą¤ą¤°ą„ą¤" + +#: ../shell/ev-window.c:5077 +#| msgid "Run document as a presentation" +msgid "Start a presentation" +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤ą¤²ą¤¾ą¤ą¤" + +#. View Menu +#: ../shell/ev-window.c:5133 +msgid "_Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ (_T)" + +#: ../shell/ev-window.c:5134 +msgid "Show or hide the toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ ą¤ą„ą¤Ŗą¤¾ą¤ą¤ ą¤Æą¤¾ ą¤¦ą¤æą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:5136 +msgid "Side _Pane" +msgstr "ą¤ą¤æą¤Øą¤¾ą¤°ą„ ą¤ą„ ą¤Ŗą¤ą„ą¤ą„ (_P)" + +#: ../shell/ev-window.c:5137 +msgid "Show or hide the side pane" +msgstr "ą¤ą¤æą¤Øą¤¾ą¤°ą„ ą¤ą„ ą¤Ŗą¤ą„ą¤ą„ ą¤ą„ ą¤¦ą¤æą¤ą¤¾ą¤Æą„ą¤ ą¤µ ą¤ą„ą¤Ŗą¤¾ą¤Æą„ą¤" + +#: ../shell/ev-window.c:5139 +msgid "_Continuous" +msgstr "ą¤Øą¤æą¤°ą¤Øą„ą¤¤ą¤° (_C)" + +#: ../shell/ev-window.c:5140 +msgid "Show the entire document" +msgstr "ą¤Ŗą„ą¤°ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¦ą¤æą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:5142 +msgid "_Dual" +msgstr "ą¤¦ą„ą¤¹ą¤°ą¤¾ (_D)" + +#: ../shell/ev-window.c:5143 +msgid "Show two pages at once" +msgstr "ą¤ą¤ą¤øą¤¾ą¤„ ą¤¦ą„ ą¤Ŗą„ą¤ ą¤¦ą¤æą¤ą¤¾ą¤Æą„ą¤" + +#: ../shell/ev-window.c:5145 +msgid "_Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø (_F)" + +#: ../shell/ev-window.c:5146 +msgid "Expand the window to fill the screen" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤ą„ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą¤°ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¬ą¤¢ą¤¾ą¤Æą„ą¤" + +#: ../shell/ev-window.c:5148 +#| msgid "_Presentation" +msgid "Pre_sentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æą¤ą¤°ą¤£ (_s)" + +#: ../shell/ev-window.c:5149 +msgid "Run document as a presentation" +msgstr "ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£" + +#: ../shell/ev-window.c:5151 +msgid "_Best Fit" +msgstr "ą¤ą¤¤ą„ą¤¤ą¤® ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ (_B)" + +#: ../shell/ev-window.c:5152 +msgid "Make the current document fill the window" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤ą¤°ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¬ą¤Øą¤¾ą¤Æą„" + +#: ../shell/ev-window.c:5154 +msgid "Fit Page _Width" +msgstr "ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ą¤”ą¤¼ą¤¾ą¤ (_W)" + +#: ../shell/ev-window.c:5155 +msgid "Make the current document fill the window width" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤ą„ą¤”ą¤¾ą¤ ą¤ą¤°ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¬ą¤Øą¤¾ą¤Æą„ą¤" + +#. Links +#: ../shell/ev-window.c:5162 +msgid "_Open Link" +msgstr "ą¤²ą¤æą¤ą¤ ą¤ą„ą¤²ą„ą¤ (_O)" + +#: ../shell/ev-window.c:5164 +msgid "_Go To" +msgstr "ą¤ą¤øą¤Ŗą¤° ą¤ą¤¾ą¤ą¤ (_G)" + +#: ../shell/ev-window.c:5166 +msgid "Open in New _Window" +msgstr "ą¤Øą¤ ą¤µą¤æą¤ą¤”ą„ ą¤®ą„ą¤ ą¤ą„ą¤²ą„ą¤ (_W)" + +#: ../shell/ev-window.c:5168 +msgid "_Copy Link Address" +msgstr "ą¤²ą¤æą¤ą¤ ą¤Ŗą¤¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤ą¤°ą„ą¤ (_C)" + +#: ../shell/ev-window.c:5170 +#| msgid "_Save a Copy..." +msgid "_Save Image As..." +msgstr "ą¤ą¤µą¤æ ą¤ą¤øą„ ą¤øą¤¹ą„ą¤ą„ą¤... (_S)" + +#: ../shell/ev-window.c:5172 +msgid "Copy _Image" +msgstr "ą¤ą¤µą¤æ ą¤ą„ ą¤Øą¤ą¤¼ą¤² ą¤²ą„ą¤ (_I)" + +#: ../shell/ev-window.c:5218 +msgid "Page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:5219 +msgid "Select Page" +msgstr "ą¤ą„ą¤Øą„ą¤ ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:5230 +msgid "Zoom" +msgstr "ą¤ą¤¼ą„ą¤®" + +#: ../shell/ev-window.c:5232 +msgid "Adjust the zoom level" +msgstr "ą¤ą„ą¤® ą¤²ą„ą¤¬ą¤² ą¤Ŗą¤° ą¤Øą¤æą¤Æą¤ą¤¤ą„ą¤°ą¤æą¤¤ ą¤ą¤°ą„ą¤" + +#: ../shell/ev-window.c:5242 +msgid "Navigation" +msgstr "ą¤Øą„ą¤µą¤æą¤ą„ą¤¶ą¤Ø" + +#: ../shell/ev-window.c:5244 +msgid "Back" +msgstr "ą¤Ŗą„ą¤ą„" + +#. translators: this is the history action +#: ../shell/ev-window.c:5247 +msgid "Move across visited pages" +msgstr "ą¤¦ą„ą¤ą„ ą¤ą¤ ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ ą¤Ŗą¤¾ą¤° ą¤²ą„ ą¤ą¤¾ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5277 +msgid "Previous" +msgstr "ą¤Ŗą¤æą¤ą¤²ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5282 +msgid "Next" +msgstr "ą¤ ą¤ą¤²ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5286 +msgid "Zoom In" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5290 +msgid "Zoom Out" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5298 +msgid "Fit Width" +msgstr "ą¤ą„ą¤”ą¤¼ą¤¾ą¤ ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤ą¤°ą„ą¤" + +#: ../shell/ev-window.c:5465 ../shell/ev-window.c:5483 +msgid "Unable to launch external application." +msgstr "ą¤¬ą¤¾ą¤¹ą¤°ą„ ą¤ ą¤Øą„ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤²ą„ą¤Øą„ą¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ ą¤ ą¤øą¤®ą¤°ą„ą¤„." + +#: ../shell/ev-window.c:5526 +#| msgid "Unable to open attachment" +msgid "Unable to open external link" +msgstr "ą¤¬ą¤¾ą¤¹ą¤°ą„ ą¤ą¤”ą¤¼ą„ ą¤ą„ą¤²ą¤Øą„ ą¤®ą„ą¤ ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:5682 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¤ą¤µą¤æ ą¤øą¤¹ą„ą¤ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤ ą¤ą¤ą¤æą¤¤ ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ ą¤Øą¤¹ą„ą¤ ą¤Ŗą¤¾ ą¤øą¤ą¤¾" + +#: ../shell/ev-window.c:5721 +#| msgid "The attachment could not be saved." +msgid "The image could not be saved." +msgstr "ą¤Æą¤¹ ą¤ą¤µą¤æ ą¤øą¤¹ą„ą¤ą„ ą¤Øą¤¹ą„ą¤ ą¤ą¤¾ ą¤øą¤ą„." + +#: ../shell/ev-window.c:5753 +#| msgid "Images" +msgid "Save Image" +msgstr "ą¤ą¤µą¤æ ą¤øą¤¹ą„ą¤ą„ą¤" + +#: ../shell/ev-window.c:5815 +msgid "Unable to open attachment" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą¤Øą„ ą¤®ą„ą¤ ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:5866 +msgid "The attachment could not be saved." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤øą¤¹ą„ą¤ą¤¾ ą¤Øą¤¹ą„ą¤ ą¤ą¤¾ ą¤øą¤ą¤¾." + +#: ../shell/ev-window.c:5911 +#| msgid "Attachments" +msgid "Save Attachment" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ą¤øą¤¹ą„ą¤ą„ą¤" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤µą¤¶ą„ą¤Æą¤" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ą¤µą¤æą¤øą„ą¤¤ą¤¾ą¤° ą¤øą„" + +#: ../shell/main.c:59 ../shell/main.c:347 +msgid "MATE Document Viewer" +msgstr "MATE ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../shell/main.c:67 +msgid "The page of the document to display." +msgstr "ą¤¦ą¤æą¤ą¤¾ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą¤¾ ą¤Ŗą„ą¤" + +#: ../shell/main.c:67 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:68 +msgid "Run evince in fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤®ą„ą¤” ą¤®ą„ą¤ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤Æą„ą¤" + +#: ../shell/main.c:69 +msgid "Run evince in presentation mode" +msgstr "ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£" + +#: ../shell/main.c:70 +msgid "Run evince as a previewer" +msgstr "ą¤Ŗą„ą¤°ą„ą¤µą¤¾ą¤µą¤²ą„ą¤ą¤Øą¤ą¤°ą„ą¤¤ą¤¾ ą¤ą„ ą¤°ą„ą¤Ŗ ą¤®ą„ą¤ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤Æą„ą¤" + +#: ../shell/main.c:71 +#| msgid "Find a word or phrase in the document" +msgid "The word or phrase to find in the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤®ą„ą¤ ą¤¢ą„ą¤ą¤¢ą¤¼ą¤Øą„ ą¤ą„ ą¤²ą¤æą¤ ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ ą¤µą¤¾ą¤ą„ą¤Æą¤¾ą¤ą¤¶" + +#: ../shell/main.c:71 +msgid "STRING" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤" + +#: ../shell/main.c:75 +msgid "[FILE...]" +msgstr "[ą¤«ą¤¾ą¤ą¤²...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¤¬ą„ą¤²ą¤æą¤Æą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗ ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§, ą¤øą¤¹ą„ ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤ą„ ą¤øą¤ą„ą¤°ą¤æą¤Æ ą¤ą¤°ą¤¤ą¤¾ ą¤¹ą„ ą¤ą¤± ą¤ą¤²ą¤¤ ą¤Øą¤Æą„ ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤ą„ ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ ą¤ą„ " +"ą¤Øą¤æą¤·ą„ą¤ą„ą¤°ą¤æą¤Æ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¤ą¤¾ ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤øą¤ą„ą¤·ą¤® ą¤ą¤°ą„ą¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤« ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤²ą¤ą„ ą¤ą¤µą¤æ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤µą„ą¤§ ą¤øą¤®ą¤¾ą¤¦ą„ą¤¶ ą¤ą„ ą¤øą¤¾ą¤„ ą¤¤ą¤°ą„ą¤. caja ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą¤ą„ą¤Ø ą¤ą„ ą¤ą„ą¤Æą¤¾ą¤¦ą¤¾ " +"ą¤ą¤¾ą¤Øą¤ą¤¾ą¤°ą„ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¦ą„ą¤ą„ą¤." + diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 00000000..29acff83 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1694 @@ +# Hungarian translation of evince +# This file is distributed under the same license as the evince package. +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, Free Software Foundation, Inc. +# +# Gabor Kelemen <kelemeng at mate dot hu>, 2005, 2006, 2007, 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-28 07:57+0200\n" +"PO-Revision-Date: 2010-08-28 07:56+0200\n" +"Last-Translator: Gabor Kelemen <kelemeng at mate dot hu>\n" +"Language-Team: Hungarian <mate at fsf dot hu>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:210 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Hiba a parancs (ā%sā) indĆtĆ”sakor a kƶvetkezÅ kĆ©pregĆ©ny kicsomagolĆ”sĆ”hoz: %s" + +#: ../backend/comics/comics-document.c:224 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "A parancs (ā%sā) nem tudta kibontani a kĆ©pregĆ©nyt." + +#: ../backend/comics/comics-document.c:233 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "A parancs (ā%sā) nem fejezÅdƶtt be hiba nĆ©lkĆ¼l." + +#: ../backend/comics/comics-document.c:413 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Nem kĆ©pregĆ©ny MIME-tĆpus: %s" + +#: ../backend/comics/comics-document.c:420 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Nem talĆ”lhatĆ³ megfelelÅ parancs ezen kĆ©pregĆ©ny kibontĆ”sĆ”hoz" + +#: ../backend/comics/comics-document.c:458 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Ismeretlen MIME tĆpus" + +#: ../backend/comics/comics-document.c:485 +msgid "File corrupted" +msgstr "A fĆ”jl sĆ©rĆ¼lt" + +#: ../backend/comics/comics-document.c:498 +msgid "No files in archive" +msgstr "Nem talĆ”lhatĆ³k fĆ”jlok az archĆvumban" + +#: ../backend/comics/comics-document.c:537 +#, c-format +msgid "No images found in archive %s" +msgstr "Nem talĆ”lhatĆ³k kĆ©pek a(z) %s archĆvumban" + +#: ../backend/comics/comics-document.c:781 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Hiba tƶrtĆ©nt a(z) ā%sā tƶrlĆ©se kƶzben." + +#: ../backend/comics/comics-document.c:874 +#, c-format +msgid "Error %s" +msgstr "%s hiba" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "KĆ©pregĆ©nyek" + +#: ../backend/djvu/djvu-document.c:170 +msgid "DjVu document has incorrect format" +msgstr "A DjVu dokumentum formĆ”tuma hibĆ”s" + +#: ../backend/djvu/djvu-document.c:247 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "A dokumentum tƶbb fĆ”jlbĆ³l Ć”ll. LegalĆ”bb az egyik fĆ”jl nem Ć©rhetÅ el." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu dokumentumok" + +#: ../backend/dvi/dvi-document.c:110 +msgid "DVI document has incorrect format" +msgstr "A DVI dokumentum formĆ”tuma hibĆ”s" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI dokumentumok" + +#: ../backend/pdf/ev-poppler.cc:614 +msgid "This work is in the Public Domain" +msgstr "Ez a munka kƶzkincs" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:867 +msgid "Yes" +msgstr "EngedĆ©lyezve" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:870 +msgid "No" +msgstr "Tiltva" + +#: ../backend/pdf/ev-poppler.cc:999 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:1001 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:1003 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:1005 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:1007 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:1009 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:1011 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:1013 +msgid "Unknown font type" +msgstr "Ismeretlen betűkĆ©szlet-tĆpus" + +#: ../backend/pdf/ev-poppler.cc:1039 +msgid "No name" +msgstr "NĆ©vtelen" + +#: ../backend/pdf/ev-poppler.cc:1047 +msgid "Embedded subset" +msgstr "BeĆ”gyazott rĆ©szhalmaz" + +#: ../backend/pdf/ev-poppler.cc:1049 +msgid "Embedded" +msgstr "BeĆ”gyazott" + +#: ../backend/pdf/ev-poppler.cc:1051 +msgid "Not embedded" +msgstr "Be nem Ć”gyazott" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokumentumok" + +#: ../backend/ps/ev-spectre.c:98 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "A dokumentum (ā%sā) betƶltĆ©se meghiĆŗsult" + +#: ../backend/ps/ev-spectre.c:131 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "A dokumentum (ā%sā) mentĆ©se meghiĆŗsult" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-dokumentumok" + +#: ../backend/tiff/tiff-document.c:109 +msgid "Invalid document" +msgstr "ĆrvĆ©nytelen dokumentum" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "A(z) ā%sā mellĆ©klet nem menthetÅ: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "A(z) ā%sā mellĆ©klet nem nyithatĆ³ meg: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "A(z) ā%sā mellĆ©klet nem nyithatĆ³ meg" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "A(z) %s fĆ”jltĆpus (%s) nem tĆ”mogatott" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Minden dokumentum" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Minden fĆ”jl" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Az Ć”tmeneti fĆ”jl lĆ©trehozĆ”sa meghiĆŗsult: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Az Ć”tmeneti kƶnyvtĆ”r lĆ©trehozĆ”sa meghiĆŗsult: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "A fĆ”jl nem egy Ć©rvĆ©nyes .desktop fĆ”jl" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ismeretlen .desktop fĆ”jl verziĆ³: ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s indĆtĆ”sa" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Az alkalmazĆ”s nem fogad el dokumentumokat a parancssorban" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Ismeretlen indĆtĆ”si beĆ”llĆtĆ”s: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nem adhatĆ³k dokumentum-URI cĆmek egy āType=Linkā asztali bejegyzĆ©snek" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nem futtathatĆ³ elem" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "A munkamenet-kezelÅhƶz valĆ³ csatlakozĆ”s tiltĆ”sa" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "A mentett beĆ”llĆtĆ”sokat tartalmazĆ³ fĆ”jl megadĆ”sa" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FĆJL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "A munkamenet-kezelÅ azonosĆtĆ³jĆ”nak megadĆ”sa" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "AzonosĆtĆ³" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Munkamenet-kezelĆ©s kapcsolĆ³i:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Munkamenet-kezelĆ©si kapcsolĆ³k megjelenĆtĆ©se" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "_ā%sā megjelenĆtĆ©se" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Ćt_helyezĆ©s az eszkƶztĆ”ron" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "A kijelƶlt elem Ć”thelyezĆ©se az eszkƶztĆ”ron" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_EltĆ”volĆtĆ”s az eszkƶztĆ”rrĆ³l" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "A kijelƶlt elem eltĆ”volĆtĆ”sa az eszkƶztĆ”rrĆ³l" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_EszkƶztĆ”r tƶrlĆ©se" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "A kijelƶlt eszkƶztĆ”r eltĆ”volĆtĆ”sa" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ElvĆ”lasztĆ³" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5739 +msgid "Best Fit" +msgstr "Teljes oldal" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Teljes szĆ©lessĆ©g" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4534 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "DokumentummegjelenĆtÅ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Tƶbboldalas dokumentumok megjelenĆtĆ©se" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "A dokumentum korlĆ”tozĆ”sainak felĆ¼lbĆrĆ”lĆ”sa" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Dokumentum (pĆ©ldĆ”ul a mĆ”solĆ”sra vagy nyomtatĆ”sra vonatkozĆ³) korlĆ”tozĆ”sainak " +"felĆ¼lbĆrĆ”lĆ”sa." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Ideiglenes fĆ”jl tƶrlĆ©se" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "BeĆ”llĆtĆ”sfĆ”jl nyomtatĆ”sa" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE dokumentumelÅnĆ©zet-kĆ©szĆtÅ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3166 +msgid "Failed to print document" +msgstr "A dokumentum nyomtatĆ”sa meghiĆŗsult" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "A kivĆ”lasztott nyomtatĆ³ (ā%sā) nem talĆ”lhatĆ³" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5454 +msgid "_Previous Page" +msgstr "ElÅ_zÅ oldal" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5455 +msgid "Go to the previous page" +msgstr "UgrĆ”s az elÅzÅ oldalra" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5457 +msgid "_Next Page" +msgstr "_KƶvetkezÅ oldal" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5458 +msgid "Go to the next page" +msgstr "UgrĆ”s a kƶvetkezÅ oldalra" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5441 +msgid "Enlarge the document" +msgstr "A dokumentum megnƶvelĆ©se" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5444 +msgid "Shrink the document" +msgstr "A dokumentum zsugorĆtĆ”sa" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "NyomtatĆ”s" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5410 +msgid "Print this document" +msgstr "A jelenlegi dokumentum nyomtatĆ”sa" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5556 +msgid "_Best Fit" +msgstr "Teljes _oldal" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5557 +msgid "Make the current document fill the window" +msgstr "A jelenlegi dokumentum tƶltse ki az ablakot" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5559 +msgid "Fit Page _Width" +msgstr "Teljes _szĆ©lessĆ©g" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5560 +msgid "Make the current document fill the window width" +msgstr "A jelenlegi dokumentum tƶltse ki az ablak szĆ©lessĆ©gĆ©t" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5661 +msgid "Page" +msgstr "Oldal" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5662 +msgid "Select Page" +msgstr "Oldal kivĆ”lasztĆ”sa" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokumentum" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "CĆm:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Hely:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "TĆ”rgy:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "SzerzÅ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Kulcsszavak:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "KĆ©szĆtÅ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "LĆ©trehozĆ³:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "LĆ©trehozva:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "MĆ³dosĆtva:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Lapok szĆ”ma:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "OptimalizĆ”lt:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "FormĆ”tum:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "BiztonsĆ”g:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "PapĆrmĆ©ret:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Nincs" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f hĆ¼velyk" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Ć”llĆ³ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, fekvÅ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "BetƶltĆ©sā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "NyomtatĆ”s elÅkĆ©szĆtĆ©seā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "BefejezĆ©sā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "A(z) %d. oldal nyomtatĆ”sa %d oldalbĆ³lā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "A nyomtatĆ”s nem tĆ”mogatott ezen a nyomtatĆ³n" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ĆrvĆ©nytelen oldalvĆ”lasztĆ”s" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "FigyelmeztetĆ©s" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "A kivĆ”lasztott nyomtatĆ”si tartomĆ”ny nem tartalmaz oldalakat" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Oldal mĆ©retezĆ©se:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ZsugorĆtĆ”s a nyomtathatĆ³ terĆ¼letre" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "IllesztĆ©s a nyomtathatĆ³ terĆ¼lethez" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Dokumentumoldalak Ć”tmĆ©retezĆ©se a kijelƶlt nyomtatĆ³oldalhoz. VĆ”lasszon az " +"alĆ”bbiak kƶzĆ¼l:\n" +"\n" +"ā¢ āNincsā: Az oldal nem lesz Ć”tmĆ©retezve.\n" +"\n" +"ā¢ āZsugorĆtĆ”s a nyomtathatĆ³ terĆ¼letreā: A nyomtathatĆ³ terĆ¼letnĆ©l nagyobb " +"dokumentumoldalak mĆ©rete a nyomtatĆ³oldal mĆ©retĆ©re lesz csƶkkentve.\n" +"\n" +"ā¢ āIllesztĆ©s a nyomtathatĆ³ terĆ¼lethezā: A dokumentumoldalak szĆ¼ksĆ©g szerint " +"a nyomtatĆ³oldal nyomtathatĆ³ terĆ¼letĆ©re lesznek nƶvelve vagy csƶkkentve.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Automatikus forgatĆ”s Ć©s kƶzĆ©pre igazĆtĆ”s" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Minden oldal nyomtatĆ³oldal-tĆ”jolĆ”sĆ”nak forgatĆ”sa a dokumentumoldalnak " +"megfelelÅen. A dokumentumoldalak az nyomtatĆ³oldalon belĆ¼l kƶzĆ©pre lesznek " +"igazĆtva." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "OldalmĆ©ret kivĆ”lasztĆ”sa a dokumentum oldalmĆ©retĆ©nek hasznĆ”latĆ”val" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Ha engedĆ©lyezi, minden oldal a dokumentumoldallal egyezÅ mĆ©retű papĆrra lesz " +"nyomtatva." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "OldalkezelĆ©s" + +#: ../libview/ev-jobs.c:1531 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "A(z) %d. oldal nyomtatĆ”sa meghiĆŗsult: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "GƶrgetĆ©s felfelĆ©" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "GƶrgetĆ©s lefelĆ©" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "NĆ©zet gƶrgetĆ©se felfelĆ©" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "NĆ©zet gƶrgetĆ©se lefelĆ©" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "DokumentumnĆ©zet" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "UgrĆ”s oldalra:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "VĆ©ge a bemutatĆ³nak. A kilĆ©pĆ©shez kattintson." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "UgrĆ”s az elsÅ oldalra" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "UgrĆ”s az elÅzÅ oldalra" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "UgrĆ”s a kƶvetkezÅ oldalra" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "UgrĆ”s az utolsĆ³ oldalra" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "UgrĆ”s:" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "KeresĆ©s" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "UgrĆ”s a(z) %s oldalra" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "UgrĆ”s erre: %s a kƶvetkezÅ fĆ”jlban: ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "UgrĆ”s a(z) %s fĆ”jlra" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s indĆtĆ”sa" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "KeresĆ©s:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5427 +msgid "Find Pre_vious" +msgstr "ElÅ_zÅ talĆ”lat" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "A keresÅkifejezĆ©s elÅzÅ elÅfordulĆ”sa az oldalon" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5425 +msgid "Find Ne_xt" +msgstr "Kƶ_vetkezÅ talĆ”lat" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "A keresÅkifejezĆ©s kƶvetkezÅ elÅfordulĆ”sa az oldalon" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Na_gybetÅ±Ć©rzĆ©keny" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "NagybetÅ±Ć©rzĆ©keny keresĆ©s be/ki" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "MegjegyzĆ©s" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "MegjegyzĆ©s" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Billentyű" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "SĆŗgĆ³" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Ćj bekezdĆ©s" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "BekezdĆ©s" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "BeszĆŗrĆ”s" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kereszt" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Kƶr" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Ismeretlen" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "MagyarĆ”zattulajdonsĆ”gok" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "SzĆn:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "StĆlus:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ĆtlĆ”tszĆ³" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ĆtlĆ”tszatlan" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "KiindulĆ³ ablakĆ”llapot:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "MegnyitĆ”s" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "BezĆ”rĆ”s" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "BemutatĆ³ mĆ³d" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s dokumentum jelszava" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s Ć”talakĆtĆ”sa" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d/%d dokumentum Ć”talakĆtva" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Metaadatok Ć”talakĆtĆ”sa" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Az Evince Ć”ltal hasznĆ”lt metaadat-formĆ”tum megvĆ”ltozott, emiatt Ć”t kell " +"Ć”llĆtani. Ha az Ć”tĆ”llĆtĆ”s megszakad, a metaadat-tĆ”rolĆ³ nem fog műkƶdni." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "NemrĆ©g hasznĆ”lt dokumentum megnyitĆ”sa" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ez a dokumentum zĆ”rolva van Ć©s csak a megfelelÅ jelszĆ³ megadĆ”sĆ”val lehet " +"elolvasni." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Dokumentum feloldĆ”sa" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Adja meg a jelszĆ³t" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "JelszĆ³ szĆ¼ksĆ©ges" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "A dokumentum (ā%sā) zĆ”rolva van Ć©s megnyitĆ”sĆ”hoz jelszĆ³ szĆ¼ksĆ©ges." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_JelszĆ³:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "JelszĆ³ a_zonnali elfelejtĆ©se" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "JelszĆ³ megjegyzĆ©se _kijelentkezĆ©sig" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_MegjegyzĆ©s ƶrƶkre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "TulajdonsĆ”gok" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ĆltalĆ”nos" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "BetűkĆ©szletek" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumentum licence" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "BetűkĆ©szlet" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "BetűkĆ©szlet-informĆ”ciĆ³k ƶsszegyűjtĆ©seā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "FelhasznĆ”lĆ”si feltĆ©telek" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Szƶveg licence" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "TovĆ”bbi informĆ”ciĆ³k" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "MegjegyzĆ©sek" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Szƶveg" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Szƶveges megjegyzĆ©s hozzĆ”adĆ”sa" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "HozzĆ”adĆ”s" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "A dokumentum nem tartalmaz megjegyzĆ©seket" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "%d. oldal" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "MellĆ©kletek" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "RĆ©tegek" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "NyomtatĆ”sā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:938 +msgid "Thumbnails" +msgstr "BĆ©lyegkĆ©pek" + +#: ../shell/ev-window.c:866 +#, c-format +msgid "Page %s ā %s" +msgstr "Oldal: %s ā %s" + +#: ../shell/ev-window.c:868 +#, c-format +msgid "Page %s" +msgstr "Oldal: %s" + +#: ../shell/ev-window.c:1420 +msgid "The document contains no pages" +msgstr "A dokumentum nem tartalmaz oldalakat" + +#: ../shell/ev-window.c:1423 +msgid "The document contains only empty pages" +msgstr "A dokumentum csak Ć¼res oldalakat tartalmaz" + +#: ../shell/ev-window.c:1625 ../shell/ev-window.c:1791 +msgid "Unable to open document" +msgstr "A dokumentum nem nyithatĆ³ meg" + +#: ../shell/ev-window.c:1762 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Dokumentum betƶltĆ©se innen: ā%sā" + +#: ../shell/ev-window.c:1904 ../shell/ev-window.c:2183 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Dokumentum letƶltĆ©se (%d%%)" + +#: ../shell/ev-window.c:1937 +msgid "Failed to load remote file." +msgstr "A tĆ”voli fĆ”jl betƶltĆ©se meghiĆŗsult." + +#: ../shell/ev-window.c:2127 +#, c-format +msgid "Reloading document from %s" +msgstr "Dokumentum ĆŗjratƶltĆ©se innen: %s" + +#: ../shell/ev-window.c:2159 +msgid "Failed to reload document." +msgstr "A dokumentum ĆŗjratƶltĆ©se meghiĆŗsult." + +#: ../shell/ev-window.c:2314 +msgid "Open Document" +msgstr "Dokumentum megnyitĆ”sa" + +#: ../shell/ev-window.c:2612 +#, c-format +msgid "Saving document to %s" +msgstr "Dokumentum mentĆ©se ide: %s" + +#: ../shell/ev-window.c:2615 +#, c-format +msgid "Saving attachment to %s" +msgstr "MellĆ©klet mentĆ©se ide: %s" + +#: ../shell/ev-window.c:2618 +#, c-format +msgid "Saving image to %s" +msgstr "KĆ©p mentĆ©se ide: %s" + +#: ../shell/ev-window.c:2662 ../shell/ev-window.c:2762 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "A fĆ”jl nem menthetÅ ā%sā nĆ©ven." + +#: ../shell/ev-window.c:2693 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Dokumentum feltƶltĆ©se (%d%%)" + +#: ../shell/ev-window.c:2697 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "MellĆ©klet feltƶltĆ©se (%d%%)" + +#: ../shell/ev-window.c:2701 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "KĆ©p feltƶltĆ©se (%d%%)" + +#: ../shell/ev-window.c:2825 +msgid "Save a Copy" +msgstr "MĆ”solat mentĆ©se" + +#: ../shell/ev-window.c:3110 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d feladat a sorban" +msgstr[1] "%d feladat a sorban" + +#: ../shell/ev-window.c:3223 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā feladat nyomtatĆ”sa" + +#: ../shell/ev-window.c:3400 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"A dokumentum kitƶltƶtt űrlapmezÅket tartalmaz. Ha nem ment egy pĆ©ldĆ”nyt, " +"akkor a mĆ³dosĆtĆ”sok vĆ©glegesen elvesznek." + +#: ../shell/ev-window.c:3404 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"A dokumentum Ćŗj vagy mĆ³dosĆtott megjegyzĆ©seket tartalmaz. Ha nem ment egy " +"pĆ©ldĆ”nyt, akkor a mĆ³dosĆtĆ”sok vĆ©glegesen elvesznek." + +#: ../shell/ev-window.c:3411 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "BezĆ”rĆ”s elÅtt menti a(z) ā%sā dokumentum mĆ”solatĆ”t?" + +#: ../shell/ev-window.c:3430 +msgid "Close _without Saving" +msgstr "BezĆ”rĆ”s mentĆ©s _nĆ©lkĆ¼l" + +#: ../shell/ev-window.c:3434 +msgid "Save a _Copy" +msgstr "_MĆ”solat mentĆ©se" + +#: ../shell/ev-window.c:3508 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "BezĆ”rĆ”s elÅtt megvĆ”rja a(z) ā%sā nyomtatĆ”si feladat befejezÅdĆ©sĆ©t?" + +#: ../shell/ev-window.c:3511 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d nyomtatĆ”si feladat aktĆv. MegvĆ”rja a nyomtatĆ”s befejezÅdĆ©sĆ©t a bezĆ”rĆ”s " +"elÅtt?" + +#: ../shell/ev-window.c:3523 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Ha bezĆ”rja az ablakot, a fĆ¼ggÅben lĆ©vÅ nyomtatĆ”si feladatok megszakadnak." + +#: ../shell/ev-window.c:3527 +msgid "Cancel _print and Close" +msgstr "_NyomtatĆ”s megszakĆtĆ”sa Ć©s bezĆ”rĆ”s" + +#: ../shell/ev-window.c:3531 +msgid "Close _after Printing" +msgstr "BezĆ”rĆ”s nyomtatĆ”s _utĆ”n" + +#: ../shell/ev-window.c:4151 +msgid "Toolbar Editor" +msgstr "EszkƶztĆ”rszerkesztÅ" + +#: ../shell/ev-window.c:4318 +msgid "There was an error displaying help" +msgstr "Hiba tƶrtĆ©nt a sĆŗgĆ³ megjelenĆtĆ©se kƶzben" + +#: ../shell/ev-window.c:4530 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"DokumentummegjelenĆtÅ\n" +"%s (%s) hasznĆ”latĆ”val" + +#: ../shell/ev-window.c:4561 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Az Evince szabad szoftver, terjesztheti Ć©s/vagy mĆ³dosĆthatja a Free Software " +"Foundation Ć”ltal kiadott GNU General Public License mĆ”sodik (vagy bĆ”rmely " +"kĆ©sÅbbi) vĆ”ltozatĆ”ban foglaltak alapjĆ”n.\n" + +#: ../shell/ev-window.c:4565 +msgid "" +"Evince 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.\n" +msgstr "" +"Az Evince programot abban a remĆ©nyben terjesztjĆ¼k, hogy hasznos lesz, de nem " +"vĆ”llalunk SEMMIFĆLE GARANCIĆT, mĆ©g olyan Ć©rtelemben sem, hogy a program " +"alkalmas-e a KĆZREADĆSRA vagy EGY BIZONYOS FELADAT ELVĆGZĆSĆRE. TovĆ”bbi " +"rĆ©szletekĆ©rt tanulmĆ”nyozza a GNU GPL licencet.\n" + +#: ../shell/ev-window.c:4569 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Az Evince programhoz a GNU General Public License egy pĆ©ldĆ”nya is jĆ”r, ha " +"nem kapta meg, Ćrjon a Free Software Foundation Inc.-nek. LevĆ©lcĆmĆ¼k: 51 " +"Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#: ../shell/ev-window.c:4594 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4597 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Az Evince szerzÅi" + +#: ../shell/ev-window.c:4603 +msgid "translator-credits" +msgstr "Kelemen GĆ”bor <kelemeng at mate dot hu>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4869 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d talĆ”lat ezen az oldalon" +msgstr[1] "%d talĆ”lat ezen az oldalon" + +#: ../shell/ev-window.c:4874 +msgid "Not found" +msgstr "Nem talĆ”lhatĆ³" + +#: ../shell/ev-window.c:4880 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% van hĆ”tra a keresĆ©sbÅl" + +#: ../shell/ev-window.c:5393 +msgid "_File" +msgstr "_FĆ”jl" + +#: ../shell/ev-window.c:5394 +msgid "_Edit" +msgstr "S_zerkesztĆ©s" + +#: ../shell/ev-window.c:5395 +msgid "_View" +msgstr "_NĆ©zet" + +#: ../shell/ev-window.c:5396 +msgid "_Go" +msgstr "_UgrĆ”s" + +#: ../shell/ev-window.c:5397 +msgid "_Help" +msgstr "_SĆŗgĆ³" + +#. File menu +#: ../shell/ev-window.c:5400 ../shell/ev-window.c:5701 +msgid "_Openā¦" +msgstr "_MegnyitĆ”sā¦" + +#: ../shell/ev-window.c:5401 ../shell/ev-window.c:5702 +msgid "Open an existing document" +msgstr "LĆ©tezÅ dokumentum megnyitĆ”sa" + +#: ../shell/ev-window.c:5403 +msgid "Op_en a Copy" +msgstr "MĆ”solat megn_yitĆ”sa" + +#: ../shell/ev-window.c:5404 +msgid "Open a copy of the current document in a new window" +msgstr "A jelenlegi dokumentum egy mĆ”solatĆ”nak megnyitĆ”sa Ćŗj ablakban" + +#: ../shell/ev-window.c:5406 +msgid "_Save a Copyā¦" +msgstr "MĆ”s_olat mentĆ©seā¦" + +#: ../shell/ev-window.c:5407 +msgid "Save a copy of the current document" +msgstr "A jelenlegi dokumentum egy mĆ”solatĆ”nak mentĆ©se" + +#: ../shell/ev-window.c:5409 +msgid "_Printā¦" +msgstr "_NyomtatĆ”sā¦" + +#: ../shell/ev-window.c:5412 +msgid "P_roperties" +msgstr "_TulajdonsĆ”gok" + +#: ../shell/ev-window.c:5420 +msgid "Select _All" +msgstr "Min_dent kijelƶl" + +#: ../shell/ev-window.c:5422 +msgid "_Findā¦" +msgstr "_KeresĆ©sā¦" + +#: ../shell/ev-window.c:5423 +msgid "Find a word or phrase in the document" +msgstr "SzĆ³ vagy kifejezĆ©s keresĆ©se a dokumentumban" + +#: ../shell/ev-window.c:5429 +msgid "T_oolbar" +msgstr "Eszkƶz_tĆ”r" + +#: ../shell/ev-window.c:5431 +msgid "Rotate _Left" +msgstr "ForgatĆ”s _balra" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Right" +msgstr "ForgatĆ”s _jobbra" + +#: ../shell/ev-window.c:5435 +msgid "Save Current Settings as _Default" +msgstr "_Jelenlegi beĆ”llĆtĆ”sok mentĆ©se alapĆ©rtelmezettkĆ©nt" + +#: ../shell/ev-window.c:5446 +msgid "_Reload" +msgstr "_FrissĆtĆ©s" + +#: ../shell/ev-window.c:5447 +msgid "Reload the document" +msgstr "A dokumentum ĆŗjratƶltĆ©se" + +#: ../shell/ev-window.c:5450 +msgid "Auto_scroll" +msgstr "Aut_omatikus gƶrgetĆ©s" + +#: ../shell/ev-window.c:5460 +msgid "_First Page" +msgstr "_ElsÅ oldal" + +#: ../shell/ev-window.c:5461 +msgid "Go to the first page" +msgstr "UgrĆ”s az elsÅ oldalra" + +#: ../shell/ev-window.c:5463 +msgid "_Last Page" +msgstr "_UtolsĆ³ oldal" + +#: ../shell/ev-window.c:5464 +msgid "Go to the last page" +msgstr "UgrĆ”s az utolsĆ³ oldalra" + +#. Help menu +#: ../shell/ev-window.c:5468 +msgid "_Contents" +msgstr "_Tartalom" + +#: ../shell/ev-window.c:5471 +msgid "_About" +msgstr "_NĆ©vjegy" + +#. Toolbar-only +#: ../shell/ev-window.c:5475 +msgid "Leave Fullscreen" +msgstr "Teljes kĆ©pernyÅ elhagyĆ”sa" + +#: ../shell/ev-window.c:5476 +msgid "Leave fullscreen mode" +msgstr "Teljes kĆ©pernyÅ elhagyĆ”sa" + +#: ../shell/ev-window.c:5478 +msgid "Start Presentation" +msgstr "BemutatĆ³ indĆtĆ”sa" + +#: ../shell/ev-window.c:5479 +msgid "Start a presentation" +msgstr "Egy bemutatĆ³ elindĆtĆ”sa" + +#. View Menu +#: ../shell/ev-window.c:5538 +msgid "_Toolbar" +msgstr "_EszkƶztĆ”r" + +#: ../shell/ev-window.c:5539 +msgid "Show or hide the toolbar" +msgstr "EszkƶztĆ”r megjelenĆtĆ©se vagy elrejtĆ©se" + +#: ../shell/ev-window.c:5541 +msgid "Side _Pane" +msgstr "OldalsĆ”_v" + +#: ../shell/ev-window.c:5542 +msgid "Show or hide the side pane" +msgstr "OldalsĆ”v megjelenĆtĆ©se vagy elrejtĆ©se" + +#: ../shell/ev-window.c:5544 +msgid "_Continuous" +msgstr "Fol_ytonos" + +#: ../shell/ev-window.c:5545 +msgid "Show the entire document" +msgstr "A teljes dokumentum mutatĆ”sa" + +#: ../shell/ev-window.c:5547 +msgid "_Dual" +msgstr "KĆ©t os_zlop" + +#: ../shell/ev-window.c:5548 +msgid "Show two pages at once" +msgstr "KĆ©t oldal mutatĆ”sa egyszerre" + +#: ../shell/ev-window.c:5550 +msgid "_Fullscreen" +msgstr "_Teljes kĆ©pernyÅ" + +#: ../shell/ev-window.c:5551 +msgid "Expand the window to fill the screen" +msgstr "Az ablak megnƶvelĆ©se, hogy kitƶltse a kĆ©pernyÅt" + +#: ../shell/ev-window.c:5553 +msgid "Pre_sentation" +msgstr "_BemutatĆ³" + +#: ../shell/ev-window.c:5554 +msgid "Run document as a presentation" +msgstr "A dokumentum elindĆtĆ”sa bemutatĆ³kĆ©nt" + +#: ../shell/ev-window.c:5562 +msgid "_Inverted Colors" +msgstr "_Inverz szĆnek" + +#: ../shell/ev-window.c:5563 +msgid "Show page contents with the colors inverted" +msgstr "Az oldal tartalmĆ”nak megjelenĆtĆ©se inverz szĆnekkel" + +#. Links +#: ../shell/ev-window.c:5571 +msgid "_Open Link" +msgstr "_HivatkozĆ”s megnyitĆ”sa" + +#: ../shell/ev-window.c:5573 +msgid "_Go To" +msgstr "_UgrĆ”s" + +#: ../shell/ev-window.c:5575 +msgid "Open in New _Window" +msgstr "MegnyitĆ”s Ćŗj _ablakban" + +#: ../shell/ev-window.c:5577 +msgid "_Copy Link Address" +msgstr "HivatkozĆ”s cĆ_mĆ©nek mĆ”solĆ”sa" + +#: ../shell/ev-window.c:5579 +msgid "_Save Image Asā¦" +msgstr "KĆ©_p mentĆ©se mĆ”skĆ©ntā¦" + +#: ../shell/ev-window.c:5581 +msgid "Copy _Image" +msgstr "KĆ©_p mĆ”solĆ”sa" + +#: ../shell/ev-window.c:5583 +msgid "Annotation Propertiesā¦" +msgstr "MagyarĆ”zatok tulajdonsĆ”gaiā¦" + +#: ../shell/ev-window.c:5588 +msgid "_Open Attachment" +msgstr "_MellĆ©klet megnyitĆ”sa" + +#: ../shell/ev-window.c:5590 +msgid "_Save Attachment Asā¦" +msgstr "MellĆ©klet m_entĆ©se mĆ”skĆ©ntā¦" + +#: ../shell/ev-window.c:5675 +msgid "Zoom" +msgstr "NagyĆtĆ”s" + +#: ../shell/ev-window.c:5677 +msgid "Adjust the zoom level" +msgstr "A nagyĆtĆ”s szintjĆ©nek beĆ”llĆtĆ”sa" + +#: ../shell/ev-window.c:5687 +msgid "Navigation" +msgstr "NavigĆ”ciĆ³" + +#: ../shell/ev-window.c:5689 +msgid "Back" +msgstr "Vissza" + +#. translators: this is the history action +#: ../shell/ev-window.c:5692 +msgid "Move across visited pages" +msgstr "MozgĆ”s a megjelenĆtett oldalak kƶzƶtt" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5722 +msgid "Previous" +msgstr "ElÅzÅ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5727 +msgid "Next" +msgstr "KƶvetkezÅ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5731 +msgid "Zoom In" +msgstr "NagyĆtĆ”s" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5735 +msgid "Zoom Out" +msgstr "KicsinyĆtĆ©s" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5743 +msgid "Fit Width" +msgstr "SzĆ©lessĆ©g igazĆtĆ”sa" + +#: ../shell/ev-window.c:5888 ../shell/ev-window.c:5905 +msgid "Unable to launch external application." +msgstr "A kĆ¼lsÅ alkalmazĆ”s nem indĆthatĆ³." + +#: ../shell/ev-window.c:5962 +msgid "Unable to open external link" +msgstr "A kĆ¼lsÅ hivatkozĆ”s nem nyithatĆ³ meg" + +#: ../shell/ev-window.c:6129 +msgid "Couldn't find appropriate format to save image" +msgstr "Nem talĆ”lhatĆ³ megfelelÅ formĆ”tum a kĆ©p mentĆ©sĆ©hez" + +#: ../shell/ev-window.c:6171 +msgid "The image could not be saved." +msgstr "A kĆ©p nem menthetÅ." + +#: ../shell/ev-window.c:6203 +msgid "Save Image" +msgstr "KĆ©p mentĆ©se" + +#: ../shell/ev-window.c:6331 +msgid "Unable to open attachment" +msgstr "A mellĆ©klet nem nyithatĆ³ meg" + +#: ../shell/ev-window.c:6384 +msgid "The attachment could not be saved." +msgstr "A mellĆ©klet nem menthetÅ." + +#: ../shell/ev-window.c:6429 +msgid "Save Attachment" +msgstr "MellĆ©klet mentĆ©se" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā JelszĆ³ szĆ¼ksĆ©ges" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "KiterjesztĆ©s szerint" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE dokumentummegjelenĆtÅ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "A megjelenĆtendÅ dokumentum oldalcĆmkĆ©je." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "OLDAL" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "A megjelenĆtendÅ dokumentum oldalszĆ”ma." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "SZĆM" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Teljes kĆ©pernyÅs mĆ³d" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Az Evince futtatĆ”sa bemutatĆ³ mĆ³dban" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ElÅnĆ©zet mĆ³d" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "A dokumentumban keresendÅ szĆ³ vagy kifejezĆ©s" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "KARAKTERLĆNC" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FĆJLā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Igaz hatĆ”sĆ”ra a bĆ©lyegkĆ©pek kĆ©szĆtĆ©se engedĆ©lyezve lesz, hamis hatĆ”sĆ”ra " +"pedig nem." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF dokumentumokrĆ³l bĆ©lyegkĆ©pek kĆ©szĆtĆ©sĆ©nek engedĆ©lyezĆ©se" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "BĆ©lyegkĆ©p-kĆ©szĆtÅ parancs PDF-dokumentumokhoz" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ĆrvĆ©nyes parancs paramĆ©terekkel a PDF dokumentumokbĆ³l valĆ³ bĆ©lyegkĆ©p-" +"kĆ©szĆtĆ©shez. TovĆ”bbi informĆ”ciĆ³kĆ©rt lĆ”sd a Caja bĆ©lyegkĆ©p-kĆ©szĆtÅjĆ©nek " +"dokumentĆ”ciĆ³jĆ”t." + +#~ msgid "Impress Slides" +#~ msgstr "Impress fĆ³liĆ”k" + +#~ msgid "No error" +#~ msgstr "Nincs hiba" + +#~ msgid "Not enough memory" +#~ msgstr "Nincs elĆ©g memĆ³ria" + +#~ msgid "Cannot find ZIP signature" +#~ msgstr "Nem talĆ”lhatĆ³ a ZIP alĆ”ĆrĆ”s" + +#~ msgid "Invalid ZIP file" +#~ msgstr "ĆrvĆ©nytelen ZIP fĆ”jl" + +#~ msgid "Multi file ZIPs are not supported" +#~ msgstr "A tƶbb fĆ”jlbĆ³l Ć”llĆ³ ZIP archĆvumok nem tĆ”mogatottak" + +#~ msgid "Cannot open the file" +#~ msgstr "A fĆ”jl nem nyithatĆ³ meg" + +#~ msgid "Cannot read data from file" +#~ msgstr "Nem lehet adatokat olvasni a fĆ”jlbĆ³l" + +#~ msgid "Cannot find file in the ZIP archive" +#~ msgstr "Nem talĆ”lhatĆ³ a fĆ”jl a ZIP archĆvumban" + +#~ msgid "Unknown error" +#~ msgstr "Ismeretlen hiba" diff --git a/po/id.po b/po/id.po new file mode 100644 index 00000000..83a8f60a --- /dev/null +++ b/po/id.po @@ -0,0 +1,1717 @@ +# translation of Evince into Indonesian +# Copyright (C) 2005 THE Evince'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Evince package. +# +# Ahmad Riza H Nst <rizahnst@gnome.org>, 2006. +# Mdamt <mdamt@gnome.org>, 2005. +# Andika Triwidada <andika@gmail.com>, 2009, 2010. +# Dirgita <dirgitadevina@yahoo.co.id>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince mate-2-32\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-07 16:35+0000\n" +"PO-Revision-Date: 2010-09-11 14:40+0700\n" +"Last-Translator: Andika Triwidada <andika@gmail.com>\n" +"Language-Team: MATE Indonesian Translation Team <mate@i15n.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: KBabel 1.11.4\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: Indonesia\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Galat meluncurkan perintah ā%sā untuk mengekstrak buku komik: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Perintah ā%sā gagal mengekstrak buku komik." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Perintah ā%sā tidak berakhir secara normal." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Bukan jenis MIME buku komik: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Tidak menemukan perintah yang sesuai untuk mengekstrak jenis buku komik ini" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Jenis MIME Tidak Dikenal" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Berkas telah rusak" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Tidak ada berkas dalam arsip" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Tidak menemukan gambar dalam arsip %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Galat sewaktu menghapus ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Galat %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Buku Komik" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Format dokumen DjVu salah" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokumen ini terdiri atas sejumlah berkas. Satu atau lebih berkas tersebu " +"tidak dapat diakses." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Dokumen DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Format dokumen DVI salah" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dokumen DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Karya ini adalah Domain Publik" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ya" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Tidak" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Jenis 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Jenis 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Jenis 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Jenis 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Jenis 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Jenis fonta tidak dikenal" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Tidak ada nama" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subset yang ditempelkan" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ditempelkan" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Tidak ditempelkan" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dokumen PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Dokumen tidak sah" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Salindia Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Tidak ada galat" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Memori tidak cukup" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Tidak menemukan tanda tangan ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Berkas ZIP tidak sah" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Multiberkas ZIP tidak didukung" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Tidak dapat membuka berkas" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Data berkas tidak dapat dibaca" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Tidak menemukan berkas dalam arsip ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Galat tak dikenal" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Gagal memuat dokumen ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Gagal menyimpan dokumen \"%s\"" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dokumen PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Tidak dapat menyimpan lampiran ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Tidak dapat membuka lampiran ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Tidak dapat membuka lampiran ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Jenis berkas %s (%s) tidak didukung" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Semua Dokumen" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Semua Berkas" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Gagal membuat berkas temporer: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Gagal membuat direktori temporer: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ini bukan berkas .desktop yang sah" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Berkas desktop Versi '%s' tak dikenal" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Memulai %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikasi tidak menerima dokumen pada baris perintah" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opsi peluncuran tak dikenal: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Tidak dapat melewatkan URI dokumen pada entri desktop 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Bukan objek yang dapat dieksekusi" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Menonaktifkan koneksi ke manajer sesi" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Menentukan berkas yang memuat konfigurasi" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "BERKAS" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Menentukan ID manajemen sesi" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opsi manajemen sesi:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Menampilkan opsi manajemen sesi" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Menampilkan ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Pin_dahkan Bilah Alat" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Memindahkan item yang dipilih pada bilah alat" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Hapus da_ri Bilah Alat" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Membuang item yang dipilih dari bilah alat" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Hapus Bilah Alat" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Menghapus bilah alat yang dipilih" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Pemisah" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5757 +msgid "Best Fit" +msgstr "Sehalaman Penuh" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Selebar Halaman" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4550 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Penampil Dokumen" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Melihat dokumen multihalaman" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Timpa restriksi dokumen" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Menimpa restriksi dokumen, seperti larangan untuk menyalin atau menceta." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Hapus berkas temporer" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Cetak berkas pengaturan" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Penampil Dokumen MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3181 +msgid "Failed to print document" +msgstr "Gagal mencetak dokumen" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Pencetak '%s' yang dipilih tidak ditemukan" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5472 +msgid "_Previous Page" +msgstr "Halaman _Sebelumnya" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5473 +msgid "Go to the previous page" +msgstr "Halaman sebelumnya" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5475 +msgid "_Next Page" +msgstr "Halama_n Selanjutnya" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5476 +msgid "Go to the next page" +msgstr "Halaman selanjutnya" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5459 +msgid "Enlarge the document" +msgstr "Memperbesar tampilan dokumen" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5462 +msgid "Shrink the document" +msgstr "Memperkecil tampilan dokumen" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Cetak" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5428 +msgid "Print this document" +msgstr "Mencetak dokumen ini" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5574 +msgid "_Best Fit" +msgstr "Sehalaman Penuh" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5575 +msgid "Make the current document fill the window" +msgstr "Menyesuaikan dokumen dengan jendela" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5577 +msgid "Fit Page _Width" +msgstr "Selebar _Halaman" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5578 +msgid "Make the current document fill the window width" +msgstr "Menyesuaikan dokumen hingga memenuhi lebar jendela" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5679 +msgid "Page" +msgstr "Halaman" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5680 +msgid "Select Page" +msgstr "Memilih Halaman" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokumen" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Judul:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Lokasi:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Subjek:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Penulis:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Kata Kunci:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produsen:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Pembuat:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Dibuat:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Diubah:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Jumlah Halaman:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Teroptimasi:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Keamanan:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Ukuran Kertas:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Nihil" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inci" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Tegak (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Tumbang (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d dari %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "dari %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Memuatā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Bersiap mencetak..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Menyelesaikan..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Mencetak halaman %d dari %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Pencetak ini tidak dapat mencetak." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Pemilihan halaman tidak sah" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Peringatan" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Anda memilih jangkauan cetak yang kosong" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Skala Halaman:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Perkecil ke Wilayah Dapat Dicetak" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Paskan ke Wilayah Dapat Dicetak" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Skalakan halaman dokumen agar pas dengan halaman pencetak yang dipilih. " +"Pilih satu dari berikut:\n" +"\n" +"ā¢ \"None\" (Tak Satupun): Tidak dilakukan penskalaan halaman.\n" +"\n" +"ā¢ \"Shrink to Printable Area\" (Perkecil ke Wilayah Dapat Dicetak): Halaman-" +"halaman dokumen yang lebih besar daripada wilayah yang dapat dicetak akan " +"diperkecil agar pas dengan wilayah yang dapat dicetak dari halaman " +"pencetak.\n" +"\n" +"ā¢ \"Fit to Printable Area\" (Paskan ke Wilayah Dapat Dicetak): Halaman-" +"halaman dokumen diperbesar atau diperkecil seperlunya agar pas dengan " +"wilayah yang dapat dicetak dari halaman pencetak.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Otomatis Putar dan ke Tengah" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Putar orientasi halaman pencetak dari setiap halaman agar cocok dengan " +"orientasi setiap halaman dokumen. Halaman dokumen akan diletakkan di tengah " +"halaman pencetak." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Memilih ukuran halaman sesuai ukuran halaman dokumen" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Bila diaktifkan, setiap halaman akan dicetak dengan ukuran kertas seperti " +"halaman dokumen." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Penanganan Halaman" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Gagal mencetak halaman %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Gulung Naik" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Gulung Turun" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Gulung Tampilan Naik" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Gulung Tampilan Turun" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Tampilan Dokumen" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Ke halaman:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Akhir presentasi. Klik untuk keluar." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Menuju halaman pertama" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Menuju halaman sebelumnya" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Menuju halaman selanjutnya" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Menuju halaman terakhir" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ke halaman" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Cari" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Menuju halaman %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Menuju %s pada berkas ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Menuju berkas ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Luncurkan %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Cari:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5445 +msgid "Find Pre_vious" +msgstr "Cari _Sebelumnya" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Menuju string yang ditemukan sebelumnya" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5443 +msgid "Find Ne_xt" +msgstr "_Cari Selanjutnya" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Menuju string yang ditemukan sebelumnya" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Sesuai Bes_ar/Kecil Huruf" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Mencari dengan menyesuaikan besar atau kecilnya huruf" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Catatan" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Komentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Kunci" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Bantuan" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Paragraf Baru" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragraf" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Sisipkan" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Silang" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Lingkaran" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Tidak diketahui" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Preperti Anotasi" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Warna:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Gaya:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparan" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Legap" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Keadaan awal jendela:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Buka" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Tutup" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Berjalan dalam mode presentasi" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Sandi untuk dokumen %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Mengonversi %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d dari %d dokumen telah dikonversi" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Mengonversi metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Bentuk metadata yang dipakai oleh Evince telah berubah, sehingga perlu " +"dimigrasikan. Bila migrasi dibatalkan maka penyimpanan metadata tak akan " +"bekerja." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Membuka dokumen yang akhir-akhir ini dipakai" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Dokumen ini dalam keadaan terkunci dan harus dibuka dengan sandi." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "B_uka Kunci Dokumen" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Masukkan sandi" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Memerlukan sandi" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumen \"%s\" dalam keadaan terkunci dan harus dibuka dengan sandi." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Sandi:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Lupakan sandi seket_ika" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Ingat sandi sampai Anda _log keluar" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Ingat sela_manya" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Properti" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Umum" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Fonta" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Lisensi Dokumen" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Fonta" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Mengumpulkan informasi fonta... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Persyaratan penggunaan" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Lisensi Teks" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Informasi Lebih Lanjut" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Daftar" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Anotasi" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Teks" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Tambah anotasi teks" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Tambah" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokumen tak memuat anotasi" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Halaman %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Lampiran" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lapisan" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Cetak..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniatur" + +#: ../shell/ev-window.c:874 +#, c-format +msgid "Page %s ā %s" +msgstr "Halaman %s ā %s" + +#: ../shell/ev-window.c:876 +#, c-format +msgid "Page %s" +msgstr "Halaman %s" + +#: ../shell/ev-window.c:1435 +msgid "The document contains no pages" +msgstr "Dokumen tak memuat halaman" + +#: ../shell/ev-window.c:1438 +msgid "The document contains only empty pages" +msgstr "Dokumen hanya memuat halaman kosong" + +#: ../shell/ev-window.c:1640 ../shell/ev-window.c:1806 +msgid "Unable to open document" +msgstr "Tidak dapat membuka dokumen" + +#: ../shell/ev-window.c:1777 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Memuat dokumen dari ā%sā" + +#: ../shell/ev-window.c:1919 ../shell/ev-window.c:2198 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Mengunduh dokumen (%d%%)" + +#: ../shell/ev-window.c:1952 +msgid "Failed to load remote file." +msgstr "Gagal memuat berkas jauh." + +#: ../shell/ev-window.c:2142 +#, c-format +msgid "Reloading document from %s" +msgstr "Memuat ulang dokumen dari %s" + +#: ../shell/ev-window.c:2174 +msgid "Failed to reload document." +msgstr "Gagal memuat ulang dokumen." + +#: ../shell/ev-window.c:2329 +msgid "Open Document" +msgstr "Buka Dokumen" + +#: ../shell/ev-window.c:2627 +#, c-format +msgid "Saving document to %s" +msgstr "Menyimpan dokumen ke %s" + +#: ../shell/ev-window.c:2630 +#, c-format +msgid "Saving attachment to %s" +msgstr "Menyimpan lampiran ke %s" + +#: ../shell/ev-window.c:2633 +#, c-format +msgid "Saving image to %s" +msgstr "Menyimpan gambar ke %s" + +#: ../shell/ev-window.c:2677 ../shell/ev-window.c:2777 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Berkas tidak dapat disimpan sebagai ā%sā." + +#: ../shell/ev-window.c:2708 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Mengunggah dokumen (%d%%)" + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Mengunggah lampiran (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Mengunggah gambar (%d%%)" + +#: ../shell/ev-window.c:2840 +msgid "Save a Copy" +msgstr "Simpan Salinan" + +#: ../shell/ev-window.c:3125 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d tugas tertunda di antrian" + +#: ../shell/ev-window.c:3238 +#, c-format +msgid "Printing job ā%sā" +msgstr "Tugas mencetak ā%sā" + +#: ../shell/ev-window.c:3416 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokumen memuat ruas blanko yang telah diisi. Bila Anda tidak menyimpan " +"salinan, perubahan akan hilang seterusnya." + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokumen memuat anotasi baru atau yang diubah. Bila Anda tidak menyimpan " +"salinan, perubahan akan hilang seterusnya." + +#: ../shell/ev-window.c:3427 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Simpan salinan dokumen \"%s\" sebelum menutup?" + +#: ../shell/ev-window.c:3446 +msgid "Close _without Saving" +msgstr "Tutup _tanpa Menyimpan" + +#: ../shell/ev-window.c:3450 +msgid "Save a _Copy" +msgstr "Simpan _Salinan" + +#: ../shell/ev-window.c:3524 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Tunggu sampai tugas pencetakan \"%s\" selesai sebelum menutup?" + +#: ../shell/ev-window.c:3527 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Ada %d tugas pencetakan aktif. Tunggu sampai pencetakan selesai sebelum " +"menutup?" + +#: ../shell/ev-window.c:3539 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Bila Anda menutup jendela, tugas cetak yang ditunda tak akan dicetak." + +#: ../shell/ev-window.c:3543 +msgid "Cancel _print and Close" +msgstr "Batal _Mencetak dan Keluar" + +#: ../shell/ev-window.c:3547 +msgid "Close _after Printing" +msgstr "Tutup setel_ah Mencetak" + +#: ../shell/ev-window.c:4167 +msgid "Toolbar Editor" +msgstr "Penyunting Bilah Alat" + +#: ../shell/ev-window.c:4334 +msgid "There was an error displaying help" +msgstr "Terjadi galat sewaktu menampilkan bantuan" + +#: ../shell/ev-window.c:4546 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Penampil Dokumen.\n" +"Menggunakan %s (%s)" + +#: ../shell/ev-window.c:4577 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince adalah perangkat lunak bebas; Anda dapat mendistribusikan ulang dan/" +"atau mengubahnya di bawah ketentuan GNU General Public License sebagaimana " +"dipublikasikan oleh Free Software Foundation; Lisensi versi 2, atau (sesuai " +"pilihan Anda) menggunakan versi selanjutnya.\n" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince didistribusikan dengan harapan dapat berguna, tetapi TANPA ADANYA " +"JAMINAN; termasuk tanpa jaminan DAYA JUAL atau KELAIKAN UNTUK TUJUAN " +"TERTENTU. Lihat GNU General Public License untuk rincian lebih lanjut.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Anda seharusnya menerima salinan dari GNU General Public License bersama " +"Evince; jika tidak, kirimkan surat Anda ke Free Software Foundation, Inc., " +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#: ../shell/ev-window.c:4610 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4613 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Para penulis Evince" + +#: ../shell/ev-window.c:4619 +msgid "translator-credits" +msgstr "" +"Mohammad DAMT <mdamt@gnome.org>.\n" +"Ahmad Riza H Nst <rizahnst@gnome.org>.\n" +"Andika Triwidada <andika@gmail.com>, 2009, 2010.\n" +"Dirgita <dirgitadevina@yahoo.co.id>, 2010." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4885 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ditemukan %d pada halaman ini" + +#: ../shell/ev-window.c:4890 +msgid "Not found" +msgstr "Tak ditemukan" + +#: ../shell/ev-window.c:4896 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% lagi dalam pencarian" + +#: ../shell/ev-window.c:5411 +msgid "_File" +msgstr "_Berkas" + +#: ../shell/ev-window.c:5412 +msgid "_Edit" +msgstr "_Sunting" + +#: ../shell/ev-window.c:5413 +msgid "_View" +msgstr "_Tampilan" + +#: ../shell/ev-window.c:5414 +msgid "_Go" +msgstr "_Ke" + +#: ../shell/ev-window.c:5415 +msgid "_Help" +msgstr "Ba_ntuan" + +#. File menu +#: ../shell/ev-window.c:5418 ../shell/ev-window.c:5719 +msgid "_Openā¦" +msgstr "_Bukaā¦" + +#: ../shell/ev-window.c:5419 ../shell/ev-window.c:5720 +msgid "Open an existing document" +msgstr "Membuka dokumen" + +#: ../shell/ev-window.c:5421 +msgid "Op_en a Copy" +msgstr "_Buka Salinan" + +#: ../shell/ev-window.c:5422 +msgid "Open a copy of the current document in a new window" +msgstr "Membuka salinan dokumen yang sedang aktif pada jendela baru" + +#: ../shell/ev-window.c:5424 +msgid "_Save a Copyā¦" +msgstr "_Simpan Salinanā¦" + +#: ../shell/ev-window.c:5425 +msgid "Save a copy of the current document" +msgstr "Menyimpan salinan dokumen yang sedang aktif" + +#: ../shell/ev-window.c:5427 +msgid "_Printā¦" +msgstr "_Cetakā¦" + +#: ../shell/ev-window.c:5430 +msgid "P_roperties" +msgstr "P_roperti" + +#: ../shell/ev-window.c:5438 +msgid "Select _All" +msgstr "Pilih Semu_a" + +#: ../shell/ev-window.c:5440 +msgid "_Findā¦" +msgstr "_Cariā¦" + +#: ../shell/ev-window.c:5441 +msgid "Find a word or phrase in the document" +msgstr "Mencari kata atau frasa dalam dokumen" + +#: ../shell/ev-window.c:5447 +msgid "T_oolbar" +msgstr "_Bilah Alat" + +#: ../shell/ev-window.c:5449 +msgid "Rotate _Left" +msgstr "Putar _Kiri" + +#: ../shell/ev-window.c:5451 +msgid "Rotate _Right" +msgstr "_Putar Kanan" + +#: ../shell/ev-window.c:5453 +msgid "Save Current Settings as _Default" +msgstr "Simpan Setelan Kini sebagai _Bawaan" + +#: ../shell/ev-window.c:5464 +msgid "_Reload" +msgstr "_Muat Ulang" + +#: ../shell/ev-window.c:5465 +msgid "Reload the document" +msgstr "Memuat ulang dokumen" + +#: ../shell/ev-window.c:5468 +msgid "Auto_scroll" +msgstr "Menggulung Otomati_s" + +#: ../shell/ev-window.c:5478 +msgid "_First Page" +msgstr "Halaman _Pertama" + +#: ../shell/ev-window.c:5479 +msgid "Go to the first page" +msgstr "Menuju halaman pertama" + +#: ../shell/ev-window.c:5481 +msgid "_Last Page" +msgstr "Halaman _Terakhir" + +#: ../shell/ev-window.c:5482 +msgid "Go to the last page" +msgstr "Menuju halaman terakhir" + +#. Help menu +#: ../shell/ev-window.c:5486 +msgid "_Contents" +msgstr "_Isi" + +#: ../shell/ev-window.c:5489 +msgid "_About" +msgstr "Tent_ang" + +#. Toolbar-only +#: ../shell/ev-window.c:5493 +msgid "Leave Fullscreen" +msgstr "Keluar dari Layar Penuh" + +#: ../shell/ev-window.c:5494 +msgid "Leave fullscreen mode" +msgstr "Meninggalkan mode layar penuh" + +#: ../shell/ev-window.c:5496 +msgid "Start Presentation" +msgstr "Mulai Presentasi" + +#: ../shell/ev-window.c:5497 +msgid "Start a presentation" +msgstr "Memulai presentasi" + +#. View Menu +#: ../shell/ev-window.c:5556 +msgid "_Toolbar" +msgstr "Bilah Ala_t" + +#: ../shell/ev-window.c:5557 +msgid "Show or hide the toolbar" +msgstr "Menampilkan atau menyembunyikan bilah alat" + +#: ../shell/ev-window.c:5559 +msgid "Side _Pane" +msgstr "_Panel Samping" + +#: ../shell/ev-window.c:5560 +msgid "Show or hide the side pane" +msgstr "Menampilkan atau menyembunyikan panel samping" + +#: ../shell/ev-window.c:5562 +msgid "_Continuous" +msgstr "Berkelanju_tan" + +#: ../shell/ev-window.c:5563 +msgid "Show the entire document" +msgstr "Menampilkan seluruh isi dokumen" + +#: ../shell/ev-window.c:5565 +msgid "_Dual" +msgstr "Gan_da" + +#: ../shell/ev-window.c:5566 +msgid "Show two pages at once" +msgstr "Menampilkan dua halaman sekaligus" + +#: ../shell/ev-window.c:5568 +msgid "_Fullscreen" +msgstr "Layar _Penuh" + +#: ../shell/ev-window.c:5569 +msgid "Expand the window to fill the screen" +msgstr "Membuka jendela hingga memenuhi layar" + +#: ../shell/ev-window.c:5571 +msgid "Pre_sentation" +msgstr "Pre_sentasi" + +#: ../shell/ev-window.c:5572 +msgid "Run document as a presentation" +msgstr "Jalankan dokumen sebagai suatu presentasi" + +#: ../shell/ev-window.c:5580 +msgid "_Inverted Colors" +msgstr "Warna Terbal_ik" + +#: ../shell/ev-window.c:5581 +msgid "Show page contents with the colors inverted" +msgstr "Menampilkan isi halaman dengan warna yang terbalik" + +#. Links +#: ../shell/ev-window.c:5589 +msgid "_Open Link" +msgstr "_Buka Taut" + +#: ../shell/ev-window.c:5591 +msgid "_Go To" +msgstr "_Ke" + +#: ../shell/ev-window.c:5593 +msgid "Open in New _Window" +msgstr "Buka di Jendela _Baru" + +#: ../shell/ev-window.c:5595 +msgid "_Copy Link Address" +msgstr "Salin _Alamat Taut" + +#: ../shell/ev-window.c:5597 +msgid "_Save Image Asā¦" +msgstr "_Simpan Gambar Sebagaiā¦" + +#: ../shell/ev-window.c:5599 +msgid "Copy _Image" +msgstr "Sal_in Gambar" + +#: ../shell/ev-window.c:5601 +msgid "Annotation Propertiesā¦" +msgstr "Properti Anotasiā¦" + +#: ../shell/ev-window.c:5606 +msgid "_Open Attachment" +msgstr "_Buka Lampiran" + +#: ../shell/ev-window.c:5608 +msgid "_Save Attachment Asā¦" +msgstr "_Simpan Lampiran Sebagaiā¦" + +#: ../shell/ev-window.c:5693 +msgid "Zoom" +msgstr "Zum" + +#: ../shell/ev-window.c:5695 +msgid "Adjust the zoom level" +msgstr "Atur tingkat perbesaran" + +#: ../shell/ev-window.c:5705 +msgid "Navigation" +msgstr "Navigasi" + +#: ../shell/ev-window.c:5707 +msgid "Back" +msgstr "Mundur" + +#. translators: this is the history action +#: ../shell/ev-window.c:5710 +msgid "Move across visited pages" +msgstr "Pindahkan melintasi halaman yang telah dikunjungi" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5740 +msgid "Previous" +msgstr "Sebelumnya" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Next" +msgstr "Selanjutnya" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Zoom In" +msgstr "Perbesar Tampilan" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom Out" +msgstr "Perkecil Tampilan" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5761 +msgid "Fit Width" +msgstr "Selebar Halaman" + +#: ../shell/ev-window.c:5906 ../shell/ev-window.c:5923 +msgid "Unable to launch external application." +msgstr "Tidak dapat meluncurkan aplikasi luar" + +#: ../shell/ev-window.c:5980 +msgid "Unable to open external link" +msgstr "Tidak dapat membuka taut luar" + +#: ../shell/ev-window.c:6147 +msgid "Couldn't find appropriate format to save image" +msgstr "Tidak menemukan format yang cocok untuk menyimpan gambar" + +#: ../shell/ev-window.c:6189 +msgid "The image could not be saved." +msgstr "Gambar tidak dapat disimpan." + +#: ../shell/ev-window.c:6221 +msgid "Save Image" +msgstr "Simpan Gambar" + +#: ../shell/ev-window.c:6349 +msgid "Unable to open attachment" +msgstr "Tidak dapat membuka lampiran" + +#: ../shell/ev-window.c:6402 +msgid "The attachment could not be saved." +msgstr "Lampiran tidak dapat disimpan." + +#: ../shell/ev-window.c:6447 +msgid "Save Attachment" +msgstr "Simpan Lampiran" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Memerlukan Sandi" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Berdasarkan ekstensi" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Penampil Dokumen MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Label halaman dari dokumen yang ingin ditampilkan." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "HALAMAN" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Nomor halaman dari dokumen yang ingin ditampilkan." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NOMOR" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Menjalankan evince dalam mode layar penuh" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Menjalankan evince dalam mode presentasi" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Menjalankan evince sebagai pemratinjau" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Kata atau frasa yang akan dicari dalam dokumen" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[BERKASā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opsi yang tersedia: \"true\" akan mengaktifkan pembuatan miniatur dan \"false" +"\" akan menonaktifkannya" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Mengaktifkan miniaturisasi Dokumen PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Perintah pembuatan miniatur untuk Dokumen PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Perintah yang sah ditambah argumen untuk pembuat miniatur Dokumen PDF. " +"Lihatlah dokumentasi pembuat miniatur Caja untuk keterangan lebih lanjut." diff --git a/po/it.po b/po/it.po new file mode 100644 index 00000000..40c63785 --- /dev/null +++ b/po/it.po @@ -0,0 +1,1742 @@ +# Italian translations of Evince package. +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 the Evince'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Evince package. +# Francesco Marletta <francesco.marletta@tiscali.it>, 2005, 2006, 2007, 2008, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince 2.32\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-20 12:57+0000\n" +"PO-Revision-Date: 2010-09-20 15:27+0200\n" +"Last-Translator: Francesco Marletta <francesco.marletta@tiscali.it>\n" +"Language-Team: Italian <tp@lists.linux.it>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Errore nel lanciare il comando \"%s\" per decomprimere il fumetto: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Il comando \"%s\" non ĆØ stato in grado di decomprimere il fumetto." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Il comando \"%s\" non ĆØ terminato normalmente." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Non ĆØ un tipo MIME di fumetti: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Impossibile trovare un comando appropriato per decomprimere questo tipo di " +"fumetto" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipo MIME sconosciuto" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "File danneggiato" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nessun file nell'archivio" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nessuna immagine trovata nell'archivio %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Si ĆØ verificato un errore nell'eliminare \"%s\"." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Errore %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Fumetti" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Il documento DjVu ha un formato non corretto" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Il documento ĆØ composto da diversi file. Non ĆØ possibile accedere a uno o " +"piĆ¹ di tali file." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documenti DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Il documento DVI ha un formato non corretto" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documenti DVI" + +# [NdT] ho messo di proposito le iniziali maiuscole +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Questo lavoro ĆØ nel Pubblico Dominio" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "SƬ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "No" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipo di carattere sconosciuto" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Nessun nome" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Sottoinsieme incorporato" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Incorporato" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Non incorporato" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documenti PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documento non valido" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Presentazioni Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Nessun errore" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Memoria non sufficiente" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Impossibile trovare la firma ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "File ZIP non valido" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "I file ZIP multipli non sono supportati" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Impossibile aprire il file" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Impossibile leggere i dati dal file" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Impossibile trovare il file nell'archivio ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Errore sconosciuto" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Caricamento del documento \"%s\" fallito" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Salvataggio del documento \"%s\" fallito" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documenti PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Impossibile salvare l'allegato \"%s\": %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Impossibile aprire l'allegato \"%s\": %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Impossibile aprire l'allegato \"%s\"" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Il tipo di file %s (%s) non ĆØ supportato" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Tutti i documenti" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Tutti i file" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Fallimento nel creare un file temporaneo: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Fallimento nel creare una directory temporanea: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Il file non ĆØ un file .desktop valido" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Versione \"%s\" del file .desktop non riconosciuta" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Avvio di %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'applicazione non accetta documenti sulla riga di comando" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opzione di lancio non riconosciuta: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossibile passare URI di documenti a un elemento desktop con \"Type=Link\"" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Non ĆØ un oggetto lanciabile" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Disabilita la connessione al gestore sessioni" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Specifica il file contenente la configurazione salvata" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Specifica l'ID di gestione della sessione" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opzioni di gestione sessione:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostra le opzioni di gestione della sessione" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostra \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Muovi nella barra strumenti" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Muove l'elemento selezionato nella barra strumenti" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Rimuovi dalla barra strumenti" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Rimuove l'elemento selezionato dalla barra strumenti" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Elimina barra strumenti" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Rimuove la barra strumenti selezionata" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separatore" + +# NdT: ĆØ l'etichetta del pulsante per adattare alla pagina e per +# uniformitĆ con quanto giĆ fatto con GGV ho messo "Pagina" +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Pagina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Larghezza" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visualizzatore documenti" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visualizza documenti multi-pagina" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Scavalca restrizioni documento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Scavalca le restrizioni del documento, come la restrizione di copiare o di " +"stampare." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Elimina il file temporaneo" + +# [NdT] oppure "Stampa il file con le impostazioni" ?? +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "File con impostazioni di stampa" + +# [NdT] Lascio visualizzatore anche per Previewer +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Anteprima documenti di MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "Stampa del documento fallita" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "La stampante selezionata \"%s\" non puĆ² essere trovata" + +# acceleratore come da linee guida +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "Pagina pr_ecedente" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Va alla pagina precedente" + +# acceleratore come da linee guida +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "Pagina s_uccessiva" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Va alla pagina successiva" + +# [NdT] ho preferito cosƬ ad "Allarga", si abbina meglio con il mess dopo, +# nel quale non mi andava di mettere "stringe" (anche se ĆØ la +# traduzione di shrink) +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Ingrandisce il documento" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Rimpicciolisce il documento" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Stampa" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Stampa questo documento" + +# NdT: ĆØ l'etichetta del pulsante per adattare alla pagina e per +# uniformitĆ con quanto giĆ fatto con GGV ho messo "Pagina" +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "_Adatta alla pagina" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Porta il documento attuale a riempire la finestra" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "Adatta alla _larghezza" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Porta il documento attuale a riempire la finestra in larghezza" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Pagina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "Seleziona la pagina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titolo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Posizione:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Oggetto:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autore:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Parole chiave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produttore:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Creatore:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creato il:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificato il:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Numero di pagine:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Ottimizzato:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Sicurezza:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Dimensione carta:" + +# [NdT] si riferisce a "Sicurezza" +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Nessuna" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +# [NdT] qui siamo stati precursori :-) +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f pollici" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, verticale (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, orizzontale (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d di %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "di %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Caricamentoā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Preparazione alla stampaā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Chiusuraā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Stampa della pagina %d di %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "La stampa su questa stampante non ĆØ supportata." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Selezione di pagine non valida" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Attenzione" + +# [NdT] qui c'ĆØ stata solo una correzione marginale nell'originale +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "L'intervallo di stampa selezionato non contiene alcuna pagina" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Scala pagina:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Riduci all'area stampabile" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Adatta all'area stampabile" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Scala le pagine del documento fino a riempire l'area di stampa selezionata. " +"Selezionare uno dei seguenti:\n" +"\n" +"ā¢ \"Nessuna\": non viene eseguita alcuna scalatura della pagina.\n" +"\n" +"ā¢ \"Riduci all'area stampabile\": le pagine del documento piĆ¹ grandi " +"dell'area di stampa sono ridotte per riempire l'area stampabile della pagina " +"di stampa.\n" +"\n" +"ā¢ \"Adatta all'area stampabile\": le pagine del documento sono ingrandite o " +"ridotte alla bisogna per riempire l'area stampabile della pagina di stampa.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Ruotare e centrare automaticamente" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Ruota l'orientamento della pagina di stampa per farlo corrispondere " +"all'orientamento di ogni pagina del documento. Le pagine del documento " +"verranno centrate nella pagina di stampa." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" +"Selezionare la dimensione della pagina usando la dimensione della pagina del " +"documento" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Quando abilitata, ogni pagina verrĆ stampata usando la stessa dimensione " +"della pagina nel documento." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Gestione pagina" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Fallita la stampa della pagina %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Scorri su" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Scorri giĆ¹" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Scorre la vista in su" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Scorre la vista in giĆ¹" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Vista documento" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Salta alla pagina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fine della presentazione. Fare clic per uscire." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Va alla prima pagina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Va alla pagina precedente" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Va alla pagina successiva" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Va all'ultima pagina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Va alla pagina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Trova" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Va a pagina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Va a %s nel file \"%s\"" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Va al file \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Lancia %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Trova:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "Trova pr_ecedente" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Trova la precedente occorrenza della stringa di ricerca" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "Trova s_uccessivo" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Trova la successiva occorrenza della stringa di ricerca" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "M_aiuscole/minuscole" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Commuta la ricerca sensibile alle maiuscole" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Icona:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Nota" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Commento" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Chiave" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Aiuto" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nuovo paragrafo" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragrafo" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Inserisci" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Croce" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Cerchio" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Sconosciuto" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ProprietĆ annotazione" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Colore:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stile:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Trasparente" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaco" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Stato iniziale della finestra:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Apri" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Chiudi" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Esecuzione in modalitĆ presentazione" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Password per il documento %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Conversione di %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d documenti su %d convertiti" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Conversione dei metadati" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Il formato dei metadati usati da Evince ĆØ cambiato, per cui ĆØ necessario " +"migrare i quelli esistenti. Se la migrazione viene annullata, la " +"memorizzazione dei metadati non funzionerĆ ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Apre un documento usato di recente" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Questo documento ĆØ bloccato e puĆ² essere letto solo inserendo la password " +"corretta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Sblocca documento" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Inserire password" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Password richiesta" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Il documento \"%s\" ĆØ bloccato e richiede una password per essere aperto." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "Pass_word:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Dimentica la password _immediatamente" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Ricorda la password fino al _termine della sessione" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Ricorda per _sempre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ProprietĆ " + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Generale" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Tipi di carattere" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licenza del documento" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Tipo di carattere" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Raccolta informazioni sul tipo di carattereā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Termini d'uso" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Testo della licenza" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Ulteriori informazioni" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Elenco" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Annotazioni" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Testo" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Aggiunge un'annotazione testuale" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Aggiungi" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Il documento non contiene annotazioni" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Pagina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Allegati" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Livelli" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Stampaā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indice" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniature" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Pagina %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Il documento non contiene pagine" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Il documento contiene solo pagine vuote" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Impossibile aprire il documento" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Caricamento del documento da \"%s\"" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Scaricamento del documento (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Fallimento nel caricare il file remoto." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Aggiornamento del documento da %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Fallimento nell'aggiornare il documento." + +# titolo di dialogo +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Apri documento" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Salvataggio del documento in %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Salvataggio dell'allegato in %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Salvataggio dell'immagine in %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Il file non puĆ² essere salvato come \"%s\"." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Caricamento documento (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Caricamento allegato (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Caricamento immagine (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Salva una copia" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d lavoro in attesa di essere stampato" +msgstr[1] "%d lavori in attesa di essere stampati" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Stampa del lavoro \"%s\"" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Il documento contiene dei campi che sono stati compilati. Se non si salva " +"una copia del documento, le modifiche verranno persi per sempre." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Il documento contiene annotazioni nuove o modificate. Se non si salva una " +"copia del documento, le modifiche verranno persi per sempre." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Salvare una copia del documento \"%s\" prima della chiusura?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Chiudi senza sal_vare" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Salva una _copia" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Attendere la fine del lavoro di stampa \"%s\" prima di chiudere?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Ci sono %d lavori di stampa attivi. Attendere la fine delle stampe prima di " +"chiudere?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Chiudendo la finestra, i lavori di stampa in attesa non verranno stampati." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "Annulla stam_pa e chiudi" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "Chiudi _dopo la stampa" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Modifica barra strumenti" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "Si ĆØ verificato un errore durante la visualizzazione della guida" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualizzatore documenti.\n" +"Utilizza %s (%s)." + +# [ndT] ho cambiato apposta la punteggiatura +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ĆØ software libero: ĆØ possibile redistribuirlo o modificarlo sotto i " +"termini della licenza GNU GPL, pubblicata dalla Free Software Foundation, " +"versione 2 o (a propria scelta) successiva.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ĆØ distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA, " +"senza neppure l'implicita garanzia di COMMERCIABILITĆ o IDONEITĆ A UNO SCOPO " +"PARTICOLARE. Consultare la licenza GNU GPL per maggiori dettagli.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Insieme a Evince dovrebbe essere stata fornita anche una copia della licenza " +"GNU GPL, in caso contrario ĆØ possibile richiederla scrivendo a: Free " +"Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-" +"1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 gli autori di Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "Francesco Marletta, <francesco.marletta@tiscali.it>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d corrispondenza in questa pagina" +msgstr[1] "%d corrispondenze in questa pagina" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Non trovata" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% rimanente da cercare" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_File" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Modifica" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Visualizza" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "V_ai" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "A_iuto" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Apriā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Apre un documento esistente" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "Apri una c_opia" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Apre una copia del documento attuale in una nuova finestra" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_Salva una copiaā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Salva una copia del documento attuale" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "Stam_paā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "Pr_oprietĆ " + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "_Seleziona tutto" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "Tr_ovaā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Trova una parola o frase nel documento" + +# Questo ĆØ quello che appare in Modifica +# cambiato acceleratore per collisione (Seleziona tutto) +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "_Barra degli strumenti" + +# cambiato acceleratore per collision +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "_Ruota a sinistra" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "Ruota a _destra" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Salva impostazioni attuali come _predefinite" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_Ricarica" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Ricarica il documento" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "Scorrimento _automatico" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "P_rima pagina" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Va alla prima pagina" + +# acceleratore come da linee guida +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "U_ltima pagina" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Va all'ultima pagina" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Sommario" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "I_nformazioni" + +# [NdT] come in epiphany +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "Finestra normale" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Esce dalla modalitĆ a schermo intero" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "Avvia presentazione" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "Avvia una presentazione" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "Barra degli _strumenti" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "Mostra o nasconde la barra degli strumenti" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "Riquadro _laterale" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "Mostra o nasconde il riquadro laterale" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_Continuo" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "Mostra tutto il documento" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_Duale" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "Mostra due pagine alla volta" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "Schermo _intero" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Espande la finestra fino a riempire lo schermo" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "_Presentazione" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "Mostra il documento come una presentazione" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "Colori _invertiti" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "Mostra i contenuti delle pagine con i colori invertiti" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_Apri collegamento" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "V_ai a" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Apri in una nuova _finestra" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_Copia indirizzo collegamento" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_Salva immagine comeā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "Copia _immagine" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "ProprietĆ annotazioneā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_Apri allegato" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_Salva allegato comeā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Ingrandimento" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Regola il livello di ingrandimento" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Navigazione" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Indietro" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Gira tra le pagine visitate" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "Precedente" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Successiva" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Aumenta" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Riduci" + +# NdT: ĆØ l'etichetta del pulsante per adattare alla pagina e per +# uniformitĆ con quanto giĆ fatto con GGV ho messo "Larghezza" +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Larghezza" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "Impossibile lanciare l'applicazione esterna." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "Impossibile aprire il collegamento esterno" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Impossibile trovare un formato appropriato per salvare l'immagine" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "L'immagine non puĆ² essere salvata." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Salva immagine" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "Impossibile aprire l'allegato" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "L'allegato non puĆ² essere salvato." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Salva allegato" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Richiesta password" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Per estensione" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visualizzatore documenti di MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "L'etichetta della pagina del documento da visualizzare." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Il numero di pagina del documento da visualizzare." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMERO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Esegue evince in modalitĆ schermo intero" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Esegue evince in modalitĆ presentazione" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Esegue evince per vedere l'anteprima di stampa" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "La parola o la frase da trovare nel documento" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRINGA" + +# [NdT] lo adeguo, anche se non sono molto d'accordo con gli sviluppatori sull'uso di caratteri unicode nel messaggi a riga di comando. +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opzioni booleane disponibili: \"true\" abilita la creazione delle miniature " +"e \"false\" disabilita la creazione di nuove miniature" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Abilita la miniatura dei documenti PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Comando di miniatura per i documenti PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Un comando valido e gli argomenti per le miniature dei documenti PDF. Per " +"maggiori informazioni consultare la documentazione relativa alle miniature " +"di caja." diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 00000000..263b7e98 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,1739 @@ +# Japanese messages catalogue for evince - PS/PDF viewer for MATE +# Copyright (C) 2005-2010 THE evince's COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Satoru SATOH <ss@mate.gr.jp>, 2005, 2006. +# Takeshi AIHANA <takshi.aihana@gmail.com>, 2005-2009. +# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2009. +# Shushi Kurose <md81bird@hitaki.net>, 2009-2010. +# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-19 16:16+0000\n" +"PO-Revision-Date: 2010-09-05 15:48+0900\n" +"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n" +"Language-Team: Japanese <mate-translation@mate.gr.jp>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"ć³ćććÆćććÆćč§£åććććć³ćć³ć ā%sā ćčµ·åććéć«ćØć©ć¼ćēŗēćć¾ć" +"ć: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ć³ćććÆćććÆć®č§£åäøć«ć³ćć³ć ā%sā ć失ęćć¾ććć" + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ć³ćć³ć ā%sā ćę£åøøć«ēµäŗćć¾ććć§ććć" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ć³ćććÆćććÆć® MIME ćæć¤ćć§ćÆććć¾ćć: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ćć®ćæć¤ćć®ć³ćććÆćććÆćč§£åććć®ć«é©ććć³ćć³ććč¦ć¤ććć¾ćć" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "äøęćŖ MIME ćæć¤ćć§ć" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ćć”ć¤ć«ćå£ćć¦ćć¾ć" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ć¢ć¼ć«ć¤ćć«ćć”ć¤ć«ćå«ć¾ćć¦ćć¾ćć" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ć®ć¢ć¼ć«ć¤ćć«ćÆē»åćÆå«ć¾ćć¦ćć¾ćć" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ć®åé¤äøć«ćØć©ć¼ćēŗēćć¾ććć" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ćØć©ć¼ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ć³ćććÆćććÆ" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ććć„ć”ć³ćć®ęøå¼ćå£ćć¦ćć¾ć" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ćć®ććć„ć”ć³ććÆč¤ę°ć®ćć”ć¤ć«ćēµåćććć®ć§ćććććć®ćć”ć¤ć«ćÆåå„ć«" +"ć¢ćÆć»ć¹ććććØćÆć§ćć¾ććć" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Djvu ććć„ć”ć³ć" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ććć„ć”ć³ćć®ęøå¼ćå£ćć¦ćć¾ć" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ććć„ć”ć³ć" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ćć®ä½åćÆćććŖććÆćć”ć¤ć³ć§ć" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ćÆć" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ććć" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "äøęćŖćć©ć³ćć®ēØ®é”ć§ć" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ååćŖć" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "åćč¾¼ćæć®ćµćć»ćć" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "åćč¾¼ćæ" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "åćč¾¼ćæć§ćÆćŖć" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ććć„ć”ć³ć" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "äøę£ćŖććć„ć”ć³ćć§ć" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ć®ć¹ć©ć¤ć" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ćØć©ć¼ćŖć" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ć”ć¢ćŖćč¶³ćć¾ćć" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ZIP ć®ć·ć°ććć£ćč¦ć¤ććć¾ćć" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "äøę£ćŖ ZIP ćć”ć¤ć«ć§ć" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "č¤ę°ćć”ć¤ć«ć® ZIP ćÆćµćć¼ććć¦ćć¾ćć" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ćć”ć¤ć«ćéćć¾ćć" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ćć”ć¤ć«ćććć¼ćæćčŖćæč¾¼ćć¾ćć" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP ć¢ć¼ć«ć¤ćäøć«ćć”ć¤ć«ćč¦ć¤ććć¾ćć" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "äøęćŖćØć©ć¼" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "\"%s\" ćØććććć„ć”ć³ććčŖćæč¾¼ćć¾ććć§ćć" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "\"%s\" ćØććććć„ć”ć³ććäæåć§ćć¾ććć§ćć" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ććć„ć”ć³ć" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ę·»ä»ćć”ć¤ć« \"%s\" ćäæåć§ćć¾ććć§ćć: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ę·»ä»ćć”ć¤ć« \"%s\" ćéćć¾ććć§ćć: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ę·»ä»ćć”ć¤ć« \"%s\" ćéćć¾ććć§ćć" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ćć”ć¤ć«ćæć¤ć %s (%s) ćÆćµćć¼ććć¦ćć¾ćć" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ćć¹ć¦ć®ććć„ć”ć³ć" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ćć¹ć¦ć®ćć”ć¤ć«" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "äøęćć”ć¤ć«ć®ä½ęć«å¤±ęćć¾ćć: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "äøęćć£ć¬ćÆććŖć®ä½ęć«å¤±ęćć¾ćć: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ćć”ć¤ć«ćÆē”å¹ćŖ .desktop ćć”ć¤ć«ć§ć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "desktop ćć”ć¤ć«ć®ćć¼ćøć§ć³ '%s' ćčŖčć§ćć¾ćć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ć®čµ·åäø" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ć³ćć³ćć©ć¤ć³ććććć„ć”ć³ććęå®ć§ćć¾ćć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "čµ·åćŖćć·ć§ć³ćčŖčć§ćć¾ćć: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ććć„ć”ć³ćć® URI ć 'Type=Link' ćØćć desktop ćØć³ććŖć«ęø”ćć¾ćć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "čµ·åć§ććŖćć¢ć¤ćć ć§ć" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ć»ćć·ć§ć³ć»ććć¼ćøć£ć«ę„ē¶ććŖć" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "čØå®ćäæåććć¦ćććć”ć¤ć«ćęå®ćć" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ć»ćć·ć§ć³ ID ćęå®ćć" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ć»ćć·ć§ć³ē®”ēēØć®ćŖćć·ć§ć³:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ć»ćć·ć§ć³ē®”ēēØć®ćŖćć·ć§ć³ćč”Øē¤ŗćć" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "\"%s\" ć®č”Øē¤ŗ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ćć¼ć«ćć¼äøć§ē§»å(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "éøęććć¢ć¤ćć ććć¼ć«ćć¼äøć§ē§»åćć¾ć" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ćć¼ć«ćć¼ććåé¤(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "éøęććć¢ć¤ćć ććć¼ć«ćć¼ććåé¤ćć¾ć" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ćć¼ć«ćć¼ć®åé¤(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "éøęćććć¼ć«ćć¼ćåé¤ćć¾ć" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ć»ćć¬ć¼ćæ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "å Øä½ć«åććć" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "å¹ ć«åććć" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ććć„ć”ć³ćć»ćć„ć¼ć¢" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "č¤ę°ćć¼ćøć®ććć„ć”ć³ććč”Øē¤ŗćć¾ć" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ććć„ć”ć³ćć®å¶éćäøęøććć¾ć" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ć³ćć¼ćå°å·ćå¶éćććććŖććć„ć”ć³ćć®å¶éćäøęøććć¾ć" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "äøęćć”ć¤ć«ćåé¤" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ććŖć³ćæčØå®ćć”ć¤ć«" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ććć„ć”ć³ćć»ćć¬ćć„ć¼ć¢" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "ććć„ć”ć³ćć®å°å·ć«å¤±ęćć¾ćć" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "éøęććććŖć³ćæ '%s' ćč¦ć¤ććć¾ććć§ćć" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "åć®ćć¼ćø(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "åć®ćć¼ćøć«ē§»åćć¾ć" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "ꬔć®ćć¼ćø(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "ꬔć®ćć¼ćøć«ē§»åćć¾ć" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "ćć®ććć„ć”ć³ććę”大ćć¾ć" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "ćć®ććć„ć”ć³ććēø®å°ćć¾ć" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "å°å·" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "ćć®ććć„ć”ć³ććå°å·ćć¾ć" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "å Øä½ć«åććć(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "ćć®ććć„ć”ć³ćå Øä½ćć¦ć£ć³ćć¦ć«åć¾ćććć«č”Øē¤ŗćć¾ć" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "å¹ ć«åććć(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "ćć®ććć„ć”ć³ćć®å¹ ćć¦ć£ć³ćć¦ć®å¹ ć«åććć¾ć" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "ćć¼ćø" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "ē“ę„ćć¼ćøćęå®ćć¾ć" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ććć„ć”ć³ć" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ćæć¤ćć«:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ćć”ć¤ć«å:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ćµććæć¤ćć«:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ä½č :" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ćć¼ćÆć¼ć:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "PDF ä½ęćć¼ć«:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "PDF ć®ä½ęč :" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ä½ęę„ę:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "å¤ę“ę„ę:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ćć¼ćøę°:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "č”Øē¤ŗć®ęé©å:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ćć©ć¼ććć:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ć»ćć„ćŖćć£:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ćć¼ćøćµć¤ćŗ:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ćŖć" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f ććŖ" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ć¤ć³ć" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s ć®ēø¦ē½®ć (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s ć®ęØŖē½®ć (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "čŖćæč¾¼ćæäøć§ćā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "å°å·ć®ęŗåäøā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ēµäŗäøā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "%d / %d ćå°å·äøā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ćć®ććŖć³ćæć§ćÆå°å·ćÆćµćć¼ćććć¦ćć¾ććć" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ćć¼ćøć®éøęćééć£ć¦ć¾ć" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "č¦å" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "éøęćććå°å·ēÆå²ć«ćć¼ćøćå«ć¾ćć¦ćć¾ćć" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ćć¼ćøć®ę”大ēø®å°:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "å°å·åÆč½ćŖé åć«åććć¦ēø®å°" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "å°å·åÆč½ćŖé åć«åććć" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"éøęćććććŖć³ćæćć¼ćøć«åććć¦ććć„ć”ć³ććć¼ćøćę”大ēø®å°ćć¾ćć仄äøć" +"ć1ć¤éøęćć¦ćć ćć:\n" +"\n" +"ā¢ \"ćŖć\": ćć¼ćøć®ę”大ēø®å°ćÆč”ććć¾ććć\n" +"\n" +"ā¢ \"å°å·åÆč½ćŖé åć«åććć¦ēø®å°\": å°å·åÆč½ćŖé åććććć„ć”ć³ććć¼ćøć大" +"ććŖå “åćÆććŖć³ćæćć¼ćøć®å°å·åÆč½ćŖé åć«åććć¦ēø®å°ćć¾ćć\n" +"\n" +"ā¢ \"å°å·åÆč½ćŖé åć«åććć\": åæ č¦ć«åæćć¦ććŖć³ćæćć¼ćøć®å°å·åÆč½ćŖé åć«" +"åććć¦ććć„ć”ć³ććć¼ćøć®ę”大ć¾ććÆēø®å°ćč”ćŖćć¾ćć\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "čŖååč»¢ćć¦äø央ęć" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"åćć¼ćøć®ććŖć³ćæćć¼ćøę¹åćåč»¢ćć¦åććć„ć”ć³ććć¼ćøć®ę¹åć«åććć¾" +"ććććć„ć”ć³ććć¼ćøćÆććŖć³ćæćć¼ćøå ć®äø央ć«é ē½®ććć¾ćć" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ććć„ć”ć³ćć®ćć¼ćøćµć¤ćŗćå©ēØćć¦ćć¼ćøćµć¤ćŗćéøęćć" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ęå¹ć«ććå “åćåćć¼ćøćÆććć„ć”ć³ććć¼ćøćØåććµć¤ćŗć®ē“ć«å°å·ććć¾ćć" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ćć¼ćøć®åćę±ć" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ćć¼ćøć®å°å·ć«å¤±ęćć¾ćć: %s" + +# ć¢ćÆć·ć§ć³å +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "äøć«ć¹ćÆćć¼ć«ćć" + +# ć¢ćÆć·ć§ć³å +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "äøć«ć¹ćÆćć¼ć«ćć" + +# ć¢ćÆć·ć§ć³čŖ¬ę +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "č”Øē¤ŗćäøć«ć¹ćÆćć¼ć«ćć¾ć" + +# ć¢ćÆć·ć§ć³čŖ¬ę +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "č”Øē¤ŗćäøć«ć¹ćÆćć¼ć«ćć¾ć" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ććć„ć”ć³ćć»ćć„ć¼ć¢" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ē§»åå ć®ćć¼ćø:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³ć®ęå¾ć§ćććÆćŖććÆć§ēµäŗćć¾ćć" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "å é ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "åć®ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ꬔć®ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ęå¾ć®ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ę¤ē“¢" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "%s ćć¼ćøćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ćć”ć¤ć« \"%2$s\" ć® %1$s ćøćøć£ć³ććć¾ć" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ćć”ć¤ć« \"%s\" ćøē§»åćć¾ć" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ć®čµ·å" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ę¤ē“¢:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "åćę¤ē“¢(_V)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ććć„ć”ć³ćć®å é ć«åćć£ć¦ę¤ē“¢ćć¾ć" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "ꬔćę¤ē“¢(_X)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ććć„ć”ć³ćć®ęå¾ć«åćć£ć¦ę¤ē“¢ćć¾ć" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "大å°ęåćåŗå„ćć(_A)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "大å°ęåćåŗå„ćć¦ę¤ē“¢ćć¾ć" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ć¢ć¤ć³ć³:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ćć¼ć" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ć³ć”ć³ć" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "éµ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ćć«ć" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ę°ććꮵč½" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ꮵč½" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ęæå „" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ćÆćć¹" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "å" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "äøę" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ę³Øéć®ććććć£" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "č²:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ć¹ćæć¤ć«:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "éęåŗ¦" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "äøéęåŗ¦" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "åęć¦ć£ć³ćć¦ē¶ę :" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "éć" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "éćć" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³ć»ć¢ć¼ćć§å®č”äøć§ć" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ććć„ć”ć³ć '%s' ćčŖćæč¾¼ćć¾ććć§ćć" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ć®å¤ęäø" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d / %d ć®ććć„ć”ć³ććå¤ęćć¾ćć" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ć”ćæćć¼ćæć®å¤ęäø" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evince ć§å©ēØććć¦ććć”ćæćć¼ćæå½¢å¼ćå¤ę“ćććć®ć§ćē§»č”ćććåæ č¦ćććć¾" +"ććē§»č”ä½ę„ććć£ć³ć»ć«ććććØć”ćæćć¼ćæć¹ćć¬ć¼ćøćÆåä½ćć¾ććć" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ęčæéććććć„ć”ć³ććåć³éćć¾ć" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ćć®ććć„ć”ć³ććÆćććÆććć¦ććć®ć§ćę£ćććć¹ćÆć¼ććå „åćććØćć®ćæčŖ" +"ćæč¾¼ćæćåÆč½ć§ćć" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ććć„ć”ć³ćć®ćććÆćč§£é¤(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ćć¹ćÆć¼ćć®å „å" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ćć¹ćÆć¼ććåæ č¦ć§ć" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ćććÆććć¦ććććć„ć”ć³ć \"%s\" ćéćć«ćÆćć¹ćÆć¼ććåæ č¦ć§ćć" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ćć¹ćÆć¼ć(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ä»ćććć¹ćÆć¼ććē “ę£ćć(_I)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ćć°ć¢ć¦ćććć¾ć§ćć¹ćÆć¼ććčØę¶ćć(_L)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ćć¹ćÆć¼ććčØę¶ćć(_F)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ććććć£" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "å Øč¬" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ćć©ć³ć" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ććć„ć”ć³ćć®ć©ć¤ć»ć³ć¹" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ćć©ć³ć" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ćć©ć³ćę å ±ćåéäøā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "å©ēØč¦ē“" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ććć¹ćć®ć©ć¤ć»ć³ć¹" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ććč©³ććę å ±" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ćŖć¹ć" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ę³Øé" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ććć¹ć" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ććć¹ćć®ę³Øéćčæ½å " + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "čæ½å " + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ććć„ć”ć³ćć«ćÆę³Øéćććć¾ćć" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "%d ćć¼ćø" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ę·»ä»ćć”ć¤ć«" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ć¬ć¤ć¤" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "å°å·ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ē®ę¬”" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ćµć ćć¤ć«" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "%s - %s ćć¼ćø" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "%s ćć¼ćø" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "ććć„ć”ć³ćć«ćÆćć¼ćøćććć¾ćć" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "ććć„ć”ć³ćć«ćÆē©ŗć®ćć¼ćøććććć¾ćć" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "ććć„ć”ć³ććéćć¾ćć" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ććććć„ć”ć³ććčŖćæč¾¼ćć§ćć¾ć" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ććć„ć”ć³ćć®ćć¦ć³ćć¼ćäø (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "ćŖć¢ć¼ććć”ć¤ć«ć®čŖćæč¾¼ćæć«å¤±ęćć¾ćć" + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ććććć„ć”ć³ććååŗ¦čŖćæč¾¼ćć§ćć¾ć" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "ććć„ć”ć³ćć®åčŖćæč¾¼ćæć«å¤±ęćć¾ćć" + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "ććć„ć”ć³ććéć" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "%s ć«ććć„ć”ć³ććäæåćć¦ćć¾ć" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ć«ę·»ä»ćć”ć¤ć«ćäæåćć¦ćć¾ć" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "%s ć«ē»åćäæåćć¦ćć¾ć" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ćć”ć¤ć«ć \"%s\" ćØćć¦äæåć§ćć¾ććć§ćć" + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ććć„ć”ć³ćć®ć¢ćććć¼ćäø (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ę·»ä»ćć”ć¤ć«ć®ć¢ćććć¼ćäø (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ē»åć®ć¢ćććć¼ćäø (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "å„åć§äæå" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "äæēäøć®å°å·ćøć§ćć %d åććć¾ć" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "å°å·ćøć§ć \"%s\"" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"ććć„ć”ć³ćć«ćÆå 容ćåćććć©ć¼ć ćć£ć¼ć«ććå«ć¾ćć¦ćć¾ććå„åć§äæåć" +"ćŖćå “åćÆå¤ę“ē¹ćÆ失ććć¾ćć" + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ććć„ć”ć³ćć«ćÆę°č¦ććććÆę“ę°ćććę³Øéćå«ć¾ćć¦ćć¾ććå„åć§äæåććŖć" +"å “åćÆå¤ę“ē¹ćÆ失ććć¾ćć" + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ććć„ć”ć³ć \"%s\" ćéććåć«å„åć§äæåćć¾ćć?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "äæåććć«éćć(_W)" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "å„åć§äæå(_C)" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "å°å·ćøć§ćć® \"%s\" ćå®äŗććć¾ć§éććć«å¾ ę©ćć¾ćć?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ē¾åØ %d åć®å°å·ćøć§ććććć¾ćććć¹ć¦ć®ćøć§ććå®äŗććć¾ć§ćéććć«å¾ ę©" +"ćć¾ćć?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ć¦ć£ć³ćć¦ćéććå “åćäæēäøć®å°å·ćøć§ććÆē “ę£ććć¾ćć" + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "ćć£ć³ć»ć«ćć¦éćć(_P)" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "å°å·ćć¦ććéćć(_A)" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "ćć¼ć«ćć¼ć®ē·Øé" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "ćć«ććč”Øē¤ŗććéć«ćØć©ć¼ćēŗēćć¾ćć" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ććć„ć”ć³ćć»ćć„ć¼ć¢\n" +"%s (%s) ćå©ēØ" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ćÆććŖć¼ć½ććć¦ć§ć¢ć§ć; ććŖć¼ć½ććć¦ć§ć¢č²”å£ćēŗč”ćć GNU äøč¬å ¬" +"č”å©ēØčØ±č«¾å„ē“ęøć®ē¬¬äŗēćććććÆćć仄éć®ēćå®ććę”é ć®äøć§ę¬ććć°ć©ć " +"ćåé åøć¾ććÆå¤ę“ććććØćć§ćć¾ćć\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ćÆå½¹ē«ć¤ćć®ć§ććććØćęå¾ ćć¦é åøććć¦ćć¾ćććå®å Øć«ē”äæčؼć§ćć" +"åēØå©ēØć¾ććÆē¹å®ć®ē®ēć«ćććé©åę§ć®äæčؼćÆććć¾ćććč©³ē“°ćÆ GNU äøč¬å ¬č”" +"å©ēØčØ±č«¾å„ē“ęøćć覧ćć ććć\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ććŖććÆćę¬ććć°ć©ć ćØäøē·ć« GNU äøč¬å ¬č”å©ēØčØ±č«¾å„ē“ęøć®åććåćåć£ć¦ć" +"ććÆćć§ććććć§ćŖćå “åćÆćFree Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA ć¾ć§ęē“ćęøćć¦ćć ććć\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince éēŗč " + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"ēøč± ęÆ <takeshi.aihana@gmail.com>\n" +"ä½č¤ ę <ss@mate.gr.jp>\n" +"čé č²“ä¹ <AE5T-KSN@asahi-net.or.jp>\n" +"Shushi Kurose <md81bird@hitaki.net>\n" +"ćć¾ćć²ć§ć <henrich@debian.or.jp>\n" +"ę„ę¬MATEć¦ć¼ć¶ć¼ä¼ <http://www.mate.gr.jp/>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ćć®ćć¼ćøć§ %d åč¦ć¤ććć¾ćć" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "č¦ć¤ććć¾ćć" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ę¤ē“¢ę®ć %3d%%" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "ćć”ć¤ć«(_F)" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "ē·Øé(_E)" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "č”Øē¤ŗ(_V)" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "ē§»å(_G)" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "ćć«ć(_H)" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "éć(_O)ā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "ę¢åć®ććć„ć”ć³ććéćć¾ć" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "ć³ćć¼ćéć(_E)" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "ćć®ććć„ć”ć³ćć®ć³ćć¼ćę°ććć¦ć£ć³ćć¦ć§éćć¾ć" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "å„åć§äæå(_S)ā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "ćć®ććć„ć”ć³ććå„åć§äæåćć¾ć" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "å°å·(_P)ā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "ććććć£(_R)" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "ćć¹ć¦éøę(_A)" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "ę¤ē“¢(_F)ā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "ćć®ććć„ć”ć³ćć®äøć«ććåčŖćčŖå„ćę¤ē“¢ćć¾ć" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "ćć¼ć«ćć¼(_O)" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "å·¦ćøåč»¢(_L)" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "å³ćøåč»¢(_R)" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "ē¾åØć®čØå®ćććć©ć«ććØćć¦äæå(_D)" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "åčŖćæč¾¼ćæ(_R)" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "ććć„ć”ć³ććååŗ¦čŖćæč¾¼ćæć¾ć" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "čŖåć¹ćÆćć¼ć«(_S)" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "å é ć®ćć¼ćø(_F)" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "å é ć®ćć¼ćøć«ē§»åćć¾ć" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "ęå¾ć®ćć¼ćø(_L)" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "ęå¾ć®ćć¼ćøć«ē§»åćć¾ć" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "ē®ę¬”(_C)" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "ę å ±(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "ćć«ć¹ćÆćŖć¼ć³ć®č§£é¤" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "ćć«ć¹ćÆćŖć¼ć³ć¢ć¼ććč§£é¤ćć¾ć" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³č”Øē¤ŗ" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³č”Øē¤ŗćéå§ćć¾ć" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "ćć¼ć«ćć¼(_T)" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "ćć¼ć«ćć¼ć®č”Øē¤ŗć ON/OFF ćć¾ć" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "ćµć¤ćć»ćć¤ć³(_P)" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "ćµć¤ćć»ćć¤ć³ć®č”Øē¤ŗć ON/OFF ćć¾ć" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "é£ē¶ćć¼ćø(_C)" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "ććć„ć”ć³ćå Øä½ćč”Øē¤ŗćć¾ć" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "č¦éććć¼ćø(_D)" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "äøåŗ¦ć«2ćć¼ćøč”Øē¤ŗćć¾ć" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "ćć«ć¹ćÆćŖć¼ć³č”Øē¤ŗ(_F)" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "ē»é¢å Øä½ćč¦ćććć«ć¦ć£ć³ćć¦ćę”大ćć¾ć" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³č”Øē¤ŗ(_S)" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "ććć„ć”ć³ćććć¬ć¼ć³ćć¼ć·ć§ć³ćØćć¦č”Øē¤ŗćć¾ć" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "č²ćåč»¢ćć(_I)" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "ćć¼ćøć®å 容ćč²ćåč»¢ćć¦č”Øē¤ŗćć¾ć" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "ćŖć³ćÆćéć(_O)" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "ē§»å(_G)" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "ę°ććć¦ć£ć³ćć¦ć§éć(_W)" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "ćŖć³ćÆć¢ćć¬ć¹ćć³ćć¼(_C)" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "ē»åćå„åć§äæå(_S)ā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "ē»åć®ć³ćć¼(_I)" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "ę³Øéć®ććććć£ā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "ę·»ä»ćć”ć¤ć«ćéć(_O)" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "ę·»ä»ćć”ć¤ć«ćå„åć§äæå(_S)ā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "ćŗć¼ć " + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "ćŗć¼ć ć»ć¬ćć«ćčŖæēÆćć¾ć" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "ććć²ć¼ć·ć§ć³" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "ę»ć" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "č”Øē¤ŗćććć¼ćøćøē§»åćć¾ć" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "åćø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "ꬔćø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "ę”大" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "ēø®å°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "å¹ ć«åććć" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "å¤éØć®ć¢ććŖć±ć¼ć·ć§ć³ćčµ·åć§ćć¾ććć§ćć" + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "å¤éØćøć®ćŖć³ćÆćéćć¾ćć" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "ē»åćäæåććć®ć«åæ č¦ćŖęøå¼ćč¦ć¤ććć¾ććć§ćć" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "ē»åćäæåć§ćć¾ććć§ćć" + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "ē»åć®äæå" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "ę·»ä»ćć”ć¤ć«ćéćć¾ćć" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "ę·»ä»ćć”ć¤ć«ćäæåć§ćć¾ććć§ćć" + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "ę·»ä»ćć”ć¤ć«ć®äæå" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s - ćć¹ćÆć¼ććåæ č¦ć§ć" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ę”å¼µåé " + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ććć„ć”ć³ćć»ćć„ć¼ć¢" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "č”Øē¤ŗććććć„ć”ć³ćć®ćć¼ćøć©ćć«" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "č”Øē¤ŗććććć„ć”ć³ćć®ćć¼ćøēŖå·" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ćć«ć¹ćÆćŖć¼ć³ć¢ć¼ćć§čµ·åćć" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ćć¬ć¼ć³ćć¼ć·ć§ć³ć»ć¢ć¼ćć§čµ·åćć" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ćć¬ćć„ć¼ć¢ć§čµ·åćć" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ććć„ć”ć³ćć®äøććåčŖćčŖå„ćę¤ē“¢ćć" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ćć”ć¤ć«ā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"č«ēåć®ćŖćć·ć§ć³ćå©ēØåÆč½: TRUE ć«ćććØćµć ćć¤ć«č”Øē¤ŗć«ćŖććFALSE ć«ćć" +"ćØę°č¦ć«ćµć ćć¤ć«ćä½ęćć¾ććć" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ććć„ć”ć³ćć®ćµć ćć¤ć«č”Øē¤ŗ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ććć„ć”ć³ćć®ćµć ćć¤ć«č”Øē¤ŗć³ćć³ć" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ććć„ć”ć³ćććµć ćć¤ć«č”Øē¤ŗććććć®å¦„å½ćŖć³ćć³ććØå¼ę°ć§ććč©³ē“°ćÆ " +"Caja ć®ćµć ćć¤ć«é¢é£ć®ććć„ć”ć³ććåē §ćć¦ćć ććć" + +#, fuzzy +#~ msgid "Page Set_upā¦" +#~ msgstr "ćć¼ćøčØå®(_U)..." + +#, fuzzy +#~ msgid "Set up the page settings for printing" +#~ msgstr "å°å·ēØć«ćć¼ćøćčØå®ćć¾ć" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ććć„ć”ć³ćć®ęøå¼ćå£ćć¦ćć¾ć" + +#~ msgid "Print..." +#~ msgstr "å°å·..." + +#~ msgid "_Save a Copy..." +#~ msgstr "å„åć§äæå(_S)..." + +#~ msgid "_Print..." +#~ msgstr "å°å·(_P)..." + +#~ msgid "_Find..." +#~ msgstr "ę¤ē“¢(_F)..." diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 00000000..f6205c10 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,1251 @@ +# translation of evince.HEAD.po to Georgian +# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Vladimer Sichinava <alinux@siena.linux.it>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-08-27 16:10+0200\n" +"PO-Revision-Date: 2006-09-10 08:25+0200\n" +"Last-Translator: Vladimer Sichinava <vlsichinava@gmail.com>\n" +"Language-Team: Georgian <www.gia.ge>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: KBabel 1.11.2\n" + +#: ../backend/ev-attachment.c:302 ../backend/ev-attachment.c:315 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "" +"įØįį£į«įįįįįįį įįįįį įįį” " +"įØįįįį®įį ā%sā: %s" + +#: ../backend/ev-attachment.c:347 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "" +"įØįį£į«įįįįįįį įįįįį įįį” " +"įįį®į”įį ā%sā: %s" + +#: ../backend/ev-attachment.c:380 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "" +"įØįį£į«įįįįįįį įįįįį įįį” " +"įįį®į”įį ā%sā" + +#: ../backend/ev-document-factory.c:265 ../backend/ev-document-factory.c:331 +msgid "Unknown MIME Type" +msgstr "į£įŖįįįį MIME į¢įįį" + +#: ../backend/ev-document-factory.c:276 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "į£įŖįįįį MIME į¢įįį: ā%sā" + +#: ../backend/ev-document-factory.c:372 +msgid "All Documents" +msgstr "į§įįįį įįįį£įįįį¢į" + +#: ../backend/ev-document-factory.c:380 +msgid "PostScript Documents" +msgstr "PostScrip įįįį£įįįį¢įįį" + +#: ../backend/ev-document-factory.c:389 +msgid "PDF Documents" +msgstr "PDF įįįį£įįįį¢įįį" + +#: ../backend/ev-document-factory.c:398 +msgid "Images" +msgstr "į”į£į įįįįį" + +#: ../backend/ev-document-factory.c:408 +msgid "DVI Documents" +msgstr "DVI įįįį£įįįį¢įįį" + +#: ../backend/ev-document-factory.c:418 +msgid "Djvu Documents" +msgstr "Djvu įįįį£įįįį¢įįį" + +#: ../backend/ev-document-factory.c:428 +msgid "Comic Books" +msgstr "įįįįį„į”įįį" + +#: ../backend/ev-document-factory.c:438 +msgid "Impress Slides" +msgstr "Impress-į”įįįįįįį" + +#: ../backend/ev-document-factory.c:446 +msgid "All Files" +msgstr "į§įįįį į¤įįįį" + +#: ../comics/comics-document.c:148 +msgid "File corrupted." +msgstr "įįįįįįįįį£įį į¤įįįį." + +#: ../comics/comics-document.c:184 +#, c-format +msgid "No images found in archive %s" +msgstr "" +"įį į„įįį %s įį įØįįįŖįįį” " +"įįįįį”įį®į£įįįįįį”" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:205 +#, c-format +msgid "Open ā%sā" +msgstr "įįį®į”įįį ā%sā" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:322 +msgid "Empty" +msgstr "įŖįį įįįįį" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:902 +#, c-format +msgid "Show ā_%sā" +msgstr "įį©įįįį ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1362 +msgid "_Move on Toolbar" +msgstr "" +"įįįįį¢įįį įįį”į¢į į£įįįį¢įįįį” " +"įįįįį" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1363 +msgid "Move the selected item on the toolbar" +msgstr "" +"įįįįįį¢įįį įįįįįØįį£įį " +"įįįįįįį¢į įįį”į¢į į£įįįį¢įį įįįįį" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1364 +msgid "_Remove from Toolbar" +msgstr "" +"įįį”į¢į į£įįįį¢įį įįįįįįį " +"įįįįØįį" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1365 +msgid "Remove the selected item from the toolbar" +msgstr "" +"įįįįØįįį įįįįįØįį£įį įįįįįįį¢į " +"įįį”į¢į į£įįįį¢įįįį” įįįįįįį" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1366 +msgid "_Delete Toolbar" +msgstr "" +"įįį”į¢į į£įįįį¢įį įįįįįįį” įįįįØįį" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1367 +msgid "Remove the selected toolbar" +msgstr "" +"įįį”į¢į į£įįįį¢įį įįįįįįį” įįįįØįį" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:439 +msgid "Separator" +msgstr "įįįį§įį¤į" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:3622 +msgid "Best Fit" +msgstr "į”įį£įįįįį”į įįį įįįį" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "įįįį įįį” į”įįįįįįØį įįį įįįį" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "75%" +msgstr "75%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "įįįį£įįįį¢įįįį” įįįį®įįįį" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "" +"įį įįįįįįįį įįįįį " +"įįįį£įįįį¢įįįį” į©įįįįįį" + +#: ../data/evince-password.glade.h:1 +msgid "Remember password for this session" +msgstr "" +"į”įį”įįį” įįį įįįį” įįįįį®į”įįį įįį" + +#: ../data/evince-password.glade.h:2 +msgid "Save password in keyring" +msgstr "įįį įįįį” įØįįįį®įį įįŖįįįØį" + +#: ../data/evince-password.glade.h:3 +msgid "_Password:" +msgstr "_įįį įįį:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>įįį¢įį į:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>įØįį„įįįįįį: </b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>įØįįį„įįįįį:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b> į¤įį įįį¢į:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b> į”įįįįįį«į į”įį¢į§įįįį:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>įØįįįŖįįįį:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>įįįį įįįįį” į įįįįįįįį:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>įįį¢įįįįįį įįį£įį:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Producer:</b>" +msgstr "<b>įį įįį£į”įį į:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Security:</b>" +msgstr "<b>į£į”įį¤į įį®įįįį:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Subject:</b>" +msgstr "<b>įįįį:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Title:</b>" +msgstr "<b>į”įįįį£į į:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" +"įįįį£įįįį¢įį” įØįįį¦į£įįįįįį” " +"į£įį£įįįįįįį§įį¤į" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"įįįį£įįįį¢įį” įØįįį¦į£įįįįįį” " +"į£įį£įįįįįį§įį¤į, įįįįįįįįį " +"įįįįįįį” įįį į«įįįįį”." + +#: ../dvi/dvi-document.c:91 +msgid "File not available" +msgstr "įįį įįįį£įįį į¤įįįį”" + +#: ../dvi/dvi-document.c:104 +msgid "DVI document has incorrect format" +msgstr "" +"DVI įįįį£įįįį¢į” įį įį”į¬įį į " +"į¤įį įįį¢į įįįį©įįį" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:593 +msgid "Yes" +msgstr "įįįį®" + +#. translators: this is the document security state +#: ../pdf/ev-poppler.cc:596 +msgid "No" +msgstr "įį į" + +#: ../pdf/ev-poppler.cc:696 +msgid "Type 1" +msgstr "į¢įįį 1" + +#: ../pdf/ev-poppler.cc:698 +msgid "Type 1C" +msgstr "į¢įįį 1C" + +#: ../pdf/ev-poppler.cc:700 +msgid "Type 3" +msgstr "į¢įįį 3" + +#: ../pdf/ev-poppler.cc:702 +msgid "TrueType" +msgstr "TrueType" + +#: ../pdf/ev-poppler.cc:704 +msgid "Type 1 (CID)" +msgstr "į¢įįį 1Ā·(CID)" + +#: ../pdf/ev-poppler.cc:706 +msgid "Type 1C (CID)" +msgstr "į¢įįį 1CĀ·(CID)" + +#: ../pdf/ev-poppler.cc:708 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../pdf/ev-poppler.cc:710 +msgid "Unknown font type" +msgstr "į£įŖįįįį įØį įį¤į¢įį” į¢įįį" + +#: ../pdf/ev-poppler.cc:736 +msgid "No name" +msgstr "į£į”įį®įįį" + +#: ../pdf/ev-poppler.cc:744 +msgid "Embedded subset" +msgstr "į©įįįį įįį£įį į„įįį”įįį įįįį" + +#: ../pdf/ev-poppler.cc:746 +msgid "Embedded" +msgstr "į©įįįį įįį£įį" + +#: ../pdf/ev-poppler.cc:748 +msgid "Not embedded" +msgstr "įį įį įį” į©įįØįįįįį£įį" + +#: ../properties/ev-properties-main.c:107 +msgid "Document" +msgstr "įįįį£įįįį¢į" + +#: ../properties/ev-properties-view.c:173 +msgid "None" +msgstr "įį į" + +#: ../ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../ps/gsdefaults.c:31 +msgid "Letter" +msgstr "į¬įį įįį" + +#: ../ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Tabloid" + +#: ../ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ../ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Legal" + +#: ../ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Statement" + +#: ../ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Executive" + +#: ../ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Folio" + +#: ../ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ../ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../ps/ps-document.c:136 +msgid "No document loaded." +msgstr "" +"įįįį£įįįį¢į įį įį įį” " +"į©įį¢įįį įį£įį." + +#: ../ps/ps-document.c:590 +msgid "Broken pipe." +msgstr "įįįįįįįįį£įį įįįįįį." + +#: ../ps/ps-document.c:774 +msgid "Interpreter failed." +msgstr "įįį¢įį įį įį¢įį¢įį į įįį įØįįįį." + +#: ../ps/ps-document.c:900 +#, c-format +msgid "Error while decompressing file ā%sā:\n" +msgstr "" +"įØįįŖįįįį ā%sā į¤įįįįį” " +"įįįįįįį įį”įį įįįį”įį”:\n" + +#: ../ps/ps-document.c:960 +#, c-format +msgid "Cannot open file ā%sā.\n" +msgstr "į¤įįįį ā%sā įįį įįįį®į”įį.\n" + +#: ../ps/ps-document.c:965 +msgid "File is not readable." +msgstr "į¤įįįį įį įįįįį®įįį." + +#: ../ps/ps-document.c:985 +msgid "Document loaded." +msgstr "įįįį£įįįį¢į į©įį¢įįį įį£įįį." + +#: ../ps/ps-document.c:1082 +#, c-format +msgid "" +"Failed to load document ā%sā. Ghostscript interpreter was not found in " +"path" +msgstr "" +"įįįį£įįįį¢į ā%sā įįį į©įįį¢įįį įį. " +"įįį įįįį«įįįį " +"Ghostscript-įįį¢įį įį įį¢įį¢įį į" + +#: ../ps/ps-document.c:1094 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "" +"įįįį£įįįį¢į ā%sā įįį į©įįį¢įįį įį" + +#: ../ps/ps-document.c:1267 +msgid "Encapsulated PostScript" +msgstr "į©įįįįį£įį PostScript" + +#: ../ps/ps-document.c:1268 +msgid "PostScript" +msgstr "PostScript" + +#: ../shell/eggfindbar.c:157 +msgid "Search string" +msgstr "į”į¢į įį„įįįį” į«įįįį" + +#: ../shell/eggfindbar.c:158 +msgid "The name of the string to be found" +msgstr "" +"į”įį«įįįįįį į”į¢į įį„įįįį” į”įį®įįį" + +#: ../shell/eggfindbar.c:171 +msgid "Case sensitive" +msgstr "į įįįį”į¢į įį”įįįį įįį«įįįįįį į" + +#: ../shell/eggfindbar.c:172 +msgid "TRUE for a case sensitive search" +msgstr "" +"į įįįį”į¢į įįį į«įįįįįį į " +"į«įįįįį”įįįįį” - TRUE " + +#: ../shell/eggfindbar.c:179 +msgid "Highlight color" +msgstr "įįį įįį įįį£įį" + +#: ../shell/eggfindbar.c:180 +msgid "Color of highlight for all matches" +msgstr "" +"į§įįįįįįįį į įįįį®įįįį įį” į¤įį į" + +#: ../shell/eggfindbar.c:186 +msgid "Current color" +msgstr "įįįįįįįį į į¤įį į" + +#: ../shell/eggfindbar.c:187 +msgid "Color of highlight for the current match" +msgstr "į¤įį į - įįįį®įįįį" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "į«įįįį:" + +#: ../shell/eggfindbar.c:329 +msgid "Find Previous" +msgstr "įį«įįį į¬įįį" + +#: ../shell/eggfindbar.c:332 +msgid "Find previous occurrence of the search string" +msgstr "" +"įįįįį į”įį«įįįį įį£į”į®įį” į¬įįį " +"įįį įįįį¢į" + +#: ../shell/eggfindbar.c:337 +msgid "Find Next" +msgstr "įį«įįį įØįįįįįį" + +#: ../shell/eggfindbar.c:340 +msgid "Find next occurrence of the search string" +msgstr "" +"įįįįį į”įį«įįįį įį£į”į®įį” " +"įØįįįįįį įįį įįįį¢į" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "į įįįį”į¢į įį” įįįįįįįį”į¬įįįįį" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" +"į©įį įį į«įįįį į įįįį”į¢į įį” " +"įįįįįįįį”į¬įįįįįį" + +# (%d %d-įįį) +#: ../shell/ev-page-action.c:168 +#, c-format +msgid "(%d of %d)" +msgstr "(%d-įįį %d)" + +#: ../shell/ev-page-action.c:170 +#, c-format +msgid "of %d" +msgstr "%d-įįį" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "įįį įįį įį£įŖįįįįįįįį" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be " +"opened." +msgstr "" +"ā%sā įįįį£įįįį¢įį” įįį®į”įįį”įįįįį” " +"į”įįįį įį įįį įįį" + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "įØįįį§įįįįį įįį įįį" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "ā%sā įįįį£įįįį¢įį” įįį įįį" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "įį įį”į¬įį į įįį įįį" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"įįįį£įįįį¢į įįįįįį įįį£įįį, " +"įįįį®į”įįįį įį®įįįį įįį įįįį” " +"į”į¬įį įį įØįį§įįįįį”įį”." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_įįįį£įįįį¢įį” įįįįįįįįį" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "įįį įįįį¢į įįį" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "į”įįį įį" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "įØį įį¤į¢įįį" + +#: ../shell/ev-properties-fonts.c:123 +msgid "Font" +msgstr "įØį įį¤į¢į" + +#: ../shell/ev-properties-fonts.c:134 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" +"įØį įį¤į¢įį” įØįį”įį®įį " +"įįį¤įį įįįŖįįį” įØįįį įįįįį... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:662 +msgid "Attachments" +msgstr "įįįįį įį" + +#: ../shell/ev-sidebar-links.c:254 ../shell/ev-view.c:2230 +msgid "Loading..." +msgstr "įį¢įįį įįįį...." + +#: ../shell/ev-sidebar-links.c:351 +msgid "Print..." +msgstr "įįįįįį..." + +#: ../shell/ev-sidebar-links.c:736 +msgid "Index" +msgstr "įįįįį„į”į" + +#: ../shell/ev-sidebar-thumbnails.c:678 +msgid "Thumbnails" +msgstr "įį”įįįįįį" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "įįįįį" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "į„įįįįį" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "į©įįįįįį įįįįį" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "į©įįįįįį į„įįįįį" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "įįįį£įįįį¢įį” įįį®įį" + +#: ../shell/ev-view.c:1337 +msgid "Go to first page" +msgstr "įįį įįį įįįį įįį" + +#: ../shell/ev-view.c:1339 +msgid "Go to previous page" +msgstr "į¬įįį įįįį įįį" + +#: ../shell/ev-view.c:1341 +msgid "Go to next page" +msgstr "įØįįįįį įįįį įįį įįįįį”įįį" + +#: ../shell/ev-view.c:1343 +msgid "Go to last page" +msgstr "įįįį įįįį įįį" + +#: ../shell/ev-view.c:1345 +msgid "Go to page" +msgstr "įįįį įįį įįįįį”įįį" + +#: ../shell/ev-view.c:1347 +msgid "Find" +msgstr "į«į_įįį:" + +#: ../shell/ev-view.c:1374 +#, c-format +msgid "Go to page %s" +msgstr "%s įįįį įįį" + +#: ../shell/ev-view.c:1379 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s-įį įįįįį”įįį ā%sā į¤įįįįØį" + +#: ../shell/ev-view.c:1382 +#, c-format +msgid "Go to file ā%sā" +msgstr "įįįįį”įįį į¤įįįįį ā%sā" + +#: ../shell/ev-view.c:1391 +#, c-format +msgid "Launch %s" +msgstr "įįį£įØįį %s" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:3435 +#, c-format +msgid "%d found on this page" +msgstr "įį įįįį įįį įįįįįįįį %d" + +#: ../shell/ev-view.c:3444 +#, c-format +msgid "%3d%% remaining to search" +msgstr "į«įįįįį”įįįįį” į”įįįį įį %3d%%" + +#: ../shell/ev-window.c:1011 +msgid "Unable to open document" +msgstr "įįįį£įįįį¢į įį įį®į”įįįį" + +#: ../shell/ev-window.c:1100 +msgid "Open Document" +msgstr "įįįį£įįįį¢įį” įįį®į”įį" + +#: ../shell/ev-window.c:1308 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "" +"į¤įįįį įįį įįįį®įįį į”įį®įįįį " +"ā%sā." + +#: ../shell/ev-window.c:1327 ../shell/ev-window.c:3976 +msgid "Save a Copy" +msgstr "įį”įįį” įØįįįį®įį" + +#: ../shell/ev-window.c:1380 +msgid "Failed to print document" +msgstr "įØįįŖįįįį įįįįįįį”įį”" + +#: ../shell/ev-window.c:1494 ../shell/ev-window.c:1669 +msgid "Printing is not supported on this printer." +msgstr "" +"įį įį įį” įį įį įįį¢įį įį” " +"įį®įį įįįįį į" + +#: ../shell/ev-window.c:1604 ../shell/ev-window.c:1720 +msgid "Print" +msgstr "įįįįįį" + +#: ../shell/ev-window.c:1659 +msgid "Generating PDF is not supported" +msgstr "" +"PDF-į¤įį įįį¢įØį įįįįį įį įįįį” " +"įį®įį įįįįį į įį įį įį”" + +#: ../shell/ev-window.c:1671 +#, c-format +msgid "" +"You were trying to print to a printer using the ā%sā driver. This " +"program requires a PostScript printer driver." +msgstr "" +"ā%sā įį įįįįį įį įįįįįį " +"įØįį£į«įįįįįįį. į”įįįį įį " +"įįį”į¢į”įį įįį¢-įį įįį¢įį įį” " +"įį įįįįį į." + +#: ../shell/ev-window.c:1729 +msgid "Pages" +msgstr "įįįį įįįį" + +#. Toolbar-only +#: ../shell/ev-window.c:2089 ../shell/ev-window.c:3423 +msgid "Leave Fullscreen" +msgstr "įįį¢įįį įįįįį” įįį įįįį" + +#: ../shell/ev-window.c:2469 +msgid "Toolbar Editor" +msgstr "" +"įįį”į¢į į£įįįį¢įį įįįįįįį” " +"į įįįį„į¢įį į" + +#: ../shell/ev-window.c:2840 +#, c-format +msgid "" +"PostScript and PDF File Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"PDF įį įįį”į¢į”įį įįį¢-į¤įįįįįįį” " +"įįį®įį.\n" +"įįįįįį§įįįįį poppler įįį į”įį %s (%s)" + +#: ../shell/ev-window.c:2864 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince - įį” įį įį” įįįįį”į£į¤įįį " +"įį įįį įįį. įį„įįį įØįįįį«įįįį " +"įįį”į įįįį įŖįįįįį įį/įį įØįįŖįįį " +"įįįįį”į£į¤įįį įį įįį įįįį įįįį” " +"į¤įįįįį” įįįį įįįįį„įįį§įįįį£įį " +"įį įįįįį į”įįįįįįįįįį įįį " +"įįįŖįįįįįį” (GNU įį 2 įįį į”įį) įį " +"į£į¤į į įįįįįįįįį įįį į”įįį” " +"įįį įįįįįį” įØįį”įįįįįį”įį.\n" + +#: ../shell/ev-window.c:2868 +msgid "" +"Evince 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.\n" +msgstr "" +"įį įįį įįįį” įįįįįį įŖįįįįįįįį " +"įįįįįįįįįįį, į įį įį” " +"į”įį”įį įįįįį įį„įįįį, įįįį įį " +"įįį įįįįŖįįįį į įįįį " +"įįį įįį¢įįį”, įįįįŖį®įįįįį£įį” įį " +"įįįį£įįį”į®įįįį”, įįį įØįį įį” " +"įįįįį įŖįį£įį į”įį įįįįįįįįįįį”į " +"įį£ į įįįį įįįįį įį¢į£įį " +"įįįįįį”įįįįį” įįįįį”įįįįįįįį” " +"į©įįįįįį, įį į”į®įį įįįįį”įįįį į " +"įįįįį”įįį įį”įį. įįį¬įį įįįįįįį " +"įįį¤įį įįįŖįįį”įįįįį” įį®įįįį " +"įį įįįįį į”įįįįįįįįįį įįį " +"įįįŖįįįįį (GNU General Public License).\n" + +#: ../shell/ev-window.c:2872 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"įį įį įįį įįįį”įįį įį įįį į£įįį " +"įįįįį¦įį GNU įįįŖįįįįį;įį£ įį " +"įįįįį¦įįį,įįįįį¬įį įį " +"įįįįį”į£į¤įįį įį įįį įįįįįį” " +"į¤įįįįØį. įįį”įįįį įįį: 51 Franklin Street, " +"Fifth Floor, Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:2896 ../shell/main.c:308 +msgid "Evince" +msgstr "įįįįį”į" + +#: ../shell/ev-window.c:2899 +msgid "Ā© 1996-2005 The Evince authors" +msgstr "Ā© 1996-2005 įįįįį”įį” įįį¢įį įįį" + +#: ../shell/ev-window.c:2905 +msgid "translator-credits" +msgstr "" +"Vladimer Sichinava įįįįįįįį į”įįįįįįį " +"<vlsichinava@gmail.com> Malkhaz Barkalaya įįįį®įį " +"įįį įįįįįį <maxo127@mail.ru>" + +#: ../shell/ev-window.c:3350 +msgid "_File" +msgstr "_į¤įįįį" + +#: ../shell/ev-window.c:3351 +msgid "_Edit" +msgstr "_įįįį£įØįįįįį" + +#: ../shell/ev-window.c:3352 +msgid "_View" +msgstr "_į®įįį" + +#: ../shell/ev-window.c:3353 +msgid "_Go" +msgstr "_į¬įį" + +#: ../shell/ev-window.c:3354 +msgid "_Help" +msgstr "_įįį®įįį įįį" + +#. File menu +#: ../shell/ev-window.c:3357 ../shell/ev-window.c:3514 +msgid "_Open..." +msgstr "_įįį®į”įį..." + +#: ../shell/ev-window.c:3358 +msgid "Open an existing document" +msgstr "" +"į£įįį įį į”įįį£įį įįįį£įįįį¢įį” " +"įįį®į”įį" + +#: ../shell/ev-window.c:3360 ../shell/ev-window.c:3516 +msgid "_Save a Copy..." +msgstr "_įįįįįį” įØįįįį®įį..." + +#: ../shell/ev-window.c:3361 +msgid "Save a copy of the current document" +msgstr "" +"įįįŖįįį£įį įįįį£įįįį¢įį” įį”įįį” " +"įØįįįį®įį" + +#: ../shell/ev-window.c:3363 +msgid "_Print..." +msgstr "_įįįįįį..." + +#: ../shell/ev-window.c:3364 +msgid "Print this document" +msgstr "įįįįįįį įį” įįįį£įįįį¢į" + +#: ../shell/ev-window.c:3366 +msgid "P_roperties" +msgstr "įįį įįį_į¢į įįį" + +#: ../shell/ev-window.c:3374 +msgid "Select _All" +msgstr "įįįįįØįį _į§įįįį" + +#: ../shell/ev-window.c:3376 +msgid "_Find..." +msgstr "_įįįįįį..." + +#: ../shell/ev-window.c:3377 +msgid "Find a word or phrase in the document" +msgstr "" +"įįįį£įįįį¢įØį į”įį¢į§įįį” įį " +"į¤į įįįį” į«įįįį" + +#: ../shell/ev-window.c:3379 +msgid "Find Ne_xt" +msgstr "įØįįįįįįį” į«_įįįį" + +#: ../shell/ev-window.c:3381 +msgid "Find Pre_vious" +msgstr "į¬_įįįį” įįį«įįįį" + +#: ../shell/ev-window.c:3383 +msgid "T_oolbar" +msgstr "_įįį”į¢į į£įįįį¢įį įįįįįį" + +#: ../shell/ev-window.c:3385 +msgid "Rotate _Left" +msgstr "įįį įŖį®įįį įįį¢į įį_įįįį" + +#: ../shell/ev-window.c:3387 +msgid "Rotate _Right" +msgstr "įįį įÆįįįį įįį¢į įį_įįįį" + +#: ../shell/ev-window.c:3392 +msgid "Enlarge the document" +msgstr "įįįį£įįįį¢įį” įįįįįįįį" + +#: ../shell/ev-window.c:3395 +msgid "Shrink the document" +msgstr "įįįį£įįįį¢įį” įØįįį£įįØįį" + +#: ../shell/ev-window.c:3397 +msgid "_Reload" +msgstr "_įįįįį¢įįį įįį" + +#: ../shell/ev-window.c:3398 +msgid "Reload the document" +msgstr "įįįį£įįįį¢įį” įįįįį¢įįį įįį" + +#. Go menu +#: ../shell/ev-window.c:3402 +msgid "_Previous Page" +msgstr "_į¬įįį įįįį įį" + +#: ../shell/ev-window.c:3403 +msgid "Go to the previous page" +msgstr "į¬įįį įįįį įįį įįįįį”įįį" + +#: ../shell/ev-window.c:3405 +msgid "_Next Page" +msgstr "_įØįįįįįį įįįį įį" + +#: ../shell/ev-window.c:3406 +msgid "Go to the next page" +msgstr "įįįįį”įįį -į”įįį įįįįįį" + +#: ../shell/ev-window.c:3408 +msgid "_First Page" +msgstr "_įįį įįįį įįįį įį" + +#: ../shell/ev-window.c:3409 +msgid "Go to the first page" +msgstr "įįį įįį įįįį įįį įįįįį”įįį" + +#: ../shell/ev-window.c:3411 +msgid "_Last Page" +msgstr "_įįįį įįįį įį" + +#: ../shell/ev-window.c:3412 +msgid "Go to the last page" +msgstr "įįįį įįįį įįį įįįįį”įįį" + +#. Help menu +#: ../shell/ev-window.c:3416 +msgid "_Contents" +msgstr "_įØįįįįį į”į" + +#: ../shell/ev-window.c:3419 +msgid "_About" +msgstr "_įØįį”įį®įį" + +#: ../shell/ev-window.c:3424 +msgid "Leave fullscreen mode" +msgstr "" +"įįįįį” įįį įįįį į įįįįįį” " +"įįį¢įįįįį" + +#. View Menu +#: ../shell/ev-window.c:3475 +msgid "_Toolbar" +msgstr "į®_įįį”įį¬į§įįį įįįį" + +#: ../shell/ev-window.c:3476 +msgid "Show or hide the toolbar" +msgstr "" +"įįį”į¢į į£įįįį¢įį įįįįįįį” " +"įįįįįįį įį įįįįį©įįį" + +#: ../shell/ev-window.c:3478 +msgid "Side _Pane" +msgstr "įįįį įįįį _įįįįįį" + +#: ../shell/ev-window.c:3479 +msgid "Show or hide the side pane" +msgstr "" +"įįįį įįįį įįįįįįį” įįįįįįį įį " +"įįįįį©įįį" + +#: ../shell/ev-window.c:3481 +msgid "_Continuous" +msgstr "į£į¬į§įįį¢į" + +#: ../shell/ev-window.c:3482 +msgid "Show the entire document" +msgstr "" +"įįįįįįį įįįį£įįįį¢įį” į©įįįįįį" + +#: ../shell/ev-window.c:3484 +msgid "_Dual" +msgstr "_įį įįįį" + +#: ../shell/ev-window.c:3485 +msgid "Show two pages at once" +msgstr "" +"įį į įįįį įįį” įį įįį įį£įįį " +"į©įįįįįį" + +#: ../shell/ev-window.c:3487 +msgid "_Fullscreen" +msgstr "_įįįįį” įįį įįįį" + +#: ../shell/ev-window.c:3488 +msgid "Expand the window to fill the screen" +msgstr "" +"į¤įįįÆį įį” įįįįį įįį įįįį” " +"įįį¤įį įįįįį įįįįįįįį" + +#: ../shell/ev-window.c:3490 +msgid "_Presentation" +msgstr "_įį įįįįį¢įįŖįį" + +#: ../shell/ev-window.c:3491 +msgid "Run document as a presentation" +msgstr "" +"įįįį£įįįį¢įį” įį įįįįį¢įįŖįįį” " +"į”įį®įį įįįØįįįį" + +#: ../shell/ev-window.c:3493 +msgid "_Best Fit" +msgstr "_į”įį£įįįįį”į įįį įįįį" + +#: ../shell/ev-window.c:3494 +msgid "Make the current document fill the window" +msgstr "" +"įįįįįįįį į įįįį£įįįį¢į įįį”įįį” " +"į¤įįįÆįį įį”" + +#: ../shell/ev-window.c:3496 +msgid "Fit Page _Width" +msgstr "įįįį įį į”įįįįįįØį įįį įįįį" + +#: ../shell/ev-window.c:3497 +msgid "Make the current document fill the window width" +msgstr "" +"įįįįįįįį į įįįį£įįįį¢į įįį”įįį” " +"į¤įįįÆįį įį” į”įįįįįįØį" + +#. Links +#: ../shell/ev-window.c:3504 +msgid "_Open Link" +msgstr "_įįį£įįį” įįį®į”įį" + +#: ../shell/ev-window.c:3506 +msgid "_Go To" +msgstr "_įįįįį”įįį" + +#: ../shell/ev-window.c:3508 +msgid "_Copy Link Address" +msgstr "" +"įįį_įįįįį į įįį£įįį” įįį”įįįį įį" + +#: ../shell/ev-window.c:3571 +msgid "Page" +msgstr "įįįį įį" + +#: ../shell/ev-window.c:3572 +msgid "Select Page" +msgstr "įįįį įįį” įįįį į©įįį" + +#: ../shell/ev-window.c:3584 +msgid "Zoom" +msgstr "įįįįįįįį" + +#: ../shell/ev-window.c:3586 +msgid "Adjust the zoom level" +msgstr "" +"įįįįįįįįį” įįįØį¢įįįį” įįįįį įįį" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3602 +msgid "Previous" +msgstr "į¬įįį" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3608 +msgid "Next" +msgstr "įØįįįįįį" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3612 +msgid "Zoom In" +msgstr "įįįįįįįį" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3617 +msgid "Zoom Out" +msgstr "įįįįį¢įį įįįįį" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:3627 +msgid "Fit Width" +msgstr "į”įįįįįįØį įįį įįįį" + +#: ../shell/ev-window.c:3905 +msgid "Unable to open attachment" +msgstr "" +"įØįį£į«įįįįįįį įįįįį įįį” įįį®į”įį" + +#: ../shell/ev-window.c:3952 +msgid "The attachment could not be saved." +msgstr "" +"įØįį£į«įįįįįįį įįįįį įįį” " +"įįįįį®į”įįį įįį." + +#: ../shell/ev-window-title.c:140 +#, c-format +msgid "%s - Password Required" +msgstr "%s - įįį įįį įį£įŖįįįįįįįį" + +#: ../shell/main.c:54 +msgid "The page of the document to display." +msgstr "" +"į”įį©įįįįįįįį įįįį£įįįį¢įį” " +"įįįį įį" + +#: ../shell/main.c:54 +msgid "PAGE" +msgstr "įįįį įį" + +#: ../shell/main.c:55 +msgid "Run evince in fullscreen mode" +msgstr "" +"įįįįį”įį” įįįįį” įįį įįįįį " +"į įįįįįØį įįįØįįįį" + +#: ../shell/main.c:56 +msgid "Run evince in presentation mode" +msgstr "" +"įįįįį”įį” įį įįįįį¢įįŖįįį” " +"į įįįįįØį įįįØįįįį" + +#: ../shell/main.c:57 +msgid "Run evince as a previewer" +msgstr "" +"įįįįį”įį” į¬įįįį”į¬įį " +"įįįį®įįįįįįį įįįØįįįį" + +#: ../shell/main.c:58 +msgid "[FILE...]" +msgstr "[į¤įįįį...]" + +#: ../shell/main.c:293 +msgid "MATE Document Viewer" +msgstr "" +"įįįį£įįįį¢įįįį” " +"įįįįįįįįįį įįįįį" + +#: ../shell/main.c:335 +msgid "Evince Document Viewer" +msgstr "" +"įįįįį”į įįįį£įįįį¢įįįį” " +"įįįįįįįįįį įįįįį" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"į©įį įį£įįį įįįįįį£į į " +"įįįį įį¢įį į, true įįįį„į¢įį£į įįį” " +"įį”įįįį£į į įįįįį”, į®įįį false " +"įįįį įįįį” įį į¤į£įį„įŖįįį”." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" +"PDF įįįį£įįįį¢įįįį” įįįį”įįįįįįį” " +"į©įį įįį" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" +"PDF įįįį£įįįį¢įįįį” įį”įįįįįįį” " +"įį į«įįįįį " + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF įįįį£įįįį¢įįįį” įį”įįįįįįį” " +"įįįįį¢įįįįį įį į«įįįįįįįį” " +"įØįį”įį®įį įįį¤įį įįįŖįį " +"įØįįįį«įįį įį®įįįį Caja-įį” į¤įįį " +"įįįįįÆįį įį” įįįį£įįįį¢įįŖįįįØį." diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 00000000..62c55412 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,1672 @@ +# evince to kazakh. +# Copyright (C) 2010 HZ +# This file is distributed under the same license as the evince package. +# Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-08-18 11:29+0000\n" +"PO-Revision-Date: 2010-08-23 22:35+0600\n" +"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" +"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Poedit-Language: Kazakh\n" +"X-Poedit-Country: KAZAKHSTAN\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Comic book ŃŠ°ŃŅŠ°ŃŃ ŅÆŃŃŠ½ ā%sā ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŃŠ½ Š¶Ó©Š½ŠµŠ»ŃŃ ŅŠ°ŃŠµŃŃ: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Comic book ŃŠ°ŃŅŠ°ŃŃ ŅÆŃŃŠ½ ā%sā ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŃ ŅŠ°ŃŠµŠ¼ŠµŠ½ Š°ŃŅŃŠ°Š»Š“Ń." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŃ Š“Ņ±ŃŃŃ Š°ŃŅŃŠ°Š»Š¼Š°Š“Ń" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Comic book MIME ŃŅÆŃŃ ŠµŠ¼ŠµŃ: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Comic book Š¾ŃŃ ŃŅÆŃŃŠ½ ŃŠ°ŃŅŠ°ŃŃ ŅÆŃŃŠ½ ŠŗŠµŃŠµŠŗ ŠŗŠ¾Š¼Š°Š½Š“Š° ŃŠ°Š±ŃŠ»Š¼Š°Š“Ń" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ· MIME ŃŅÆŃŃ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Š¤Š°Š¹Š» Š·Š°ŅŃŠ¼Š“Š°Š»ŅŠ°Š½" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ŠŃŃ ŠøŠ²ŃŠµ ŃŠ°Š¹Š»Š“Š°Ń Š¶Š¾Ņ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%s Š°ŃŃ ŠøŠ²ŃŠ½Š“Šµ ŃŃŃŠµŃŃŠµŃ ŃŠ°Š±ŃŠ»Š¼Š°Š“Ń" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā Ó©ŃŃŃŃ ŠŗŠµŠ·ŃŠ½Š“Šµ ŅŠ°ŃŠµ Š¾ŃŃŠ½ Š°Š»Š“Ń." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "%s ŅŠ°ŃŠµŃŃ" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comic Books" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ŅŅ±Š¶Š°ŃŃŠ½ŃŅ£ ŠæŃŃŃŠ¼Ń ŅŠ°ŃŠµ" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "ŠŅ±Š» ŅŅ±Š¶Š°Ń Š±ŃŃŠ½ŠµŃŠµ ŃŠ°Š¹Š»Š“Š°Š½ Š¶Š°ŃŠ°Š»ŅŠ°Š½. ŠŃŃ ŃŠ°Š¹Š»Š“Š°ŃŠ“ŃŅ£ Š±ŃŃ Š½Šµ Š±ŃŃŠ½ŠµŃŠµŃŃ ŅŠ¾Š»Š¶ŠµŃŠµŃŃŃŠ·." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ŅŅ±Š¶Š°ŃŃŠ°ŃŃ" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ŅŅ±Š¶Š°ŃŃŠ½ŃŅ£ ŠæŃŃŃŠ¼Ń ŅŠ°ŃŠµ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ŅŅ±Š¶Š°ŃŃŠ°ŃŃ" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ŠŅ±Š» Š¶Ņ±Š¼ŃŃ ŠµŃŠŗŃŠ½ (Public Domain)" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ŠÓ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ŠŠ¾Ņ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ· ŅŠ°ŃŃŠæ ŃŅÆŃŃ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ŠŃŃ Š¶Š¾Ņ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ŠŠµŅ£ŠµŠ¹ŃŃŠ»Š³ŠµŠ½ ŅŅ±ŃŠ°Š¼Š°" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ŠŠµŅ£ŠµŠ¹ŃŃŠ»Š³ŠµŠ½" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ŠŠµŅ£ŠµŠ¹ŃŃŠ»Š³ŠµŠ½ ŠµŠ¼ŠµŃ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ŅŅ±Š¶Š°ŃŃŠ°ŃŃ" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŅŠ°ŃŠµ ŅŅ±Š¶Š°Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ŃŠ»Š°Š¹Š“ŃŠ°ŃŃ" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŅŠ°ŃŠµ Š¶Š¾Ņ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠ°Š“Ń Š¶ŠµŃŠŗŃŠ»ŃŠŗŃŃŠ·" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ZIP ŅŠ¾Š»ŃŠ°Ņ£Š±Š°ŃŃ ŃŠ°Š±ŃŠ»Š¼Š°Š“Ń" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ŅŠ°ŃŠµ ZIP ŃŠ°Š¹Š»Ń" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠÓ©Šæ ŃŠ°Š¹Š»Š“Ń ZIP Š°ŃŃ ŠøŠ²ŃŠµŃŃŠ½Šµ ŅŠ¾Š»Š“Š°Ń Š¶Š¾Ņ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Š¤Š°Š¹Š»Š“Ń Š°ŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Š¤Š°Š¹Š»Š“Š°Š½ Š°ŅŠæŠ°ŃŠ°ŃŃŃ Š¾ŅŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP Š°ŃŃ ŠøŠ²ŃŠ½Š“Šµ ŃŠ°Š¹Š» ŃŠ°Š±ŃŠ»Š¼Š°Š“Ń" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ· ŅŠ°ŃŠµ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ŅŅ±Š¶Š°ŃŃŠ½ Š¶ŅÆŠŗŃŠµŃ ŃÓŃŃŃŠ·" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ŅŅ±Š¶Š°ŃŃŠ½ ŃŠ°ŅŃŠ°Ń ŃÓŃŃŃŠ·" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ŅŅ±Š¶Š°ŃŃŠ°ŃŃ" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ā%sā ŃŠ°Š»ŃŠ½ŃŠ¼ŃŠ½ ŃŠ°ŅŃŠ°Ń ŃÓŃŃŃŠ·: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ā%sā ŃŠ°Š»ŃŠ½ŃŠ¼ŃŠ½ Š°ŃŃ ŃÓŃŃŃŠ·: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ā%sā ŃŠ°Š»ŃŠ½ŃŠ¼ŃŠ½ Š°ŃŃ ŃÓŃŃŃŠ·" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ŃŠ°Š¹Š» ŠæŃŃŃŠ¼ŃŠ½Šµ ŅŠ¾Š»Š“Š°Ń Š¶Š¾Ņ" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ŠŠ°ŃŠ»ŃŅ ŅŅ±Š¶Š°ŃŃŠ°Ń" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ŠŠ°ŃŠ»ŃŅ ŃŠ°Š¹Š»Š“Š°Ń" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Š£Š°ŅŃŃŃŠ° ŃŠ°Š¹Š»Š“Ń Š¶Š°ŃŠ°Ń ŃÓŃŃŃŠ·: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Š£Š°ŅŃŃŃŠ° Š±ŃŠ¼Š°Š½Ń Š¶Š°ŃŠ°Ń ŅŠ°ŃŠµŃŃ: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Š¤Š°Š¹Š» Š“Ņ±ŃŃŃ .desktop ŃŠ°Š¹Š»Ń ŠµŠ¼ŠµŃ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ· desktop ŃŠ°Š¹Š»Š“ŃŅ£ Š½Ņ±ŃŅŠ°ŃŃ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ŅŠ¾ŃŃŠ»Ń" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŅŠ¾Š»Š“Š°Š½Š±Š° ŠŗŠ¾Š¼Š°Š½Š“Š° Š¶Š¾Š»ŃŠ½Š“Š° ŅŅ±Š¶Š°ŃŃŠ°ŃŠ“Ń ŅŠ°Š±ŃŠ»Š“Š°Š¼Š°Š¹Š“Ń" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ· ŅŠ¾ŃŃ Š¾ŠæŃŠøŃŃŃ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŅŅ±Š¶Š°Ń URI-ŃŠ½ 'Type=Link' desktop ŃŠ»ŠµŠ¼ŠµŠ½ŃŃŠ½Šµ Š±ŠµŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠÓ©Š½ŠµŠ»ŃŃŠ»ŠµŃŃŠ½ ŃŠ»ŠµŠ¼ŠµŠ½Ń ŠµŠ¼ŠµŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Š”ŠµŃŃŠøŃŠ»Š°Ń Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŃŠ½Šµ Š±Š°Š¹Š»Š°Š½ŃŃŃŠ°ŃŠ“Ń ŃÓ©Š½Š“ŃŃŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Š”Š°ŅŃŠ°Š»ŅŠ°Š½ Š±Š°ŠæŃŠ°ŃŠ»Š°ŃŃ Š±Š°Ń ŃŠ°Š¹Š»Š“Ń ŠŗÓ©ŃŃŠµŃŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "Š¤ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Š”ŠµŃŃŠøŃ Š¼ŠµŠ½ŠµŠ“Š¶Š¼ŠµŠ½ŃŃŠ½ŃŅ£ ID-ŃŠ½ ŠŗÓ©ŃŃŠµŃŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Š”ŠµŃŃŠøŃŠ½Ń Š±Š°ŃŅŠ°ŃŃ Š¾ŠæŃŠøŃŠ»Š°ŃŃ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Š”ŠµŃŃŠøŃŠ½Ń Š±Š°ŃŅŠ°ŃŃ Š¾ŠæŃŠøŃŠ»Š°ŃŃŠ½ ŠŗÓ©ŃŃŠµŃŃ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ŠŗÓ©ŃŃŠµŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Š”Š°Š¹_Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½Šµ Š¶ŃŠ»Š¶ŃŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Š¢Š°Ņ£Š“Š°Š»ŅŠ°Š½ Š½ÓŃŃŠµŠ½Ń ŃŠ°Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½Šµ Š°ŠæŠ°ŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Š”Š°_Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½ŠµŠ½ Ó©ŃŃŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Š¢Š°Ņ£Š“Š°Š»ŅŠ°Š½ Š½ÓŃŃŠµŠ½Ń ŃŠ°Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½ŠµŠ½ Ó©ŃŃŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Š”Š°Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½ Ó©_ŃŃŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Š¢Š°Ņ£Š“Š°Š»ŅŠ°Š½ ŃŠ°Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½ Ó©ŃŃŃ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ŠŠ¶ŃŃŠ°ŃŅŃŃ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "ŠŠ°ŅŃŃŃŠ°Ņ ŃŃŃ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠ°ŃŠ°Ņ ŠµŠ½ŃŠ½Šµ ŃŠ¾Š·Ń" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ŅŅ±Š¶Š°ŃŃŠ°ŃŠ“Ń ŅŠ°ŃŠ°ŃŃŃŃŃ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠÓ©ŠæŠæŠ°ŃŠ°ŅŃŃ ŅŅ±Š¶Š°ŃŃŠ°ŃŠ“Ń ŅŠ°ŃŠ°Ń" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ŅŅ±Š¶Š°Ń ŃŅ±ŅŃŠ°ŃŃŠ°ŃŃŠ½ ŠµŠ»ŠµŠ¼ŠµŃ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ŅŅ±Š¶Š°Ń ŃŅ±ŅŃŠ°ŃŃŠ°ŃŃŠ½ ŠµŠ»ŠµŠ¼ŠµŃ, ŠŗÓ©ŃŃŃŠ¼Šµ Š¶Š°ŃŠ°Ń Š½Šµ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ ŃŅ±ŅŃŠ°ŃŃŠ°ŃŃ ŃŠøŃŅŃŃ" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Š£Š°ŅŃŃŃŠ° ŃŠ°Š¹Š»Š“Ń Ó©ŃŃŃŃ" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ Š±Š°ŠæŃŠ°ŃŠ»Š°Ń ŃŠ°Š¹Š»Ń" + +#: ../previewer/ev-previewer.c:144 +#: ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ŅŅ±Š¶Š°ŃŃŠ°ŃŠ“Ń Š°Š»Š“ŃŠ½-Š°Š»Š° ŅŠ°ŃŠ°ŃŃŃŃŃ" + +#: ../previewer/ev-previewer-window.c:91 +#: ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ ŃÓŃŃŃŠ·" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŠŃŠµŠŗŃŠµŠ»ŠµŠ½Š³ŠµŠ½ '%s' ŠæŃŠøŠ½ŃŠµŃŃ ŃŠ°Š±ŃŠ»Š¼Š°Š“Ń" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 +#: ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "Š_Š»Š“ŃŅ£ŅŃ ŠæŠ°ŃŠ°Ņ" + +#: ../previewer/ev-previewer-window.c:285 +#: ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "ŠŠ»Š“ŃŅ£ŅŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "Š_ŠµŠ»ŠµŃŃ ŠæŠ°ŃŠ°Ņ" + +#: ../previewer/ev-previewer-window.c:288 +#: ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "ŠŠµŠ»ŠµŃŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../previewer/ev-previewer-window.c:291 +#: ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ ŅÆŠ»ŠŗŠµŠ¹ŃŃ" + +#: ../previewer/ev-previewer-window.c:294 +#: ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ ŠŗŃŃŃŃŠµŠ¹ŃŃ" + +#: ../previewer/ev-previewer-window.c:297 +#: ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ" + +#: ../previewer/ev-previewer-window.c:298 +#: ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "ŠŅ±Š» ŅŅ±Š¶Š°ŃŃŃ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ" + +#: ../previewer/ev-previewer-window.c:342 +#: ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_ŠŠ°ŅŃŃŃŠ°Ņ ŃŃŃ" + +#: ../previewer/ev-previewer-window.c:343 +#: ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "ŠŅŃŠ¼Š“Š°ŅŃ ŅŅ±Š¶Š°ŃŃŃ ŃŠµŃŠµŠ·ŠµŠ½Ń ŃŠ¾Š»ŃŅŃŠ¼ŠµŠ½ Š°Š»Š°ŃŃŠ½Š“Š°Š¹ ŠµŃŃŠæ Š¶Š°Š·ŃŅ ŅŃŠ»Ń" + +#: ../previewer/ev-previewer-window.c:345 +#: ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "ŠŠ°ŃŠ°Ņ Šµ_Š½ŃŠ½Šµ ŃŠ¾Š·Ń" + +#: ../previewer/ev-previewer-window.c:346 +#: ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "ŠŅŃŠ¼Š“Š°ŅŃ ŅŅ±Š¶Š°ŃŃŃ ŃŠµŃŠµŠ·Šµ ŠµŠ½ŃŠ½ ŃŠ¾Š»ŃŅŃŠ¼ŠµŠ½ Š°Š»Š°ŃŃŠ½Š“Š°Š¹ ŠµŃŃŠæ Š¶Š°Š·ŃŅ ŅŃŠ»Ń" + +#: ../previewer/ev-previewer-window.c:558 +#: ../shell/ev-window.c:5663 +msgid "Page" +msgstr "ŠŠ°ŃŠ°Ņ" + +#: ../previewer/ev-previewer-window.c:559 +#: ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "ŠŠ°ŃŠ°ŅŃŃ ŃŠ°Ņ£Š“Š°Ń" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŅŅ±Š¶Š°Ń" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŃŠ°ŃŃ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŃŠ½Š°Š»Š°ŃŃŃ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š¢Š°ŅŃŃŃŠ±Ń:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ŠŠ²ŃŠ¾ŃŃ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŠŃŠ»Ń ŃÓ©Š·Š“ŠµŃ:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ÓØŠ½Š“ŃŃŠ³ŠµŠ½:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ŠŠ°ŃŠ°ŅŠ°Š½:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ŠŠ°ŃŠ°Š»ŅŠ°Š½:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Š¢ŅÆŠ·ŠµŃŃŠ»Š³ŠµŠ½:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ŠŠ°ŃŠ°ŅŃŠ°Ń ŃŠ°Š½Ń:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Š«Ņ£ŅŠ°Š¹Š»Š°ŃŃŠ»ŅŠ°Š½:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ŠŃŃŃŠ¼Ń:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ŅŠ°ŃŃŠæŃŃŠ·Š“ŃŠŗ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ŅŠ°ŅŠ°Š· Ó©Š»ŃŠµŠ¼Ń:" + +#: ../properties/ev-properties-view.c:188 +#: ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ŠŃŠ½ÓŃŃŠµ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f Š¼Š¼" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f Š“ŃŠ¹Š¼" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Š¢ŃŠŗ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ŠŠ°ŃŃŅ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d, Š±Š°ŃŠ»ŃŅŃ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "Š±Š°ŃŠ»ŃŅŃ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 +#: ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŠŅÆŠŗŃŠµŃ..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŅŠ° Š“Š°Š¹ŃŠ½Š“Š°Ń..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ŠŃŅŃŠ°Ń..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŠŠ°ŃŃŠ»ŃŠ“Š° ŠæŠ°ŃŠ°Ņ ā %d, Š±Š°ŃŠ»ŃŅŃ %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ŠŅ±Š» ŠæŃŠøŠ½ŃŠµŃ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ“Ń ŅŠ¾Š»Š“Š°Š¼Š°Š¹Š“Ń." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ŠŠ°ŃŠ°ŅŃŠ°Ń ŃŠ°Ņ£Š“Š°ŃŃ ŅŠ°ŃŠµ" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ŠŃŠŗŠµŃŃŃ" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Š”ŃŠ·Š“ŃŅ£ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ ŠæŠ°ŃŠ°ŅŃŠ°Ń Š°ŃŠ°Š»ŃŅŃŠ½Š“Š° Š±ŃŃŠ“Šµ-Š±ŃŃ ŠæŠ°ŃŠ°Ņ Š¶Š¾Ņ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ŠŠ°ŃŠ°ŅŃŃ Š¼Š°ŃŃŃŠ°Š±ŃŠ°Ń" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ»Š°ŃŃŠ½ Š°Š¹Š¼Š°ŅŅŠ° Š“ŠµŠ¹ŃŠ½ ŠŗŃŃŃŃŠµŠ¹ŃŃ" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ»Š°ŃŃŠ½ Š°Š¹Š¼Š°ŅŅŠ° ŃŃŠ¹Š“ŃŃŃ" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" +"ŠŃŠµŠŗŃŠµŠ»ŠµŠ½Š³ŠµŠ½ ŠæŃŠøŠ½ŃŠµŃ ŠæŠ°ŃŠ°ŅŃŠ½Š° ŃŃŃ ŅÆŃŃŠ½ ŠæŠ°ŃŠ°ŅŃŃ Š¼Š°ŃŃŃŠ°Š±ŃŠ°Ń. ŠŠµŠ»ŠµŃŃ Š½Ņ±ŃŅŠ°Š»Š°ŃŠ“ŃŅ£ Š±ŃŃŠµŃŃŠ½ ŃŠ°Ņ£Š“Š°Ņ£ŃŠ·:\n" +"\n" +"ā¢ \"ŠŃŠ½ÓŃŃŠµ\": ŠŠ°ŃŠ°ŅŃŠ°Ń Ó©Š·Š³ŠµŃŃŃŠ»Š¼ŠµŠ¹Š“Ń.\n" +"\n" +"ā¢ \"ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ»Š°ŃŃŠ½ Š°Š¹Š¼Š°ŅŅŠ° Š“ŠµŠ¹ŃŠ½ ŠŗŃŃŃŃŠµŠ¹ŃŃ\": ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ½ Š°Š¹Š¼Š°ŅŃŠ°Š½ ŅÆŠ»ŠŗŠµŠ½ Š±Š¾Š»ŅŠ°Š½ ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ°ŃŃ Š¾ŅŠ°Š½ Š“ŠµŠ¹ŃŠ½ ŠŗŃŃŃŃŠµŠ¹ŃŃŠ»ŠµŠ“Ń.\n" +"\n" +"ā¢ \"ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ»Š°ŃŃŠ½ Š°Š¹Š¼Š°ŅŅŠ° ŃŃŠ¹Š“ŃŃŃ\": ŠŃŠøŠ½ŃŠµŃ ŠæŠ°ŃŠ°ŅŃŠ½Š° ŃŃŃ ŅÆŃŃŠ½ ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ°ŃŃ ŅÆŠ»ŠŗŠµŠ¹ŃŃŠ»ŠµŠ“Ń Š½Šµ ŠŗŃŃŃŃŠµŠ¹ŃŃŠ»ŠµŠ“Ń.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ŠŠ²ŃŠ¾ Š°Š¹Š½Š°Š»Š“ŃŃŃ Š¼ŠµŠ½ Š¾ŃŃŠ°ŅŠ° ŃŃŃŠ°Š»Š°Ń" + +#: ../libview/ev-print-operation.c:1885 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "ŠŃŠøŠ½ŃŠµŃ Š¼ŠµŠ½ ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ°ŃŃŠ½ŃŅ£ Š±Š°ŅŠ“Š°ŃŃ ŃÓŠ¹ŠŗŠµŃ Š±Š¾Š»Ń ŅÆŃŃŠ½ ÓŃ ŠæŠ°ŃŠ°ŅŃŃ Š°Š¹Š½Š°Š»Š“ŃŃŃ. ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ°ŃŃ ŠæŃŠøŠ½ŃŠµŃ ŠæŠ°ŃŠ°ŅŃ Š¾ŃŃŠ°ŃŃŠ¼ŠµŠ½ ŃŃŃŠ°Š»Š°Š½Š°Š“Ń." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ½ŃŅ£ Ó©Š»ŃŠµŠ¼Š½ ŅŠ¾Š»Š“Š°Š½ŃŠæ, ŠæŠ°ŃŠ°Ņ Ó©Š»ŃŠµŠ¼ŃŠ½ ŃŠ°Ņ£Š“Š°Ń" + +#: ../libview/ev-print-operation.c:1892 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "ŅŠ¾ŃŃŠ»Ń ŃŅ±ŃŃŠ°, ÓŃ ŠæŠ°ŃŠ°Ņ ŅŅ±Š¶Š°ŃŃŠ°ŅŃ ŠæŠ°ŃŠ°ŅŅŠ° ŃÓŠ¹ŠŗŠµŃ Ó©Š»ŃŠµŠ¼Š“Ń ŅŠ°ŅŠ°Š·ŅŠ° Š±Š°ŃŃŠ»Š°Š“Ń." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ŠŠ°ŃŠ°ŅŃŠ°ŃŠ“Ń Š±Š°ŃŅŠ°ŃŃ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ŠæŠ°ŃŠ°ŅŃŠ½ Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ ŅŠ°ŃŠµŃŃ: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ŠŠ¾ŅŠ°ŃŃ Š°Š¹Š½Š°Š»Š“ŃŃŃ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Š¢Ó©Š¼ŠµŠ½ Š°Š¹Š½Š°Š»Š“ŃŃŃ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ŠÓ©ŃŃŠ½ŃŃŃŃ Š¶Š¾ŅŠ°ŃŃ Š°Š¹Š½Š°Š»Š“ŃŃŃ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ŠÓ©ŃŃŠ½ŃŃŃŃ ŃÓ©Š¼ŠµŠ½ Š°Š¹Š½Š°Š»Š“ŃŃŃ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ŅŅ±Š¶Š°Ń ŠŗÓ©ŃŃŠ½ŃŃŃ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ŠŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ ŃŠ¾Ņ£Ń. ŠØŃŅŃ ŅÆŃŃŠ½ ŃŠµŃŃŃŅ£ŃŠ·." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ŠŃŃŃŠ½ŃŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ŠŠ»Š“ŃŅ£ŅŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ŠŠµŠ»ŠµŃŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Š”Š¾Ņ£ŅŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ŠŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Š¢Š°Š±Ń" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "%s ŠæŠ°ŃŠ°ŅŃŠ½Š° Ó©ŃŃ" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s Š¶ŠµŃŃŠ½Šµ Ó©ŃŃ, ā%sā ŃŠ°Š¹Š»ŃŠ½Š“Š°" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ŃŠ°Š¹Š»ŃŠ½Š° Ó©ŃŃ" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s Š¶Ó©Š½ŠµŠ»ŃŃ" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ŠŠ·Š“ŠµŃ:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ŠŠ»_Š“ŃŅ£ŅŃŃŃŠ½ ŃŠ°Š±Ń" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ŠŠ·Š“ŠµŠ»ŠµŃŃŠ½ Š¼ÓŃŃŠ½Š½ŃŅ£ Š°Š»Š“ŃŅ£ŅŃ ŠŗŠµŠ·Š“ŠµŃŃŃŠ½ ŃŠ°Š±Ń" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ŠŠµ_Š»ŠµŃŃŠ½Ń ŃŠ°Š±Ń" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ŠŠ·Š“ŠµŠ»ŠµŃŃŠ½ Š¼ÓŃŃŠ½Š½ŃŅ£ ŠŗŠµŠ»ŠµŃŃ ŠŗŠµŠ·Š“ŠµŃŃŃŠ½ ŃŠ°Š±Ń" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Š _ŠµŠ³ŠøŃŃŃŠ³Šµ ŃÓŃŠµŠ»Š“Ń ŃŠ·Š“ŠµŃ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Š ŠµŠ³ŠøŃŃŃŠ³Šµ ŃÓŃŠµŠ»Š“Ń ŃŠ·Š“ŠµŃŠ“Ń ŅŠ¾ŃŃ/ŃÓ©Š½Š“ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Š¢Š°Ņ£Š±Š°ŃŠ°:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ŠÓŠ»ŃŠ¼Š“ŠµŠ¼Šµ" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ŠŃŠŗŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ŠŃŠ»Ń" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ŠÓ©Š¼ŠµŠŗ" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ŠŠ°Ņ£Š° ŠæŠ°ŃŠ°Š³ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ŠŠ°ŃŠ°Š³ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ŠŃŃŃŃŃŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ŅŠøŃŠ»ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ŠØŠµŅ£Š±ŠµŃ" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ŠŠµŠ»Š³ŃŃŃŠ·" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ŠŅ£Š“Š°ŃŠæŠ° ŅŠ°ŃŠøŠµŃŃŠµŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Š¢ŅÆŃ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Š”ŃŠøŠ»Ń:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ŠÓ©Š»Š“ŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ŠÓ©Š»Š“ŃŃ ŠµŠ¼ŠµŃ" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Š¢ŠµŃŠµŠ·ŠµŠ½ŃŅ£ Š±Š°ŃŃŠ°ŠæŅŃ ŅŠ°Š»ŠæŃ:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ŠŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ŠŠ°Š±Ń" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ ŃŠµŠ¶ŠøŠ¼ŃŠ½Š“Šµ Š¾ŃŃŠ½Š“Š°Š»Ń" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ŅŅ±Š¶Š°ŃŃ ŅÆŃŃŠ½ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŠŠ¹Š½Š°Š»Š“ŃŃŃŠ“Š° %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d ŅŅ±Š¶Š°Ń ŃŅÆŃŠ»ŠµŠ½Š“ŃŃŃŠ»Š“Ń, Š±Š°ŃŠ»ŃŅŃ %d" + +#: ../shell/ev-convert-metadata.c:165 +#: ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ŠŠµŃŠ°Š°ŅŠæŠ°ŃŠ°Ń Š°Š¹Š½Š°Š»Š“ŃŃŃŠ“Š°" + +#: ../shell/ev-convert-metadata.c:187 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Evince ŅŠ¾Š»Š“Š°Š½Š°ŃŃŠ½ Š¼ŠµŃŠ°Š°ŅŠæŠ°ŃŠ°Ń ŠæŃŃŃŠ¼Ń Ó©Š·Š³ŠµŃŃŃŠ»Š³ŠµŠ½, ŃŠ¾Š» ŅÆŃŃŠ½ Š¾Š½Ń Š°Š¹Š½Š°Š»Š“ŃŃŃ ŠŗŠµŃŠµŠŗ. ŠŠ³ŠµŃ Š°Š¹Š½Š°Š»Š“ŃŃŃŠ“Š°Š½ Š±Š°Ń ŃŠ°ŃŃŃŠ»ŃŠ°, Š¼ŠµŃŠ°Š°ŅŠæŠ°ŃŠ°Ń ŅŠ¾ŃŃ Š¶Ņ±Š¼ŃŃ ŃŃŃŠµŠ¼ŠµŠ¹Š“Ń." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Š”Š¾Ņ£ŅŃ ŅŠ¾Š»Š“Š°Š½ŃŠ»ŅŠ°Š½ ŅŅ±Š¶Š°ŃŃŃ Š°ŃŃ" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "ŅŅ±Š¶Š°ŃŃ Š±Š»Š¾ŠŗŃŠ°Š»ŅŠ°Š½, Š¶ÓŠ½Šµ Š¾Š½Ń Š°ŃŃ ŅÆŃŃŠ½ ŠæŠ°ŃŠ¾Š»ŃŠ“Ń ŠµŠ½Š³ŃŠ·Ń ŠŗŠµŃŠµŠŗ." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ Š±_Š»Š¾ŠŗŃŠ°ŃŠ“Š°Š½ Š±Š¾ŃŠ°ŃŃ" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ŠŠ°ŃŠ¾Š»ŃŠ“Ń ŠµŠ½Š³ŃŠ·ŃŅ£ŃŠ·" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ŠŠ°ŃŠ¾Š»Ń ŠŗŠµŃŠµŠŗ" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ŅŅ±Š¶Š°ŃŃ Š±Š»Š¾ŠŗŃŠ°Š»ŅŠ°Š½ Š¶ÓŠ½Šµ Š¾Š½Ń Š°ŃŃ ŅÆŃŃŠ½ ŠæŠ°ŃŠ¾Š»Ń ŠŗŠµŃŠµŠŗ." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ŠŠ°ŃŠ¾Š»Ń:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ŠŠ°ŃŠ¾Š»ŃŠ“Ń _ŠŗÓ©Šæ Ņ±Š·Š°Š¼Š°Š¹ Ņ±Š¼ŃŃŃ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ŠØŃŅŅŠ°Š½ŅŠ° Š“ŠµŠ¹ŃŠ½ ŃŠ°Ņ_ŃŠ°Ń" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ÓŃŅŠ°ŃŠ°_Š½ŅŠ° ŠµŃŃŠµ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ŅŠ°ŃŠøŠµŃŃŠµŃŃ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ŠŠ°Š»ŠæŃ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ŅŠ°ŃŃŠæŃŠµŃ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ŅŅ±Š¶Š°Ń Š»ŠøŃŠµŠ½Š·ŠøŃŃŃ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ŅŠ°ŃŃŠæ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ŅŠ°ŃŃŠæ Š°ŅŠæŠ°ŃŠ°ŃŃŠ½ Š¶ŠøŠ½Š°Ńā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ŅŠ¾Š»Š“Š°Š½Ń ŃŠ°ŃŃŃŠ°ŃŃ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ŠÓŃŃŠ½Š“ŃŠŗ Š»ŠøŃŠµŠ½Š·ŠøŃ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ŠŠµŠ¹ŃŠ½Š³Ń Š°ŅŠæŠ°ŃŠ°Ń" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Š¢ŃŠ·ŃŠ¼" + +#: ../shell/ev-sidebar-annotations.c:203 +#: ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ŠŅ£Š“Š°ŃŠæŠ°Š»Š°Ń" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ŠÓŃŃŠ½" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ŠÓŃŃŠ½Š“ŃŠŗ ŠæŃŠŗŃŃŠ“Ń ŅŠ¾ŃŃ" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ŅŠ¾ŃŃ" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ŅŅ±Š¶Š°ŃŃŠ° Š°Ņ£Š“Š°ŃŠæŠ°Š»Š°Ń Š¶Š¾Ņ" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ŠŠ°ŃŠ°Ņ %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Š°Ń" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ŅŠ°Š±Š°ŃŃŠ°Ń" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ŠŠ°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃ..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ŠŠ°Š·Š¼Ņ±Š½Ń" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Ņ®Š»Š³ŃŠ»ŠµŃ" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "ŠŠ°ŃŠ°Ņ %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "ŠŠ°ŃŠ°Ņ %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ŅŅ±Š¶Š°ŃŃŠ° ŠæŠ°ŃŠ°ŅŃŠ°Ń Š¶Š¾Ņ" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ŅŅ±Š¶Š°ŃŃŠ° ŃŠµŠŗ Š±Š¾Ń ŠæŠ°ŃŠ°ŅŃŠ°Ń Š±Š°Ń" + +#: ../shell/ev-window.c:1627 +#: ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ Š°ŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ŅŅ±Š¶Š°ŃŃŃ ā%sā ŃŃŃŠ½ŠµŠ½ Š¶ŅÆŠŗŃŠµŃ" + +#: ../shell/ev-window.c:1906 +#: ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŅŅ±Š¶Š°Ń Š¶ŅÆŠŗŃŠµŠ»ŃŠæ Š°Š»ŃŠ½ŃŠ“Š° (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ŅŠ°ŃŃŅŃŠ°ŅŃ ŃŠ°Š¹Š»Š“Ń Š¶ŅÆŠŗŃŠµŃ ŃÓŃŃŃŠ·." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "ŅŅ±Š¶Š°ŃŃŃ %s ŃŃŃŠ½ŠµŠ½ ŅŠ°Š¹ŃŠ° Š¶ŅÆŠŗŃŠµŃ" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ŅŅ±Š¶Š°ŃŃŃ ŅŠ°Š¹ŃŠ° Š¶ŅÆŠŗŃŠµŃ ŃÓŃŃŃŠ·." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ Š°ŃŃ" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ŅŅ±Š¶Š°ŃŃŃ %s ŃŃŃŠ½Šµ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Ń %s ŃŃŃŠ½Šµ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Š”ŃŃŠµŃŃŃ %s ŃŃŃŠ½Šµ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:2664 +#: ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Š¤Š°Š¹Š»Š“Ń ā%sā ŠµŃŃŠæ ŃŠ°ŅŃŠ°Ń Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ŅŅ±Š¶Š°ŃŃŃ Š¶ŅÆŠŗŃŠµŃ (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Ń Š¶ŅÆŠŗŃŠµŃ (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Š”ŃŃŠµŃŃŃ Š¶ŅÆŠŗŃŠµŃ (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ŠÓ©ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ŠŠµŠ·ŠµŠŗŃŠµ %d Š¶Ņ±Š¼ŃŃ Š±Š°Ń" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā Š¶Ņ±Š¼ŃŃŃŠ½ Š±Š°ŃŃŠæ ŃŃŅŠ°ŃŃ" + +#: ../shell/ev-window.c:3402 +msgid "Document contains form fields that have been filled out. If you don't save a copy, changes will be permanently lost." +msgstr "ŅŅ±Š¶Š°ŃŃŠ° ŃŠ¾Š»ŃŃŃŃŠ»ŅŠ°Š½ ŃŠ¾ŃŠ¼Š° Ó©ŃŃŃŃŠµŃŃ Š±Š°Ń. ŠÓ©ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Š¼Š°ŃŠ°Ņ£ŃŠ·, Ó©Š·Š³ŠµŃŃŃŃŠµŃ Š¶Š¾ŅŠ°Š»Š°Š“Ń." + +#: ../shell/ev-window.c:3406 +msgid "Document contains new or modified annotations. If you don't save a copy, changes will be permanently lost." +msgstr "ŅŅ±Š¶Š°ŃŃŠ° Š¶Š°Ņ£Š° Š½Šµ ŃŅÆŠ·ŠµŃŃŠ»Š³ŠµŠ½ Š°Ņ£Š“Š°ŃŠæŠ°Š»Š°Ń Š±Š°Ń. ŠÓ©ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Š¼Š°ŃŠ°Ņ£ŃŠ·, Ó©Š·Š³ŠµŃŃŃŃŠµŃ Š¶Š¾ŅŠ°Š»Š°Š“Ń." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ŠŠ°Š±Ń Š°Š»Š“ŃŠ½Š“Š° ā%sā ŅŅ±Š¶Š°ŃŃŠ½ŃŅ£ ŠŗÓ©ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Ń ŠŗŠµŃŠµŠŗ ŠæŠµ?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Š”Š°ŅŃŠ°_Š¼Š°Š¹-Š°Ņ Š¶Š°Š±Ń" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "ŠÓ©_ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ŠŠ°Š±Ń Š°Š»Š“ŃŠ½Š“Š° ā%sā Š¶Ņ±Š¼ŃŃŃŠ½ Š±Š°ŃŃŠæ ŃŃŅŠ°ŃŃŠ“ŃŅ£ Š°ŃŅŃŠ°Š»ŃŃŠ½ ŠŗŅÆŃŃ ŠŗŠµŃŠµŠŗ ŠæŠµ?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ŅŠ°Š·ŃŃ %d Š±Š°ŃŃŠæ ŃŃŅŠ°ŃŃ Š¶Ņ±Š¼ŃŃŃ Š±ŠµŠ»ŃŠµŠ½Š“Ń. ŠŠ°Š±Ń Š°Š»Š“ŃŠ½Š“Š° Š¾Š»Š°ŃŠ“ŃŅ£ Š°ŃŅŃŠ°Š»ŃŃŠ½ ŠŗŅÆŃŃ ŠŗŠµŃŠµŠŗ ŠæŠµ?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Š¢ŠµŃŠµŠ·ŠµŠ½Ń Š¶Š°ŠæŃŠ°Ņ£ŃŠ·, ŠŗŠµŠ·ŠµŠŗŃŠµŠ³Ń Š¶Ņ±Š¼ŃŃŃŠ°Ń Š±Š°ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃŠ»Š¼Š°Š¹ ŅŠ°Š»Š°Š“Ń." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "_ŠŠ°ŃŠæŠ°Š“Š°Š½ Š±Š°Ń ŃŠ°ŃŃŃ Š¼ŠµŠ½ Š¶Š°Š±Ń" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ŠŠ°ŃŠæŠ°Š½Ń Š°_ŃŅŃŠ°ŃŠ“Š°Š½ ŠŗŠµŠ¹ŃŠ½ Š¶Š°Š±Ń" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "ŠŠ°Š½ŠµŠ»ŃŠ“ŠµŃ ŃŅÆŠ·ŠµŃŃŃŃŃŃ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ŠÓ©Š¼ŠµŠŗŃŃ ŠŗÓ©ŃŃŠµŃŃ ŠŗŠµŠ·ŃŠ½Š“Šµ ŅŠ°ŃŠµ ŠŗŠµŃŃŃ" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŅŅ±Š¶Š°ŃŃŠ°Ń ŅŠ°ŃŠ°ŃŃŃŃŃ\n" +"ŅŠ¾Š»Š“Š°Š½ŃŠ“Š° %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Evince ŠµŃŠŗŃŠ½ Š±Š°ŅŠ“Š°ŃŠ»Š°Š¼Š°; ŃŃŠ· Š¾Š½Ń Free Software Foundation ŃŃŅŠ°ŃŅŠ°Š½ GNU General Public License Š°ŃŃŃŠ½Š“Š° ŠµŃŠŗŃŠ½ ŃŠ°ŃŠ°ŃŠ° Š½Šµ/Š¶ÓŠ½Šµ Ó©Š·Š³ŠµŃŃŠµ Š°Š»Š°ŃŃŠ·; Š»ŠøŃŠµŠ½Š·ŠøŃ Š½Ņ±ŃŅŠ°ŃŃ 2 Š½Šµ (ŃŠ°Š½Š“Š°ŃŃŅ£ŃŠ·ŃŠ°) ŠŗŠµŠ·-ŠŗŠµŠ»Š³ŠµŠ½ ŠŗŠµŠ¹ŃŠ½ ŃŃŅŅŠ°Š½.\n" + +#: ../shell/ev-window.c:4567 +msgid "Evince 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.\n" +msgstr "Evince ŠæŠ°Š¹Š“Š°Š»Ń Š±Š¾Š»Š°Š“Ń Š“ŠµŠ³ŠµŠ½ ŃŠµŠ½ŃŠ¼Š¼ŠµŠ½ ŃŠ°ŃŠ°ŃŃŠ»Š°Š“Ń, Š±ŃŃŠ°Ņ ŠŠØŅŠŠŠŠŠ ŠŠŠŠŠŠŠŠŠ Š±ŠµŃŃŠ»Š¼ŠµŠ¹Š“Ń; ŠŠŠŠŠŠ Š¦ŠŠÆŠŠ«Ņ ŅŅ°ŠŠŠ«ŠŠ«Ņ Š½ŠµŠ¼ŠµŃŠµ Š±ŠµŠ»Š³ŃŠ»Ń Š±ŃŃ ŠŠŅŠ”ŠŠ¢Š¢ŠŠ ŅŠ Š”ÓŠŠŠŠ” ŠŠŠŠŠ¢ŠŠŠ ŅÆŃŃŠ½ Š“Šµ. ŠÓ©Š±ŃŃŠµŠŗ Š±ŃŠ»Ń ŅÆŃŃŠ½ GNU General Public License ŅŠ°ŃŠ°Ņ£ŃŠ·.\n" + +#: ../shell/ev-window.c:4571 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "Š”ŃŠ· Š¾ŃŃ Evince Š±Š°ŅŠ“Š°ŃŠ»Š°ŃŃŠ¼ŠµŠ½ Š±ŃŃŠ³Šµ GNU General Public License ŠŗÓ©ŃŃŃŠ¼ŠµŃŃŠ½ Š°Š»ŃŃŅ£ŃŠ· ŠŗŠµŃŠµŠŗ ŠµŠ“Ń; Š¾Š»Š°Š¹ Š±Š¾Š»Š¼Š°ŃŠ°, Free Software Foundation, Inc. Ņ±Š¹ŃŠ¼ŃŠ½Š° Ń Š°Š±Š°ŃŠ»Š°ŃŃŅ£ŃŠ·, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince Š°Š²ŃŠ¾ŃŠ»Š°ŃŃ" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2010" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d Š±Ņ±Š» ŠæŠ°ŃŠ°ŅŃŠ°Š½ ŃŠ°Š±ŃŠ»Š“Ń" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Š¢Š°Š±ŃŠ»Š¼Š°Š“Ń" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ŃŠ·Š“ŠµŃ ŅÆŃŃŠ½ ŅŠ°Š»Š“Ń" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "Š¢ŅÆ_Š·ŠµŃŃ" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Š¢ŅÆŃŃ" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "ÓØ_ŃŃ" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_ŠÓ©Š¼ŠµŠŗ" + +#. File menu +#: ../shell/ev-window.c:5402 +#: ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "Š_ŃŃā¦" + +#: ../shell/ev-window.c:5403 +#: ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "ŠŠ°Ń Š±Š¾Š»ŃŠæ ŃŅ±ŃŅŠ°Š½ ŅŅ±Š¶Š°ŃŃŃ Š°ŃŃ" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "ŠÓ©_ŃŃŃŠ¼ŠµŃŃŠ½ Š°ŃŃ" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŅŃŠ¼Š“Š°ŅŃ ŅŅ±Š¶Š°ŃŃŃŅ£ ŠŗÓ©ŃŃŃŠ¼ŠµŃŃŠ½ Š¶Š°Ņ£Š° ŃŠµŃŠµŠ·ŠµŠ“Šµ Š°ŃŃ" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "ŠÓ©ŃŃŃ_Š¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Ń..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "ŠŅŃŠ¼Š“Š°ŅŃ ŅŅ±Š¶Š°ŃŃŃŅ£ ŠŗÓ©ŃŃŃŠ¼ŠµŃŃŠ½ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "ŠŠ°_ŃŠæŠ°ŅŠ° ŃŃŅŠ°ŃŃā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "ŅŠ°Ń_ŠøŠµŃŃŠµŃŃ" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Š_Š°ŃŠ»ŃŅŃŠ½ ŃŠ°Ņ£Š“Š°Ń" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "Š_Š·Š“ŠµŃā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "ŅŅ±Š¶Š°ŃŃŠ°Š½ ŃÓ©Š·Š“Ń Š½Šµ Š¼ÓŃŃŠ½Š“Ń ŃŠ°Š±Ń" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "Š”Š°Š¹_Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Š”_Š¾Š»ŅŠ° Š±Ņ±ŃŃ" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "ŠŅ£Ņ_Š° Š±Ņ±ŃŃ" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "ŠŅŃ_Š¼Š“Š°ŅŃ Š±Š°ŠæŃŠ°ŃŠ»Š°ŃŠ“Ń Š½ŠµŠ³ŃŠ·Š³Ń ŃŠµŃŃŠ½Š“Šµ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "ŅŠ°_Š¹ŃŠ° Š¶ŅÆŠŗŃŠµŃ" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "ŅŅ±Š¶Š°ŃŃŃ ŅŠ°Š¹ŃŠ° Š¶ŅÆŠŗŃŠµŃ" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "ŠŠ²ŃŠ¾Š°_Š¹Š½Š°Š»Š“ŃŃŃ" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_ŠŃŃŃŠ½ŃŃ ŠæŠ°ŃŠ°Ņ" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "ŠŃŃŃŠ½ŃŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "Š”_Š¾Ņ£ŅŃ ŠæŠ°ŃŠ°Ņ" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Š”Š¾Ņ£ŅŃ ŠæŠ°ŃŠ°ŅŅŠ° Ó©ŃŃ" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "ŅŅ±ŃŠ°_Š¼Š°ŃŃ" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "Š_ŃŃ ŃŃŃŠ°Š»Ń" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Š¢Š¾Š»ŃŅ ŃŠŗŃŠ°Š½Š½Š°Š½ ŃŃŅŃ" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Š¢Š¾Š»ŃŅ ŃŠŗŃŠ°Š½Š½Š°Š½ ŃŃŅŃ" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ½Ń Š±Š°ŃŃŠ°Ń" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ½Ń Š±Š°ŃŃŠ°Ń" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_ŠŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Š”Š°Š¹Š¼Š°Š½Š“Š°Ń ŠæŠ°Š½ŠµŠ»ŃŠ½ ŠŗÓ©ŃŃŠµŃŃ Š½Šµ Š¶Š°ŃŃŃŃ" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "ŠŅÆ_Š¹ŃŃ ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "ŠŅÆŠ¹ŃŃ ŠæŠ°Š½ŠµŠ»ŃŠ½ ŠŗÓ©ŃŃŠµŃŃ Š½Šµ Š¶Š°ŃŃŃŃ" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "Ņ®_Š·ŃŠ»ŃŃŃŃŠ·" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Š¢ŅÆŠ³ŠµŠ» ŅŅ±Š¶Š°ŃŃŃ ŠŗÓ©ŃŃŠµŃŃ" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "Ņ_Š¾Ń" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "ŠŃŃ ŃŠ°ŅŃŃŃŠ° ŠµŠŗŃ ŠæŠ°ŃŠ°ŅŃŃ ŠŗÓ©ŃŃŠµŃŃ" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "Š¢_Š¾Š»ŃŅ ŃŠŗŃŠ°Š½ŅŠ°" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Š¢ŠµŃŠµŠ·ŠµŠ½Ń Š±ŅÆŠŗŃŠ» ŃŠŗŃŠ°Š½Š“Ń Š°Š»Š°ŃŃŠ½Š“Š°Š¹ Š¶Š°Š·ŃŅ ŅŃŠ»Ń" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "ŠŃŠµ_Š·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "ŅŅ±Š¶Š°ŃŃŃ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ ŃŠµŃŃŠ½Š“Šµ Š¶ŃŠ±ŠµŃŃ" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Š¢ŠµŃŃŃŃŠµŠ»Š³ŠµŠ½ ŃŅÆŃŃŠµŃ" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Š¢ŅÆŃŃŠµŃŃ ŃŠµŃŃŃŃŠµŠ»Š³ŠµŠ½ ŠæŠ°ŃŠ°ŅŃŠ°ŃŠ“Ń ŠŗÓ©ŃŃŠµŃŃ" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "Š”Ń_Š»ŃŠµŠ¼ŠµŠ½Ń Š°ŃŃ" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "ÓØ_ŃŃ" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "ŠŠ°Ņ£Š° ŃŠµŃŠµ_Š·ŠµŠ“Šµ Š°ŃŃ" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "Š”ŃŠ»ŃŠµŠ¼Šµ Š°Š“Ń_ŠµŃŃŠ½ ŠŗÓ©ŃŃŃŃ" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "_Š”ŃŃŠµŃŃŃ ŅŠ°Š»Š°Š¹ŃŠ° ŃŠ°ŅŃŠ°Ńā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Š”ŃŃŠµŃ_ŃŃ ŠŗÓ©ŃŃŃŃ" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "ŠŅ£Š“Š°ŃŠæŠ° ŅŠ°ŃŠøŠµŃŃŠµŃŃ..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "Š”Š°Š»_ŃŠ½ŃŠ¼Š“Ń Š°ŃŃ" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Š”_Š°Š»ŃŠ½ŃŠ¼Š“Ń ŅŠ°Š»Š°Š¹ŃŠ° ŃŠ°ŅŃŠ°Ńā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Ņ®Š»ŠŗŠµŠ¹ŃŃ" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Ņ®Š»ŠŗŠµŠ¹ŃŃ Š“ŠµŅ£Š³ŠµŠ¹ŃŠ½ Š±Š°ŠæŃŠ°Ń" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "ŠŠ°Š²ŠøŠ³Š°ŃŠøŃ" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "ŠŃŃŅŠ°" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "ŅŠ°ŃŠ°Š»ŅŠ°Š½ Š±ŠµŃŃŠµŃ Š°ŃŠ°ŃŃŠ½Š“Š° Š¶ŃŠ»Š¶Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "ŠŠ»Š“ŃŅ£ŅŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "ŠŠµŠ»ŠµŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Ņ®Š»ŠŗŠµŠ¹ŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ŠŃŃŃŃŠµŠ¹ŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "ŠŠ½ŃŠ½Šµ Š“ŠµŠ¹ŃŠ½ ŃŠ¾Š·Ń" + +#: ../shell/ev-window.c:5890 +#: ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Š”ŃŃŃŅŃ ŅŠ¾Š»Š“Š°Š½Š“Š°Š½Ń Š¶Ó©Š½ŠµŠ»ŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Š”ŃŃŃŅŃ ŃŃŠ»ŃŠµŠ¼ŠµŠ½Ń Š°ŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Š”ŃŃŠµŃŃŃ ŃŠ°ŅŃŠ°Ń ŅÆŃŃŠ½ ŃÓŠ¹ŠŗŠµŃ ŠæŃŃŃŠ¼Š“Ń ŃŠ°Š±Ń Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Š”ŃŃŠµŃŃŃ ŃŠ°ŅŃŠ°Ń Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Š”ŃŃŠµŃŃŃ ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Ń Š°ŃŃ Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Ń ŃŠ°ŅŃŠ°Ń Š¼ŅÆŠ¼ŠŗŃŠ½ ŠµŠ¼ŠµŃ." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Š”Š°Š»ŃŠ½ŃŠ¼Š“Ń ŃŠ°ŅŃŠ°Ń" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ŠŠ°ŃŠ¾Š»Ń ŠŗŠµŃŠµŠŗ" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "By extension" + +#: ../shell/main.c:69 +#: ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ŅŅ±Š¶Š°ŃŃŠ°ŃŠ“Ń ŅŠ°ŃŠ°ŃŃŃŃŃ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "ŠÓ©ŃŃŠµŃŃ ŅÆŃŃŠ½ ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ½ŃŅ£ Š±ŠµŠ»Š³ŃŃŃ." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "ŠÓ©ŃŃŠµŃŃ ŅÆŃŃŠ½ ŅŅ±Š¶Š°Ń ŠæŠ°ŃŠ°ŅŃŠ½ŃŅ£ Š½Ó©Š¼ŃŃŃ." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Evince ŃŠ¾Š»ŃŅ ŃŠŗŃŠ°Š½ ŃŠµŠ¶ŠøŠ¼ŃŠ½Š“Šµ Š¶Ó©Š½ŠµŠ»ŃŃ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Evince ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ ŃŠµŠ¶ŠøŠ¼ŃŠ½Š“Šµ Š¶Ó©Š½ŠµŠ»ŃŃ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Evince Š°Š»Š“ŃŠ½-Š°Š»Š° ŅŠ°ŃŠ°ŃŃŃ ŃŠµŠ¶ŠøŠ¼ŃŠ½Š“Šµ Š¶Ó©Š½ŠµŠ»ŃŃ" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ŅŅ±Š¶Š°ŃŃŠ°Š½ ŃŠ°Š±Ń ŅÆŃŃŠ½ ŃÓ©Š· Š½Šµ Š¼ÓŃŃŠ½" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Š¤ŠŠŠā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "ŠŠ¾Š³ŠøŠŗŠ°Š»ŃŅ Š¾ŠæŃŠøŃŠ»Š°Ń ŅŠ¾Š»Š“Š°Š½ŃŠ“Š°: true ŅÆŠ»Š³ŃŠ»ŠµŃŠ“Ń Š¶Š°ŃŠ°ŃŠ“Ń ŃŃŠŗŠµ ŅŠ¾ŃŠ°Š“Ń, Š°Š» false ŃÓ©Š½Š“ŃŃŠµŠ“Ń." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ŅŅ±Š¶Š°ŃŃŠ°ŃŃŠ½ Š°Š»Š“ŃŠ½-Š°Š»Š° ŅŠ°ŃŠ°Ń ŅÆŠ»Š³ŃŠ»ŠµŃŃŠ½ Š¶Š°ŃŠ°ŃŠ“Ń ŃŃŠŗŠµ ŅŠ¾ŃŃ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ŅŅ±Š¶Š°ŃŃŠ°ŃŃŠ½ Š°Š»Š“ŃŠ½-Š°Š»Š° ŅŠ°ŃŠ°Ń ŅÆŠ»Š³ŃŠ»ŠµŃŃŠ½ Š¶Š°ŃŠ°Ń ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŃ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "PDF ŅŅ±Š¶Š°ŃŃŠ°ŃŃŠ½ Š°Š»Š“ŃŠ½-Š°Š»Š° ŅŠ°ŃŠ°Ń ŅÆŠ»Š³ŃŠ»ŠµŃŃŠ½ Š¶Š°ŃŠ°Ń ŅÆŃŃŠ½ ŠŗŠµŃŠµŠŗ ŠŗŠ¾Š¼Š°Š½Š“Š° Š¼ŠµŠ½ Š¾Š½ŃŅ£ Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŃŠµŃŃ. ŠÓ©Š±ŃŃŠµŠŗ Š±ŃŠ»Ń ŅÆŃŃŠ½ Caja thumbnailer ŅŅ±Š¶Š°ŃŃŠ°Š¼Š°ŃŃŠ½ ŅŠ°ŃŠ°Ņ£ŃŠ·." + diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 00000000..a3bbe371 --- /dev/null +++ b/po/kn.po @@ -0,0 +1,1620 @@ +# translation of evince.master.kn.po to Kannada +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad <svenkate@redhat.com>, 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.master.kn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-04-21 16:14+0530\n" +"PO-Revision-Date: 2010-07-23 13:18+0530\n" +"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n" +"Language-Team: LC_MESSAGES <kde-i18n-doc@kde.org>\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-Generator: Lokalize 1.0\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"ą²ą²¾ą²®ą²æą²ą³ ą²Ŗą³ą²øą³ą²¤ą²ą²µą²Øą³ą²Øą³ ą²øą²ą²ą³ą²ą²Øą²¦ą²æą²ą²¦ ą²¹ą³ą²°ą²¤ą³ą²ą³ą²Æą²²ą³ ą²ą²ą³ą²ą³ ā%sā ą² ą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą³ą²µą²²ą³ą²²ą²æ ą²¦ą³ą²· " +"ą²ą²ą²ą²¾ą²ą²æą²¦ą³: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą²ą²¾ą²®ą²æą²ą³ ą²Ŗą³ą²øą³ą²¤ą²ą²µą²Øą³ą²Øą³ ą²øą²ą²ą³ą²ą²Øą²¦ą²æą²ą²¦ ą²¹ą³ą²°ą²¤ą³ą²ą³ą²Æą³ą²µą²²ą³ą²²ą²æ ą²ą²ą³ą²ą³ ā%sā ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ą²ą²ą³ą²ą³ ā%sā ą²øą²¾ą²®ą²¾ą²Øą³ą²Æ ą²°ą³ą²¤ą²æą²Æą²²ą³ą²²ą²æ ą²ą³ą²Øą³ą²ą³ą²ą²”ą²æą²²ą³ą²²." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą²ą²ą²¦ą³ ą²ą²¾ą²®ą²æą²ą³ ą²Ŗą³ą²øą³ą²¤ą²ą²¦ MIME ą²¬ą²ą³ą²Æą²²ą³ą²²: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą² ą²¬ą²ą³ą²Æ ą²ą²¾ą²®ą²æą²ą³ ą²Ŗą³ą²øą³ą²¤ą²ą²µą²Øą³ą²Øą³ ą²øą²ą²ą³ą²ą²Øą²¦ą²æą²ą²¦ ą²¹ą³ą²°ą²¤ą³ą²ą³ą²Æą²²ą³ ą²øą³ą²ą³ą²¤ą²µą²¾ą²¦ ą²ą²ą³ą²ą³ą²Æą³ ą²ą²ą²”ą³ą²¬ą²ą²¦ą²æą²²ą³ą²²" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą²ą³ą²¤ą³ą²¤ą²æą²°ą²¦ MIME ą²¬ą²ą³" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą²ą²”ą²¤ą²µą³ ą²¹ą²¾ą²³ą²¾ą²ą²æą²¦ą³" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ą²ą²°ą³ą²ą³ą²µą²æą²Øą²²ą³ą²²ą²æ ą²Æą²¾ą²µą³ą²¦ą³ ą²ą²”ą²¤ą²ą²³ą³ ą²ą²²ą³ą²²" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "ą²ą²°ą³ą²ą³ą²µą³ %s ą²Øą²²ą³ą²²ą²æ ą²Æą²¾ą²µą³ą²¦ą³ ą²ą²æą²¤ą³ą²°ą²ą²³ą³ ą²ą²ą²”ą³ą²¬ą²ą²¦ą²æą²²ą³ą²²" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą² ą²Øą³ą²Øą³ ą² ą²³ą²æą²øą³ą²µą²²ą³ą²²ą²æ ą²ą²ą²¦ą³ ą²¦ą³ą²· ą²ą²ą²ą²¾ą²ą²æą²¦ą³." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ą²¦ą³ą²· %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą²ą²¾ą²®ą²æą²ą³ ą²Ŗą³ą²øą³ą²¤ą²ą²ą²³ą³" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²øą²°ą²æą²Æą²²ą³ą²²ą²¦ ą²µą²æą²Øą³ą²Æą²¾ą²øą²µą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²¦ą³" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²¹ą²²ą²µą²¾ą²°ą³ ą²ą²”ą²¤ą²ą²³ą²æą²ą²¦ ą²®ą²¾ą²”ą²²ą³ą²Ŗą²ą³ą²ą²æą²¦ą³. ą²ą²ą²¦ą³ ą² ą²„ą²µ ą²ą²ą²¦ą²ą³ą²ą²æą²ą²¤ ą²¹ą³ą²ą³ą²ą²æą²Ø ą²ą²ą²¤ą²¹ ą²ą²”ą²¤ą²ą²³ą²Øą³ą²Øą³ " +"ą²Øą²æą²²ą³ą²ą²æą²øą²æą²ą³ą²³ą³ą²³ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²²ą³ą²²." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Djvu ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²øą²°ą²æą²Æą²²ą³ą²²ą²¦ ą²µą²æą²Øą³ą²Æą²¾ą²øą²µą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²¦ą³" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ą²¹ą³ą²¦ą³" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą²ą²²ą³ą²²" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "ą²¬ą²ą³ 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "ą²¬ą²ą³ 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "ą²¬ą²ą³ 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "ą²ą³ą²°ą³ą²¬ą²ą³ą²Æ" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "ą²¬ą²ą³ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "ą²¬ą²ą³ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "ą²ą³ą²°ą³ą²¬ą²ą³ą²Æ (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą²ą³ą²¤ą³ą²¤ą²æą²°ą²¦ ą² ą²ą³ą²·ą²°ą²¶ą³ą²²ą²æą²Æ ą²¬ą²ą³" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą²¹ą³ą²øą²°ą²æą²²ą³ą²²ą²¦" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ą² ą²”ą²ą²ą³ą²³ą²æą²øą²²ą²¾ą²¦ ą²øą²¬ą³āą²øą³ą²ą³" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ą² ą²”ą²ą²ą³ą²³ą²æą²øą²²ą²¾ą²¦" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą² ą²”ą²ą²ą³ą²³ą²æą²øą²¦ą³ ą²ą²°ą³ą²µ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą² ą²®ą²¾ą²Øą³ą²Æ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą²ą²ą²Ŗą³ą²°ą³ą²øą³ā ą²ą²¾ą²°ą³ą²«ą²²ą²ą²ą²³ą³(ą²øą³ą²²ą³ą²”ą³āą²ą²³ą³)" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą²¦ą³ą²·ą²µą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą²øą²¾ą²ą²·ą³ą²ą³ ą²®ą³ą²®ą³ą²°ą²æą²Æą³ ą²²ą²ą³ą²Æą²µą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ą²ą²æą²Ŗą³ ą²øą²æą²ą³ą²Øą³ą²ą²°ą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą²²ą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ą² ą²®ą²¾ą²Øą³ą²Æ ą²ą²æą²Ŗą³ ą²ą²”ą²¤" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ą²¬ą²¹ą³ ą²ą²”ą²¤ ą²ą²æą²Ŗą³āą²ą²³ą²æą²ą³ ą²¬ą³ą²ą²¬ą²²ą²µą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²²ą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą²ą²”ą²¤ą²¦ą²æą²ą²¦ ą²¦ą²¤ą³ą²¤ą²¾ą²ą²¶ą²µą²Øą³ą²Øą³ ą²ą²¦ą²²ą²¾ą²ą²²ą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ą²ą²æą²Ŗą³ ą²ą²°ą³ą²ą³ą²µą²æą²Øą²²ą³ą²²ą²æ ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą²²ą²æą²²ą³ą²²" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą² ą²ą³ą²ą²¾ą²¤ ą²¦ą³ą²·" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą²²ą³ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą²²ą³ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą²Ŗą³ą²øą³ą²ą³āą²øą³ą²ą³ą²°ą²æą²Ŗą³ą²ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą² ā%sā ą² ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą²æą²²ą³ą²²: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą² ā%sā ą² ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²æą²²ą³ą²²: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą² ā%sā ą² ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²æą²²ą³ą²²" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą²ą²”ą²¤ą²¦ ą²¬ą²ą³ %s (%s)ą²ą³ ą²¬ą³ą²ą²¬ą²²ą²µą²æą²²ą³ą²²" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą²ą²²ą³ą²²ą²¾ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą²ą²²ą³ą²²ą²¾ ą²ą²”ą²¤ą²ą²³ą³" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą²¤ą²¾ą²¤ą³ą²ą²¾ą²²ą²æą² ą²ą³ą²¶ą²µą²Øą³ą²Øą³ ą²°ą²ą²æą²øą²²ą³ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą²¤ą²¾ą²¤ą³ą²ą²¾ą²²ą²æą² ą²ą³ą²¶ą²µą²Øą³ą²Øą³ ą²°ą²ą²æą²øą²²ą³ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą²ą²”ą²¤ą²µą³ ą²ą²ą²¦ą³ ą²®ą²¾ą²Øą³ą²Æą²µą²¾ą²¦ .desktop ą²ą²”ą²¤ą²µą²¾ą²ą²æą²²ą³ą²²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą²ą³ą²°ą³ą²¤ą²æą²øą²²ą²¾ą²ą²¦ ą²ą²£ą²ą²¤ą³ą²°ą³ ą²ą²”ą²¤ ą²ą²µą³ą²¤ą³ą²¤ą²æ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą² ą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą² ą²Øą³ą²µą²Æą²µą³ ą²ą²ą³ą²ą²¾ ą²øą²¾ą²²ą²æą²Øą²²ą³ą²²ą²æ ą²Æą²¾ą²µą³ą²¦ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą²Øą³ą²Øą³ ą²¤ą³ą²ą³ą²¦ą³ą²ą³ą²³ą³ą²³ą³ą²µą³ą²¦ą²æą²²ą³ą²²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą²ą³ą²°ą³ą²¤ą²æą²øą²²ą²¾ą²ą²¦ ą²ą²°ą²ą² ą²ą²Æą³ą²ą³: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą²ą²ą²¦ą³ 'Type=Link' ą²ą²£ą²ą²¤ą³ą²°ą³ ą²Øą²®ą³ą²¦ą²æą²ą²¾ą²ą²æ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ URIą²ą²³ą²Øą³ą²Øą³ ą²ą²¦ą²ą²æą²øą²²ą²¾ą²ą²æą²²ą³ą²²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą²ą²°ą²ą²ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą² ą²ą²¶ą²µą²¾ą²ą²æą²²ą³ą²²" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą² ą²§ą²æą²µą³ą²¶ą²Ø ą²Øą²æą²°ą³ą²µą²¾ą²¹ą²ą²Øą³ą²ą²¦ą²æą² ą²øą²ą²Ŗą²°ą³ą²ą²µą²Øą³ą²Øą³ ą²ą²”ą²æą²¦ą³ą²¹ą²¾ą²ą³" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą²ą²³ą²æą²øą²²ą²¾ą²¦ ą²øą²ą²°ą²ą²Øą³ą²Æą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²°ą³ą²µ ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ą²øą³ą²ą²æą²øą²æ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą² ą²§ą²æą²µą³ą²¶ą²Ø ą²Øą²æą²°ą³ą²µą²¹ą²£ą²¾ ą²ą²”ą²æą²Æą²Øą³ą²Øą³ ą²øą³ą²ą²æą²øą²æ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą² ą²§ą²æą²µą³ą²¶ą²Ø ą²Øą²æą²°ą³ą²µą²¹ą²£ą²¾ ą²ą²Æą³ą²ą³ą²ą²³ą³:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą² ą²§ą²æą²µą³ą²¶ą²Ø ą²Øą²æą²°ą³ą²µą²¹ą²£ą²¾ ą²ą²Æą³ą²ą³ą²ą²³ą²Øą³ą²Øą³ ą²¤ą³ą²°ą²æą²øą³" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą² ą²Øą³ą²Øą³ ą²¤ą³ą²°ą²æą²øą³" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ą²Ŗą²ą³ą²ą²æą²Æą²²ą³ą²²ą²æ ą²µą²°ą³ą²ą²¾ą²Æą²æą²øą³(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą²ą²°ą²æą²øą²²ą²¾ą²¦ ą² ą²ą²¶ą²µą²Øą³ą²Øą³ ą²ą²Ŗą²ą²°ą²£ ą²Ŗą²ą³ą²ą²æą²Æą²²ą³ą²²ą²æ ą²µą²°ą³ą²ą²¾ą²Æą²æą²øą³" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ ą²Ŗą²ą³ą²ą²æ ą²ą²ą²¦ ą²¤ą³ą²ą³ą²¦ą³ ą²¹ą²¾ą²ą³(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą²ą²°ą²æą²øą²²ą²¾ą²¦ ą² ą²ą²¶ą²µą²Øą³ą²Øą³ ą²ą²Ŗą²ą²°ą²£ ą²Ŗą²ą³ą²ą²æ ą²ą²ą²¦ ą²¤ą³ą²ą³ą²¦ą³ ą²¹ą²¾ą²ą³" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ą²Ŗą²ą³ą²ą²æą²Æą²Øą³ą²Øą³ ą² ą²³ą²æą²øą²æą²¹ą²¾ą²ą³(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą²ą²°ą²æą²øą²²ą²¾ą²¦ ą²ą²Ŗą²ą²°ą²£ ą²Ŗą²ą³ą²ą²æą²Æą²Øą³ą²Øą³ ą²¤ą³ą²ą³ą²¦ą³ ą²¹ą²¾ą²ą³" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą²µą²æą²ą²ą²" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Ø ą²ą³ą²°ą²®ą²¦ą²²ą³ą²²ą²æ ą²ą²²ą²¾ą²Æą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5302 +msgid "Best Fit" +msgstr "ą²ą²¤ą³ą²¤ą²®ą²µą²¾ą²ą²æ ą²¹ą³ą²ą²¦ą³ą²µ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą²Ŗą³ą² ą² ą²ą²²ą²ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²øą³" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4168 +#: ../shell/ev-window-title.c:149 ../shell/main.c:287 +#, c-format +msgid "Document Viewer" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²µą³ą²ą³ą²·ą²" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ą²¬ą²¹ą³-ą²Ŗą³ą²ą²¦ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²µą³ą²ą³ą²·ą²æą²øą³" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Øą²æą²°ą³ą²¬ą²ą²§ą²ą²³ą²Øą³ą²Øą³ ą² ą²¤ą²æą²ą³ą²°ą²®ą²æą²øą³" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą²ą²¾ą²Ŗą²æ ą²®ą²¾ą²”ą³ą²µ ą² ą²„ą²µ ą²®ą³ą²¦ą³ą²°ą²æą²øą³ą²µą²ą²¤ą²¹ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Øą²æą²°ą³ą²¬ą²ą²§ą²ą²³ą²Øą³ą²Øą³ ą² ą²¤ą²æą²ą³ą²°ą²®ą²æą²øą³." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą²¤ą²¾ą²¤ą³ą²ą²¾ą²²ą²æą² ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ą² ą²³ą²æą²øą³" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą²®ą³ą²¦ą³ą²°ą²£ ą²øą²æą²¦ą³ą²§ą²¤ą³ą²ą²³ ą²ą²”ą²¤" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "MATE ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Ŗą³ą²°ą³ą²µą²µą³ą²ą³ą²·ą²" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:2960 +msgid "Failed to print document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą²æą²øą³ą²µą²²ą³ą²²ą²æ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą²ą²Æą³ą²ą³ ą²®ą²¾ą²”ą²²ą²¾ą²¦ ą²®ą³ą²¦ą³ą²°ą² '%s' ą²ą²ą²”ą³ą²¬ą²ą²¦ą²æą²²ą³ą²²" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5051 +msgid "_Previous Page" +msgstr "ą²¹ą²æą²ą²¦ą²æą²Ø ą²Ŗą³ą²(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5052 +msgid "Go to the previous page" +msgstr "ą²¹ą²æą²ą²¦ą²æą²Ø ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5054 +msgid "_Next Page" +msgstr "ą²®ą³ą²ą²¦ą²æą²Ø ą²Ŗą³ą²(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5055 +msgid "Go to the next page" +msgstr "ą²®ą³ą²ą²¦ą²æą²Ø ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5038 +msgid "Enlarge the document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¦ą³ą²”ą³ą²”ą²¦ą²¾ą²ą²æą²øą³" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5041 +msgid "Shrink the document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²ą²æą²°ą²æą²¦ą²¾ą²ą²æą²øą³" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą³" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5009 +msgid "Print this document" +msgstr "ą² ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą²æą²øą³" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5153 +msgid "_Best Fit" +msgstr "ą²ą²¤ą³ą²¤ą²®ą²µą²¾ą²ą²æ ą²¹ą³ą²ą²¦ą³ą²µ(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5154 +msgid "Make the current document fill the window" +msgstr "ą²ą²ą²æą²Ø ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²µą²æą²ą²”ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²ą³ą²³ą³ą²³ą³ą²µą²ą²¤ą³ ą²®ą²¾ą²”ą³" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5156 +msgid "Fit Page _Width" +msgstr "ą²Ŗą³ą² ą² ą²ą²²ą²ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²øą³(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5157 +msgid "Make the current document fill the window width" +msgstr "ą²ą²ą²æą²Ø ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²µą²æą²ą²”ą³ą²¦ ą² ą²ą²²ą²ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²ą³ą²³ą³ą²³ą³ą²µą²ą²¤ą³ ą²®ą²¾ą²”ą³" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5224 +msgid "Page" +msgstr "ą²Ŗą³ą²" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5225 +msgid "Select Page" +msgstr "ą²Ŗą³ą²ą²µą²Øą³ą²Øą³ ą²ą²°ą²æą²øą³" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą²¶ą³ą²°ą³ą²·ą²æą²ą³:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą²øą³ą²„ą²³:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą²µą²æą²·ą²Æ:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ą²ą²¤ą³:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą²®ą³ą²ą³ą²Æą²Ŗą²¦ą²ą²³ą³:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą²ą²¤ą³ą²Ŗą²¾ą²¦ą²ą²°ą³:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą²øą³ą²ą²æą²øą²æą²¦ą²µą²°ą³:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą²øą³ą²ą²æą²øą²²ą²¾ą²ą²æą²¦ą³ą²¦ą³:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą²®ą²¾ą²°ą³ą²Ŗą²”ą²æą²øą²²ą²¾ą²ą²æą²¦ą³ą²¦ą³:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą²Ŗą³ą²ą²ą²³ ą²øą²ą²ą³ą²Æą³:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą²Ŗą³ą²°ą²¶ą²øą³ą²¤ą²ą³ą²³ą²æą²øą²²ą²¾ą²ą²æą²¦ą³ą²¦ą³:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą²µą²æą²Øą³ą²Æą²¾ą²ø:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą²øą³ą²°ą²ą³ą²·ą²¤ą³:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą²ą²¾ą²ą²¦ą²¦ ą²ą²¾ą²¤ą³ą²°:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1868 +msgid "None" +msgstr "ą²Æą²¾ą²µą³ą²¦ą³ ą²ą²²ą³ą²²" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f ą²®ą²æą²®ą²æ" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f ą²ą²ą²ą³" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą²ą²¾ą²µą²ą²æą²¤ą³ą²° (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą²Ŗą³ą²°ą²ą³ą²¤ą²æą²ą²æą²¤ą³ą²° (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d, %d ą²°ą²²ą³ą²²ą²æ)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ą²°ą²²ą³ą²²ą²æ" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą²²ą³ ą²¤ą²Æą²¾ą²°ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ą²Ŗą³ą²°ą³ą²£ą²ą³ą²³ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "%d ą²Ŗą³ą²ą²µą²Øą³ą²Øą³ (%d ą²Øą²²ą³ą²²ą²æ) ą²®ą³ą²¦ą³ą²°ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą² ą²®ą³ą²¦ą³ą²°ą²ą²¦ą²²ą³ą²²ą²æ ą²®ą³ą²¦ą³ą²°ą²æą²øą³ą²µą³ą²¦ą³ ą²¬ą³ą²ą²¬ą²²ą²æą²¤ą²µą²¾ą²ą²æą²²ą³ą²²." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą² ą²®ą²¾ą²Øą³ą²Æ ą²Ŗą³ą²ą²¦ ą²ą²Æą³ą²ą³" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą²ą²ą³ą²ą²°ą²æą²ą³" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ą²Øą³ą²µą³ ą²®ą³ą²¦ą³ą²°ą²æą²øą²²ą³ ą²ą²Æą³ą²ą³ ą²®ą²¾ą²”ą²æą²¦ ą²Ŗą³ą²ą²ą²³ą³ ą²µą³ą²Æą²¾ą²Ŗą³ą²¤ą²æą²Æą²²ą³ą²²ą²æ ą²Æą²¾ą²µą³ą²¦ą³ ą²Ŗą³ą²ą²ą²³ą²æą²²ą³ą²²" + +#: ../libview/ev-print-operation.c:1863 +msgid "Page Scaling:" +msgstr "ą²Ŗą³ą²ą²¦ą²ą²¾ą²¤ą³ą²°ą²¬ą²¦ą²²ą²¾ą²µą²£ą³:" + +#: ../libview/ev-print-operation.c:1869 +msgid "Shrink to Printable Area" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²ą³ą²ą³ą²ą²æą²øą³" + +#: ../libview/ev-print-operation.c:1870 +msgid "Fit to Printable Area" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²øą²°ą²æą²¹ą³ą²ą²¦ą²æą²øą³" + +#: ../libview/ev-print-operation.c:1873 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ą²ą²Æą³ą²ą³ ą²®ą²¾ą²”ą²²ą²¾ą²¦ ą²®ą³ą²¦ą³ą²°ą² ą²Ŗą³ą²ą²ą³ą²ą³ ą²øą²°ą²æą²¹ą³ą²ą²¦ą³ą²µą²ą²¤ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²Ŗą³ą²ą²ą²³ ą²ą²¾ą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²¬ą²¦ą²²ą²¾ą²Æą²æą²øą²æ. ą² " +"ą²ą³ą²³ą²ą²æą²Øą²µą³ą²ą²³ą²²ą³ą²²ą²æ ą²ą²ą²¦ą²Øą³ą²Øą³ ą²ą²Æą³ą²ą³ ą²®ą²¾ą²”ą²æ:\n" +"\n" +"ā¢ \"ą²Æą²¾ą²µą³ą²¦ą³ ą²ą²²ą³ą²²\": ą²Æą²¾ą²µą³ą²¦ą³ ą²Ŗą³ą²ą²¦ ą²ą²¾ą²¤ą³ą²° ą²¬ą²¦ą²²ą²¾ą²µą²£ą³ą²Æą²Øą³ą²Øą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²µą³ą²¦ą²æą²²ą³ą²².\n" +"\n" +"ā¢ \"ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²ą³ą²ą³ą²ą²æą²øą³\": ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą²æą²ą²¤ ą²¦ą³ą²”ą³ą²”ą²¦ą²¾ą²ą²æą²°ą³ą²µ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø " +"ą²Ŗą³ą²ą²ą²³ą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą² ą²Ŗą³ą²ą²¦ą²²ą³ą²²ą²æą²Ø ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²øą²°ą²æą²¹ą³ą²ą²¦ą³ą²µą²ą²¤ą³ ą²ą³ą²ą³ą²ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²¦ą³.\n" +"\n" +"ā¢ \"ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²øą²°ą²æą²¹ą³ą²ą²¦ą²æą²øą³\":ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą²æą²ą²¤ ą²¦ą³ą²”ą³ą²”ą²¦ą²¾ą²ą²æą²°ą³ą²µ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø " +"ą²Ŗą³ą²ą²ą²³ą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą² ą²Ŗą³ą²ą²¦ą²²ą³ą²²ą²æą²Ø ą²®ą³ą²¦ą³ą²°ą²æą²øą²¬ą²¹ą³ą²¦ą²¾ą²¦ ą²ą²¾ą²ą²ą³ą²ą³ ą²øą²°ą²æą²¹ą³ą²ą²¦ą³ą²µą²ą²¤ą³ ą²¹ą²æą²ą³ą²ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²¦ą³ ą²¹ą²¾ą²ą³ " +"ą²ą³ą²ą³ą²ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²¦ą³.\n" + +#: ../libview/ev-print-operation.c:1885 +msgid "Auto Rotate and Center" +msgstr "ą²øą³ą²µą²Æą²ą²ą²¾ą²²ą²æą²¤ą²µą²¾ą²ą²æ ą²¤ą²æą²°ą³ą²ą²æą²øą³ ą²¹ą²¾ą²ą³ ą²®ą²§ą³ą²Æą²¦ą²²ą³ą²²ą²æ ą²ą²°ą²æą²øą³" + +#: ../libview/ev-print-operation.c:1888 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ą²Ŗą³ą²°ą²¤ą²æ ą²Ŗą³ą²ą²¦ ą²®ą³ą²¦ą³ą²°ą²£ą²¦ ą²Ŗą³ą²ą²¦ ą²µą²¾ą²²ą²æą²ą³ą²Æą²Øą³ą²Øą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą³ą²ą²¦ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Ŗą³ą²ą²ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²ą³ą²³ą³ą²³ą³ą²µą²ą²¤ą³ " +"ą²¤ą²æą²°ą³ą²ą²æą²øą²æ. ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Ŗą³ą²ą²ą²³ą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą²£ą²¦ ą²Ŗą³ą²ą²¦ ą²Øą²”ą³ą²µą²æą²Øą²²ą³ą²²ą²æ ą²ą²°ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²¦ą³. " + +#: ../libview/ev-print-operation.c:1893 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1895 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1977 +msgid "Page Handling" +msgstr "ą²Ŗą³ą²ą²µą²Øą³ą²Øą³ ą²Øą²æą²ą²¾ą²Æą²æą²øą³ą²µą²æą²ą³" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ą²Ŗą³ą²ą²µą²Øą³ą²Øą³ ą²®ą³ą²¦ą³ą²°ą²æą²øą³ą²µą²²ą³ą²²ą²æ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą²®ą³ą²²ą²ą³ą²ą³ ą²ą²²ą²æą²øą³" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą²ą³ą²³ą²ą³ą²ą³ ą²ą²²ą²æą²øą³" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą²Øą³ą²ą²µą²Øą³ą²Øą³ ą²®ą³ą²²ą²ą³ą²ą³ ą²ą²²ą²æą²øą³" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą²Øą³ą²ą²µą²Øą³ą²Øą³ ą²ą³ą²³ą²ą³ą²ą³ ą²ą²²ą²æą²øą³" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Øą³ą²" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "ą² ą²Ŗą³ą²ą²ą³ą²ą³ ą²¹ą³ą²ą³:" + +#: ../libview/ev-view-presentation.c:970 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Øą²¦ ą²ą³ą²Øą³ą²Æą²Øą³ą²Øą³ ą²¤ą²²ą³ą²Ŗą²æą²¦ą³. ą²Øą²æą²°ą³ą²ą²®ą²æą²øą²²ą³ ą²ą²øą³ą²ą³ą²Ŗą³ ą² ą²Øą³ą²Øą³ ą²ą²¤ą³ą²¤ą²æ." + +#: ../libview/ev-view.c:1727 +msgid "Go to first page" +msgstr "ą²®ą³ą²¦ą²² ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1729 +msgid "Go to previous page" +msgstr "ą²¹ą²æą²ą²¦ą²æą²Ø ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1731 +msgid "Go to next page" +msgstr "ą²®ą³ą²ą²¦ą²æą²Ø ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1733 +msgid "Go to last page" +msgstr "ą²ą³ą²Øą³ą²Æ ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1735 +msgid "Go to page" +msgstr "ą² ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1737 +msgid "Find" +msgstr "ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³" + +#: ../libview/ev-view.c:1765 +#, c-format +msgid "Go to page %s" +msgstr "%s ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%sā ą²ą²”ą²¤ą²¦ą²²ą³ą²²ą²æą²Ø %s ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1774 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą²ą²”ą²¤ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../libview/ev-view.c:1782 +#, c-format +msgid "Launch %s" +msgstr "%s ą² ą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą³" + +#: ../libview/ev-view.c:3926 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5026 +msgid "Find Pre_vious" +msgstr "ą²¹ą²æą²ą²¦ą²æą²Øą²¦ą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³(_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą²¹ą²æą²ą²¦ą³ ą²ą²¾ą²£ą²æą²øą³ą²µ ą²¹ą³ą²”ą³ą²ą³ ą²µą²¾ą²ą³ą²Æą²µą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²®ą²¾ą²”ą³" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5024 +msgid "Find Ne_xt" +msgstr "ą²®ą³ą²ą²¦ą²æą²Øą²¦ą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³(_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą²®ą³ą²ą²¦ą³ ą²ą²¾ą²£ą²æą²øą³ą²µ ą²¹ą³ą²”ą³ą²ą³ ą²µą²¾ą²ą³ą²Æą²µą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²®ą²¾ą²”ą³" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą²ą³ą²øą³ ą²øą²ą²µą³ą²¦ą²æ(_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą²ą³ą²øą³ ą²øą²ą²µą³ą²¦ą²æ ą²¹ą³ą²”ą³ą²ą²¾ą²ą²¦ ą²Øą²”ą³ą²µą³ ą²¹ą³ą²°ą²³ą²æą²øą³" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²ą²¾ą²ą²æ ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ą² ą²Øą³ą²Øą³ ą²®ą²¾ą²°ą³ą²Ŗą²”ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą²ą²¤ą³ą²¤ą³ą²ą³ą²ą³ ą²¬ą²³ą²øą²²ą²¾ą²¦ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ą² ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²²ą²¾ą²ą³ ą²ą²ą²æą²¦ą³ ą²¹ą²¾ą²ą³ ą²ą²ą²¦ą³ ą²øą²°ą²æą²Æą²¾ą²¦ ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²µą²Øą³ą²Øą³ ą²Øą²®ą³ą²¦ą²æą²øą²æą²¦ą²²ą³ą²²ą²æ ą²®ą²¾ą²¤ą³ą²° ą²ą²¦ą²Øą³ą²Øą³ " +"ą²ą²¦ą²¬ą²¹ą³ą²¦ą²¾ą²ą²æą²¦ą³." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²²ą²¾ą²ą²Øą³ą²Øą³ ą²¤ą³ą²ą³(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²µą²Øą³ą²Øą³ ą²Øą²®ą³ą²¦ą²æą²øą³" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ ą² ą²ą²¤ą³ą²Æą²µą²æą²¦ą³" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²²ą²¾ą²ą³ ą²ą²ą²æą²¦ą³ ą²¹ą²¾ą²ą³ ą² ą²¦ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą³ ą²ą²ą²¦ą³ ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²¦ ą² ą²ą²¤ą³ą²Æą²µą²æą²¦ą³." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²µą²Øą³ą²Øą³ ą² ą²ą³ą²”ą²²ą³ ą²®ą²°ą³ą²¤ą³ ą²¬ą²æą²”ą³(_i)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ą²Øą³ą²µą³ ą²Øą²æą²°ą³ą²ą²®ą²æą²øą³ą²µą²µą²°ą³ą²ą³ ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²µą²Øą³ą²Øą³ ą²Øą³ą²Øą²Ŗą²æą²ą³ą²ą³ą²ą³ą²³ą³ą²³ą²æ(_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą²Æą²¾ą²µą²¾ą²ą²²ą³ ą²Øą³ą²Øą²Ŗą²æą²”ą³(_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą²ą³ą²£ą²²ą²ą³ą²·ą²£ą²ą²³ą³" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą²øą²¾ą²®ą²¾ą²Øą³ą²Æ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą² ą²ą³ą²·ą²° ą²¶ą³ą²²ą²æą²ą²³ą³" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Ŗą²°ą²µą²¾ą²Øą²ą²æ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą² ą²ą³ą²·ą²°ą²¶ą³ą²²ą²æ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą² ą²ą³ą²·ą²°ą²¶ą³ą²²ą²æą²Æ ą²®ą²¾ą²¹ą²æą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²²ą³ ą²¹ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ą²¬ą²³ą²ą³ą²Æ ą²Øą²æą²Æą²®ą²ą²³ą³" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ą²Ŗą² ą³ą²Æ ą²Ŗą²°ą²µą²¾ą²Øą²ą²æ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ą²¹ą³ą²ą³ą²ą²æą²Ø ą²®ą²¾ą²¹ą²æą²¤ą²æ" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą³āą²ą²³ą³" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą²Ŗą²¦ą²°ą²ą²³ą³" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą³" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą²Ŗą²°ą²æą²µą²æą²”ą²æ" + +#: ../shell/ev-sidebar-thumbnails.c:962 +msgid "Thumbnails" +msgstr "ą²¤ą²ą²¬ą³āą²Øą³ą²²ą³āą²ą²³ą³" + +#: ../shell/ev-window.c:831 +#, c-format +msgid "Page %s ā %s" +msgstr "ą²Ŗą³ą² %s ā %s" + +#: ../shell/ev-window.c:833 +#, c-format +msgid "Page %s" +msgstr "ą²Ŗą³ą² %s" + +#: ../shell/ev-window.c:1277 +msgid "The document contains no pages" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²Æą²¾ą²µą³ą²¦ą³ ą²¹ą²¾ą²³ą³ą²ą²³ą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²²ą³ą²²" + +#: ../shell/ev-window.c:1280 +msgid "The document contains only empty pages" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²ą³ą²µą²² ą²ą²¾ą²²ą²æ ą²¹ą²¾ą²³ą³ą²ą²³ą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²¦ą³" + +#: ../shell/ev-window.c:1474 ../shell/ev-window.c:1640 +msgid "Unable to open document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą³ ą²øą²¾ą²§ą³ą²Æą²µą²¾ą²ą²æą²²ą³ą²²" + +#: ../shell/ev-window.c:1611 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ą²ą²ą²¦ ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-window.c:1753 ../shell/ev-window.c:2030 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²”ą³ą²Øą³āą²²ą³ą²”ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ (%d%%)" + +#: ../shell/ev-window.c:1786 +#, fuzzy +msgid "Failed to load remote file." +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²®ą²°ą³ ą²²ą³ą²”ą³āą²®ą²¾ą²”ą³ą²µą²²ą³ą²²ą²æ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³." + +#: ../shell/ev-window.c:1974 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ą²ą²ą²¦ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²Ŗą³ą²Øą² ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-window.c:2006 +msgid "Failed to reload document." +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²®ą²°ą³ ą²²ą³ą²”ą³āą²®ą²¾ą²”ą³ą²µą²²ą³ą²²ą²æ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³." + +#: ../shell/ev-window.c:2161 +msgid "Open Document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³" + +#: ../shell/ev-window.c:2425 +#, c-format +msgid "Saving document to %s" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ %s ą²ą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-window.c:2428 +#, c-format +msgid "Saving attachment to %s" +msgstr "ą²²ą²ą²¤ą³ą²¤ą²Øą³ą²Øą³ %s ą²ą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-window.c:2431 +#, c-format +msgid "Saving image to %s" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ %s ą²ą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³" + +#: ../shell/ev-window.c:2475 ../shell/ev-window.c:2575 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ā%sā ą²ą²ą²æ ą²ą²³ą²æą²øą²²ą³ ą²øą²¾ą²§ą³ą²Æą²µą²¾ą²ą²æą²²ą³ą²²." + +#: ../shell/ev-window.c:2506 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą² ą²Ŗą³āą²²ą³ą²”ą³ā ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ (%d%%)" + +#: ../shell/ev-window.c:2510 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą²²ą²ą²¤ą³ą²¤ą²Øą³ą²Øą³ ą² ą²Ŗą³āą²²ą³ą²”ą³ā ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ (%d%%)" + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą² ą²Ŗą³āą²²ą³ą²”ą³ā ą²®ą²¾ą²”ą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²æą²¦ą³ (%d%%)" + +#: ../shell/ev-window.c:2636 +msgid "Save a Copy" +msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window.c:2904 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą²øą²°ą²¤ą²æą²Æą²²ą³ą²²ą²æ %d ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æą²µą³ ą²¬ą²¾ą²ą²æ ą²ą²µą³" +msgstr[1] "ą²øą²°ą²¤ą²æą²Æą²²ą³ą²²ą²æ %d ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æą²ą²³ą³ ą²¬ą²¾ą²ą²æ ą²ą²µą³" + +#: ../shell/ev-window.c:3017 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æ ā%sā" + +#: ../shell/ev-window.c:3229 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą²®ą³ą²ą³ą²ą³ą²µ ą²®ą³ą²¦ą²²ą³ ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æ ā%sā ą²µą³ ą²Ŗą³ą²°ą³ą²£ą²ą³ą²³ą³ą²³ą³ą²µą²µą²°ą³ą²ą³ ą²ą²¾ą²Æą²¬ą³ą²ą³?" + +#: ../shell/ev-window.c:3232 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æą²ą²³ą³ ą²øą²ą³ą²°ą²æą²Æą²µą²¾ą²ą²æą²¦ą³. ą²®ą³ą²ą³ą²ą³ą²µ ą²®ą³ą²¦ą²²ą³ ą²®ą³ą²¦ą³ą²°ą²£ą²µą³ ą²Ŗą³ą²°ą³ą²£ą²ą³ą²³ą³ą²³ą³ą²µą²µą²°ą³ą²ą³ ą²ą²¾ą²Æą²¬ą³ą²ą³?" + +#: ../shell/ev-window.c:3244 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą²µą²æą²ą²”ą³ą²µą²Øą³ą²Øą³ ą²®ą³ą²ą³ą²ą²æą²¦ą²²ą³ą²²ą²æ, ą²¬ą²¾ą²ą²æ ą²ą²°ą³ą²µ ą²®ą³ą²¦ą³ą²°ą²£ ą²ą²¾ą²°ą³ą²Æą²ą²³ą³ ą²®ą³ą²¦ą³ą²°ą²£ą²ą³ą²³ą³ą²³ą³ą²µą³ą²¦ą²æą²²ą³ą²²." + +#: ../shell/ev-window.c:3248 +msgid "Cancel _print and Close" +msgstr "ą²®ą³ą²¦ą³ą²°ą²£ą²µą²Øą³ą²Øą³ ą²°ą²¦ą³ą²¦ą³ą²ą³ą²³ą²æą²øą³ ą²¹ą²¾ą²ą³ ą²®ą³ą²ą³ą²ą³(_p)" + +#: ../shell/ev-window.c:3252 +msgid "Close _after Printing" +msgstr "ą²®ą³ą²¦ą³ą²°ą²£ą²¦ ą²Øą²ą²¤ą²° ą²®ą³ą²ą³ą²ą³(_a)" + +#: ../shell/ev-window.c:3814 +msgid "Toolbar Editor" +msgstr "ą²ą²Ŗą²ą²°ą²£ ą²Ŗą²ą³ą²ą²æ ą²øą²ą²Ŗą²¾ą²¦ą²" + +#: ../shell/ev-window.c:3953 +msgid "There was an error displaying help" +msgstr "ą²Øą³ą²°ą²µą²Øą³ą²Øą³ ą²¤ą³ą²°ą²æą²øą³ą²µą²¾ą² ą²ą²ą²¦ą³ ą²¦ą³ą²· ą²ą²ą²ą²¾ą²ą²æą²¦ą³" + +#: ../shell/ev-window.c:4164 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²µą³ą²ą³ą²·ą².\n" +"%s ą² ą²Øą³ą²Øą³ ą²¬ą²³ą²øą²²ą²¾ą²ą³ą²¤ą³ą²¤ą²¦ą³ (%s)" + +#: ../shell/ev-window.c:4195 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4199 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4203 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4228 +msgid "Evince" +msgstr "ą²ą²µą²æą²Øą³ą²øą³ā" + +#: ../shell/ev-window.c:4231 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince ą²ą²¤ą³ą²ą²³ą³" + +#: ../shell/ev-window.c:4237 +msgid "translator-credits" +msgstr "" +"ą²¶ą²ą²ą²°ą³ ą²Ŗą³ą²°ą²øą²¾ą²¦ą³ ą²ą². ą²µą²æ. <svenkate@redhat.com>, ą²°ą³ą²£ą³ą²ą²¾ ą²Ŗą³ą²°ą²øą²¾ą²¦ą³ <rennie606@yahoo.co." +"in>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4507 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą² ą²Ŗą³ą²ą²¦ą²²ą³ą²²ą²æ %d ą²ą²ą²”ą³ ą²¬ą²ą²¦ą²æą²¦ą³" +msgstr[1] "ą² ą²Ŗą³ą²ą²¦ą²²ą³ą²²ą²æ %d ą²ą²ą²”ą³ ą²¬ą²ą²¦ą²æą²¦ą³" + +#: ../shell/ev-window.c:4515 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ą²¹ą³ą²”ą³ą²ą²²ą³ %3d%% ą²¬ą²¾ą²ą²æ ą²ą²³ą²æą²¦ą²æą²µą³" + +#: ../shell/ev-window.c:4992 +msgid "_File" +msgstr "ą²ą²”ą²¤(_F)" + +#: ../shell/ev-window.c:4993 +msgid "_Edit" +msgstr "ą²øą²ą²Ŗą²¾ą²¦ą²æą²øą³(_E)" + +#: ../shell/ev-window.c:4994 +msgid "_View" +msgstr "ą²Øą³ą²(_V)" + +#: ../shell/ev-window.c:4995 +msgid "_Go" +msgstr "ą²¤ą³ą²°ą²³ą³(_G)" + +#: ../shell/ev-window.c:4996 +msgid "_Help" +msgstr "ą²øą²¹ą²¾ą²Æ(_H)" + +#. File menu +#: ../shell/ev-window.c:4999 ../shell/ev-window.c:5264 +msgid "_Openā¦" +msgstr "ą²¤ą³ą²°ą³(_O)..." + +#: ../shell/ev-window.c:5000 ../shell/ev-window.c:5265 +msgid "Open an existing document" +msgstr "ą²ą²ą²æą²°ą³ą²µ ą²ą²ą²¦ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³" + +#: ../shell/ev-window.c:5002 +msgid "Op_en a Copy" +msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²¤ą³ą²°ą³(_e)" + +#: ../shell/ev-window.c:5003 +msgid "Open a copy of the current document in a new window" +msgstr "ą²ą²ą²æą²°ą³ą²µ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²ą²¦ą³ ą²¹ą³ą²ø ą²µą²æą²ą²”ą³ą²¦ą²²ą³ą²²ą²æ ą²¤ą³ą²°ą³" + +#: ../shell/ev-window.c:5005 +msgid "_Save a Copyā¦" +msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³(_S)ā¦" + +#: ../shell/ev-window.c:5006 +msgid "Save a copy of the current document" +msgstr "ą²ą²ą²æą²°ą³ą²µ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window.c:5008 +msgid "_Printā¦" +msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą³(_P)..." + +#: ../shell/ev-window.c:5011 +msgid "P_roperties" +msgstr "ą²ą³ą²£ą²²ą²ą³ą²·ą²£ą²ą²³ą³(_r)" + +#: ../shell/ev-window.c:5019 +msgid "Select _All" +msgstr "ą²ą²²ą³ą²²ą²µą²Øą³ą²Øą³ ą²ą²°ą²æą²øą³(_A)" + +#: ../shell/ev-window.c:5021 +msgid "_Findā¦" +msgstr "ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³(_F)..." + +#: ../shell/ev-window.c:5022 +msgid "Find a word or phrase in the document" +msgstr "ą² ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Øą²²ą³ą²²ą²æ ą²ą²ą²¦ą³ ą²Ŗą²¦ ą² ą²„ą²µ ą²µą²¾ą²ą³ą²Æą²µą²Øą³ą²Øą³ ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³" + +#: ../shell/ev-window.c:5028 +msgid "T_oolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ą²Ŗą²ą³ą²ą²æ(_o)" + +#: ../shell/ev-window.c:5030 +msgid "Rotate _Left" +msgstr "ą²ą²”ą²ą³ą²ą³ ą²¤ą²æą²°ą³ą²ą²æą²øą³(_L)" + +#: ../shell/ev-window.c:5032 +msgid "Rotate _Right" +msgstr "ą²¬ą²²ą²ą³ą²ą³ ą²¤ą²æą²°ą³ą²ą²æą²øą³(_R)" + +#: ../shell/ev-window.c:5043 +msgid "_Reload" +msgstr "ą²Ŗą³ą²Øą² ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą³(_R)" + +#: ../shell/ev-window.c:5044 +msgid "Reload the document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²Ŗą³ą²Øą² ą²²ą³ą²”ą³ ą²®ą²¾ą²”ą³" + +#: ../shell/ev-window.c:5047 +msgid "Auto_scroll" +msgstr "ą²øą³ą²µą²Æą² ą²øą³ą²ą³ą²°ą³ą²²ą³ ą²®ą²¾ą²”ą³(_s)" + +#: ../shell/ev-window.c:5057 +msgid "_First Page" +msgstr "ą²®ą³ą²¦ą²² ą²Ŗą³ą²(_F)" + +#: ../shell/ev-window.c:5058 +msgid "Go to the first page" +msgstr "ą²®ą³ą²¦ą²² ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#: ../shell/ev-window.c:5060 +msgid "_Last Page" +msgstr "ą²ą³ą²Øą³ą²Æ ą²Ŗą³ą²(_L)" + +#: ../shell/ev-window.c:5061 +msgid "Go to the last page" +msgstr "ą²ą³ą²Øą³ą²Æ ą²Ŗą³ą²ą²ą³ą²ą³ ą²¤ą³ą²°ą²³ą³" + +#. Help menu +#: ../shell/ev-window.c:5065 +msgid "_Contents" +msgstr "ą²µą²æą²·ą²Æą²ą²³ą³(_C)" + +#: ../shell/ev-window.c:5068 +msgid "_About" +msgstr "ą²ą²¦ą²° ą²¬ą²ą³ą²ą³(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5072 +msgid "Leave Fullscreen" +msgstr "ą²Ŗą³ą²°ą³ą²£ą²¤ą³ą²°ą³ą²Æą²Øą³ą²Øą³ ą²¬ą²æą²ą³ą²ą³ ą²¬ą²æą²”ą³" + +#: ../shell/ev-window.c:5073 +msgid "Leave fullscreen mode" +msgstr "ą²Ŗą³ą²°ą³ą²£ą²¤ą³ą²°ą³ą²Æ ą²ą³ą²°ą²®ą²µą²Øą³ą²Øą³ ą²¬ą²æą²ą³ą²ą³ ą²¬ą²æą²”ą³" + +#: ../shell/ev-window.c:5075 +msgid "Start Presentation" +msgstr "ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Øą²µą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą³" + +#: ../shell/ev-window.c:5076 +msgid "Start a presentation" +msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Øą²µą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą³" + +#. View Menu +#: ../shell/ev-window.c:5135 +msgid "_Toolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ą²Ŗą²ą³ą²ą²æ(_T)" + +#: ../shell/ev-window.c:5136 +msgid "Show or hide the toolbar" +msgstr "ą²ą²Ŗą²ą²°ą²£ą²Ŗą²ą³ą²ą²æą²Æą²Øą³ą²Øą³ ą²ą²¾ą²£ą²æą²øą³ ą² ą²„ą²µ ą² ą²”ą²ą²æą²øą³" + +#: ../shell/ev-window.c:5138 +msgid "Side _Pane" +msgstr "ą²¬ą²²ą²¬ą²¦ą²æą²Æ ą²«ą²²ą²(_P)" + +#: ../shell/ev-window.c:5139 +msgid "Show or hide the side pane" +msgstr "ą²¬ą²²ą²¬ą²¦ą²æą²Æ ą²«ą²²ą²ą²µą²Øą³ą²Øą³ ą²ą²¾ą²£ą²æą²øą³ ą² ą²„ą²µ ą² ą²”ą²ą²æą²øą³" + +#: ../shell/ev-window.c:5141 +msgid "_Continuous" +msgstr "ą²Øą²æą²°ą²ą²¤ą²°(_C)" + +#: ../shell/ev-window.c:5142 +msgid "Show the entire document" +msgstr "ą²øą²ą²Ŗą³ą²°ą³ą²£ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą²æą²øą³" + +#: ../shell/ev-window.c:5144 +msgid "_Dual" +msgstr "ą²ą²¬ą³ą²¬ą³ą²ą³ą²Æ(_D)" + +#: ../shell/ev-window.c:5145 +msgid "Show two pages at once" +msgstr "ą²ą²°ą²”ą³ ą²Ŗą³ą²ą²ą²³ą²Øą³ą²Øą³ ą²ą²ą²¦ą³ ą²¬ą²¾ą²°ą²æą²ą³ ą²¤ą³ą²°ą²æą²øą³" + +#: ../shell/ev-window.c:5147 +msgid "_Fullscreen" +msgstr "ą²Ŗą³ą²°ą³ą²£ą²¤ą³ą²°ą³(_F)" + +#: ../shell/ev-window.c:5148 +msgid "Expand the window to fill the screen" +msgstr "ą²µą²æą²ą²”ą³ą²µą²Øą³ą²Øą³ ą²Ŗą³ą²°ą³ą²£ą²¤ą³ą²°ą³ą²Æą²Øą³ą²Øą³ ą²ą²ą³ą²°ą²®ą²æą²øą³ą²µą²ą²¤ą³ ą²¹ą²æą²ą³ą²ą²æą²øą³" + +#: ../shell/ev-window.c:5150 +msgid "Pre_sentation" +msgstr "ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Ø(_s)" + +#: ../shell/ev-window.c:5151 +msgid "Run document as a presentation" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Øą²µą²¾ą²ą²æ ą²ą²²ą²¾ą²Æą²æą²øą³" + +#: ../shell/ev-window.c:5159 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5160 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5168 +msgid "_Open Link" +msgstr "ą²ą³ą²ą²”ą²æą²Æą²Øą³ą²Øą³ ą²¤ą³ą²°ą³(_O)" + +#: ../shell/ev-window.c:5170 +msgid "_Go To" +msgstr "ą²ą²²ą³ą²²ą²æą²ą³ ą²¤ą³ą²°ą²³ą³(_G)" + +#: ../shell/ev-window.c:5172 +msgid "Open in New _Window" +msgstr "ą²¹ą³ą²ø ą²µą²æą²ą²”ą³ą²ą²³ą²²ą³ą²²ą²æ ą²¤ą³ą²°ą³(_W)" + +#: ../shell/ev-window.c:5174 +msgid "_Copy Link Address" +msgstr "ą²ą³ą²ą²”ą²æ ą²µą²æą²³ą²¾ą²øą²µą²Øą³ą²Øą³ ą²Øą²ą²²ą²æą²øą³(_C)" + +#: ../shell/ev-window.c:5176 +msgid "_Save Image Asā¦" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²¹ą³ą²ą³ ą²ą²³ą²æą²øą³(_S)..." + +#: ../shell/ev-window.c:5178 +msgid "Copy _Image" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²Øą²ą²²ą²æą²øą³(_I)" + +#: ../shell/ev-window.c:5183 +#, fuzzy +msgid "_Open Attachment" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window.c:5185 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window.c:5238 +msgid "Zoom" +msgstr "ą²ą²¾ą²¤ą³ą²°ą²¬ą²¦ą²²ą²æą²øą³" + +#: ../shell/ev-window.c:5240 +msgid "Adjust the zoom level" +msgstr "ą²ą²¾ą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²øą²æ" + +#: ../shell/ev-window.c:5250 +msgid "Navigation" +msgstr "ą²Øą³ą²Æą²¾ą²µą²æą²ą³ą²¶ą²Øą³" + +#: ../shell/ev-window.c:5252 +msgid "Back" +msgstr "ą²¹ą²æą²ą²¦ą²ą³ą²ą³" + +#. translators: this is the history action +#: ../shell/ev-window.c:5255 +msgid "Move across visited pages" +msgstr "ą²ą³ą²ą²æ ą²Øą³ą²”ą²²ą²¾ą²¦ ą²Ŗą³ą²ą²ą²³ą²¾ą²¦ą³ą²¤ą²ą²¤ ą²ą²²ą²æą²øą³" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5285 +msgid "Previous" +msgstr "ą²¹ą²æą²ą²¦ą²æą²Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5290 +msgid "Next" +msgstr "ą²®ą³ą²ą²¦ą²æą²Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5294 +msgid "Zoom In" +msgstr "ą²¹ą²æą²ą³ą²ą²æą²øą³" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5298 +msgid "Zoom Out" +msgstr "ą²ą³ą²ą³ą²ą²æą²øą³" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5306 +msgid "Fit Width" +msgstr "ą² ą²ą²²ą²ą³ą²ą³ ą²¹ą³ą²ą²¦ą²æą²øą³" + +#: ../shell/ev-window.c:5467 ../shell/ev-window.c:5484 +msgid "Unable to launch external application." +msgstr "ą²¹ą³ą²°ą²ą²æą²Ø ą² ą²Øą³ą²µą²Æą²µą²Øą³ą²Øą³ ą²ą²°ą²ą²ą²æą²øą²²ą²¾ą²ą²²ą²æą²²ą³ą²²." + +#: ../shell/ev-window.c:5541 +msgid "Unable to open external link" +msgstr "ą²¹ą³ą²°ą²ą²æą²Ø ą²ą³ą²ą²”ą²æą²Æą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²²ą²æą²²ą³ą²²" + +#: ../shell/ev-window.c:5708 +msgid "Couldn't find appropriate format to save image" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²ą²³ą²æą²øą²²ą³ ą²øą²°ą²æą²Æą²¾ą²¦ ą²Øą²®ą³ą²Øą³ą²Æą³ ą²ą²ą²”ą³ ą²¬ą²ą²¦ą²æą²²ą³ą²²" + +#: ../shell/ev-window.c:5750 +msgid "The image could not be saved." +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą²æą²²ą³ą²²." + +#: ../shell/ev-window.c:5782 +msgid "Save Image" +msgstr "ą²ą²æą²¤ą³ą²°ą²µą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window.c:5849 +msgid "Unable to open attachment" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²æą²²ą³ą²²" + +#: ../shell/ev-window.c:5902 +msgid "The attachment could not be saved." +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą²²ą²¾ą²ą²æą²²ą³ą²²." + +#: ../shell/ev-window.c:5947 +msgid "Save Attachment" +msgstr "ą² ą²ą³ą²Æą²¾ą²ą³āą²®ą³ą²ą²ą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ą²ą³ą²Ŗą³ą²¤ą²Ŗą²¦ą²¦ ą² ą²ą²¤ą³ą²Æą²µą²æą²¦ą³" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "ą²µą²æą²øą³ą²¤ą²°ą²£ą³ą²Æ ą²®ą³ą²²ą²" + +#: ../shell/main.c:72 ../shell/main.c:251 +msgid "MATE Document Viewer" +msgstr "MATE ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²µą³ą²ą³ą²·ą²" + +#: ../shell/main.c:80 +#, fuzzy +msgid "The page label of the document to display." +msgstr "ą²¤ą³ą²°ą²æą²øą²²ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²Ŗą³ą²." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:81 +#, fuzzy +msgid "The page number of the document to display." +msgstr "ą²¤ą³ą²°ą²æą²øą²²ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Ø ą²Ŗą³ą²." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "ą²øą²ą²ą³ą²Æą³" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą²ą²µą²æą²Øą³ą²øą²Øą³ą²Øą³ ą²Ŗą³ą²°ą³ą²£ą²¤ą³ą²°ą³ ą²µą²æą²§ą²¾ą²Øą²¦ą²²ą³ą²²ą²æ ą²ą²²ą²¾ą²Æą²æą²øą³" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą²ą²µą²æą²Øą³ą²øą²Øą³ą²Øą³ ą²Ŗą³ą²°ą²¦ą²°ą³ą²¶ą²Ø ą²µą²æą²§ą²¾ą²Øą²¦ą²²ą³ą²²ą²æ ą²ą²²ą²¾ą²Æą²æą²øą³" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą²ą²µą²æą²Øą³ą²øą²Øą³ą²Øą³ ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą³ą²µą²µą³ą²ą³ą²·ą²ą²µą²¾ą²ą²æ(ą²Ŗą³ą²°ą²æą²µą³ą²µą²°ą³) ą²ą²²ą²¾ą²Æą²æą²øą³" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²æą²Øą²²ą³ą²²ą²æ ą²¹ą³ą²”ą³ą²ą²¬ą³ą²ą²æą²°ą³ą²µ ą²Ŗą²¦ ą² ą²„ą²µ ą²µą²¾ą²ą³ą²Æ" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą²²ą²ą³ą²Æą²µą²æą²°ą³ą²µ ą²¬ą³ą²²ą²æą²Æą²Øą³ ą²ą²Æą³ą²ą³ą²ą²³ą³ą²ą²¦ą²°ą³, ą²Øą²æą²ą²µą³ ą²¤ą²ą²¬ą³āą²Øą³ą²²ą²æą²ą²ą³ ą² ą²Øą³ą²Øą³ ą²¶ą²ą³ą²¤ą²ą³ą²³ą²æą²øą³ą²¤ą³ą²¤ą²¦ą³ ą²¹ą²¾ą²ą³ ą²¤ą²Ŗą³ą²Ŗą³ " +"ą²ą²Øą³ą²Øą³ą²µą³ą²¦ą³ ą²¹ą³ą²ø ą²¤ą²ą²¬ą³āą²Øą³ą²²ą³ ą² ą²Øą³ą²Øą³ ą²Øą²æą²°ą³ą²®ą²æą²øą³ą²µą³ą²¦ą²Øą³ą²Øą³ ą² ą²¶ą²ą³ą²¤ą²ą³ą²³ą²æą²øą³ą²¤ą³ą²¤ą²¦ą³" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą³ ą²¤ą²ą²¬ą³āą²Øą³ą²²ą²æą²ą²ą³ ą² ą²Øą³ą²Øą³ ą²¶ą²ą³ą²¤ą²ą³ą²³ą²æą²øą³" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą²æą²ą²¾ą²ą²æ ą²¤ą²ą²¬ą³āą²Øą³ą²²ą²æą²ą²ą³ ą²ą²ą³ą²ą³" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²¤ą²ą²¬ą³āą²Øą³ą²²ą²°ą²æą²ą²¾ą²ą²æą²Ø ą²®ą²¾ą²Øą³ą²Æą²µą²¾ą²¦ ą²ą²ą³ą²ą³ ą²®ą²¤ą³ą²¤ą³ ą²ą²°ą³ą²ą³ą²Æą³ą²®ą³ą²ą²ą³āą²ą²³ą³. ą²¹ą³ą²ą³ą²ą²æą²Ø ą²®ą²¾ą²¹ą²æą²¤ą²æą²ą²¾ą²ą²æ " +"ą²Øą²¾ą²ą²æą²²ą²øą³ ą²¤ą²ą²¬ą³āą²Øą³ą²²ą²°ą³ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²Øą³ą²Øą³ ą²Øą³ą²”ą²æ." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²øą²°ą²æą²Æą²²ą³ą²²ą²¦ ą²µą²æą²Øą³ą²Æą²¾ą²øą²µą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²¦ą³" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sā ą²ą²”ą²¤ą²µą²Øą³ą²Øą³ ą²øą³ą²ą²æą²øą³ą²µą²²ą³ą²²ą²æ ą²µą²æą²«ą²²ą²ą³ą²ą²”ą²æą²¦ą³: %s" + +#~ msgid "Search string" +#~ msgstr "ą²µą²¾ą²ą³ą²Æą²µą²Øą³ą²Øą³ ą²¹ą³ą²”ą³ą²ą³" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą²¹ą³ą²”ą³ą² ą²¬ą³ą²ą²æą²°ą³ą²µ ą²µą²¾ą²ą³ą²Æą²¦ ą²¹ą³ą²øą²°ą³" + +#~ msgid "Case sensitive" +#~ msgstr "ą²ą³ą²øą³ ą²øą²ą²µą³ą²¦ą²æ" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą²ą²ą²¦ą³ ą²ą³ą²øą³ ą²øą²ą²µą³ą²¦ą²æ ą²¹ą³ą²”ą³ą²ą²¾ą²ą²ą³ą²ą³ TRUE" + +#~ msgid "Highlight color" +#~ msgstr "ą²¹ą³ą²²ą³ą²ą³ ą²¬ą²£ą³ą²£" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą²¤ą²¾ą²³ą³ą²Æą²¾ą²¦ ą²ą²²ą³ą²²ą²ą³ą²ą³ ą²¹ą³ą²²ą³ą²ą³ ą²¬ą²£ą³ą²£" + +#~ msgid "Current color" +#~ msgstr "ą²Ŗą³ą²°ą²øą²ą³ą²¤ ą²¬ą²£ą³ą²£" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą²Ŗą³ą²°ą²øą²ą³ą²¤ ą²¤ą²¾ą²³ą³ą²Æą²¾ą²¦ ą²ą²²ą³ą²²ą²ą³ą²ą³ ą²¹ą³ą²²ą³ą²ą³ ą²¬ą²£ą³ą²£" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą²¹ą²æą²ą²¦ą²æą²Ø ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą²ą²³ą²Øą³ą²Øą³ ą²®ą²°ą²³ą²æ ą²Ŗą²”ą³ą²Æą²¬ą³ą²ą³?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince ą² ą²Øą³ą²Øą³ ą²¹ą²æą²ą²¦ą²æą²Ø ą²¬ą²¾ą²°ą²æą²ą³ ą²¬ą²³ą²øą³ą²µą²¾ą² ą² ą²Øą²æą²°ą³ą²ą³ą²·ą²æą²¤ą²µą²¾ą²ą²æ ą²Øą²æą²°ą³ą²ą²®ą²æą²øą²æą²¦ą²ą²¤ą³ ą²¤ą³ą²°ą³ą²¤ą³ą²¤ą²æą²¦ą³. " +#~ "ą²ą² ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²æą²¦ą³ą²¦ ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ą²ą²³ą²Øą³ą²Øą³ ą²Øą³ą²µą³ ą²®ą²°ą²³ą²æ ą²Ŗą²”ą³ą²Æą²¬ą²¹ą³ą²¦ą³." + +#~ msgid "_Don't Recover" +#~ msgstr "ą²®ą²°ą²³ą²æ ą²Ŗą²”ą³ą²Æą²¬ą³ą²”(_D)" + +#~ msgid "_Recover" +#~ msgstr "ą²®ą²°ą²³ą²æ ą²Ŗą²”ą³(_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ą²ą³ą²øą²æą²¤ą²¦ą²æą²ą²¦ ą²®ą²°ą²³ą²æ ą²Ŗą²”ą³ą²Æą³ą²µą²æą²ą³" + +#~ msgid "Print..." +#~ msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą³..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ą²øą²¾ą²ą²ą³ą²¤ą²æą² ą²ą³ą²ą²”ą²æ ā%sā ą² ą²Øą³ą²Øą³ ą²øą³ą²ą²æą²øą²²ą³ ą²øą²¾ą²§ą³ą²Æą²µą²¾ą²ą²æą²²ą³ą²²: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²¤ą³ą²°ą³ą²Æą²²ą²¾ą²ą²æą²²ą³ą²²." + +#~ msgid "The document doesn't support search" +#~ msgstr "ą²¦ą²øą³ą²¤ą²¾ą²µą³ą²ą³ ą²¹ą³ą²”ą³ą²ą²¾ą²ą²µą²Øą³ą²Øą³ ą²¬ą³ą²ą²¬ą²²ą²æą²øą³ą²µą³ą²¦ą²æą²²ą³ą²²" + +#~ msgid "_Save a Copy..." +#~ msgstr "ą²ą²ą²¦ą³ ą²Ŗą³ą²°ą²¤ą²æą²Æą²Øą³ą²Øą³ ą²ą²³ą²æą²øą³(_S)..." + +#~ msgid "Page Set_up..." +#~ msgstr "ą²Ŗą³ą²ą²¦ ą²øą²æą²¦ą³ą²§ą²¤ą³ą²ą²³ą³(_u)..." + +#~ msgid "Setup the page settings for printing" +#~ msgstr "ą²®ą³ą²¦ą³ą²°ą²£ą²ą³ą²ą²¾ą²ą²æ ą²Ŗą³ą²ą²¦ ą²øą²æą²¦ą³ą²§ą²¤ą³ą²ą²³ą²Øą³ą²Øą³ ą²¹ą³ą²ą²¦ą²æą²øą³" + +#~ msgid "_Print..." +#~ msgstr "ą²®ą³ą²¦ą³ą²°ą²æą²øą³(_P)..." + +#~ msgid "_Find..." +#~ msgstr "ą²Ŗą²¤ą³ą²¤ą³ ą²¹ą²ą³ą²ą³(_F)..." diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 00000000..680e74a4 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,1707 @@ +# evince korean translation +# This file is distributed under the same license as the evince package. +# Young-Ho Cha <ganadist at mizi dot com>, 2005 +# Changwoo Ryu <cwryu@debian.org>, 2006, 2007, 2008, 2009, 2010. +# +# ģė” ė²ģķģė ė¶ģ ģė translator-creditsģ ģ¶ź°ķ“ ģ£¼ģøģ. +# +# ģ£¼ģ: +# - Evinceė "ģė¹ģ¤"ė” ģģ +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-09-26 04:25+0900\n" +"PO-Revision-Date: 2010-09-26 04:39+0900\n" +"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" +"Language-Team: MATE Korea <mate-kr@googlegroups.com>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ė§ķģ± ģģ¶ģ ķøė ā%sā ėŖ ė ¹ģ ģ¤ķķėė° ģ¤ė„: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ā%sā ėŖ ė ¹ģ“ ė§ķģ± ģģ¶ģ ķøėė° ģ¤ķØķģµėė¤." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ėŖ ė ¹ģ“ ģ ģģ ģ¼ė” ėėģ§ ģģģµėė¤." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ė§ķģ± MIME ķģģ“ ģėėė¤: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ģ“ ģ¢ ė„ģ ė§ķģ± ģ ģģ¶ģ ķ ėŖ ė ¹ģ ģ°¾ģ§ ėŖ»ķģµėė¤." + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ģ ģ ģė MIME ķģ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ķģ¼ģ“ ģģėģģµėė¤" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ģģ¹“ģ“ėøģ ķģ¼ģ“ ģģµėė¤" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%sģ ź·øė¦¼ ķģ¼ģ“ ģģµėė¤" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr " ā%sā ģģ ģ ģ¤ė„ź° ė°ģķģµėė¤." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ģ¤ė„ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ė§ķģ± " + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ė¬øģź° ģėŖ»ėģģµėė¤" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ė¬øģź° ģ¬ė¬ ź° ķģ¼ė” ģ“ė£Øģ“ģ ø ģź³ , ź·ø ķģ¼ ģ¤ģ ģ ź·¼ķ ģ ģė ķģ¼ģ“ ģģµ" +"ėė¤." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ė¬øģ" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ė¬øģź° ģėŖ»ėģģµėė¤" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ė¬øģ" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ģ“ ė¬øģė ķ¼ėøė¦ ėė©ģøģ ėė¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ģ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ģėģ¤" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "ķøė£Øķģ " + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "ķøė£Øķģ (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ģ ģ ģė źøź¼“ ķģ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ģ“ė¦ ģģ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ķ¬ķØė ģėøģ " + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ķ¬ķØėØ" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ķ¬ķØėģ§ ģģ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ė¬øģ" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ģėŖ»ė ė¬øģ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ģķė ģ¤ ģ¬ė¼ģ“ė" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ģ¤ė„ ģģ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ė©ėŖØė¦¬ ė¶ģ”±" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ZIP ģź·øėģ²ė„¼ ģ°¾ģ ģ ģģµėė¤" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ZIP ķģ¼ģ“ ģėŖ»ėģģµėė¤" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ģ¬ė¬ ķģ¼ė” ė ZIPģ ģ§ģķģ§ ģģµėė¤" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ķģ¼ģ ģ“ ģ ģģµėė¤" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ķģ¼ģģ ė°ģ“ķ°ė„¼ ģ½ģ ģ ģģµėė¤" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP ģģ¹“ģ“ėøģģ ķģ¼ģ ģ°¾ģ ģ ģģµėė¤" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ģ ģ ģė ģ¤ė„" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ė¬øģė„¼ ģ½ģ“ė¤ģ“ėė° ģ¤ķØķģµėė¤" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ė¬øģė„¼ ģ ģ„ķėė° ģ¤ķØķģµėė¤" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ė¬øģ" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ā%sā ģ²Øė¶ė„¼ ģ ģ„ķ ģ ģģµėė¤: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ā%sā ģ²Øė¶ė„¼ ģ“ ģ ģģµėė¤: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ģ²Øė¶ė„¼ ģ“ ģ ģģµėė¤: ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ķģ¼ ķģģ ģ§ģķģ§ ģģµėė¤" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ėŖØė ė¬øģ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ėŖØė ķģ¼" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ģģ ķģ¼ģ ė§ėėė° ģ¤ķØķģµėė¤: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ģģ ėė ķ°ė¦¬ė„¼ ė§ėėė° ģ¤ķØķģµėė¤: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ģ¬ė°ė„ø .desktop ķģ¼ģ“ ģėėė¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "desktop ķģ¼ ė²ģ ģ ('%s') ģøģķ ģ ģģµėė¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ģģ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ėŖ ė ¹ķģģ ė¬øģė„¼ ģ§ģ ķ ģ ģė ķė”ź·øėØģ ėė¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ģ ģ ģė ģ¤ķ ģµģ : %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ė¬øģ URIė 'Type=Link' desktop ķėŖ©ģ ėźøø ģ ģģµėė¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ģ¤ķķ ģ ģė ķėŖ©ģ“ ģģµėė¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ģøģ ź“ė¦¬ģģ ģ°ź²°ķģ§ ģģµėė¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ģ¤ģ ģ ģ ģ„ķ ķģ¼ģ ģ§ģ ķ©ėė¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "<ķģ¼>" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ģøģ ź“ė¦¬ IDė„¼ ģ§ģ ķ©ėė¤" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "<ID>" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ģøģ ź“ė¦¬ ģµģ :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ģøģ ź“ė¦¬ ģµģ ģ ķģķ©ėė¤" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ė³“ģ“źø°" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ėźµ¬ ėŖØģģģ ģ®źø°źø°(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ėźµ¬ ėŖØģģģ ģ ķķ ķėŖ©ģ ģ®ź¹ėė¤" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ėźµ¬ ėŖØģģģ ģ ź±°(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ėźµ¬ ėŖØģģģ ģ ķķ ķėŖ©ģ ģ ź±°ķ©ėė¤" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ėźµ¬ ėŖØģ ģģ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ģ ķķ ėźµ¬ ėŖØģģ ģ ź±°ķ©ėė¤" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "źµ¬ė¶ģ " + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "ģė§ź² ė§ģ¶źø°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ķģ“ģ§ ėė¹ģ ė§ģ¶źø°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ė¬øģ ė³“źø°" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ė¤ģ¤ ķģ“ģ§ ė¬øģė„¼ ė“ ėė¤" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ė¬øģ ģ ķ ė¬“ģķźø°" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ė³µģ¬ķźø°ė ģøģ ź°ģ ė¬øģģ ķģ ė¬“ģķ©ėė¤." + +# ėģė§. ė¬øģ„ģ¼ė” ė²ģ +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ģģ ķģ¼ģ ģģ ķ©ėė¤" + +# ėģė§. ė¬øģ„ģ¼ė” ė²ģ +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ģ¤ģ ķģ¼ģ ģøģķ©ėė¤" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ź·øė ė¬øģ ėÆøė¦¬ ė³“źø°" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "ė¬øģė„¼ ģøģķėė° ģ¤ķØķģµėė¤" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ģ ķķ '%s' ķė¦°ķ°ź° ģģµėė¤" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "ģ“ģ ķģ“ģ§(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "ģ“ģ ķģ“ģ§ė” ź°ėė¤" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "ė¤ģ ķģ“ģ§(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "ė¤ģ ķģ“ģ§ė” ź°ėė¤" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "ė¬øģė„¼ ėģ¬ģ ė“ ėė¤" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "ė¬øģė„¼ ģ¤ģ¬ģ ė“ ėė¤" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ģøģ" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "ģ“ ė¬øģė„¼ ģøģķ©ėė¤" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "ģė§ź² ė§ģ¶źø°(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "ķģ¬ ė¬øģė„¼ ģ°½ģ ė§ź² ģ±ģėė¤" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "ķģ“ģ§ ėė¹ģ ė§ģ¶źø°(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "ķģ¬ ė¬øģė„¼ ģ°½ ėė¹ģ ė§ź² ģ±ģėė¤" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "ķģ“ģ§" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "ģ ķķ ķģ“ģ§" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ė¬øģ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ģ ėŖ©:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ģģ¹:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ģ£¼ģ :" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "źøģ“ģ“:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ź²ģģ“:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ė§ė ėźµ¬:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ė§ė ģ“:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ė§ė ė ģ§:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ģģ ė ģ§:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ķģ“ģ§ ģ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ģµģ ķ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ķģ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ė³“ģ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ģ©ģ§ ķ¬źø°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ģģ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ģøė” (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ź°ė” (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%02$d ķģ“ģ§ ģ¤ %01$d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ķģ“ģ§ ģ¤ģģ" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ģ½ė ģ¤ā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ģøģķ ģ¤ė¹ķė ģ¤ģ ėė¤ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ė§ģ¹ė ģ¤ģ ėė¤ā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "%dė² ķģ“ģ§ė„¼ (ģ ģ²“ %d ķģ“ģ§) ģøģķė ģ¤ģ ėė¤ā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ģ“ ķė¦°ķ°ģģė ģøģė„¼ ģ§ģķģ§ ģģµėė¤." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ķģ“ģ§ ģ ķģ“ ģėŖ»ėģģµėė¤" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ź²½ź³ " + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ģøģ ė²ģ ģ ķ ģģ ģė¬“ ķģ“ģ§ė ģģµėė¤" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ķģ“ģ§ ķ¬źø° ģ”°ģ :" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ģøģ ź°ė„ ģģģ¼ė” ģ¤ģ“źø°" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ģøģ ź°ė„ ģģģ ė§ģ¶źø°" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ė¬øģ ķģ“ģ§ė„¼ ķė¦°ķ° ķģ“ģ§ģ ė§ģ¶° ķ¬źø°ė„¼ ģ”°ģ ķ©ėė¤. ė¤ģ ģ¤ ķėė„¼ ģ ķķģ" +"ģģ¤:\n" +"\n" +"ā¢ \"ģģ\": ķģ“ģ§ ķ¬źø° ģ”°ģ ģ ķģ§ ģģµėė¤.\n" +"\n" +"ā¢ \"ģøģ ź°ė„ ģģģ¼ė” ģ¤ģ“źø°\": ģøģ ź°ė„ ģģė³“ė¤ ķ° ķģ“ģ§ė„¼ ģ¶ģķ“ģ ģø" +"ģ ź°ė„ ģģģ ė§ģ¶„ėė¤.\n" +"\n" +"ā¢ \"ģøģ ź°ė„ ģģģ ė§ģ¶źø°\": ķģ“ģ§ė„¼ ķģģ ė°ė¼ ķėķź±°ė ģ¶ģķ“ģ ģøģ " +"ź°ė„ ģģģ ė§ģ¶„ėė¤.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ģė ķģ ė° ź°ģ“ė° ģ ė ¬" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ė¬øģ ķģ“ģ§ģ ė§ź² ķė¦°ķ° ķģ“ģ§ ė°©ķ„ģ ķģ ķ©ėė¤. ė¬øģ ķģ“ģ§ė ķė¦°ķ° ķģ“" +"ģ§ ź°ģ“ė°ģ ė§ģ¶„ėė¤." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ė¬øģ ķģ“ģ§ ķ¬źø°ė„¼ ģ¬ģ©ķ“ ķģ“ģ§ ķ¬źø° ģ ķ" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ķģ“ģ§ė„¼ ė¬øģ ķģ“ģ§ģ ź°ģ ķ¬źø°ģ ģ¢ ģ“ģ ģøģķ©ėė¤." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ķģ“ģ§ ģ²ė¦¬" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ķģ“ģ§ė„¼ ģøģķėė° ģ¤ķØķģµėė¤: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ģė”" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ģėė”" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ė·°ė„¼ ģė”" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ė·°ė„¼ ģėė”" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ė¬øģ ė³“źø°" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ķģ“ģ§ė” ģ“ė:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ķė¦¬ģ ķ ģ“ģ ģ“ ėė¬ģµėė¤. ėź°ė ¤ė©“ ėė„“ģģģ¤." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ģ²« ķģ“ģ§ė” ģ“ėķ©ėė¤" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ģ“ģ ķģ“ģ§ė” ģ“ėķ©ėė¤" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ė¤ģ ķģ“ģ§ė” ģ“ėķ©ėė¤" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ė§ģ§ė§ ķģ“ģ§ė” ģ“ėķ©ėė¤" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ģ§ģ ķ ķģ“ģ§ė” ģ“ė" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ģ°¾źø°" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "%s ķģ“ģ§ė” ģ“ė" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%2$sā ķģ¼ģ %1$s(ģ¼)ė” ģ“ė" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ķģ¼ė” ģ“ė" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ģ¤ķ" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ģ°¾źø°:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "ģ“ģ ģ°¾źø°(_V)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ģ“ģ ģ ėģ¤ė ź²ģ ė¬øģģ“ģ ģ°¾ģµėė¤" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "ė¤ģ ģ°¾źø°(_X)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ė¤ģģ ėģ¤ė ź²ģ ė¬øģģ“ģ ģ°¾ģµėė¤" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ėģė¬øģ źµ¬ė¶(_A)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ėģė¬øģ źµ¬ė¶ ź²ģģ ķ źøķ©ėė¤" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ģģ“ģ½:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ė©ėŖØ" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ģ¤ėŖ " + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ķ¤" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ėģė§" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ģ ė¬øėØ" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ė¬øėØ" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ģ ė „" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ģģ¤ķ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ėź·øė¼ėÆø" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ģ ģ ģģ" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ģ¶ź° ģ ė³“ ģģ±" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "ģ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ėŖØģ:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ķ¬ėŖ " + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ė¶ķ¬ėŖ " + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ģµģ“ ģ°½ ģķ:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ģ“źø°" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ė«źø°" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ķė¦¬ģ ķ ģ“ģ ėŖØėė” ģ¤ķ ģ¤ģ ėė¤" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ė¬øģ %sģ ģķø" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ė³ķķė ģ¤" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%dź° ė¬øģ (ģ ģ²“ %dź°) ė³ķķė ģ¤" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ė©ķė°ģ“ķ°ė„¼ ė³ķķė ģ¤" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ģė¹ģ¤ź° ģ¬ģ©ķė ė©ķė°ģ“ķ° ķģģ“ ė°ėģ“ģ, ģė ė°ģ“ķ°ģģ ģ®ź²Ø ģģ¼ ķ©ė" +"ė¤. ģ“ ģģ ģ ģ·Øģķė©“ ė©ķė°ģ“ķ° ģ ģ„ źø°ė„ģ“ ėģķģ§ ģģµėė¤." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ģµź·¼ ģ¬ģ©ķ ė¬øģė„¼ ģ½ėė¤" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ģ“ ė¬øģė ģ ź²Øģź³ ģ¬ė°ė„ø ģķøė„¼ ģ ė „ķ“ģ¼ ģ½ģ ģ ģģµėė¤." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ė¬øģ ģ źø ķźø°(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ģķøė„¼ ģ ė „ķģģģ¤" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ģķøź° ķģķ©ėė¤" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ė¬øģź° ģ ź²Øģģ“ģ ģ“ė ¤ė©“ ģķøź° ķģķ©ėė¤." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ģķø(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ģ¦ģ ģķø ģźø°(_I)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ė”ź·øģģķ ėź¹ģ§ ģķø ģ ģ„(_L)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ź³ģ ģķø źø°ģµ(_F)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ģģ±" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ģ¼ė°" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "źøź¼“" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ė¬øģ ė¼ģ“ģ ģ¤" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "źøź¼“" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "źøź¼“ ģ ė³“ ėŖØģ¼ė ģ¤ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ģ¬ģ© ģ½ź“" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ė¬øģ ė¼ģ“ģ ģ¤" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "źø°ķ ģ ė³“" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ėŖ©ė”" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ģ¶ź° ģ ė³“" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ķ ģ¤ķø" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ģ¶ź° ģ ė³“ ģ¶ź°" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ģ¶ź°" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ė¬øģģ ģ¶ź° ģ ė³“ź° ģģµėė¤" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ķģ“ģ§ %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ģ²Øė¶" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ė ģ“ģ“" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ģøģā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ģ°Øė”" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ėÆøė¦¬ ė³“źø°" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "ķģ“ģ§ %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "ķģ“ģ§ %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "ė¬øģģ ķģ“ģ§ź° ģģµėė¤" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "ė¬øģģ ė¹ ķģ“ģ§ė§ ė¤ģ“ ģģµėė¤" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "ė¬øģė„¼ ģ“ ģ ģģ" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sāģģ ė¬øģė„¼ ģ½ģ“ė¤ģ“ė ģ¤ģ ėė¤" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ė¬øģė„¼ ė¤ģ“ė”ėķė ģ¤ģ ėė¤ (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "ģź²© ķģ¼ģ ģ½ģ“ė¤ģ“ėė° ģ¤ķØķģµėė¤." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "ė¬øģė„¼ %sģģ ė¤ģ ģ½ė ģ¤ģ ėė¤" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "ė¬øģė„¼ ė¤ģ ģ½ėė° ģ¤ķØķģµėė¤." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "ė¬øģ ģ“źø°" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "ė¬øģė„¼ %sģ ģ ģ„ķė ģ¤ģ ėė¤" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "ģ²Øė¶ė„¼ %sģ ģ ģ„ķė ģ¤ģ ėė¤" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "ź·øė¦¼ģ %sģ ģ ģ„ķė ģ¤ģ ėė¤" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ķģ¼ģ ā%sā(ģ¼)ė” ģ ģ„ķ ģ ģģµėė¤." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ė¬øģė„¼ ģ ė”ėķė ģ¤ģ ėė¤ (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ģ²Øė¶ė„¼ ģ ė”ėķė ģ¤ģ ėė¤ (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ź·øė¦¼ģ ģ ė”ėķė ģ¤ģ ėė¤ (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "ė¤ė„ø ģ“ė¦ģ¼ė” ģ ģ„" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ķģ ė°ė¦° ģøģ ģģ ģ“ %dź° ģģµėė¤" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "ģøģ ģģ ā%sā" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "ė¬øģģ ģ±ģ ė£ģ ķėź° ģģµėė¤. ė³µģ¬ė¬¼ģ ģ ģ„ķģ§ ģģ¼ė©“ ė°ė ģ¬ķģ ģģ“ė²ė¦“ ģ ģģµėė¤." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "ė¬øģģ ģė” ģ¶ź°ķź±°ė ģģ ķ ģ¶ź° ģ ė³“ź° ģģµėė¤. ė³µģ¬ė¬¼ģ ģ ģ„ķģ§ ģģ¼ė©“ ė°ė ģ¬ķģ ģģ“ė²ė¦“ ģ ģģµėė¤." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ė«źø° ģ ģ ā%sā ė¬øģģ ė³µģ¬ė³øģ ģ ģ„ķģź² ģµėź¹?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "ģ ģ„ķģ§ ģź³ ė«źø°(_W)" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "ė³µģ¬ė¬¼ ģ ģ„(_C)" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ė«źø° ģ ģ ā%sā ģøģ ģģ ģ ė§ģ¹ ėź¹ģ§ źø°ė¤ė¦¬ģź² ģµėź¹?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ģ§ķ ģ¤ģø ģøģ ģģ ģ“ %dź° ģģµėė¤. ė«źø° ģ ģ ģøģė„¼ ė§ģ¹ ėź¹ģ§ źø°ė¤ė¦¬ģź² " +"ģµėź¹?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ģ°½ģ ė«ģ¼ė©“, ė°ė¦° ģøģ ģģ ģ ģøģķģ§ ģģµėė¤." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "ģøģ ģ·Øģ ė° ė«źø°(_P)" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "ģøģ ķ ė«źø°(_A)" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "ėźµ¬ ėŖØģ ķøģ§źø°" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "ėģė§ģ ķģķėė° ģ¤ė„ź° ė°ģķģµėė¤" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ė¬øģ ė³“źø° ķė”ź·øėØ.\n" +"%s (%s) ģ¬ģ©" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "ģė¹ģ¤" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"ģ°Øģķø <ganadist at mizi dot com>, 2005\n" +"ė„ģ°½ģ° <cwryu@debian.org>, 2006, 2007, 2008" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ģ“ ķģ“ģ§ģģ %dź° ģ°¾ģ" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "ģģ" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ģ°¾ėė° %3d%% ėØģ" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "ķģ¼(_F)" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "ķøģ§(_E)" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "ė³“źø°(_V)" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "ģ“ė(_G)" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "ėģė§(_H)" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "ģ“źø°(_O)ā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "ė¬øģė„¼ ģ½ėė¤" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "ė³µģ¬ė³ø ģ“źø°(_E)" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "ķģ¬ ė¬øģģ ė³µģ¬ė³øģ ģ ģ°½ģģ ģ½ėė¤" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "ė³µģ¬ė¬¼ ģ ģ„(_S)ā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "ķģ¬ ė¬øģģ ģ¬ė³øģ ģ ģ„ķ©ėė¤" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "ģøģ(_P)ā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "ģģ±(_R)" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "ėŖØė ģ ķ(_A)" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "ģ°¾źø°(_F)ā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "ė¬øģģģ ėØģ“ė ė¬øģ„ģ ģ°¾ģµėė¤" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "ėźµ¬ ėŖØģ(_O)" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "ģ¼ģŖ½ģ¼ė” ķģ (_L)" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "ģ¤ė„øģŖ½ģ¼ė” ķģ (_R)" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "ķģ¬ ģ¤ģ ģ źø°ė³øź°ģ¼ė” ģ ģ„(_D)" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "ė¤ģ ģ½źø°(_R)" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "ė¬øģė„¼ ė¤ģ ģ½ģµėė¤" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "ģė ģ¤ķ¬ė”¤(_S)" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "ģ²« ķģ“ģ§(_F)" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "ģ²« ķģ“ģ§ė” ź°ėė¤" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "ė§ģ§ė§ ķģ“ģ§(_L)" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "ė§ģ§ė§ ķģ“ģ§ė” ź°ėė¤" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "ģ°Øė”(_C)" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "ģ ė³“(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "ģ ģ²“ ķė©“ ėź°źø°" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "ģ ģ²“ ķė©“ģģ ėź°ėė¤" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "ķė¦¬ģ ķ ģ“ģ ģģ" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "ķė¦¬ģ ķ ģ“ģ ģ ģģķ©ėė¤" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "ėźµ¬ ėŖØģ(_T)" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "ėźµ¬ ėŖØģģ ė³“ģ“ź±°ė ģØź¹ėė¤" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "ź°ģ„ģė¦¬ ģ°½(_P)" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "ź°ģ„ģė¦¬ ģ°½ģ ė³“ģ“ź±°ė ģØź¹ėė¤" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "ģ°ģ(_C)" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "ė¬øģė„¼ ģ°ģķ“ģ ė“ ėė¤" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "ė ķģ“ģ§ģ©(_D)" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "ķė²ģ ė ķģ“ģ§ģ© ė“ ėė¤" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "ģ ģ²“ ķė©“(_F)" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "ķė©“ģ ź½ ģ°Øėė” ģ°½ģ ķ¤ģėė¤" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "ķė¦¬ģ ķ ģ“ģ (_S)" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "ķė¦¬ģ ķ ģ“ģ ģ¼ė” ė¬øģė„¼ ė³“ģ¬ģ¤ėė¤" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "ģ ė°ģ (_I)" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "ķģ“ģ§ ė“ģ©ģ ģģ ė°ģ ģģ¼ ķģķ©ėė¤" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "ė§ķ¬ ģ“źø°(_O)" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "ģ“ė(_G)" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "ģ ģ°½ģģ ģ“źø°(_W)" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "ė§ķ¬ ģ£¼ģ ė³µģ¬(_C)" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "ė¤ė„ø ģ“ė¦ģ¼ė” ź·øė¦¼ ģ ģ„(_S)ā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "ź·øė¦¼ ė³µģ¬(_I)" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "ģ¶ź° ģ ė³“ ģģ±ā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "ģ²Øė¶ ģ“źø°(_O)" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "ė¤ė„ø ģ“ė¦ģ¼ė” ģ²Øė¶ ģ ģ„(_S)ā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "ķė/ģ¶ģ" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "ķė/ģ¶ģ ģģ¤ ģ”°ģ " + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "ėė¬ė³“źø°" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "ė¤ė”" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "ģ“ģė ķģ“ģ§ė” ģ“ėķ©ėė¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "ģ“ģ " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "ė¤ģ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "ķė" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "ģ¶ģ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "ėė¹ ė§ģ¶¤" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "ģøė¶ ķė”ź·øėØģ ģ¤ķķ ģ ģģµėė¤." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "ģøė¶ ė§ķ¬ė„¼ ģ“ ģ ģģµėė¤" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "ź·øė¦¼ģ ģ ģ„ķ ģ ė¹ķ ķģģ ģ°¾ģ ģ ģģµėė¤" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "ź·øė¦¼ģ ģ ģ„ķ ģ ģģµėė¤." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "ź·øė¦¼ ģ ģ„" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "ģ²Øė¶ė„¼ ģ“ ģ ģģµėė¤" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "ģ²Øė¶ė„¼ ģ ģ„ķ ģ ģģµėė¤." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "ģ²Øė¶ ģ ģ„" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ģķø ķģ" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ķģ„ģģ ė°ė¼" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ź·øė ė¬øģ ė³“źø°" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "ķģķ ė¬øģģ ķģ“ģ§ ė ģ“ėø." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "<ķģ“ģ§>" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "ķģķ ė¬øģģ ķģ“ģ§ ė²ķø." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "<ė²ķø>" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ģė¹ģ¤ė„¼ ģ ģ²“ ķė©“ ėŖØėė” ģ¤ķķ©ėė¤" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ģė¹ģ¤ė„¼ ķė¦¬ģ ķ ģ“ģ ėŖØėė” ģ¤ķķ©ėė¤" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ģė¹ģ¤ė„¼ ėÆøė¦¬ ė³“źø°ė” ģ¤ķķ©ėė¤" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ė¬øģģģ ģ°¾ģ ėØģ“ė ė¬øģ„" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "<ė¬øģģ“>" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[<ķģ¼>...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ģ°ø/ź±°ģ§ģ¼ė” ģ¤ģ ź°ė„: ģ°øģ“ė©“ ėÆøė¦¬ė³“źø° ė§ė¤źø°, ź±°ģ§ģ“ė©“ ėÆøė¦¬ė³“źø° ė§ė¤źø°ė„¼ ķ" +"ģ§ ģģ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ė¬øģģ ėÆøė¦¬ė³“źø° ė§ė¤źø° ź°ė„" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ė¬øģģ ėÆøė¦¬ė³“źø° ė§ė¤źø° ėŖ ė ¹" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDFė¬øģ ėÆøė¦¬ė³“źø° ė§ė¤źø°ģ ģ¬ė°ė„ø ėŖ ė ¹ź³¼ ģøģ. ė øķøė¬ģ¤ ėÆøė¦¬ė³“źø° ė§ė¤źø° ė¬øģ" +"ģ ģģøķ ģ ė³“ ģ°øģ”°." + +#~ msgid "Page Set_upā¦" +#~ msgstr "ķģ“ģ§ ģ¤ģ (_U)ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "ģøģģ ź“ė Øķ“ ķģ“ģ§ė„¼ ģ¤ģ ķ©ėė¤" diff --git a/po/ks.po b/po/ks.po new file mode 100644 index 00000000..f16e6a52 --- /dev/null +++ b/po/ks.po @@ -0,0 +1,1393 @@ +# translation of evince.HEAD.po to Kashmiri +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Rakesh Pandit <rakesh.pandit@gmail.com>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD.hi\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-07-03 03:16+0000\n" +"PO-Revision-Date: 2008-06-28 06:20+0530\n" +"Last-Translator: Rakesh Pandit <rakesh.pandit@gmail.com>\n" +"Language-Team: Kashmiri <ks-mate-trans-commits@lists.code.indlinux.net>\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" +"\n" +"\n" +"\n" +"\n" +"X-Generator: KBabel 1.9.1\n" + +#: ../backend/comics/comics-document.c:163 +#, c-format +msgid "File corrupted." +msgstr "ą¤ą¤°ą¤¾ą¤¬ ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/comics/comics-document.c:197 +#, c-format +msgid "No images found in archive %s" +msgstr "ą¤ą¤¾ą¤ą¤¹ą„ ą¤«ą„ą¤ą„ ą¤ą„ą¤ą¤Ø: ą¤ą¤°ą¤ą¤¾ą¤µą¤æą¤µ ą¤®ą¤ą¤ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¤ą„ą¤®ą¤æą¤ ą¤ą¤æą¤¤ą¤¾ą¤¬" + +#: ../backend/djvu/djvu-document.c:247 +#, c-format +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "ą¤”ą„ą¤ą¤¾ą¤µą„ą¤Æą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../backend/dvi/dvi-document.c:94 +#, c-format +msgid "File not available" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤®ą„ą¤² ą¤Ø" + +#: ../backend/dvi/dvi-document.c:109 +#, c-format +msgid "DVI document has incorrect format" +msgstr "ą¤”ą„ą¤µą„ ą¤ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤ø ą¤ą„ ą¤ą¤²ą¤¤ ą¤«ą¤¾ą¤°ą¤®ą„ą¤" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ą¤”ą„ą¤µą„ ą¤ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:688 +msgid "Yes" +msgstr "ą¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:691 +msgid "No" +msgstr "ą¤Ø" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Type 1" +msgstr "ą¤ą¤Æą„ą¤Ŗ 1" + +#: ../backend/pdf/ev-poppler.cc:767 +msgid "Type 1C" +msgstr "ą¤ą¤Æą„ą¤Ŗ1C" + +#: ../backend/pdf/ev-poppler.cc:769 +msgid "Type 3" +msgstr "ą¤ą¤Æą„ą¤Ŗ 3" + +#: ../backend/pdf/ev-poppler.cc:771 +msgid "TrueType" +msgstr "ą¤ą¤°ą„ą¤ą¤Æą„ą¤Ŗ" + +#: ../backend/pdf/ev-poppler.cc:773 +msgid "Type 1 (CID)" +msgstr "ą¤ą¤Æą„ą¤Ŗ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:775 +msgid "Type 1C (CID)" +msgstr "ą¤ą¤Æą„ą¤Ŗ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "TrueType (CID)" +msgstr "ą¤ą¤°ą„ą¤ą¤Æą„ą¤Ŗ (CID)" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Unknown font type" +msgstr "ą¤ą¤¬ą¤°ą¤ą„ą¤ø ą¤«ą¤ą¤ ą¤ą¤Æą„ą¤Ŗ" + +#: ../backend/pdf/ev-poppler.cc:805 +msgid "No name" +msgstr "ą¤ą¤¾ą¤¹ ą¤Øą¤¾ą¤µ ą¤Ø" + +#: ../backend/pdf/ev-poppler.cc:813 +msgid "Embedded subset" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤¹ą¤æą¤øą„ą¤ø" + +#: ../backend/pdf/ev-poppler.cc:815 +msgid "Embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤”" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "Not embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤ą„ą¤Øą„ą¤Ø" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤«ą¤¼ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../backend/impress/impress-document.c:296 +#, fuzzy, c-format +msgid "Remote files aren't supported" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤«ą¤¼ ą¤«ą¤¾ą¤Æą¤² ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤¬ą¤Øą„ą¤Øą¤µą¤æą¤¤" + +#: ../backend/impress/impress-document.c:307 +#, fuzzy, c-format +msgid "Invalid document" +msgstr "ą¤ą¤²ą¤¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤ø ą¤øą„ą¤²ą¤¾ą¤ą¤”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¤ą¤¾ą¤¹ ą¤ą¤²ą¤¤ą„ ą¤Ø" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¤Ŗą„ą¤°ą„ą¤° ą¤®ą„ą¤®ą¤°ą„ ą¤Ø" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ą¤ą¤æą¤Ŗ ą¤øą„ą¤ą¤Øą„ą¤ą¤° ą¤¹ą¤Æą„ą¤ ą¤Ø ą¤®ą¤æą¤²ą¤æą¤¤" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ą¤ą¤²ą¤¤ ą¤ą¤æą¤Ŗ ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/impress/zip.c:65 +#, fuzzy +msgid "Multi file zips are not supported" +msgstr "ą¤®ą¤²ą¤ą„ ą¤«ą¤¾ą¤ą¤² ą¤ą„ą¤Ŗ ą¤ą„ą¤Ø ą¤ą¤²ą¤¾ą¤Ø" + +#: ../backend/impress/zip.c:68 +#, fuzzy +msgid "Cannot open the file" +msgstr "ą„ą¤¾ą¤ą¤² ā%sā ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤\n" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¤Æą¤® ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤Æą„ą¤ą„ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤Ŗą¤°ą¤æą¤¤ą¤„" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ą¤ą„ą¤Ŗ ą¤ą¤°ą¤ą¤Æą¤æą¤µ ą¤®ą¤ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤«ą¤¾ą¤ą¤² ą¤ą¤ą¤”ą¤æą¤¤" + +#: ../backend/impress/zip.c:77 +#, fuzzy +msgid "Unknown error" +msgstr "ą¤ą¤¬ą¤°ą¤ą„ą¤øą„ą¤ø ą¤ą¤²ą¤¤ą„" + +#: ../backend/ps/ev-spectre.c:113 +#, fuzzy, c-format +msgid "Failed to load document ā%sā" +msgstr "'%s' ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ ą¤æą¤ ą¤ą¤°ą¤æą¤¤ą¤„" + +#: ../backend/ps/ev-spectre.c:146 +#, fuzzy, c-format +msgid "Failed to save document ā%sā" +msgstr "'%s' ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ ą¤æą¤ ą¤ą¤°ą¤æą¤¤ą¤„" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¤ą¤ą„ą¤ą¤®ą„ą¤ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤øą„ą¤µ ą¤ą¤°ą¤æą¤„ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¤ą¤ą„ą¤ą¤®ą„ą¤ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤ą„ą¤„ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¤ą¤ą„ą¤ą¤®ą„ą¤ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤ą„ą¤„ ā%sā" + +#: ../libdocument/ev-document-factory.c:193 +#, fuzzy, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą¤®ą¤²ą¤ą„ ą¤«ą¤¾ą¤ą¤² ą¤ą„ą¤Ŗ ą¤ą„ą¤Ø ą¤ą¤²ą¤¾ą¤Ø" + +#: ../libdocument/ev-document-factory.c:294 +#, c-format +msgid "Unknown MIME Type" +msgstr "ą¤Ŗą¤¤ą„ą¤¹ą¤Æą¤Øą„ą¤Ø ą¤ą„ą¤ø ą¤ą¤® ą¤ą¤ ą¤ą¤® ą¤ ą¤ą¤¾ą¤Æą¤Ŗ" + +#: ../libdocument/ev-document-factory.c:349 +msgid "All Documents" +msgstr "ą¤øą¤°ą„ą¤°ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../libdocument/ev-document-factory.c:381 +msgid "All Files" +msgstr "ą¤øą¤°ą„ą¤°ą„ ą¤«ą¤¼ą¤¾ą¤ą¤²ą„ą¤" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”: (_P)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +#, fuzzy +msgid "_Remember password until you logout" +msgstr "ą¤Æą¤® ą¤øą¤¶ą„ą¤Øą„ą¤ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”: ą¤„ą¤Æą„ą¤Æą¤µ ą¤Æą¤¾ą¤¦" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ą¤¹ą¤Æą„ą¤Æą¤µ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤Ŗą¤Æą„ą¤ą¤ ą¤ą¤ø(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "ą¤¤ą„ą¤²ą¤®ą„ą¤¤ ą¤ą¤ą¤ą¤® ą¤Ŗą¤ą¤Øą„ą¤Æą„ą¤Æą¤µ ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤Ŗą¤Æą„ą¤ " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤Ŗą¤Æą„ą¤ ą¤¹ą¤ą¤¾ą¤µ(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "ą¤¤ą„ą¤²ą¤®ą„ą¤¤ ą¤ą¤ą¤ą¤® ą¤¹ą¤ą„ą¤Æą„ą¤Æą¤µ ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤Ŗą¤Æą„ą¤ " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤¹ą¤ą„ą¤ą¤Æą¤µ(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤ą¤Ŗą¤ą¤°ą¤£-ą¤Ŗą¤ą„ą¤ą„ ą¤¹ą¤ą¤¾ą¤Æą„ą¤ą¤¤ą„ą¤²ą¤®ą„ą¤¤ ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤°ą¤ø ą¤¹ą¤ą„ą¤ą¤øą¤µ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "ą¤ ą¤²ą¤ ą¤ą¤°ą„ą¤°ą¤Ø ą¤µą„ą¤²" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +#, fuzzy +msgid "Running in presentation mode" +msgstr "ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4623 +msgid "Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ą¤”ą¤¼ą¤¾ą¤" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +#, fuzzy +msgid "70%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +#, fuzzy +msgid "85%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3729 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤µą„ą¤ą¤Øą„ą¤" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą¤µą¤¾ą¤°ą¤Æą¤¾ą¤¹ ą¤µą¤°ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../data/evince-password.glade.h:1 +#, fuzzy +msgid "Password Entry" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”: (_P)" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ą¤Æą¤® ą¤øą¤¶ą„ą¤Øą„ą¤ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”: ą¤„ą¤Æą„ą¤Æą¤µ ą¤Æą¤¾ą¤¦" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ą¤ą„ą¤°ą¤æą¤ą¤ ą¤®ą¤ą¤ ą¤²ą¤ą„ą¤ą¤Æą¤µ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b> ą¤²ą„ą¤ą¤Øą¤µą„ą¤²</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b> ą¤¬ą¤Øą„ą¤µ :</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b> ą¤¬ą¤Øą¤¾ą¤µą¤Ø ą¤µą„ą¤²:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b> ą¤«ą¤¾ą¤°ą¤®ą„ą¤:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b> ą¤ą„-ą¤µą¤°ą„ą¤”ą¤ø:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b> ą¤¬ą¤¦ą¤²ą„ą¤µ:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b> ą¤ą¤ ą¤µą¤°ą¤:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b> ą¤ą¤Ŗą„ą¤ą„ą¤®ą¤¾ą¤ą¤ą¤¼ą„ą¤”:</b>" + +#: ../data/evince-properties.glade.h:9 +#, fuzzy +msgid "<b>Paper Size:</b>" +msgstr "<b> ą¤Ŗą„ą¤ ą¤øą¤¾ą¤Æą„ą¤:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b> ą¤¬ą¤Øą¤¾ą¤µą¤Ø ą¤µą„ą¤²:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b> ą¤°ą„ą¤°ą¤ą„ą¤:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b> ą¤øą¤¬ą„ą¤¬ą¤ą¤ą¤:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b> ą¤ą¤¾ą¤Æą¤ą¤²</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤²ą¤æą¤ą¤µ ą¤¬ą¤æą¤Øą¤¾ ą¤°ą„ą¤ą¤¾ą¤µą¤ą¤æ" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤²ą¤æą¤ą¤µ ą¤¬ą¤æą¤Øą¤¾ ą¤°ą„ą¤ą¤¾ą¤µą¤ą¤æ ą¤Æą¤æą¤„ą¤ą¤ą¤Æ ą¤ą¤¾ą¤Ŗą„ ą¤ą¤°ą„ą¤Ø ą¤Æą¤¾ ą¤Ŗą¤°ą¤ą¤" + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "ą¤ą¤Æą„ą¤¹ ą¤Ø" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:369 +msgid "default:mm" +msgstr "ą¤”ą¤æą¤«ą¤¾ą¤²ą¤:ą¤ą¤®ą¤ą¤®" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:251 +#: ../properties/ev-properties-view.c:406 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f ą¤ą¤®ą¤ą¤®" + +#: ../properties/ev-properties-view.c:255 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f ą¤ą¤ą¤" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:279 +#: ../properties/ev-properties-view.c:417 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¤Ŗą„ą¤ą„ą¤ą¤°ą„ą¤ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:286 +#: ../properties/ev-properties-view.c:424 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¤²ą„ą¤ą¤”ą¤øą„ą¤ą„ą¤Ŗ (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:401 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f ą¤®ą¤ą¤" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤ą¤ą¤”ą¤æą¤µ" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "ą¤ą¤¾ą¤ą¤”ą¤Øą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤Øą¤¾ą¤µ" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą¤æą¤ą¤æą¤µ" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "ą¤øą¤¹ą„ ą¤ą¤ą„ą¤¹ ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą„ą¤ą¤æą¤µ ą¤ą¤¾ą¤ą¤”ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "ą¤¹ą¤¾ą¤Æą¤²ą¤¾ą¤Æą¤ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "ą¤øą¤¾ą¤°ą¤Øą„ ą¤®ą„ą¤²ą¤Ø ą¤µą¤²ą¤Æ ą¤¹ą„ą¤ą¤¦ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "ą¤Æ: ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤®ą„ą¤ ą¤ą„ ą¤²ą¤æą¤Æą„ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤¾ ą¤°ą¤ą¤ą¤®ą„ą¤² ą¤ą¤Æą¤Øą„ą¤Ø ą¤µą¤¾ą¤²ą„ą¤Æą¤Ø ą¤¹ą„ą¤ą¤¦ ą¤¹ą¤¾ą¤Æą¤²ą¤¾ą¤Æą¤ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "ą¤ą¤ą¤”ą¤æą¤µ:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "ą¤Ŗą¤¤ą¤¤ą¤æą¤® ą¤ą¤ą¤”ą¤æą¤µ" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +#, fuzzy +msgid "Find previous occurrence of the search string" +msgstr "ą¤Ŗą¤¤ą¤¤ą¤æą¤® ą¤øą„ą¤ą¤°ą¤æą¤ą¤ ą¤ą¤ą¤”ą¤æą¤µ" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "ą¤¦ą¤Æą„ą¤Æą¤® ą¤ą¤ą¤”ą¤æą¤µ" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "ą¤¬ą„ą¤Æą„ą¤Æ ą¤ą¤¾ą¤ą¤”ą¤µ ą¤øą„ą¤ą¤°ą¤æą¤ą¤" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą„ą¤ą¤æą¤µ (_a)" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +#, fuzzy +msgid "Toggle case sensitive search" +msgstr "ą¤¬ą¤¦ą„ą¤¦ą¤²ą¤æą¤µ ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą„ą¤ą¤æą¤µ ą¤ą¤¾ą¤ą¤”ą„ą¤Ø" + +#: ../shell/ev-jobs.c:702 +#, fuzzy, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "'%s' ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą„ą¤ą¤ø ą¤Ø ą¤ą„ą¤²ą¤æą¤¤" + +#: ../shell/ev-open-recent-action.c:71 +#, fuzzy +msgid "Open a recently used document" +msgstr "ą¤ą¤¾ą¤¹ ą¤ą„ą¤²ą„ą¤²ą¤®ą„ą¤¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²ą¤æą¤µ" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą¤ą¤ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "%d ą¤®ą¤ą¤" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤” ą¤ą¤°ą„ą¤°ą¤¤" + +#: ../shell/ev-password.c:89 +#, fuzzy, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą¤Æą¤® ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ <i>%s</i> ą¤ą„ ą¤ą„ą¤²ą„ą¤« ą¤¦ą¤æą¤¤ą„ą¤¤ ą¤¤ ą¤Æą¤®ą¤Ø ą¤ą„ą¤²ą¤Ø ą¤¬ą¤°ą„ą¤ ą¤ą„ ą¤ą¤ą„ą¤ ą¤Ŗą¤¾ą¤øą¤µą¤” ą¤ą¤°ą„ą¤°ą¤¤" + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤” ą¤¦ą¤æą¤Æą¤µ" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤° ą¤Ŗą¤¾ą¤øą¤µą¤”" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "ą¤ą¤²ą¤¤ ą¤Ŗą¤¾ą¤øą¤µą¤”" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤æ ą¤¬ą¤ą¤¦, ą¤¤ ą¤¹ą¤Æą¤ą„ ą¤ą„ą¤²ą¤æą¤¤ ą¤øą¤æą¤°ą¤æą¤« ą¤Ŗą¤¾ą¤øą¤µą¤” ą¤¤ą¤°ą„ą¤µą¤æą¤¤ ą¤¹ą¤Æą¤ą„ ą¤µą„ą¤ą¤ą¤æą¤¤ą„¤" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤² (_U)" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "ą¤ą„ą¤£" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "ą¤ą¤®" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤ą„ą¤ø" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą¤«ą¤¾ą¤ą¤ą¤ø ą¤¬ą¤¾ą¤°ą„ ą¤®ą¤ą¤ ą¤ą„ ą¤ą¤®ą¤¾ ą¤ą¤°ą¤¾ą¤Ø... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "ą¤øą¤Æą„ą¤¤ą„ą¤¤ ą¤øą¤¾ą¤®ą¤¾ą¤Ø" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3645 +msgid "Loading..." +msgstr "ą¤²ą„ą¤” ą¤ą„ ą¤ą¤øą¤¾ą¤Ø..." + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "ą¤ą¤Ŗą„ą¤Ŗą¤µą¤Æą„..." + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "ą¤Øą¤æą¤¶ą¤¾ą¤Ø ą¤„ą¤µą¤Ø ą¤µą¤°ą„ą¤" + +#: ../shell/ev-sidebar-thumbnails.c:727 +msgid "Thumbnails" +msgstr "ą¤Øą¤æą¤¶ą¤¾ą¤Ø" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¹ą¤Æą„ą¤°" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¬ą„ą¤Ø" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą¤æą¤µ ą¤¹ą¤Æą„ą¤°" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą¤æą¤µ ą¤¬ą„ą¤Ø" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤µą„ą¤ą„ą¤ą¤æą¤µ" + +#: ../shell/ev-view.c:1443 +msgid "Go to first page" +msgstr "ą¤ą„ą¤”ą¤Øą¤æą¤ą¤ø ą¤µą¤°ą„ą¤ą¤ø ą¤ą¤ą„ą¤ą¤æą¤µ" + +#: ../shell/ev-view.c:1445 +msgid "Go to previous page" +msgstr "ą¤Ŗą¤¤ą„ą¤¤ą¤æą¤®ą¤ø ą¤µą¤°ą„ą¤ą¤ø ą¤ą¤ą„ą¤ą¤æą¤µ" + +#: ../shell/ev-view.c:1447 +msgid "Go to next page" +msgstr "ą¤¦ą¤Æą„ą¤Æą¤®ą¤æą¤ø ą¤µą¤°ą„ą¤ą¤ø ą¤ą¤øą¤æą¤µ" + +#: ../shell/ev-view.c:1449 +msgid "Go to last page" +msgstr "ą¤ą¤ą„ą¤ą¤æą¤µ ą¤ ą¤ą¤æą¤° ą¤µą¤°ą„ą¤" + +#: ../shell/ev-view.c:1451 +msgid "Go to page" +msgstr "ą¤Æą¤„ ą¤µą¤°ą¤ą¤ø ą¤Ŗą¤Æą¤ ą¤ą¤ą„ą¤ą¤æą¤µ" + +#: ../shell/ev-view.c:1453 +msgid "Find" +msgstr "ą¤ą¤¾ą¤ą¤”" + +#: ../shell/ev-view.c:1481 +#, c-format +msgid "Go to page %s" +msgstr "%s ą¤µą¤°ą¤ą¤ø ą¤Ŗą¤Æą„ą¤ ą¤ą¤ą„ą¤" + +#: ../shell/ev-view.c:1487 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ą¤«ą¤¾ą¤Æą¤² ą¤Ŗą¤Æą¤ ą¤ą¤ą„ą¤ą¤æą¤µ ā%sā" + +#: ../shell/ev-view.c:1490 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤Æą¤ ą¤ą¤¾ą¤ą„ą¤" + +#: ../shell/ev-view.c:1498 +#, c-format +msgid "Launch %s" +msgstr "%s ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą¤æą¤µ" + +#: ../shell/ev-view.c:2450 +msgid "End of presentation. Press Escape to exit." +msgstr "ą¤¹ą¤¾ą¤µą„ą¤Ø ą¤®ą¤ą¤²ą¤Æą„ą¤µą„¤ ą¤ą¤øą¤ą„ą¤Ŗ ą¤¦ą¤¬ą¤¾ą¤µ ą¤¬ą¤ą¤¦ ą¤ą¤°ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°ą„¤" + +#: ../shell/ev-view.c:3374 +#, fuzzy +msgid "Jump to page:" +msgstr "ą¤Æą¤„ ą¤µą¤°ą¤ą¤ø ą¤Ŗą¤Æą„ą¤ ą¤ą¤øą¤æą¤µ" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5156 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą¤Æą¤„ ą¤µą¤°ą„ą¤°ą¤ą¤ø ą¤Ŗą¤Æą„ą¤Æą¤ ą¤®ą„ą¤²ą¤æ" +msgstr[1] "%d ą¤Æą¤„ ą¤µą¤°ą„ą¤°ą¤ą¤ø ą¤Ŗą¤Æą„ą¤Æą¤ ą¤®ą„ą¤²ą¤æ" + +#: ../shell/ev-view.c:5165 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¤¬ą¤ą„ą¤®ą¤æą¤¤ ą¤: ą¤ą¤¾ą¤ą¤”ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°" + +#: ../shell/ev-window.c:785 +#, c-format +msgid "Page %s - %s" +msgstr "ą¤µą¤°ą„ą¤ %s - %s" + +#: ../shell/ev-window.c:787 +#, fuzzy, c-format +msgid "Page %s" +msgstr "ą¤µą¤°ą„ą¤ %s" + +#: ../shell/ev-window.c:1200 +msgid "The document contains no pages" +msgstr "" + +#: ../shell/ev-window.c:1432 ../shell/ev-window.c:1507 +msgid "Unable to open document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤" + +#: ../shell/ev-window.c:1704 +msgid "Open Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²ą¤æą¤µ" + +#: ../shell/ev-window.c:1765 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ą¤øą¤æą¤®ą¤¬ą¤¾ą¤²ą¤æą¤ ą¤²ą¤æą¤ą¤ ą¤¹ą¤Æą¤ ą¤Ø ą¤¬ą¤Øą„ą¤Æą¤„ ā%sā: %s" + +#: ../shell/ev-window.c:1794 +#, fuzzy +msgid "Cannot open a copy." +msgstr "ą„ą¤¾ą¤ą¤² ā%sā ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤ \n" + +#: ../shell/ev-window.c:2038 ../shell/ev-window.c:2088 +#, fuzzy, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤Æą¤¾ą¤„ ą¤Øą¤¾ą¤µą¤ø \"%s\" ą¤øą„ą¤µ ą¤ą¤°ą¤æą¤„ą„¤" + +#: ../shell/ev-window.c:2133 +msgid "Save a Copy" +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤øą¤¹ą„ą¤ą„ą¤ą¤ą¤ą„ą¤ ą¤Øą¤ą¤² ą¤ą¤° ą¤øą¤¾ ą¤øą„ą¤µ" + +#: ../shell/ev-window.c:2254 ../shell/ev-window.c:3430 +#, fuzzy +msgid "Failed to print document" +msgstr "ą¤Æą¤„ ą¤Ŗą¤°ą„ą¤ą¤ą¤° ą¤Ŗą¤Æą„ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤Ŗą¤°ą„ą¤ą¤ ą¤ą¤°ą¤æą¤„" + +#: ../shell/ev-window.c:2419 +msgid "Printing is not supported on this printer." +msgstr "ą¤Æą¤„ ą¤Ŗą¤°ą„ą¤ą¤ą¤° ą¤Ŗą¤Æą„ą¤ą¤ ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤Ŗą¤°ą„ą¤ą¤ ą¤ą¤°ą¤æą¤„" + +#: ../shell/ev-window.c:2545 ../shell/ev-window.c:4415 +msgid "Print" +msgstr "ą¤ą¤Ŗą¤¾ą¤" + +#: ../shell/ev-window.c:3183 +msgid "Toolbar Editor" +msgstr "ą¤ą„ą¤²ą¤¬ą¤¾ą¤° ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤" + +#: ../shell/ev-window.c:3725 +#, fuzzy, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą¤ą„ą¤°ą¤æą¤Ŗą¤ ą¤ą¤° ą¤Ŗą„ą¤”ą„ą¤ą¤« ą¤«ą¤¾ą¤ą¤² ą¤¹ą¤¾ą¤µą¤Øą¤Ŗą„ą¤Ŗą„ą¤²ą¤° ą¤ą¤øą¤¤ą„ą¤®ą¤¾ą¤² ą¤ą¤°ą¤æą¤„" + +#: ../shell/ev-window.c:3753 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:3757 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:3761 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:3785 ../shell/main.c:350 +msgid "Evince" +msgstr "ą¤ą¤µą„ą¤ą¤ø" + +#: ../shell/ev-window.c:3788 +#, fuzzy +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2005 ą¤ą¤µą„ą¤ą¤ø ą¤²ą„ą¤ą¤Ø ą¤µą¤Æą„ą¤Æą¤²" + +#: ../shell/ev-window.c:3794 +msgid "translator-credits" +msgstr "ą¤°ą¤¾ą¤ą„ą¤¶ ą¤Ŗą¤ą¤”ą¤æą¤¤ (rakesh.pandit@gmail.com)" + +#: ../shell/ev-window.c:4327 +msgid "_File" +msgstr "ą¤«ą¤¼ą¤¾ą¤ą¤² (_F)" + +#: ../shell/ev-window.c:4328 +msgid "_Edit" +msgstr "ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤Ø (_E)" + +#: ../shell/ev-window.c:4329 +msgid "_View" +msgstr "ą¤µą„ą¤ą„ą¤ą¤æą¤µ (_V)" + +#: ../shell/ev-window.c:4330 +msgid "_Go" +msgstr "ą¤ą¤ą„ą¤ą¤æą¤µ (_G)" + +#: ../shell/ev-window.c:4331 +msgid "_Help" +msgstr "ą¤®ą¤¦ą¤¦ (_H)" + +#. File menu +#: ../shell/ev-window.c:4334 ../shell/ev-window.c:4513 +#: ../shell/ev-window.c:4585 +msgid "_Open..." +msgstr "ą¤ą„ą¤²ą¤æą¤µ (_O)..." + +#: ../shell/ev-window.c:4335 ../shell/ev-window.c:4586 +msgid "Open an existing document" +msgstr "ą¤®ą„ą¤ą„ą¤¦ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²" + +#: ../shell/ev-window.c:4337 +#, fuzzy +msgid "Op_en a Copy" +msgstr "ą¤ą¤ą„ą¤ ą¤Øą¤ą„ą¤² ą¤ą„ą¤²" + +#: ../shell/ev-window.c:4338 +#, fuzzy +msgid "Open a copy of the current document in a new window" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤Ø ą¤¹ą¤ą¤ ą¤ą¤ą„ą¤ ą¤Øą¤ą¤² ą¤ą„ą¤² ą¤Øą¤Æą„ą¤Æ ą¤µą¤æą¤ą¤”ą„ ą¤®ą¤ą¤" + +#: ../shell/ev-window.c:4340 ../shell/ev-window.c:4515 +msgid "_Save a Copy..." +msgstr "ą¤ą¤ą„ą¤ ą¤Øą¤ą¤² ą¤ą¤° ą¤øą„ą¤µ...(_S)" + +#: ../shell/ev-window.c:4341 +msgid "Save a copy of the current document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤Ø ą¤¹ą¤ą¤ ą¤Øą¤ą¤² ą¤ą¤° ą¤øą„ą¤µ" + +#: ../shell/ev-window.c:4343 +#, fuzzy +msgid "Print Set_up..." +msgstr "ą¤ą¤Ŗą„ą¤Ŗą¤¾ą¤µ..." + +#: ../shell/ev-window.c:4344 +msgid "Setup the page settings for printing" +msgstr "ą¤ą¤Ŗą„ą¤Ŗą¤¾ą¤µą¤Ø ą¤ą¤¤ą„ą¤¤ą¤° ą¤ą¤° ą¤Ŗą„ą¤ ą¤ą„ą¤ą¤æą¤ą¤" + +#: ../shell/ev-window.c:4346 +msgid "_Print..." +msgstr "ą¤ą¤Ŗą„ą¤Ŗą¤¾ą¤µ (_P)..." + +#: ../shell/ev-window.c:4347 ../shell/ev-window.c:4416 +msgid "Print this document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤Ŗą„ą¤Ŗą¤µą¤Æą„ą¤µ" + +#: ../shell/ev-window.c:4349 +msgid "P_roperties" +msgstr "ą¤ą„ą¤£ (_r)" + +#: ../shell/ev-window.c:4357 +msgid "Select _All" +msgstr "ą¤øą¤Æą¤°ą¤æ ą¤¤ą„ą¤²ą¤æą¤µ (_A)" + +#: ../shell/ev-window.c:4359 +msgid "_Find..." +msgstr "ą¤ą¤ą¤”ą¤æą¤µ (_F)..." + +#: ../shell/ev-window.c:4360 +msgid "Find a word or phrase in the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤Ø ą¤®ą¤ą¤ ą¤ą¤ą¤”ą¤æą¤µ ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ ą¤®ą„ą¤¹ą¤¾ą¤µą¤°ą¤¾" + +#: ../shell/ev-window.c:4362 +msgid "Find Ne_xt" +msgstr "ą¤¦ą¤Æą„ą¤Æą¤® ą¤ą¤ą¤”ą¤æą¤µ (_x)" + +#: ../shell/ev-window.c:4364 +msgid "Find Pre_vious" +msgstr "ą¤Ŗą¤¤ą¤æą¤® ą¤ą¤ą¤”ą¤æą¤µ (_v)" + +#: ../shell/ev-window.c:4366 +msgid "T_oolbar" +msgstr "ą¤ą„ą¤²ą¤¬ą¤¾ą¤° (_o)" + +#: ../shell/ev-window.c:4368 +msgid "Rotate _Left" +msgstr "ą¤ą„ą¤µą„ą¤° ą¤ą„ą¤®ą¤¾ą¤µ (_L)" + +#: ../shell/ev-window.c:4370 +msgid "Rotate _Right" +msgstr "ą¤¦ą¤ą„ą¤ą„ą¤Ø ą¤ą„ą¤®ą¤¾ą¤µ (_R)" + +#: ../shell/ev-window.c:4375 +msgid "Enlarge the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¬ą¤¢ą¤¾ą¤µ" + +#: ../shell/ev-window.c:4378 +msgid "Shrink the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤°ą¤æą¤µ ą¤ą¤®" + +#: ../shell/ev-window.c:4380 +msgid "_Reload" +msgstr "ą¤¬ą¤Æą„ą¤Æ ą¤²ą„ą¤” ą¤ą¤°ą¤æą¤µ (_R)" + +#: ../shell/ev-window.c:4381 +msgid "Reload the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤Ŗą„ą¤Øą¤ ą¤²ą„ą¤”ą¤¼ ą¤ą¤°ą„ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤°ą¤æą¤µ ą¤¬ą¤Æą„ą¤Æ ą¤²ą„ą¤”" + +#: ../shell/ev-window.c:4384 +msgid "Auto_scroll" +msgstr "ą¤ą¤ą„ ą¤øą¤ą¤°ą¤¾ą¤²" + +#. Go menu +#: ../shell/ev-window.c:4388 +msgid "_Previous Page" +msgstr "ą¤Ŗą¤¤ą¤æą¤® ą¤Ŗą„ą¤ (_P)" + +#: ../shell/ev-window.c:4389 +msgid "Go to the previous page" +msgstr "ą¤Ŗą¤¤ą¤æą¤® ą¤Ŗą„ą¤ą¤ø ą¤Ŗą¤øą¤ ą¤ą¤øą¤µ" + +#: ../shell/ev-window.c:4391 +msgid "_Next Page" +msgstr "ą¤¬ą¤°ą„ą¤ ą¤æą¤® ą¤Ŗą„ą¤(_N)" + +#: ../shell/ev-window.c:4392 +msgid "Go to the next page" +msgstr "ą¤¦ą¤Æą„ą¤Æą¤®ą¤ø ą¤Ŗą„ą¤ą¤ø ą¤Ŗą¤Æą¤ą„ą¤ " + +#: ../shell/ev-window.c:4394 +msgid "_First Page" +msgstr "ą¤ą¤”ą¤Øą¤æą¤Æą„ą¤ ą¤Ŗą„ą¤ (_F)" + +#: ../shell/ev-window.c:4395 +msgid "Go to the first page" +msgstr "ą¤ą¤Æą„ą¤¢ą¤Øą¤æą¤ą¤ø ą¤Ŗą„ą¤ą¤ø ą¤ą¤øą¤æą¤µ" + +#: ../shell/ev-window.c:4397 +msgid "_Last Page" +msgstr "ą¤ą¤ą¤æą¤° ą¤Ŗą„ą¤(_L)" + +#: ../shell/ev-window.c:4398 +msgid "Go to the last page" +msgstr "ą¤ą¤ą¤°ą¤æą¤ ą¤Ŗą„ą¤ą¤ø ą¤ą¤¾ą¤ø" + +#. Help menu +#: ../shell/ev-window.c:4402 +msgid "_Contents" +msgstr "ą¤®ą¤ą¤ (_C)" + +#: ../shell/ev-window.c:4405 +msgid "_About" +msgstr "ą¤¬ą¤¾ą¤°ą„ ą¤®ą¤ą¤ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:4409 +msgid "Leave Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤¤ą¤°ą¤¾ą¤µ" + +#: ../shell/ev-window.c:4410 +msgid "Leave fullscreen mode" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤®ą„ą¤” ą¤¤ą¤°ą¤¾ą¤µ" + +#: ../shell/ev-window.c:4412 +#, fuzzy +msgid "Start Presentation" +msgstr "ą¤¹ą¤¾ą¤µą„ą¤Ø ą¤¶ą¤°ą„ ą¤ą¤°ą¤æą¤µ (_P)" + +#: ../shell/ev-window.c:4413 +#, fuzzy +msgid "Start a presentation" +msgstr "ą¤¹ą¤¾ą¤µą„ą¤Ø ą¤¶ą¤°ą„ ą¤ą¤°ą¤æą¤µ" + +#. View Menu +#: ../shell/ev-window.c:4469 +msgid "_Toolbar" +msgstr "ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤° (_T)" + +#: ../shell/ev-window.c:4470 +msgid "Show or hide the toolbar" +msgstr "ą¤ą„ą¤²ą„ą¤²ą¤¬ą¤¾ą¤° ą¤¹ą¤Æą¤µ ą¤Æą¤¾ ą¤ą„ą¤Ŗą„ą¤µą¤æą¤µ" + +#: ../shell/ev-window.c:4472 +msgid "Side _Pane" +msgstr "ą¤¦ą¤ą¤¦ą¤° (_P)" + +#: ../shell/ev-window.c:4473 +msgid "Show or hide the side pane" +msgstr "ą¤¦ą¤ą¤¦ą¤° ą¤¹ą¤Æą¤µ ą¤Æą¤¾ ą¤ą„ą¤Ŗą„ą¤µą¤æą¤µ" + +#: ../shell/ev-window.c:4475 +msgid "_Continuous" +msgstr "ą¤²ą¤ą¤¾ą¤¤ą¤¾ą¤° (_C)" + +#: ../shell/ev-window.c:4476 +msgid "Show the entire document" +msgstr "ą¤Ŗą„ą¤° ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą¤µ" + +#: ../shell/ev-window.c:4478 +msgid "_Dual" +msgstr "ą¤¦ą¤Æą¤® (_D)" + +#: ../shell/ev-window.c:4479 +msgid "Show two pages at once" +msgstr "ą¤ ą¤ą„ ą¤øą¤¾ą¤„ ą¤¹ą„ą¤Æą¤µ ą¤ą¤¼ ą¤Ŗą„ą¤" + +#: ../shell/ev-window.c:4481 +msgid "_Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø (_F)" + +#: ../shell/ev-window.c:4482 +msgid "Expand the window to fill the screen" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤¬ą¤”ą¤¾ą¤µ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą¤°ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°" + +#: ../shell/ev-window.c:4484 +#, fuzzy +msgid "Pre_sentation" +msgstr "ą¤¹ą¤¾ą¤µą„ą¤Ø (_P)" + +#: ../shell/ev-window.c:4485 +msgid "Run document as a presentation" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤²ą„ą¤²ą¤Æą¤µ ą¤¹ą¤¾ą¤µą„ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°ą„¤" + +#: ../shell/ev-window.c:4487 +msgid "_Best Fit" +msgstr "ą¤øą¤¾ą¤°ą¤æ ą¤ą„ą¤¤ ą¤¬ą¤°ą¤¾ą¤¬ą¤° (_B)" + +#: ../shell/ev-window.c:4488 +msgid "Make the current document fill the window" +msgstr "ą¤Æą¤® ą¤ą¤¾ą¤ą¤ ą¤øą¤æą¤¤ą„ą¤¤ ą¤¬ą¤°ą¤æą¤µ ą¤µą¤æą¤ą¤”ą„" + +#: ../shell/ev-window.c:4490 +msgid "Fit Page _Width" +msgstr "ą¤ą¤¾ą¤ą¤ ą¤ą¤ą„ą¤ą¤° ą¤ą¤°ą¤æą¤µ ą¤¬ą¤°ą¤¾ą¤¬ą¤° (_W)" + +#: ../shell/ev-window.c:4491 +msgid "Make the current document fill the window width" +msgstr "ą¤Æą¤® ą¤ą¤¾ą¤ą¤ą„ą¤ ą¤øą¤æą¤¤ ą¤¬ą¤°ą¤æą¤µ ą¤µą¤æą¤ą¤”ą„" + +#. Links +#: ../shell/ev-window.c:4498 +msgid "_Open Link" +msgstr "ą¤²ą¤æą¤ą¤ ą¤ą„ą¤²ą¤æą¤µ (_O)" + +#: ../shell/ev-window.c:4500 +msgid "_Go To" +msgstr "ą¤ą¤ą„ą¤ą¤æą¤µ (_G)" + +#: ../shell/ev-window.c:4502 +msgid "Open in New _Window" +msgstr "ą¤Øą¤Æ ą¤µą¤æą¤ą¤”ą„ ą¤®ą¤ą¤ ą¤ą„ą¤²ą¤æą¤µ" + +#: ../shell/ev-window.c:4504 +msgid "_Copy Link Address" +msgstr "ą¤²ą¤æą¤ą¤ą¤ø ą¤ą¤°ą¤æą¤µ ą¤Øą¤ą¤² (_C)" + +#: ../shell/ev-window.c:4506 +#, fuzzy +msgid "_Save Image As..." +msgstr "ą¤øą„ą¤µ ą¤ą¤°ą¤æą¤µ...(_S)" + +#: ../shell/ev-window.c:4508 +msgid "Copy _Image" +msgstr "ą¤ą¤®ą„ą¤ ą¤ą¤°ą¤æą¤µ ą¤Øą¤ą¤²" + +#: ../shell/ev-window.c:4547 +msgid "Page" +msgstr "ą¤ą¤¾ą¤ą¤" + +#: ../shell/ev-window.c:4548 +msgid "Select Page" +msgstr "ą¤Ŗą„ą¤ ą¤¤ą„ą¤²ą¤æą¤µ" + +#: ../shell/ev-window.c:4559 +msgid "Zoom" +msgstr "ą¤ą¤¼ą„ą¤®" + +#: ../shell/ev-window.c:4561 +msgid "Adjust the zoom level" +msgstr "ą¤ą„ą¤® ą¤²ą„ą¤¬ą¤² ą¤ą¤°ą¤æą¤µ ą¤¬ą¤°ą¤¾ą¤¬ą¤°" + +#: ../shell/ev-window.c:4571 +msgid "Navigation" +msgstr "ą¤Øą¤ą¤µ" + +#: ../shell/ev-window.c:4573 +msgid "Back" +msgstr "ą¤Ŗą¤¾ą¤¤ą„ą¤„" + +#. translators: this is the history action +#: ../shell/ev-window.c:4576 +msgid "Move across visited pages" +msgstr "ą¤µą„ą¤ą¤®ą¤æą¤¤ ą¤Ŗą„ą¤ ą¤®ą¤ą¤ ą¤Ŗą¤ą¤æą¤µ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4606 +msgid "Previous" +msgstr "ą¤Ŗą¤¤ą¤æą¤®" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4611 +msgid "Next" +msgstr "ą¤¬ą¤°ą„ą¤ ą¤æą¤®" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4615 +msgid "Zoom In" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4619 +msgid "Zoom Out" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4627 +msgid "Fit Width" +msgstr "ą¤ą¤ą¤° ą¤ą¤° ą¤¬ą¤°ą¤¾ą¤¬ą¤°" + +#: ../shell/ev-window.c:4832 +#, fuzzy +msgid "Unable to open external link" +msgstr "ą¤Øą¤Æą¤¬ą¤°ą¤æą¤® ą¤²ą¤æą¤ą¤ ą¤ą¤æą¤Ø ą¤ą„ą¤²ą¤¾ą¤Ø" + +#: ../shell/ev-window.c:4993 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¤ą¤®ą„ą¤ ą¤øą„ą¤µ ą¤ą¤°ą¤Øą„ą¤ ą¤«ą¤¾ą¤°ą¤®ą„ą¤ ą¤¹ą¤Æą„ą¤ą¤ø ą¤Ø ą¤ą¤®ą¤Ŗą¤²ą¤æą¤ ą¤ą¤°ą¤æą¤„ą„¤" + +#: ../shell/ev-window.c:5033 +#, fuzzy +msgid "The image could not be saved." +msgstr "ą¤ą¤®ą„ą¤ ą¤¹ą¤Æą¤ą¤µ ą¤Ø ą¤øą„ą¤µ ą¤ą¤°ą¤æą¤„ą„¤" + +#: ../shell/ev-window.c:5065 +#, fuzzy +msgid "Save Image" +msgstr "ą¤ą¤®ą„ą¤ ą¤¬ą¤ą„ą¤ą¤Æą¤µ" + +#: ../shell/ev-window.c:5124 +msgid "Unable to open attachment" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤Æ ą¤Ø ą¤ą„ą¤²ą¤Øą„ą¤Æ" + +#: ../shell/ev-window.c:5176 +msgid "The attachment could not be saved." +msgstr "ą¤ą¤ą„ą¤ą¤®ą„ą¤ą¤ ą¤¹ą¤Æą¤ą¤µ ą¤Ø ą¤øą„ą¤µ ą¤ą¤°ą¤æą¤„ą„¤" + +#: ../shell/ev-window.c:5221 +#, fuzzy +msgid "Save Attachment" +msgstr "ą¤ą¤ą„ą¤ą¤®ą„ą¤ą¤ ą¤ą¤°ą¤æą¤µ ą¤øą„ą¤µ" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¤Ŗą¤¾ą¤øą„ą¤µą¤” ą¤ą¤°ą„ą¤°ą¤¤" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ą¤ą¤ą„ą¤øą¤ą¤Øą¤¶ą¤Ø ą¤øą„ą¤Æą„ą¤¤" + +#: ../shell/main.c:59 +msgid "The page of the document to display." +msgstr "ą¤¹ą¤¾ą¤µą¤Ø ą¤ą¤¤ą„ą¤¤ą¤° ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤Ø ą¤¹ą„ą¤ą¤¦ ą¤Ŗą„ą¤" + +#: ../shell/main.c:59 +msgid "PAGE" +msgstr "ą¤µą¤°ą„ą¤ą¤" + +#: ../shell/main.c:60 +msgid "Run evince in fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤®ą„ą¤” ą¤®ą„ą¤ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤Æą„ą¤ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą„ą¤²ą¤Æą¤µ ą¤øą¤°ą„ą¤Æą¤øą„ą¤Æą¤¹ą„ ą¤øą„ą¤ą„ą¤°ą„ą¤Øą¤øą„¤" + +#: ../shell/main.c:61 +msgid "Run evince in presentation mode" +msgstr "ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą„ą¤²ą¤Æą¤µ ą¤¹ą¤¾ą¤µą„ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°ą„¤" + +#: ../shell/main.c:62 +msgid "Run evince as a previewer" +msgstr "ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą„ą¤²ą¤Æą¤µ ą¤µą„ą¤ą¤Øą„ ą¤ą¤¤ą„ą¤¤ą¤°ą„¤" + +#: ../shell/main.c:63 +#, fuzzy +msgid "The word or phrase to find in the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤®ą¤ą¤ ą¤¶ą¤¬ą„ą¤¦ ą¤Æą¤¾ ą¤®ą„ą¤¹ą¤¾ą¤µą¤°ą¤¹ą„ ą¤ą¤ą¤”ą¤æą¤µą„¤" + +#: ../shell/main.c:63 +msgid "STRING" +msgstr "ą¤øą¤ą¤°ą„ą¤°ą¤æą¤ą¤" + +#: ../shell/main.c:66 +msgid "[FILE...]" +msgstr "[ą¤«ą¤¾ą¤ą¤²...]" + +#: ../shell/main.c:333 +msgid "MATE Document Viewer" +msgstr "ą¤ą¤Øą„ą¤® ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤µą„ą¤ą„ą¤ą„ą¤Øą„ą¤" + +#: ../shell/main.c:395 +msgid "Evince Document Viewer" +msgstr "ą¤ą¤µą„ą¤ą¤ø ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤µą„ą¤ą¤æą¤µą„¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "ą¤¬ą„ą¤²ą¤æą¤Æą¤Ø ą¤ą„ ą¤øą¤¹ą„ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤Ø ą¤ ą¤æą¤ ą¤ą¤°ą¤¾ą¤Ø ą¤¤: ą¤ą¤²ą„ą¤¤ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤Ø ą¤¬ą¤ą¤¦ ą¤ą¤°ą¤¾ą¤Øą„¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤«ą¤Æą„ą¤ ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤ą¤¾ą¤²ą„ ą¤ą¤°ą„¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ą¤Ŗą„ą¤”ą„ą¤ą¤« ą¤ą¤¾ą¤ą¤ą¤¼ą¤¾ą¤¤ ą¤ą¤¤ą„ą¤¤ą¤° ą¤Øą¤æą¤¶ą¤¾ą¤Ø ą¤ą¤®ą¤¾ą¤ą¤”ą„¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"ą¤ą¤®ą¤¾ą¤ą¤” ą¤¤ ą¤¦ą¤²ą„ą¤² ą¤Ŗą„ą¤”ą„ą¤ą¤« ą¤ą¤¾ą¤ą¤ą¤¼ą¤¾ą¤¤ ą¤Øą¤æą¤¶ą¤¾ą¤Ø ą¤ą¤¤ą„ą¤¤ą¤°ą„¤ ą¤ą„ą¤Æą¤¾ą¤¦ą¤¹ą„ ą¤¦ą¤²ą¤æą¤²ą¤ą¤¤ą„ą¤¤ą¤° ą¤µą„ą¤ą¤æą¤µ ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤ą¤¾ą¤ą¤ą¤¼ą¤¾ą¤¤ą„¤" + +#~ msgid "BBox" +#~ msgstr "ą¤¬ą„-ą¤¬ą¤¾ą¤ą„ą¤ø" + +#~ msgid "Letter" +#~ msgstr "ą¤ą„ą¤ " + +#~ msgid "Tabloid" +#~ msgstr "ą¤ą„ą¤¬ą„ą¤²ą¤¾ą¤ą¤”" + +#~ msgid "Ledger" +#~ msgstr "ą¤²ą„ą¤ą¤°" + +#~ msgid "Legal" +#~ msgstr "ą¤²ą„ą¤ą¤²" + +#~ msgid "Statement" +#~ msgstr "ą¤øą„ą¤ą„ą¤ą¤®ą„ą¤Øą„ą¤" + +#~ msgid "Executive" +#~ msgstr "ą¤ą¤ą„ą¤ą¤¼ą„ą¤ą„ą¤Æą„ą¤ą¤æą¤µ" + +#~ msgid "A0" +#~ msgstr "ą¤0" + +#~ msgid "A1" +#~ msgstr "ą¤1" + +#~ msgid "A2" +#~ msgstr "ą¤2" + +#~ msgid "A3" +#~ msgstr "ą¤3" + +#~ msgid "A4" +#~ msgstr "ą¤4" + +#~ msgid "A5" +#~ msgstr "ą¤ą„«" + +#~ msgid "B4" +#~ msgstr "ą¤¬ą„4" + +#~ msgid "B5" +#~ msgstr "ą¤¬ą„5" + +#~ msgid "Folio" +#~ msgstr "ą¤«ą„ą¤²ą¤æą¤Æą„" + +#~ msgid "Quarto" +#~ msgstr "ą¤ą„ą¤µą¤¾ą¤°ą„ą¤ą„" + +#~ msgid "10x14" +#~ msgstr "ą„§ą„¦Xą„§ą„Ŗ" + +#, fuzzy +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ą„ą¤¾ą¤ą¤² ā%sā ą¤¹ą¤Æą¤ą„ ą¤Ø ą¤ą„ą¤²ą¤æą¤¤\n" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "ā%sā ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¹ą¤Æą„ą¤ą¤ø ą¤Ø ą¤²ą„ą¤” ą¤ą¤°ą¤æą¤¤ą¤„ą„¤ ą¤ą„ą¤øą„ą¤ą¤øą¤ą¤°ą¤æą¤Ŗą„ą¤ ą¤ą¤ą¤ą¤°ą¤Ŗą¤°ą„ą¤ą¤° ą¤ą„ą¤Øą„ą¤Ø ą¤Ŗą¤Øą„ą¤Øą¤æą¤ø ą¤Ŗą¤¾ą¤„ą¤ø ą¤®ą¤ą¤ą„¤" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "ą¤ą¤Øą„ą¤Øą¤ą„ą¤Ŗą¤¶ą„ą¤²ą„ą¤ą¤æą¤” ą¤Ŗą„ą¤øą„ą¤ą¤øą¤ą¤°ą¤æą¤Ŗą¤" + +#~ msgid "PostScript" +#~ msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą¤ą¤°ą¤æą¤Ŗą¤" + +#~ msgid "Interpreter failed." +#~ msgstr "ą¤ą¤Øą„ą¤ą¤°ą¤Ŗą„ą¤°ą„ą¤ą¤° ą¤¹ą¤Æą„ą¤ ą¤Ø ą¤ą¤°ą¤æą¤„" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ą¤ą¤øą¤¤ą„ą¤®ą¤¾ą¤² ą¤ą¤°ą¤Øą„ą¤Æ ą¤ą¤® ą¤ą¤ ą¤ą¤® ą¤ ą¤ą¤¾ą¤Æą¤Ŗ: ā%sā" + +#~ msgid "Open ā%sā" +#~ msgstr "ā%sā ą¤ą„ą¤²ą„ą¤" + +#~ msgid "Empty" +#~ msgstr "ą¤ą¤¾ą¤²ą„" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "ą¤ą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼ ą¤²ą„ą¤”ą„ą¤” ą¤Øą¤¹ą„ą¤." + +#~ msgid "Broken pipe." +#~ msgstr "ą¤ą„ą¤ą¤¾ ą¤Ŗą¤¾ą¤ą¤Ŗ." + +#, fuzzy +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ą„ą¤¾ą¤ą¤² ą¤ ą¤øą¤ą¤Ŗą„ą¤”ą¤æą¤¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ: %s\n" + +#~ msgid "File is not readable." +#~ msgstr "ą„ą¤¾ą¤ą¤² ą¤Ŗą¤¢ą¤¼ą¤Øą„ ą¤Æą„ą¤ą„ą¤Æ ą¤Øą¤¹ą„ą¤ ą¤¹ą„." + +#~ msgid "Document loaded." +#~ msgstr "ą¤¦ą¤¾ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ą¤¼ ą¤²ą„ą¤” ą¤ą¤æą¤Æą¤¾." + +#, fuzzy +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ą¤ą¤Ŗ ą¤ą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤ ą¤Ŗą¤° ą¤®ą„ą¤¦ą„ą¤°ą¤æą¤¤ ą¤ą¤°ą¤Øą„ ą¤ą„ ą¤ą„ą¤¶ą¤æą¤¶ ą¤ą¤° ą¤°ą¤¹ą„ ą¤¹ą„ą¤ ą¤ą„ \"%s\" ą¤”ą„ą¤°ą¤¾ą¤ą¤µą¤° ą¤ą¤Ŗą¤Æą„ą¤ ą¤ą¤°ą¤¤ą¤¾ ą¤¹ą„. " +#~ "ą¤ą¤ø ą¤Ŗą„ą¤°ą„ą¤ą„ą¤°ą¤¾ą¤® ą¤ą„ ą¤Ŗą„ą¤øą„ą¤-ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤ ą¤”ą„ą¤°ą¤¾ą¤ą¤µą¤° ą¤ą„ ą¤ą¤µą¤¶ą„ą¤Æą¤ą¤¤ą¤¾ ą¤¹ą„." diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 00000000..60bc8634 --- /dev/null +++ b/po/ku.po @@ -0,0 +1,1287 @@ +# translation of evince.mate-2-12.po to Kurdish +# Kurdish translation for evince +# Copyright (c) (c) 2005 Canonical Ltd, and Rosetta Contributors 2005 +# This file is distributed under the same license as the evince package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2005. +# Erdal Ronahi <erdal.ronahi@gmail.com>, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.mate-2-12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-03-04 19:43+0100\n" +"PO-Revision-Date: 2007-03-04 19:48+0100\n" +"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" +"Language-Team: Kurdish <gnu-ku-wergerandin@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Rosetta-Version: 0.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.10.2\n" +"X-Rosetta-Export-Date: 2007-02-28 23:18+0000\n" + +#: ../backend/comics/comics-document.c:148 +msgid "File corrupted." +msgstr "Pel xera bĆ»ye." + +#: ../backend/comics/comics-document.c:184 +#, c-format +msgid "No images found in archive %s" +msgstr "Di arÅĆ®va %s de wĆŖne nehate dĆ®tin" + +#: ../backend/djvu/djvu-document.c:159 +msgid "The document is composed by several files. One or more of such files cannot be accessed." +msgstr "" + +#: ../backend/dvi/dvi-document.c:89 +msgid "File not available" +msgstr "Pel ne gihiÅbar e" + +#: ../backend/dvi/dvi-document.c:104 +msgid "DVI document has incorrect format" +msgstr "Belgeya DVI xwediyĆŖ celebĆŖ nederbasdar e" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:628 +msgid "Yes" +msgstr "ErĆŖ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:631 +msgid "No" +msgstr "Na" + +#: ../backend/pdf/ev-poppler.cc:731 +msgid "Type 1" +msgstr "CureyĆŖ 1" + +#: ../backend/pdf/ev-poppler.cc:733 +msgid "Type 1C" +msgstr "CureyĆŖ 1C" + +#: ../backend/pdf/ev-poppler.cc:735 +msgid "Type 3" +msgstr "CureyĆŖ 3" + +#: ../backend/pdf/ev-poppler.cc:737 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:739 +msgid "Type 1 (CID)" +msgstr "CureyĆŖ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:741 +msgid "Type 1C (CID)" +msgstr "CureyĆŖ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:743 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:745 +msgid "Unknown font type" +msgstr "CureyĆŖ tĆ®pan yĆŖ nenas" + +#: ../backend/pdf/ev-poppler.cc:771 +msgid "No name" +msgstr "BĆŖnav" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Embedded subset" +msgstr "Koma jĆŖr ya veÅartĆ®" + +#: ../backend/pdf/ev-poppler.cc:781 +msgid "Embedded" +msgstr "VeÅartĆ®" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "Not embedded" +msgstr "NeveÅartĆ®" + +#: ../backend/impress/zip.c:50 +msgid "No error" +msgstr "" + +#: ../backend/impress/zip.c:53 +msgid "Not enough memory" +msgstr "" + +#: ../backend/impress/zip.c:56 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:59 +msgid "Invalid zip file" +msgstr "PelĆŖ zip ĆŖ nederbasdar" + +#: ../backend/impress/zip.c:62 +#, fuzzy +msgid "Multi file zips are not supported" +msgstr "PĆŖkhatina PDF nayĆŖ destekkirin" + +#: ../backend/impress/zip.c:65 +msgid "Cannot open the file" +msgstr "Vekirina pelĆ® serneket" + +#: ../backend/impress/zip.c:68 +msgid "Cannot read data from file" +msgstr "" + +#: ../backend/impress/zip.c:71 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:74 +msgid "Unknown error" +msgstr "Ćewtiya nenas" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Name" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Tabloid" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Legal" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Statement" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Rayedar" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Folio" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../backend/ps/ps-document.c:172 +#: ../backend/ps/ps-document.c:186 +#, c-format +msgid "Cannot open file ā%sā.\n" +msgstr "PelĆŖ \"%s\" nayĆŖ vekirin.\n" + +#: ../backend/ps/ps-document.c:233 +#, c-format +msgid "Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "Dema belgeya \"%s\" dihate barkirin bi ser neket. XebatkerĆŖ GhostskrĆ®pt di hundirĆŖ \"path\"ĆŖ de nehate dĆ®tin." + +#: ../backend/ps/ps-document.c:250 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Barkirina belgeya \"%s\" bi ser neket" + +#: ../backend/ps/ps-document.c:439 +msgid "Encapsulated PostScript" +msgstr "Encapsulated PostScript" + +#: ../backend/ps/ps-document.c:440 +msgid "PostScript" +msgstr "PostScript" + +#: ../backend/ps/ps-interpreter.c:541 +msgid "Interpreter failed." +msgstr "ÅĆ®roveker bi ser neket." + +#: ../backend/impress/impress-document.c:294 +#, fuzzy +msgid "Remote files aren't supported" +msgstr "PĆŖkhatina PDF nayĆŖ destekkirin" + +#: ../backend/impress/impress-document.c:305 +msgid "Invalid document" +msgstr "Belgeya nederbasdar" + +#: ../libdocument/ev-attachment.c:303 +#: ../libdocument/ev-attachment.c:316 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "PĆŖveka \"%s\" nehate tomarkirin: %s" + +#: ../libdocument/ev-attachment.c:348 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "PĆŖveka \"%s\" venebĆ»: %s" + +#: ../libdocument/ev-attachment.c:381 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "PĆŖveka \"%s\" venebĆ»" + +#: ../libdocument/ev-document-factory.c:291 +#: ../libdocument/ev-document-factory.c:405 +msgid "Unknown MIME Type" +msgstr "CureyĆŖ MIME yĆŖ Nenas" + +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "CureyĆŖ MIME ya nehate xebitandin: \"%s\"" + +#: ../libdocument/ev-document-factory.c:446 +msgid "All Documents" +msgstr "HemĆ» Belge" + +#: ../libdocument/ev-document-factory.c:454 +msgid "PostScript Documents" +msgstr "BelgeyĆŖn PostScript" + +#: ../libdocument/ev-document-factory.c:464 +msgid "PDF Documents" +msgstr "BelgeyĆŖn PDF" + +#: ../libdocument/ev-document-factory.c:474 +#: ../shell/ev-window.c:4669 +msgid "Images" +msgstr "WĆŖne" + +#: ../libdocument/ev-document-factory.c:484 +msgid "DVI Documents" +msgstr "BelgeyĆŖn DVI" + +#: ../libdocument/ev-document-factory.c:494 +msgid "Djvu Documents" +msgstr "BelgeyĆŖn Djvu" + +#: ../libdocument/ev-document-factory.c:504 +msgid "Comic Books" +msgstr "PirtĆ»kĆŖn QerfĆ®" + +#: ../libdocument/ev-document-factory.c:514 +msgid "Impress Slides" +msgstr "PĆŖÅanĆŖn ImpressĆŖ" + +#: ../libdocument/ev-document-factory.c:522 +msgid "All Files" +msgstr "HemĆ» Pel" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:205 +#, c-format +msgid "Open ā%sā" +msgstr "\"%s\" Veke" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:322 +#: ../shell/ev-navigation-action.c:118 +msgid "Empty" +msgstr "Vala" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:902 +#, c-format +msgid "Show ā_%sā" +msgstr "\"_%s\" nĆ®Åan bide" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1362 +msgid "_Move on Toolbar" +msgstr "Li Ser DarikĆŖ AmĆ»ran BikÅĆ®ne" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1363 +msgid "Move the selected item on the toolbar" +msgstr "HĆŖmana hilbijartĆ® li ser darikĆŖ amĆ»ran bibe" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1364 +msgid "_Remove from Toolbar" +msgstr "Ji DarikĆŖ AmĆ»ran _Rake" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1365 +msgid "Remove the selected item from the toolbar" +msgstr "HĆŖmana hatiye hilbijartin ji darikĆŖ amĆ»ran rake" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1366 +msgid "_Delete Toolbar" +msgstr "DarikĆŖ AmĆ»ran _JĆŖ Bibe" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1367 +msgid "Remove the selected toolbar" +msgstr "DarikĆŖ amĆ»ran yĆŖ hilbijartĆ® rake" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:439 +msgid "Separator" +msgstr "VeqetĆ®ner" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +#, fuzzy +msgid "Running in presentation mode" +msgstr "Evince di moda pĆŖÅkĆŖÅiyĆŖ de bixebitĆ®ne" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:4322 +msgid "Best Fit" +msgstr "Yek RĆ»pel" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Firehiya RĆ»pelĆŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "%50" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "75%" +msgstr "%75" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "100%" +msgstr "%100" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "125%" +msgstr "%125" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "150%" +msgstr "%150" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "175%" +msgstr "%175" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "200%" +msgstr "%200" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "300%" +msgstr "%300" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "400%" +msgstr "%400" + +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:3484 +#: ../shell/ev-window-title.c:127 +msgid "Document Viewer" +msgstr "NĆ®ÅanderĆŖ Belgeyan" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "BelgeyĆŖn pir-rĆ»pelĆ® nĆ®Åan bide" + +#: ../data/evince-password.glade.h:1 +#, fuzzy +msgid "Password Entry" +msgstr "ÅĆ®_fre:" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "Bo vĆŖ daniÅĆ®nĆŖ ÅĆ®freyĆŖ bibĆ®r bĆ®ne" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ÅĆ®freyĆŖ li miftedankĆŖ de tomar bike" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "ÅĆ®_fre:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>NivĆ®skar:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>DĆ®roka afirandinĆŖ:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>AfirandĆŖr:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Format:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>PeyvĆŖn MĆ®na Mifteyan:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Hatiye guheandin:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Hejmara RĆ»pelan:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>HerĆ® tekĆ»z:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>Mezinahiya KaxizĆŖ:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>HilberĆ®ner:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>EwlekarĆ®:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Mijar:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>SernivĆ®s:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ZorĆŖ bide sĆ®norkirinĆŖn Belgeyan" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "SĆ®norkirinĆŖn belgeyĆŖ yĆŖn wekĆ® jibergirtin Ć» nivĆ®sĆ®nĆŖ diguherĆ®ne." + +#: ../properties/ev-properties-main.c:110 +msgid "Document" +msgstr "Belge" + +#: ../properties/ev-properties-view.c:179 +msgid "None" +msgstr "Tune" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:260 +msgid "default:mm" +msgstr "pĆŖÅdanasĆ®nĆ®:mm" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:292 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f inƧ" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:297 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:308 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:315 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "" + +#: ../shell/eggfindbar.c:157 +msgid "Search string" +msgstr "RĆŖzika LĆŖgerĆ®nĆŖ" + +#: ../shell/eggfindbar.c:158 +msgid "The name of the string to be found" +msgstr "NavĆŖ rĆŖzika ku divĆŖ were dĆ®tin" + +#: ../shell/eggfindbar.c:171 +msgid "Case sensitive" +msgstr "Ji tĆ®pĆŖn biƧƻk/MEZIN re bihĆ®styar" + +#: ../shell/eggfindbar.c:172 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:179 +msgid "Highlight color" +msgstr "RengĆŖ BiriqandinĆŖ" + +#: ../shell/eggfindbar.c:180 +msgid "Color of highlight for all matches" +msgstr "Ji bo hemĆ» hevalbendiyan rengĆŖ nĆ®ÅankirinĆŖ" + +#: ../shell/eggfindbar.c:186 +msgid "Current color" +msgstr "RengĆŖ heyĆ®" + +#: ../shell/eggfindbar.c:187 +msgid "Color of highlight for the current match" +msgstr "Ji bo hevalbendiya derbasdar rengĆŖ nĆ®ÅankirinĆŖ" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "BibĆ®ne:" + +#: ../shell/eggfindbar.c:329 +msgid "Find Previous" +msgstr "Ya BerĆ® WĆŖ BibĆ®ne" + +#: ../shell/eggfindbar.c:332 +msgid "Find previous occurrence of the search string" +msgstr "CihĆŖ berĆŖ yĆŖ rĆŖzika lĆŖgerĆ®nĆŖ hate dĆ®tin bibĆ®ne" + +#: ../shell/eggfindbar.c:337 +msgid "Find Next" +msgstr "Ya DĆ» re BibĆ®ne" + +#: ../shell/eggfindbar.c:340 +msgid "Find next occurrence of the search string" +msgstr "CihĆŖ dĆ»re yĆŖ rĆŖzika lĆŖgerĆ®nĆŖ lĆŖ hatiye dĆ®tin bibĆ®ne" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "RewÅa_histiyar" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ji %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "ji %d" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "ÅĆ®fre pĆŖwĆ®ste e" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "Belgeya \"%s\" quflekirĆ® ye Ć» ji bo were vekirin ÅĆ®fre pĆŖwist e." + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "ÅĆ®freyĆŖ binivĆ®se" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "Ji bo belgeya %s ÅĆ®fre" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "ÅĆ®freya Nederbasdar" + +#: ../shell/ev-password-view.c:111 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "Ev belge quflekirĆ® ye Ć» heke ÅĆ®freya rasteqĆ®n were nivĆ®sĆ®n encax dikare were xwendin." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Qufleya BelgeyĆŖ Rake" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "TaybetmendĆ®" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "GiÅtĆ®" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "CureyĆŖn nivĆ®sĆŖ" + +#: ../shell/ev-properties-fonts.c:139 +msgid "Font" +msgstr "CureyĆŖ nivĆ®sĆŖ" + +#: ../shell/ev-properties-fonts.c:150 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Agahiya curetĆ®pan tĆŖne stendin... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:663 +msgid "Attachments" +msgstr "PĆŖvek" + +#: ../shell/ev-sidebar-links.c:266 +#: ../shell/ev-view.c:2823 +msgid "Loading..." +msgstr "TĆŖ bar kirin..." + +#: ../shell/ev-sidebar-links.c:342 +msgid "Print..." +msgstr "Ćap..." + +#: ../shell/ev-sidebar-links.c:714 +msgid "Index" +msgstr "PĆŖrist" + +#: ../shell/ev-sidebar-thumbnails.c:724 +msgid "Thumbnails" +msgstr "WĆŖneyĆŖn biƧƻk" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "BiÅemitĆ®ne Jor" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "BiÅemitĆ®ne JĆŖr" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "DĆ®tina BelgeyĆŖ" + +#: ../shell/ev-view.c:1414 +msgid "Go to first page" +msgstr "BiƧe rĆ»pelĆŖ pĆŖÅĆ®n" + +#: ../shell/ev-view.c:1416 +msgid "Go to previous page" +msgstr "BiƧe rĆ»pelĆŖ berĆŖ" + +#: ../shell/ev-view.c:1418 +msgid "Go to next page" +msgstr "BiƧe rĆ»pelĆŖ dĆ» re" + +#: ../shell/ev-view.c:1420 +msgid "Go to last page" +msgstr "BiƧe rĆ»pelĆŖ dawĆ®n" + +#: ../shell/ev-view.c:1422 +msgid "Go to page" +msgstr "BiƧe rĆ»pel" + +#: ../shell/ev-view.c:1424 +msgid "Find" +msgstr "BibĆ®ne" + +#: ../shell/ev-view.c:1451 +#, c-format +msgid "Go to page %s" +msgstr "BiƧe rĆ»pelĆŖ %s" + +#: ../shell/ev-view.c:1456 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Here %s di pelĆŖ ā%sā" + +#: ../shell/ev-view.c:1459 +#, c-format +msgid "Go to file ā%sā" +msgstr "BiƧe pelĆŖ \"%s\"" + +#: ../shell/ev-view.c:1468 +#, c-format +msgid "Launch %s" +msgstr "%s bide destpĆŖkirin" + +#: ../shell/ev-view.c:1858 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../shell/ev-view.c:2536 +msgid "Jump to page:" +msgstr "BiƧe rĆ»pel:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:4153 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d di vĆŖ rĆ»pelĆŖ de hatiye dĆ®tin" +msgstr[1] "%d di vĆŖ rĆ»pelĆŖ de hatine dĆ®tin" + +#: ../shell/ev-view.c:4162 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% lĆŖgerĆ®nĆŖ bibĆ®r dixe" + +#: ../shell/ev-window.c:735 +#, c-format +msgid "Page %s - %s" +msgstr "RĆ»pela %s - %s" + +#: ../shell/ev-window.c:737 +#, c-format +msgid "Page %s" +msgstr "RĆ»pela %s" + +#: ../shell/ev-window.c:1314 +msgid "Unable to open document" +msgstr "Belge nehate vekirin" + +#: ../shell/ev-window.c:1476 +msgid "Open Document" +msgstr "BelgeyĆŖ Veke" + +#: ../shell/ev-window.c:1531 +#, fuzzy, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "PĆŖveka \"%s\" nehate tomarkirin: %s" + +#: ../shell/ev-window.c:1560 +msgid "Cannot open a copy." +msgstr "Vekirina pelekĆ® serneket." + +#: ../shell/ev-window.c:1843 +#, fuzzy, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Barkirina belgeya \"%s\" bi ser neket" + +#: ../shell/ev-window.c:1904 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Pel wekĆ® \"%s\" nehate tomarkirin." + +#: ../shell/ev-window.c:1925 +msgid "Save a Copy" +msgstr "KopiyekĆŖ Tomar bike" + +#: ../shell/ev-window.c:2006 +msgid "Failed to print document" +msgstr "Dema belge dihate Ƨapkirin bi ser neket" + +#: ../shell/ev-window.c:2125 +#: ../shell/ev-window.c:2310 +msgid "Printing is not supported on this printer." +msgstr "Ćapkirina di vĆŖ ƧaperĆŖ de nayĆŖ destekkirin." + +#: ../shell/ev-window.c:2235 +#: ../shell/ev-window.c:2361 +msgid "Print" +msgstr "Ćap" + +#: ../shell/ev-window.c:2300 +msgid "Generating PDF is not supported" +msgstr "PĆŖkhatina PDF nayĆŖ destekkirin" + +#: ../shell/ev-window.c:2312 +#, c-format +msgid "You were trying to print to a printer using the ā%sā driver. This program requires a PostScript printer driver." +msgstr "Tu dixwazĆ® ajokerĆŖ \"%s\" bikar bĆ®ne Ć» ji ƧaperĆŖ deranekĆŖ bistĆ®ne. Ev bername pĆŖdiviya wĆŖ ji ajokera PostSkrĆ®pt heye" + +#: ../shell/ev-window.c:2370 +msgid "Pages" +msgstr "RĆ»pel" + +#. Toolbar-only +#: ../shell/ev-window.c:2737 +#: ../shell/ev-window.c:4132 +msgid "Leave Fullscreen" +msgstr "Ji DĆ®mender Tije Derkeve" + +#: ../shell/ev-window.c:3109 +msgid "Toolbar Editor" +msgstr "SererastkerĆŖ DarikĆŖ AmĆ»ran" + +#: ../shell/ev-window.c:3480 +#, fuzzy, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"NĆ®ÅanderkĆŖ PelĆŖn PostSkrĆ®pt Ć» PDF\n" +"PopplerĆŖn tĆŖne bikaranĆ®n %s (%s)" + +#: ../shell/ev-window.c:3508 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "" + +#: ../shell/ev-window.c:3512 +msgid "Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:3516 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:3540 +#: ../shell/main.c:284 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3543 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 NivĆ®skarĆŖn Evince" + +#: ../shell/ev-window.c:3549 +msgid "translator-credits" +msgstr "Erdal Ronahi <erdal.ronahi@gmail.com>" + +#: ../shell/ev-window.c:4049 +msgid "_File" +msgstr "_Pel" + +#: ../shell/ev-window.c:4050 +msgid "_Edit" +msgstr "_BiguherĆ®ne" + +#: ../shell/ev-window.c:4051 +msgid "_View" +msgstr "_DĆ®tin" + +#: ../shell/ev-window.c:4052 +msgid "_Go" +msgstr "_Here" + +#: ../shell/ev-window.c:4053 +msgid "_Help" +msgstr "_AlĆ®karĆ®" + +#. File menu +#: ../shell/ev-window.c:4056 +#: ../shell/ev-window.c:4228 +msgid "_Open..." +msgstr "_Veke..." + +#: ../shell/ev-window.c:4057 +msgid "Open an existing document" +msgstr "Belgeyeke heyĆ® veke" + +#: ../shell/ev-window.c:4059 +msgid "Open a _Copy" +msgstr "_KopiyekĆŖ Veke" + +#: ../shell/ev-window.c:4060 +#, fuzzy +msgid "Open a copy of the current document in a new window" +msgstr "Belgeya derbasdar bila paceyĆŖ tije bike" + +#: ../shell/ev-window.c:4062 +#: ../shell/ev-window.c:4230 +msgid "_Save a Copy..." +msgstr "KopiyekĆŖ _Tomar Bike..." + +#: ../shell/ev-window.c:4063 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:4065 +msgid "Print Set_up..." +msgstr "_Veavakirina ĆapĆŖ..." + +#: ../shell/ev-window.c:4066 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4068 +msgid "_Print..." +msgstr "_Ćap..." + +#: ../shell/ev-window.c:4069 +msgid "Print this document" +msgstr "VĆŖ belgeyĆŖ Ƨap bike" + +#: ../shell/ev-window.c:4071 +msgid "P_roperties" +msgstr "Ta_ybetmentĆ®" + +#: ../shell/ev-window.c:4080 +#: ../shell/ev-window.c:4082 +msgid "Select _All" +msgstr "HemĆ»yĆ® _HilbijĆŖre" + +#: ../shell/ev-window.c:4085 +msgid "_Find..." +msgstr "_BibĆ®ne..." + +#: ../shell/ev-window.c:4086 +msgid "Find a word or phrase in the document" +msgstr "Di hundirĆŖ dokumanĆŖ de li pey an jĆ® biwĆŖjan bigere" + +#: ../shell/ev-window.c:4088 +msgid "Find Ne_xt" +msgstr "Ya _piÅtr e bibĆ®ne" + +#: ../shell/ev-window.c:4090 +msgid "Find Pre_vious" +msgstr "Ya _berĆŖ bibĆ®ne" + +#: ../shell/ev-window.c:4092 +msgid "T_oolbar" +msgstr "_Darika amĆ»ran" + +#: ../shell/ev-window.c:4094 +msgid "Rotate _Left" +msgstr "BizivirĆ®ne _ĆepĆŖ" + +#: ../shell/ev-window.c:4096 +msgid "Rotate _Right" +msgstr "BizivirĆ®ne _RastĆŖ" + +#: ../shell/ev-window.c:4101 +msgid "Enlarge the document" +msgstr "BelgeyĆŖ fireh bike" + +#: ../shell/ev-window.c:4104 +msgid "Shrink the document" +msgstr "BelgeyĆŖ teng bike" + +#: ../shell/ev-window.c:4106 +msgid "_Reload" +msgstr "_NĆ» Bike" + +#: ../shell/ev-window.c:4107 +msgid "Reload the document" +msgstr "BelgeyĆŖ ji nĆ» ve bar bike" + +#. Go menu +#: ../shell/ev-window.c:4111 +msgid "_Previous Page" +msgstr "RĆ»pelĆŖ _BerĆŖ" + +#: ../shell/ev-window.c:4112 +msgid "Go to the previous page" +msgstr "BiƧe rĆ»pelĆŖ berĆŖ" + +#: ../shell/ev-window.c:4114 +msgid "_Next Page" +msgstr "RĆ»pelĆŖ _DĆ» re" + +#: ../shell/ev-window.c:4115 +msgid "Go to the next page" +msgstr "BiƧe rĆ»pelĆŖ piÅt re" + +#: ../shell/ev-window.c:4117 +msgid "_First Page" +msgstr "RĆ»pelĆŖ _PĆŖÅĆ®n" + +#: ../shell/ev-window.c:4118 +msgid "Go to the first page" +msgstr "BiƧe rĆ»pelĆŖ pĆŖÅĆ®n" + +#: ../shell/ev-window.c:4120 +msgid "_Last Page" +msgstr "RĆ»pelĆŖ _DawĆ®n" + +#: ../shell/ev-window.c:4121 +msgid "Go to the last page" +msgstr "Here rĆ»pela dawĆ®" + +#. Help menu +#: ../shell/ev-window.c:4125 +msgid "_Contents" +msgstr "_Naverok" + +#: ../shell/ev-window.c:4128 +msgid "_About" +msgstr "_Der barĆŖ" + +#: ../shell/ev-window.c:4133 +msgid "Leave fullscreen mode" +msgstr "Moda dĆ®mender tije biterikĆ®ne" + +#. View Menu +#: ../shell/ev-window.c:4184 +msgid "_Toolbar" +msgstr "_DarikĆŖ AmĆ»ran" + +#: ../shell/ev-window.c:4185 +msgid "Show or hide the toolbar" +msgstr "Darika amĆ»ran nĆ®Åan bide an veÅĆŖre" + +#: ../shell/ev-window.c:4187 +msgid "Side _Pane" +msgstr "_Panela KĆŖlekĆŖ" + +#: ../shell/ev-window.c:4188 +msgid "Show or hide the side pane" +msgstr "Panela kĆŖlekĆŖ nĆ®Åan bide yan jĆ® veÅĆŖre" + +#: ../shell/ev-window.c:4190 +msgid "_Continuous" +msgstr "_Li dĆ» hev" + +#: ../shell/ev-window.c:4191 +msgid "Show the entire document" +msgstr "TevĆ® belgeyĆŖ nĆ®Åan bide" + +#: ../shell/ev-window.c:4193 +msgid "_Dual" +msgstr "_Cot" + +#: ../shell/ev-window.c:4194 +msgid "Show two pages at once" +msgstr "Bi carekĆŖ re du rĆ»pelan nĆ®Åan bide" + +#: ../shell/ev-window.c:4196 +msgid "_Fullscreen" +msgstr "_DĆ®mender tijĆ®" + +#: ../shell/ev-window.c:4197 +msgid "Expand the window to fill the screen" +msgstr "Bi qasĆ® dĆ®menderĆŖ tije dike paceyĆŖ fireh bike" + +#: ../shell/ev-window.c:4199 +msgid "_Presentation" +msgstr "_PĆŖÅkeÅĆ®" + +#: ../shell/ev-window.c:4200 +msgid "Run document as a presentation" +msgstr "BelgeyĆŖ wekĆ® pĆŖÅkeÅĆ® bide xebitandin" + +#: ../shell/ev-window.c:4202 +msgid "_Best Fit" +msgstr "_Yek RĆ»pel" + +#: ../shell/ev-window.c:4203 +msgid "Make the current document fill the window" +msgstr "Belgeya derbasdar bila paceyĆŖ tije bike" + +#: ../shell/ev-window.c:4205 +msgid "Fit Page _Width" +msgstr "_Firehiya RĆ»pelĆŖ" + +#: ../shell/ev-window.c:4206 +msgid "Make the current document fill the window width" +msgstr "" + +#. Links +#: ../shell/ev-window.c:4213 +msgid "_Open Link" +msgstr "GirĆŖdanĆŖ veke" + +#: ../shell/ev-window.c:4215 +msgid "_Go To" +msgstr "_BiƧe" + +#: ../shell/ev-window.c:4217 +msgid "Open in New _Window" +msgstr "Di _Paceya NĆ» de veke" + +#: ../shell/ev-window.c:4219 +msgid "_Copy Link Address" +msgstr "NavnĆ®Åana GirĆŖdanĆŖ _Ji Ber Bigire" + +#: ../shell/ev-window.c:4221 +msgid "_Save Image As..." +msgstr "WĆŖneyĆ® Cuda _Tomar Bike..." + +#: ../shell/ev-window.c:4223 +msgid "Copy _Image" +msgstr "" + +#: ../shell/ev-window.c:4262 +msgid "Page" +msgstr "RĆ»pel" + +#: ../shell/ev-window.c:4263 +msgid "Select Page" +msgstr "RĆ»pel HilbijĆŖre" + +#: ../shell/ev-window.c:4273 +msgid "Zoom" +msgstr "MezinahĆ®" + +#: ../shell/ev-window.c:4275 +msgid "Adjust the zoom level" +msgstr "Asta nĆŖzĆ®kbĆ»nĆŖ mĆ®heng bike" + +#: ../shell/ev-window.c:4285 +msgid "Navigation" +msgstr "" + +#: ../shell/ev-window.c:4287 +msgid "Back" +msgstr "PaÅve" + +#: ../shell/ev-window.c:4289 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4305 +msgid "Previous" +msgstr "PaÅ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4310 +msgid "Next" +msgstr "PĆŖÅ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4314 +msgid "Zoom In" +msgstr "NĆŖzĆ®k bike" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4318 +msgid "Zoom Out" +msgstr "DĆ»r bibe" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4326 +msgid "Fit Width" +msgstr "" + +#: ../shell/ev-window.c:4638 +#, fuzzy +msgid "The image could not be saved." +msgstr "PĆŖvek nehate tomarkirin" + +#: ../shell/ev-window.c:4657 +msgid "Save Image" +msgstr "WĆŖneyĆ® tomar bike" + +#: ../shell/ev-window.c:4712 +msgid "Unable to open attachment" +msgstr "PĆŖvek nehate vekirin" + +#: ../shell/ev-window.c:4759 +msgid "The attachment could not be saved." +msgstr "PĆŖvek nehate tomarkirin" + +#: ../shell/ev-window.c:4783 +msgid "Save Attachment" +msgstr "PĆŖvekĆŖ Tomar bike" + +#: ../shell/ev-window-title.c:141 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ÅĆ®fre PĆŖwist e" + +#: ../shell/main.c:53 +msgid "The page of the document to display." +msgstr "RĆ»pelĆŖ belgeya ku wĆŖ were nĆ®Åandan." + +#: ../shell/main.c:53 +msgid "PAGE" +msgstr "RĆPEL" + +#: ../shell/main.c:54 +msgid "Run evince in fullscreen mode" +msgstr "Evince di moda dĆ®mender tije de bixebitĆ®ne" + +#: ../shell/main.c:55 +msgid "Run evince in presentation mode" +msgstr "Evince di moda pĆŖÅkĆŖÅiyĆŖ de bixebitĆ®ne" + +#: ../shell/main.c:56 +msgid "Run evince as a previewer" +msgstr "Evince wekĆ® pĆŖÅdĆ®tinĆŖ bixebitĆ®ne" + +#: ../shell/main.c:58 +msgid "[FILE...]" +msgstr "[PEL...]" + +#: ../shell/main.c:269 +msgid "MATE Document Viewer" +msgstr "NĆ®ÅanderĆŖ Belgeyan yĆŖ MATE" + +#: ../shell/main.c:310 +msgid "Evince Document Viewer" +msgstr "NĆ®ÅanderĆŖ BelgeyĆŖn Evince" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Ćalakiya wĆŖneyĆŖn biƧƻk yĆŖn PelĆŖn PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Ji bo belgehĆŖn PDF fermana wĆŖneyĆŖn biƧƻk" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "Ji bo wĆŖnekerĆŖ biƧƻk yĆŖ PelĆŖ PDF parametreyĆŖn zĆŖdek yĆŖn fermanĆŖn derbasdar. Ji bo agahiyĆŖn berfireh li belgeya wĆŖnekerĆŖn biƧƻk yĆŖn cajaĆŖ binihĆŖre." + +#~ msgid "No document loaded." +#~ msgstr "Tu belge nebarkirĆ®." +#~ msgid "Broken pipe." +#~ msgstr "LĆ»leya ÅikestĆ®." +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Dema tengkirina pelĆŖ \"%s\" dihate vekirin ƧewtĆ® derket:\n" +#~ msgid "File is not readable." +#~ msgstr "Pel nayĆŖ xwedin." +#~ msgid "Document loaded." +#~ msgstr "Belge hatiye barkirin." +#~ msgid "_Remove Toolbar" +#~ msgstr "Darika amĆ»ran jĆŖ _bibe" +#~ msgid "*" +#~ msgstr "*" +#~ msgid "F_ind:" +#~ msgstr "_BibĆ®ne:" +#~ msgid "_Previous" +#~ msgstr "_Ya berĆŖ" +#~ msgid "_Next" +#~ msgstr "Ya _pĆŖÅ" +#~ msgid "Not found" +#~ msgstr "Nehat dĆ®tin" + diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 00000000..ae7120bb --- /dev/null +++ b/po/lt.po @@ -0,0 +1,1818 @@ +# translation of lt.po to Lithuanian +# Lithuanian translation of Evince. +# Copyright (C) 2005-2009 The MATE Foundation. +# This file is distributed under the same license as the Evince package. +# +# +# Žygimantas BeruÄka <zygis@gnome.org>, 2005-2006, 2009. +# Justina KlingaitÄ <justina.klingaite@gmail.com>, 2005. +# Gintautas Miliauskas <gintas@akl.lt>, 2007, 2008. +# Aurimas Äernius <aurisc4@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-17 17:36+0300\n" +"PO-Revision-Date: 2010-08-16 22:51+0300\n" +"Last-Translator: Aurimas Äernius <aurisc4@gmail.com>\n" +"Language-Team: Lietuvių <mate-lt@lists.akl.lt>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: UTF-8\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" +"100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Klaida paleidžiant komandÄ ā%sā komiksų knygos ā%sā iÅ”skleidimui" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Komandai ā%sā nepavyko iÅ”skleisti komiksų knygos." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Komanda ā%sā normaliai nebaigÄ darbo." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ne komiksų knygos MIME tipas: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Nepavyko rasti tinkamos komandos iÅ”skleisti Å”io tipo komiksų knygos" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Nežinomas MIME tipas" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Failas sugadintas" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Archyve nÄra failų" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Archyve %s nereasta jokių paveikslÄlių" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Ä®vyko klaida trinant ā%sā" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Klaida %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komiksų knygos" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu dokumentas yra neteisingo formato" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokumentas sudarytas iÅ” kelių failų. Vienas ar keli iÅ” Å”ių failų negali bÅ«ti " +"atverti." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu dokumentai" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI dokumentas yra neteisingo formato" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI dokumentai" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Å is darbas yra vieÅ”o naudojimo" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Taip" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Ne" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Nežinomas Å”rifto tipas" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Be pavadinimo" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Ä®montuotas poaibis" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ä®montuotas" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "NeÄÆmontuotas" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF dokumentai" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Netaisyklingas dokumentas" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress skaidrÄs" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "NÄra klaidos" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "TrÅ«ksta atminties" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Nerastas zip paraÅ”as" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Netaisyklingas zip failas" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Kelių failų zip archyvai nepalaikomi" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Nepavyko atverti failo" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Nepavyko perskaityti duomenų iÅ” failo" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Nepavyko rasti failo zip archyve" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Nežinoma klaida" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Nepavyko atverti dokumento ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Nepavyko ÄÆraÅ”yti dokumento ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript dokumentai" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Nepavyko iÅ”saugoti priedo ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Nepavyko atverti priedo ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Nepavyko atverti priedo ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Failo tipas %s (%s] nepalaikomas" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Visi dokumentai" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Visi failai" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Nepavyko sukurti laikinojo failo: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Nepavyko sukurti laikinojo katalogo: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Å is failas nÄra taisyklingas .desktop failas" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Neatpažinta darbastalio failo versija ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Paleidžiama %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programa nepriima dokumentų komandinÄje eilutÄje" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Neatpažintas paleidimo parametras: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Negalima perduoti dokumentų URI āType=Linkā darbastalio ÄÆraÅ”ui" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nepaleidžiamas elementas" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Atjungti nuo seanso valdyklÄs" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Nurodykite failÄ su ÄÆraÅ”ytais nustatymais" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FAILAS" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Nurodykite seanso valdymo ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Seanso valdymo parinktys:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Rodyti seanso valdymo parinktis" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Rodyti ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Perkelti ÄÆ ÄÆrankinÄ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Perkelti pasirinktÄ elementÄ ÄÆ ÄÆrankinÄ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_PaÅ”alinti iÅ” ÄÆrankinÄs" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "PaÅ”alinti pasirinktÄ elementÄ iÅ” ÄÆrankinÄs" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_PaÅ”alinti ÄÆrankinÄ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "PaÅ”alinti pasirinktÄ ÄÆrankinÄ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Skirtukas" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Geriausiai tinkantis" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Tinkantis prie puslapio ploÄio" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentų peržiÅ«ros programa" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "PeržiÅ«rÄti kelių puslapių dokumentams" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Nepaisyti dokumento apribojimų" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Nepaisyti dokumento apribojimų, pvz., apsaugojimo nuo kopijavimo ar " +"spausdinimo." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Trinti laikinÄ failÄ " + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Spausdinimo nuostatų failas" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE dokumentų peržiÅ«ros programa" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Nepavyko iÅ”spausdinti dokumento" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Pasirinktas spausdintuvas ā%sā nerastas" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Ankstesnis puslapis" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Eiti ÄÆ ankstesnÄÆjÄÆ puslapÄÆ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_Kitas puslapis" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Eiti ÄÆ kitÄ puslapÄÆ" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "IÅ”didinti dokumentÄ " + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Sutraukti dokumentÄ " + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Spausdinti" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "IÅ”spaudinti Å”ÄÆ dokumentÄ " + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_Geriausiai tinkantis" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Dokumentas užpildo visÄ langÄ " + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Tinkantis prie puslapio pl_oÄio" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Dokumentas užpildo lango plotÄÆ" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Puslapis" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Pasirinkite puslapÄÆ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokumentas" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Pavadinimas:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Vieta:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Tema:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autorius:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Raktažodžiai:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Gamintojas:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "KÅ«rÄjas:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Sukurta:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Pakeista:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Puslapių skaiÄius:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizuota:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formatas:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Apsauga:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Lapo dydis:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "NÄra" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f colių" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, staÄias (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, gulsÄias (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d iÅ” %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "iÅ” %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Ä®keliama..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "RuoÅ”iamasi spausdinti..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Baigiama..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Spausdinamas %d iÅ” %d puslapių..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Spausdinimas Å”iuo spausdintuvu nepalaikomas." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Netaisyklingas puslapio parinkimas" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Ä®spÄjimas" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Pasirinktame spausdinimo rÄžyje nÄra nÄ vieno puslapio" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Puslapio mastelis:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Sumažinti iki spausdinamos dalies" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Pritaikyti prie spausdinamos dalies" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Keisti dokumento puslapių dydÄÆ pritaikant prie pasirinkto spausdintuvo " +"puslapio. Pasirinkite vienÄ iÅ” Å”ių:\n" +"\n" +"ā¢ āNekeistiā: puslapio dydis nebus keiÄiamas.\n" +"\n" +"ā¢ āSumažinti iki spausdinamo plotoā: dokumento puslapiai, didesni nei " +"spausdinamas plotas, bus sumažinti, kad tilptų ÄÆ spausdintuvo puslapio " +"spausdinamÄ dalÄÆ.\n" +"\n" +"ā¢ āPritaikyti prie spausdinamo plotoā: dokumento puslapiai bus padidinti " +"arba sumažinti pagal poreikÄÆ, pritaikant prie spausdintuvo puslapio " +"spausdinamos dalis.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "AutomatiÅ”kai pasukti ir centruoti" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Pasukti spausdintuvo puslapÄÆ kiekvienam puslapiui, pritaikant jÄÆ prie " +"dokumento puslapio orientacijos. Dokumento puslapiai bus centruojami " +"spausdintuvo puslapyje." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Pasirinkti puslapio dydÄÆ pagal dokumento puslapio dydÄÆ" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Ä®jungus kiekvienas puslapis bus spausdinamas dokumento puslapio dydžio " +"popieriaus lape." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Puslapių apdorojimas" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Nepavyko atspausdinti puslapio %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Slinkti aukÅ”tyn" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Slinkti žemyn" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Slinkti vaizdÄ aukÅ”tyn" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Slinkti vaizdÄ Å¾emyn" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentų vaizdas" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Eiti ÄÆ puslapÄÆ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Pateikties pabaiga. Spauskite norÄdami iÅ”eiti." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Eiti ÄÆ pirmÄ puslapÄÆ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Eiti ÄÆ ankstesnÄÆ puslapÄÆ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Eiti ÄÆ kitÄ puslapÄÆ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Eiti ÄÆ paskutinÄÆ puslapÄÆ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Eiti ÄÆ puslapÄÆ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "IeÅ”koti" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Eiti ÄÆ %s puslapÄÆ" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Eiti ÄÆ %s faile ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Eiti ÄÆ failÄ ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Paleisti %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "IeÅ”koti:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "IeÅ”koti a_nkstesnio" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "IeÅ”koti ankstesnio ieÅ”komo užraÅ”o pasikartojimo" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "IeÅ”koti _kito" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "IeÅ”koti kito ieÅ”komo užraÅ”o pasikartojimo" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "S_kirti raidžių dydÄÆ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Ä®jungti / iÅ”jungti raidžių registrui jautriÄ paieÅ”kÄ " + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Piktograma:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Pastaba" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Komentaras" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Raktas" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Žinynas" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nauja pastraipa" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Pastraipa" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Ä®terpti" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kryželis" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Apskritimas" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Nežinoma" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Anotacijos savybÄs" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Spalva:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stilius:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Permatomas" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Nepermatomas" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "PradinÄ lango bÅ«sena:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Atverti" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Užverti" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "PateikÄių veiksena" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Dokumento ā%sā slaptažodis" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konvertuojama %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "konvertuota %d iÅ” %d dokumentų" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konvertuojami meta duomenys" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evince meta duomenų formatas pasikeitÄ ir turi bÅ«ti perkeltas. Jei " +"perkÄlimas bus atÅ”auktas, meta duomenų saugykla neveiks." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Atverti neseniai skaitytÄ dokumentÄ " + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Å is dokumentas yra užrakintas ir jÄÆ galima perskaityti tik ÄÆvedus teisingÄ " +"slaptažodÄÆ." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Atrakinti dokumentÄ " + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Ä®veskite slaptažodÄÆ" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Reikalingas slaptažodis" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Dokumentas ā%sā yra užrakintas, norint jÄÆ atverti reikalingas slaptažodis." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Slaptažodis:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "IÅ”kart _pamirÅ”ti slaptažodÄÆ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_Atsiminti slaptažodÄÆ Å”iam seansui" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Prisiminti _visam laikui" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "SavybÄs" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "PagrindinÄs" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Å riftai" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumento licencija" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Å riftas" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Renkama Å”riftų informacija... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Naudojimo sÄ lygos" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Teksto licencija" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Daugiau informacijos" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "SÄ raÅ”as" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Anotacijos" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Tekstas" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "PridÄti teksto anotacijÄ " + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "PridÄti" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Å iame dokumente nÄra nÄ vienos anotacijos" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Puslapis %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Priedai" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Sluoksniai" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Spausdinti..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "RodyklÄ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "MiniatiÅ«ros" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Puslapis %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Puslapis %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Å iame dokumente nÄra nÄ vieno puslapio" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Å iame dokumente yra tik tuÅ”ti puslapiai" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Nepavyko atverti dokumento" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Ä®keliamas dokumentas iÅ” ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "AtsiunÄiamas dokumentas (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Nepavyko ÄÆkelti nutolusio failo." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Dokumentas ÄÆkeliamas iÅ” naujo iÅ” %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Nepavyko ÄÆkelti dokumento iÅ” naujo" + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Atverti dokumentÄ " + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Dokumentas ÄÆraÅ”omas ÄÆ %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Priedas ÄÆraÅ”omas ÄÆ %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Ä®raÅ”omas paveikslÄlis ÄÆ %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Failo iÅ”saugoti kaip ā%sā nepavyko." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "SiunÄiamas dokumentas (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "SiunÄiamas priedas (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "SiunÄiamas paveikslÄlis (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "IÅ”saugoti kopijÄ " + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d neÄÆvykdyta užduotis eilÄje" +msgstr[1] "%d neÄÆvykdytos užduotys eilÄje" +msgstr[2] "%d neÄÆvykdytų užduoÄių eilÄje" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Spausdinimo užduotis ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokumentas turi formos laukų, kurie buvo užpildyti. Jei neiÅ”saugosite " +"kopijos, pakeitimai bus negrÄÆžtamai prarasti." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokumentas turi naujų arba pakeistų anotacijų. Jei neiÅ”saugosite kopijos, " +"pakeitimai bus negrÄÆžtamai prarasti." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "IÅ”saugoti dokumento ā%sā kopijÄ užveriant?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Užverti _neiÅ”saugant" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "IÅ”saugoti _kopijÄ " + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Laukti, kol spausdinimo užduotis ā%sā baigs, prieÅ” uždarant?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Yra %d aktyvių spausdinimo užduoÄių. Laukti, kol spausdinimas bus baigtas, " +"prieÅ” uždarant?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Jei užversite langÄ , spausdinimo užduotys bus neatliktos." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Nutraukti _spausdinimÄ ir uždaryti" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Uždaryti _iÅ”spausdinus" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Ä®rankinÄs rengyklÄ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Rodant žinynÄ ÄÆvyko klaida" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentų peržiÅ«ros programa.\n" +"Naudojama %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince yra laisva programinÄ ÄÆranga; galite jÄ platinti ir / ar modifikuoti " +"GNU bendrosios vieÅ”osios licencijos sÄ lygomis, kurios paskelbtos Laisvosios " +"programinÄs ÄÆrangos fondo; 2-osios arba (savo pasirinkimu) bet kurios " +"vÄlesnÄs licencijos versijos sÄ lygomis.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince yra platinama tikintis, kad ji bus naudinga, bet NETEIKIANT JOKIŲ " +"GARANTIJŲ; netgi be numanomų PARDAVIMO arba TINKAMUMO KONKREÄIAM TIKSLUI " +"garantijų. DÄl iÅ”samesnÄs informacijos žiÅ«rÄkite GNU bendrÄ jÄ vieÅ”Ä jÄ " +"licencijÄ .\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"TurÄjote gauti GNU bendrosios vieÅ”osios licencijos kopijÄ kartu su Evince; " +"jeigu negavote, raÅ”ykite The Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince autoriai" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Žygimantas BeruÄka <zygis@gnome.org>,\n" +"Justina KlingaitÄ <justina.klingaite@gmail.com>,\n" +"Aurimas Äernius <aurisc4@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "Å”iame puslapyje rastas %d" +msgstr[1] "Å”iame puslapyje rasti %d" +msgstr[2] "Å”iame puslapyje rasta %d" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Nerasta" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "liko ieÅ”koti %3d%%" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Failas" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Keisti" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Rodymas" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_Eiti" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_Žinynas" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Atverti..." + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Atverti egzistuojantÄÆ dokumentÄ " + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Atverti _kopijÄ " + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Atverti Å”io dokumento kopijÄ naujame lange" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "IÅ”_saugoti kopijÄ ..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "IÅ”saugoti Å”io dokumento kopijÄ " + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "S_pausdinti..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "S_avybÄs" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Pasirinkti _viskÄ " + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_IeÅ”koti..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "IeÅ”koti dokumente žodžio ar frazÄs" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "Ä®r_ankinÄ" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Pasukti _kairÄn" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Pasukti _deÅ”inÄn" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "IÅ”saugoti dabartinius nustatymus kaip _numatytuosius" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_Perkrauti" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Ä®kelti dokumentÄ iÅ” naujo" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "AutomatinÄ _slinktis" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_Pirmas puslapis" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Eiti ÄÆ pirmÄ puslapÄÆ" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Paskutinis puslapis" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Eiti ÄÆ paskutinÄÆ puslapÄÆ" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Turinys" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Apie" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "IÅ”jungti viso ekrano veiksenÄ " + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "IÅ”jungti viso ekrano veiksenÄ " + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "PradÄti pateiktÄÆ" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Rodyti dokumentÄ kaip pateiktÄÆ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "Ä®_rankinÄ" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Rodyti arba slÄpti ÄÆrankinÄ" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Å oninis _skydelis" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Rodyti arba slÄpti Å”oninÄÆ skydelÄÆ" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Vientisas" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Rodyti visÄ dokumentÄ " + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dvigubas" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Rodyti du puslapius iÅ” karto" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Visame ekrane" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "IÅ”plÄsti langÄ per visÄ ekranÄ " + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_Pateikti" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Paleisti dokumentÄ kaip prezentacijÄ " + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Negatyvas" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Rodyti puslapio turinio negatyvÄ " + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Atverti nuorodÄ " + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_Eiti ÄÆ" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Atverti _naujame lange" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Kopijuoti nuorodos adresÄ " + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "Ä®raÅ”yti _paveikslÄlÄÆ kaip..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Kopijuoti _paveikslÄlÄÆ" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Anotacijos savybÄs..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Atverti priedÄ " + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "_Ä®raÅ”yti priedÄ " + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Mastelis" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Nustatyti vaizdo mastelÄÆ" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigacija" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Atgal" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Eiti per aplankytus puslapius" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Ankstesnis" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Kitas" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Pritraukti" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Atitraukti" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Tinka plotis" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Nepavyko paleisti iÅ”orinÄs programos." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Nepavyko atverti iÅ”orinÄs nuorodos" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Nepavyko rasti tinkamo formato paveikslÄliui ÄÆraÅ”yti" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "PaveikslÄlio ÄÆraÅ”yti nepavyko." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Ä®raÅ”yti paveikslÄlÄÆ" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Nepavyko atverti priedo" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Priedo iÅ”saugoti nepavyko." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Ä®raÅ”yti priedÄ " + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Reikalingas slaptažodis" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Pagal plÄtinÄÆ" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE dokumentų peržiÅ«ros programa" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Rodytina dokumento puslapio etiketÄ." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PUSLAPIS" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Rodytino dokumento puslapio numeris." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMERIS" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Paleisti Evince viso ekrano veiksenoje" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Paleisti Evince pateikÄių veiksenoje" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Paleisti Evince kaip peržiÅ«ros programÄ " + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Žodis ar frazÄ, ieÅ”kotina dokumente" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "SEKA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FAILAS...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Galimos loginÄs parinktys: teigiama ā ÄÆjungia miniatiÅ«ras, neigiama ā " +"iÅ”jungia" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Ä®jungti PDF dokumentų miniatiÅ«ras" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "MiniatiÅ«rų komanda PDF dokumentams" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Tinkama PDF dokumentų miniatiÅ«rų kÅ«rimo komanda su argumentais. ŽiÅ«rÄkite " +"Caja miniatiÅ«rų generatoriaus dokumentacijÄ ." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Puslapio _nustatymai..." + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Nustatyti puslapio parametrus spausdinimui" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU dokumentas yra neteisingo formato" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Nepavyko atverti failo ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "IeÅ”komas užraÅ”as" + +#~ msgid "The name of the string to be found" +#~ msgstr "IeÅ”komo užraÅ”o pavadinimas" + +#~ msgid "Case sensitive" +#~ msgstr "Skirti raidžių dydÄÆ" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TEIGIAMA paieÅ”kai skirianÄiai raidžių dydÄÆ" + +#~ msgid "Highlight color" +#~ msgstr "ParyÅ”kinimo spalva" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Visų atitikmenų paryÅ”kinimo spalva" + +#~ msgid "Current color" +#~ msgstr "Esama spalva" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Esamo atitikmens paryÅ”kinimo spalva" + +#~ msgid "Recover previous documents?" +#~ msgstr "Atkurti ankstesnius dokumentus?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "PanaÅ”u, kad Evince netikÄtai baigÄ darbÄ , kai paskutinÄÆ kartÄ buvo " +#~ "paleista. Galite atkurti atidarytus dokumentus." + +#~ msgid "_Don't Recover" +#~ msgstr "_Neatkurti" + +#~ msgid "_Recover" +#~ msgstr "_Atkurti" + +#~ msgid "Crash Recovery" +#~ msgstr "AtkÅ«rimas po nulūžimo" + +#~ msgid "Print..." +#~ msgstr "Spausdinti..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Nepavyko sukurti simbolinÄs nuorodos ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Nepavyko atverti kopijos." + +#~ msgid "_Save a Copy..." +#~ msgstr "IÅ”_saugoti kopijÄ ..." + +#~ msgid "_Print..." +#~ msgstr "S_pausdinti..." + +#~ msgid "_Find..." +#~ msgstr "_IeÅ”koti..." + +#~ msgid "Co_nnect" +#~ msgstr "_Prisijungti" + +#~ msgid "Connect _anonymously" +#~ msgstr "Prisijungti _anonimiÅ”kai" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Prisijungti _naudotoju:" + +#~ msgid "_Username:" +#~ msgstr "_Naudotojo vardas:" + +#~ msgid "_Domain:" +#~ msgstr "_Sritis:" + +#~ msgid "_Forget password immediately" +#~ msgstr "IÅ”kart _pamirÅ”ti slaptažodÄÆ" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Atsiminti slaptažodÄÆ Å”iam seansui" + +#~ msgid "_Remember forever" +#~ msgstr "Prisiminti _visam laikui" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 00000000..85126371 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,1783 @@ +# translation of lv.po to Latvian +# Latvian translation for Evince. +# Copyright Ā© 2006 Mate i18n Project for Latvian. +# +# Raivis Dejus <orvils@gmail.com>, 2006. +# Anita Reitere <nitalynx@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: lv\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug." +"cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-02-03 16:30+0000\n" +"PO-Revision-Date: 2010-03-07 16:32+0200\n" +"Last-Translator: \n" +"Language-Team: LatvieÅ”u <kde-i18n-doc@kde.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" +"X-Generator: Lokalize 1.0\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Kļūda, palaižot komandu ā%sā, lai atspiestu komiksu: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Komandai ā%sā neizdevÄs atspiest komiksu." + +#: ../backend/comics/comics-document.c:183, c-format +msgid "The command ā%sā did not end normally." +msgstr "Å Ä·iet, komandai ā%sā gadÄ«jÄs problÄmas." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Nav komiksu MIME tips: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "NeizdevÄs atrast Ä«sto komandu Ŕī komiksa tipa atspieÅ”anai" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "NezinÄms MIME Tips" + +#: ../backend/comics/comics-document.c:422 +#| msgid "File corrupted." +msgid "File corrupted" +msgstr "BojÄts fails" + +#: ../backend/comics/comics-document.c:435 +#| msgid "No images found in archive %s" +msgid "No files in archive" +msgstr "ArhÄ«vÄ nav failu" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "ArhÄ«vÄ %s attÄli nav atrasti" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "DzÄÅ”ot ā%sā, gadÄ«jÄs kļūda." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Kļūda %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komiksu grÄmatas" + +#: ../backend/djvu/djvu-document.c:173 +#| msgid "DVI document has incorrect format" +msgid "DjVu document has incorrect format" +msgstr "DjVu dokumentam ir nepareizs formÄts" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Å is dokuments sastÄv no vairÄkiem failiem. Vismaz vienam no tiem nevar " +"piekļūt." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#| msgid "Djvu Documents" +msgid "DjVu Documents" +msgstr "DjVu dokumenti" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI dokumentam ir nepareizs formÄts" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI dokumenti" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Å is darbs ir cilvÄces kopÄ«paÅ”ums" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "JÄ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "NÄ" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "NezinÄms fonta tips" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Nav nosaukuma" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "IegultÄ apakÅ”kopa" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "IegultÄ" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "Nav iegultÄ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF dokumenti" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +#| msgid "Print this document" +msgid "Invalid document" +msgstr "NederÄ«gs dokuments" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress slaidi" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Nav kļūdas" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nav pietiekami daudz atmiÅas" + +#: ../backend/impress/zip.c:59 +#| msgid "Cannot find zip signature" +msgid "Cannot find ZIP signature" +msgstr "Nevar atrast ZIP parakstu" + +#: ../backend/impress/zip.c:62 +#| msgid "Invalid zip file" +msgid "Invalid ZIP file" +msgstr "NederÄ«gs ZIP fails" + +#: ../backend/impress/zip.c:65 +#| msgid "Multi file zips are not supported" +msgid "Multi file ZIPs are not supported" +msgstr "VairÄku failu ZIP faili netiek atbalstÄ«ti" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Neizdodas atvÄrt failu" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Neizdodas nolasÄ«t datus no faila" + +#: ../backend/impress/zip.c:74 +#| msgid "Cannot find file in the zip archive" +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP arhÄ«vÄ neizdodas atrast failu" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "NezinÄma kļūda" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "NeizdevÄs ielÄdÄt dokumentu ā%sā" + +#: ../backend/ps/ev-spectre.c:135, c-format +#| msgid "Failed to load document ā%sā" +msgid "Failed to save document ā%sā" +msgstr "NeizdevÄs saglabÄt dokumentu ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript dokumenti" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "NeizdevÄs saglabÄt piesaistni ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "NeizdevÄs atvÄrt piesaistni ā%sā: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "NeizdevÄs atvÄrt piesaistni ā%sā" + +#: ../libdocument/ev-document-factory.c:168, c-format +#| msgid "Multi file zips are not supported" +msgid "File type %s (%s) is not supported" +msgstr "Failu tips %s (%s) nav atbalstÄ«ts" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Visi dokumenti" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Visi faili" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "NeizdevÄs izveidot pagaidu failu: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "NeizdevÄs izveidot pagaidu mapi: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Å is nav derÄ«gs .desktop fails" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "NeatpazÄ«ta darbvirsmas faila versija '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "SÄk %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Lietotne nepieÅem dokumentus komandrindÄ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "NeatpazÄ«ta palaiÅ”anas opcija: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nevar nodot dokumenta URI 'Typa=Link' darbvirsmas ierakstam" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nav palaižama vienÄ«ba" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "NepieslÄgties sesiju pÄrvaldniekam" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "NorÄdiet failu, kas satur saglabÄtu konfigurÄciju" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +#| msgid "[FILE...]" +msgid "FILE" +msgstr "FAILS" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "NorÄdiet sesiju pÄrvaldÄ«bas ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Sesiju pÄrvaldÄ«bas opcijas:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "RÄdÄ«t sesiju pÄrvaldÄ«bas opcijas" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "RÄdÄ«t ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_PÄrvietot uz rÄ«kjoslu" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "PÄrvietot izvÄlÄto elementu uz rÄ«kjoslu" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "NoÅemt no _rÄ«kjoslas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "AizvÄkt izvÄlÄtos elementu no rÄ«kjoslas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_DzÄst rÄ«kjoslu" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "AizvÄkt izvÄlÄto rÄ«kjoslu" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "AtdalÄ«tÄjs" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +#| msgid "Run evince in presentation mode" +msgid "Running in presentation mode" +msgstr "Evince darbojas prezentÄcijas režīmÄ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5301 +msgid "Best Fit" +msgstr "LabÄkÄ saderÄ«ba" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Lappuses platumÄ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +#| msgid "50%" +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +#| msgid "50%" +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4183 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentu skatÄ«tÄjs" + +#: ../data/evince.desktop.in.in.h:2 +#| msgid "View multipage documents" +msgid "View multi-page documents" +msgstr "SkatÄ«t lasÄmus dokumentus" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "IgnorÄt dokumenta ierobežojumus" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "IgnorÄt dokumenta (piemÄram, kopÄÅ”anas vai drukÄÅ”anas) ierobežojumus." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "DzÄst pagaidu failu" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "DrukÄÅ”anas iestatÄ«jumu fails" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +#| msgid "MATE Document Viewer" +msgid "MATE Document Previewer" +msgstr "MATE Dokumentu priekÅ”skatÄ«tÄjs" + +#: ../previewer/ev-previewer-window.c:95 ../shell/ev-window.c:2995 +msgid "Failed to print document" +msgstr "NeizdevÄs izdrukÄt dokumentu" + +#: ../previewer/ev-previewer-window.c:209 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "NeizdevÄs atrast izvÄlÄto printeri '%s'" + +#. Go menu +#: ../previewer/ev-previewer-window.c:253 ../shell/ev-window.c:5050 +msgid "_Previous Page" +msgstr "_IepriekÅ”Äjo lappusi" + +#: ../previewer/ev-previewer-window.c:254 ../shell/ev-window.c:5051 +msgid "Go to the previous page" +msgstr "PÄriet uz iepriekÅ”Äjo lappusi" + +#: ../previewer/ev-previewer-window.c:256 ../shell/ev-window.c:5053 +msgid "_Next Page" +msgstr "_NÄkamo lappusi" + +#: ../previewer/ev-previewer-window.c:257 ../shell/ev-window.c:5054 +msgid "Go to the next page" +msgstr "PÄriet uz nÄkamo lappusi" + +#: ../previewer/ev-previewer-window.c:260 ../shell/ev-window.c:5037 +msgid "Enlarge the document" +msgstr "PalielinÄt dokumentu" + +#: ../previewer/ev-previewer-window.c:263 ../shell/ev-window.c:5040 +msgid "Shrink the document" +msgstr "SamazinÄt dokumentu" + +#: ../previewer/ev-previewer-window.c:266 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "DrukÄt" + +#: ../previewer/ev-previewer-window.c:267 ../shell/ev-window.c:5008 +msgid "Print this document" +msgstr "DrukÄt Å”o dokumentu" + +#: ../previewer/ev-previewer-window.c:273 ../shell/ev-window.c:5152 +msgid "_Best Fit" +msgstr "La_bÄkÄ saderÄ«ba" + +#: ../previewer/ev-previewer-window.c:274 ../shell/ev-window.c:5153 +msgid "Make the current document fill the window" +msgstr "PanÄkt, lai dokuments aizpilda programmas logu" + +#: ../previewer/ev-previewer-window.c:276 ../shell/ev-window.c:5155 +msgid "Fit Page _Width" +msgstr "_Lappuses platumÄ" + +#: ../previewer/ev-previewer-window.c:277 ../shell/ev-window.c:5156 +msgid "Make the current document fill the window width" +msgstr "PielÄgot dokumenta izmÄru loga platumam" + +#: ../previewer/ev-previewer-window.c:460 ../shell/ev-window.c:5223 +msgid "Page" +msgstr "Lappuse" + +#: ../previewer/ev-previewer-window.c:461 ../shell/ev-window.c:5224 +msgid "Select Page" +msgstr "IzvÄlÄties lappusi" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokuments" + +#: ../properties/ev-properties-view.c:60 +#| msgid "<b>Title:</b>" +msgid "Title:" +msgstr "Nosaukums:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Vieta:" + +#: ../properties/ev-properties-view.c:62 +#| msgid "<b>Subject:</b>" +msgid "Subject:" +msgstr "TÄma:" + +#: ../properties/ev-properties-view.c:63 +#| msgid "<b>Author:</b>" +msgid "Author:" +msgstr "Autors:" + +#: ../properties/ev-properties-view.c:64 +#| msgid "<b>Keywords:</b>" +msgid "Keywords:" +msgstr "AtslÄgvÄrdi:" + +#: ../properties/ev-properties-view.c:65 +#| msgid "<b>Producer:</b>" +msgid "Producer:" +msgstr "RažotÄjs:" + +#: ../properties/ev-properties-view.c:66 +#| msgid "<b>Creator:</b>" +msgid "Creator:" +msgstr "VeidotÄjs:" + +#: ../properties/ev-properties-view.c:67 +#| msgid "<b>Created:</b>" +msgid "Created:" +msgstr "Izveidots:" + +#: ../properties/ev-properties-view.c:68 +#| msgid "<b>Modified:</b>" +msgid "Modified:" +msgstr "ModificÄts:" + +#: ../properties/ev-properties-view.c:69 +#| msgid "<b>Number of Pages:</b>" +msgid "Number of Pages:" +msgstr "LappuÅ”u skaits:" + +#: ../properties/ev-properties-view.c:70 +#| msgid "<b>Optimized:</b>" +msgid "Optimized:" +msgstr "OptimizÄts:" + +#: ../properties/ev-properties-view.c:71 +#| msgid "<b>Format:</b>" +msgid "Format:" +msgstr "FormÄts:" + +#: ../properties/ev-properties-view.c:72 +#| msgid "<b>Security:</b>" +msgid "Security:" +msgstr "DroŔība:" + +#: ../properties/ev-properties-view.c:73 +#| msgid "<b>Paper Size:</b>" +msgid "Paper Size:" +msgstr "PapÄ«ra izmÄrs:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Nekas" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284, c-format +#| msgid "%.0f x %.0f mm" +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:288, c-format +#| msgid "%.2f x %.2f in" +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f collas" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, portrets (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ainava (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d no %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "no %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "Gatavojas drukÄt..." + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "Pabeidz..." + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "DrukÄ lappusi %d no %d..." + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "Å is printeris neatbalsta drukÄÅ”anu." + +#: ../libview/ev-print-operation.c:1234 +#| msgid "Invalid zip file" +msgid "Invalid page selection" +msgstr "NederÄ«ga lapas izvÄle" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "BrÄ«dinÄjums" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "DrukÄjamo lappuÅ”u diapazonÄ nav lappuÅ”u" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "MÄrogoÅ”ana:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "SamazinÄt lÄ«dz drukÄÅ”anas apgabalam" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "PielÄgot drukÄÅ”anas apgabalam" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"MÄrogot dokumenta lapas, lai tÄs ietilptu printera lapÄ. IzvÄlieties vienu " +"no Ŕīm iespÄjÄm:\n" +"\n" +"ā¢ \"NedarÄ«t neko\": Lappuses netiks mÄrogotas.\n" +"\n" +"ā¢ \"SamazinÄt lÄ«dz drukÄÅ”anas apgabalam\": Dokumenta lappuses, kas ir " +"lielÄkas par drukÄjamo apgabalu, tiks samazinÄtas, lai tajÄ ietilptu.\n" +"\n" +"ā¢ \"PielÄgot drukÄÅ”anas apgabalam\": Dokumenta lappuses pÄc vajadzÄ«bas tiks " +"palielinÄtas vai samazinÄtas, lai atbilstu drukÄjamÄ apgabala izmÄriem.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "AutomÄtiski pagriezt un iecentrÄt" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"MainÄ«t printera lapu orientÄciju, lai tÄ atbilstu katras dokumenta lappuses " +"orientÄcijai. Dokumenta lappuse tiks novietota printera lapas centrÄ." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "IzvÄlÄties lapas izmÄru, izmantojot dokumenta lapu izmÄru" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Kad ieslÄgts, katra lappuse tiks drukÄta uz tÄda paÅ”a izmÄra papÄ«ra kÄ " +"dokumentÄ." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "LappuÅ”u apstrÄde" + +#: ../libview/ev-jobs.c:1434, c-format +#| msgid "Failed to print document" +msgid "Failed to print page %d: %s" +msgstr "NeizdevÄs izdrukÄt lappusi %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "RitinÄt augÅ”up" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "RitinÄt lejup" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "RitinÄt skatu augÅ”up" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "RitinÄt skatu lejup" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Dokumenta skats" + +#: ../libview/ev-view-presentation.c:669 +#| msgid "Go to page" +msgid "Jump to page:" +msgstr "Iet uz lappusi:" + +#: ../libview/ev-view-presentation.c:979 +#| msgid "End of presentation. Press Escape to exit." +msgid "End of presentation. Click to exit." +msgstr "PrezentÄcijas beigas. KlikŔķiniet, lai izietu." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "Iet uz pirmo lapu" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "Iet uz iepriekÅ”Äjo lapu" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "Iet uz nÄkamo lapu" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "Iet uz pÄdÄjo lapu" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "Iet uz lapu" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "MeklÄt" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "PÄriet uz lapu %s" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Iet uz %s failÄ ā%sā" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "Iet uz failu ā%sā" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "Palaist %s" + +#: ../libview/ev-view.c:3926 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +#| msgid "Loading..." +msgid "Loadingā¦" +msgstr "IelÄdÄ..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "MeklÄt:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5025 +msgid "Find Pre_vious" +msgstr "MeklÄt ie_priekÅ”Äjo" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Atrast meklÄjamÄs virknes iepriekÅ”Äjo parÄdÄ«Å”anos tekstÄ" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5023 +msgid "Find Ne_xt" +msgstr "MeklÄt nÄ_kamo" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Atrast meklÄjamÄs virknes nÄkamo parÄdÄ«Å”anos tekstÄ" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ReÄ£istr_jÅ«tÄ«gs" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "PÄrslÄgt meklÄÅ”anas lielo-mazo burtu jÅ«tÄ«bu" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Dokumenta %s parole" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "KonvertÄ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d no %d dokumentiem konvertÄti" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "KonvertÄ metadatus" + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"MainÄ«jies Evince metadatu formÄts, tÄdÄļ jÄveic datu migrÄcija. Ja atcelsiet " +"migrÄciju, metadatu uzglabÄÅ”ana vairs nestrÄdÄs." + +#: ../shell/ev-open-recent-action.c:72 +#| msgid "Open an existing document" +msgid "Open a recently used document" +msgstr "AtvÄrt nesen lietotu dokumentu" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Dokuments ir slÄgts. Lai to aplÅ«kotu, ir jÄievada pareizÄ parole." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "At_slÄgt dokumentu" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Ievadiet paroli" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "NepiecieÅ”ama parole" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokuments ā%sā ir slÄgts. Lai to atvÄrtu, jÄievada parole." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Parole:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "A_izmirst paroli nekavÄjoties" + +#: ../shell/ev-password-view.c:377 +#| msgid "Remember password for this session" +msgid "Remember password until you _log out" +msgstr "AtcerÄties paroli _lÄ«dz sesijas beigÄm" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "AtcerÄties _mūžīgi" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Parametri" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "VispÄrÄ«gs" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Fonti" + +#: ../shell/ev-properties-dialog.c:115 +#| msgid "Document Viewer" +msgid "Document License" +msgstr "Dokumenta licence" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Fonts" + +#: ../shell/ev-properties-fonts.c:162, c-format +#| msgid "Gathering font information... %3d%%" +msgid "Gathering font informationā¦ %3d%%" +msgstr "Apkopo fontu informÄciju... %3d%%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "LietoÅ”anas noteikumi" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "Teksta licence" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "VairÄk informÄcijas" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Piesaistnes" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "SlÄÅi" + +#: ../shell/ev-sidebar-links.c:335 +#| msgid "Print" +msgid "Printā¦" +msgstr "DrukÄt..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Saturs" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "SÄ«ktÄli" + +#: ../shell/ev-window.c:829 +#, c-format +msgid "Page %s ā %s" +msgstr "Lappuse %s ā %s" + +#: ../shell/ev-window.c:831, c-format +#| msgid "Pages" +msgid "Page %s" +msgstr "Lappuse %s" + +#: ../shell/ev-window.c:1275 +msgid "The document contains no pages" +msgstr "Å is dokuments nesatur lappuses" + +#: ../shell/ev-window.c:1278 +msgid "The document contains only empty pages" +msgstr "Å is dokuments satur tikai tukÅ”as lappuses" + +#: ../shell/ev-window.c:1472 ../shell/ev-window.c:1638 +msgid "Unable to open document" +msgstr "Neizdodas atvÄrt dokumentu" + +#: ../shell/ev-window.c:1609, c-format +#| msgid "Failed to load document ā%sā" +msgid "Loading document from ā%sā" +msgstr "IelÄdÄ dokumentu no ā%sā" + +#: ../shell/ev-window.c:1751 ../shell/ev-window.c:2028 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "LejupielÄdÄ dokumentu (%d%%)" + +#: ../shell/ev-window.c:1784 +#| msgid "Failed to load document ā%sā" +msgid "Failed to load remote file." +msgstr "NeizdevÄs ielÄdÄt failu no cita datora." + +#: ../shell/ev-window.c:1972, c-format +#| msgid "Reload the document" +msgid "Reloading document from %s" +msgstr "PÄrlÄdÄ dokumentu no %s" + +#: ../shell/ev-window.c:2004 +#| msgid "Failed to print document" +msgid "Failed to reload document." +msgstr "NeizdevÄs pÄrlÄdÄt dokumentu." + +#: ../shell/ev-window.c:2159 +msgid "Open Document" +msgstr "AtvÄrt dokumentu" + +#: ../shell/ev-window.c:2423, c-format +#| msgid "Shrink the document" +msgid "Saving document to %s" +msgstr "SaglabÄ dokumentu %s" + +#: ../shell/ev-window.c:2426 +#, c-format +msgid "Saving attachment to %s" +msgstr "SaglabÄ piesaistni %s" + +#: ../shell/ev-window.c:2429 +#, c-format +msgid "Saving image to %s" +msgstr "SaglabÄ attÄlu %s" + +#: ../shell/ev-window.c:2473 ../shell/ev-window.c:2573 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Failu neizdevÄs saglabÄt kÄ ā%sā." + +#: ../shell/ev-window.c:2504 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "AugÅ”upielÄdÄ dokumentu (%d%%)" + +#: ../shell/ev-window.c:2508 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "AugÅ”upielÄdÄ piesaistni (%d%%)" + +#: ../shell/ev-window.c:2512 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "AugÅ”upielÄdÄ attÄlu (%d%%)" + +#: ../shell/ev-window.c:2634 +msgid "Save a Copy" +msgstr "SaglabÄt kopiju" + +#: ../shell/ev-window.c:2939 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d uzdevums rindÄ" +msgstr[1] "%d uzdevumi rindÄ" +msgstr[2] "%d uzdevumi rindÄ" + +#: ../shell/ev-window.c:3052 +#, c-format +msgid "Printing job ā%sā" +msgstr "DrukÄ ā%sā" + +#: ../shell/ev-window.c:3255 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Vai pirms izieÅ”anas sagaidÄ«t, kamÄr izdrukÄts ā%sā?" + +#: ../shell/ev-window.c:3258 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "AktÄ«vi %d drukÄÅ”anas uzdevumi. Vai pirms izieÅ”anas sagaidÄ«t to beigas?" + +#: ../shell/ev-window.c:3270 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Ja aizvÄrsiet logu, rindÄ gaidoÅ”ie uzdevumi netiks izdrukÄti." + +#: ../shell/ev-window.c:3274 +msgid "Cancel _print and Close" +msgstr "_Atcelt drukÄÅ”anu un iziet" + +#: ../shell/ev-window.c:3278 +msgid "Close _after Printing" +msgstr "Iziet _pÄc drukÄÅ”anas" + +#: ../shell/ev-window.c:3836 +msgid "Toolbar Editor" +msgstr "RÄ«kjoslu redaktors" + +#: ../shell/ev-window.c:3968 +msgid "There was an error displaying help" +msgstr "GadÄ«jÄs kļūda, mÄÄ£inot parÄdÄ«t palÄ«dzÄ«bu" + +#: ../shell/ev-window.c:4179, c-format +#| msgid "" +#| "Document Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentu skatÄ«tÄjs\n" +"Lieto %s (%s)" + +#: ../shell/ev-window.c:4210 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ir brÄ«va programmatÅ«ra; jÅ«s varat to izplatÄ«t tÄlÄk un/vai modificÄt " +"saskaÅÄ ar GNU VispÄrÄjÄs publiskÄs licences noteikumiem, ko publicÄjis " +"BrÄ«vas programmatÅ«ras fonds; izmantojiet Licences versiju 2 vai (pÄc jÅ«su " +"izvÄles) jebkuru vÄlÄku versiju.\n" + +#: ../shell/ev-window.c:4214 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince tiek izplatÄ«ta cerÄ«bÄ, ka tÄ bÅ«s noderÄ«ga, taÄu BEZ JEBKÄDÄM " +"GARANTIJÄM; pat bez ŔķietamÄm KOMERCIÄLAS VÄRTÄŖBAS un PIEMÄROTÄŖBAS " +"KONKRÄTIEM NOLÅŖKIEM garantijÄm. SÄ«kÄku informÄciju meklÄjiet GNU VispÄrÄjÄ " +"publiskajÄ licencÄ.\n" + +#: ../shell/ev-window.c:4218 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Jums vajadzÄja saÅemt GNU VispÄrÄjÄs publiskÄs licences kopiju kopÄ ar Å”o " +"programmu; ja jÅ«s to nesaÅÄmÄt, rakstiet uz BrÄ«vas programmatÅ«ras fondu, " +"Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA " +"02111-1307 USA\n" + +#: ../shell/ev-window.c:4243 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4246 +#| msgid "Ā© 1996-2007 The Evince authors" +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2010 Evince autori" + +#: ../shell/ev-window.c:4252 +msgid "translator-credits" +msgstr "" +"Raivis Dejus <orvils@gmail.com> " +"Anita Reitere <nitalynx@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4503 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d atrasts Å”ajÄ lapÄ" +msgstr[1] "%d atrasti Å”ajÄ lapÄ" +msgstr[2] "%d atrasti Å”ajÄ lapÄ" + +#: ../shell/ev-window.c:4511, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% vÄl jÄmeklÄ" + +#: ../shell/ev-window.c:4988 +msgid "_File" +msgstr "_Fails" + +#: ../shell/ev-window.c:4989 +msgid "_Edit" +msgstr "R_ediÄ£Ät" + +#: ../shell/ev-window.c:4990 +msgid "_View" +msgstr "_Skats" + +#: ../shell/ev-window.c:4991 +msgid "_Go" +msgstr "_Iet uz" + +#: ../shell/ev-window.c:4992 +msgid "_Help" +msgstr "_PalÄ«dzÄ«ba" + +#. File menu +#: ../shell/ev-window.c:4995 ../shell/ev-window.c:5263 +#| msgid "_Open..." +msgid "_Openā¦" +msgstr "At_vÄrt..." + +#: ../shell/ev-window.c:4996 ../shell/ev-window.c:5264 +msgid "Open an existing document" +msgstr "AtvÄrt esoÅ”u dokumentu" + +#: ../shell/ev-window.c:4998 +#| msgid "Open a _Copy" +msgid "Op_en a Copy" +msgstr "AtvÄrt _kopiju" + +#: ../shell/ev-window.c:4999 +msgid "Open a copy of the current document in a new window" +msgstr "AtvÄrt Ŕī dokumenta kopiju jaunÄ logÄ" + +#: ../shell/ev-window.c:5001 +#| msgid "Save a Copy" +msgid "_Save a Copyā¦" +msgstr "_SaglabÄt kopiju..." + +#: ../shell/ev-window.c:5002 +msgid "Save a copy of the current document" +msgstr "SaglabÄt Ŕī dokumenta kopiju" + +#: ../shell/ev-window.c:5004 +msgid "Page Set_upā¦" +msgstr "_Lapas iestatÄ«jumi" + +#: ../shell/ev-window.c:5005 +#| msgid "Setup the page settings for printing" +msgid "Set up the page settings for printing" +msgstr "NorÄdÄ«t lapas iestatÄ«jumus drukÄÅ”anai" + +#: ../shell/ev-window.c:5007 +#| msgid "Print" +msgid "_Printā¦" +msgstr "_DrukÄt..." + +#: ../shell/ev-window.c:5010 +msgid "P_roperties" +msgstr "Pa_rametri" + +#: ../shell/ev-window.c:5018 +msgid "Select _All" +msgstr "_IezÄ«mÄt visu" + +#: ../shell/ev-window.c:5020 +#| msgid "Find" +msgid "_Findā¦" +msgstr "_MeklÄt..." + +#: ../shell/ev-window.c:5021 +msgid "Find a word or phrase in the document" +msgstr "MeklÄt dokumentÄ kÄdu vÄrdu vai frÄzi" + +#: ../shell/ev-window.c:5027 +msgid "T_oolbar" +msgstr "RÄ«kj_osla" + +#: ../shell/ev-window.c:5029 +msgid "Rotate _Left" +msgstr "RotÄt pa k_reisi" + +#: ../shell/ev-window.c:5031 +msgid "Rotate _Right" +msgstr "RotÄt pa _labi" + +#: ../shell/ev-window.c:5042 +msgid "_Reload" +msgstr "PÄ_rlÄdÄt" + +#: ../shell/ev-window.c:5043 +msgid "Reload the document" +msgstr "PÄrlÄdÄt dokumentu" + +#: ../shell/ev-window.c:5046 +msgid "Auto_scroll" +msgstr "AutoritinÄ_t" + +#: ../shell/ev-window.c:5056 +msgid "_First Page" +msgstr "_Pirmo lappusi" + +#: ../shell/ev-window.c:5057 +msgid "Go to the first page" +msgstr "PÄriet uz pirmo lappusi" + +#: ../shell/ev-window.c:5059 +msgid "_Last Page" +msgstr "PÄdÄjo _lappusi" + +#: ../shell/ev-window.c:5060 +msgid "Go to the last page" +msgstr "PÄriet uz pÄdÄjo lappusi" + +#. Help menu +#: ../shell/ev-window.c:5064 +msgid "_Contents" +msgstr "_Satura rÄdÄ«tÄjs" + +#: ../shell/ev-window.c:5067 +msgid "_About" +msgstr "P_ar" + +#. Toolbar-only +#: ../shell/ev-window.c:5071 +msgid "Leave Fullscreen" +msgstr "Pamest pilnekrÄnu" + +#: ../shell/ev-window.c:5072 +msgid "Leave fullscreen mode" +msgstr "Pamest pilnekrÄna režīmu" + +#: ../shell/ev-window.c:5074 +#| msgid "_Presentation" +msgid "Start Presentation" +msgstr "SÄkt prezentÄciju" + +#: ../shell/ev-window.c:5075 +#| msgid "Run document as a presentation" +msgid "Start a presentation" +msgstr "Palaist prezentÄciju" + +#. View Menu +#: ../shell/ev-window.c:5134 +msgid "_Toolbar" +msgstr "RÄ«k_josla" + +#: ../shell/ev-window.c:5135 +msgid "Show or hide the toolbar" +msgstr "RÄdÄ«t vai slÄpt rÄ«kjoslu" + +#: ../shell/ev-window.c:5137 +msgid "Side _Pane" +msgstr "SÄnu _panelis" + +#: ../shell/ev-window.c:5138 +msgid "Show or hide the side pane" +msgstr "RÄdÄ«t vai slÄpt sÄnu paneli" + +#: ../shell/ev-window.c:5140 +msgid "_Continuous" +msgstr "_NepÄrtraukts" + +#: ../shell/ev-window.c:5141 +msgid "Show the entire document" +msgstr "RÄdÄ«t visu dokumentu" + +#: ../shell/ev-window.c:5143 +msgid "_Dual" +msgstr "_AtvÄrums" + +#: ../shell/ev-window.c:5144 +msgid "Show two pages at once" +msgstr "RÄdÄ«t divas lappuses vienlaikus" + +#: ../shell/ev-window.c:5146 +msgid "_Fullscreen" +msgstr "Pilne_krÄna" + +#: ../shell/ev-window.c:5147 +msgid "Expand the window to fill the screen" +msgstr "Izplest logu pa visu ekrÄnu" + +#: ../shell/ev-window.c:5149 +#| msgid "_Presentation" +msgid "Pre_sentation" +msgstr "Pre_zentÄcija" + +#: ../shell/ev-window.c:5150 +msgid "Run document as a presentation" +msgstr "AttÄlot Å”o dokumentu kÄ prezentÄciju" + +#: ../shell/ev-window.c:5158 +msgid "_Inverted Colors" +msgstr "_Apgrieztas krÄsas" + +#: ../shell/ev-window.c:5159 +msgid "Show page contents with the colors inverted" +msgstr "RÄdÄ«t lapas saturu pretÄjÄs krÄsÄs" + +#. Links +#: ../shell/ev-window.c:5167 +msgid "_Open Link" +msgstr "_AtvÄrt saiti" + +#: ../shell/ev-window.c:5169 +msgid "_Go To" +msgstr "PÄriet _uz" + +#: ../shell/ev-window.c:5171 +msgid "Open in New _Window" +msgstr "AtvÄrt jaunÄ _logÄ" + +#: ../shell/ev-window.c:5173 +msgid "_Copy Link Address" +msgstr "_KopÄt saites adresi" + +#: ../shell/ev-window.c:5175 +msgid "_Save Image Asā¦" +msgstr "_SaglabÄt attÄlu kÄ..." + +#: ../shell/ev-window.c:5177 +msgid "Copy _Image" +msgstr "KopÄt _attÄlu" + +#: ../shell/ev-window.c:5182 +#| msgid "Attachments" +msgid "_Open Attachment" +msgstr "_AtvÄrt piesaistni" + +#: ../shell/ev-window.c:5184 +#| msgid "Attachments" +msgid "_Save Attachment Asā¦" +msgstr "_SaglabÄt piesaistni kÄ..." + +#: ../shell/ev-window.c:5237 +msgid "Zoom" +msgstr "TÄlummaiÅa" + +#: ../shell/ev-window.c:5239 +msgid "Adjust the zoom level" +msgstr "NoregulÄt palielinÄjumu" + +#: ../shell/ev-window.c:5249 +msgid "Navigation" +msgstr "NavigÄcija" + +#: ../shell/ev-window.c:5251 +msgid "Back" +msgstr "Atpakaļ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5254 +msgid "Move across visited pages" +msgstr "PÄrvietoties pa aplÅ«kotajÄm lapÄm" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +msgid "Previous" +msgstr "IepriekÅ”ÄjÄ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5289 +msgid "Next" +msgstr "NÄkamÄ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5293 +msgid "Zoom In" +msgstr "PalielinÄt" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5297 +msgid "Zoom Out" +msgstr "SamazinÄt" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5305 +msgid "Fit Width" +msgstr "PiekÄrtot platumam" + +#: ../shell/ev-window.c:5466 ../shell/ev-window.c:5483 +msgid "Unable to launch external application." +msgstr "NeizdevÄs palaist ÄrÄjo lietotni." + +#: ../shell/ev-window.c:5540 +#| msgid "Unable to open attachment" +msgid "Unable to open external link" +msgstr "NeizdevÄs atvÄrt ÄrÄjo saiti" + +#: ../shell/ev-window.c:5707 +msgid "Couldn't find appropriate format to save image" +msgstr "NeizdevÄs atrast attÄla saglabÄÅ”anai piemÄrotu formÄtu" + +#: ../shell/ev-window.c:5749 +#| msgid "The attachment could not be saved." +msgid "The image could not be saved." +msgstr "NeizdevÄs saglabÄt attÄlu." + +#: ../shell/ev-window.c:5781 +#| msgid "Images" +msgid "Save Image" +msgstr "SaglabÄt attÄlu" + +#: ../shell/ev-window.c:5848 +msgid "Unable to open attachment" +msgstr "NeizdevÄs atvÄrt piesaistni" + +#: ../shell/ev-window.c:5901 +msgid "The attachment could not be saved." +msgstr "NeizdevÄs saglabÄt peisaistni." + +#: ../shell/ev-window.c:5946 +#| msgid "Attachments" +msgid "Save Attachment" +msgstr "SaglabÄt piesaistni" + +#: ../shell/ev-window-title.c:162, c-format +#| msgid "%s - Password Required" +msgid "%s ā Password Required" +msgstr "%s ā NepiecieÅ”ama parole" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "PÄc paplaÅ”inÄjuma" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "MATE Dokumentu skatÄ«tÄjs" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "AttÄlojamÄ dokumenta lappuse." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "LAPPUSE" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Palaist Evince pilnekrÄna režīmÄ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Palaist Evince prezentÄcijas režīmÄ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Palaist Evince kÄ pirmsskatÄ«tÄju" + +#: ../shell/main.c:82 +#| msgid "Find a word or phrase in the document" +msgid "The word or phrase to find in the document" +msgstr "VÄrds vai frÄze, ko meklÄt dokumentÄ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "VIRKNE" + +#: ../shell/main.c:86 +#| msgid "[FILE...]" +msgid "[FILEā¦]" +msgstr "[FAILS...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#| msgid "" +#| "Boolean options available, true enables thumbnailing and false disables " +#| "the creation of new thumbnails" +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"PieejamÄs iespÄjas: patiess aktivizÄ sÄ«ktÄloÅ”anu, nepatiess atslÄdz " +"sÄ«ktÄlu veidoÅ”anu" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "AktivizÄt PDF dokumentu sÄ«ktÄlu veidoÅ”anu" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF dokumentu sÄ«ktÄlu komanda" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#| msgid "" +#| "Valid command plus arguments for the PDF Document thumbnailer. See " +#| "caja thumbnailer documentation for more information." +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF sÄ«ktÄlu veidotÄja komanda ar argumentiem. Papildu informÄcijai " +"aplÅ«kojiet Caja sÄ«ktÄlu veidotÄja dokumentÄciju." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "NeapstrÄdÄts MIME tips: ā%sā" + +#~ msgid "Open ā%sā" +#~ msgstr "AtvÄrt ā%sā" + +#~ msgid "Empty" +#~ msgstr "TukÅ”s" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "Password Entry" +#~ msgstr "Paroles ievads" + +#~ msgid "Save password in keyring" +#~ msgstr "SaglabÄt paroles atslÄgu saiŔķī" + +#~ msgid "File not available" +#~ msgstr "Fails nav pieejams" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "VÄstule" + +#~ msgid "Tabloid" +#~ msgstr "TabloÄ«ds" + +#~ msgid "Ledger" +#~ msgstr "VirsgrÄmata" + +#~ msgid "Legal" +#~ msgstr "Juridisks" + +#~ msgid "Statement" +#~ msgstr "PaziÅojums" + +#~ msgid "Executive" +#~ msgstr "IzpildÄms" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Kvarta formÄts" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "No document loaded." +#~ msgstr "Neviens dokuments nav ielÄdÄts." + +#~ msgid "Broken pipe." +#~ msgstr "Lauzta lÄ«nija." + +#~ msgid "Interpreter failed." +#~ msgstr "Interpretatora kļūda." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Kļūda atkompresÄjot failu ā%sā:\n" + +#~ msgid "Cannot open file ā%sā.\n" +#~ msgstr "Nevar atvÄrt failu ā%sā.\n" + +#~ msgid "File is not readable." +#~ msgstr "Fails nav lasÄms." + +#~ msgid "Document loaded." +#~ msgstr "Dokuments ielÄdÄts." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "NeizdevÄs ielÄdÄt dokumentu ā%sā. Ghostscript interpretators netika " +#~ "atrasts ceļa mainÄ«gajÄ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "IekapsulÄts PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Search string" +#~ msgstr "MeklÄjamÄ virkne" + +#~ msgid "The name of the string to be found" +#~ msgstr "MeklÄjamÄs virknes nosaukums" + +#~ msgid "Case sensitive" +#~ msgstr "RakstzÄ«mju jÅ«tÄ«gs" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "PATIESS rakstzÄ«mjujÅ«tÄ«gai meklÄÅ”anai" + +#~ msgid "Highlight color" +#~ msgstr "IzgaismoÅ”anas krÄsa" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "KrÄsa kÄdÄ izgaismot visuas atrastÄs virknes" + +#~ msgid "Current color" +#~ msgstr "PaÅ”reizÄjÄ krÄsa" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "PaÅ”reizÄjÄ krÄsa kÄdÄ izgaismot visuas atrastÄs virknes" + +#~ msgid "Find Previous" +#~ msgstr "MeklÄt iepriekÅ”Äjo" + +#~ msgid "Find Next" +#~ msgstr "MeklÄt nÄkamo" + +#~ msgid "Incorrect password" +#~ msgstr "Nepareiza parole" + +#~ msgid "Print..." +#~ msgstr "DrukÄt..." + +#~ msgid "Couldn't create symlink ā%sā: %s" +#~ msgstr "Nevar izveidot simbolsaiti ā%sā: %s" + +#~ msgid "Cannot open a copy." +#~ msgstr "Nevar atvÄrt kopiju." + +#~ msgid "Generating PDF is not supported" +#~ msgstr "PDF Ä£enerÄÅ”ana nav tbalstÄ«ta" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "JÅ«s mÄÄ£inÄjÄt drukÄt izmantojot ā%sā dzini. Å ai programmai ir " +#~ "nepiecieÅ”ams PostScript printera dzinis." + +#~ msgid "_Save a Copy..." +#~ msgstr "_SaglabÄt kopiju..." + +#~ msgid "Print Set_up..." +#~ msgstr "DrukÄÅ”nas uz_stÄdÄ«jumi..." + +#~ msgid "_Print..." +#~ msgstr "_DrukÄt..." + +#~ msgid "_Find..." +#~ msgstr "_MeklÄt..." + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince dokumentu skatÄ«tÄjs" diff --git a/po/mai.po b/po/mai.po new file mode 100644 index 00000000..1e9a6f8b --- /dev/null +++ b/po/mai.po @@ -0,0 +1,1404 @@ +# translation of evince.HEAD.po to Maithili +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sangeeta Kumari <sangeeta09@gmail.com>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-03-14 20:12+0000\n" +"PO-Revision-Date: 2009-03-15 16:08+0530\n" +"Last-Translator: Sangeeta Kumari <sangeeta09@gmail.com>\n" +"Language-Team: Maithili <maithili.sf.net>\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\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:131 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¤ ą¤Øą¤ą¤¾ą¤Ø MIME ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/comics/comics-document.c:165 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:186 +msgid "File corrupted." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą¤°ą¤¾ą¤¬." + +#: ../backend/comics/comics-document.c:198 +msgid "No files in archive." +msgstr "" + +#: ../backend/comics/comics-document.c:230 +#, c-format +msgid "No images found in archive %s" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤ %s ą¤®ą„ ą¤ą„ą¤Øą„ ą¤ą¤æą¤¤ą„ą¤° ą¤Øą¤¹ą¤æ ą¤ą„ą¤ą¤²" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¤ą„ą¤®ą¤æą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤" + +#: ../backend/dvi/dvi-document.c:106 +msgid "DVI document has incorrect format" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ą¤®ą„ ą¤ą¤²ą¤¤ ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ " + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:706 +msgid "Yes" +msgstr "ą¤¹ą¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:709 +msgid "No" +msgstr "ą¤Øą¤¹ą¤æ" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "Type 1" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° 1" + +#: ../backend/pdf/ev-poppler.cc:785 +msgid "Type 1C" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° 1C" + +#: ../backend/pdf/ev-poppler.cc:787 +msgid "Type 3" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° 3" + +#: ../backend/pdf/ev-poppler.cc:789 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "Type 1 (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:793 +msgid "Type 1C (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:795 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:797 +msgid "Unknown font type" +msgstr "ą¤ ą¤ą„ą¤ą¤¾ą¤¤ ą¤«ą¤¾ą¤ą¤ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/pdf/ev-poppler.cc:823 +msgid "No name" +msgstr "ą¤ą„ą¤Øą„ ą¤Øą¤¾ą¤® ą¤Øą¤¹ą¤æ" + +#: ../backend/pdf/ev-poppler.cc:831 +msgid "Embedded subset" +msgstr "ą¤ ą¤ą¤¤ą¤ą¤øą„ą¤„ą¤¾ą¤Ŗą¤æą¤¤ ą¤ą¤Ŗą¤øą¤®ą„ą¤ą„ą¤ą¤Æ" + +#: ../backend/pdf/ev-poppler.cc:833 +msgid "Embedded" +msgstr "ą¤ ą¤ą¤¤ą¤ą¤øą„ą¤„ą¤¾ą¤Ŗą¤æą¤¤" + +#: ../backend/pdf/ev-poppler.cc:835 +msgid "Not embedded" +msgstr "ą¤ ą¤ą¤¤ą¤ą¤øą„ą¤„ą¤¾ą¤Ŗą¤æą¤¤ ą¤Øą¤¹ą¤æ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤ø ą¤øą„ą¤²ą¤¾ą¤ą¤”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¤ą„ą¤Øą„ ą¤¤ą„ą¤°ą„ą¤ą¤æ ą¤Øą¤¹ą¤æ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Ŗą„ą¤¤ ą¤øą„ą¤®ą„ą¤¤ą¤æ ą¤Øą¤¹ą¤æ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ą¤ą¤æą¤Ŗ ą¤¹ą¤øą„ą¤¤ą¤¾ą¤ą„ą¤·ą¤° ą¤Øą¤¹ą¤æ ą¤Ŗą¤¾ą¤¬ą¤æ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ą¤ ą¤µą„ą¤§ ą¤ą¤æą¤Ŗ ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "ą¤®ą¤²ą„ą¤ą„ ą¤«ą¤¾ą¤ą¤² ą¤ą¤æą¤Ŗ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤Øą¤¹ą¤æ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą„ą¤¾ą¤ą¤² ą¤ą„ą¤²ą¤æ ą¤Øą¤¹ą¤æ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤øą¤ ą¤”ą¤¾ą¤ą¤¾ ą¤Øą¤¹ą¤æ ą¤Ŗą¤¢ą¤¼ą¤æ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ą¤ą¤æą¤Ŗ ą¤ ą¤ą¤æą¤²ą„ą¤ą¤®ą„ ą¤«ą¤¾ą¤ą¤² ą¤Øą¤¹ą¤æ ą¤Ŗą¤¾ą¤¬ą¤æ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¤ ą¤ą„ą¤ą¤¾ą¤¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "'%s' ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤²ą„ą¤” ą¤ą¤°ą¤¬ą¤®ą„ ą¤µą¤æą¤«ą¤²" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą¤æ ą¤øą¤¹ą„ą¤ ą¤øą¤ą¤²: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą¤æ ą¤ą„ą¤²ą¤æ ą¤øą¤ą¤²: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤ ā%sā ą¤Øą¤¹ą¤æ ą¤ą„ą¤²ą¤æ ą¤øą¤ą¤²" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¤øą¤¬ą¤¹ą¤æ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¤øą¤¬ą¤¹ą¤æ ą¤«ą¤¼ą¤¾ą¤ą¤²ą¤øą¤" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "ą¤ą¤Øą„ą¤ą„ą¤ ą¤ą¤°ą„ (_n)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "ą¤ ą¤Øą¤¾ą¤® ą¤°ą„ą¤Ŗą„ą¤ ą¤ą„ą¤”ą¤¼ą„ (_a)" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "ą¤Ŗą„ą¤°ą¤Æą„ą¤ą„ą¤¤ą¤¾ ą¤' ą¤°ą„ą¤Ŗą„ą¤ ą¤ą„ą¤”ą¤¼ą„ (_s):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "ą¤Ŗą„ą¤°ą¤Æą„ą¤ą„ą¤¤ą¤¾ ą¤Øą¤¾ą¤® (_U):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "ą¤”ą„ą¤®ą„ą¤Ø (_D):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ (_P):" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¤¶ą„ą¤°ą„ ą¤' ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¤ą¤²ą¤¾ą¤¬ą„ą¤¬ą¤²ą¤¾ ą¤®ą¤¦ ą¤Øą¤¹ą¤æ ą¤ ą¤ą¤æ " + +#: ../cut-n-paste/smclient/eggsmclient.c:224 +msgid "Disable connection to session manager" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤ą¤øą¤ ą¤øą¤ą¤Ŗą¤°ą„ą¤ ą¤°ą¤¦ ą¤ą¤°ą„" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "FILE" +msgstr "ą¤«ą¤¾ą¤ą¤²" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "Specify session management ID" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤Ø ą¤ą¤ą¤”ą„ ą¤Øą¤æą¤°ą„ą¤¦ą¤æą¤·ą„ą¤ ą¤ą¤°ą„" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:244 +msgid "Session management options:" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:245 +msgid "Show session management options" +msgstr "ą¤øą¤¤ą„ą¤° ą¤Ŗą„ą¤°ą¤¬ą¤ą¤§ą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗ ą¤¦ą„ą¤ą¤¾ą¤¬ą„" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:918 +#, c-format +msgid "Show ā_%sā" +msgstr "ą¤¦ą„ą¤ą¤¾ą¤¬ą„ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1381 +msgid "_Move on Toolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤Ŗą¤° ą¤²ą¤ ą¤ą¤¾ą¤ (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1382 +msgid "Move the selected item on the toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤®ą¤¦ą¤ą„ą¤ ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ą¤®ą„ ą¤ą¤øą¤ą¤¾ą¤¬ą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1383 +msgid "_Remove from Toolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤øą¤ą¤®ą„ą¤ą¤¾ą¤¬ą„ (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1384 +msgid "Remove the selected item from the toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤®ą¤¦ą¤ą„ą¤ ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤øą¤ ą¤¹ą¤ą¤¾ą¤¬ą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1385 +msgid "_Delete Toolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ą¤®ą„ą¤ą¤¾ą¤¬ą„ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1386 +msgid "Remove the selected toolbar" +msgstr "ą¤ą¤Æą¤Øą¤æą¤¤ ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤¹ą¤ą¤¾ą¤¬ą„" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¤µą¤æą¤ą¤¾ą¤ą¤" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ ą¤®ą„ą¤”ą¤®ą„ ą¤ą¤²ą¤æ ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5296 +msgid "Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą¤ą¤”ą¤¼ą¤¾ą¤ą¤øą¤ ą¤«ą¤æą¤ ą¤ą¤°ą„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4274 +#: ../shell/ev-window-title.c:149 +#, c-format +msgid "Document Viewer" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą¤¬ą¤¹ą„ą¤²ą¤Ŗą„ą¤·ą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤¦ą„ą¤ą„" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤Ŗą¤° ą¤²ą¤æą¤ą„" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤ ą¤§ą„ą¤Æą¤¾ą¤°ą„ą¤¹ą¤æą¤¤ ą¤ą¤°ą„, ą¤ą¤¾ą¤Ŗą„ ą¤ą¤°ą„ ą¤ ą¤„ą¤µą¤¾ ą¤ą¤¾ą¤Ŗą„ ą¤' ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤' ą¤ą¤¹ą¤æą¤Øą¤¾." + +#: ../properties/ev-properties-main.c:113 +msgid "Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "ą¤¶ą„ą¤°ą„ą¤·ą¤:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "ą¤øą„ą¤„ą¤¾ą¤Øą¤" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "ą¤µą¤æą¤·ą¤Æ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "ą¤²ą„ą¤ą¤:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "ą¤¬ą„ą¤ą¤¶ą¤¬ą„ą¤¦:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "ą¤¬ą¤Øą¤ą¤²ą¤:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤§ą¤æą¤¤ą¤" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤øą¤ą¤ ą¤øą¤ą¤ą„ą¤Æą¤¾:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "ą¤Ŗą„ą¤°ą¤¾ą¤°ą„ą¤Ŗ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "ą¤ą¤æą¤ą„ ą¤Øą¤¹ą¤æ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¤Ŗą„ą¤ą„ą¤°ą„ą¤ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¤²ą„ą¤ą¤”ą¤øą„ą¤ą„ą¤Ŗ (%s)" + +#: ../libview/ev-jobs.c:949 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ ą¤Ŗ" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤”ą¤¾ą¤ą¤Ø" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¦ą„ą¤¶ą„ą¤Æ ą¤ą¤Ŗą„ą¤Ŗą¤°" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤¦ą„ą¤¶ą„ą¤Æ ą¤Øą„ą¤ą„ą¤ą¤¾ą¤" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../libview/ev-view.c:1417 +msgid "Go to first page" +msgstr "ą¤Ŗą„ą¤°ą¤„ą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1419 +msgid "Go to previous page" +msgstr "ą¤Ŗą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1421 +msgid "Go to next page" +msgstr "ą¤ ą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą„ ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1423 +msgid "Go to last page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1425 +msgid "Go to page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1427 +msgid "Find" +msgstr "ą¤ą„ą¤ą„" + +#: ../libview/ev-view.c:1455 +#, c-format +msgid "Go to page %s" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ %s ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1461 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ą¤®ą„ ā%sā ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1464 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../libview/ev-view.c:1472 +#, c-format +msgid "Launch %s" +msgstr "%s ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą„" + +#: ../libview/ev-view.c:2387 +msgid "End of presentation. Press Escape to exit." +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤' ą¤ ą¤ą¤¤. ą¤¬ą¤¾ą¤¹ą¤° ą¤Øą¤æą¤ą¤²ą¤¬ ą¤'ą¤²ą„ą¤² Escape ą¤¦ą¤¾ą¤¬ą„" + +#: ../libview/ev-view.c:3280 +msgid "Jump to page:" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤:" + +#: ../libview/ev-view.c:3543 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "ą¤²ą„ą¤” ą¤ą¤ ą¤°ą¤¹ą¤²..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤ą„ą¤ą„" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "ą¤Ŗą¤¾ą¤ą¤² ą¤ą¤¾ą¤ą¤¬ą¤²ą¤¾ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤' ą¤Øą¤¾ą¤®" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "ą¤øą„ą¤„ą¤æą¤¤ą¤æą¤ ą¤Ŗą„ą¤°ą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤²" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "ą¤øą¤¹ą„ ą¤ą¤ą¤ą¤¾ ą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² ą¤ą„ą¤ą¤¬ą¤¾ą¤ ą¤²ą„ą¤²" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "ą¤°ą¤ą¤ ą¤ą¤ą¤¾ą¤°ą„" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "ą¤øą¤¬ą¤¹ą¤æ ą¤®ą„ą¤ ą¤'ą¤²ą„ą¤² ą¤ą¤ą¤¾ą¤° ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤®ą„ą¤ ą¤'ą¤²ą„ą¤² ą¤ą¤ą¤¾ą¤°ą¤² ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¤ą„ą¤ą„:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5030 +msgid "Find Pre_vious" +msgstr "ą¤Ŗą¤ą¤æą¤²ą¤¾ ą¤ą„ą¤ą„ (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¤ą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤' ą¤Ŗą¤ą¤æą¤²ą¤¾ ą¤ą¤Ŗą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤ą„ą¤ą„" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5028 +msgid "Find Ne_xt" +msgstr "ą¤ ą¤ą¤æą¤²ą¤¾ ą¤ą„ą¤ą„ (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¤ą„ą¤ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ ą¤' ą¤ ą¤ą¤æą¤²ą¤¾ ą¤ą¤Ŗą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤ą„ą¤ą„" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤' ą¤Ŗą„ą¤°ą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¤øą„ą¤„ą¤æą¤¤ą¤æ ą¤øą¤ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² ą¤ą„ą¤ ą¤ą„ą¤ą¤² ą¤ą¤°ą„" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤'ą¤²ą„ą¤² ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d %d ą¤')" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "%d ą¤'" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤¤ą¤¾ą¤²ą¤¾ą¤¬ą¤Øą„ą¤Ø ą¤ ą¤ą¤æ ą¤ą¤ą¤° ą¤øą¤¹ą„ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą¤¾ą¤ą¤æą¤² ą¤ą¤ ą¤Ŗą¤¢ą¤¼ą¤² ą¤ą¤¾ą¤ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą„ą¤²ą„ (_U)" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą¤¾ą¤ą¤æą¤² ą¤ą¤°ą„" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤°ą„ą¤°ą„" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ā%sā ą¤¤ą¤¾ą¤²ą¤¾ą¤¬ą¤Øą„ą¤Ø ą¤ ą¤ą¤æ ą¤ą¤ą¤° ą¤ą„ą¤²ą¤² ą¤ą¤ą¤¬ą¤¾ą¤' ą¤Ŗą¤¹ą¤æą¤Øą„ ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤¾ą¤¹ą„ą¤¤ ą¤ ą¤ą¤æ." + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "" + +#. Initial state +#: ../shell/ev-print-operation.c:318 +msgid "Preparing to print ..." +msgstr "" + +#: ../shell/ev-print-operation.c:320 +msgid "Finishing..." +msgstr "ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤ ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ..." + +#: ../shell/ev-print-operation.c:322 +#, c-format +msgid "Printing page %d of %d..." +msgstr "%d ą¤ą„ą¤ ą¤ą¤¾ą¤Ŗą¤æ ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ %d ą¤Ŗą„ą¤ ą¤øą¤..." + +#: ../shell/ev-print-operation.c:1010 +msgid "Printing is not supported on this printer." +msgstr "ą¤ą¤¹ą¤æ ą¤®ą„ą¤¦ą„ą¤°ą¤ ą¤Ŗą¤° ą¤ą¤Ŗą¤¾ą¤ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤Øą¤¹ą¤æ ą¤ ą¤ą¤æ." + +#: ../shell/ev-print-operation.c:1136 ../shell/ev-window.c:5081 +msgid "Print" +msgstr "ą¤ą¤Ŗą¤¾ą¤" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "ą¤ą„ą¤£" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "ą¤øą¤¾ą¤®ą¤¾ą¤Øą„ą¤Æ" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¤«ą¤¼ą„ą¤Øą„ą¤" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą¤«ą¤¾ą¤ą¤ ą¤øą„ą¤ą¤Øą¤¾ ą¤Ŗą¤¾ą¤¬ą¤æ ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "ą¤Ŗą¤°ą¤¤ą¤øą¤" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "ą¤ą¤¾ą¤Ŗą„..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "ą¤øą„ą¤ą„" + +#: ../shell/ev-sidebar-thumbnails.c:751 +msgid "Thumbnails" +msgstr "ą¤²ą¤ą„ ą¤ą¤æą¤¤ą„ą¤°" + +#: ../shell/ev-window.c:843 +#, c-format +msgid "Page %s - %s" +msgstr "" + +#: ../shell/ev-window.c:845 +#, c-format +msgid "Page %s" +msgstr "" + +#: ../shell/ev-window.c:1267 +msgid "The document contains no pages" +msgstr "" + +#: ../shell/ev-window.c:1491 ../shell/ev-window.c:1639 +msgid "Unable to open document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą„ą¤²ą¤¬ą¤¾ą¤®ą„ ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:1613 +#, c-format +msgid "Loading document from %s" +msgstr "" + +#: ../shell/ev-window.c:1751 ../shell/ev-window.c:1944 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:1890 +#, c-format +msgid "Reloading document from %s" +msgstr "" + +#: ../shell/ev-window.c:1923 +msgid "Failed to reload document." +msgstr "" + +#: ../shell/ev-window.c:2072 +msgid "Open Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą„ą¤²ą„" + +#: ../shell/ev-window.c:2133 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ā%sā ą¤øą¤¾ą¤ą¤ą„ą¤¤ą¤æą¤ ą¤²ą¤æą¤ą¤ ą¤Øą¤¹ą¤æ ą¤Ŗą¤¾ą¤¬ą¤æ ą¤øą¤ą¤²: %s" + +#: ../shell/ev-window.c:2162 +msgid "Cannot open a copy." +msgstr "ą¤ą„ą¤Ŗą„ ą¤ą„ą¤²ą¤æ ą¤Øą¤¹ą¤æ ą¤øą¤ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../shell/ev-window.c:2402 +#, c-format +msgid "Saving document to %s" +msgstr "" + +#: ../shell/ev-window.c:2405 +#, c-format +msgid "Saving attachment to %s" +msgstr "" + +#: ../shell/ev-window.c:2408 +#, c-format +msgid "Saving image to %s" +msgstr "" + +#: ../shell/ev-window.c:2453 ../shell/ev-window.c:2550 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą„ą¤ ā%sā ą¤°ą„ą¤Ŗą¤®ą„ ą¤øą¤¹ą„ą¤ą¤² ą¤Øą¤¹ą¤æ ą¤ą¤¾ą¤ ą¤øą¤ą¤²." + +#: ../shell/ev-window.c:2481 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2485 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2489 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2596 +msgid "Save a Copy" +msgstr "ą¤ą¤ą¤ą¤¾ ą¤ą¤¾ą¤Ŗą„ ą¤øą¤¹ą„ą¤ą„" + +#: ../shell/ev-window.c:2799 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-window.c:2855 ../shell/ev-window.c:3965 +msgid "Failed to print document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą¤¾ą¤Ŗą¤¬ą¤®ą„ ą¤µą¤æą¤«ą¤²" + +#: ../shell/ev-window.c:2912 +#, c-format +msgid "Printing job ā%sā" +msgstr "" + +#: ../shell/ev-window.c:3109 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3124 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3128 +msgid "Cancel _print and Close" +msgstr "" + +#: ../shell/ev-window.c:3132 +msgid "Close _after Printing" +msgstr "" + +#: ../shell/ev-window.c:3735 +msgid "Toolbar Editor" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤" + +#: ../shell/ev-window.c:3867 +msgid "There was an error displaying help" +msgstr "" + +#: ../shell/ev-window.c:4270 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤.\n" +"ą¤Ŗą¤¾ą¤Ŗą„ą¤²ą¤° %s (%s) ą¤' ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤ą¤ ą¤°ą¤¹ą¤² ą¤ ą¤ą¤æ" + +#: ../shell/ev-window.c:4298 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ą¤«ą„ą¤°ą„ ą¤øą„ą¤«ą„ą¤ą¤µą„ą¤Æą¤° ą¤ ą¤ą¤æ; ą¤ ą¤¹ą¤¾ą¤ ą¤ą¤ą¤°ą¤¾ ą¤Ŗą„ą¤Øą¤°ą„ą¤µą¤æą¤¤ą¤°ą¤æą¤¤ ą¤ą¤ ą¤øą¤ą„ą¤¤ ą¤ą„ ą¤ą¤ą¤°/ą¤ ą¤„ą¤µą¤¾" +"ą¤ą¤ą¤°ą¤¾ GNU ą¤ą¤Øą¤°ą¤² ą¤Ŗą¤¬ą„ą¤²ą¤æą¤ ą¤²ą¤¾ą¤ą¤øą„ą¤ą¤ø ą¤' ą¤¶ą¤°ą„ą¤¤ ą¤' ą¤ ą¤§ą„ą¤Ø ą¤°ą„ą¤Ŗą¤¾ą¤ą¤¤ą¤°ą¤æą¤¤ ą¤ą¤ ą¤øą¤ą„ą¤¤ ą¤ą„" +"ą¤ą¤¹ą¤æą¤Øą¤¾ ą¤ą„ ą¤«ą„ą¤°ą„ ą¤øą„ą¤«ą„ą¤ą¤µą„ą¤Æą¤° ą¤«ą¤¾ą¤ą¤ą¤”ą„ą¤¶ą¤Ø ą¤' ą¤¦ą„ą¤µą¤¾ą¤°ą¤¾ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤¶ą¤æą¤¤ ą¤ą¤ą¤² ą¤ą„ą¤² ą¤ ą¤ą¤æ; ą¤ ą¤„ą¤µą¤¾ ą¤¤ą¤ ą¤²ą¤¾ą¤ą¤øą„ą¤ą¤ø ą¤' ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ 2" +"ą¤ ą¤„ą¤µą¤¾ ą¤ą„ą¤Øą„ ą¤¬ą¤¾ą¤¦ą¤¬ą¤²ą¤¾ ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ (ą¤ ą¤¹ą¤¾ą¤ą¤ ą¤µą¤æą¤ą¤²ą„ą¤Ŗ ą¤ ą¤Øą„ą¤øą¤¾ą¤°).\n" + +#: ../shell/ev-window.c:4302 +msgid "" +"Evince 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.\n" +msgstr "Evince ą¤ą„ą¤ ą¤ą¤¹ą¤æ ą¤ą¤¶ą¤¾ ą¤øą¤ ą¤µą¤æą¤¤ą¤°ą¤æą¤¤ ą¤ą¤ą¤² ą¤ą„ą¤² ą¤ ą¤ą¤æ ą¤ą„ ą¤ ą¤ą¤Ŗą¤Æą„ą¤ą„ ą¤¹ą¤ą¤¤ą¤¾ą¤¹, ą¤®ą„ą¤¦ą¤¾ ą¤¬ą¤æą¤Øą„ ą¤ą„ą¤Øą„ ą¤µą¤¾ą¤°ą¤ą¤ą„ ą¤'; ą¤ą¤¤ą¤Æ ą¤¤ą¤ ą¤ą„ ą¤¬ą¤æą¤Øą„ ą¤ą„ą¤Øą„ ą¤®ą¤°ą„ą¤ą„ą¤ą¤ą„ą¤ą¤ą¤æą¤¬ą¤æą¤²ą¤æą¤ą„ ą¤ ą¤„ą¤µą¤¾ ą¤ą¤¾ą¤ø ą¤ą¤¦ą„ą¤¦ą„ą¤¶ą„ą¤Æ ą¤'ą¤²ą„ą¤² ą¤«ą¤æą¤ą¤Øą„ą¤øą¤ ą¤µą¤¾ą¤°ą¤ą¤ą„ ą¤'. GNU ą¤ą¤Øą¤°ą¤² ą¤Ŗą¤¬ą„ą¤²ą¤æą¤ ą¤²ą¤¾ą¤ą¤øą„ą¤ą¤øą¤ą„ą¤ ą¤¬ą„ą¤øą„ ą¤µą¤æą¤øą„ą¤¤ą¤¾ą¤° ą¤'ą¤²ą„ą¤² ą¤¦ą„ą¤ą„.\n" + +#: ../shell/ev-window.c:4306 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"ą¤ ą¤¹ą¤¾ą¤ą¤ GNU ą¤ą¤Øą¤°ą¤² ą¤Ŗą¤¬ą„ą¤²ą¤æą¤ ą¤²ą¤¾ą¤ą¤øą„ą¤ą¤øą¤ ą¤ą¤ą¤ą¤¾ ą¤ą¤¾ą¤Ŗą„ Evince ą¤' ą¤øą¤ą¤ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤ą¤Øą¤¾ą¤ ą¤ą¤¾ą¤¹ą„; ą¤ą¤ ą¤Øą¤¹ą¤æ, Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ą¤ą„ą¤ ą¤²ą¤æą¤ą„.\n" + +#. Manually set name and icon in win32 +#: ../shell/ev-window.c:4330 ../shell/main.c:382 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4333 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 Evince ą¤²ą„ą¤ą¤" + +#: ../shell/ev-window.c:4339 +msgid "translator-credits" +msgstr "ą¤øą¤ą¤ą„ą¤¤ą¤¾ ą¤ą„ą¤®ą¤¾ą¤°ą„ (sangeeta09@gmail.com)" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4557 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą¤ą¤¹ą¤æ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą„ą¤ą¤²" +msgstr[1] "%d ą¤ą¤¹ą¤æ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą„ą¤ą¤²" + +#: ../shell/ev-window.c:4565 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¤ą„ą¤ą¤¬ą¤¾ ą¤'ą¤²ą„ą¤² ą¤¶ą„ą¤·" + +#: ../shell/ev-window.c:4993 +msgid "_File" +msgstr "ą¤«ą¤¾ą¤ą¤² (_F)" + +#: ../shell/ev-window.c:4994 +msgid "_Edit" +msgstr "ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤Ø (_E)" + +#: ../shell/ev-window.c:4995 +msgid "_View" +msgstr "ą¤¦ą„ą¤ą„ (_V)" + +#: ../shell/ev-window.c:4996 +msgid "_Go" +msgstr "ą¤ą¤¾ą¤ (_G)" + +#: ../shell/ev-window.c:4997 +msgid "_Help" +msgstr "ą¤®ą¤¦ą„ą¤¦ą¤¤ą¤æ (_H)" + +#. File menu +#: ../shell/ev-window.c:5000 ../shell/ev-window.c:5179 +#: ../shell/ev-window.c:5258 +msgid "_Open..." +msgstr "ą¤ą„ą¤²ą„ (_O)..." + +#: ../shell/ev-window.c:5001 ../shell/ev-window.c:5259 +msgid "Open an existing document" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą„ą¤²ą„" + +#: ../shell/ev-window.c:5003 +msgid "Op_en a Copy" +msgstr "" + +#: ../shell/ev-window.c:5004 +msgid "Open a copy of the current document in a new window" +msgstr "ą¤Øą¤µą„ą¤Ø ą¤µą¤æą¤ą¤”ą„ą¤®ą„ ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤' ą¤ą„ą¤Ŗą„ą¤ą„ą¤ ą¤ą„ą¤²ą„" + +#: ../shell/ev-window.c:5006 ../shell/ev-window.c:5181 +msgid "_Save a Copy..." +msgstr "ą¤ą¤ą¤ą¤¾ ą¤ą¤¾ą¤Ŗą„ ą¤øą¤¹ą„ą¤ą„...(_S)" + +#: ../shell/ev-window.c:5007 +msgid "Save a copy of the current document" +msgstr "ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ą¤ ą¤ą¤¾ą¤Ŗą„ ą¤øą¤¹ą„ą¤ą„" + +#: ../shell/ev-window.c:5009 +msgid "Print Set_up..." +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤øą„ą¤ą¤ ą¤Ŗ... (_u)" + +#: ../shell/ev-window.c:5010 +msgid "Setup the page settings for printing" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤²ą„ą¤² ą¤Ŗą„ą¤·ą„ą¤ ą¤µą¤æą¤Øą„ą¤Æą¤¾ą¤ø ą¤øą„ą¤ą¤ ą¤Ŗ ą¤ą¤°ą„" + +#: ../shell/ev-window.c:5012 +msgid "_Print..." +msgstr "ą¤ą¤¾ą¤Ŗą„... (_P)" + +#: ../shell/ev-window.c:5013 ../shell/ev-window.c:5082 +msgid "Print this document" +msgstr "ą¤ą¤¹ą¤æ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ą¤ą„ą¤ ą¤ą¤¾ą¤Ŗą„" + +#: ../shell/ev-window.c:5015 +msgid "P_roperties" +msgstr "ą¤ą„ą¤£ (_r)" + +#: ../shell/ev-window.c:5023 +msgid "Select _All" +msgstr "ą¤øą¤¬ą¤¹ą¤æ ą¤ą„ą¤Øą„ (_A)" + +#: ../shell/ev-window.c:5025 +msgid "_Find..." +msgstr "ą¤ą„ą¤ą„ (_F)..." + +#: ../shell/ev-window.c:5026 +msgid "Find a word or phrase in the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ą¤®ą„ ą¤¶ą¤¬ą„ą¤¦ ą¤ ą¤„ą¤µą¤¾ ą¤®ą„ą¤¹ą¤¾ą¤µą¤°ą¤¾ ą¤ą„ą¤ą„" + +#: ../shell/ev-window.c:5032 +msgid "T_oolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ (_o)" + +#: ../shell/ev-window.c:5034 +msgid "Rotate _Left" +msgstr "ą¤ą„ą¤®ą¤¾ą¤ ą¤¬ą¤¾ą¤®ą¤¾ą¤ (_L)" + +#: ../shell/ev-window.c:5036 +msgid "Rotate _Right" +msgstr "ą¤ą„ą¤®ą¤¾ą¤ ą¤¦ą¤¹ą¤æą¤Øą„ą¤Øą¤¾ (_R)" + +#: ../shell/ev-window.c:5041 +msgid "Enlarge the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤ ą¤ą¤°ą„" + +#: ../shell/ev-window.c:5044 +msgid "Shrink the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą„ą¤ą¤ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5046 +msgid "_Reload" +msgstr "ą¤Ŗą„ą¤Øą¤ ą¤²ą„ą¤” ą¤ą¤°ą„ (_R)" + +#: ../shell/ev-window.c:5047 +msgid "Reload the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤Øą¤ ą¤²ą„ą¤”ą¤¼ ą¤ą¤°ą„" + +#: ../shell/ev-window.c:5050 +msgid "Auto_scroll" +msgstr "" + +#. Go menu +#: ../shell/ev-window.c:5054 +msgid "_Previous Page" +msgstr "ą¤Ŗą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ (_P)" + +#: ../shell/ev-window.c:5055 +msgid "Go to the previous page" +msgstr "ą¤Ŗą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../shell/ev-window.c:5057 +msgid "_Next Page" +msgstr "ą¤ ą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ (_N)" + +#: ../shell/ev-window.c:5058 +msgid "Go to the next page" +msgstr "ą¤ ą¤ą¤æą¤²ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../shell/ev-window.c:5060 +msgid "_First Page" +msgstr "ą¤Ŗą¤¹ą¤æą¤² ą¤Ŗą„ą¤·ą„ą¤ (_F)" + +#: ../shell/ev-window.c:5061 +msgid "Go to the first page" +msgstr "ą¤Ŗą„ą¤°ą¤„ą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#: ../shell/ev-window.c:5063 +msgid "_Last Page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ (_L)" + +#: ../shell/ev-window.c:5064 +msgid "Go to the last page" +msgstr "ą¤ ą¤ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą¤° ą¤ą¤¾ą¤" + +#. Help menu +#: ../shell/ev-window.c:5068 +msgid "_Contents" +msgstr "ą¤µą¤æą¤·ą¤Æ ą¤øą„ą¤ą„ (_C)" + +#: ../shell/ev-window.c:5071 +msgid "_About" +msgstr "ą¤' ą¤øą¤ą¤¬ą¤ą¤§ą¤®ą„ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5075 +msgid "Leave Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą„ą¤”ą¤¼ą„" + +#: ../shell/ev-window.c:5076 +msgid "Leave fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą„ą¤”ą¤¼ą„" + +#: ../shell/ev-window.c:5078 +msgid "Start Presentation" +msgstr "" + +#: ../shell/ev-window.c:5079 +msgid "Start a presentation" +msgstr "" + +#. View Menu +#: ../shell/ev-window.c:5135 +msgid "_Toolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ (_T)" + +#: ../shell/ev-window.c:5136 +msgid "Show or hide the toolbar" +msgstr "ą¤ ą¤ą¤ą¤¾ą¤°ą¤Ŗą¤ą„ą¤ą„ ą¤Øą„ą¤ą¤¾ą¤¬ą„ ą¤ ą¤„ą¤µą¤¾ ą¤¦ą„ą¤ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5138 +msgid "Side _Pane" +msgstr "ą¤ą¤æą¤Øą¤¾ą¤° ą¤' ą¤Ŗą¤ą„ą¤ą„ (_P)" + +#: ../shell/ev-window.c:5139 +msgid "Show or hide the side pane" +msgstr "ą¤ą¤æą¤Øą¤¾ą¤°ą¤ ą¤Ŗą¤ą„ą¤ą„ą¤ą„ą¤ ą¤¦ą„ą¤ą¤¾ą¤¬ą„ ą¤ ą¤Øą„ą¤ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5141 +msgid "_Continuous" +msgstr "ą¤Øą¤æą¤°ą¤Øą„ą¤¤ą¤° (_C)" + +#: ../shell/ev-window.c:5142 +msgid "Show the entire document" +msgstr "ą¤øą„ą¤ą¤øą„ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤¦ą„ą¤ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5144 +msgid "_Dual" +msgstr "ą¤¦ą„ą¤¹ą¤°ą¤¾ (_D)" + +#: ../shell/ev-window.c:5145 +msgid "Show two pages at once" +msgstr "ą¤ą¤ ą¤øą¤ą¤ ą¤¦ą„ą¤Øą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤¦ą„ą¤ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5147 +msgid "_Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø (_F)" + +#: ../shell/ev-window.c:5148 +msgid "Expand the window to fill the screen" +msgstr "ą¤µą¤æą¤ą¤”ą„ą¤ą„ą¤ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤ą¤°ą¤¬ ą¤'ą¤²ą„ą¤² ą¤Ŗą¤øą¤¾ą¤°ą„" + +#: ../shell/ev-window.c:5150 +msgid "Pre_sentation" +msgstr "" + +#: ../shell/ev-window.c:5151 +msgid "Run document as a presentation" +msgstr "ą¤ą¤ą¤ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤ą¤²ą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5153 +msgid "_Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ (_B)" + +#: ../shell/ev-window.c:5154 +msgid "Make the current document fill the window" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤ą¤°ą¤¬ ą¤'ą¤²ą„ą¤² ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤¬ą¤Øą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5156 +msgid "Fit Page _Width" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą¤ą¤”ą¤¼ą¤¾ą¤ ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤¬ą¤Øą¤¾ą¤¬ą„ (_W)" + +#: ../shell/ev-window.c:5157 +msgid "Make the current document fill the window width" +msgstr "ą¤µą¤æą¤ą¤”ą„ ą¤ą¤ą¤”ą¤¼ą¤¾ą¤ ą¤ą¤°ą¤¬ ą¤'ą¤²ą„ą¤² ą¤®ą„ą¤ą„ą¤¦ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤¬ą¤Øą¤¾ą¤¬ą„" + +#. Links +#: ../shell/ev-window.c:5164 +msgid "_Open Link" +msgstr "ą¤²ą¤æą¤ą¤ ą¤ą„ą¤²ą„ (_O)" + +#: ../shell/ev-window.c:5166 +msgid "_Go To" +msgstr "ą¤ą¤ą¤°ą¤¾ ą¤Ŗą¤° ą¤ą¤¾ą¤ (_G)" + +#: ../shell/ev-window.c:5168 +msgid "Open in New _Window" +msgstr "ą¤Øą¤µą„ą¤Ø ą¤µą¤æą¤ą¤”ą„ą¤®ą„ ą¤ą„ą¤²ą„ (_W)" + +#: ../shell/ev-window.c:5170 +msgid "_Copy Link Address" +msgstr "ą¤²ą¤æą¤ą¤ ą¤Ŗą¤¤ą¤¾ ą¤ą¤¾ą¤Ŗą„ ą¤ą¤°ą„ (_C)" + +#: ../shell/ev-window.c:5172 +msgid "_Save Image As..." +msgstr "ą¤¬ą¤æą¤ą¤¬ ą¤ą¤¹ą¤æ ą¤°ą„ą¤Ŗą¤®ą„ ą¤øą¤¹ą„ą¤ą„... (_S)" + +#: ../shell/ev-window.c:5174 +msgid "Copy _Image" +msgstr "" + +#: ../shell/ev-window.c:5220 +msgid "Page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:5221 +msgid "Select Page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ą¤Øą„" + +#: ../shell/ev-window.c:5232 +msgid "Zoom" +msgstr "ą¤ą¤¼ą„ą¤®" + +#: ../shell/ev-window.c:5234 +msgid "Adjust the zoom level" +msgstr "ą¤ą„ą¤® ą¤²ą„ą¤¬ą¤² ą¤øą¤®ą¤¾ą¤Æą„ą¤ą¤æą¤¤ ą¤ą¤°ą„" + +#: ../shell/ev-window.c:5244 +msgid "Navigation" +msgstr "ą¤Øą„ą¤µą¤æą¤ą„ą¤¶ą¤Ø" + +#: ../shell/ev-window.c:5246 +msgid "Back" +msgstr "ą¤Ŗą¤¾ą¤ą¤¾ą¤" + +#. translators: this is the history action +#: ../shell/ev-window.c:5249 +msgid "Move across visited pages" +msgstr "ą¤¦ą„ą¤ą¤² ą¤ą„ą¤² ą¤Ŗą„ą¤·ą„ą¤ ą¤' ą¤Ŗą¤¾ą¤° ą¤²ą¤ ą¤ą¤¾ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5279 +msgid "Previous" +msgstr "ą¤Ŗą¤ą¤æą¤²ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +msgid "Next" +msgstr "ą¤ ą¤ą¤æą¤²ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5288 +msgid "Zoom In" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5292 +msgid "Zoom Out" +msgstr "ą¤ą¤¼ą„ą¤® ą¤ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5300 +msgid "Fit Width" +msgstr "ą¤ą¤ą¤”ą¤¼ą¤¾ą¤ ą¤ ą¤Øą„ą¤°ą„ą¤Ŗ ą¤¬ą¤Øą¤¾ą¤¬ą„" + +#: ../shell/ev-window.c:5467 ../shell/ev-window.c:5485 +msgid "Unable to launch external application." +msgstr "" + +#: ../shell/ev-window.c:5528 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:5684 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:5723 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5755 +msgid "Save Image" +msgstr "ą¤ą¤æą¤¤ą„ą¤° ą¤øą¤¹ą„ą¤ą„" + +#: ../shell/ev-window.c:5817 +msgid "Unable to open attachment" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤ą„ą¤²ą¤¬ą¤®ą„ ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:5868 +msgid "The attachment could not be saved." +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤øą¤¹ą„ą¤ą¤² ą¤Øą¤¹ą¤æ ą¤ą¤¾ą¤ ą¤øą¤ą¤²." + +#: ../shell/ev-window.c:5913 +msgid "Save Attachment" +msgstr "" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¤ą„ą¤ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤µą¤¶ą„ą¤Æą¤" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ą¤µą¤æą¤øą„ą¤¤ą¤¾ą¤° ą¤øą¤" + +#: ../shell/main.c:59 ../shell/main.c:347 +msgid "MATE Document Viewer" +msgstr "MATE ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../shell/main.c:67 +msgid "The page of the document to display." +msgstr "ą¤¦ą„ą¤ą¤¾ą¤¬ą„ ą¤'ą¤²ą„ą¤² ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤' ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/main.c:67 +msgid "PAGE" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/main.c:68 +msgid "Run evince in fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤®ą„ą¤” ą¤®ą„ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤¬ą„" + +#: ../shell/main.c:69 +msgid "Run evince in presentation mode" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æą¤®ą„ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤¬ą„" + +#: ../shell/main.c:70 +msgid "Run evince as a previewer" +msgstr "ą¤Ŗą„ą¤°ą„ą¤µą¤¾ą¤µą¤²ą„ą¤ą¤Øą¤ą¤°ą„ą¤¤ą¤¾ ą¤' ą¤°ą„ą¤Ŗ ą¤®ą„ ą¤ą¤µą„ą¤ą¤ø ą¤ą¤²ą¤¾ą¤¬ą„" + +#: ../shell/main.c:71 +msgid "The word or phrase to find in the document" +msgstr "" + +#: ../shell/main.c:71 +msgid "STRING" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤" + +#: ../shell/main.c:75 +msgid "[FILE...]" +msgstr "[ą¤«ą¤¾ą¤ą¤²...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¤¬ą„ą¤²ą¤æą¤Æą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗ ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§, ą¤øą¤¹ą„ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤ą„ą¤ ą¤øą¤ą„ą¤°ą¤æą¤Æ ą¤ą¤°ą„ą¤¤ ą¤ ą¤ą¤æ ą¤ą¤ą¤° ą¤ą¤²ą¤¤ ą¤Øą¤µą„ą¤Ø ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤' ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ą¤ą„ą¤ " +"ą¤Øą¤æą¤·ą„ą¤ą„ą¤°ą¤æą¤Æ ą¤ą¤°ą„ą¤¤ ą¤ ą¤ą¤æ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¤' ą¤„ą¤ą¤¬ą¤Øą„ą¤² ą¤øą¤ą„ą¤·ą¤® ą¤ą¤°ą„" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤'ą¤²ą„ą¤² ą¤²ą¤ą„ ą¤ą¤æą¤¤ą„ą¤° ą¤ą¤®ą¤¾ą¤ą¤”" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤'ą¤²ą„ą¤² ą¤µą„ą¤§ ą¤ą¤®ą¤¾ą¤ą¤” ą¤' ą¤øą¤ą¤ ą¤¤ą¤°ą„ą¤. ą¤Øą„ą¤ą¤æą¤²ą¤ø ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤¦ą¤øą„ą¤¤ą¤¾ą¤¬ą„ą¤ą¤Øą¤ą„ą¤ ą¤¬ą„ą¤øą„" +"ą¤øą„ą¤ą¤Øą¤¾ ą¤'ą¤²ą„ą¤² ą¤¦ą„ą¤ą„." + diff --git a/po/mg.po b/po/mg.po new file mode 100644 index 00000000..0265ad17 --- /dev/null +++ b/po/mg.po @@ -0,0 +1,1379 @@ +# Malagasy translation of EVINCE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Fano Rajaonarisoa <fano@isvtec.com>, 2006 +# Thierry Randrianiriana <thierry@isvtec.com>, 2006-2007. +msgid "" +msgstr "" +"Project-Id-Version: EVINCE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-12-23 17:17+0000\n" +"PO-Revision-Date: 2007-12-28 19:32+0300\n" +"Last-Translator: Thierry Randrianiriana <randrianiriana@gmail.com>\n" +"Language-Team: MALAGASY <i18n-malagasy-mate@gna.org>\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" + +#: ../backend/comics/comics-document.c:150 +msgid "File corrupted." +msgstr "Rakitra simba." + +#: ../backend/comics/comics-document.c:186 +#, c-format +msgid "No images found in archive %s" +msgstr "Tsy nisy sary tao anatin'ny tahirin-tsoratra %s" + +#: ../backend/djvu/djvu-document.c:165 +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/dvi/dvi-document.c:98 +msgid "File not available" +msgstr "Tsy misy ilay rakitra" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Diso ny lamin'io tahirin-kevitra DVI io" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:675 +msgid "Yes" +msgstr "Eny" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:678 +msgid "No" +msgstr "Tsia" + +#: ../backend/pdf/ev-poppler.cc:751 +msgid "Type 1" +msgstr "Karazana 1" + +#: ../backend/pdf/ev-poppler.cc:753 +msgid "Type 1C" +msgstr "Karazana 1C" + +#: ../backend/pdf/ev-poppler.cc:755 +msgid "Type 3" +msgstr "Karazana 3" + +#: ../backend/pdf/ev-poppler.cc:757 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:759 +msgid "Type 1 (CID)" +msgstr "Karazana 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:761 +msgid "Type 1C (CID)" +msgstr "Karazana 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:763 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Unknown font type" +msgstr "Karazan'endri-tsoratra tsy fantatra" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "No name" +msgstr "Tsy misy anarana" + +#: ../backend/pdf/ev-poppler.cc:799 +msgid "Embedded subset" +msgstr "Zana-pitambarana voarakitra" + +#: ../backend/pdf/ev-poppler.cc:801 +msgid "Embedded" +msgstr "Voarakitra" + +#: ../backend/pdf/ev-poppler.cc:803 +msgid "Not embedded" +msgstr "Tsy voarakitra" + +#: ../backend/impress/zip.c:52 +msgid "No error" +msgstr "Tsy misy diso" + +#: ../backend/impress/zip.c:55 +msgid "Not enough memory" +msgstr "" + +#: ../backend/impress/zip.c:58 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:61 +msgid "Invalid zip file" +msgstr "" + +#: ../backend/impress/zip.c:64 +#, fuzzy +msgid "Multi file zips are not supported" +msgstr "Tsy raisina an-tĆ nana ny famoronana PDF" + +#: ../backend/impress/zip.c:67 +msgid "Cannot open the file" +msgstr "Tsy voasokatra ny rakitra" + +#: ../backend/impress/zip.c:70 +msgid "Cannot read data from file" +msgstr "Tsy voavaky ny karazan-daza avy amin'ny rakitra" + +#: ../backend/impress/zip.c:73 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:76 ../shell/ev-window.c:4830 +msgid "Unknown error" +msgstr "" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Taratasy" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "TabloĆ®d" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Bokim-bola" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Legal" + +#: ../backend/ps/gsdefaults.c:35 +#, fuzzy +msgid "Statement" +msgstr "Statement" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Executive" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../backend/ps/gsdefaults.c:45 +#, fuzzy +msgid "Folio" +msgstr "Folio" + +#: ../backend/ps/gsdefaults.c:46 +#, fuzzy +msgid "Quarto" +msgstr "Quarto" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../backend/ps/ps-document.c:172 ../backend/ps/ps-document.c:186 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "Tsy voasokatra ny rakitra ā%sā." + +#: ../backend/ps/ps-document.c:233 +#, c-format +msgid "" +"Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "" +"Tsy nahavita naka ny tahirin-kevitra ā%sā. Tsy hita tanatin'ny mpamadi-teny " +"Ghostscript" + +#: ../backend/ps/ps-document.c:250 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Tsy nahavita naka ny tahirin-kevitra ā%sā" + +#: ../backend/ps/ps-document.c:433 +msgid "Encapsulated PostScript" +msgstr "PostScript voafintina" + +#: ../backend/ps/ps-document.c:434 +msgid "PostScript" +msgstr "PostScript" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "Tsy nandeha ny mpandika teny." + +#: ../backend/impress/impress-document.c:294 +msgid "Remote files aren't supported" +msgstr "" + +#: ../backend/impress/impress-document.c:305 +msgid "Invalid document" +msgstr "Tahirin-kevitra diso" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:316 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Tsy voaraikitra ny mpanaraka ā%sā: %s" + +#: ../libdocument/ev-attachment.c:348 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Tsy voasokatra ny mpanaraka ā%sā: %s" + +#: ../libdocument/ev-attachment.c:381 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Tsy voasokatra ny mpanaraka ā%sā" + +#: ../libdocument/ev-document-factory.c:291 +#: ../libdocument/ev-document-factory.c:398 +msgid "Unknown MIME Type" +msgstr "Karazana MIME tsy fantatra" + +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "Karazana MIME tsy raisina an-tĆ nana: ā%sā" + +#: ../libdocument/ev-document-factory.c:439 +msgid "All Documents" +msgstr "Ny tahirin-kevitra rehetra" + +#: ../libdocument/ev-document-factory.c:447 +msgid "PostScript Documents" +msgstr "Tahirin-kevitra PostScript" + +#: ../libdocument/ev-document-factory.c:457 +msgid "PDF Documents" +msgstr "Tahirin-kevitra PDF" + +#: ../libdocument/ev-document-factory.c:467 ../shell/ev-window.c:5054 +msgid "Images" +msgstr "Sary" + +#: ../libdocument/ev-document-factory.c:477 +msgid "DVI Documents" +msgstr "Tahirin-kevitra DVI" + +#: ../libdocument/ev-document-factory.c:487 +msgid "Djvu Documents" +msgstr "Tahirin-kevitra Djvu" + +#: ../libdocument/ev-document-factory.c:497 +msgid "Comic Books" +msgstr "Boky mahatsikaiky" + +#: ../libdocument/ev-document-factory.c:507 +msgid "Impress Slides" +msgstr "Diapo Impress" + +#: ../libdocument/ev-document-factory.c:515 +msgid "All Files" +msgstr "Ny rakitra rehetra" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "Asehoy ny ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "_Ataovy eo amin'ny anjan'ny fitaovana" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "Mamindra ny singa voafaritra eo amin'ny anjam-pitaovana" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "_Esory teo amin'ny anjan'ny fitaovana" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "Manesotra ny singa voafaritra teo amin'ny anjam-pitaovana" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "_Esory io anjam-pitaovana io" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "Manesotra ny anjam-pitaovana voafaritra" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "Mpampisaraka" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +#, fuzzy +msgid "Running in presentation mode" +msgstr "Alefa toa fampisehoana ny evince" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4645 +msgid "Best Fit" +msgstr "Ny tena mety" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Ataovy mameno ny indran'ny pejy" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3770 +#: ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "Mpaneho tahirin-kevitra" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Maneho tahirin-kevitra maro pejy" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "Teny fanalahidy" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "Tadidio ny teny fanalahidiko amin'ity session ity" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "Mandraikitra ilay teny fanalahidy amin'ny rojo" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_Teny fanalahidy:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Mpanoratra:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Noforonina:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Mpamorona:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Lamina:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>Teny fanalahidy:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Novana:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Isan'ny pejy:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>Nomena aina:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>Haben'ny taratrasy:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>Mpamokatra:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>Fiarovana:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Anton-dresaka:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>Lohateny:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Dingano ireo fameperana amin'ilay tahirin-kevitra" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Dingano ireo fameperana amin'ilay tahirin-kevitra, toy ny famerana ny " +"fandikana na fanontana." + +#: ../properties/ev-properties-main.c:110 +msgid "Document" +msgstr "Tahirin-kevitra" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "Tsy misy" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "Hitady ilay laha-daza" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "Ny anaran'ilay laha-daza hokarohina" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "Manaja haben-tsoratra" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "MARINA raha karoka manaja haben-tsoratra" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "Loko fanasongadinana" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "Ny loko hanasongadinana ny teny hita rehetra" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "Ny loko izao" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "Ny loko hanasongadinana ny teny hita izao" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "Karohy:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "Aloha" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "Mikaroka izay mitovy amin'ilay laha-daza any aloha" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "Manaraka" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "Mikaroka izay mitovy amin'ilay laha-daza any aoriana" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "_Manaja haben-tsoratra" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "Mampihatra na tsia ny karoka manaja haben-tsoratra" + +#: ../shell/ev-jobs.c:652 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Tsy afaka namorona ny rakitra ā%sā: %s" + +#: ../shell/ev-open-recent-action.c:70 +#, fuzzy +msgid "Open a recently used document" +msgstr "Manokatra tahirin-kevitra" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d amin'ny %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "amin'ny %d" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "Mila teny fanalahidy" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Voageja ny tahirin-kevitra ā%sā ka mila teny fanalahidy izay vao mety " +"sokafana." + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "Soraty ny teny fanalahidy" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "Teny fanalahidin'ny tahirin-kevitra %s" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "Teny fanalahidy diso" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Voageja io tahirin-kevitra io ary tsy ho azo vakiana raha tsy manome ny teny " +"fanalahidy marina ianao." + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Hamaha ilay tahirin-kevitra" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Toetoetra" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "Ankapobe" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "endri-tsoratra" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "Endri-tsoratra" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Manangona ireo laza momba ny endri-tsoratra... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:670 +msgid "Attachments" +msgstr "Mpanaraka" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3537 +msgid "Loading..." +msgstr "Maka..." + +#: ../shell/ev-sidebar-links.c:342 +msgid "Print..." +msgstr "Hanonta..." + +#: ../shell/ev-sidebar-links.c:722 +msgid "Index" +msgstr "Fizahan-takila" + +#: ../shell/ev-sidebar-thumbnails.c:728 +msgid "Thumbnails" +msgstr "Sary madinika" + +#: ../shell/ev-view-accessible.c:40 +msgid "Scroll Up" +msgstr "Mampikorisa miakatra" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Down" +msgstr "Mampikorisa midina" + +#: ../shell/ev-view-accessible.c:47 +msgid "Scroll View Up" +msgstr "Mampikorisa ny seho miakatra" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Down" +msgstr "Mampikorisa ny seho midina" + +#: ../shell/ev-view-accessible.c:532 +msgid "Document View" +msgstr "Sehon'ilay tahirin-kevitra" + +#: ../shell/ev-view.c:1440 +msgid "Go to first page" +msgstr "Ho any amin'ny pejy voalohany" + +#: ../shell/ev-view.c:1442 +msgid "Go to previous page" +msgstr "Mankany any amin'ny pejy eo aloha" + +#: ../shell/ev-view.c:1444 +msgid "Go to next page" +msgstr "Mankany amin'ny pejy manaraka" + +#: ../shell/ev-view.c:1446 +msgid "Go to last page" +msgstr "Ho any amin'ny pejy manaraka" + +#: ../shell/ev-view.c:1448 +msgid "Go to page" +msgstr "Ho any amin'ny pejy" + +#: ../shell/ev-view.c:1450 +msgid "Find" +msgstr "Tadiavo" + +#: ../shell/ev-view.c:1478 +#, c-format +msgid "Go to page %s" +msgstr "Ho any amin'ny pejy %s" + +#: ../shell/ev-view.c:1484 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ho any amin'ny %s amin'ny rakitra ā%sā" + +#: ../shell/ev-view.c:1487 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ho any amin'ny ā%sā" + +#: ../shell/ev-view.c:1495 +#, c-format +msgid "Launch %s" +msgstr "Handefa ny %s" + +#: ../shell/ev-view.c:2444 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../shell/ev-view.c:3260 +msgid "Jump to page:" +msgstr "Ho any amin'ny pejy:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:4939 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "in-%d hita anatin'ity pejy ity" +msgstr[1] "in-%d hita anatin'ity pejy ity" + +#: ../shell/ev-view.c:4948 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% sisa tadiavina" + +#: ../shell/ev-window.c:781 +#, c-format +msgid "Page %s - %s" +msgstr "" + +#: ../shell/ev-window.c:783 +#, fuzzy, c-format +msgid "Page %s" +msgstr "Pejy" + +#: ../shell/ev-window.c:1421 +msgid "Unable to open document" +msgstr "Tsy nahasokatra ilay tahirin-kevitra" + +#: ../shell/ev-window.c:1617 +msgid "Open Document" +msgstr "Hanokatra ilay tahirin-kevitra" + +#: ../shell/ev-window.c:1687 +#, fuzzy, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "Tsy voaraikitra ny mpanaraka ā%sā: %s" + +#: ../shell/ev-window.c:1716 +#, fuzzy +msgid "Cannot open a copy." +msgstr "Tsy voasokatra ny rakitra ā%sā.\n" + +#: ../shell/ev-window.c:1961 ../shell/ev-window.c:2033 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Tsy voaraikitra ho ā%sā ilay rakitra." + +#: ../shell/ev-window.c:2082 +msgid "Save a Copy" +msgstr "Handraikitra dika mitovy" + +#: ../shell/ev-window.c:2214 ../shell/ev-window.c:3469 +msgid "Failed to print document" +msgstr "Tsy nahavita nanonta ilay tahirin-kevitra" + +#: ../shell/ev-window.c:2378 ../shell/ev-window.c:2568 +msgid "Printing is not supported on this printer." +msgstr "Tsy raisin'ity milina ity an-tĆ nana ny fanontana." + +#: ../shell/ev-window.c:2504 ../shell/ev-window.c:2619 +#: ../shell/ev-window.c:4440 +msgid "Print" +msgstr "Hanonta" + +#: ../shell/ev-window.c:2558 +msgid "Generating PDF is not supported" +msgstr "Tsy raisina an-tĆ nana ny famoronana PDF" + +#: ../shell/ev-window.c:2570 +#, c-format +msgid "" +"You were trying to print to a printer using the ā%sā driver. This program " +"requires a PostScript printer driver." +msgstr "" +"Nanandrana nanonta tamin'ny mpanonta-printy iray tamin'ny alalan'ny mpamily " +"ā%sā ianao. Mila mpamily PostScript io rindranasa io." + +#: ../shell/ev-window.c:2628 +msgid "Pages" +msgstr "Pejy" + +#: ../shell/ev-window.c:3244 +msgid "Toolbar Editor" +msgstr "Mpanova anjam-pitaovana" + +#: ../shell/ev-window.c:3766 +#, fuzzy, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Mpizaha rakitra PostScript sy PDF.\n" +"Mampiasa ny poppler %s (%s)" + +#: ../shell/ev-window.c:3794 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Rindran'asa maimaimpoana ny Evince. Azonao zaraina ary/na ovaina mifanaraka " +"amin'ireo fepetra voalaza anatin'ny fahazoan-dĆ lana ho an'ny besinimaro GNU " +"izay navoakan'ny Free Software Foundation io rindran'asa io; na ilay andiany " +"faha 2, na izay andiany taty afara (araka ny safidinao).\n" + +#: ../shell/ev-window.c:3798 +msgid "" +"Evince 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.\n" +msgstr "" +"Ny Gcalctool dia naparitaka noho ny fiheverana fa hisy ilĆ na azy izy io. Tsy " +"misy fiantohana mihitsy izy io, na dia ilay fiantohana (tsy voalaza an-" +"tsoratra) ny FAHALAVORARIANY HO AN'NY VAROTRA na ny FETEZANY ANAOVANA " +"ZAVATRA aza. Vakio ilay Fahazoan-dĆ lana ho an'ny besinimaro GNU hahalalanao " +"ny antsipiriany.\n" + +#: ../shell/ev-window.c:3802 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Tokony nahazo dika mitovin'ny Fahazoan-dĆ lana ho an'ny besinimaro GNU ianao " +"niaraka tamin'ny Gcalctool. Raha tsy nahazo izany ianao, dia manorata any " +"amin'ny Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " +"Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:3826 ../shell/main.c:344 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3829 +#, fuzzy +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2005 Ireo mpamolavola ny Evince " + +#: ../shell/ev-window.c:3835 +msgid "translator-credits" +msgstr "" +"Mpandrindra: Thierry Randrianiriana <thierry@isvtec.com>\n" +"Mpandika teny: Fanomezana Rajaonarisoa <fano@isvtec.com>" + +#: ../shell/ev-window.c:4352 +msgid "_File" +msgstr "_Rakitra" + +#: ../shell/ev-window.c:4353 +msgid "_Edit" +msgstr "_Fanovana" + +#: ../shell/ev-window.c:4354 +msgid "_View" +msgstr "_Seho" + +#: ../shell/ev-window.c:4355 +msgid "_Go" +msgstr "_Alefa" + +#: ../shell/ev-window.c:4356 +msgid "_Help" +msgstr "_Toro-lĆ lana" + +#. File menu +#: ../shell/ev-window.c:4359 ../shell/ev-window.c:4536 +#: ../shell/ev-window.c:4607 +msgid "_Open..." +msgstr "_Hanokatra..." + +#: ../shell/ev-window.c:4360 ../shell/ev-window.c:4608 +msgid "Open an existing document" +msgstr "Manokatra tahirin-kevitra" + +#: ../shell/ev-window.c:4362 +#, fuzzy +msgid "Op_en a Copy" +msgstr "Handraikitra dika mitovy" + +#: ../shell/ev-window.c:4363 +#, fuzzy +msgid "Open a copy of the current document in a new window" +msgstr "Mandraikitra dika mitovy amin'io tahirin-kevitra io" + +#: ../shell/ev-window.c:4365 ../shell/ev-window.c:4538 +msgid "_Save a Copy..." +msgstr "_Handraikitra dika mitovy..." + +#: ../shell/ev-window.c:4366 +msgid "Save a copy of the current document" +msgstr "Mandraikitra dika mitovy amin'io tahirin-kevitra io" + +#: ../shell/ev-window.c:4368 +#, fuzzy +msgid "Print Set_up..." +msgstr "Hanonta..." + +#: ../shell/ev-window.c:4369 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4371 +msgid "_Print..." +msgstr "_Hanonta..." + +#: ../shell/ev-window.c:4372 ../shell/ev-window.c:4441 +msgid "Print this document" +msgstr "Manonta ity tahirin-kevitra ity" + +#: ../shell/ev-window.c:4374 +msgid "P_roperties" +msgstr "_Toetoetra" + +#: ../shell/ev-window.c:4382 +msgid "Select _All" +msgstr "Farito izy _rehetra" + +#: ../shell/ev-window.c:4384 +msgid "_Find..." +msgstr "_Karohy..." + +#: ../shell/ev-window.c:4385 +msgid "Find a word or phrase in the document" +msgstr "Mikaroka teny na andian-teny ao anatin'ilay tahirin-kevitra" + +#: ../shell/ev-window.c:4387 +msgid "Find Ne_xt" +msgstr "_Manaraka" + +#: ../shell/ev-window.c:4389 +msgid "Find Pre_vious" +msgstr "_Aloha" + +#: ../shell/ev-window.c:4391 +msgid "T_oolbar" +msgstr "_Anjam-pitaovana" + +#: ../shell/ev-window.c:4393 +msgid "Rotate _Left" +msgstr "Ahodino _miankavia" + +#: ../shell/ev-window.c:4395 +msgid "Rotate _Right" +msgstr "Ahodino mianka_vanana" + +#: ../shell/ev-window.c:4400 +msgid "Enlarge the document" +msgstr "Alehibiazo ilay tahirin-kevitra" + +#: ../shell/ev-window.c:4403 +msgid "Shrink the document" +msgstr "Akelezo ilay tahirin-kevitra" + +#: ../shell/ev-window.c:4405 +msgid "_Reload" +msgstr "_Avereno aseho" + +#: ../shell/ev-window.c:4406 +msgid "Reload the document" +msgstr "Mamerina maneho ilay tahirin-kevitra" + +#: ../shell/ev-window.c:4409 +msgid "Auto_scroll" +msgstr "" + +#. Go menu +#: ../shell/ev-window.c:4413 +msgid "_Previous Page" +msgstr "_Pejy aloha" + +#: ../shell/ev-window.c:4414 +msgid "Go to the previous page" +msgstr "Mankany amin'ny pejy aloha" + +#: ../shell/ev-window.c:4416 +msgid "_Next Page" +msgstr "Pejy _manaraka" + +#: ../shell/ev-window.c:4417 +msgid "Go to the next page" +msgstr "Mankany amin'ny pejy manaraka" + +#: ../shell/ev-window.c:4419 +msgid "_First Page" +msgstr "Pejy _voalohany" + +#: ../shell/ev-window.c:4420 +msgid "Go to the first page" +msgstr "Mankany amin'ny pejy voalohany" + +#: ../shell/ev-window.c:4422 +msgid "_Last Page" +msgstr "_Pejy _farany" + +#: ../shell/ev-window.c:4423 +msgid "Go to the last page" +msgstr "Mankany amin'ny pejy farany" + +#. Help menu +#: ../shell/ev-window.c:4427 +msgid "_Contents" +msgstr "_Mpiaty" + +#: ../shell/ev-window.c:4430 +msgid "_About" +msgstr "_Mombamomba" + +#. Toolbar-only +#: ../shell/ev-window.c:4434 +msgid "Leave Fullscreen" +msgstr "Tsy mameno efijery intsony" + +#: ../shell/ev-window.c:4435 +msgid "Leave fullscreen mode" +msgstr "Mitsahatra mameno efijery" + +#: ../shell/ev-window.c:4437 +#, fuzzy +msgid "Start Presentation" +msgstr "_Fampisehoana" + +#: ../shell/ev-window.c:4438 +#, fuzzy +msgid "Start a presentation" +msgstr "Mandefa ilay tahirin-kevitra tahaka ny hoe fampisehoana" + +#. View Menu +#: ../shell/ev-window.c:4492 +msgid "_Toolbar" +msgstr "_Anjam-pitaovana" + +#: ../shell/ev-window.c:4493 +msgid "Show or hide the toolbar" +msgstr "Maneho na manafina ny anjam-pitaovana" + +#: ../shell/ev-window.c:4495 +msgid "Side _Pane" +msgstr "_Tontonana an-tsisiny" + +#: ../shell/ev-window.c:4496 +msgid "Show or hide the side pane" +msgstr "Maneho na manafina ny tontonana an-tsisiny" + +#: ../shell/ev-window.c:4498 +msgid "_Continuous" +msgstr "_Mitohitohy" + +#: ../shell/ev-window.c:4499 +msgid "Show the entire document" +msgstr "Maneho ilay tahirin-kevitra iray manontolo" + +#: ../shell/ev-window.c:4501 +msgid "_Dual" +msgstr "_Roa" + +#: ../shell/ev-window.c:4502 +msgid "Show two pages at once" +msgstr "Maneho pejy roa miaraka" + +#: ../shell/ev-window.c:4504 +msgid "_Fullscreen" +msgstr "_Mameno efijery" + +#: ../shell/ev-window.c:4505 +msgid "Expand the window to fill the screen" +msgstr "Mahatonga ny fikandrana hameno ny efijery" + +#: ../shell/ev-window.c:4507 +#, fuzzy +msgid "Pre_sentation" +msgstr "_Fampisehoana" + +#: ../shell/ev-window.c:4508 +msgid "Run document as a presentation" +msgstr "Mandefa ilay tahirin-kevitra tahaka ny hoe fampisehoana" + +#: ../shell/ev-window.c:4510 +msgid "_Best Fit" +msgstr "Ny _tena mety" + +#: ../shell/ev-window.c:4511 +msgid "Make the current document fill the window" +msgstr "Mahatonga ity tahirin-kevitra ity hameno ny fikandrana" + +#: ../shell/ev-window.c:4513 +msgid "Fit Page _Width" +msgstr "_Mameno ny indran'ny pejy" + +#: ../shell/ev-window.c:4514 +msgid "Make the current document fill the window width" +msgstr "Mahatonga ity tahirin-kevitra ity hameno ny indran'ny fikandrana" + +#. Links +#: ../shell/ev-window.c:4521 +msgid "_Open Link" +msgstr "_Sokafy io rohy io" + +#: ../shell/ev-window.c:4523 +msgid "_Go To" +msgstr "_Ho any amin'ny" + +#: ../shell/ev-window.c:4525 +msgid "Open in New _Window" +msgstr "" + +#: ../shell/ev-window.c:4527 +msgid "_Copy Link Address" +msgstr "_Adikao ny adiresiny" + +#: ../shell/ev-window.c:4529 +#, fuzzy +msgid "_Save Image As..." +msgstr "_Handraikitra dika mitovy..." + +#: ../shell/ev-window.c:4531 +msgid "Copy _Image" +msgstr "" + +#: ../shell/ev-window.c:4570 +msgid "Page" +msgstr "Pejy" + +#: ../shell/ev-window.c:4571 +msgid "Select Page" +msgstr "Mamaritra ilay pejy" + +#: ../shell/ev-window.c:4582 +msgid "Zoom" +msgstr "ZĆ²ma" + +#: ../shell/ev-window.c:4584 +msgid "Adjust the zoom level" +msgstr "Manamboatra ny tahan'ny zĆ²ma" + +#: ../shell/ev-window.c:4594 +msgid "Navigation" +msgstr "" + +#: ../shell/ev-window.c:4596 +msgid "Back" +msgstr "" + +#: ../shell/ev-window.c:4598 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4628 +msgid "Previous" +msgstr "Aloha" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4633 +msgid "Next" +msgstr "Manaraka" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4637 +msgid "Zoom In" +msgstr "Manalehibe" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4641 +msgid "Zoom Out" +msgstr "Manakely" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4649 +msgid "Fit Width" +msgstr "Mameno ny indra" + +#: ../shell/ev-window.c:4824 +#, fuzzy, c-format +msgid "Invalid URI: ā%sā" +msgstr "Karazana MIME tsy raisina an-tĆ nana: ā%sā" + +#: ../shell/ev-window.c:4827 +#, c-format +msgid "Unsupported URI: ā%sā" +msgstr "" + +#: ../shell/ev-window.c:4837 +#, fuzzy +msgid "Unable to open external link" +msgstr "Tsy nahasokatra ilay mpanaraka" + +#: ../shell/ev-window.c:5006 +#, fuzzy +msgid "The image could not be saved." +msgstr "Tsy nety noraiketina ilay mpanaraka." + +#: ../shell/ev-window.c:5041 +#, fuzzy +msgid "Save Image" +msgstr "Sary" + +#: ../shell/ev-window.c:5097 +msgid "Unable to open attachment" +msgstr "Tsy nahasokatra ilay mpanaraka" + +#: ../shell/ev-window.c:5150 +msgid "The attachment could not be saved." +msgstr "Tsy nety noraiketina ilay mpanaraka." + +#: ../shell/ev-window.c:5202 +#, fuzzy +msgid "Save Attachment" +msgstr "Mpanaraka" + +#: ../shell/ev-window-title.c:139 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Mila teny fanalahidy" + +#: ../shell/main.c:60 +msgid "The page of the document to display." +msgstr "Ny pejin'ilay tahirin-kevitra haseho." + +#: ../shell/main.c:60 +msgid "PAGE" +msgstr "PEJY" + +#: ../shell/main.c:61 +msgid "Run evince in fullscreen mode" +msgstr "Alefa mameno efijery ny evince" + +#: ../shell/main.c:62 +msgid "Run evince in presentation mode" +msgstr "Alefa toa fampisehoana ny evince" + +#: ../shell/main.c:63 +msgid "Run evince as a previewer" +msgstr "Alefa toa fitaovam-pizahana ny evince" + +#: ../shell/main.c:64 +#, fuzzy +msgid "The word or phrase to find in the document" +msgstr "Mikaroka teny na andian-teny ao anatin'ilay tahirin-kevitra" + +#: ../shell/main.c:64 +msgid "STRING" +msgstr "" + +#: ../shell/main.c:67 +msgid "[FILE...]" +msgstr "[RAKITRA...]" + +#: ../shell/main.c:327 +msgid "MATE Document Viewer" +msgstr "Mpizaha tahirin-kevitry ny MATE" + +#: ../shell/main.c:387 +msgid "Evince Document Viewer" +msgstr "Evince mpizaha tahirin-kevitra" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Misy safidy bolenina; ny marina mamela ny fanaovan-tsary madinika ary ny " +"diso mampitsahatra ny famoronana sary madinika vaovao" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Mandefa ny fanaovan-tsary madinika ho an'ny tahirin-kevitra PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Baikon'ny fanaovana sary madinika ho an'ny tahirin-kevitra PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Baiko mitombina miaraka amin'ny tondriky ny mpanao sary madinika ho an'ny " +"tahirin-kevitra PDF. Vakio ny loharanon-kevitry ny caja thumbnailer " +"hahalalanao azy bebe kokoa." + +#~ msgid "Open ā%sā" +#~ msgstr "Sokafy ny ā%sā" + +#~ msgid "Empty" +#~ msgstr "Foana" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "Tsy misy tahirin-kevitra miseho." + +#~ msgid "Broken pipe." +#~ msgstr "Fantsona simba." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Nisy olana teo am-panaborahana ny rakitra ā%sā:\n" + +#~ msgid "File is not readable." +#~ msgstr "Tsy mety vakiana ilay rakitra." + +#~ msgid "Document loaded." +#~ msgstr "Azo ilay tehirin-kevitra." diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 00000000..d9c644ad --- /dev/null +++ b/po/mk.po @@ -0,0 +1,1331 @@ +# translation of mk.po to Macedonian +# translation of evince.HEAD.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER. +# +# ŠŃŠ°Š½Š³ŠµŠ» ŠŠ½Š³Š¾Š² <ufo@linux.net.mk>, 2005. +# Arangel Angov <ufo@linux.net.mk>, 2006, 2007, 2008. +# Jovan Naumovski <jovan@lugola.net>, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: mk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-01 20:06+0000\n" +"PO-Revision-Date: 2008-09-14 10:57+0200\n" +"Last-Translator: Arangel Angov <ufo@linux.net.mk>\n" +"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural= n==1 || n%10==1 ? 0 : 1\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "File corrupted." +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° Šµ ŃŠ°ŃŠøŠæŠ°Š½Š°." + +#: ../backend/comics/comics-document.c:203 +#, c-format +msgid "No images found in archive %s" +msgstr "ŠŠµ ŃŠµ ŠæŃŠ¾Š½Š°ŃŠ“ŠµŠ½Šø ŃŠ»ŠøŠŗŠø Š²Š¾ Š°ŃŃ ŠøŠ²Š°ŃŠ° %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Š”ŃŃŠøŠæŠ¾Š²Šø" + +#: ../backend/djvu/djvu-document.c:247 +#, c-format +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń Šµ ŃŠ¾ŃŃŠ°Š²ŠµŠ½ Š¾Š“ Š½ŠµŠŗŠ¾Š»ŠŗŃ Š“Š°ŃŠ¾ŃŠµŠŗŠø. ŠŠ° ŠµŠ“Š½Š° ŠøŠ»Šø ŠæŠ¾Š²ŠµŃŠµ Š¾Š“ Š¾Š²ŠøŠµ " +"Š“Š°ŃŠ¾ŃŠµŠŗŠøŃŠµ Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŠøŠ¼ ŃŠµ ŠæŃŠøŃŃŠ°ŠæŠø." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../backend/dvi/dvi-document.c:94 +#, c-format +msgid "File not available" +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° Š½Šµ Šµ Š“Š¾ŃŃŠ°ŠæŠ½Š°" + +#: ../backend/dvi/dvi-document.c:109 +#, c-format +msgid "DVI document has incorrect format" +msgstr "DVI Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń Šµ Š²Š¾ Š½ŠµŠæŃŠ°Š²ŠøŠ»ŠµŠ½ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:688 +msgid "Yes" +msgstr "ŠŠ°" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:691 +msgid "No" +msgstr "ŠŠµ" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Type 1" +msgstr "Š¢ŠøŠæ 1" + +#: ../backend/pdf/ev-poppler.cc:767 +msgid "Type 1C" +msgstr "Š¢ŠøŠæ 1Š¦" + +#: ../backend/pdf/ev-poppler.cc:769 +msgid "Type 3" +msgstr "Š¢ŠøŠæ 3" + +#: ../backend/pdf/ev-poppler.cc:771 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:773 +msgid "Type 1 (CID)" +msgstr "Š¢ŠøŠæ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:775 +msgid "Type 1C (CID)" +msgstr "Š¢ŠøŠæ 1Š¦ (CID)" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Unknown font type" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°Ń ŃŠøŠæ Š½Š° ŃŠ¾Š½Ń" + +#: ../backend/pdf/ev-poppler.cc:805 +msgid "No name" +msgstr "ŠŠµŠ¼Š° ŠøŠ¼Šµ" + +#: ../backend/pdf/ev-poppler.cc:813 +msgid "Embedded subset" +msgstr "ŠŠ³ŃŠ°Š“ŠµŠ½Š¾ ŠæŠ¾ŃŃŠ°Š²ŃŠ²Š°ŃŠµ" + +#: ../backend/pdf/ev-poppler.cc:815 +msgid "Embedded" +msgstr "ŠŠ³ŃŠ°Š“ŠµŠ½Š¾" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "Not embedded" +msgstr "ŠŠ°Š“Š²Š¾ŃŠµŃŠ½Š¾" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../backend/impress/impress-document.c:297 +#, c-format +msgid "Remote files aren't supported" +msgstr "ŠŠµ ŃŠµ ŠæŠ¾Š“Š“ŃŠ¶Š°Š½Šø Š“Š°Š»ŠµŃŠ½Šø Š“Š°ŃŠ¾ŃŠµŠŗŠø" + +#: ../backend/impress/impress-document.c:308 +#, c-format +msgid "Invalid document" +msgstr "ŠŠµŠ²Š°Š»ŠøŠ“ŠµŠ½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ŃŠ»Š°ŃŠ“Š¾Š²Šø" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠµŠ¼Š° Š³ŃŠµŃŠŗŠ°" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµŠ¼Š° Š“Š¾Š²Š¾Š»Š½Š¾ Š¼ŠµŠ¼Š¾ŃŠøŃŠ°" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š½Š°ŃŠ“Š°Š¼ zip ŠæŠ¾ŃŠæŠøŃ" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ŠŠµŠ²Š°Š»ŠøŠ“Š½Š° zip Š“Š°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "zip ŠŃŃ ŠøŠ²ŠøŃŠµ Š¾Š“ ŠæŠ¾Š²ŠµŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŠø Š½Šµ ŃŠµ ŠæŠ¾Š“Š“ŃŠ¶Š°Š½Šø" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° ŃŠ° Š¾ŃŠ²Š¾ŃŠ°Š¼ Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ°" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° ŃŠøŃŠ°Š¼ ŠæŠ¾Š“Š°ŃŠ¾ŃŠø Š¾Š“ Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ°" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š½Š°ŃŠ“Š°Š¼ Š“Š°ŃŠ¾ŃŠµŠŗŠ° Š²Š¾ zip Š°ŃŃ ŠøŠ²Š°ŃŠ°" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š³ŃŠµŃŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠ°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń ā%sā" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š·Š°ŃŃŠ²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š·Š°ŃŃŠ²Š°Š¼ ŠæŃŠøŠ²ŃŠ·Š¾ŠŗŠ¾Ń ā%sā: %s" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠ°Š¼ ŠæŃŠøŠ²ŃŠ·Š¾ŠŗŠ¾Ń ā%sā: %s" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠ°Š¼ ŠæŃŠøŠ²ŃŠ·Š¾ŠŗŠ¾Ń ā%sā" + +#: ../libdocument/ev-document-factory.c:181 +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unknown MIME Type" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°Ń MIME ŃŠøŠæ" + +#: ../libdocument/ev-document-factory.c:201 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Š¢ŠøŠæŠ¾Ń Š½Š° Š“Š°ŃŠ¾ŃŠµŠŗŠ° %s (%s) Š½Šµ Šµ ŠæŠ¾Š“Š“ŃŠ¶Š°Š½" + +#: ../libdocument/ev-document-factory.c:357 +msgid "All Documents" +msgstr "Š”ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-document-factory.c:389 +msgid "All Files" +msgstr "Š”ŠøŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŠø" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "ŠŃŠ·_Šø ŃŠµ" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "ŠŃŠ·Šø ŃŠµ _Š°Š½Š¾Š½ŠøŠ¼Š½Š¾" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "ŠŃŠ·Šø ŃŠµ ŠŗŠ°ŠŗŠ¾ Šŗ_Š¾ŃŠøŃŠ½ŠøŠŗ" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "_ŠŠ¾ŃŠøŃŠ½ŠøŃŠŗŠ¾ ŠøŠ¼Šµ:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_ŠŠ¾Š¼ŠµŠ½:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_ŠŠ¾Š·ŠøŠ½ŠŗŠ°:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_ŠŠ°Š±Š¾ŃŠ°Š²Šø ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ°ŃŠ° Š²ŠµŠ“Š½Š°Ń" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_ŠŠ°ŠæŠ°Š¼ŃŠø ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ°ŃŠ° Š·Š° Š¾Š²Š°Š° ŃŠµŃŠøŃŠ°" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_ŠŠ°Š±Š¾ŃŠ°Š²Šø Š·Š°ŃŠµŠŗŠ¾Š³Š°Ń" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:139 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° Š½Šµ Šµ Š²Š°Š»ŠøŠ“Š½Š° .desktop Š“Š°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:161 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š²ŠµŃŠ·ŠøŃŠ° Š½Š° desktop Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:872 +#, c-format +msgid "Starting %s" +msgstr "ŠŠ¾Š“ŠøŠ³Š½ŃŠ²Š°Š¼ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1006 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŠæŠ»ŠøŠŗŠ°ŃŠøŃŠ°ŃŠ° Š½Šµ ŠæŃŠøŃŠ°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š½Š°ŃŠ° Š»ŠøŠ½ŠøŃŠ°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1074 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š¾ŠæŃŠøŃŠ° Š·Š° Š»Š°Š½ŃŠøŃŠ°ŃŠµ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1276 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° ŠæŃŠµŠ½ŠµŃŠµŠ°Š¼ URl Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š²Š¾ desktop Š·Š°ŠæŠøŃŠø ŃŠøŃ ŃŃŠ¾ Š¢ŠøŠæ=ŠŃŃŠŗŠ°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1295 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŃŠµŠ“Š¼ŠµŃŠ¾Ń Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ Š»Š°Š½ŃŠøŃŠ°" + +#: ../cut-n-paste/smclient/eggsmclient.c:185 +msgid "Disable connection to session manager" +msgstr "ŠŃŠŗŠ»ŃŃŠø ŃŠ° Š²ŃŃŠŗŠ°ŃŠ° Š“Š¾ Š¼ŠµŠ½Š°ŃŠµŃŠ¾Ń Š·Š° ŃŠµŃŠøŠø" + +#: ../cut-n-paste/smclient/eggsmclient.c:188 +msgid "Specify file containing saved configuration" +msgstr "ŠŠ“ŃŠµŠ“ŠµŃŠµ ŃŠ° Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° ŃŠ¾ Š·Š°ŃŃŠ²Š°Š½Š°ŃŠ° ŠŗŠ¾Š½ŃŠøŠ³ŃŃŠ°ŃŠøŃŠ°" + +#: ../cut-n-paste/smclient/eggsmclient.c:188 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:191 +msgid "Specify session management ID" +msgstr "ŠŠ“ŃŠµŠ“ŠµŃŠµ ŠøŠ“. Š·Š° Š¼ŠµŠ½Š°ŃŠ¼ŠµŠ½Ń Š½Š° ŃŠµŃŠøŠøŃŠµ" + +#: ../cut-n-paste/smclient/eggsmclient.c:191 +msgid "ID" +msgstr "ŠŠ“." + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Session Management Options" +msgstr "ŠŠæŃŠøŠø Š·Š° Š¼ŠµŠ½Š°ŃŠ¼ŠµŠ½ŃŠ¾Ń ŃŠ¾ ŃŠµŃŠøŠø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Show Session Management options" +msgstr "ŠŠ¾ŠŗŠ°Š¶Šø Š¾ŠæŃŠøŠø Š·Š° Š¼ŠµŠ½Š°ŃŠ¼ŠµŠ½Ń ŃŠ¾ ŃŠµŃŠøŠøŃŠµ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "_ŠŠ¾Š¼ŠµŃŃŠø Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "ŠŠ¾Š¼ŠµŃŃŠø Š³Š¾ ŠøŠ·Š±ŃŠ°Š½ŠøŠ¾Ń ŠæŃŠµŠ“Š¼ŠµŃ Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ŠŃŃŃŃŠ°Š½Šø Š¾Š“ Š»ŠµŠ½ŃŠ°ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "ŠŃŃŃŃŠ°Š½Šø Š³Š¾ ŠøŠ·Š±ŃŠ°Š½ŠøŠ¾Ń ŠæŃŠµŠ“Š¼ŠµŃ Š¾Š“ Š»ŠµŠ½ŃŠ°ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ŠŃŃŃŃŠ°Š½Šø Š»ŠµŠ½ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "ŠŃŃŃŃŠ°Š½Šø ŃŠ° ŠøŠ·Š±ŃŠ°Š½Š°ŃŠ° Š»ŠµŠ½ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "Š Š°Š·Š“ŠµŠ»ŃŠ²Š°Ń" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "ŠŠ·Š²ŃŃŃŠ²Š°Š¼ Š²Š¾ ŃŠµŠ¶ŠøŠ¼ Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4719 +msgid "Best Fit" +msgstr "ŠŠ°ŃŠ“Š¾Š±Š°Ń ŠøŠ·Š³Š»ŠµŠ“" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠŗŠ»Š¾ŠæŠø ŃŠµ Š²Š¾ ŃŠøŃŠ¾ŃŠøŠ½Š°ŃŠ°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3751 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ŃŠ²Š°Ń Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ŠŠøŠ“Šø ŠæŠ¾Š²ŠµŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ŠŠ½ŠµŃ Š½Š° Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ŠŠ°ŠæŠ°Š¼eŃŠø ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ°ŃŠ° Š·Š° Š¾Š²Š°Š° ŃŠµŃŠøŃŠ°" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ŠŠ°ŃŃŠ²Š°Ń ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ°ŃŠ° Š²Š¾ ŠæŃŠøŠ²ŠµŠ·Š¾ŠŗŠ¾Ń" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>ŠŠ²ŃŠ¾Ń:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>ŠŃŠµŠøŃŠ°Š½Š¾:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>ŠŃŠµŠ°ŃŠ¾Ń:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Š¤Š¾ŃŠ¼Š°Ń:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>ŠŠ»ŃŃŠ½Šø Š·Š±Š¾ŃŠ¾Š²Šø:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>ŠŃŠ¾Š¼ŠµŠ½ŠµŃŠ¾ Š½Š°:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b> ŠŃŠ¾Ń Š½Š° ŃŃŃŠ°Š½ŠøŃŠø:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>ŠŠæŃŠøŠ¼ŠøŠ·ŠøŃŠ°Š½Š¾:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>ŠŠ¾Š»ŠµŠ¼ŠøŠ½Š° Š½Š° Ń Š°ŃŃŠøŃŠ°:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>ŠŃŠ¾Š“ŃŃŠµŠ½Ń:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>ŠŠµŠ·Š±ŠµŠ“Š½Š¾ŃŃ:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>ŠŃŠµŠ“Š¼ŠµŃ:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>ŠŠ°ŃŠ»Š¾Š²:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŃŃŃŃŠ°Š½Šø Š³Šø ŃŠµŃŃŃŠøŠŗŃŠøŠøŃŠµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ŠŃŃŃŃŠ°Š½Šø Š³Šø ŃŠµŃŃŃŠøŠŗŃŠøŠøŃŠµ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠøŃŠµ, ŠŗŠ°ŠŗŠ¾ ŃŠµŃŃŃŠøŠŗŃŠøŠøŃŠµ Š·Š° ŠŗŠ¾ŠæŠøŃŠ°ŃŠµ ŠøŠ»Šø " +"ŠæŠµŃŠ°ŃŠµŃŠµ" + +#: ../properties/ev-properties-main.c:114 +msgid "Document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../properties/ev-properties-view.c:180 +msgid "None" +msgstr "ŠŠøŃŃŠ¾" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:205 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "default:mm" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f ŠøŠ½Ń" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ŠŠµŃŃŠøŠŗŠ°Š»Š½Š¾ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Š„Š¾ŃŠøŠ·Š¾Š½ŃŠ°Š»Š½Š¾ (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Š”ŃŃŠøŠ½Š³ Š·Š° ŠæŃŠµŠ±Š°ŃŃŠ²Š°ŃŠµ" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "ŠŠ¼ŠµŃŠ¾ Š½Š° ŃŃŃŠøŠ½Š³Š¾Ń ŠŗŠ¾Ń ŃŃŠ¾ ŃŃŠµŠ±Š° Š“Š° Š±ŠøŠ“Šµ Š½Š°ŃŠ“ŠµŠ½" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "ŠŠ°Š·Šø Š½Š° Š³Š¾Š»ŠµŠ¼Šø Šø Š¼Š°Š»Šø Š±ŃŠŗŠ²Šø" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "ŠØŃŠøŠŗŠ»ŠøŃŠ°Š½Š¾ Š·Š° ŠæŃŠµŠ±Š°ŃŃŠ²Š°ŃŠµ ŃŠ°Š¼Š¾ Š½Š° Š¼Š°Š»Šø Šø Š³Š¾Š»ŠµŠ¼Šø Š±ŃŠŗŠ²Šø" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "ŠŠ±ŠµŠ»ŠµŠ¶Š°Š½Š° Š±Š¾ŃŠ°" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "ŠŠ¾ŃŠ° Š·Š° Š¾Š±Š»ŠµŠ¶ŃŠ²Š°ŃŠµ Š½Š° ŃŠøŃŠµ ŃŠ¾Š²ŠæŠ°ŃŠ°ŃŠ°" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Š¢ŠµŠŗŠ¾Š²Š½Š° Š±Š¾ŃŠ°" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "ŠŠ¾ŃŠ° Š·Š° Š¾Š±ŠµŠ»ŠµŠ¶ŃŠ²Š°ŃŠµ Š½Š° ŃŠµŠŗŠ¾Š²Š½Š¾ŃŠ¾ ŃŠ¾Š²ŠæŠ°ŃŠ°ŃŠµ" + +#: ../shell/eggfindbar.c:309 +msgid "Find:" +msgstr "ŠŠ°ŃŠ“Šø:" + +#: ../shell/eggfindbar.c:318 +msgid "Find Previous" +msgstr "ŠŠ°ŃŠ“Šø ŠæŃŠµŃŃ Š¾Š“Š½Š¾" + +#: ../shell/eggfindbar.c:322 ../shell/eggfindbar.c:325 +msgid "Find previous occurrence of the search string" +msgstr "ŠŠ°ŃŠ“Šø Š³Š¾ ŠæŃŠµŃŃ Š¾Š“Š½Š¾ŃŠ¾ ŠæŠ¾ŃŠ°Š²ŃŠ²Š°ŃŠµ Š½Š° Š½ŠøŠ·Š°ŃŠ° Š¾Š“ Š±ŃŠŗŠ²Šø Š·Š° Š±Š°ŃŠ°ŃŠµ" + +#: ../shell/eggfindbar.c:331 +msgid "Find Next" +msgstr "ŠŃŠ¾Š½Š°ŃŠ“Šø ŃŠ»ŠµŠ“Š½Š¾" + +#: ../shell/eggfindbar.c:335 ../shell/eggfindbar.c:338 +msgid "Find next occurrence of the search string" +msgstr "ŠŠ°ŃŠ“Šø Š³Š¾ ŃŠ»ŠµŠ“Š½Š¾ŃŠ¾ ŠæŠ¾ŃŠ°Š²ŃŠ²Š°ŃŠµ Š½Š° Š½ŠøŠ·Š°ŃŠ° Š¾Š“ Š±ŃŠŗŠ²Šø Š·Š° Š±Š°ŃŠ°ŃŠµ" + +#: ../shell/eggfindbar.c:347 +msgid "C_ase Sensitive" +msgstr "Š_Š¾Š»ŠµŠ¼Šø Šø Š¼Š°Š»Šø Š±ŃŠŗŠ²Šø" + +#: ../shell/eggfindbar.c:351 ../shell/eggfindbar.c:354 +msgid "Toggle case sensitive search" +msgstr "ŠŃŃŃŠø ŠæŃŠµŠ±Š°ŃŃŠ²Š°ŃŠµ ŃŠ¾ ŃŠ°Š·Š»ŠøŠŗŃŠ²Š°ŃŠµ Š½Š° Š¼Š°Š»Šø-Š³Š¾Š»ŠµŠ¼Šø Š±ŃŠŗŠ²Šø" + +#: ../shell/ev-jobs.c:962 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ŠŠµ ŃŃŠæŠµŠ°Š² Š“Š° ŃŠ° ŠŗŃŠµŠøŃŠ°Š¼ Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° ā%sā: %s" + +#: ../shell/ev-open-recent-action.c:73 +msgid "Open a recently used document" +msgstr "ŠŃŠ²Š¾ŃŠø ŃŠŗŠ¾ŃŠµŃŠµŠ½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Š¾Š“ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "Š¾Š“ %d" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "ŠŠ¾ŃŃŠµŠ±Š½Š° Šµ Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń ā%sā Šµ Š·Š°ŠŗŠ»ŃŃŠµŠ½ Šø Š±Š°ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ° Š“Š° Š²Š½ŠµŃŠµŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŠ° ŠæŃŠµŠ“ Š“Š° Š¼Š¾Š¶ŠµŃŠµ " +"Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠøŃŠµ." + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "ŠŠ½ŠµŃŠµŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ¾Š·ŠøŠ½ŠŗŠ° Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "ŠŠµŃŠ¾ŃŠ½Š° Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../shell/ev-password-view.c:112 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ŠŠ²Š¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Šµ Š·Š°ŠŗŠ»ŃŃŠµŠ½ Šø Š¼Š¾Š¶Šµ Š“Š° Š±ŠøŠ“Šµ ŠæŃŠ¾ŃŠøŃŠ°Š½ ŃŠ°Š¼Š¾ ŃŠ¾ Š²Š½ŠµŃŃŠ²Š°ŃŠµ Š½Š° " +"ŠæŃŠ°Š²Š°ŃŠ° Š»Š¾Š·ŠøŠ½ŠŗŠ°." + +#: ../shell/ev-password-view.c:121 +msgid "_Unlock Document" +msgstr "_ŠŃŠŗŠ»ŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "Š”Š²Š¾ŃŃŃŠ²Š°" + +#: ../shell/ev-properties-dialog.c:90 +msgid "General" +msgstr "ŠŠæŃŃŠ¾" + +#: ../shell/ev-properties-dialog.c:100 +msgid "Fonts" +msgstr "Š¤Š¾Š½ŃŠ¾Š²Šø" + +#: ../shell/ev-properties-fonts.c:139 +msgid "Font" +msgstr "Š¤Š¾Š½Ń" + +#: ../shell/ev-properties-fonts.c:150 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Š”Š¾Š±ŠøŃŠ°Š¼ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŠø Š·Š° ŃŠ¾Š½ŃŠ¾Š²Šø... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:690 +msgid "Attachments" +msgstr "ŠŃŠøŠ²ŃŠ·Š¾ŃŠø" + +#: ../shell/ev-sidebar-links.c:267 ../shell/ev-view.c:3638 +msgid "Loading..." +msgstr "ŠŃŠøŃŃŠ²Š°Š¼..." + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "ŠŃŠæŠµŃŠ°ŃŠø..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "ŠŠ½Š“ŠµŠŗŃ" + +#: ../shell/ev-sidebar-thumbnails.c:731 +msgid "Thumbnails" +msgstr "Š”Š»ŠøŠŗŠøŃŠŗŠø" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ŠŠøŠ·Š³Š°Ń Š½Š°Š³Š¾ŃŠµ" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ŠŠøŠ·Š³Š°Ń Š½Š°Š“Š¾Š»Ń" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ŠŠøŠ·Š³Š°ŃŠŗŠø ŠæŠ¾Š³Š»ŠµŠ“ Š·Š° Š½Š°Š³Š¾ŃŠµ" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ŠŠøŠ·Š³Š°ŃŠŗŠø ŠæŠ¾Š³Š»ŠµŠ“ Š·Š° Š½Š°Š“Š¾Š»Ń" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-view.c:1437 +msgid "Go to first page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠ²Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-view.c:1439 +msgid "Go to previous page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠµŃŃ Š¾Š“Š½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-view.c:1441 +msgid "Go to next page" +msgstr "ŠŠ“Šø Š½Š° ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-view.c:1443 +msgid "Go to last page" +msgstr "ŠŠ“Šø Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-view.c:1445 +msgid "Go to page" +msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-view.c:1447 +msgid "Find" +msgstr "ŠŠ°ŃŠ“Šø" + +#: ../shell/ev-view.c:1475 +#, c-format +msgid "Go to page %s" +msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Š° %s" + +#: ../shell/ev-view.c:1481 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŠ“Šø Š“Š¾ %s Š²Š¾ Š“Š°ŃŠ¾ŃŠµŠŗŠ°ŃŠ° ā%sā" + +#: ../shell/ev-view.c:1484 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Š° ā%sā" + +#: ../shell/ev-view.c:1492 +#, c-format +msgid "Launch %s" +msgstr "ŠŃŃŃŠø %s" + +#: ../shell/ev-view.c:2444 +msgid "End of presentation. Press Escape to exit." +msgstr "ŠŃŠ°Ń Š½Š° ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°ŃŠ°. ŠŃŠøŃŠøŃŠ½ŠµŃŠµ Escape Š·Š° ŠøŠ·Š»ŠµŠ·." + +#: ../shell/ev-view.c:3368 +msgid "Jump to page:" +msgstr "ŠŠ“Šø Š¾Š“Šø Š“Š¾ ŃŃŃŠ°Š½ŠøŃŠ°:" + +#: ../shell/ev-window.c:790 +#, c-format +msgid "Page %s - %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s - %s" + +#: ../shell/ev-window.c:792 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s" + +#: ../shell/ev-window.c:1201 +msgid "The document contains no pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń Š½Šµ ŃŠ¾Š“ŃŠ¶Šø ŃŃŃŠ°Š½ŠøŃŠø" + +#: ../shell/ev-window.c:1425 ../shell/ev-window.c:1500 +msgid "Unable to open document" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠ°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:1697 +msgid "Open Document" +msgstr "ŠŃŠ²Š¾ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:1758 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° ŠŗŃŠµŠøŃŠ°Š¼ ŃŠøŠ¼Š±Š¾Š»ŠøŃŠŗŠ° Š²ŃŃŠŗŠ° ā%sā: %s" + +#: ../shell/ev-window.c:1787 +msgid "Cannot open a copy." +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š¾ŃŠ²Š¾ŃŠ°Š¼ ŠŗŠ¾ŠæŠøŃŠ°." + +#: ../shell/ev-window.c:2031 ../shell/ev-window.c:2081 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŠŠ²Š°Š° Š“Š°ŃŠ¾ŃŠµŠŗŠ° Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ Š·Š°ŃŃŠ²Š° ŠŗŠ°ŠŗŠ¾ ā%sā." + +#: ../shell/ev-window.c:2126 +msgid "Save a Copy" +msgstr "ŠŠ°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŠ°" + +#: ../shell/ev-window.c:2247 ../shell/ev-window.c:3452 +msgid "Failed to print document" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ ŠøŃŠæŠµŃŠ°ŃŠ°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:2412 +msgid "Printing is not supported on this printer." +msgstr "ŠŠµŃŠ°ŃŠµŃŠµŃŠ¾ Š½Šµ Šµ ŠæŠ¾Š“Š“ŃŠ¶Š°Š½Š¾ Š½Š° Š¾Š²Š¾Ń ŠæŠµŃŠ°ŃŠ°Ń." + +#: ../shell/ev-window.c:2538 ../shell/ev-window.c:4511 +msgid "Print" +msgstr "ŠŃŠæŠµŃŠ°ŃŠø" + +#: ../shell/ev-window.c:3205 +msgid "Toolbar Editor" +msgstr "Š£ŃŠµŠ“ŃŠ²Š°Ń Š½Š° Š»ŠµŠ½ŃŠ°ŃŠ° Š·Š° Š°Š»Š°ŃŠŗŠø" + +#: ../shell/ev-window.c:3747 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ŠŃŠµŠ³Š»ŠµŠ“ŃŠ²Š°Ń Š½Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø.\n" +"ŠŠ¾ŃŠøŃŃŠø poppler %s (%s)" + +#: ../shell/ev-window.c:3775 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince Šµ ŃŠ»Š¾Š±Š¾Š“ŠµŠ½ ŃŠ¾ŃŃŠ²ŠµŃ; ŠŠ¾Š¶ŠµŃŠµ Š“Š° Š³Š¾ ŃŠµŠ“ŠøŃŃŃŠøŠ±ŃŠøŃŠ°ŃŠµ Šø/ŠøŠ»Šø Š¼ŠµŠ½ŃŠ²Š°ŃeŠæŠ¾Š“ " +"ŃŃŠ»Š¾Š²ŠøŃŠµ Š¾Š±ŃŠ°Š²ŠµŠ½Šø Š²Š¾ āGNU General Public Licenseā Š¾Š±ŃŠ°Š²ŠµŠ½Š° Š¾Š“ ŃŃŃŠ°Š½Š° " +"Š½Š°Š¤Š¾Š½Š“Š°ŃŠøŃŠ°ŃŠ° Š·Š° ŃŠ»Š¾Š±Š¾Š“ŠµŠ½ ŃŠ¾ŃŃŠ²ŠµŃ; Š±ŠµŠ· ŃŠ°Š·Š»ŠøŠŗŠ° Š½Š° Š²ŠµŃŠ·ŠøŃŠ°ŃŠ°.\n" + +#: ../shell/ev-window.c:3779 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince(Evince) ŃŠµ Š“ŠøŃŃŃŠøŠ±ŃŠøŃŠ° ŃŠ¾ Š½Š°Š“ŠµŠ¶ Š“ŠµŠŗŠ° ŃŠµ Š±ŠøŠ“Šµ ŠŗŠ¾ŃŠøŃŠµŠ½, Š½Š¾ Š±ŠµŠ· ŠŠŠŠ " +"ŠŠŠŠŠ ŠŠŠ ŠŠŠ¦ŠŠ. ŠŠ° ŠæŠ¾Š²ŠµŃŠµ ŠæŠ¾Š³Š»ŠµŠ“Š½ŠµŃŠµ ŃŠ° Š¾ŠæŃŃŠ°ŃŠ° ŃŠ°Š²Š½Š° ŠŠŠ£ Š»ŠøŃŠµŠ½ŃŠ°.\n" + +#: ../shell/ev-window.c:3783 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"ŠŠ°ŠµŠ“Š½Š¾ ŃŠ¾ Evince(Evince) ŃŃŠµŠ±Š° Š“Š° Š“Š¾Š±ŠøŠµŃŠµ Šø ŠŗŠ¾ŠæŠøŃŠ° Š¾Š“ Š¾ŠæŃŃŠ°ŃŠ° Šø ŃŠ°Š²Š½Š°ŠŠŠ£ " +"Š»ŠøŃŠµŠ½ŃŠ°; Š“Š¾ŠŗŠ¾Š»ŠŗŃ ŃŠ° Š½ŠµŠ¼Š° Š»ŠøŃŠµŠ½ŃŠ°ŃŠ° ŠæŠøŃŠµŃŠµ Šø Š½Š° Š¤Š¾Š½Š“Š°ŃŠøŃŠ°ŃŠ° Š·Š°ŃŠ»Š¾Š±Š¾Š“ŠµŠ½ " +"ŃŠ¾ŃŃŠ²ŠµŃ Š½Š° ŃŠ»ŠµŠ“Š½Š°Š²Š° Š°Š“ŃŠµŃŠ°: 59 Temple Place, Suite 330, Boston, MA 02111-" +"1307 USA\n" + +#: ../shell/ev-window.c:3807 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3810 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 ŠŠ²ŃŠ¾ŃŠøŃŠµ Š½Š° Evince" + +#: ../shell/ev-window.c:3816 +msgid "translator-credits" +msgstr "" +"ŠŃŠ°Š½Š³ŠµŠ» ŠŠ½Š³Š¾Š² (ufo@linux.net.mk)\n" +"\n" +"Š”Š»Š¾Š±Š¾Š“ŠµŠ½ Š”Š¾ŃŃŠ²ŠµŃ ŠŠ°ŠŗŠµŠ“Š¾Š½ŠøŃŠ°\n" +"http://www.slobodensoftver.org.mk" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4032 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ŠæŃŠ¾Š½Š°ŃŠ“ŠµŠ½ Š½Š° Š¾Š²Š°Š° ŃŃŃŠ°Š½Š°" +msgstr[1] "%d ŠæŃŠ¾Š½Š°ŃŠ“ŠµŠ½Šø Š½Š° Š¾Š²Š°Š° ŃŃŃŠ°Š½Š°" +msgstr[2] "%d ŠæŃŠ¾Š½Š°ŃŠ“ŠµŠ½Šø Š½Š° Š¾Š²Š°Š° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:4040 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Š¾ŃŃŠ°Š½Š°ŃŠø Š·Š° ŠæŃŠµŠ±Š°ŃŃŠ²Š°ŃŠµ" + +#: ../shell/ev-window.c:4423 +msgid "_File" +msgstr "_ŠŠ°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../shell/ev-window.c:4424 +msgid "_Edit" +msgstr "_Š£ŃŠµŠ“Šø" + +#: ../shell/ev-window.c:4425 +msgid "_View" +msgstr "_ŠŠ¾Š³Š»ŠµŠ“" + +#: ../shell/ev-window.c:4426 +msgid "_Go" +msgstr "_ŠŠ“Šø" + +#: ../shell/ev-window.c:4427 +msgid "_Help" +msgstr "_ŠŠ¾Š¼Š¾Ń" + +#. File menu +#: ../shell/ev-window.c:4430 ../shell/ev-window.c:4609 +#: ../shell/ev-window.c:4681 +msgid "_Open..." +msgstr "_ŠŃŠ²Š¾ŃŠø..." + +#: ../shell/ev-window.c:4431 ../shell/ev-window.c:4682 +msgid "Open an existing document" +msgstr "ŠŃŠ²Š¾ŃŠø ŠæŠ¾ŃŃŠ¾ŠµŃŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:4433 +msgid "Op_en a Copy" +msgstr "ŠŃ_Š²Š¾ŃŠø ŠŗŠ¾ŠæŠøŃŠ°" + +#: ../shell/ev-window.c:4434 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŠ²Š¾ŃŠø ŠŗŠ¾ŠæŠøŃŠ° Š¾Š“ ŃŠµŠŗŠ¾Š²Š½ŠøŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š²Š¾ Š½Š¾Š² ŠæŃŠ¾Š·Š¾ŃŠµŃ" + +#: ../shell/ev-window.c:4436 ../shell/ev-window.c:4611 +msgid "_Save a Copy..." +msgstr "_ŠŠ°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŠ°..." + +#: ../shell/ev-window.c:4437 +msgid "Save a copy of the current document" +msgstr "ŠŠ°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŠ° Š¾Š“ ŃŠµŠŗŠ¾Š²Š½ŠøŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:4439 +msgid "Print Set_up..." +msgstr "ŠŠ¾Ń_ŃŠ°Š²ŃŠ²Š°ŃŠµ Š·Š° ŠæŠµŃŠ°ŃŠµŃŠµ..." + +#: ../shell/ev-window.c:4440 +msgid "Setup the page settings for printing" +msgstr "ŠŠ¾ŃŃŠ°Š²ŠµŃŠµ ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°ŃŠ° Š·Š° ŠæŠµŃŠ°ŃŠµŃŠµ" + +#: ../shell/ev-window.c:4442 +msgid "_Print..." +msgstr "_ŠŃŠæŠµŃŠ°ŃŠø..." + +#: ../shell/ev-window.c:4443 ../shell/ev-window.c:4512 +msgid "Print this document" +msgstr "ŠŃŠæŠµŃŠ°ŃŠø Š³Š¾ Š¾Š²Š¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:4445 +msgid "P_roperties" +msgstr "Š”_Š²Š¾ŃŃŃŠ²Š°" + +#: ../shell/ev-window.c:4453 +msgid "Select _All" +msgstr "ŠŠ·Š±ŠµŃŠø _ŃŃ" + +#: ../shell/ev-window.c:4455 +msgid "_Find..." +msgstr "_ŠŠ°ŃŠ“Šø..." + +#: ../shell/ev-window.c:4456 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ°ŃŠ°Ń Š·Š±Š¾Ń ŠøŠ»Šø ŃŃŠ°Š·Š° Š²Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:4458 +msgid "Find Ne_xt" +msgstr "ŠŠ°ŃŠ“Šø ŃŠ»_ŠµŠ“Š½Š¾" + +#: ../shell/ev-window.c:4460 +msgid "Find Pre_vious" +msgstr "ŠŠ°ŃŠ“Šø ŠæŃŠµ_ŃŃ Š¾Š“Š½Š¾" + +#: ../shell/ev-window.c:4462 +msgid "T_oolbar" +msgstr "Š_ŠµŠ½ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../shell/ev-window.c:4464 +msgid "Rotate _Left" +msgstr "Š Š¾ŃŠøŃŠ°Ń _Š»ŠµŠ²Š¾" + +#: ../shell/ev-window.c:4466 +msgid "Rotate _Right" +msgstr "Š Š¾ŃŠøŃŠ°Ń _Š“ŠµŃŠ½Š¾" + +#: ../shell/ev-window.c:4471 +msgid "Enlarge the document" +msgstr "ŠŠ³Š¾Š»ŠµŠ¼Šø Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:4474 +msgid "Shrink the document" +msgstr "ŠŠ°Š¼Š°Š»Šø Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:4476 +msgid "_Reload" +msgstr "_ŠŃŠ²ŠµŠ¶Šø" + +#: ../shell/ev-window.c:4477 +msgid "Reload the document" +msgstr "ŠŃŠ²ŠµŠ¶Šø Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/ev-window.c:4480 +msgid "Auto_scroll" +msgstr "ŠŠ²ŃŠ¾_Š»ŠøŠ·Š³Š°ŃŠµ" + +#. Go menu +#: ../shell/ev-window.c:4484 +msgid "_Previous Page" +msgstr "_ŠŃŠµŃŃ Š¾Š“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4485 +msgid "Go to the previous page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠµŃŃ Š¾Š“Š½Š°ŃŠ° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:4487 +msgid "_Next Page" +msgstr "_Š”Š»ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4488 +msgid "Go to the next page" +msgstr "ŠŠ“Šø Š½Š° ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:4490 +msgid "_First Page" +msgstr "_ŠŃŠ²Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4491 +msgid "Go to the first page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠ²Š°ŃŠ° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:4493 +msgid "_Last Page" +msgstr "ŠŠ¾_ŃŠ»ŠµŠ“Š½Š° ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4494 +msgid "Go to the last page" +msgstr "ŠŠ“Šø Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“Š½Š°ŃŠ° ŃŃŃŠ°Š½Š°" + +#. Help menu +#: ../shell/ev-window.c:4498 +msgid "_Contents" +msgstr "_Š”Š¾Š“ŃŠ¶ŠøŠ½Š°" + +#: ../shell/ev-window.c:4501 +msgid "_About" +msgstr "_ŠŠ°" + +#. Toolbar-only +#: ../shell/ev-window.c:4505 +msgid "Leave Fullscreen" +msgstr "ŠŠ°ŠæŃŃŃŠø ŃŠµŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4506 +msgid "Leave fullscreen mode" +msgstr "ŠŠ°ŠæŃŃŃŠø ŃŠµŠ¶ŠøŠ¼ Š½Š° ŃŠµŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4508 +msgid "Start Presentation" +msgstr "ŠŃŃŃŠø ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:4509 +msgid "Start a presentation" +msgstr "ŠŃŃŃŠø ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#. View Menu +#: ../shell/ev-window.c:4565 +msgid "_Toolbar" +msgstr "_ŠŠµŠ½ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../shell/ev-window.c:4566 +msgid "Show or hide the toolbar" +msgstr "ŠŠ¾ŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠŗŃŠøŃ ŃŠ° Š»ŠµŠ½ŃŠ°ŃŠ° ŃŠ¾ Š°Š»Š°ŃŠŗŠø" + +#: ../shell/ev-window.c:4568 +msgid "Side _Pane" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ½Š° _ŠæŠ¾Š²ŃŃŠøŠ½Š°" + +#: ../shell/ev-window.c:4569 +msgid "Show or hide the side pane" +msgstr "ŠŠ¾ŠŗŠ°Š¶Šø ŃŠ° ŠøŠ»Šø ŃŠŗŃŠøŃ ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ½Š°ŃŠ° ŠæŠ¾Š²ŃŃŠøŠ½Š°" + +#: ../shell/ev-window.c:4571 +msgid "_Continuous" +msgstr "_ŠŠ¾ ŠæŃŠ¾Š“Š¾Š»Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:4572 +msgid "Show the entire document" +msgstr "ŠŠ¾ŠŗŠ°Š¶Šø Š³Š¾ ŃŠµŠ»ŠøŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:4574 +msgid "_Dual" +msgstr "_ŠŠ²Š¾ŃŠ½Š¾" + +#: ../shell/ev-window.c:4575 +msgid "Show two pages at once" +msgstr "ŠŠ¾ŠŗŠ°Š¶Šø Š“Š²Šµ ŃŃŃŠ°Š½ŠøŃŠø Š¾Š“ŠµŠ“Š½Š°Ń" + +#: ../shell/ev-window.c:4577 +msgid "_Fullscreen" +msgstr "_Š¦ŠµŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4578 +msgid "Expand the window to fill the screen" +msgstr "ŠŃŠ¾ŃŠøŃŠø Š³Š¾ ŠæŃŠ¾Š·Š¾ŃŠµŃŠ¾Ń Š½Š° ŃŠµŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:4580 +msgid "Pre_sentation" +msgstr "ŠŃŠµ_Š·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:4581 +msgid "Run document as a presentation" +msgstr "ŠŃŃŃŠø Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń ŠŗŠ°ŠŗŠ¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:4583 +msgid "_Best Fit" +msgstr "_ŠŠ°ŃŠ“Š¾Š±Š°Ń ŠøŠ·Š³Š»ŠµŠ“" + +#: ../shell/ev-window.c:4584 +msgid "Make the current document fill the window" +msgstr "Š¢ŠµŠŗŠ¾Š²Š½ŠøŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š° Š³Š¾ ŠøŃŠæŠ¾Š»Š½Šø ŠæŃŠ¾Š·Š¾ŃŠµŃŠ¾Ń" + +#: ../shell/ev-window.c:4586 +msgid "Fit Page _Width" +msgstr "ŠŠŗŠ»Š¾ŠæŠø Š²Š¾ _ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../shell/ev-window.c:4587 +msgid "Make the current document fill the window width" +msgstr "Š¢ŠµŠŗŠ¾Š²Š½ŠøŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š° ŃŠ° ŠøŃŠæŠ¾Š»Š½Šø ŃŠøŃŠ¾ŃŠøŠ½Š°ŃŠ° Š½Š° ŠæŃŠ¾Š·Š¾ŃŠµŃŠ¾Ń" + +#. Links +#: ../shell/ev-window.c:4594 +msgid "_Open Link" +msgstr "_ŠŃŠ²Š¾ŃŠø Š²ŃŃŠŗŠ°" + +#: ../shell/ev-window.c:4596 +msgid "_Go To" +msgstr "_ŠŠ“Šø" + +#: ../shell/ev-window.c:4598 +msgid "Open in New _Window" +msgstr "ŠŃŠ²Š¾ŃŠø Š²Š¾ Š½Š¾Š² _ŠæŃŠ¾Š·Š¾ŃŠµŃ" + +#: ../shell/ev-window.c:4600 +msgid "_Copy Link Address" +msgstr "_ŠŠ¾ŠæŠøŃŠ°Ń Š°Š“ŃŠµŃŠ° Š½Š° Š²ŃŃŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:4602 +msgid "_Save Image As..." +msgstr "_ŠŠ°ŃŃŠ²Š°Ń ŃŠ° ŃŠ»ŠøŠŗŠ°ŃŠ° ŠŗŠ°ŠŗŠ¾..." + +#: ../shell/ev-window.c:4604 +msgid "Copy _Image" +msgstr "ŠŠ¾ŠæŠøŃŠ°Ń ŃŠ° _ŃŠ»ŠøŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:4643 +msgid "Page" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ°" + +#: ../shell/ev-window.c:4644 +msgid "Select Page" +msgstr "ŠŠ·Š±ŠµŃŠµŃŠµ ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:4655 +msgid "Zoom" +msgstr "ŠŃŠ¼" + +#: ../shell/ev-window.c:4657 +msgid "Adjust the zoom level" +msgstr "ŠŃŠ¾Š¼ŠµŠ½ŠµŃŠµ Š³Š¾ Š½ŠøŠ²Š¾ŃŠ¾ Š½Š° Š·ŃŠ¼" + +#: ../shell/ev-window.c:4667 +msgid "Navigation" +msgstr "ŠŠ°Š²ŠøŠ³Š°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:4669 +msgid "Back" +msgstr "ŠŠ°Š·Š°Ń" + +#. translators: this is the history action +#: ../shell/ev-window.c:4672 +msgid "Move across visited pages" +msgstr "ŠŠ²ŠøŠ¶ŠµŃŠµ ŃŠµ Š½ŠøŠ· ŠæŠ¾ŃŠµŃŠµŠ½ŠøŃŠµ ŃŃŃŠ°Š½ŠøŃŠø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4702 +msgid "Previous" +msgstr "ŠŃŠµŃŃ Š¾Š“Š½Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4707 +msgid "Next" +msgstr "Š”Š»ŠµŠ“Š½Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4711 +msgid "Zoom In" +msgstr "ŠŃŠ¼ŠøŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4715 +msgid "Zoom Out" +msgstr "ŠŠ“Š·ŃŠ¼ŠøŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4723 +msgid "Fit Width" +msgstr "ŠŠŗŠ»Š¾ŠæŠø Š²Š¾ ŃŠøŃŠ¾ŃŠøŠ½Š°" + +#: ../shell/ev-window.c:4928 +msgid "Unable to open external link" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° ŃŠ° Š¾ŃŠ²Š¾ŃŠ°Š¼ Š½Š°Š“Š²Š¾ŃŠµŃŠ½Š°ŃŠ° Š²ŃŃŠŗŠ°" + +#: ../shell/ev-window.c:5089 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŠµ Š¼Š¾Š¶ŠµŠ² Š“Š° Š½Š°ŃŠ“Š°Š¼ ŃŠ¾Š¾Š“Š²ŠµŃŠµŠ½ ŃŠ¾ŃŠ¼Š°Ń Š·Š° Š·Š°ŃŃŠ²ŃŠ²Š°ŃŠµ Š½Š° ŃŠ»ŠøŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:5129 +msgid "The image could not be saved." +msgstr "Š”Š»ŠøŠŗŠ°ŃŠ° Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ Š·Š°ŃŃŠ²Š°." + +#: ../shell/ev-window.c:5161 +msgid "Save Image" +msgstr "ŠŠ°ŃŃŠ²Š°Ń ŃŠ° ŃŠ»ŠøŠŗŠ°ŃŠ°" + +#: ../shell/ev-window.c:5220 +msgid "Unable to open attachment" +msgstr "ŠŠµ Š¼Š¾Š¶Š°Š¼ Š“Š° Š³Š¾ Š¾ŃŠ²Š¾ŃŠ°Š¼ ŠæŃŠøŠ²ŃŠ·Š¾ŠŗŠ¾Ń" + +#: ../shell/ev-window.c:5272 +msgid "The attachment could not be saved." +msgstr "ŠŃŠøŠ²ŃŠ·Š¾ŠŗŠ¾Ń Š½Šµ Š¼Š¾Š¶Šµ Š“Š° ŃŠµ Š·Š°ŃŃŠ²Š°." + +#: ../shell/ev-window.c:5317 +msgid "Save Attachment" +msgstr "ŠŠ°ŃŃŠ²Š°Ń Š³Š¾ Š“Š¾Š“Š°ŃŠ¾ŠŗŠ¾Ń" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ŠæŠ¾ŃŃŠµŠ±Š½Š° Šµ Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "ŠŠ¾ ŠæŃŠ¾ŃŠøŃŃŠ²Š°ŃŠµ" + +#: ../shell/main.c:52 +msgid "The page of the document to display." +msgstr "Š”ŃŃŠ°Š½Š°ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š· Š¾Š“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń." + +#: ../shell/main.c:52 +msgid "PAGE" +msgstr "Š”Š¢Š ŠŠŠ" + +#: ../shell/main.c:53 +msgid "Run evince in fullscreen mode" +msgstr "ŠŃŃŃŠø Š½Š° ŃŠµŠ» ŠµŠŗŃŠ°Š½" + +#: ../shell/main.c:54 +msgid "Run evince in presentation mode" +msgstr "ŠŃŃŃŠø ŠŗŠ°ŠŗŠ¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#: ../shell/main.c:55 +msgid "Run evince as a previewer" +msgstr "ŠŃŃŃŠø ŠŗŠ°ŠŗŠ¾ ŠæŃŠµŠ³Š»ŠµŠ“ŃŠ²Š°Ń" + +#: ../shell/main.c:56 +msgid "The word or phrase to find in the document" +msgstr "ŠŠ±Š¾ŃŠ¾Ń ŠøŠ»Šø ŃŃŠ°Š·Š°ŃŠ° Š·Š° Š±Š°ŃŠ°ŃŠµ Š²Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Ń" + +#: ../shell/main.c:56 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:59 +msgid "[FILE...]" +msgstr "[ŠŠŠ¢ŠŠ¢ŠŠŠ...]" + +#: ../shell/main.c:325 +msgid "MATE Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ŃŠ²Š°Ń Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Š·Š° MATE" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŠ¾ŃŃŠ°ŠæŠ½Šø ŃŠµ boolean Š¾ŠæŃŠøŠø, ŃŃŠøŠŗŠ»ŠøŃŠ°Š½Š¾ Š²ŠŗŠ»ŃŃŃŠ²Š° ŃŠ»ŠøŠŗŠøŃŠŗŠø, Š¾Š“ŃŃŠøŠŗŠ»ŠøŃŠ°Š½Š¾ " +"ŠøŃŠŗŠ»ŃŃŃŠ²Š° ŠŗŃŠµŠøŃŠ°ŃŠµ Š½Š° Š½Š¾Š²Šø ŃŠ»ŠøŠŗŠøŃŠŗŠø" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ŠŠŗŠ»ŃŃŠø ŠæŃŠ°Š²ŠµŃŠµ Š½Š° ŃŠ»ŠøŠŗŠøŃŠø Š¾Š“ PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Š·Š° ŃŠ»ŠøŠŗŠøŃŠŗŠø Š²Š¾ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"ŠŠ°Š»ŠøŠ“Š½Š° ŠŗŠ¾Š¼Š°Š½Š“Š°ŃŠ° ŠæŠ»ŃŃ Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠøŃŠµ Š·Š° ŃŠ»ŠøŠŗŠøŃŠŗŠøŃŠµ Š²Š¾ PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń. ŠŃŠ¾Š²ŠµŃŠµŃŠµ " +"ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃŠ°ŃŠ° Š½Š° ŠŠ°ŃŃŠøŠ»ŃŃ Š·Š° ŠæŠ¾Š²ŠµŃŠµ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŠø." + diff --git a/po/ml.po b/po/ml.po new file mode 100644 index 00000000..a2d0ac72 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,1638 @@ +# translation of ml.po to +# translation of evince.master.ml.po to +# translation of evince.HEAD.ml.po to +# This file is distributed under the same license as the evince package. +# Copyright (C) 2006-2008 evince'S COPYRIGHT HOLDER. +# Ani Peter <apeter@redhat.com>, 2006, 2009. +# Santhosh Thottingal <santhosh.thottingal@gmail.com> , 2008 +msgid "" +msgstr "" +"Project-Id-Version: ml\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-04-13 16:02+0000\n" +"PO-Revision-Date: 2010-04-14 14:53+0530\n" +"Last-Translator: \n" +"Language-Team: <en@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą“ą“æą“¤ąµą“°ą“ą“„ą“¾ą“Ŗąµą“øąµą“¤ą“ą“ ą“”ąµą“ą“ą“Ŗąµą“°ą“øąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ąµą“³ ā%sā ą“ą“®ą“¾ą“Øąµāą“”ąµ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“æą“¶ą“ąµ: %s " + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą“ą“æą“¤ąµą“°ą“ą“„ą“¾ą“Ŗąµą“øąµą“¤ą“ą“ ą“”ąµą“ą“ą“Ŗąµą“°ą“øąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“²ąµā ā%sā ą“ą“®ą“¾ą“Øąµāą“”ąµ ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ąµ." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ą“ą“®ą“¾ą“Øąµāą“”ąµ ą“¶ą“°ą“æą“Æą“¾ą“Æą“æ ą“ ą“µą“øą“¾ą“Øą“æą“ąµą“ą“æą“²ąµą“²." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą“ą“°ąµ ą“ąµą“®ą“æą“ąµ ą“Ŗąµą“øąµą“¤ą“ MIME ą“¤ą“°ą“¤ąµą“¤ą“æą“²ąµą“³ąµą“³ą“¤ą“²ąµą“²: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą“ą“¤ą“°ą“¤ąµą“¤ą“æą“²ąµą“³ąµą“³ ą“ą“æą“¤ąµą“°ą“ą“„ą“¾ą“Ŗąµą“øąµą“¤ą“ą“ ą“”ąµą“ą“ą“Ŗąµą“°ą“øąµ ą“ąµą“Æąµą“Æąµą“µą“¾ą“Øąµą“³ąµą“³ ą“ą“®ą“¾ą“Øąµāą“”ąµ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą“ ą“Ŗą“°ą“æą“ą“æą“¤ą“®ą“¾ą“Æ MIME ą“°ąµą“¤ą“æ" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą“«ą“Æą“²ą“æą“Øąµąµ ą“¤ą“ą“°ą“¾ą“±ąµ ą“øą“ą“ą“µą“æą“ąµą“ą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ą“ą“°ąµāą“ąµą“ąµą“µą“æą“²ąµā ą“«ą“Æą“²ąµą“ą“³ąµā ą“²ą“ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "ą“ą“°ąµāą“ąµą“ąµą“µąµ %s-ą“²ąµā ą“ą“®ąµą“ąµą“ą“³ąµā ą“²ą“ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą“µąµą“ąµą“ą“æ ą“Øąµą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“æą“¶ą“ąµ." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ą“Ŗą“æą“¶ą“ąµ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą“¹ą“¾ą“øąµą“Æ ą“Ŗąµą“øąµą“¤ą“ą“ąµą“ą“³ąµā" + +#: ../backend/djvu/djvu-document.c:173 +#, fuzzy +msgid "DjVu document has incorrect format" +msgstr "DVI ą“°ąµą“ ą“¤ąµą“±ąµą“±ą“¾ą“Æ ą“°ąµą“¤ą“æą“Æą“æą“²ą“¾ą“£ąµąµ" + +#: ../backend/djvu/djvu-document.c:250 +#, fuzzy +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ą“°ąµą“ ą“Ŗą“²ą“¤ą“°ą“¤ąµą“¤ą“æą“²ąµą“³ąµą“³ ą“«ą“Æą“²ąµą“ą“³ąµā ą“ąµą“ą“æą“ąµą“°ąµāą“Øąµą“Øą“¤ą“¾ą“ąµą“Øąµą“Øąµ. ą“ ą“¤ą“æą“²ąµą“Øąµą“Øąµ ą“ ą“¤ą“æą“²ą“§ą“æą“ą“®ąµ ą“«ą“Æą“²ąµą“ą“³ą“æą“²ąµą“ąµą“ąµ " +"ą“Ŗąµą“°ą“µąµą“¶ą“æą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“ąµą“Øąµą“Øą“¤ą“²ąµą“²." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#, fuzzy +msgid "DjVu Documents" +msgstr "Djvu ą“°ąµą“ą“ą“³ąµā" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą“°ąµą“ ą“¤ąµą“±ąµą“±ą“¾ą“Æ ą“°ąµą“¤ą“æą“Æą“æą“²ą“¾ą“£ąµąµ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą“°ąµą“ą“ą“³ąµā" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ą“ą“µąµą“µąµąµ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą“ą“²ąµą“²" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "ą“°ąµą“¤ą“æ 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "ą“°ąµą“¤ą“æ 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "ą“°ąµą“¤ą“æ 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "ą“ąµą“°ąµą“ąµą“Ŗąµą“Ŗąµ" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "ą“ąµą“Ŗąµą“Ŗąµ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "ą“ąµą“Ŗąµą“Ŗąµ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "ą“ąµą“°ąµą“ąµą“Ŗąµą“Ŗąµ (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą“ ą“Ŗą“°ą“æą“ą“æą“¤ą“®ą“¾ą“Æ ą“°ąµą“¤ą“æą“Æą“æą“²ąµą“³ą“³ ą“ ą“ąµą“·ą“°ą“øą“ąµą“ą“Æą“" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą“Ŗąµą“°ą“æą“²ąµą“²" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ą“ą“ą“¬ą“”ąµą“”ą“ąµ ą“øą“¬ąµą“øąµą“±ąµą“±ąµ" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ą“ą“ą“¬ą“”ąµą“”ą“ąµ" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą“ą“ą“¬ą“”ąµą“”ą“ąµ ą“ ą“²ąµą“²" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ą“Ŗą“æ ą“”ą“æ ą“ą“«ąµ ą“°ąµą“ą“ą“³ąµā" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą“ ą“øą“¾ą“§ąµą“µą“¾ą“Æ ą“°ąµą“" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą“ą“ą“Ŗąµą“°ą“øąµą“øąµ ą“øąµą“²ąµą“”ąµą“ą“³ąµā" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą“Ŗą“æą“¶ą“ą“æą“²ąµą“²" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą“ą“µą“¶ąµą“Æą“¤ąµą“¤ą“æą“Øąµą“³ąµą“³ ą“®ąµą“®ąµą“®ą“±ą“æ ą“²ą“ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/impress/zip.c:59 +#, fuzzy +msgid "Cannot find ZIP signature" +msgstr "ą“øą“æą“Ŗąµą“Ŗą“æą“Øąµą“³ąµą“³ ą“ą“Ŗąµą“Ŗąµąµ ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²" + +#: ../backend/impress/zip.c:62 +#, fuzzy +msgid "Invalid ZIP file" +msgstr "ą“¤ąµą“±ąµą“±ą“¾ą“Æ ą“øą“æą“Ŗąµą“Ŗąµ ą“«ą“Æą“²ąµā" + +#: ../backend/impress/zip.c:65 +#, fuzzy +msgid "Multi file ZIPs are not supported" +msgstr "ą“®ą“³ąµāą“ąµą“ą“æ ą“«ą“Æą“²ąµā ą“øą“æą“Ŗąµą“Ŗąµą“ą“³ąµ ą“Ŗą“æą“Øąµą“¤ąµą“£ą“Æąµą“ąµą“ąµą“Øąµą“Øą“æą“²ąµą“²" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą“«ą“Æą“²ąµā ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą“«ą“Æą“²ą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“”ąµą“±ąµą“±ą“¾ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/impress/zip.c:74 +#, fuzzy +msgid "Cannot find file in the ZIP archive" +msgstr "ą“øą“æą“Ŗąµą“Ŗąµ ą“¶ąµą“ą“°ą“£ą“¤ąµą“¤ą“æą“²ąµā ą“«ą“Æą“²ąµā ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą“ ą“Ŗą“°ą“æą“ą“æą“¤ą“®ą“¾ą“Æ ą“Ŗą“æą“¶ą“ąµąµ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą“°ąµą“ ą“²ąµą“”ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą“°ąµą“ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą“Ŗąµą“øąµą“±ąµą“±ąµ ą“øąµą“ąµą“°ą“æą“Ŗąµą“±ąµą“±ąµ ą“°ąµą“ą“ą“³ąµā" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ā%sā ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ā%sā ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ā%sā ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ą“¤ą“°ą“ ą“«ą“Æą“²ąµą“ą“³ąµā ą“Ŗą“æą“Øąµą“¤ąµą“£ą“Æąµą“ąµą“ąµą“Øąµą“Øą“æą“²ąµą“²" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą“ą“²ąµą“²ą“¾ ą“°ąµą“ą“ą“³ąµą“" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą“ą“²ąµą“²ą“¾ ą“«ą“Æą“²ąµą“ą“³ąµą“" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą“ą“°ąµ ą“¤ą“¾ą“²ąµāą“ąµą“ą“¾ą“²ą“æą“ ą“”ą“Æą“±ą“ąµą“ą“±ą“æ ą“ą“£ąµą“ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“." + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą“ą“°ąµ ą“¤ą“¾ą“²ąµāą“ąµą“ą“¾ą“²ą“æą“ ą“”ą“Æą“±ą“ąµą“ą“±ą“æ ą“ą“£ąµą“ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą“øą“¾ą“§ąµą“µą“¾ą“Æ ą“ą“°ąµ .desktop ą“«ą“Æą“²ąµā ą“ ą“²ąµą“²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą“¤ą“æą“°ą“æą“ąµą“ą“±ą“æą“Æą“¾ą“Øą“¾ą“ą“¾ą“¤ąµą“¤ ą“Ŗą“£ą“æą“Æą“æą“ ą“«ą“Æą“²ąµā ą“Ŗą“¤ą“æą“Ŗąµą“Ŗąµąµ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą“¤ąµą“ą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą“ą“ąµą“ą“¾ą“®ąµą“ą“²ą“Æą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“”ąµą“ąµą“Æąµą“®ąµą“Øąµą“±ąµą“ą“³ąµā ą“Ŗąµą“°ą“Æąµą“ą“ ą“øąµą“µą“æą“ą“°ą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“²ąµą“²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą“¤ą“æą“°ą“æą“ąµą“ą“±ą“æą“Æą“¾ą“Øąµā ą“ą““ą“æą“Æą“¾ą“¤ąµą“¤ ą“¤ąµą“ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ąµą“³ ą“ą“ąµą“ą“æą“ą“: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ą“Ŗą“£ą“æą“Æą“æą“ ą“ ą“ą“ą“¤ąµą“¤ą“æą“²ąµą“ąµą“ąµąµ ą“”ąµą“ąµą“Æąµą“®ąµą“Øąµą“±ąµ URI ą“ ą“Æą“ąµą“ą“¾ą“Øąµā ą“ą““ą“æą“Æą“æą“²ąµą“²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą“¤ąµą“ą“ąµą“ą“¾ą“Øąµā ą“Ŗą“±ąµą“±ą“¾ą“¤ąµą“¤ ą“ą“Øą“" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą“øąµą“·ą“Øąµā ą“®ą“¾ą“Øąµą“ą“±ą“æą“²ąµą“Æąµą“ąµą“ąµą“³ąµą“³ ą“¬ą“Øąµą“§ą“ ą“Øą“æą“°ąµāą“ąµą“ąµą“µą“®ą“¾ą“ąµą“ąµą“" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą“øą“ąµą“ąµą“ą“°ą“£ą“ąµą“ą“³ąµā ą“øąµą“ąµą“·ą“æą“ąµą“ ą“«ą“Æą“²ąµā ą“Ŗą“±ą“Æąµą“" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą“øąµą“·ą“Øąµā ą“®ą“¾ą“Øąµą“ąµą“®ąµą“Øąµą“±ąµ ą“ą“”ą“æ ą“Ŗą“±ą“Æąµą“" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą“øąµą“·ą“Øąµā ą“®ą“¾ą“Øąµą“ąµą“®ąµą“Øąµą“±ąµ ą“ą“Ŗą“¾ą“§ą“æą“ą“³ąµā:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą“øąµą“·ą“Øąµā ą“®ą“¾ą“Øąµą“ąµą“®ąµą“Øąµą“±ą“æą“Øąµą“³ąµą“³ ą“ą“Ŗą“¾ą“§ą“æą“ą“³ąµā ą“ą“¾ą“£ą“æą“Æąµą“ąµą“ąµą“" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą“ą“¾ą“£ą“æą“ąµą“ąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą“ąµą“³ąµā ą“¬ą“¾ą“±ą“æą“²ąµā ą“®ą“¾ą“±ąµą“±ąµą“ " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą“¤ąµą“°ą“ąµą“ąµą“ąµą“¤ąµą“¤ ą“µą“øąµą“¤ąµą“µą“æą“Øąµ ą“ąµą“³ąµā ą“¬ą“¾ą“±ą“æą“²ąµā ą“®ą“¾ą“±ąµą“±ąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą“ąµą“³ąµā ą“¬ą“¾ą“±ą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ _ą“Øąµą“ąµą“ą“ ą“ąµą“Æąµą“Æąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą“¤ąµą“°ą“ąµą“ąµą“ąµą“¤ąµą“¤ ą“µą“øąµą“¤ąµą“µą“æą“Øąµ ą“ąµą“³ąµā ą“¬ą“¾ą“±ą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“Øąµą“ąµą“ą“ ą“ąµą“Æąµą“Æąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā _ą“Øąµą“ąµą“ą“ ą“ąµą“Æąµą“Æąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą“¤ąµą“°ą“ąµą“ąµą“ąµą“¤ąµą“¤ ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā ą“Øąµą“ąµą“ą“ ą“ąµą“Æąµą“Æąµą“" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą“µą“æą“ą“µą“ą“Æą“¾ą“³ą“" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ą“ ą“µą“¤ą“°ą“£ ą“°ąµą“¤ą“æą“Æą“æą“²ąµā ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5301 +msgid "Best Fit" +msgstr "ą“ą“±ąµą“±ą“µąµą“ ą“ ą“Øąµą“Æąµą“ąµą“Æą“®ą“¾ą“Æ ą“µą“²ąµą“Ŗąµą“Ŗą“" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą“Ŗąµą“ą“æą“Øąµą“±ąµ ą“µąµą“¤ą“æą“Æą“Øąµą“øą“°ą“æą“ąµą“ąµ ą“ą“¾ą“²ą“ą“¤ąµą“¤ą“æą“²ąµā ą“¤ą“¾ą“³ąµā ą“Ŗąµą“°ą“¦ą“°ąµāą“¶ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4167 +#: ../shell/ev-window-title.c:149 ../shell/main.c:287 +#, c-format +msgid "Document Viewer" +msgstr "ą“°ąµą“ą“¾ą“¦ą“°ąµāą“¶ą“æą“Øą“æ" + +#: ../data/evince.desktop.in.in.h:2 +#, fuzzy +msgid "View multi-page documents" +msgstr "ą“ ą“Øą“µą“§ą“æ ą“Ŗąµą“ąµą“ą“³ąµą“³ą“³ ą“°ąµą“ ą“ą“¾ą“£ąµą“" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą“°ąµą“ą“Æą“æą“²ąµą“³ąµą“³ ą“Ŗą“°ą“æą“®ą“æą“¤ą“æą“ą“³ąµ ą“®ą“¾ą“±ąµą“±ą“æ ą“ą““ąµą“¤ąµą“" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ą“°ąµą“ą“Æą“æą“²ąµą“³ąµą“³ ą“Ŗą“°ą“æą“®ą“æą“¤ą“æą“ą“³ąµ ą“®ą“¾ą“±ąµą“±ą“æ ą“ą““ąµą“¤ąµą“, ą“Ŗą“ą“°ąµāą“¤ąµą“¤ąµą“µą“¾ą“Øąµ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“µą“¾ą“Øąµ ą“ą“³ąµą“³ ą“Ŗą“°ą“æą“®ą“æą“¤ą“æ ą“Ŗąµą“²ąµ." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą“¤ą“¾ą“²ąµāą“ąµą“ą“¾ą“²ą“æą“ ą“«ą“Æą“²ąµā ą“µąµą“ąµą“ą“æ ą“Øąµą“ąµą“ąµą“" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą“øą“ąµą“ąµą“ą“°ą“£ ą“«ą“Æą“²ąµā ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "ą“ąµą“Øąµą“ ą“°ąµą“ą“¾ą“¦ą“°ąµāą“¶ą“æą“Øą“æ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:2965 +msgid "Failed to print document" +msgstr "ą“°ąµą“ ą“Ŗąµą“°ą“æą“Øąµāą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ąµ" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą“¤ąµą“°ą“ąµą“ąµą“ąµą“¤ąµą“¤ ą“Ŗąµą“°ą“æą“Øąµą“±ą“°ąµā '%s' ą“²ą“ąµą“Æą“®ą“²ąµą“²" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5050 +msgid "_Previous Page" +msgstr "ą“¤ąµą“ąµą“ąµ ą“®ąµą“®ąµą“Ŗąµą“³ą“³ ą“¤ą“¾ą“³ąµā " + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5051 +msgid "Go to the previous page" +msgstr "ą“®ąµą“®ąµą“Ŗąµą“³ąµą“³ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5053 +msgid "_Next Page" +msgstr "_ą“ ą“ąµą“¤ąµą“¤ ą“¤ą“¾ą“³ąµā" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5054 +msgid "Go to the next page" +msgstr "ą“¤ąµą“ąµą“ą“ąµą“¤ąµą“¤ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5037 +msgid "Enlarge the document" +msgstr "ą“°ąµą“ ą“µą“²ąµą“¤ą“¾ą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5040 +msgid "Shrink the document" +msgstr "ą“°ąµą“ ą“ąµą“±ąµą“¤ą“¾ą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą“ ą“ąµą“ą“ą“æą“Æąµą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5008 +msgid "Print this document" +msgstr "ą“ ą“°ąµą“ ą“ ą“ąµą“ą“ą“æą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5152 +msgid "_Best Fit" +msgstr "_ą“ ą“Øąµą“Æąµą“ąµą“Æą“®ą“¾ą“Æ ą“µą“²ąµą“Ŗąµą“Ŗą“" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5153 +msgid "Make the current document fill the window" +msgstr "ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“°ąµą“ ą“øąµą“ąµą“°ąµą“Øąµą“±ąµ ą“Ŗą“°ą“¾ą“®ą“¾ą“µą“§ą“æ ą“µą“²ąµą“Ŗąµą“Ŗą“¤ąµą“¤ą“æą“²ąµā ą“ą“ąµą“ą“æ ą“ą“¾ą“²ą“ą“ ą“Øą“æą“±ą“Æąµą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5155 +msgid "Fit Page _Width" +msgstr "ą“Ŗąµą“ą“æą“Øąµą“±ąµ _ą“µąµą“¤ą“æą“Æą“Øąµą“øą“°ą“æą“ąµą“ąµąµ" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5156 +msgid "Make the current document fill the window width" +msgstr "" +"ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“°ąµą“ą“Æąµą“ąµ ą“µąµą“¤ą“æą“Æą“Øąµą“øą“°ą“æą“ąµą“ąµ ą“øąµą“ąµą“°ąµą“Øąµą“±ąµ ą“Ŗą“°ą“¾ą“®ą“¾ą“µą“§ą“æ ą“µą“²ąµą“Ŗąµą“Ŗą“¤ąµą“¤ą“æą“²ąµā ą“ą“ąµą“ą“æ ą“ą“¾ą“²ą“ą“ ą“Øą“æą“±ą“Æąµą“ąµą“ąµą“" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5223 +msgid "Page" +msgstr "ą“¤ą“¾ą“³ąµā" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5224 +msgid "Select Page" +msgstr "ą“¤ą“¾ą“³ąµā ą“¤ąµą“°ą“ąµą“ąµą“ąµą“ąµą“ąµą“" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą“°ąµą“" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą“¤ą“²ą“ąµą“ąµą“ąµą“ąµ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą“øąµą“„ą“¾ą“Øą“:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą“µą“æą“·ą“Æą“:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ą“°ą“ą“Æą“æą“¤ą“¾ą“µąµąµ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą“ąµ ą“µąµą“°ąµāą“”ąµą“ą“³ąµā:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą“Øą“æą“°ąµāą“®ąµą“®ą“¾ą“¤ą“¾ą“µąµ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą“øąµą“·ąµą“ą“æą“ą“°ąµāą“¤ąµą“¤ą“¾ą“µąµ:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą“øąµą“·ąµą“ą“æą“ąµą“ą“¤ąµ:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą“®ą“¾ą“±ąµą“±ą“ ą“µą“°ąµą“¤ąµą“¤ą“æą“Æą“¤ąµ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą“Ŗąµą“ąµą“ą“³ąµą“ąµ ą“ą“£ąµą“£ą“:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą“ą“Ŗąµą“±ąµą“±ą“æą“®ąµą“øąµą“”ąµ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą“°ąµą“¤ą“æ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą“øąµą“°ą“ąµą“·ą“æą“¤ą“¤ąµą“µą“:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą“Ŗąµą“Ŗąµą“Ŗą“±ą“æą“Øąµą“±ąµ ą“µąµą“Æą“¾ą“Ŗąµą“¤ą“æ:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1868 +msgid "None" +msgstr "ą“ą“Øąµą“Øąµą“®ą“æą“²ąµą“²" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, fuzzy, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:288 +#, fuzzy, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ą“ą“ąµą“ąµ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą“ą“æą“¤ąµą“°ą“ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą“²ą“¾ą“Øąµāą“”ąµą“øąµą“ąµą“Æą“æą“Ŗąµą“Ŗąµ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d-ą“Øąµą“±ąµ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d-ą“Øąµą“±ąµ" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#, fuzzy +msgid "Preparing to printā¦" +msgstr "ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“..." + +#: ../libview/ev-print-operation.c:336 +#, fuzzy +msgid "Finishingā¦" +msgstr "ą“Ŗąµą“°ąµāą“¤ąµą“¤ą“æą“Æą“¾ą“ąµą“ąµą“Øąµą“Øąµ..." + +#: ../libview/ev-print-operation.c:338 +#, fuzzy, c-format +msgid "Printing page %d of %dā¦" +msgstr "ą“¤ą“¾ą“³ąµā %d ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ, ą“®ąµą“¤ąµą“¤ą“ %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą“ ą“ ą“ąµą“ą“ą“æą“Æą“Øąµą“¤ąµą“°ą“¤ąµą“¤ą“æą“²ąµā ą“ ą“ąµą“ą“ą“æą“Æąµą“ąµą“ąµą“µą“¾ą“Øąµā ą“ ą“ą“®ąµą“Ŗąµą“Æąµą“ąµą“ą“±ą“æą“²ąµā ą“Ŗą“æą“Øąµą“¤ąµą“£ ą“²ą“ąµą“Æą“®ą“²ąµą“²." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą“¤ąµą“±ąµą“±ą“¾ą“Æ ą“¤ą“¾ą“³ąµā ą“øą“ąµą“ąµą“ą“°ą“£ą“" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą“®ąµą“Øąµą“Øą“±ą“æą“Æą“æą“Ŗąµą“Ŗąµąµ" + +#: ../libview/ev-print-operation.c:1229 +#, fuzzy +msgid "Your print range selection does not include any pages" +msgstr "ą“Øą“æą“ąµą“ą“³ąµā ą“¤ąµą“°ą“ąµą“ąµą“ąµą“¤ąµą“¤ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“Ŗą“°ą“æą“§ą“æą“Æą“æą“²ąµā ą“ą“°ąµ ą“¤ą“¾ą“³ąµą“ ą“ą“³ąµāą“Ŗąµą“Ŗąµą“ąµą“Øąµą“Øą“æą“²ąµą“²" + +#: ../libview/ev-print-operation.c:1863 +msgid "Page Scaling:" +msgstr "" + +#: ../libview/ev-print-operation.c:1869 +msgid "Shrink to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1870 +msgid "Fit to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1873 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" + +#: ../libview/ev-print-operation.c:1885 +msgid "Auto Rotate and Center" +msgstr "" + +#: ../libview/ev-print-operation.c:1888 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" + +#: ../libview/ev-print-operation.c:1893 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1895 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1977 +msgid "Page Handling" +msgstr "" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d ą“¤ą“¾ą“³ąµā ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą“ąµą“¬ąµą“°ąµāą“”ąµ ą“ą“Ŗą“Æąµą“ą“æą“ąµą“ąµ ą“®ąµą“ą“³ą“æą“²ąµą“ąµą“ąµ ą“Ŗąµą“µąµą“" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą“ąµą“¬ąµą“°ąµāą“”ąµ ą“ą“Ŗą“Æąµą“ą“æą“ąµą“ąµ ą“¤ą“¾ą““ąµą“ąµą“ąµ ą“Ŗąµą“µąµą“" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą“ą“¾ą““ąµą“ ą“®ąµą“ą“³ą“æą“²ąµą“ąµą“ąµ ą“ą“ąµą“ąµą“" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą“ą“¾ą““ąµą“ ą“¤ą“¾ą““ąµą“ąµą“ą“¾ą“ąµą“ąµą“" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą“°ąµą“ą“¾ ą“ą“¾ą““ąµą“" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "ą“Ŗąµą“ąµą“£ąµą“ ą“¤ą“¾ą“³ąµā:" + +#: ../libview/ev-view-presentation.c:970 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "ą“ ą“µą“¤ą“°ą“£ą“ ą“ ą“µą“øą“¾ą“Øą“æą“ąµą“ą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ. ą“Ŗąµą“±ą“¤ąµą“¤ąµ ą“ą“ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ Esc ą“ ą“®ą“°ąµāą“¤ąµą“¤ąµą“." + +#: ../libview/ev-view.c:1727 +msgid "Go to first page" +msgstr "ą“ą“¦ąµą“Æą“¤ąµą“¤ąµ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1729 +msgid "Go to previous page" +msgstr "ą“®ąµą“®ąµą“Ŗąµą“³ą“³ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1731 +msgid "Go to next page" +msgstr "ą“ ą“ąµą“¤ąµą“¤ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1733 +msgid "Go to last page" +msgstr "ą“ ą“µą“øą“¾ą“Ø ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1735 +msgid "Go to page" +msgstr "ą“Ŗąµą“ąµą“£ąµą“ ą“¤ą“¾ą“³ąµā" + +#: ../libview/ev-view.c:1737 +msgid "Find" +msgstr "ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../libview/ev-view.c:1765 +#, c-format +msgid "Go to page %s" +msgstr "%s ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%sā ą“«ą“Æą“²ą“æą“²ąµą“³ą“³ %s-ą“²ąµą“ąµą“ąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1774 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą“«ą“Æą“²ą“æą“²ąµą“ąµą“ąµ ą“Ŗąµą“ąµą“" + +#: ../libview/ev-view.c:1782 +#, c-format +msgid "Launch %s" +msgstr "%s ą“Ŗąµą“°ą“¦ą“°ąµāą“¶ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../libview/ev-view.c:3926 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +#, fuzzy +msgid "Loadingā¦" +msgstr "ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øąµ..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“£ąµą“ą“¤ąµąµ:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5025 +msgid "Find Pre_vious" +msgstr "_ą“®ąµą“®ąµą“Ŗąµą“³ąµą“³ą“¤ąµąµ ą“ą“£ąµą“ąµ ą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą“¤ą“æą“°ą“ąµą“ą“æą“²ąµā ą“Øą“ą“¤ąµą“¤ąµą“Øąµą“Ø ą“µą“¾ą“ą“ą“ ą“ą“¤ą“æą“Øąµ ą“®ąµą“Øąµą“Ŗąµ ą“ą“¤ąµ ą“µą“°ą“æą“Æą“æą“²ąµā ą“ą“³ą“³ą“¤ąµ ą“ą“Øąµą“Øąµ ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5023 +msgid "Find Ne_xt" +msgstr "_ą“ ą“ąµą“¤ąµą“¤ą“¤ąµ ą“ą“£ąµą“ąµ ą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą“¤ą“æą“°ą“ąµą“ą“æą“²ąµā ą“Øą“ą“¤ąµą“¤ąµą“Øąµą“Ø ą“µą“¾ą“ą“ą“ ą“ą“¤ą“æą“Øąµ ą“¶ąµą“·ą“ ą“ą“¤ąµ ą“µą“°ą“æą“Æą“æą“²ąµā ą“ą“³ą“³ą“¤ąµ ą“ą“Øąµą“Øąµ ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_ą“ąµą“øąµ ą“øąµą“Øąµāą“øą“æą“±ąµą“±ąµą“µąµ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą“ąµą“øąµ ą“øąµą“Øąµāą“øą“æą“±ąµą“±ąµą“µąµ ą“¤ą“æą“°ą“ąµą“ą“æą“²ąµā ą“ąµą“ą“æą“³ąµā ą“ąµą“Æąµą“Æąµą“" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą“°ąµą“ą“Æąµą“ąµą“ąµą“³ą“³ ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ" + +#: ../shell/ev-convert-metadata.c:88 +#, fuzzy, c-format +msgid "Converting %s" +msgstr "%s ą“¤ąµą“ą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą“ą“±ąµą“±ą“µąµą“ ą“ą“ąµą“µą“æą“²ąµā ą“ą“Ŗą“Æąµą“ą“æą“ąµą“ ą“ą“°ąµ ą“°ąµą“ ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą“°ąµą“ ą“Ŗąµą“ąµą“ą“æą“Æ ą“ ą“µą“øąµą“„ą“Æą“æą“²ą“¾ą“£ąµąµ. ą“ą“¤ąµ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ ą“¶ą“°ą“æą“Æą“¾ą“Æ ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“Øą“²ąµāą“ąµą“£ąµą“ą“¤ą“¾ą“£ąµ." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą“°ąµą“ą“Æąµą“ąµ _ą“Ŗąµą“ąµą“ąµ ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“Øą“²ąµāą“ąµą“" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“ą“µą“¶ąµą“Æą“®ąµą“£ąµą“ąµ" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą“°ąµą“ ā%sā ą“Ŗąµą“ąµą“ą“æą“Æą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ, ą“ ą“¤ąµ ą“¤ąµą“±ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ ą“ą“°ąµ ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“ą“µą“¶ąµą“Æą“®ą“¾ą“£ąµ." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą“ ą“ą“Æą“¾ą“³_ą“µą“¾ą“ąµą“ąµąµ:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“ą“ą“Øąµā _ą“®ą“±ą“ąµą“ąµą“" + +#: ../shell/ev-password-view.c:380 +#, fuzzy +msgid "Remember password until you _log out" +msgstr "_ą“Ŗąµą“±ą“¤ąµą“¤ąµą“Ŗąµą“ąµą“Øąµą“Øą“¤ąµą“µą“°ąµ ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“ą“°ąµāą“¤ąµą“¤ąµą“µąµą“Æąµą“ąµą“ąµą“ " + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą“ą“ąµą“ą“¾ą“²ą“¤ąµą“¤ąµą“Æąµą“ąµą“ąµą“®ą“¾ą“Æą“æ _ą“ą“°ąµāą“¤ąµą“¤ąµą“µąµą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą“ąµą“£ą“ą“£ą“ąµą“ą“³ąµā" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą“øą“¾ą“§ą“¾ą“°ą“£" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą“ ą“ąµą“·ą“°ą“øą“ąµą“ą“Æą“ąµą“ą“³ąµā" + +#: ../shell/ev-properties-dialog.c:118 +#, fuzzy +msgid "Document License" +msgstr "ą“°ąµą“ą“¾ą“¦ą“°ąµāą“¶ą“æą“Øą“æ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą“ ą“ąµą“·ą“°ą“øą“ąµą“ą“Æą“" + +#: ../shell/ev-properties-fonts.c:162 +#, fuzzy, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą“ ą“ąµą“·ą“°ą“øą“ąµą“ą“Æą“ ą“øą“ą“¬ą“Øąµą“§ą“æą“ąµą“ąµą“³ą“³ ą“µą“æą“µą“°ą“ąµą“ą“³ąµā ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øąµ...%3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµą“ą“³ąµā" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą“²ąµą“Æą“±ąµą“ą“³ąµā" + +#: ../shell/ev-sidebar-links.c:335 +#, fuzzy +msgid "Printā¦" +msgstr "ą“ ą“ąµą“ą“ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą“øąµą“ą“æą“" + +#: ../shell/ev-sidebar-thumbnails.c:962 +msgid "Thumbnails" +msgstr "ą“Øą“ą“ą“æą“¤ąµą“°ą“ąµą“ą“³ąµā" + +#: ../shell/ev-window.c:836 +#, fuzzy, c-format +msgid "Page %s ā %s" +msgstr "ą“¤ą“¾ą“³ąµā %s - %s" + +#: ../shell/ev-window.c:838 +#, c-format +msgid "Page %s" +msgstr "%s ą“¤ą“¾ą“³ąµā" + +#: ../shell/ev-window.c:1282 +msgid "The document contains no pages" +msgstr "ą“ ą“°ąµą“ą“Æą“æą“²ąµā ą“¤ą“¾ą“³ąµą“ą“³ąµą“Øąµą“Øąµą“ ą“ą“²ąµą“²" + +#: ../shell/ev-window.c:1285 +msgid "The document contains only empty pages" +msgstr "ą“ ą“°ąµą“ą“Æą“æą“²ąµā ą“¶ąµą“Øąµą“Æą“®ą“¾ą“Æ ą“¤ą“¾ą“³ąµą“ą“³ąµā ą“®ą“¾ą“¤ąµą“°ą“®ąµą“Æąµą“³ąµą“³ąµ" + +#: ../shell/ev-window.c:1479 ../shell/ev-window.c:1645 +msgid "Unable to open document" +msgstr "ą“°ąµą“ ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²" + +#: ../shell/ev-window.c:1616 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā-ą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“°ąµą“ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:1758 ../shell/ev-window.c:2035 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą“°ąµą“ ą“”ąµą“£ąµāą“²ąµą“ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ (%d%%)" + +#: ../shell/ev-window.c:1791 +#, fuzzy +msgid "Failed to load remote file." +msgstr "ą“°ąµą“ ą“µąµą“£ąµą“ąµą“ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ąµ." + +#: ../shell/ev-window.c:1979 +#, c-format +msgid "Reloading document from %s" +msgstr "%s-ą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“°ąµą“ ą“µąµą“£ąµą“ąµą“ ą“ą“ąµą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:2011 +msgid "Failed to reload document." +msgstr "ą“°ąµą“ ą“µąµą“£ąµą“ąµą“ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“Ŗąµą“Ŗąµą“ąµą“ąµ." + +#: ../shell/ev-window.c:2166 +msgid "Open Document" +msgstr "ą“°ąµą“ ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:2430 +#, c-format +msgid "Saving document to %s" +msgstr "%s-ą“²ąµą“ąµą“ąµąµ ą“°ąµą“ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s-ą“²ąµą“ąµą“ąµąµ ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving image to %s" +msgstr "%s-ą“²ąµą“ąµą“ąµąµ ą“ą“æą“¤ąµą“°ą“ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:2480 ../shell/ev-window.c:2580 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sā ą“ą“Æą“æ ą“«ą“Æą“²ąµā ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²." + +#: ../shell/ev-window.c:2511 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą“°ąµą“ ą“ ą“Ŗąµāą“²ąµą“”ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ (%d%%)" + +#: ../shell/ev-window.c:2515 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“®ąµą“Øąµą“±ąµ ą“ ą“Ŗąµāą“²ąµą“”ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ (%d%%)" + +#: ../shell/ev-window.c:2519 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą“ą“æą“¤ąµą“°ą“ ą“ ą“Ŗąµāą“²ąµą“”ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ (%d%%)" + +#: ../shell/ev-window.c:2641 +msgid "Save a Copy" +msgstr "ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:2909 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą“ąµą“Æąµą“µą“æą“²ąµā %d ą“ąµą“²ą“æ ą“¬ą“¾ą“ąµą“ą“æą“Æąµą“£ąµą“ąµąµ" +msgstr[1] "ą“ąµą“Æąµą“µą“æą“²ąµā %d ą“ąµą“²ą“æą“ą“³ąµā ą“¬ą“¾ą“ąµą“ą“æą“Æąµą“£ąµą“ąµąµ" + +#: ../shell/ev-window.c:3022 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā ą“ąµą“²ą“æ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:3234 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"ą“ ą“ą“Æąµą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµąµ ą“®ąµą“®ąµą“Ŗą“¾ą“Æą“æ ā%sā ą“ąµą“²ą“æ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ąµąµ ą“Ŗąµą“°ąµāą“¤ąµą“¤ą“æą“Æą“¾ą“ąµą“Øąµą“Øą“¤ąµąµ ą“µą“°ąµ ą“ą“¾ą“¤ąµą“¤ą“æą“°ą“æą“ąµą“ą“£ą“®ąµ?" + +#: ../shell/ev-window.c:3237 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“²ą“æą“ą“³ąµā ą“øą“ąµą“µą“®ą“¾ą“£ąµąµ. ą“ ą“ą“Æąµą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµąµ ą“®ąµą“®ąµą“Ŗą“¾ą“Æą“æ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“Ŗąµą“°ąµāą“¤ąµą“¤ą“æą“Æą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ " +"ą“ą“¾ą“¤ąµą“¤ą“æą“°ą“æą“ąµą“ąµą“?" + +#: ../shell/ev-window.c:3249 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą“Øą“æą“ąµą“ą“³ąµā ą“ą“¾ą“²ą“ą“ ą“ ą“ą“ąµą“ą“¾ą“²ąµā, ą“¬ą“¾ą“ąµą“ą“æą“Æąµą“³ąµą“³ ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“µą“¾ą“Øąµą“³ąµą“³ ą“ąµą“²ą“æą“ą“³ąµā ą“Øą“ą“Ŗąµą“Ŗą“æą“²ą“¾ą“ąµą“Øąµą“Øą“¤ą“²ąµą“²." + +#: ../shell/ev-window.c:3253 +msgid "Cancel _print and Close" +msgstr "_ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ąµąµ ą“±ą“¦ąµą“¦ą“¾ą“ąµą“ą“æ ą“ ą“ą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:3257 +msgid "Close _after Printing" +msgstr "ą“Ŗąµą“°ą“æą“Øąµą“±ąµ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“æą“Øąµąµ _ą“¶ąµą“·ą“ ą“ ą“ą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:3819 +msgid "Toolbar Editor" +msgstr "ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā ą“ą“”ą“æą“±ąµą“±ą“°ąµā" + +#: ../shell/ev-window.c:3952 +msgid "There was an error displaying help" +msgstr "ą“øą“¹ą“¾ą“Æą“ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“ą“°ąµ ą“Ŗą“æą“¶ą“ąµ" + +#: ../shell/ev-window.c:4163 +#, fuzzy, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą“°ąµą“ ą“Øą“æą“°ąµą“ąµą“·ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ą“³ ą“øą“ą“µą“æą“§ą“¾ą“Øą“.\n" +"ą“Ŗąµą“Ŗąµą“³ą“°ąµā %s (%s) ą“ą“Ŗą“Æąµą“ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:4194 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ą“ą“µą“æą“Øąµāą“øąµ ą“ą“°ąµ ą“ą“°ąµ ą“øąµą“µą“¤ą“Øąµą“¤ąµą“° ą“øąµą“«ąµą“±ąµą“±ąµāą“µąµą“Æą“°ąµā ą“ą“£ąµąµ; ą“øąµą“µą“¤ą“Øąµą“¤ąµą“° ą“øąµą“«ąµą“±ąµą“±ąµāą“µąµą“Æą“°ąµā ą“«ąµą“£ąµą“ąµą“·ą“Øąµā ą“Ŗąµą“°ą“øą“æą“¦ąµą“§ąµą“ą“°ą“æą“ąµą“ą“ąµą“Øąµ " +"ą“ą“Øą“±ą“²ąµā ą“Ŗą“¬ąµą“²ą“æą“ąµ ą“²ąµą“øą“Øąµāą“øąµ ą“ ą“Øąµą“øą“°ą“æą“ąµą“ąµąµ ą“Øą“æą“ąµą“ą“³ąµāą“ąµą“ą“æą“¤ąµąµ ą“µąµą“£ąµą“ąµą“ ą“µą“æą“¤ą“°ą“£ą“ ą“ąµą“Æąµą“Æą“¾ą“µąµą“Øąµą“Øą“¤ąµą“ " +"ą“®ą“¾ą“±ąµą“±ą“ąµą“ą“³ąµāą“µą“°ąµą“¤ąµą“¤ą“¾ą“µąµą“Øąµą“Øą“¤ąµą“®ą“¾ą“£ąµąµ; ą“²ąµą“øą“Øąµāą“øą“æą“Øąµą“±ąµ ą“²ą“ąµą“ą“ 2 ą“ ą“²ąµą“²ąµą“ąµą“ą“æą“²ąµā (ą“Øą“æą“ąµą“ą“³ąµā ą“¤ąµą“°ą“ąµą“ąµą“ąµą“ąµą“ąµą“Øąµą“Ø) ą“ ą“¤ą“æą“Øąµąµ " +"ą“¶ąµą“·ą“®ąµą“³ąµą“³ą“ą“¤ąµą“ąµą“ą“æą“²ąµą“ ą“²ą“ąµą“ą“®ąµ ą“ą“Ŗą“Æąµą“ą“æą“ąµą“ą“¾ą“.\n" + +#: ../shell/ev-window.c:4198 +msgid "" +"Evince 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.\n" +msgstr "" +"ą“ą“µą“æą“Øąµāą“øąµ ą“Øą“æą“ąµą“ą“³ąµāą“ąµą“ąµąµ ą“Ŗąµą“°ą“Æąµą“ą“Øą“Ŗąµą“Ŗąµą“ąµą“ ą“ą“Øąµą“Ø ą“Ŗąµą“°ą“¤ąµą“ąµą“·ą“Æą“æą“²ąµā ą“µą“æą“¤ą“°ą“£ą“ ą“ąµą“Æąµą“Æąµą“Øąµą“Øą“¤ą“¾ą“£ąµąµ,ą“Ŗą“ąµą“·ąµ, ą“ą“¤ą“æą“Øąµąµ ą“ą“°ąµ " +"ą“µą“¾ą“±ą“£ąµą“ą“æą“Æąµą“ ą“²ą“ąµą“Æą“®ą“²ąµą“²; ą“µąµą“Æą“¾ą“Ŗą“¾ą“°ą“Æąµą“ąµą“Æą“¤ą“Æąµ ą“ą“°ąµ ą“Ŗąµą“°ą“¤ąµą“Æąµą“ ą“ą“¾ą“°ąµą“Æą“¤ąµą“¤ą“æą“Øąµąµą“ąµą“°ąµą“Øąµą“Øą“¤ą“¾ą“£ąµą“Øąµą“Øąµ ą“Ŗą“°ąµą“ąµą“·ą“®ą“¾ą“Æą“æ " +"ą“ą“³ąµāāą“ąµą“ąµą“³ąµą“³ąµą“Øąµą“Ø ą“µą“¾ą“±ą“£ąµą“ą“æ ą“Ŗąµą“²ąµą“ ą“ą“²ąµą“². ą“ąµą“ąµą“¤ą“²ąµā ą“µą“æą“µą“°ą“ąµą“ą“³ąµāą“ąµą“ąµąµą“ąµą“Øąµ ą“ą“Øą“±ą“²ąµā ą“Ŗą“¬ąµą“²ą“æą“ąµ ą“²ąµą“øą“Øąµāą“øąµ ą“ą“¾ą“£ąµą“.\n" + +#: ../shell/ev-window.c:4202 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Evince-ą“Øąµą“ąµą“Ŗąµą“Ŗą“ ą“Øą“æą“ąµą“ą“³ąµāą“ąµą“ąµ GNU General Public License-ą“Øąµą“±ąµ ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµą“ " +"ą“²ą“ą“æą“ąµą“ą“æą“ąµą“ąµą“£ąµą“ą“¾ą“µą“£ą“; ą“ą“²ąµą“²ą“¾ą“Æąµą“ąµą“ą“æą“²ąµā, ą“¦ą“Æą“µą“¾ą“Æą“æ ą“¤ą“¾ą““ąµ ą“Ŗą“±ą“Æąµą“Øąµą“Ø ą“®ąµą“²ąµāą“µą“æą“²ą“¾ą“øą“¤ąµą“¤ą“æą“²ąµą“ąµą“ąµ ą“ą““ąµą“¤ąµą“: Free " +"Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-" +"1307 USA\n" + +#: ../shell/ev-window.c:4227 +msgid "Evince" +msgstr "ą“ą“µą“æą“Øąµāą“øąµ" + +#: ../shell/ev-window.c:4230 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 ą“ą“µą“æą“Øąµāą“øąµ ą“°ą“ą“Æą“æą“¤ą“¾ą“ąµą“ą“³ąµā" + +#: ../shell/ev-window.c:4236 +msgid "translator-credits" +msgstr "" +"ą“ ą“Øą“æ ą“Ŗąµą“±ąµą“±ą“°ąµā <peter.ani@gmail.com>\n" +"ą“øą“Øąµą“¤ąµą“·ąµ ą“¤ąµą“ąµą“ą“æą“ąµą“ą“²ąµā <santhosh.thottingal@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4506 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą“ ą“¤ą“¾ą“³ą“æą“²ąµā ą“ą“£ąµą“ąµą“ą“æą“ąµą“ą“æą“Æą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ" +msgstr[1] "%d ą“ ą“¤ą“¾ą“³ą“æą“²ąµā ą“ą“£ąµą“ąµą“ą“æą“ąµą“ą“æą“Æą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../shell/ev-window.c:4514 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą“¬ą“¾ą“ąµą“ą“æ ą“¤ąµą“°ą“Æąµą“µą“¾ą“Øąµą“£ąµą“ąµ" + +#: ../shell/ev-window.c:4991 +msgid "_File" +msgstr "_ą“«ą“Æą“²ąµā" + +#: ../shell/ev-window.c:4992 +msgid "_Edit" +msgstr "_ą“ą“æą“ąµą“" + +#: ../shell/ev-window.c:4993 +msgid "_View" +msgstr "_ą“ą“¾ą““ąµą“" + +#: ../shell/ev-window.c:4994 +msgid "_Go" +msgstr "_ą“Ŗąµą“µąµą“" + +#: ../shell/ev-window.c:4995 +msgid "_Help" +msgstr "_ą“øą“¹ą“¾ą“Æą“" + +#. File menu +#: ../shell/ev-window.c:4998 ../shell/ev-window.c:5263 +#, fuzzy +msgid "_Openā¦" +msgstr "_ą“¤ąµą“±ą“ąµą“ąµą“..." + +#: ../shell/ev-window.c:4999 ../shell/ev-window.c:5264 +msgid "Open an existing document" +msgstr "ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“ą“°ąµ ą“°ąµą“ ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5001 +msgid "Op_en a Copy" +msgstr "ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“¤ąµ_ą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5002 +msgid "Open a copy of the current document in a new window" +msgstr "ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“°ąµą“ą“Æąµą“ąµ ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“Ŗąµą“¤ą“æą“Æ ą“ą“¾ą“²ą“ą“¤ąµą“¤ą“æą“²ąµā ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5004 +#, fuzzy +msgid "_Save a Copyā¦" +msgstr "ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5005 +msgid "Save a copy of the current document" +msgstr "ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“°ąµą“ą“Æąµą“ąµ ą“ą“°ąµ ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5007 +#, fuzzy +msgid "_Printā¦" +msgstr "ą“ ą“ąµą“ą“ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5010 +msgid "P_roperties" +msgstr "ą“ąµ_ą“£ą“ą“£ą“ąµą“ą“³ąµā" + +#: ../shell/ev-window.c:5018 +msgid "Select _All" +msgstr "_ą“ą“²ąµą“²ą“¾ą“ ą“¤ąµą“°ą“ąµą“ąµą“ąµą“ąµą“ąµą“ " + +#: ../shell/ev-window.c:5020 +#, fuzzy +msgid "_Findā¦" +msgstr "ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5021 +msgid "Find a word or phrase in the document" +msgstr "ą“°ąµą“ą“Æą“æą“²ąµā ą“ą“°ąµ ą“µą“¾ą“ąµą“ąµ ą“ą“²ąµą“²ą“ąµą“ą“æą“²ąµā ą“µą“¾ą“ą“ą“ ą“ą“£ąµą“ąµą“¤ąµą“¤ąµą“" + +#: ../shell/ev-window.c:5027 +msgid "T_oolbar" +msgstr "_ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā " + +#: ../shell/ev-window.c:5029 +msgid "Rotate _Left" +msgstr "_ą“ą“ą“¤ąµą“¤ąµą“ąµą“ąµ ą“¤ą“æą“°ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5031 +msgid "Rotate _Right" +msgstr "_ą“µą“²ą“¤ąµą“¤ąµą“Æąµą“ąµą“ ą“¤ą“æą“°ą“æą“Æąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5042 +msgid "_Reload" +msgstr "_ą“µąµą“£ąµą“ąµą“ ą“ą“ąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5043 +msgid "Reload the document" +msgstr "ą“°ąµą“ ą“µąµą“£ąµą“ąµą“ ą“ą“ąµą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5046 +msgid "Auto_scroll" +msgstr "ą“ą“ąµą“ąµ_ą“øąµą“ąµą“°ąµą“³ąµā" + +#: ../shell/ev-window.c:5056 +msgid "_First Page" +msgstr "_ą“ą“¦ąµą“Æą“¤ąµą“¤ąµ ą“¤ą“¾ą“³ąµā" + +#: ../shell/ev-window.c:5057 +msgid "Go to the first page" +msgstr "ą“ą“¦ąµą“Æą“¤ąµą“¤ąµ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#: ../shell/ev-window.c:5059 +msgid "_Last Page" +msgstr "ą“ _ą“µą“øą“¾ą“Øą“¤ąµą“¤ąµ ą“¤ą“¾ą“³ąµā" + +#: ../shell/ev-window.c:5060 +msgid "Go to the last page" +msgstr "ą“ ą“µą“øą“¾ą“Øą“¤ąµą“¤ąµ ą“¤ą“¾ą“³ą“æą“²ąµą“Æąµą“ąµą“ąµąµ ą“Ŗąµą“ąµą“" + +#. Help menu +#: ../shell/ev-window.c:5064 +msgid "_Contents" +msgstr "_ą“ą“³ą“³ą“ą“ąµą“ą“" + +#: ../shell/ev-window.c:5067 +msgid "_About" +msgstr "_ą“ą“µą“æą“Øąµāą“øą“æą“Øąµą“Ŗąµą“Ŗą“±ąµą“±ą“æ" + +#. Toolbar-only +#: ../shell/ev-window.c:5071 +msgid "Leave Fullscreen" +msgstr "ą“Ŗąµą“°ąµāą“£ąµą“£ą“øąµą“ąµą“°ąµą“Øą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“Ŗąµą“±ą“¤ąµą“¤ąµ ą“ą“ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5072 +msgid "Leave fullscreen mode" +msgstr "ą“Ŗąµą“°ąµāą“£ąµą“£ą“øąµą“ąµą“°ąµą“Øą“æą“²ąµā ą“Øą“æą“Øąµą“Øąµą“ ą“Ŗąµą“±ą“¤ąµą“¤ąµ ą“ą“ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5074 +msgid "Start Presentation" +msgstr "ą“ ą“µą“¤ą“°ą“£ą“ ą“ą“°ą“ą“ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5075 +msgid "Start a presentation" +msgstr "ą“ą“°ąµ ą“ ą“µą“¤ą“°ą“£ą“ ą“ą“°ą“ą“ą“æą“ąµą“ąµą“" + +#. View Menu +#: ../shell/ev-window.c:5134 +msgid "_Toolbar" +msgstr "_ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā" + +#: ../shell/ev-window.c:5135 +msgid "Show or hide the toolbar" +msgstr "ą“ąµą“³ąµā ą“¬ą“¾ą“°ąµā ą“¦ąµą“¶ąµą“Æą“®ą“¾ą“ąµą“ąµą“ą“Æąµ ą“ ą“¦ąµą“¶ąµą“Æą“®ą“¾ą“ąµą“ąµą“ą“Æąµ ą“ąµą“Æąµą“Æąµą“" + +#: ../shell/ev-window.c:5137 +msgid "Side _Pane" +msgstr "_ą“Ŗą“¾ą“°ąµāą“¶ąµą“µą“Ŗą“ąµą“" + +#: ../shell/ev-window.c:5138 +msgid "Show or hide the side pane" +msgstr "ą“Ŗą“¾ą“°ąµāą“¶ąµą“µą“Ŗą“ąµą“ ą“¦ąµą“¶ąµą“Æą“®ą“¾ą“ąµą“ąµą“ą“Æąµ ą“ ą“¦ąµą“¶ąµą“Æą“®ą“¾ą“ąµą“ąµą“ą“Æąµ ą“ąµą“Æąµą“Æąµą“" + +#: ../shell/ev-window.c:5140 +msgid "_Continuous" +msgstr "_ą“¤ąµą“ą“°ąµą“Æąµą“³ą“³" + +#: ../shell/ev-window.c:5141 +msgid "Show the entire document" +msgstr "ą“°ąµą“ ą“®ąµą““ąµą“µą“Øąµā ą“ą“¾ą“£ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5143 +msgid "_Dual" +msgstr "_ą“ą“°ą“ąµą“ą“Æą“¾ą“Æ" + +#: ../shell/ev-window.c:5144 +msgid "Show two pages at once" +msgstr "ą“°ą“£ąµą“ąµ ą“Ŗąµą“ąµą“ą“³ąµā ą“ą“°ąµ ą“øąµą“ąµą“°ąµą“Øą“æą“²ąµā ą“ą“¾ą“£ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5146 +msgid "_Fullscreen" +msgstr "_ą“Ŗą“°ą“®ą“¾ą“µą“§ą“æ ą“µą“²ąµą“Ŗąµą“Ŗą“¤ąµą“¤ą“æą“²ąµą“³ą“³ ą“øąµą“ąµą“°ąµą“Øąµā" + +#: ../shell/ev-window.c:5147 +msgid "Expand the window to fill the screen" +msgstr "ą“øąµą“ąµą“°ąµą“Øąµā ą“®ąµą““ąµą“µą“Øąµā ą“Øą“æą“±ą“Æąµą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ ą“ą“¾ą“²ą“ą“ ą“µą“æą“ą“øą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5149 +msgid "Pre_sentation" +msgstr "ą“ ą“µ_ą“¤ą“°ą“£ą“" + +#: ../shell/ev-window.c:5150 +msgid "Run document as a presentation" +msgstr "ą“ą“°ąµ ą“ ą“µą“¤ą“°ą“£ą“ ą“ą“Æą“æ ą“°ąµą“ ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5158 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5159 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5167 +msgid "_Open Link" +msgstr "_ą“ą“£ąµą“£ą“æ ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5169 +msgid "_Go To" +msgstr "_ą“Ŗąµą“ąµą“£ąµą“ą“¤ąµąµ " + +#: ../shell/ev-window.c:5171 +msgid "Open in New _Window" +msgstr "ą“Ŗąµą“¤ą“æą“Æ _ą“ą“¾ą“²ą“ą“¤ąµą“¤ą“æą“²ąµā ą“¤ąµą“±ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5173 +msgid "_Copy Link Address" +msgstr "ą“ą“£ąµą“£ą“æ ą“µą“æą“²ą“¾ą“øą“ _ą“Ŗą“ą“°ąµāą“¤ąµą“¤ąµą“" + +#: ../shell/ev-window.c:5175 +#, fuzzy +msgid "_Save Image Asā¦" +msgstr "ą“ą“æą“¤ąµą“°ą“ ą“Ŗąµą“°ąµąµ ą“®ą“¾ą“±ąµą“±ą“æ _ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“..." + +#: ../shell/ev-window.c:5177 +msgid "Copy _Image" +msgstr "_ą“ą“æą“¤ąµą“°ą“ ą“Ŗą“ą“°ąµāą“¤ąµą“¤ąµą“" + +#: ../shell/ev-window.c:5182 +#, fuzzy +msgid "_Open Attachment" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5184 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5237 +msgid "Zoom" +msgstr "ą“µą“²ąµą“¤ą“¾ą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5239 +msgid "Adjust the zoom level" +msgstr "ą“µą“²ąµą“Ŗąµą“Ŗą“ ą“ąµą“°ą“®ąµą“ą“°ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5249 +msgid "Navigation" +msgstr "ą“Øą“¾ą“µą“æą“ąµą“·ą“Øąµā" + +#: ../shell/ev-window.c:5251 +msgid "Back" +msgstr "ą“Ŗąµą“±ą“ąµą“ąµą“ąµ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5254 +msgid "Move across visited pages" +msgstr "ą“øą“Øąµą“¦ą“°ąµāą“¶ą“æą“ąµą“ ą“¤ą“¾ą“³ąµą“ą“³ą“æą“²ąµą“ąµ ą“Øąµą“ąµą“ąµą“" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +msgid "Previous" +msgstr "ą“®ąµą“®ąµą“Ŗąµą“³ąµą“³" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5289 +msgid "Next" +msgstr "ą“ ą“ąµą“¤ąµą“¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5293 +msgid "Zoom In" +msgstr "ą“µą“²ąµą“¤ą“¾ą“ąµą“ąµą“" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5297 +msgid "Zoom Out" +msgstr "ą“ąµą“±ąµą“¤ą“¾ą“ąµą“ąµą“" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5305 +msgid "Fit Width" +msgstr "ą“µąµą“¤ą“æą“Æą“Øąµą“øą“°ą“æą“ąµą“ąµ" + +#: ../shell/ev-window.c:5466 ../shell/ev-window.c:5483 +msgid "Unable to launch external application." +msgstr "ą“Ŗąµą“±ą“¤ąµą“¤ąµą“Øą“æą“Øąµą“Øąµą“³ąµą“³ ą“Ŗąµą“°ą“Æąµą“ą“ ą“²ą“ąµą“Æą“®ą“¾ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²." + +#: ../shell/ev-window.c:5540 +msgid "Unable to open external link" +msgstr "ą“Ŗąµą“±ą“¤ąµą“¤ąµą“ąµą“ąµą“³ąµą“³ ą“ą“°ąµ ą“ą“£ąµą“£ą“æ ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../shell/ev-window.c:5707 +msgid "Couldn't find appropriate format to save image" +msgstr "ą“ą“®ąµą“ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ąµą“³ ą“¶ą“°ą“æą“Æą“¾ą“Æ ą“ą“°ąµ ą“°ąµą“¤ą“æ ą“²ą“ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²" + +#: ../shell/ev-window.c:5749 +msgid "The image could not be saved." +msgstr "ą“ą“®ąµą“ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²." + +#: ../shell/ev-window.c:5781 +msgid "Save Image" +msgstr "ą“ą“®ąµą“ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window.c:5848 +msgid "Unable to open attachment" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²" + +#: ../shell/ev-window.c:5901 +msgid "The attachment could not be saved." +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“²ąµą“²." + +#: ../shell/ev-window.c:5946 +msgid "Save Attachment" +msgstr "ą“ ą“±ąµą“±ą“¾ą“ąµą“ąµą“®ąµą“Øąµą“±ąµ ą“øąµą“ąµą“·ą“æą“ąµą“ąµą“" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +msgid "%s ā Password Required" +msgstr "%s - ą“ ą“ą“Æą“¾ą“³ą“µą“¾ą“ąµą“ąµąµ ą“ą“µą“¶ąµą“Æą“®ą“¾ą“£ąµ" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "ą“ą“ąµą“øąµą“±ąµą“±ąµą“Øąµāą“·ą“Øąµā ą“ ą“Øąµą“øą“°ą“æą“ąµą“ąµ" + +#: ../shell/main.c:72 ../shell/main.c:251 +msgid "MATE Document Viewer" +msgstr "MATE ą“°ąµą“ą“¾ą“¦ą“°ąµāą“¶ą“æą“Øą“æ" + +#: ../shell/main.c:80 +#, fuzzy +msgid "The page label of the document to display." +msgstr "ą“Ŗąµą“°ą“¦ą“°ąµāą“¶ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ą“³ ą“°ąµą“ą“Æąµą“ąµ ą“¤ą“¾ą“³ąµā." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:81 +#, fuzzy +msgid "The page number of the document to display." +msgstr "ą“Ŗąµą“°ą“¦ą“°ąµāą“¶ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øąµą“³ą“³ ą“°ąµą“ą“Æąµą“ąµ ą“¤ą“¾ą“³ąµā." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą“øąµą“ąµą“°ąµą“Øą“æą“Øąµą“±ąµ ą“Ŗą“°ą“®ą“¾ą“µą“§ą“æ ą“µą“²ą“æą“Ŗąµą“Ŗą“¤ąµą“¤ą“æą“²ąµą“³ą“³ ą“°ąµą“¤ą“æą“Æą“æą“²ąµā evince ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą“ ą“µą“¤ą“°ą“£ ą“°ąµą“¤ą“æą“Æą“æą“²ąµā evince ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą“Ŗąµą“°ąµą“µąµą“Æąµą“µą“°ąµā ą“°ąµą“¤ą“æą“Æą“æą“²ąµā evince ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“Ŗąµą“Ŗą“æą“ąµą“ąµą“" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ą“°ąµą“ą“Æą“æą“²ąµā ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“µą“¾ą“Øąµą“³ąµą“³ ą“µą“¾ą“ąµą“ąµ ą“ ą“²ąµą“²ąµą“ąµą“ą“æą“²ąµā ą“µą“¾ą“ą“ą“" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +#, fuzzy +msgid "[FILEā¦]" +msgstr "[FILE...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#, fuzzy +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą“¬ąµą“³ą“æą“Æą“Øąµā ą“ą“Ŗą“¾ą“§ą“æą“ą“³ąµā ą“²ą“ąµą“Æą“®ą“¾ą“£ąµ, ą“ąµą“°ąµ ą“ą“Øąµą“Øą“¾ą“²ąµā ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ą“æą“ąµ ą“øą“ąµą“ą“®ą“¾ą“ąµą“ąµą“Øąµą“Øąµ, ą“«ą“¾ą“³ąµāą“øąµ ą“ą“Øąµą“Øą“¾ą“²ąµā ą“Ŗąµą“¤ą“æą“Æ " +"ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ąµā ą“ą“£ąµą“ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ąµ ą“Øą“æą“°ąµāą“ąµą“ąµą“µą“®ą“¾ą“ąµą“ąµą“Øąµą“Øąµ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ą“Ŗą“æą“”ą“æą“ą“«ąµ ą“°ąµą“ą“ą“³ąµāą“ąµą“ąµą“³ąµą“³ ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ą“æą“ąµ ą“øą“ąµą“ą“®ą“¾ą“ąµą“ąµą“" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ą“Ŗą“æą“”ą“æą“ą“«ąµ ą“°ąµą“ą“ą“³ąµāą“ąµą“ąµą“³ąµą“³ ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ąµā ą“ą“®ą“¾ą“Øąµāą“”ąµ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#, fuzzy +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ą“Ŗą“æą“”ą“æą“ą“«ąµ ą“°ąµą“ą“ą“³ąµāą“ąµą“ąµą“³ąµą“³ ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ą“±ą“æą“Øąµą“³ąµą“³ ą“¶ą“°ą“æą“Æą“¾ą“Æ ą“ą“®ą“¾ą“Øąµāą“”ąµą“ą“³ąµą“ ą“ą“°ąµāą“ąµą“Æąµą“®ąµą“Øąµą“±ąµą“ą“³ąµą“. ą“ąµą“ąµą“¤ą“²ąµā " +"ą“µą“æą“µą“°ą“ąµą“ą“³ąµāą“ąµą“ą“¾ą“Æą“æ ą“Øąµą“ąµą“ą“æą“²ą“øąµ ą“¤ą“ą“¬ąµą“Øąµą“Æą“æą“²ą“°ąµā ą“°ąµą“ą“ą“³ąµā ą“ą“¾ą“£ąµą“." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą“°ąµą“ ą“¤ąµą“±ąµą“±ą“¾ą“Æ ą“°ąµą“¤ą“æą“Æą“æą“²ą“¾ą“£ąµąµ" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sā ą“«ą“Æą“²ąµā ą“ą“£ąµą“ą“¾ą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“²ąµā ą“Ŗą“°ą“¾ą“ą“Æą“: %s" + +#~ msgid "Search string" +#~ msgstr "ą“¤ą“æą“°ą“Æąµą“£ąµą“ ą“µą“¾ą“ą“ą“" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą“ą“£ąµą“ąµą“Ŗą“æą“ą“æą“ąµą“ąµą“£ąµą“ ą“µą“¾ą“ą“ą“¤ąµą“¤ą“æą“Øąµą“±ąµ (ą“øąµą“ąµą“°ą“æą“ąµ) ą“Ŗąµą“°ąµąµ" + +#~ msgid "Case sensitive" +#~ msgstr "ą“ąµą“øąµ ą“øąµą“Øąµāą“øą“æą“±ąµą“±ąµą“µąµ" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą“ą“°ąµ ą“ąµą“øąµ ą“øąµą“Øąµāą“øą“æą“±ąµą“±ąµą“µąµ ą“¤ą“æą“°ą“ąµą“ą“æą“²ą“æą“Øąµ ą“ąµą“°ąµ ą“ą“£ąµ" + +#~ msgid "Highlight color" +#~ msgstr "ą“Øą“æą“±ą“ ą“ą“ąµą“¤ąµą“¤ąµ ą“ą“¾ą“£ą“æą“ąµą“ąµą“" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą“ąµą“°ąµāą“ąµą“ą“Æąµą“³ą“³ ą“ą“²ąµą“²ą“¾ ą“µą“¾ą“ą“ą“ąµą“ą“³ąµāą“ąµą“ąµ ą“ąµą“ąµą“ąµą“ą“£ąµą“ ą“Øą“æą“±ą“" + +#~ msgid "Current color" +#~ msgstr "ą“Øą“æą“²ą“µą“æą“²ąµą“³ą“³ ą“Øą“æą“±ą“" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą“Øą“æą“²ą“µą“æą“²ąµā ą“Ŗąµą“°ąµą“¤ąµą“¤ą“®ąµą“³ą“³ ą“µą“¾ą“ą“ą“¤ąµą“¤ą“æą“Øąµą“±ąµ ą“Øą“æą“±ą“" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą“®ąµą“®ąµą“Ŗąµą“³ąµą“³ ą“°ąµą“ą“ą“³ąµā ą“µąµą“£ąµą“ąµą“ąµą“ąµą“ą“£ą“®ąµ?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ą“ ą“µą“øą“¾ą“Øą“®ą“¾ą“Æą“æ ą“Ŗąµą“°ą“µą“°ąµāą“¤ąµą“¤ą“æą“ąµą“ąµą“®ąµą“Ŗąµą“³ąµā ą“ą“µą“æą“Øąµāą“øąµ ą“ ą“Ŗąµą“°ą“¤ąµą“ąµą“·ą“æą“¤ą“®ą“¾ą“Æ ą“Ŗąµą“±ą“¤ąµą“¤ąµąµ ą“ą“ą“Øąµą“Øą“æą“°ą“æą“ąµą“ąµą“Øąµą“Øąµ. ą“ ą“Ŗąµą“Ŗąµą“³ąµā " +#~ "ą“ą“Ŗą“Æąµą“ą“¤ąµą“¤ą“æą“²ąµą“£ąµą“ą“¾ą“Æą“æą“°ąµą“Øąµą“Ø ą“°ąµą“ą“ą“³ąµā ą“Øą“æą“ąµą“ą“³ąµāą“ąµą“ąµąµ ą“µąµą“£ąµą“ąµą“ąµą“ąµą“ą“¾ą“." + +#~ msgid "_Don't Recover" +#~ msgstr "_ą“µąµą“£ąµą“ąµą“ąµą“ąµą“ąµą“£ąµą“" + +#~ msgid "_Recover" +#~ msgstr "_ą“µąµą“£ąµą“ąµą“ąµą“ąµą“ąµą“" + +#~ msgid "Crash Recovery" +#~ msgstr "ą“¤ą“ą“°ą“¾ą“±ąµą“³ąµą“³ą“µ ą“µąµą“£ąµą“ąµą“ąµą“ąµą“ą“²ąµā" + +#~ msgid "Print..." +#~ msgstr "ą“ ą“ąµą“ą“ą“æą“ąµą“ąµą“..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ą“øą“æą“ą“ą“£ąµą“£ą“æ ā%sā ą“ą“£ąµą“ą“¾ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²" + +#~ msgid "Cannot open a copy." +#~ msgstr "ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“¤ąµą“±ą“ąµą“ąµą“µą“¾ą“Øąµā ą“øą“¾ą“§ąµą“Æą“®ą“¾ą“Æą“æą“²ąµą“²." + +#~ msgid "The document doesn't support search" +#~ msgstr "ą“ ą“°ąµą“ą“Æą“æą“²ąµā ą“¤ąµą“°ą“ąµą“ą“æą“²ąµā ą“Ŗą“æą“Øąµą“¤ąµą“£ą“Æąµą“ąµą“ąµą“Øąµą“Øą“æą“²ąµą“²" + +#~ msgid "_Save a Copy..." +#~ msgstr "ą“ą“°ąµ _ą“Ŗą“ą“°ąµāą“Ŗąµą“Ŗąµ ą“øąµą“ąµą“·ą“æą“Æąµą“ąµą“ąµą“..." + +#~ msgid "Page Set_up..." +#~ msgstr "ą“¤ą“¾ą“³ąµā ą“ą“æ ą“ąµą“°ą“®ą“æ_ą“ą“°ą“£ą“..." + +#~ msgid "Setup the page settings for printing" +#~ msgstr "ą“ ą“ąµą“ą“ą“æą“ąµą“ąµą“Øąµą“Øą“¤ą“æą“Øą“¾ą“Æą“æ ą“¤ą“¾ą“³ąµā ą“ąµą“°ą“®ą“æą“ą“°ą“£ą“ąµą“ą“³ąµā ą“øą“ąµą“ą“®ą“¾ą“ąµą“ąµą“" + +#~ msgid "_Print..." +#~ msgstr "_ą“ ą“ąµą“ą“ą“æą“ąµą“ąµą“." + +#~ msgid "_Find..." +#~ msgstr "_ą“ą“£ąµą“ąµ ą“Ŗą“æą“ą“æą“ąµą“ąµą“..." diff --git a/po/mn.po b/po/mn.po new file mode 100644 index 00000000..752800ef --- /dev/null +++ b/po/mn.po @@ -0,0 +1,1601 @@ +# Evince Document Viewer +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Urangua <urangua@adsolux.com>, 2009, 2010. +# Dulmandakh Sukhbaatar <dulmandakh@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: " +"http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-03-19 14:34+0000\n" +"PO-Revision-Date: 2010-03-23 04:09+0200\n" +"Last-Translator: Badral <badral@openmn.org>\n" +"Language-Team: mongolian <mate-l10n@lists.opensource.mn>\n" +"Language: mn\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-Generator: Pootle 2.0.3\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ŠŃŃŠ°Š³Ń Š½Š¾Š¼ Š·Š°Š“Š»Š°Ń ā%sā ŠŗŠ¾Š¼Š°Š½Š“ŃŠ³ Š³ŅÆŠ¹ŃŃŃŠ³ŃŃ ŃŠ“ Š°Š»Š“Š°Š° Š³Š°ŃŠ»Š°Š°: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŠŃŃŠ°Š³Ń Š½Š¾Š¼ Š·Š°Š“Š»Š°Ń ā%sā ŠŗŠ¾Š¼Š°Š½Š“ŃŠ³ Š±ŠøŠµŠ»ŅÆŅÆŠ»ŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ā%sā ŠŗŠ¾Š¼Š°Š½Š“ Ń ŃŠ²ŠøŠ¹Š½ Š±Š°Š¹Š“Š»Š°Š°Ń Š“ŃŃŃŃŠ°Š½Š³ŅÆŠ¹." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr " MIME ŃÓ©ŃŠ»ŠøŠ¹Š½ Š·ŃŃŠ°Š³Ń Š½Š¾Š¼ Š±ŠøŃ Š±Š°Š¹Š½Š°: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ŠŠ½Ń ŃÓ©ŃŠ»ŠøŠ¹Š½ Š·ŃŃŠ°Š³Ń Š½Š¾Š¼ŃŠ³ Š·Š°Š“Š»Š°Ń ŃŠ¾Ń ŠøŃŠ¾Š¼Š¶ŃŠ¾Š¹ ŠŗŠ¾Š¼Š°Š½Š“ Š¾Š»ŃŠ¾Š½Š³ŅÆŠ¹" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Š¢Š°Š½ŠøŠ³Š“Š°Ń Š³ŅÆŠ¹ MIME ŃÓ©ŃÓ©Š»" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "Š¤Š°Š¹Š» Š³ŃŠ¼ŃŃŃŠ½ Š±Š°Š¹Š½Š°" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ŠŃŃ ŠøŠ²Š“ ŃŠ°Š¹Š» Š±Š°Š¹Ń Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "%s Š°ŃŃ ŠøŠ²Š°Š°Ń Š·ŃŃŠ°Š³ Š¾Š»Š“ŃŠ¾Š½Š³ŅÆŠ¹" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr " \"%s\"-ŠøŠ¹Š³ ŃŃŃŠ³Š°Ń Š°Š“ Š°Š»Š“Š°Š° Š³Š°ŃŃŠ°Š½ Š±Š°Š¹Š½Š°." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr " %s Š°Š»Š“Š°Š° " + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŠŃŃŠ°Š³Ń Š½Š¾Š¼" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š½Ń Š±ŃŃŃŃ ŃŠ¾ŃŠ¼Š°ŃŃŠ°Š¹ Š±Š°Š¹Š½Š°" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Š£Š³ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š½Ń Ń ŃŠ“ Ń ŃŠ“ŃŠ½ ŃŠ°Š¹Š»Š°Š°Ń Š±ŅÆŃŠ“ŃŃŠ½ Š±Š°Š¹Š½Š°. ŠŃŠ³ Š±ŃŃŃ ŃŅÆŅÆŠ½ŃŃŃ Š“ŃŃŃ " +"ŠøŠ¹Š¼ŃŃŃ ŅÆŅÆ ŃŠ°Š¹Š»Š“ Ń Š°Š½Š“Š°Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹. " + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š±ŃŃŃŃ ŃŠ¾ŃŠ¼Š°ŃŃŠ°Š¹ Š±Š°Š¹Š½Š°. " + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "ŠŠ½Ń Š±ŅÆŃŃŃŠ» Š½ŠøŠ¹ŃŠøŠ¹Š½ Š“Š¾Š¼ŃŠ¹Š½Š“ Š±Š°Š¹Š½Š°" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Š¢ŠøŠ¹Š¼" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Ņ®Š³ŅÆŠ¹" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Š¢Ó©ŃÓ©Š» 1 " + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Š¢Ó©ŃÓ©Š» 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Š¢Ó©ŃÓ©Š» 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "Š¢ŃŅÆŅÆŠ¢Š°Š¹Šæ" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Š¢Ó©ŃÓ©Š» 1(CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Š¢Ó©ŃÓ©Š» 1C CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "Š¢ŃŅÆŅÆŠ¢Š°Š¹Šæ (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Š¤Š¾Š½ŃŠ½Ń ŃŠ°Š½ŠøŠ³Š“Š°Ń Š³ŅÆŠ¹ ŃÓ©ŃÓ©Š» " + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ŠŃŃ Ó©Š³Ó©Ó©Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ŠŃŃŃŠ»ŃŠ°Š½ Š·ŅÆŠ¹Š»Ń" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ŠŃŃŃŠ»ŃŠ°Š½ " + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ŠŃŃŃŠ»Š°Š°Š³ŅÆŠ¹" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŠŃŃŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Š”Š»Š°Š¹Š“ Š¾ŃŃŃŠ»Š°Ń " + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠ»Š“Š°Š° Š³Š°ŃŠ°Š°Š³ŅÆŠ¹" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Š”Š°Š½Š°Ń Š¾Š¹ Ń ŅÆŃŃŃ Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ZIP Š½ŃŃŃ ŠŗŠ¾Š“ŃŠ³ Š¾Š»Š¾Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ " + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Š„ŅÆŃŠøŠ½Š³ŅÆŠ¹ ZIP ŃŠ°Š¹Š» " + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠŠ»Š¾Š½ ŃŠ°Š¹Š»ŃŠ½ ZIP-ŠøŠ¹Š³ Š“ŃŠ¼Š¶ŠøŃ Š³ŅÆŠ¹ " + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Š£Š³ ŃŠ°Š¹Š»ŃŠ³ Š½ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Š¤Š°Š¹Š»Š°Š°Ń Ó©Š³Ó©Š³Š“Ó©Š» ŃŠ½ŃŠøŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ZIP-ŠøŠ¹Š½ Š°ŃŃ ŠøŠ²Š°Š°Ń ŃŠ°Š¹Š» Š¾Š»Š¾Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Š¢Š¾Š“Š¾ŃŃ Š¾Š¹Š³ŅÆŠ¹ Š°Š»Š“Š°Š° " + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr " ā%sā Š±Š°ŃŠøŠ¼ŃŃŠ³ Š°ŃŠ°Š°Š»Š°Ń Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr " ā%sā Š±Š°ŃŠøŠ¼ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ Š±Š°ŃŠøŠ¼ŃŃŃŠ“" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ā%sā Ń Š°Š²ŃŃŠ°Š»ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š¶ ŃŠ°Š“ŃŠ°Š½Š³ŅÆŠ¹: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ā%sā Ń Š°Š²ŃŃŠ°Š»ŃŃŠ³ Š½ŃŃŠ¶ ŃŠ°Š“ŃŠ°Š½Š³ŅÆŠ¹: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ā%sā Ń Š°Š²ŃŃŠ°Š»ŃŃŠ³ Š½ŃŃŠ¶ ŃŠ°Š“ŃŠ°Š½Š³ŅÆŠ¹" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "%s (%s) ŃŠ°Š¹Š»ŃŠ½ ŃÓ©ŃŠ»ŠøŠ¹Š³ Š“ŃŠ¼Š¶ŠøŃ Š³ŅÆŠ¹" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ŠŅÆŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ŠŅÆŃ ŃŠ°Š¹Š»" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Š¢ŅÆŃ Š·ŃŃŃŃŠ½ Ń Š°Š²ŃŠ°Ń Š½ŃŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Š¢ŅÆŃ Š·ŃŃŃŃŠ½ Ń Š°Š²ŃŠ°Ń Š½ŃŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Š¤Š°Š¹Š» Š½Ń Š·Ó©Š² .desktop ŃŠ°Š¹Š» Š±ŠøŃ Š±Š°Š¹Š½Š°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŃŃŠŗŃŠ¾Šæ ŃŠ°Š¹Š»ŃŠ½ ŃŠ°Š½ŠøŠ³Š“Š°Ń Š³ŅÆŠ¹ Š„ŃŠ²ŠøŠ»Š±Š°Ń '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s-ŠøŠ¹Š³ ŃŃ Š»ŅÆŅÆŠ»Š¶ Š±Š°Š¹Š½Š°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŠ¾Š¼Š°Š½Š“ŃŠ½ Š¼Ó©ŃŠ½ŠøŠ¹ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ ŠæŃŠ¾Š³ŃŠ°Š¼ Ń ŅÆŠ»ŃŃŠ½ Š°Š²Š°Ń Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Š¢Š°Š½ŠøŠ³Š“Š°Ń Š³ŅÆŠ¹ ŃŃ Š»ŅÆŅÆŠ»ŃŃ ŃŠ¾Š½Š³Š¾Š»Ń: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"URIs Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ 'Type=Link' Š“ŃŃŠŗŃŠ¾ŠæŃŠ½ Š¾ŃŠ¾Š»Ń ŃŃŃ Š¾ŃŃŃŠ»Š°Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŃŃŠ¶ Š±Š¾Š»Š¾Ń Š·ŅÆŠ¹Š» Š±ŠøŃ Š±Š°Š¹Š½Š°" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Š”ŃŃŠ½ Š¼ŠµŠ½ŠµŠ¶ŠµŃŃ Ń Š¾Š»Š±Š¾Š³Š“Š¾Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ Š±Š¾Š»Š³Š¾Ń " + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Š¢Š¾Ń ŠøŃŠ³Š¾Š¾ ŃŠ°Š½ŃŃŠ»ŃŠ°Š½ ŃŠ°Š¹Š»ŃŠ³ ŃŠ»Š³Š°Š½ Ń Š°ŃŃŃŠ»Š°Ń " + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "Š¤ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Š”ŃŃŠ½ Š¼ŠµŠ½ŠµŠ¶Š¼ŠµŠ½ŃŠøŠ¹Š½ ID-Š³ ŃŠ»Š³Š°Š½ Ń Š°ŃŃŃŠ»Š°Ń " + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Š”ŃŃŠ½ Š¼ŠµŠ½ŠµŠ¶Š¼ŠµŠ½ŃŠøŠ¹Š½ ŃŠ¾Š½Š³Š¾Š»ŃŃŃŠ“:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Š”ŃŃŠ½ Š¼ŠµŠ½ŠµŠ¶Š¼ŠµŠ½ŃŠøŠ¹Š½ ŃŠ¾Š½Š³Š¾Š»ŃŃŃŠ“ŃŠ³ Ń Š°ŃŃŃŠ»Š°Ń " + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā-ŠøŠ¹Š³ Ń Š°ŃŃŃŠ»Š°Ń " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃÓ©Š½Š“ ŃŠøŠ»Š¶ŠøŃ " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠ½ŠøŠ¹ ŃŠ¾Š½Š³Š¾Š³Š“ŃŠ¾Š½ Š·ŅÆŠ¹Š» ŃŅÆŅÆ ŃŠøŠ»Š¶ŠøŃ " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠ½Ó©Ó©Ń ŃŃŃŠ³Š°Ń " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "Š”Š¾Š½Š³Š¾Š³Š“ŃŠ¾Š½ Š·ŅÆŠ¹Š»ŠøŠ¹Š³ Ń ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠ½Ó©Ó©Ń ŃŃŃŠ³Š°Ń " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠøŠ¹Š³ ŃŃŃŠ³Š°Ń " + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Š”Š¾Š½Š³Š¾Š³Š“ŃŠ¾Š½ Ń ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠøŠ¹Š³ ŃŃŃŠ³Š°Ń " + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Š¢ŃŃŠ³Š°Š°ŃŠ»Š°Š³Ń" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ½Š³ŠøŠ¹Š½ Š³Š¾ŃŠøŠ¼ Š“ŃŃŃ Š°Š¶ŠøŠ»Š»Š°Š¶ Š±Š°Š¹Š½Š°" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5341 +msgid "Best Fit" +msgstr "ŠŠ°ŃŠøŠ¹Š½ ŃŠ°Š°ŃŃŃŠ»Š°Ń " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń Ó©ŃŠ³Ó©Š½ŃŃŠ¹ ŃŠ°Š°ŃŃŃŠ»Š°Ń " + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4205 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠŠ»Š¾Š½ Ń ŃŃŠ“Š°ŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŅÆŠ·ŃŃ " + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŠ·Š³Š°Š°ŃŠ»Š°Š»ŃŃŠ³ ŅÆŠ» Ń Š°Š¹Ń ŃŠ°Ń " + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Š„ŃŃŠ»Š°Ń , Ń ŃŠ²Š»ŃŃ ŠøŠ¹Š³ Ń Š¾ŃŠøŠ³Š»Š¾Ń Š³ŃŃ Š¼ŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŠ·Š³Š°Š°ŃŠ»Š°Š»ŃŃŠ³ ŅÆŠ» Ń Š°Š¹Ń ŃŠ°Š½Š°." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Š¢ŅÆŃ Š·ŃŃŃŃŠ½ ŃŠ°Š¹Š»ŃŠ³ ŃŃŃŠ³Š°Ń " + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Š¢Š¾Ń ŠøŃŠ³Š¾Š¾Š½Ń ŃŠ°Š¹Š»ŃŠ³ Ń ŃŠ²Š»ŃŃ " + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "ŠŠŠŠ£Š Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŃŃŃŠ“ŃŠøŠ»Š°Š½ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Ń ŃŠ²Š»ŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Š”Š¾Š½Š³Š¾ŃŠ¾Š½ '%s' Ń ŃŠ²Š»ŃŠ³Ń Š¾Š»Š“ŃŠ¾Š½Š³ŅÆŠ¹ " + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5090 +msgid "_Previous Page" +msgstr "_ÓØŠ¼Š½Ó©Ń Ń ŃŃŠ“Š°Ń" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5091 +msgid "Go to the previous page" +msgstr "ÓØŠ¼Š½Ó©Ń Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5093 +msgid "_Next Page" +msgstr "_ŠŠ°ŃŠ°Š°Ń Ń ŃŃŠ“Š°Ń" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5094 +msgid "Go to the next page" +msgstr "ŠŠ°ŃŠ°Š°Ń Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5077 +msgid "Enlarge the document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŃŠ¾Š¼ŃŠ³Š¾Ń " + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5080 +msgid "Shrink the document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š¶ŠøŠ¶ŠøŠ³ŃŠ³ŃŃ " + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Š„ŃŠ²Š»ŃŃ " + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5048 +msgid "Print this document" +msgstr "Š£Š³ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Ń ŃŠ²Š»ŃŃ " + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5192 +msgid "_Best Fit" +msgstr "_ŠŠ°ŃŠøŠ¹Š½ ŃŠ°Š°ŃŃŃŠ»Š°Ń " + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5193 +msgid "Make the current document fill the window" +msgstr "ŠŃŃŠ»ŃŃŃŠ¹ Š±Š°Š¹Š³Š°Š° Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŃŃ ŃŠ¾Š½Ń Š“ŅÆŅÆŃŠ³ŃŠ¶ Š±Š°Š¹ŃŃŃŃŠ»Š°Ń " + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5195 +msgid "Fit Page _Width" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń Ó©ŃŠ³Ó©Š½ŃŃŠ¹ ŃŠ°Š°ŃŃŃŠ»Š°Ń " + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5196 +msgid "Make the current document fill the window width" +msgstr "ŠŃŃŠ»ŃŃŃŠ¹ Š±Š°Š¹Š³Š°Š° Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŃŃ ŃŠ¾Š½Ń Š½Ń Ó©ŃŠ³Ó©Š½ŠøŠ¹Š³ Š“ŅÆŅÆŃŠ³ŃŠ¶ Š±Š°Š¹ŃŃŃŃŠ»Š°Ń " + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5263 +msgid "Page" +msgstr "Š„ŃŃŠ“Š°Ń " + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5264 +msgid "Select Page" +msgstr "Š„ŃŃŠ“ŃŠ°Š° ŃŠ¾Š½Š³Š¾Ń " + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŠ°ŃŃŠøŠ³:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŠ°Š¹ŃŃŠøŠ»:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š”ŃŠ“ŃŠ²: " + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ŠŠ¾Ń ŠøŠ¾Š³Ń:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Š¢ŅÆŠ»Ń ŅÆŅÆŃ ŅÆŠ³:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ŠŅÆŠ¹ŃŃŃŠ³ŃŠ³Ń:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ŠŅÆŃŃŃŠ³Ń:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ŠŅÆŃŃŃŃŃŠ½:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ÓØÓ©ŃŃŠøŠ»ŃÓ©Š½:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń Š“ŃŠ³Š°Š°Ń:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ŠŠ½Š¾Š²ŃŃŠ¾Š¹ Š±Š¾Š»Š³Š¾ŃŠ¾Š½:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Š¤Š¾ŃŠ¼Š°Ń:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ŠŃŃŠ»Š³ŅÆŠ¹ Š±Š°Š¹Š“Š°Š»:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ¼Š¶ŃŃ: " + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "Š„Š¾Š¾ŃŠ¾Š½" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "Ó©Š³Ó©Š³Š“Š¼Ó©Š»:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f Š¼Š¼" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ŠøŠ½Ń" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ŠŠ¾ŃŠ¾Š¾ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Š„ŃŠ²ŃŃŃ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d -ŠøŠ¹Š½ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr " %d-ŠøŠ¹Š½ " + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "Š„ŃŠ²Š»ŃŃ ŃŃŃ Š±ŃŠ»ŃŠ³ŃŠ¶ Š±Š°Š¹Š½Š°..." + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "ŠŃŃŃŃ Š±Š°Š¹Š½Š°..." + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "%d-ŠøŠ¹Š½ %d Ń ŃŃŠ“ŃŃŠ³ Ń ŃŠ²Š»ŃŠ¶ Š±Š°Š¹Š½Š°..." + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "Š£Š³ Ń ŃŠ²Š»ŃŠ³Ń Š“ŃŃŃ Ń ŃŠ²Š»ŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "ŠŠ¾Š»Š¾Ń Š³ŅÆŠ¹ Ń ŃŃŠ“Š°Ń ŃŠ¾Š½Š³Š¾ŃŠ¾Š½ Š±Š°Š¹Š½Š°" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "ŠŠ½Ń Š°Š°ŃŃŃŠ»Š³Š° " + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "Š„ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ ŃŠ°Š½Ń Ń ŃŠ²Š»ŃŃ Ń ŃŃŠ“Š°ŃŠ½Ń ŃŠ¾Š½Š³Š¾Š»Ń Ń ŠøŠ¹Š³Š“ŃŃŠ³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ¼Š¶ŃŃŃ:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Š„ŃŠ²Š»ŃŃ Ń ŃŃŃŠ³Ń Š¶ŠøŠ¶ŠøŠ³ŃŅÆŅÆŠ»ŃŃ " + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Š„ŃŠ²Š»ŃŃ Ń ŃŃŃŠ³Ń ŃŠ°Š°ŃŃŃŠ»Š°Ń " + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“ŃŠ°Š° ŃŠ¾Š½Š³Š¾Š¶ Š°Š²ŃŠ°Š½ Ń ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ Ń ŃŃŠ“ŃŠ°Š½Š“ ŃŠ°Š°ŃŃŃŠ»Š°Š½ Ń ŃŠ¼Š¶ŃŃŠ³ Š½Ń " +"ŃŠ¾Ń ŠøŃŃŃŠ»Š½Š°. Ņ®ŅÆŠ½ŠøŠ¹ ŃŃŠ»Š“ Š“Š°ŃŠ°Š°Ń ŃŠ¾Š½Š³Š¾Š»ŃŠ¾Š¾Ń Ń ŠøŠ¹Š½Ń ŅÆŅÆ:\n" +"\n" +"ā¢ \"Š„ŠøŠ¹Ń Š³ŅÆŠ¹\": Š„ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ¼Š¶ŃŃŠ³ ŃŠ¾Ń ŠøŃŃŃŠ»Š°Ń Š³ŅÆŠ¹. \n" +"\n" +"ā¢ \"Š„ŃŠ²Š»ŃŃ Ń ŃŃŃŠ³Ń Š¶ŠøŠ¶ŠøŠ³ŃŅÆŅÆŠ»ŃŃ \": Š„ŃŠ²Š»ŃŃ Ń ŃŃŠ³ŃŃŃ ŃŠ¾Š¼ Ń ŃŃŠ“ŃŃŠ³ Ń ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ " +"Ń ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ²Š»ŃŃ Ń ŃŃŃŠ³Ń ŃŠ°Š°ŃŃŃŠ»Š°Š½ Š±Š°Š³Š°ŃŠ³Š°Š“Š°Š³.\n" +"\n" +"ā¢ \"Š„ŃŠ²Š»ŃŃ Ń ŃŃŃŠ³Ń ŃŠ°Š°ŃŃŃŠ»Š°Ń \": Š„ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ Ń ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ Ń ŃŃŃŠ³Ń " +"ŃŠ°Š°ŃŃŃŠ»Š°Ń ŃŠ½ ŃŃŠ»Š“ Ń ŃŃŠ“ŃŃŠ³ ŃŠ¾Š¼Š¾ŃŠ³Š¾Ń Š±ŃŃŃ Š±Š°Š³Š°ŃŠ³Š°Š“Š°Š³.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "ŠŠ²ŃŠ¾Š¼Š°ŃŠ°Š°Ń ŃŃŠ³ŅÆŅÆŠ»ŃŃ Š±ŃŃŃ Š³Š¾Š»Š»ŃŃŠ»Š°Ń " + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“Š°Ń Š±ŅÆŃŠøŠ¹Š½ ŃŠøŠ³ŠøŠ¹Š³ ŃŠ°Š°ŃŃŃŠ»Š°Ń ŃŠ½ ŃŃŠ»Š“ Ń ŃŃŠ“Š°Ń Š±ŅÆŃŠøŠ¹Š½ " +"Ń ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ Ń ŃŃŠ“Š°ŃŠ½Ń ŃŠøŠ³ŠøŠ¹Š³ ŃŃŠ³ŅÆŅÆŠ»Š½Ń. ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“Š°Ń Ń ŃŠ²Š»ŃŠ³ŃŠøŠ¹Š½ " +"Ń ŃŃŠ“ŃŠ°Š½ Š“Š¾ŃŠ¾Ń Š³Š¾Š»Š»Š¾Š½Š¾." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ¼Š¶ŃŃŠ³ Š°ŃŠøŠ³Š»Š°Š½ Ń ŃŃŠ“Š°ŃŠ½Ń Ń ŃŠ¼Š¶ŃŃŠ³ ŃŠ¾Š½Š³Š¾Ń " + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Š¢Š¾Ń ŠøŃŃŃŠ»ŃŠ°Š½ Š±Š¾Š» Ń ŃŃŠ“Š°Ń Š±ŅÆŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“Š°ŃŃŠ°Š¹ ŠøŠ¶ŠøŠ» " +"Ń ŃŠ¼Š¶ŃŃŠ³ŃŃŃŃ ŃŠ²Š»ŃŠ³Š“ŃŠ½Ń." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "Š„ŃŃŠ“Š°Ń Š±Š¾Š»Š¾Š²ŃŃŃŃŠ»Š°Š»Ń" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "%d Ń ŃŃŠ“ŃŃŠ³ Ń ŃŠ²Š»ŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ŠŃŃŃ Š½Ń Š³ŅÆŠ¹Š»Š³ŃŃ " + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ŠŠ¾Š¾Ń Š½Ń Š³ŅÆŠ¹Š»Š³ŃŃ " + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Š„Š°ŃŠ°Š³Š“ŃŃŠ³ Š“ŃŃŃ Š½Ń Š³ŅÆŠ¹Š»Š³ŃŃ " + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Š„Š°ŃŠ°Š³Š“ŃŃŠ³ Š“Š¾Š¾Ń Š½Ń Š³ŅÆŠ¹Š»Š³ŃŃ " + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń Š°ŃŠ°Š³Š“Š°Ń" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "Š„ŃŃŠ“Š°Ń ŃŃŃ Š¾ŃŠøŃ :" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ½ Š“ŃŃŃŠ»Š°Š°. Š„ŃŠ»Š³Š°Š½Š°Š°ŃŠ°Š° ŃŠ¾Š²ŃŠøŠ½ Š³Š°ŃŠ½Š° ŃŃ." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "ŠŃ Š½ŠøŠ¹ Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "ÓØŠ¼Š½Ó©Ń Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "ŠŠ°ŃŠ°Š°Ń Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "Š”ŅÆŅÆŠ»ŠøŠ¹Š½ Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "Š„ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "Š„Š°Š¹Š¶ Š¾Š»Š¾Ń " + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "%s Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%sā ŃŠ°Š¹Š» Š“ŃŃŃŃ %s -Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sāŃŠ°Š¹Š»Š“ Š¾ŃŠøŃ " + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "%s-ŠøŠ¹Š³ Š½ŃŃŃ " + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŠŃŠ°Š°Š»Š¶ Š±Š°Š¹Š½Š°..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Š„Š°Š¹Š¶ Š¾Š»Š¾Ń :" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5065 +msgid "Find Pre_vious" +msgstr "ÓØŠ¼Š½Ó©Ń ŠøŠ¹Š³ Ń Š°Š¹Š¶ Š¾Š»Š¾Ń " + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Š„Š°Š¹Š»ŃŃŠ½ ŅÆŠ³Š½ŠøŠ¹ Ó©Š¼Š½Ó©Ń ŃŠ¾Ń ŠøŠ¾Š»Š“Š»ŃŠ³ Ń Š°Š¹Š¶ Š¾Š»Š¾Ń " + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5063 +msgid "Find Ne_xt" +msgstr "ŠŠ°ŃŠ°Š°Š³ŠøŠ¹Š½Ń ŃŠ³ Ń Š°Š¹Š¶ Š¾Š»Š¾Ń " + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Š„Š°Š¹Š»ŃŃŠ½ ŅÆŠ³Š½ŠøŠ¹ Š“Š°ŃŠ°Š°Š³ŠøŠ¹Š½ ŃŠ¾Ń ŠøŠ¾Š»Š“Š»ŃŠ³ Ń Š°Š¹Š¶ Š¾Š»Š¾Ń " + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Ņ®ŃŠ³ŠøŠ¹Š½ Ń ŃŠ¼Š¶ŃŃŠ³ ŃŠ»Š³Š°Š½Š°" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Š„Š°Š¹Š»ŃŃŠ³ ŅÆŃŠ³ŠøŠ¹Š½ Ń ŃŠ¼Š¶ŃŃ ŃŠ°Š½ŠøŠ¶ Ń ŠøŠ¹Ń " + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Š½ŃŃŃ ŅÆŠ³" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr " %s-ŠøŠ¹Š³ Ń ŃŠ²ŠøŃŠ³Š°Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d -ŠøŠ¹Š½ %d Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Ń ŃŠ²ŠøŃŠ³Š°Š»Š°Š°" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "ŠŠµŃŠ°-Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š³ Ń ŃŠ²ŠøŃŠ³Š°Ń " + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ Ń ŃŃŃŠ³Š»ŃŠ“ŃŠ³ Š¼ŠµŃŠ°-Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ ŃŠ¾ŃŠ¼Š°Ń Š½Ń Ó©Ó©ŃŃŠ»Ó©Š³Š“ŃÓ©Š½ ŃŃŠ» ŅÆŅÆŠ½ŠøŠ¹Š³ " +"ŃŠøŠ»Š¶ŅÆŅÆŠ»ŃŃ Ń ŃŃŃŠ³ŃŃŠ¹. ŠØŠøŠ»Š¶ŅÆŅÆŠ»ŃŠ»Ń ŃŃŃŠ»Š°Š³Š“Š²Š°Š» Š¼ŠµŃŠ°-Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ ŃŠ°Š½Š°Ń Š¾Š¹ Š°Š¶ŠøŠ»Š»Š°Ń Š³ŅÆŠ¹." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Š”ŅÆŅÆŠ»Š“ Ń ŃŃŃŠ³Š»ŃŃŃŠ½ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Š½ŃŃŃ " + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Š£Š³ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŃŅÆŠ³Š¶ŠøŠ³Š“ŃŃŠ½ Š±Ó©Š³Ó©Ó©Š“ ŃŠ° Š·Ó©Š² Š½ŃŃŃ ŅÆŠ³ŠøŠ¹Š³ Š½Ń Š¾ŃŃŃŠ»ŃŠ½Š°Š°Ń ŅÆŅÆŠ½Š“ " +"Š½ŃŠ²ŃŃŃŠ½ Š·Ó©Š²Ń Ó©Š½ ŃŠ½ŃŠøŃ Š±Š¾Š»Š¾Š¼Š¶ŃŠ¾Š¹ Š±Š¾Š»Š½Š¾." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ ŃŅÆŠ³Š¶ŃŃŠ³ ŃŠ°Š¹Š»Š°Ń " + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ŠŃŃŃ ŅÆŠ³ŃŃ Š¾ŃŃŃŠ»Š°Ń " + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ŠŃŃŃ ŅÆŠ³ Š¾ŃŃŃŠ»Š°Ń Ń ŃŃŃŠ³ŃŃŠ¹" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ā%sā Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŃŅÆŠ³Š¶ŠøŠ³Š“ŃŃŠ½ Š±Ó©Š³Ó©Ó©Š“ Š½ŃŃŃ ŠøŠ¹Š½ ŃŃŠ»Š“ Š½ŃŃŃ ŅÆŠ³ Š¾ŃŃŃŠ»Š°Ń Ń ŃŃŃŠ³ŃŃŠ¹. " + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_ ŠŃŃŃ ŅÆŠ³:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "ŠŃŠ½ Š“Š°ŃŃŠ¹ Š½ŃŃŃ ŅÆŠ³ŠøŠ¹Š³ Š¼Š°ŃŃŠ°Ń " + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "ŠŠ°ŃŠ°Ń Ń ŅÆŃŃŠ»ŃŃ Š½ŃŃŃ ŅÆŠ³ŃŃ ŃŠ°Š½Š°Ń " + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "ŠŠ°Š¹Š½Š³Š° ŃŠ°Š½Š°Ń " + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "ŠØŠøŠ½Š¶ ŃŠ°Š½Š°Ń" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "ŠŃÓ©Š½Ń ŠøŠ¹ " + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Š¤Š¾Š½Ń " + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Š»ŠøŃŠµŠ½Š·" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Š¤Š¾Š½Ń " + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Š¤Š¾Š½ŃŠ½Ń Š¼ŃŠ“ŃŃŠ»ŃŠ» ŃŃŠ³Š»ŃŃŠ»Š¶ Š±Š°Š¹Š½Š°... %3d%% " + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "Š„ŃŃŃŠ³Š»ŃŃŠ½ŠøŠ¹ Š½Ó©Ń ŃÓ©Š»" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "ŠŠøŃŠ²ŃŃŠøŠ¹Š½ ŠŠøŃŠµŠ½Š·" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "ŠŃŠ»Š³ŃŃŃŠ½Š³ŅÆŠ¹ Š¼ŃŠ“ŃŃŠ»ŃŠ»" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Š„Š°Š²ŃŃŠ°Š»Ń" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ŠŠ°Š²Ń Š°ŃŠ³Š°" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Š„ŃŠ²Š»ŃŃ ..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ»Ń " + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "ŠŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s ā %s" +msgstr "%s - %s Ń ŃŃŠ“Š°Ń" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "%s Š„ŃŃŠ“Š°Ń" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "Š£Š³ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Ń ŃŃŠ“Š°ŃŠ³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "Š£Š³ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š·Ó©Š²Ń Ó©Š½ Ń Š¾Š¾ŃŠ¾Š½ Ń ŃŃŠ“Š°ŃŃŠ°Š¹ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š½ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ " + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā-ŃŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š°ŃŠ°Š°Š»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "(%d%%) Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ ŃŠ°ŃŠ°Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "ŠŠ»ŃŃŠ½ ŃŠ°Š¹Š» Š°ŃŠ°Š°Š»Š°Ń Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾. " + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "%s-ŃŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š°Ń ŠøŠ½ Š°ŃŠ°Š°Š»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š°Ń ŠøŠ½ Š°ŃŠ°Š°Š»Š°Ń Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾." + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ Š½ŃŃŃ " + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ %s -Š“ Ń Š°Š“Š³Š°Š»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "Š„Š°Š²ŃŃŠ°Š»ŃŃŠ³ %s -Š“ Ń Š°Š“Š³Š°Š»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "ŠŃŃŠ³ŠøŠ¹Š³ %s-Š“ Ń Š°Š“Š³Š°Š»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Š£Š³ ŃŠ°Š¹Š»ŃŠ³ ā%sā Š±Š¾Š»Š³Š¾Š½ Ń Š°Š“Š³Š°Š»Š¶ ŃŠ°Š“ŃŠ°Š½Š³ŅÆŠ¹." + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "(%d%%) Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Š¾ŃŃŃŠ»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "(%d%%) Ń Š°Š²ŃŃŠ°Š»ŃŃŠ³ Š¾ŃŃŃŠ»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "(%d%%) Š·ŃŃŠ³ŠøŠ¹Š³ Š¾ŃŃŃŠ»Š¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "Š„ŃŃŠ»Š±Š°ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń " + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Š°Š¶ŠøŠ» Ń ŅÆŠ»ŃŃŠ»Š³ŃŠ½Š“ Š±Š°Š¹Š½Š°" +msgstr[1] "%d Š°Š¶ŠøŠ» Ń ŅÆŠ»ŃŃŠ»Š³ŃŠ½Š“ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "ā%sā Š°Š¶Š»ŃŠ³ Ń ŃŠ²Š»ŃŠ¶ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:3274 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Š„Š°Š°Ń Š°Š°ŃŠ°Š° Ó©Š¼Š½Ó© ā%sā Ń ŃŠ²Š»ŃŠ³Š“ŃŠ¶ Š±ŃŠ¹ Š°Š¶Š»ŃŠ³ Š“ŃŃŃŃŠ°Š» Ń ŅÆŠ»ŃŃŃ ŅÆŅÆ?" + +#: ../shell/ev-window.c:3277 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ŠŠ“ŃŠ²Ń ŃŃŠ¹ %d Ń ŃŠ²Š»ŃŃ Š°Š¶ŠøŠ» Š±Š°Š¹Š½Š°. Š„ŃŠ²Š»ŃŠ³Š“ŃŠ¶ Š“ŃŃŃŠ°Ń ŃŠ³ Ń ŅÆŠ»ŃŃŃ ŅÆŅÆ?" + +#: ../shell/ev-window.c:3289 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Š¦Š¾Š½Ń Š¾Š¾ Ń Š°Š°Š²Š°Š» Ń ŃŠ²Š»ŃŠ³Š“ŃŃ ŃŃŃ Ń ŅÆŠ»ŃŃŠ»Š³ŃŠ½Š“ Š±Š°Š¹Š³Š°Š° Š°Š¶Š»ŃŃŠ“ Ń ŃŠ²Š»ŃŠ³Š“ŃŃ Š³ŅÆŠ¹." + +#: ../shell/ev-window.c:3293 +msgid "Cancel _print and Close" +msgstr "Š„ŃŠ²Š»ŃŃ ŠøŠ¹Š³ ŃŃŃŠ»Š°Š°Š“ Ń Š°Š°Ń " + +#: ../shell/ev-window.c:3297 +msgid "Close _after Printing" +msgstr "Š„ŃŠ²Š»ŃŃŠ½ŠøŠ¹ Š“Š°ŃŠ°Š° Ń Š°Š°Ń " + +#: ../shell/ev-window.c:3858 +msgid "Toolbar Editor" +msgstr "Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠøŠ¹Š½ Š·Š°ŃŠ²Š°ŃŠ»Š°Š³Ń" + +#: ../shell/ev-window.c:3990 +msgid "There was an error displaying help" +msgstr "Š¢ŃŃŠ»Š°Š¼Š¶ Ń ŅÆŃŃŃŠ½ Š°Š»Š“Š°Š° Š³Š°ŃŃŠ°Š½ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:4201 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń\n" +"%s-ŠøŠ¹Š³ Ń ŃŃŃŠ³Š»ŃŠ¶ Š±Š°Š¹Š½Š° (%s)" + +#: ../shell/ev-window.c:4232 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ŠŠ²ŠøŠ½Ń Š½Ń ŃÓ©Š»Ó©Ó©Ń ŠæŃŠ¾Š³ŃŠ°Š¼ Ń Š°Š½Š³Š°Š¼Š¶ ŃŃŠ» Š§Ó©Š»Ó©Ó©Ń ŠæŃŠ¾Š³ŃŠ°Š¼ Ń Š°Š½Š³Š°Š¼Š¶ŠøŠ¹Š½ ŃŠ°Š½Š³Š°Š°Ń " +"Š³Š°ŃŠ³Š°Š“Š°Š³ ŠŠ»Š¾Š½ Š½ŠøŠ¹ŃŠøŠ¹Š½ ŠµŃÓ©Š½Ń ŠøŠ¹ Š»ŠøŃŠµŠ½Š·ŠøŠ¹Š½ 2-Ń Ń ŃŠ²ŠøŠ»Š±Š°Ń Š±Š¾Š»Š¾Š½ ŃŅÆŅÆŠ»ŠøŠ¹Š½ ŅÆŠµŠøŠ¹Š½ " +"Ń ŅÆŃŃŃŠ½ Ń ŃŠ²ŠøŠ»Š±Š°ŃŃŠ½Ń Š°Š° Š½Ó©Ń ŃÓ©Š»Š“ Š½ŠøŠ¹ŃŅÆŅÆŠ»ŃŠ½ Ó©Ó©ŃŃŠ»Ó©Š½ Š°Ń ŠøŠ½ ŃŅÆŠ³ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶ŃŠ¾Š¹.\n" + +#: ../shell/ev-window.c:4236 +msgid "" +"Evince 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.\n" +msgstr "" +"ŠŠøŠ“ ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ Ń ŃŃŃŠ³ŃŃŃŃŃŠ¹ Š³ŃŠ¶ ŅÆŠ·ŃŠ½ŠøŠ¹ ŅÆŠ½Š“ŃŃŠ½ Š“ŃŃŃ ŃŅÆŠ³ŃŃŠ¶ Š±Š°Š¹Š³Š°Š° Ń ŃŠ¼Š°Ń Š½ŃŠ³ " +"Š±Š°ŃŠ°Š»Š³Š°Š°, Ń ŃŠ“Š°Š»Š“Š°Š°Š½Ń Š±ŃŃŃ ŃŠ¾Š“Š¾ŃŃ Š¾Š¹ Š·Š¾ŃŠøŠ»Š³Š¾Š“ Š½ŠøŠ¹ŃŃŃŠ½ Š±Š°ŃŠ°Š»Š³Š°Š°Š³ŅÆŠ¹Š³ŃŃŃ " +"ŃŅÆŠ³ŃŃŠ“ŃŠ³. ŠŃŠ»Š³ŃŃŃŠ½Š³ŅÆŠ¹ Š¼ŃŠ“ŃŃŠ»ŃŠ» Š°Š²Š°Ń ŃŠ³ Ń ŅÆŃŠ²ŃŠ» ŠŠŠ£ ŠŠ»Š¾Š½ Š½ŠøŠ¹ŃŠøŠ¹Š½ ŠµŃÓ©Š½Ń ŠøŠ¹ " +"Š»ŠøŃŠµŠ½Š·ŃŃŠ¹ ŃŠ°Š½ŠøŠ»ŃŠ°Š½Š° ŃŃ.\n" + +#: ../shell/ev-window.c:4240 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Š¢Š° ŠŠ²ŠøŠ½ŃŃŃŃ Š³Š°Š“Š½Š° ŠŠ»Š¾Š½ Š½ŠøŠ¹ŃŠøŠ¹Š½ ŠµŃÓ©Š½Ń ŠøŠ¹ Š»ŠøŃŠµŠ½Š·ŠøŠ¹Š½ Ń ŃŃŠ»Š±Š°ŃŃŠ³ Š°Š²ŃŠ°Š½ Š±Š°Š¹Ń " +"ŃŠ°Š°ŃŠ“Š»Š°Š³Š°ŃŠ°Š¹ Š±Š°, Ń ŃŃŃŠ² Š°Š²Š°Š°Š³ŅÆŠ¹ Š±Š¾Š» Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA Š³ŃŃŃŠ½ Ń Š°ŃŠ³Š°Š°Ń ŃŃŃŠ“Š°Š½ ŠøŠ»Š³ŃŃŠ½Ń " +"ŅÆŅÆ\n" + +#: ../shell/ev-window.c:4265 +msgid "Evince" +msgstr "ŠŠ²ŠøŠ½Ń" + +#: ../shell/ev-window.c:4268 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 ŠŠ²ŠøŠ½ŃŠøŠ¹Š½ Š·Š¾Ń ŠøŠ¾Š³ŃŠøŠ“" + +#: ../shell/ev-window.c:4274 +msgid "translator-credits" +msgstr "ŠŃŃŃŃŠ»ŃŠ°Š½: ŠÓ©Š»Š¼Š°Š½Š“Š°Ń " + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4543 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ŠŠ½Ń Ń ŃŃŠ“ŃŠ°Š½Š“ %d Š¾Š»Š“Š»Š¾Š¾" +msgstr[1] "ŠŠ½Ń Ń ŃŃŠ“ŃŠ°Š½Š“ %d Š¾Š»Š“Š»Š¾Š¾" + +#: ../shell/ev-window.c:4551 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Š„Š°Š¹Š»Ń Ń ŠøŠ¹Ń ŃŠ“ %3d%% ŅÆŠ»Š“ŃŃŠ½ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:5028 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:5029 +msgid "_Edit" +msgstr "_ŠŠ°ŃŠ²Š°ŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5030 +msgid "_View" +msgstr "_Ņ®Š·ŃŃ " + +#: ../shell/ev-window.c:5031 +msgid "_Go" +msgstr "_ŠŃŠ¾Ń " + +#: ../shell/ev-window.c:5032 +msgid "_Help" +msgstr "_Š¢ŃŃŠ»Š°Š¼Š¶" + +#. File menu +#: ../shell/ev-window.c:5035 ../shell/ev-window.c:5303 +msgid "_Openā¦" +msgstr "_ŠŃŃŃ ..." + +#: ../shell/ev-window.c:5036 ../shell/ev-window.c:5304 +msgid "Open an existing document" +msgstr "ŠŠ°Š¹Š³Š°Š° Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5038 +msgid "Op_en a Copy" +msgstr "Š„ŃŃŠ»Š±Š°ŃŃŠ³ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5039 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŃŠ»ŃŃŃŠ¹ Š±Š°Š¹Š³Š°Š° Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ»Š±Š°ŃŃŠ³ ŃŠøŠ½Ń ŃŠ¾Š½Ń Š¾Š½Š“ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5041 +msgid "_Save a Copyā¦" +msgstr "_Š„ŃŃŠ»Š±Š°ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń ..." + +#: ../shell/ev-window.c:5042 +msgid "Save a copy of the current document" +msgstr "ŠŃŃŠ»ŃŃŃŠ¹ Š±Š°Š¹Š³Š°Š° Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ»Š±Š°ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń " + +#: ../shell/ev-window.c:5044 +msgid "Page Set_upā¦" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń ŃŠ¾Ń ŠøŃŠ³Š¾Š¾..." + +#: ../shell/ev-window.c:5045 +msgid "Set up the page settings for printing" +msgstr "Š„ŃŃŠ“Š°ŃŠ½Ń ŃŠ¾Ń ŠøŃŠ³Š¾Š¾Š³ Ń ŃŠ²Š»ŃŃ ŃŠ“ ŃŠ¾Ń ŠøŃŃŃŠ»Š°Š½ Ń ŠøŠ¹Ń " + +#: ../shell/ev-window.c:5047 +msgid "_Printā¦" +msgstr "_Š„ŃŠ²Š»ŃŃ ..." + +#: ../shell/ev-window.c:5050 +msgid "P_roperties" +msgstr "ŠØŠøŠ½Š¶ ŃŠ°Š½Š°Ń" + +#: ../shell/ev-window.c:5058 +msgid "Select _All" +msgstr "ŠŅÆŠ³Š“ŠøŠ¹Š³_ŃŠ¾Š½Š³Š¾Ń " + +#: ../shell/ev-window.c:5060 +msgid "_Findā¦" +msgstr "_Š„Š°Š¹Ń ..." + +#: ../shell/ev-window.c:5061 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŃŃŃ ŅÆŠ³ Š±Š¾Š»Š¾Š½ Ń Š¾Š»Š±Š¾Š¾ ŅÆŠ³ Ń Š°Š¹Ń " + +#: ../shell/ev-window.c:5067 +msgid "T_oolbar" +msgstr "Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©Ń" + +#: ../shell/ev-window.c:5069 +msgid "Rotate _Left" +msgstr "ŠŅÆŅÆŠ½ ŃŠ°Š» ŃŃŃ ŃŃŠ³ŅÆŅÆŠ»ŃŃ " + +#: ../shell/ev-window.c:5071 +msgid "Rotate _Right" +msgstr "ŠŠ°ŃŃŃŠ½ ŃŠ°Š» ŃŃŃ ŃŃŠ³ŅÆŅÆŠ»ŃŃ " + +#: ../shell/ev-window.c:5082 +msgid "_Reload" +msgstr "_ŠŃ ŠøŠ½ Š°ŃŠ°Š°Š»Š°Ń " + +#: ../shell/ev-window.c:5083 +msgid "Reload the document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Š“Š°Ń ŠøŠ½ Š°ŃŠ°Š°Š»Š°Ń " + +#: ../shell/ev-window.c:5086 +msgid "Auto_scroll" +msgstr "ŠŠ²ŃŠ¾Š¼Š°ŃŠ°Š°Ń Š³ŅÆŠ¹Š»Š³ŃŃ " + +#: ../shell/ev-window.c:5096 +msgid "_First Page" +msgstr "_ŠŃ Š½ŠøŠ¹ Ń ŃŃŠ“Š°Ń" + +#: ../shell/ev-window.c:5097 +msgid "Go to the first page" +msgstr "ŠŃ Š½ŠøŠ¹ Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#: ../shell/ev-window.c:5099 +msgid "_Last Page" +msgstr "_ Š”ŅÆŅÆŠ»ŠøŠ¹Š½ Ń ŃŃŠ“Š°Ń" + +#: ../shell/ev-window.c:5100 +msgid "Go to the last page" +msgstr "Š”ŅÆŅÆŠ»ŠøŠ¹Š½ Ń ŃŃŠ“ŃŠ°Š½Š“ Š¾ŃŠøŃ " + +#. Help menu +#: ../shell/ev-window.c:5104 +msgid "_Contents" +msgstr "_ŠŠ³ŃŃŠ»Š°Š³Š“Ń ŃŃŠ½" + +#: ../shell/ev-window.c:5107 +msgid "_About" +msgstr "_Š¢ŃŃ Š°Š¹" + +#. Toolbar-only +#: ../shell/ev-window.c:5111 +msgid "Leave Fullscreen" +msgstr "ŠŃŠ»Š³ŃŃ Š“ŅÆŅÆŃŃŠ½ ŅÆŠ»Š“ŃŃŃ " + +#: ../shell/ev-window.c:5112 +msgid "Leave fullscreen mode" +msgstr "ŠŃŠ»Š³ŃŃ Š“ŅÆŅÆŃŃŠ½ Š³Š¾ŃŠøŠ¼Š¾Š¾Ń ŅÆŠ»Š“ŃŃŃ " + +#: ../shell/ev-window.c:5114 +msgid "Start Presentation" +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ½ ŃŃ Š»ŅÆŅÆŠ»ŃŃ " + +#: ../shell/ev-window.c:5115 +msgid "Start a presentation" +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ½ ŃŃ Š»ŅÆŅÆŠ»ŃŃ " + +#. View Menu +#: ../shell/ev-window.c:5174 +msgid "_Toolbar" +msgstr "_Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©Ń" + +#: ../shell/ev-window.c:5175 +msgid "Show or hide the toolbar" +msgstr "Š„ŃŃŃŠ³ŃŠ»ŠøŠ¹Š½ Š¼Ó©ŃŠøŠ¹Š³ Ń Š°ŃŃŃŠ»Š°Ń Š±ŃŃŃ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5177 +msgid "Side _Pane" +msgstr "Š„Š°Š¶ŃŃŠ³ŠøŠ¹Š½_ŃŃŠ³Š°Š¼" + +#: ../shell/ev-window.c:5178 +msgid "Show or hide the side pane" +msgstr "Š„Š°Š¶ŃŃŠ³ŠøŠ¹Š½ ŃŃŠ³Š°Š¼ŃŠ³ Ń Š°ŃŃŃŠ»Š°Ń Š±ŃŃŃ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5180 +msgid "_Continuous" +msgstr "_Ņ®ŃŠ³ŃŠ»Š¶Š»ŃŃ " + +#: ../shell/ev-window.c:5181 +msgid "Show the entire document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ Š±ŅÆŃ Š»ŃŃŃ Š½Ń ŅÆŠ·ŅÆŅÆŠ»ŃŃ " + +#: ../shell/ev-window.c:5183 +msgid "_Dual" +msgstr "_ŠŃŃŃŠ³" + +#: ../shell/ev-window.c:5184 +msgid "Show two pages at once" +msgstr "Š„Š¾ŃŃ Ń ŃŃŠ“ŃŃŠ³ Š½ŃŠ³ŃŠ½ Š·ŃŃŃŠ³ Ń Š°ŃŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5186 +msgid "_Fullscreen" +msgstr "_ŠŃŠ»Š³ŃŃ Š“ŅÆŅÆŃŃŠ½" + +#: ../shell/ev-window.c:5187 +msgid "Expand the window to fill the screen" +msgstr "Š¦Š¾Š½Ń ŃŠ³ Ó©ŃŠ³Ó©ŃŠ³Ó©Š¶ Š“ŃŠ»Š³ŃŃŠøŠ¹Š³ Š“ŅÆŅÆŃŠ³ŃŃ " + +#: ../shell/ev-window.c:5189 +msgid "Pre_sentation" +msgstr "Ņ®Š·ŅÆŅÆŠ»ŃŠ½ " + +#: ../shell/ev-window.c:5190 +msgid "Run document as a presentation" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ ŅÆŠ·ŅÆŅÆŠ»ŃŠ½ Š±Š°Š¹Š“Š»Š°Š°Ń Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5198 +msgid "_Inverted Colors" +msgstr "_Š„ŃŠ²ŠøŃŠ³Š°ŃŠ°Š½ Ó©Š½Š³Ó©" + +#: ../shell/ev-window.c:5199 +msgid "Show page contents with the colors inverted" +msgstr "Š„ŃŠ²ŠøŃŠ³Š°ŃŠ°Š½ Ó©Š½Š³Ó©ŃŃŠ¹ Ń ŃŃŠ“Š°ŃŠ½Ń Š°Š³ŃŃŠ»Š°Š³Š“Ń ŃŃŠ½ŃŠ³ Ń Š°ŃŃŃŠ»Š°Ń " + +#. Links +#: ../shell/ev-window.c:5207 +msgid "_Open Link" +msgstr "_Š„Š¾Š»Š±Š¾Š¾ŃŃŠ³ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5209 +msgid "_Go To" +msgstr "_ŠŃŠ¾Ń " + +#: ../shell/ev-window.c:5211 +msgid "Open in New _Window" +msgstr "ŠØŠøŠ½Ń ŃŠ¾Š½Ń Š¾Š½Š“ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5213 +msgid "_Copy Link Address" +msgstr "_Š„Š¾Š»Š±Š¾Š¾ŃŃŠ½ Ń Š°ŃŠ³ŠøŠ¹Š³ Ń ŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5215 +msgid "_Save Image Asā¦" +msgstr "_ŠŃŃŠ³ŠøŠ¹Š³ Ó©Ó©Ń ŃŠ¾ŃŠ¼Š°ŃŠ°Š°Ń Ń Š°Š“Š³Š°Š»Š°Ń ..." + +#: ../shell/ev-window.c:5217 +msgid "Copy _Image" +msgstr "ŠŃŃŠ³ŠøŠ¹Š³ Ń ŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5222 +msgid "_Open Attachment" +msgstr "_Š„Š°Š²ŃŃŠ°Š»ŃŃŠ³ Š½ŃŃŃ " + +#: ../shell/ev-window.c:5224 +msgid "_Save Attachment Asā¦" +msgstr "_Š„Š°Š²ŃŃŠ°Š»ŃŃŠ³ Ó©Ó©Ń ŃŠ¾ŃŠ¼Š°ŃŠ°Š°Ń Ń Š°Š“Š³Š°Š»Š°Ń ..." + +#: ../shell/ev-window.c:5277 +msgid "Zoom" +msgstr "ŠŃŃŠ³ŠøŠ¹Š½ Ń ŃŠ¼Š¶ŃŃŠ³ Ó©Ó©ŃŃŠ»Ó©Ń " + +#: ../shell/ev-window.c:5279 +msgid "Adjust the zoom level" +msgstr "ŠŃŃŠ³ŠøŠ¹Š½ Ń ŃŠ¼Š¶ŃŃŠ³ Ó©Ó©ŃŃŠ»Ó©Ń ŃŅÆŠ²ŃŠ½ŠøŠ¹Š³ ŃŠ¾Ń ŠøŃŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5289 +msgid "Navigation" +msgstr "ŠŠ°Š»ŃŃŃ" + +#: ../shell/ev-window.c:5291 +msgid "Back" +msgstr "ŠŃŃŠ°Ń " + +#. translators: this is the history action +#: ../shell/ev-window.c:5294 +msgid "Move across visited pages" +msgstr "Ņ®Š·ŃŃŠ½ Ń ŃŃŠ“ŃŃŃŠ“ ŃŃŃ ŃŠøŠ»Š¶ŠøŃ " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5324 +msgid "Previous" +msgstr "ÓØŠ¼Š½Ó©Ń " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5329 +msgid "Next" +msgstr "ŠŠ°ŃŠ°Š°Ń " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Zoom In" +msgstr "ŠŃŃŠ³ŠøŠ¹Š³ ŃŠ¾Š¼ŃŃŃŠ»Š°Ń " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5337 +msgid "Zoom Out" +msgstr "ŠŃŃŠ³ŠøŠ¹Š³ Š¶ŠøŠ¶ŠøŠ³ŃŅÆŅÆŠ»ŃŃ " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5345 +msgid "Fit Width" +msgstr "ÓØŃŠ³Ó©Š½ŠøŠ¹Š³ ŃŠ¾Ń ŠøŃŃŃŠ»Š°Ń " + +#: ../shell/ev-window.c:5506 ../shell/ev-window.c:5523 +msgid "Unable to launch external application." +msgstr "ŠŃŠ¼ŃŠ»Ń ŠæŃŠ¾Š³ŃŠ°Š¼ Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹." + +#: ../shell/ev-window.c:5580 +msgid "Unable to open external link" +msgstr "ŠŃŠ¼ŃŠ»Ń Ń Š¾Š»Š±Š¾Š¾Ń Š½ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹" + +#: ../shell/ev-window.c:5747 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŃŃŠ³ŠøŠ¹Š³ Ń Š°Š“Š³Š°Š»Š°Ń ŃŠ¾Ń ŠøŃŠ¾Š¼Š¶ŃŠ¾Š¹ ŃŠ¾ŃŠ¼Š°Ń Š¾Š»Š“ŃŠ¾Š½Š³ŅÆŠ¹" + +#: ../shell/ev-window.c:5789 +msgid "The image could not be saved." +msgstr "ŠŃŃŠ°Š³ Ń Š°Š“Š³Š°Š»Š°Š³Š“ŃŠ°Š½Š³ŅÆŠ¹." + +#: ../shell/ev-window.c:5821 +msgid "Save Image" +msgstr "ŠŃŃŠ°Š³ Ń Š°Š“Š³Š°Š»Š°Ń " + +#: ../shell/ev-window.c:5888 +msgid "Unable to open attachment" +msgstr "Š„Š°Š²ŃŃŠ°Š»Ń Š½ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°" + +#: ../shell/ev-window.c:5941 +msgid "The attachment could not be saved." +msgstr "Š„Š°Š²ŃŃŠ°Š»Ń Ń Š°Š“Š³Š°Š»Š°Š³Š“ŃŠ°Š½Š³ŅÆŠ¹." + +#: ../shell/ev-window.c:5986 +msgid "Save Attachment" +msgstr "Š„Š°Š²ŃŃŠ°Š»ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń " + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s - ŠŃŃŃ ŅÆŠ³ŃŃ Š¾ŃŃŃŠ»Š°Ń Ń ŃŃŃŠ³ŃŃŠ¹" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "ÓØŃŠ³Ó©ŃŠ³Ó©Š»Ó©Ó©Ń " + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "ŠŠŠŠ£Š Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠøŠ³ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "ŠŃŃŃ Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ Ń ŃŃŠ“Š°Ń" + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "Š„Š£Š£ŠŠŠ”" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ Š“ŃŠ»Š³ŃŃ Š“ŅÆŅÆŃŃŠ½ Š³Š¾ŃŠøŠ¼Š¾Š¾Ń Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń " + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ ŅÆŠ·ŅÆŅÆŠ»ŃŠ½Š³ŠøŠ¹Š½ Š³Š¾ŃŠøŠ¼Š¾Š¾Ń Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń " + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ ŃŃŃŠ“ŃŠøŠ»Š°Š½ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń Š±Š¾Š»Š³Š¾Š½ Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń " + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ŠŠ°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŃŃŃ Ń Š°Š¹Ń ŅÆŠ³ Š±Š¾Š»Š¾Š½ Ń Š¾Š»Š±Š¾Š¾ ŅÆŠ³" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ŠŠŠ§ŠŠŠ " + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Š¤ŠŠŠ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŅÆŅÆŠ»ŠøŠ½ ŃŠ¾Š½Š³Š¾Š»ŃŃŃŠ“ Š±ŠøŠ¹: ŅÆŠ½ŃŠ½ Š³ŃŠ“ŃŠ³ Š½Ń ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Ń Š±Š¾Š»Š¾Š¼Š¶ŃŠ¾Š¹ Š±Š¾Š»Š³Š¾Ń Š±Š° " +"Ń ŃŠ“Š°Š» Š³ŃŠ“ŃŠ³ Š½Ń ŃŠøŠ½Ń ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Š³Ń ŅÆŅÆŃŠ³ŃŃ Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹ Š±Š¾Š»Š³Š¾Š½Š¾" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š³ ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Ń Š±Š¾Š»Š¾Š¼Š¶ŃŠ¾Š¹ Š±Š¾Š»Š³Š¾Ń " + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Ń ŠŗŠ¾Š¼Š°Š½Š“" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ŠÓ©Š² ŠŗŠ¾Š¼Š°Š½Š“ Š½Ń PDF Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŠøŠ¹Š½ ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Š³ŃŠøŠ“ ŠæŠ°ŃŠ°Š¼ŠµŃŃ Š¾ŃŃŃŠ»Š“Š°Š³. " +"ŠŃŠ»Š³ŃŃŃŠ½Š³ŅÆŠ¹ Š¼ŃŠ“ŃŃŠ»ŃŠ» Š°Š²Š°Ń ŃŠ³ Ń ŅÆŃŠ²ŃŠ» ŠµŃÓ©Š½Ń ŠøŠ¹Š»Ó©Š½ Ń Š°ŃŃŃŠ»Š°Š³ŃŠøŠ¹Š½ Š±Š°ŃŠøŠ¼ŃŠ¶ŃŃŠ»Š°Š»Ń " +"ŠŠ°ŃŃŠøŠ»ŠøŃŃŠ°Š¹ ŃŠ°Š½ŠøŠ»ŃŠ°Š½Š° ŃŃ." + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU Š±Š°ŃŠøŠ¼Ń Š±ŃŃŃŃ ŃŠ¾ŃŠ¼Š°ŃŃŠ°Š¹ Š±Š°Š¹Š½Š°" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sā ŃŠ°Š¹Š»ŃŠ³ ŅÆŅÆŃŠ³ŃŃ Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾: %s" + +#~ msgid "Search string" +#~ msgstr "ŠÓ©Ń Ń Š°Š¹Ń " + +#~ msgid "The name of the string to be found" +#~ msgstr "Š„Š°Š¹Š¶ Š¾Š»Š¾Ń Š¼Ó©ŃŠøŠ¹Š½ Š½ŃŃ" + +#~ msgid "Highlight color" +#~ msgstr "Š¢Š¾Š“ŃŃŃŠ»ŃŠ°Š½ Ó©Š½Š³Ó©" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ŠŅÆŃ ŠøŠ»ŃŃŃŠøŠ¹Š³ ŃŠ¾Š“ŃŃŃŠ»ŃŠ°Š½ Ó©Š½Š³Ó© " + +#~ msgid "Current color" +#~ msgstr "Š„ŃŃŃŠ³Š»ŃŠ¶ Š±ŃŠ¹ Ó©Š½Š³Ó© " + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Š„Š°Š¼Š³ŠøŠ¹Š½ ŃŅÆŅÆŠ»ŠøŠ¹Š½ ŠøŠ»ŃŃŃŠøŠ¹Š³ ŃŠ¾Š“ŃŃŃŠ»ŃŠ°Š½ Ó©Š½Š³Ó© " + +#~ msgid "Recover previous documents?" +#~ msgstr "ÓØŠ¼Š½Ó©Ń Š±Š°ŃŠøŠ¼Ń Š±ŠøŃŠ³ŅÆŅÆŠ“ŃŃ ŃŃŃŠ³ŃŃŃ ŅÆŅÆ? " + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ŠŠ²ŠøŠ½ŃŠøŠ¹Š³ ŃŅÆŅÆŠ»Š“ Š°Š¶ŠøŠ»Š»ŃŃŠ»Š°Ń Š°Š“ ŃŠ°Š½Š°Š°Š½Š“Š³ŅÆŠ¹ Š³Š°ŃŃŠøŃ ŃŠ°Š½ ŃŠ¼ ŃŠøŠ³ Š±Š°Š¹Š½Š°.Š¢Š° Š½ŃŃŠ»ŃŃŃŠ¹ " +#~ "Š±Š°Š¹ŃŠ°Š½ Š±Š°ŃŠøŠ¼ŃŃŃŠ“ŃŠ³ ŃŃŃŠ³ŃŃŃ Š±Š¾Š»Š¾Š¼Š¶ŃŠ¾Š¹." + +#~ msgid "_Don't Recover" +#~ msgstr "_Š”ŃŃŠ³ŃŃŃ Š³ŅÆŠ¹" + +#~ msgid "_Recover" +#~ msgstr "_Š”ŃŃŠ³ŃŃŃ " + +#~ msgid "Crash Recovery" +#~ msgstr "Š”ŃŃŠ³ŃŃŠ»Ń Š°Š¼Š¶ŠøŠ»ŃŠ³ŅÆŠ¹ Š±Š¾Š»Š»Š¾Š¾. " + +#~ msgid "Print..." +#~ msgstr "Š„ŃŠ²Š»ŃŃ " + +#~ msgid "_Save a Copy..." +#~ msgstr "_Š„ŃŃŠ»Š±Š°ŃŃŠ³ Ń Š°Š“Š³Š°Š»Š°Ń ..." + +#~ msgid "_Print..." +#~ msgstr "_Š„ŃŠ²Š»ŃŃ ..." + +#~ msgid "_Find..." +#~ msgstr "_Š„Š°Š¹Ń ..." diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 00000000..589db931 --- /dev/null +++ b/po/mr.po @@ -0,0 +1,1711 @@ +# translation of mr.po to Marathi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Sameer N. Ingole <strike@proscrutiny.com>, 2006. +# Rahul Bhalerao <b.rahul.pm@gmail.com>, 2006. +# Sandeep Shedmake <sandeep.shedmake@gmail.com>, 2008, 2009. +# Sandeep Shedmake <sshedmak@redhat.com>, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: mr\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-07-26 09:19+0000\n" +"PO-Revision-Date: 2010-07-26 17:07+0530\n" +"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n" +"Language-Team: Marathi <fedora-trans-mr@redhat.com>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¤ą„ą¤®ą„ą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤ ą¤”ą„ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤øą„ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤øą¤¾ą¤ ą„ ą¤ą¤¦ą„ą¤¶ ā%sā ą¤Ŗą„ą¤°ą¤ą„ą¤·ą„ą¤Ŗą„ą¤¤ ą¤ą¤°ą¤¤ą„ą¤µą„ą¤³ą„ ą¤¤ą„ą¤°ą„ą¤ą„: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą¤ą„ą¤®ą„ą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤ ą¤”ą„ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤ø ą¤ą¤°ą¤¤ą„ą¤µą„ą¤³ą„ ą¤ą¤¦ą„ą¤¶ ā%sā ą¤ ą¤Ŗą¤Æą¤¶ą„." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ą¤ą¤¦ą„ą¤¶ ā%sā ą¤Æą„ą¤ą„ą¤Æą¤°ą¤æą¤¤ą„ą¤Æą¤¾ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤¾ą¤²ą„ ą¤Øą¤¾ą¤¹ą„." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¤ą„ą¤®ą„ą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤ MIME ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą¤Øą¤¾ą¤¹ą„: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°ą¤ą„ ą¤ą„ą¤®ą„ą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤ ą¤”ą¤æą¤ą¤ą¤Ŗą„ą¤°ą„ą¤øą„ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤Æą„ą¤ą„ą¤Æ ą¤ą¤¦ą„ą¤¶ ą¤ą¤¢ą¤³ą¤²ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ MIME ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤øą¤¦ą„ą¤·ą„ą¤¤" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ą¤ą¤°ą„ą¤ą¤¾ą¤ą¤µą„ą¤¹ą¤®ą¤§ą„ą¤Æą„ ą¤«ą¤¾ą¤ą¤²ą„ą¤øą„ ą¤ą¤¢ą¤³ą¤²ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą¤ą¤ ą„ą¤ ą„ą¤Æą¤¾ą¤¤ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾ ą¤®ą¤æą¤³ą¤¾ą¤²ą„ą¤Æą¤¾ ą¤Øą¤¾ą¤¹ą„ą¤¤" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą¤Øą¤·ą„ą¤ ą¤ą¤°ą¤¤ą„ą¤µą„ą¤³ą„ ą¤¤ą„ą¤°ą„ą¤ą„ ą¤ą¤¢ą¤³ą¤³ą„." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ą¤¤ą„ą¤°ą„ą¤ą„ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¤ą¤æą¤¤ą„ą¤°ą¤¾ą¤ą„ą¤·ą¤° ą¤Ŗą„ą¤øą„ą¤¤ą¤" + +#: ../backend/djvu/djvu-document.c:173 +#, fuzzy +msgid "DjVu document has incorrect format" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤°ą¤ą¤Øą¤¾ ą¤ą„ą¤ ą¤ą¤¹ą„" + +#: ../backend/djvu/djvu-document.c:250 +#, fuzzy +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ ą¤Øą„ą¤ ą¤«ą¤¾ą¤ą¤²ą¤ą„ ą¤øą¤®ą¤¾ą¤Æą„ą¤ą¤Ø ą¤ą¤¹ą„. ą¤ą¤ ą¤ą¤æą¤ą¤µą¤¾ ą¤¤ą„ą¤Æą¤¾ą¤Ŗą„ą¤ą„ą¤·ą¤¾ ą¤ą¤¾ą¤øą„ą¤¤ ą¤«ą¤¾ą¤ą¤² ą¤ą¤°ą„ą¤¤ą¤¾ ą¤Ŗą„ą¤°ą¤µą„ą¤¶ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„ą¤¤ ą¤¹ą„ą¤ " +"ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#, fuzzy +msgid "DjVu Documents" +msgstr "Djvu ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤°ą¤ą¤Øą¤¾ ą¤ą„ą¤ ą¤ą¤¹ą„" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../backend/pdf/ev-poppler.cc:521 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:774 +msgid "Yes" +msgstr "ą¤¹ą„ą¤Æ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:777 +msgid "No" +msgstr "ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 1C" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§C" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "Type 3" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„©" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1 (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§ (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "Type 1C (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§C (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:919 +msgid "Unknown font type" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ ą¤«ą„ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/pdf/ev-poppler.cc:945 +msgid "No name" +msgstr "ą¤Øą¤¾ą¤µ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded subset" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤ą¤Ŗą¤øą¤®ą„ą¤¹" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤”" + +#: ../backend/pdf/ev-poppler.cc:957 +msgid "Not embedded" +msgstr "ą¤ą¤ą¤¬ą„ą¤”ą„ą¤” ą¤Øą¤øą¤²ą„ą¤²ą„" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą¤ ą¤µą„ą¤§ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¤ą¤ą¤Ŗą„ą¤°ą„ą¤ø ą¤øą„ą¤²ą¤¾ą¤ą¤”ą¤øą„" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¤¤ą„ą¤°ą„ą¤ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¤ ą¤¤ą¤æą¤°ą„ą¤ą„ą¤¤ ą¤øą„ą¤®ą„ą¤¤ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:59 +#, fuzzy +msgid "Cannot find ZIP signature" +msgstr "zip ą¤øą„ą¤µą¤¾ą¤ą„ą¤·ą¤°ą„ ą¤ą¤¢ą¤³ą¤²ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:62 +#, fuzzy +msgid "Invalid ZIP file" +msgstr "ą¤ ą¤µą„ą¤§ zip ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/impress/zip.c:65 +#, fuzzy +msgid "Multi file ZIPs are not supported" +msgstr "ą¤¬ą¤¹ą„ ą¤«ą¤¾ą¤ą¤² zip ą¤øą¤®ą¤°ą„ą¤„ą„ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą¤ą¤”ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤Ŗą¤¾ą¤øą„ą¤Ø ą¤®ą¤¾ą¤¹ą¤æą¤¤ą„ ą¤µą¤¾ą¤ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:74 +#, fuzzy +msgid "Cannot find file in the ZIP archive" +msgstr "zip ą¤øą¤ą¤ą¤Æą¤Ø ą¤®ą¤§ą„ą¤Æą„ ą¤«ą¤¾ą¤ą¤² ą¤¶ą„ą¤§ą„ ą¤¶ą¤ą¤²ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ ą¤¤ą„ą¤°ą„ą¤ą„" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤µą¤¾ą¤ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤Ŗą¤Æą¤¶ą„" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¤Ŗą„ą¤øą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¤ą„ą¤”ą¤£ą„ ā%sā ą¤øą¤ą¤ą„ą¤°ą¤¹ą„ą¤¤ ą¤ą¤°ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¤ą„ą¤”ą¤£ą„ ā%sā ą¤ą¤ą¤”ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¤ą„ą¤”ą¤£ą„ ā%sā ą¤ą¤ą¤”ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° %s (%s) ą¤øą¤®ą¤°ą„ą¤„ą„ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¤øą¤°ą„ą¤µ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¤øą¤°ą„ą¤µ ą¤«ą¤¾ą¤ą¤²ą„ą¤ø" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą¤¤ą¤¾ą¤¤ą„ą¤Ŗą„ą¤°ą„ą¤¤ą„ ą¤”ą¤æą¤°ą„ą¤ą„ą¤ą„ą¤°ą„ ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤Ŗą¤Æą¤¶ą„." + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą¤¤ą¤¾ą¤¤ą„ą¤Ŗą„ą¤°ą„ą¤¤ą„ ą¤”ą¤æą¤°ą„ą¤ą„ą¤ą„ą¤°ą„ ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤Ŗą¤Æą¤¶ą„." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤µą„ą¤§ .desktop ą¤«ą¤¾ą¤ą¤² ą¤Øą¤¾ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ ą¤”ą„ą¤øą„ą¤ą¤ą„ą¤Ŗ ą¤«ą¤¾ą¤ą¤² ą¤ą¤µą„ą¤¤ą„ą¤¤ą„ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¤øą„ą¤°ą„ ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¤ ą¤Øą„ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤ą¤¦ą„ą¤¶ ą¤ą¤³ ą¤Ŗą¤¾ą¤øą„ą¤Ø ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤øą„ą¤µą„ą¤ą¤¾ą¤°ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ ą¤Ŗą„ą¤°ą¤ą„ą¤·ą„ą¤Ŗą¤Ø ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Æ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ą¤”ą„ą¤øą„ą¤ą¤ą„ą¤Ŗ ą¤Øą„ą¤ą¤¦ą¤£ą„ ą¤ą¤°ą„ą¤¤ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ą„ą¤² URIs ą¤Ŗą¤¾ą¤ ą¤µą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¤ą¤¾ą¤²ą¤µą¤£ą„ą¤Æą¤¾ą¤Æą„ą¤ą„ą¤Æ ą¤Ŗą„ą¤°ą„ą¤ą„ą¤°ą¤¾ą¤® ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§ ą¤Øą¤¾ą¤¹ą„" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą¤øą¤¤ą„ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤Ŗą¤¾ą¤Øą¤¶ą„ ą¤ą„ą¤³ą¤µą¤£ą„ ą¤ ą¤ą¤¾ą¤°ą„ą¤Æą¤¾ą¤Øą„ą¤µą¤¤ą„ ą¤ą¤°ą¤¾" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤øą¤ą¤Æą„ą¤ą¤Øą¤¾ ą¤øą¤®ą¤¾ą¤µą¤æą¤·ą„ą¤ ą„ą¤¤ ą¤«ą¤¾ą¤ą¤² ą¤Øą¤æą¤°ą„ą¤¦ą„ą¤¶ą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą¤øą¤¤ą„ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤¾ą¤Ŗą¤Ø ID ą¤Øą¤æą¤¶ą„ą¤ą¤æą¤¤ ą¤ą¤°ą¤¾" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą¤øą¤¤ą„ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤Ŗą¤¾ą¤Ø ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Æ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¤øą¤¤ą„ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤Ŗą¤¾ą¤Ø ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Æ ą¤¦ą¤¾ą¤ą¤µą¤¾" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą¤¦ą¤¾ą¤ą¤µą¤¾" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„ą¤µą¤° ą¤¹ą¤²ą¤µą¤¾ (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ą¤Øą¤æą¤µą¤”ą¤²ą„ą¤²ą„ ą¤¬ą¤¾ą¤¬ ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą¤æą¤ą„ą¤µą¤° ą¤¹ą¤²ą¤µą¤¾" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą¤æą¤ą„ą¤µą¤°ą„ą¤Ø ą¤ą¤¾ą¤¢ą¤¾ (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ą¤Øą¤æą¤µą¤”ą¤²ą„ą¤²ą„ ą¤¬ą¤¾ą¤¬ ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą¤æą¤ą„ą¤µą¤°ą„ą¤Ø ą¤ą¤¾ą¤¢ą„ą¤Ø ą¤ą¤¾ą¤ą¤¾" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„ ą¤ą¤¾ą¤¢ą„ą¤Ø ą¤ą¤¾ą¤ą¤¾ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ą¤Øą¤æą¤µą¤”ą¤²ą„ą¤²ą„ ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą¤æą¤ą¤¾ ą¤ą¤¾ą¤¢ą„ą¤Ø ą¤ą¤¾ą¤ą¤¾" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ą¤µą¤æą¤ą¤¾ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5517 +msgid "Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤¬ą¤øą¤£ą¤¾ą¤°ą„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ą¤Æą¤¾ ą¤°ą„ą¤ą¤¦ą„ą¤¤ ą¤¬ą¤øą¤µą¤¾" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą„«ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#, fuzzy +msgid "800%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#, fuzzy +msgid "1600%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#, fuzzy +msgid "3200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#, fuzzy +msgid "6400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4304 +#: ../shell/ev-window-title.c:149 ../shell/main.c:313 +#, c-format +msgid "Document Viewer" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../data/evince.desktop.in.in.h:2 +#, fuzzy +msgid "View multi-page documents" +msgstr "ą¤ ą¤Øą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤¬ą¤ą¤¾" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤µą¤°ą„ą¤² ą¤Øą¤æą¤°ą„ą¤¬ą¤ą¤§ ą¤ą„ą¤ą¤¾ą¤°ą„ą¤Ø ą¤ą¤¾ą¤ą¤¾" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¤Ŗą„ą¤°ą¤¤ ą¤¤ą¤Æą¤¾ą¤° ą¤ą¤°ą¤£ą„ ą¤ ą¤„ą¤µą¤¾ ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤Ŗą„ą¤°ą¤®ą¤¾ą¤£ą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤µą¤°ą„ą¤² ą¤Øą¤æą¤°ą„ą¤¬ą¤ą¤§ ą¤ą„ą¤ą¤¾ą¤°ą„ą¤Ø ą¤ą¤¾ą¤ą¤¾." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą¤¤ą¤¾ą¤¤ą„ą¤Ŗą„ą¤°ą„ą¤¤ą„ ą¤«ą¤¾ą¤ą¤² ą¤Øą¤·ą„ą¤ ą¤ą¤°ą¤¾" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą¤øą¤ą¤Æą„ą¤ą¤Øą¤¾ ą¤«ą¤¾ą¤ą¤²ą¤ą„ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "MATE ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤°ą„ą¤µą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3065 +msgid "Failed to print document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤æą¤¤ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤¤ ą¤ ą¤¶ą¤®ą¤°ą„ą¤„" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¤Øą„ą¤µą¤”ą¤²ą„ą¤²ą„ ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° '%s' ą¤ą¤¢ą¤³ą¤²ą„ ą¤Øą¤¾ą¤¹ą„" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5232 +msgid "_Previous Page" +msgstr "ą¤®ą¤¾ą¤ą„ą¤² ą¤Ŗą¤¾ą¤Ø(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5233 +msgid "Go to the previous page" +msgstr "ą¤®ą¤¾ą¤ą„ą¤² ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5235 +msgid "_Next Page" +msgstr "ą¤Ŗą„ą¤¢ą„ą¤² ą¤Ŗą¤¾ą¤Ø(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5236 +msgid "Go to the next page" +msgstr "ą¤Ŗą„ą¤¢ą„ą¤² ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +# msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤®ą„ą¤ ą„ ą¤ą¤°ą„ą¤Ø ą¤¦ą¤°ą„ą¤¶ą¤µą¤¾" +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5219 +msgid "Enlarge the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤®ą„ą¤ ą„ ą¤ą¤°ą¤¾" + +# msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą¤ą„ą¤” ą¤ą¤°ą„ą¤Ø ą¤¦ą¤°ą„ą¤¶ą¤µą¤¾" +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5222 +msgid "Shrink the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤ą„ą¤” ą¤ą¤°ą¤¾" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5190 +msgid "Print this document" +msgstr "ą¤¹ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤æą¤¤ ą¤ą¤°ą¤¾" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5334 +msgid "_Best Fit" +msgstr "ą¤øą¤°ą„ą¤µą„ą¤¤ą„ą¤¤ą¤® ą¤ą¤ą¤¾ą¤° (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5335 +msgid "Make the current document fill the window" +msgstr "ą¤ą¤¾ą¤²ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤ą¤² ą¤ą¤°ą„ą¤² ą¤ ą¤øą„ ą¤ą¤°ą¤¾" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5337 +msgid "Fit Page _Width" +msgstr "ą¤Ŗą¤¾ą¤Ø ą¤°ą„ą¤ą¤¦ą„ą¤¤ ą¤¬ą¤øą¤µą¤¾(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5338 +msgid "Make the current document fill the window width" +msgstr "ą¤ą¤¾ą¤²ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤æą¤”ą¤ą„ą¤ą„ ą¤°ą„ą¤ą¤¦ą„ ą¤ą¤°ą„ą¤² ą¤ ą¤øą„ ą¤ą¤°ą¤¾" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5439 +msgid "Page" +msgstr "ą¤Ŗą¤¾ą¤Ø" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5440 +msgid "Select Page" +msgstr "ą¤Ŗą¤¾ą¤Ø ą¤Øą¤æą¤µą¤”ą¤¾" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą¤¶ą¤æą¤°ą„ą¤·ą¤:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą¤ ą¤æą¤ą¤¾ą¤£:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą¤µą¤æą¤·ą¤Æ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ą¤²ą„ą¤ą¤:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą¤®ą„ą¤ą„ą¤Æą¤¶ą¤¬ą„ą¤¦:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą¤ą¤¤ą„ą¤Ŗą¤¾ą¤¦ą¤:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤¤ą¤¾:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ ą¤ą„ą¤²ą„ą¤²ą„:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą¤¬ą¤¦ą¤² ą¤¦ą¤æą¤Øą¤¾ą¤ą¤:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą¤ą„ ą¤øą¤ą¤ą„ą¤Æą¤¾:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą¤ ą¤Øą„ą¤ą„ą¤² ą¤ą„ą¤²ą„ą¤²ą„:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą¤øą„ą¤µą¤°ą„ą¤Ŗ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą¤øą„ą¤°ą¤ą„ą¤·ą¤¾:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą¤ą¤¾ą¤ą¤¦ą¤¾ą¤ą¤¾ ą¤ą¤ą¤¾ą¤°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ą¤ą¤¾ą¤¹ą„ ą¤Øą¤¾ą¤¹ą„" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "ą¤®ą„ą¤²ą¤ą„ą¤¤:mm" + +#: ../properties/ev-properties-view.c:261 +#, fuzzy, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, fuzzy, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ą¤ą¤ą¤" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¤ą¤ą„ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¤ą¤”ą¤µą„ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą¤Ŗą„ą¤ą„ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "ą¤ą¤¾ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +#, fuzzy +msgid "Loadingā¦" +msgstr "ą¤µą¤¾ą¤ą¤¤ą„ą¤Æ..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#, fuzzy +msgid "Preparing to printā¦" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤°ą„ą¤¤ą¤¾ ą¤¤ą¤Æą¤¾ą¤° ą¤ą¤°ą¤¤ ą¤ą¤¹ą„ ..." + +#: ../libview/ev-print-operation.c:336 +#, fuzzy +msgid "Finishingā¦" +msgstr "ą¤øą¤ą¤Ŗą¤µą¤æą¤¤ ą¤ą¤¹ą„..." + +#: ../libview/ev-print-operation.c:338 +#, fuzzy, c-format +msgid "Printing page %d of %dā¦" +msgstr "%d ą¤Ŗą„ą¤ą„ %d ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤°ą¤¤ ą¤ą¤¹ą„..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą¤¹ą¤¾ ą¤®ą„ą¤¦ą„ą¤°ą¤ą¤¾ą¤µą¤° ą¤®ą„ą¤¦ą„ą¤°ą¤£ą¤¾ą¤ø ą¤Ŗą¤¾ą¤ ą¤æą¤ą¤¬ą¤¾ ą¤Øą¤¾ą¤¹ą„." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą¤ ą¤µą„ą¤§ ą¤Ŗą¤¾ą¤Ø ą¤Øą„ą¤µą¤”" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą¤øą¤¾ą¤µą¤§ą¤¾ą¤Øą¤¤ą¤¾" + +#: ../libview/ev-print-operation.c:1229 +#, fuzzy +msgid "Your print range selection does not include any pages" +msgstr "ą¤¤ą„ą¤®ą¤ą„ą¤Æą¤¾ ą¤ą¤Ŗą¤¾ą¤ ą¤µą„ą¤Æą¤¾ą¤Ŗą„ą¤¤ą„ ą¤Øą„ą¤µą¤” ą¤®ą¤§ą„ą¤Æą„ ą¤Ŗą¤¾ą¤Ø ą¤øą¤®ą¤¾ą¤µą¤æą¤·ą„ą¤ą„ą¤¤ ą¤Øą¤¾ą¤¹ą„" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤ą¤ą¤¾ą¤° ą¤¬ą¤¦ą¤²:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤ą„ ą¤ą„ą¤·ą„ą¤¤ą„ą¤°ą¤ą¤°ą„ą¤¤ą¤¾ ą¤øą¤ą¤ą„ą¤ą¤Ø ą¤ą¤°ą¤¾" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤ą„ ą¤ą„ą¤·ą„ą¤¤ą„ą¤°ą¤¾ą¤¤ ą¤¬ą¤øą¤µą¤¾" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ą¤Øą„ą¤µą¤”ą¤²ą„ą¤²ą„ ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° ą¤Ŗą¤¾ą¤Ø ą¤¬ą¤øą¤µą¤£ą„ą¤Æą¤¾ą¤øą¤¾ą¤ ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤¾ą¤Øą„ ą¤Ŗą„ą¤°ą¤®ą¤¾ą¤£ą„ą¤¤ ą¤ą¤°ą¤¾. ą¤ą¤¾ą¤²ą„ą¤²ą¤Ŗą„ą¤ą„ ą¤ą¤ ą¤Øą„ą¤µą¤”ą¤¾:\n" +"\n" +"ā¢ \"None\": ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤øą„ą¤ą„ą¤²ą¤æą¤ą¤ ą¤ą¤¾ą¤²ą¤µą¤²ą„ ą¤ą¤¾ą¤¤ ą¤Øą¤¾ą¤¹ą„.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° ą¤Ŗą¤¾ą¤Øą¤¾ą¤²ą¤¾ ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤ą„ ą¤ą„ą¤·ą„ą¤¤ą„ą¤°ą¤¾ą¤¤ ą¤¬ą¤øą¤µą¤£ą„ą¤Æą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ " +"ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤ą„ ą¤ą„ą¤·ą„ą¤¤ą„ą¤°ą¤Ŗą„ą¤ą„ą¤·ą¤¾ ą¤®ą„ą¤ ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą¤ą„ ą¤ą¤ą¤¾ą¤° ą¤²ą¤¹ą¤¾ą¤Ø ą¤ą„ą¤²ą„ ą¤ą¤¾ą¤¤ą¤¾ą¤¤.\n" +"\n" +"ā¢ \"Fit to Printable Area\": ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° ą¤Ŗą¤¾ą¤Øą¤¾ą¤²ą¤¾ ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤ą„ ą¤ą„ą¤·ą„ą¤¤ą„ą¤°ą¤¾ą¤¤ ą¤¬ą¤øą¤µą¤£ą„ą¤Æą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ " +"ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą¤ą„ ą¤ą¤ą¤¾ą¤° ą¤ą¤µą¤¶ą„ą¤Æą¤ą¤¤ą¤¾ą¤Ŗą„ą¤°ą¤®ą¤¾ą¤£ą„ ą¤®ą„ą¤ ą„ ą¤ą¤æą¤ą¤µą¤¾ ą¤²ą¤¹ą¤¾ą¤Ø ą¤ą„ą¤²ą„ ą¤ą¤¾ą¤¤ą¤¾ą¤¤.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ą¤øą„ą¤µą¤Æą¤ ą¤«ą¤æą¤°ą¤µą¤¾ ą¤µ ą¤®ą¤§ą„ą¤Æą¤ą¤¾ą¤ą„ ą¤ą¤£ą¤¾" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ą¤Ŗą„ą¤°ą¤¤ą„ą¤Æą„ą¤ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤¦ą¤æą¤¶ą¤¾ ą¤ą„ą¤³ą¤µą¤£ą„ą¤Æą¤¾ą¤øą¤¾ą¤ ą„ ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤¦ą¤æą¤¶ą¤¾ ą¤¬ą¤¦ą¤²ą¤¾. ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą¤¾ą¤Øą„ " +"ą¤ą¤Ŗą¤¾ą¤ą¤Æą¤ą¤¤ą„ą¤° ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ą¤Æą¤¾ ą¤®ą¤§ą„ą¤Æą¤ą¤¾ą¤ą„ ą¤øą„ą¤„ą„ą¤¤ ą¤¹ą„ą¤¤ą„ą¤²." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą„ ą¤¹ą¤¾ą¤¤ą¤¾ą¤³ą¤£ą„" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą¤Ŗą¤¾ą¤Ø %d ą¤ą„ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤Ŗą¤Æą¤¶ą„: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ą¤µą¤° ą¤øą¤°ą¤ą¤µą¤¾" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ą¤ą¤¾ą¤²ą„ ą¤øą¤°ą¤ą¤µą¤¾" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ą¤¦ą„ą¤¶ą„ą¤Æ ą¤µą¤° ą¤øą¤°ą¤ą¤µą¤¾" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ą¤¦ą„ą¤¶ą„ą¤Æ ą¤ą¤¾ą¤²ą„ ą¤øą¤°ą¤ą¤µą¤¾" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾:" + +#: ../libview/ev-view-presentation.c:968 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤. ą¤¬ą¤¾ą¤¹ą„ą¤° ą¤Ŗą¤”ą¤£ą„ą¤Æą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ Escape ą¤¦ą¤¾ą¤¬ą¤¾." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ą¤Ŗą¤¹ą„ą¤²ą„ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ą¤®ą¤¾ą¤ą„ą¤² ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ą¤Ŗą„ą¤¢ą„ą¤² ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ą¤¶ą„ą¤µą¤ą¤²ą„ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ą¤¶ą„ą¤§ą¤¾" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "%s ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ą¤«ą¤¾ą¤ą¤² ā%sā ą¤µą¤° ą¤øą„ą¤„ą„ą¤¤ %s ą¤µą¤° ą¤ą¤¾" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤²ą¤ą¤”ą„ ą¤ą¤¾" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ą¤øą„ą¤°ą„ ą¤ą¤°ą¤¾" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¤¶ą„ą¤§ą¤¾:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5207 +msgid "Find Pre_vious" +msgstr "ą¤®ą¤¾ą¤ą„ą¤² ą¤¶ą„ą¤§ą¤¾(_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¤ą¤§ą„ ą¤ą¤¢ą¤³ą¤²ą„ą¤²ą„ą¤Æą¤¾ ą¤¶ą„ą¤§ ą¤ ą¤ą„ą¤·ą¤°ą¤®ą¤¾ą¤²ą¤¾" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5205 +msgid "Find Ne_xt" +msgstr "ą¤Ŗą„ą¤¢ą¤æą¤² ą¤¶ą„ą¤§ą¤¾(_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¤Ŗą„ą¤¢ą¤²ą„ ą¤ą¤¢ą¤³ą¤£ą¤¾ą¤°ą„ ą¤ ą¤ą„ą¤·ą¤°ą¤®ą¤¾ą¤²ą¤¾ ą¤¶ą„ą¤§ą¤¾" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą¤æą¤ą„ą¤µą„ą¤¹(_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¤ą„ą¤ø ą¤øą„ą¤ą¤øą¤æą¤ą„ą¤µą„ą¤¹ ą¤¶ą„ą¤§ ą¤ą¤²ą¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#, fuzzy +msgid "Note" +msgstr "ą¤ą¤¾ą¤¹ą„ ą¤Øą¤¾ą¤¹ą„" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#, fuzzy +msgid "Comment" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#, fuzzy +msgid "Help" +msgstr "ą¤®ą¤¦ą¤¤(_H)" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#, fuzzy +msgid "Unknown" +msgstr "ą¤ ą¤Ŗą¤°ą¤æą¤ą„ą¤¤ ą¤¤ą„ą¤°ą„ą¤ą„" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#, fuzzy +msgid "Annotation Properties" +msgstr "ą¤µą„ą¤¶ą¤æą¤·ą„ą¤ą„ą¤Æą„" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#, fuzzy +msgid "Style:" +msgstr "ą¤¶ą¤æą¤°ą„ą¤·ą¤:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#, fuzzy +msgid "Open" +msgstr "ą¤ą¤ą¤”ą¤¾ (_O)..." + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤Ŗą¤§ą„ą¤¦ą¤¤ą„ą¤¤ ą¤ą¤¾ą¤°ą„ą¤Æą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦" + +#: ../shell/ev-convert-metadata.c:88 +#, fuzzy, c-format +msgid "Converting %s" +msgstr "%s ą¤øą„ą¤°ą„ ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¤Øą„ą¤ą¤¤ą„ą¤ ą¤µą¤¾ą¤Ŗą¤°ą¤²ą„ą¤²ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤ą¤”ą¤¾" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¤¹ą¤¾ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą„ą¤²ą„ą¤Ŗą¤¬ą¤ą¤¦ ą¤ą¤¹ą„ ą¤ą¤£ą¤æ ą¤«ą¤ą„ą¤¤ ą¤Æą„ą¤ą„ą¤Æ ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą¤æą¤²ą„ą¤Æą¤¾ą¤µą¤°ą¤ ą¤µą¤¾ą¤ą¤²ą„ ą¤ą¤¾ą¤ ą¤¶ą¤ą¤¤ą„." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤ą„ą¤²ą„ą¤Ŗ ą¤ą¤ą¤”ą¤¾(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤¦ą„ą¤Æą¤¾" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤µą¤¶ą„ą¤Æą¤" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ā%sā ą¤ą„ą¤²ą„ą¤Ŗą¤¬ą¤ą¤¦ ą¤ą¤¹ą„ ą¤ą¤£ą¤æ ą¤¤ą„ ą¤ą¤ą¤”ą¤£ą„ą¤Æą¤¾ą¤Ŗą„ą¤°ą„ą¤µą„ ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ą¤¾ą¤ą„ ą¤ą¤°ą¤ ą¤ą¤¹ą„." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤¤ą¤¾ą¤¬ą¤”ą¤¤ą„ą¤¬ ą¤µą¤æą¤øą¤°ą¤¾ (_i)" + +#: ../shell/ev-password-view.c:380 +#, fuzzy +msgid "Remember password until you _log out" +msgstr "ą¤µą¤¾ą¤Ŗą¤°ą¤ą¤°ą„ą¤¤ą¤¾ ą¤¬ą¤¦ą¤²ą„ ą¤Ŗą¤°ą„ą¤Æą¤ą¤¤ ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤²ą¤ą„ą¤·ą¤¾ą¤¤ ą¤ ą„ą¤µą¤¾ (_R)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą¤Øą„ą¤¹ą¤®ą„ą¤ą¤°ą„ą¤¤ą¤¾ ą¤²ą¤ą„ą¤·ą¤¾ą¤¤ ą¤ ą„ą¤µą¤¾ (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą¤µą„ą¤¶ą¤æą¤·ą„ą¤ą„ą¤Æą„" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą¤øą¤¾ą¤®ą¤¾ą¤Øą„ą¤Æ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą¤«ą„ą¤ą¤ą„ą¤ø" + +#: ../shell/ev-properties-dialog.c:118 +#, fuzzy +msgid "Document License" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¤«ą„ą¤ą¤" + +#: ../shell/ev-properties-fonts.c:162 +#, fuzzy, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą¤«ą„ą¤ą¤ą¤ą„ ą¤®ą¤¾ą¤¹ą¤æą¤¤ą„ ą¤ą„ą¤³ą¤¾ ą¤ą„ą¤²ą„ ą¤ą¤¾ą¤¤ą„ą¤Æ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#, fuzzy +msgid "Annotations" +msgstr "ą¤ ą¤æą¤ą¤¾ą¤£:" + +#: ../shell/ev-sidebar-annotations.c:209 +#, fuzzy +msgid "Text" +msgstr "ą¤Ŗą„ą¤¢ą¤æą¤²" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:364 +#, fuzzy +msgid "Document contains no annotations" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ ą¤Ŗą¤¾ą¤Ø ą¤Øą¤¾ą¤¹ą„" + +#: ../shell/ev-sidebar-annotations.c:396 +#, fuzzy, c-format +msgid "Page %d" +msgstr "ą¤Ŗą¤¾ą¤Ø %s" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¤ą„ą¤”ą¤£ą„ą¤Æą¤¾" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą¤øą„ą¤¤ą¤°" + +#: ../shell/ev-sidebar-links.c:335 +#, fuzzy +msgid "Printā¦" +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą¤Øą¤æą¤°ą„ą¤¦ą„ą¤¶ą¤æą¤ą¤¾" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ą¤ą„ą¤ą„ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾" + +#: ../shell/ev-window.c:855 +#, fuzzy, c-format +msgid "Page %s ā %s" +msgstr "ą¤Ŗą¤¾ą¤Ø %s - %s" + +#: ../shell/ev-window.c:857 +#, c-format +msgid "Page %s" +msgstr "ą¤Ŗą¤¾ą¤Ø %s" + +#: ../shell/ev-window.c:1322 +msgid "The document contains no pages" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ ą¤Ŗą¤¾ą¤Ø ą¤Øą¤¾ą¤¹ą„" + +#: ../shell/ev-window.c:1325 +msgid "The document contains only empty pages" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ ą¤«ą¤ą„ą¤¤ ą¤°ą¤æą¤ą¤¾ą¤®ą„ ą¤Ŗą¤¾ą¤Ø ą¤ą¤¢ą¤³ą¤²ą„" + +#: ../shell/ev-window.c:1525 ../shell/ev-window.c:1691 +msgid "Unable to open document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤ą¤”ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤¶ą¤ą„ą¤Æ" + +#: ../shell/ev-window.c:1662 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ą¤Ŗą¤¾ą¤øą„ą¤Ø ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤²ą„ą¤” ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:1804 ../shell/ev-window.c:2082 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ (%d%%) ą¤”ą¤¾ą¤ą¤Øą¤²ą„ą¤” ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:1837 +#, fuzzy +msgid "Failed to load remote file." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤Øą„ą¤¹ą¤¦ą¤¾ą¤ą¤² ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤¶ą¤ą„ą¤Æ." + +#: ../shell/ev-window.c:2026 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ą¤Ŗą¤¾ą¤øą„ą¤Ø ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤Øą„ą¤¹ ą¤¦ą¤¾ą¤ą¤² ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2058 +msgid "Failed to reload document." +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤Øą„ą¤¹ą¤¦ą¤¾ą¤ą¤² ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤¶ą¤ą„ą¤Æ." + +#: ../shell/ev-window.c:2213 +msgid "Open Document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤ą¤”ą¤¾" + +# msgstr "ą¤¦ą¤øą„ą¤¤ą¤¾ą¤µą„ą¤ ą¤ą¤ą„ą¤” ą¤ą¤°ą„ą¤Ø ą¤¦ą¤°ą„ą¤¶ą¤µą¤¾" +#: ../shell/ev-window.c:2511 +#, c-format +msgid "Saving document to %s" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ %s ą¤ą¤°ą„ą¤¤ą¤¾ ą¤øą¤¾ą¤ ą¤µą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ą¤¶ą„ ą¤ą„ą¤³ą¤µą¤£ą„ ą¤øą¤¾ą¤ ą¤µą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2517 +#, c-format +msgid "Saving image to %s" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ %s ą¤ą¤°ą„ą¤¤ą¤¾ ą¤øą¤¾ą¤ ą¤µą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2561 ../shell/ev-window.c:2661 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¤«ą¤¾ą¤ą¤² ā%sā ą¤Øą„ą¤°ą„ą¤Ŗ ą¤øą¤¾ą¤ ą¤µą¤¾." + +#: ../shell/ev-window.c:2592 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ (%d%%) ą¤ ą¤Ŗą¤²ą„ą¤” ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2596 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¤ą„ą¤³ą¤µą¤£ą„ (%d%%) ą¤ ą¤Ŗą¤²ą„ą¤” ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2600 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ (%d%%) ą¤ą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:2724 +msgid "Save a Copy" +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ ą¤øą¤¾ą¤ ą¤µą¤¾" + +#: ../shell/ev-window.c:3009 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ą¤ą¤°ą„ą¤µą¤°ą„ą¤¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤°ą¤¾ą¤ą¤ą„ą¤¤" +msgstr[1] "%d ą¤ą¤°ą„ą¤µą¤°ą„ą¤¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤°ą¤¾ą¤ą¤ą„ą¤¤" + +#: ../shell/ev-window.c:3122 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą¤ą¤¾ą¤°ą„ą¤Æ ā%sā ą¤ą„ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:3336 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ā%sā ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤£ą„ ą¤¬ą¤ą¤¦ ą¤¹ą„ą¤£ą„ą¤Æą¤¾ą¤Ŗą„ą¤°ą„ą¤µą„ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤¹ą„ą¤ą¤Ŗą¤°ą„ą¤Æą¤ą¤¤ ą¤„ą¤¾ą¤ą¤¬ą¤¾ą¤Æą¤ą„?" + +#: ../shell/ev-window.c:3339 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d ą¤ą¤Ŗą¤¾ą¤ ą¤ą„ą¤°ą¤æą¤Æą¤¾ ą¤øą¤ą„ą¤°ą„ą¤Æ ą¤ą¤¹ą„. ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤£ą„ ą¤¬ą¤ą¤¦ ą¤¹ą„ą¤£ą„ą¤Æą¤¾ą¤Ŗą„ą¤°ą„ą¤µą„ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤¹ą„ą¤ą¤Ŗą¤°ą„ą¤Æą¤ą¤¤ ą¤„ą¤¾ą¤ą¤¬ą¤¾ą¤Æą¤ą„?" + +#: ../shell/ev-window.c:3351 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¤ą¤æą¤”ą¤ą„ ą¤¬ą¤ą¤¦ ą¤ą„ą¤²ą„ą¤Æą¤¾ą¤ø, ą¤ą¤°ą„ą¤µą¤°ą„ą¤¤ ą¤ą¤Ŗą¤¾ą¤ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤ą¤Ŗą¤¾ą¤ą¤ą„ą¤¤ ą¤¹ą„ą¤£ą¤¾ą¤° ą¤Øą¤¾ą¤¹ą„." + +#: ../shell/ev-window.c:3355 +msgid "Cancel _print and Close" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤µ ą¤¬ą¤ą¤¦ ą¤ą¤°ą¤¾ ą¤°ą¤¦ą„ą¤¦ ą¤ą¤°ą¤¾ (_p)" + +#: ../shell/ev-window.c:3359 +msgid "Close _after Printing" +msgstr "ą¤ą¤Ŗą¤¾ą¤ ą¤Øą¤ą¤¤ą¤° ą¤¬ą¤ą¤¦ ą¤ą¤°ą¤¾ (_a)" + +#: ../shell/ev-window.c:3949 +msgid "Toolbar Editor" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„ ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤" + +#: ../shell/ev-window.c:4088 +msgid "There was an error displaying help" +msgstr "ą¤®ą¤¦ą¤¤ ą¤¦ą¤°ą„ą¤¶ą¤µą¤æą¤¤ą„ą¤µą„ą¤³ą„ ą¤¤ą„ą¤°ą„ą¤ą„ ą¤ą¤¢ą¤³ą¤²ą„" + +#: ../shell/ev-window.c:4300 +#, fuzzy, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤ ą¤Ŗą„ą¤°ą¤¦ą¤°ą„ą¤¶ą¤.\n" +"ą¤Ŗą„ą¤Ŗą„ą¤²ą¤° %s (%s) ą¤µą¤¾ą¤Ŗą¤°ą¤¤ ą¤ą¤¹ą„" + +#: ../shell/ev-window.c:4331 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4335 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4339 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4364 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4367 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince ą¤²ą„ą¤ą¤" + +#: ../shell/ev-window.c:4373 +msgid "translator-credits" +msgstr "" +"Sameer N. Ingole <strike@proscrutiny.com>, 2006; ą¤°ą¤¾ą¤¹ą„ą¤² ą¤ą¤¾ą¤²ą„ą¤°ą¤¾ą¤µ <b.rahul." +"pm@gmail.com>, 2006; ą¤øą¤ą¤¦ą¤æą¤Ŗ ą¤¶ą„ą¤”ą¤®ą¤¾ą¤ą„ <sandeep.shedmake@gmail.com>, 2008, 2009; " +"ą¤øą¤ą¤¦ą¤æą¤Ŗ ą¤¶ą„ą¤”ą¤®ą¤¾ą¤ą„ <sshedmak@redhat.com>, 2009, 2010." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4658 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤®ą¤æą¤³ą¤¾ą¤²ą„" +msgstr[1] "%d ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤®ą¤æą¤³ą¤¾ą¤²ą„ą¤¤" + +#: ../shell/ev-window.c:4666 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¤¶ą„ą¤§ą¤¾ą¤Æą¤ą„ ą¤ą¤°ą¤²ą„ą¤¤" + +#: ../shell/ev-window.c:5173 +msgid "_File" +msgstr "ą¤«ą¤¾ą¤ą¤²(_F)" + +#: ../shell/ev-window.c:5174 +msgid "_Edit" +msgstr "ą¤øą¤ą¤Ŗą¤¾ą¤¦ą¤¾(_E)" + +#: ../shell/ev-window.c:5175 +msgid "_View" +msgstr "ą¤Ŗą¤¹ą¤¾(_V)" + +#: ../shell/ev-window.c:5176 +msgid "_Go" +msgstr "ą¤ą¤¾(_G)" + +#: ../shell/ev-window.c:5177 +msgid "_Help" +msgstr "ą¤®ą¤¦ą¤¤(_H)" + +#. File menu +#: ../shell/ev-window.c:5180 ../shell/ev-window.c:5479 +#, fuzzy +msgid "_Openā¦" +msgstr "ą¤ą¤ą¤”ą¤¾ (_O)..." + +#: ../shell/ev-window.c:5181 ../shell/ev-window.c:5480 +msgid "Open an existing document" +msgstr "ą¤ ą¤øą„ą¤¤ą¤æą¤¤ą„ą¤µą¤¾ą¤¤ ą¤ ą¤øą¤²ą„ą¤²ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤ą¤ą¤”ą¤¾" + +#: ../shell/ev-window.c:5183 +msgid "Op_en a Copy" +msgstr "ą¤Ŗą„ą¤°ą¤¤ ą¤ą¤ą¤”ą¤¾ (_e)" + +#: ../shell/ev-window.c:5184 +msgid "Open a copy of the current document in a new window" +msgstr "ą¤øą¤¦ą„ą¤Æą¤¾ą¤ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ ą¤Øą¤µą¤æą¤Ø ą¤ą„ą¤ą¤ą„ą¤¤ ą¤ą¤ą¤”ą¤¾" + +#: ../shell/ev-window.c:5186 +#, fuzzy +msgid "_Save a Copyā¦" +msgstr "ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ ą¤øą¤¾ą¤ ą¤µą¤¾" + +#: ../shell/ev-window.c:5187 +msgid "Save a copy of the current document" +msgstr "ą¤øą¤§ą„ą¤Æą¤¾ą¤ą„ą¤Æą¤¾ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤ą¤ ą¤Ŗą„ą¤°ą¤¤ ą¤øą¤¾ą¤ ą¤µą¤¾" + +#: ../shell/ev-window.c:5189 +#, fuzzy +msgid "_Printā¦" +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£" + +#: ../shell/ev-window.c:5192 +msgid "P_roperties" +msgstr "ą¤ą„ą¤£ą¤§ą¤°ą„ą¤® (_r)" + +#: ../shell/ev-window.c:5200 +msgid "Select _All" +msgstr "ą¤øą¤°ą„ą¤µ ą¤Øą¤æą¤µą¤”ą¤¾(_A)" + +#: ../shell/ev-window.c:5202 +#, fuzzy +msgid "_Findā¦" +msgstr "ą¤¶ą„ą¤§ą¤¾" + +#: ../shell/ev-window.c:5203 +msgid "Find a word or phrase in the document" +msgstr "ą¤ą¤ą¤¾ą¤¦ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤ ą¤„ą¤µą¤¾ ą¤µą¤¾ą¤ą„ą¤Æ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ ą¤¶ą„ą¤§ą¤¾" + +#: ../shell/ev-window.c:5209 +msgid "T_oolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„(_o)" + +#: ../shell/ev-window.c:5211 +msgid "Rotate _Left" +msgstr "ą¤”ą¤¾ą¤µą„ą¤ą¤”ą„ ą¤«ą¤æą¤°ą¤µą¤¾(_L)" + +#: ../shell/ev-window.c:5213 +msgid "Rotate _Right" +msgstr "ą¤ą¤ą¤µą„ą¤ą¤”ą„ ą¤«ą¤æą¤°ą¤µą¤¾(_R)" + +#: ../shell/ev-window.c:5224 +msgid "_Reload" +msgstr "ą¤Ŗą„ą¤Øą„ą¤¹ą¤¾ ą¤µą¤¾ą¤ą¤¾(_R)" + +#: ../shell/ev-window.c:5225 +msgid "Reload the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤Øą„ą¤¹ą¤¾ ą¤µą¤¾ą¤ą¤¾" + +#: ../shell/ev-window.c:5228 +msgid "Auto_scroll" +msgstr "ą¤ą¤Ŗą„ą¤ą¤Ŗ ą¤¹ą¤²ą¤µą¤¾ (_s)" + +#: ../shell/ev-window.c:5238 +msgid "_First Page" +msgstr "ą¤Ŗą¤¹ą„ą¤²ą„ ą¤Ŗą¤¾ą¤Ø(_F)" + +#: ../shell/ev-window.c:5239 +msgid "Go to the first page" +msgstr "ą¤Ŗą¤¹ą„ą¤²ą„ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#: ../shell/ev-window.c:5241 +msgid "_Last Page" +msgstr "ą¤¶ą„ą¤µą¤ą¤²ą„ ą¤Ŗą¤¾ą¤Ø(_L)" + +#: ../shell/ev-window.c:5242 +msgid "Go to the last page" +msgstr "ą¤¶ą„ą¤µą¤ą¤²ą„ą¤Æą¤¾ ą¤Ŗą¤¾ą¤Øą¤¾ą¤µą¤° ą¤ą¤¾" + +#. Help menu +#: ../shell/ev-window.c:5246 +msgid "_Contents" +msgstr "ą¤øą¤®ą¤¾ą¤µą¤æą¤·ą„ą¤ą„(_C)" + +#: ../shell/ev-window.c:5249 +msgid "_About" +msgstr "ą¤ą¤µą„ą¤¹ą„ą¤ą¤ø ą¤¬ą¤¦ą„ą¤¦ą¤²(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5253 +msgid "Leave Fullscreen" +msgstr "ą¤«ą„ą¤²ą¤øą„ą¤ą„ą¤°ą„ą¤Ø ą¤øą„ą¤”ą¤¾" + +# msgstr "ą¤Ŗą„ą¤°ą„ą¤£ ą¤®ą„ą¤ ą„ą¤Æą¤¾ą¤Ŗą¤”ą¤¦ą¤¾ ą¤øą„ą¤„ą¤æą¤¤ą„ą¤¤ ą¤øą„ą¤”ą¤¾" +#: ../shell/ev-window.c:5254 +msgid "Leave fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤”ą¤¦ą¤¾ ą¤Ŗą¤§ą„ą¤¦ą¤¤ą„ ą¤øą„ą¤”ą¤¾" + +#: ../shell/ev-window.c:5256 +msgid "Start Presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤øą„ą¤°ą„ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5257 +msgid "Start a presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤øą„ą¤°ą„ ą¤ą¤°ą¤¾" + +#. View Menu +#: ../shell/ev-window.c:5316 +msgid "_Toolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„(_T)" + +#: ../shell/ev-window.c:5317 +msgid "Show or hide the toolbar" +msgstr "ą¤øą¤¾ą¤§ą¤Øą¤Ŗą¤ą„ą¤ą„ ą¤¦ą¤¾ą¤ą¤µą¤¾ ą¤ ą¤„ą¤µą¤¾ ą¤²ą¤Ŗą¤µą¤¾" + +#: ../shell/ev-window.c:5319 +msgid "Side _Pane" +msgstr "ą¤¬ą¤¾ą¤ą„ą¤ą„ ą¤«ą¤³ą„(_P)" + +#: ../shell/ev-window.c:5320 +msgid "Show or hide the side pane" +msgstr "ą¤¬ą¤¾ą¤ą„ą¤ą„ ą¤«ą¤³ą„ ą¤¦ą¤¾ą¤ą¤µą¤¾ ą¤ ą¤„ą¤µą¤¾ ą¤²ą¤Ŗą¤µą¤¾" + +#: ../shell/ev-window.c:5322 +msgid "_Continuous" +msgstr "ą¤øą¤¤ą¤¤ (_C)" + +#: ../shell/ev-window.c:5323 +msgid "Show the entire document" +msgstr "ą¤øą¤ą¤Ŗą„ą¤°ą„ą¤£ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤¦ą¤¾ą¤ą¤µą¤¾" + +#: ../shell/ev-window.c:5325 +msgid "_Dual" +msgstr "ą¤¦ą„ą¤¹ą„ą¤°ą„(_D)" + +#: ../shell/ev-window.c:5326 +msgid "Show two pages at once" +msgstr "ą¤¦ą„ą¤Ø ą¤Ŗą¤¾ą¤Øą„ ą¤ą¤ą¤¦ą¤® ą¤¦ą¤¾ą¤ą¤µą¤¾" + +#: ../shell/ev-window.c:5328 +msgid "_Fullscreen" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤ą¤²(_F)" + +#: ../shell/ev-window.c:5329 +msgid "Expand the window to fill the screen" +msgstr "ą¤Ŗą¤ą¤² ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤£ą„ ą¤µą„ą¤Æą¤¾ą¤Ŗą¤£ą„ą¤Æą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ ą¤ą¤æą¤”ą¤ą„ą¤ą„ ą¤Ŗą„ą¤°ą¤øą¤°ą¤£ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5331 +msgid "Pre_sentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ (_s)" + +#: ../shell/ev-window.c:5332 +msgid "Run document as a presentation" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤®ą„ą¤¹ą¤£ą„ą¤Ø ą¤ą¤¾ą¤²ą¤µą¤¾" + +#: ../shell/ev-window.c:5340 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5341 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5349 +msgid "_Open Link" +msgstr "ą¤¦ą„ą¤µą¤¾ ą¤ą¤ą¤”ą¤¾(_O)" + +#: ../shell/ev-window.c:5351 +msgid "_Go To" +msgstr "ą¤ą¤„ą„ ą¤ą¤¾(_G)" + +#: ../shell/ev-window.c:5353 +msgid "Open in New _Window" +msgstr "ą¤Øą¤µą¤æą¤Ø ą¤ą„ą¤ą¤ą„ą¤¤ ą¤ą¤ą¤”ą¤¾ (_W)" + +#: ../shell/ev-window.c:5355 +msgid "_Copy Link Address" +msgstr "ą¤²ą¤æą¤ą¤ ą¤Ŗą¤¤ą„ą¤¤ą¤¾ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ ą¤¬ą¤Øą¤µą¤¾ (_C)" + +#: ../shell/ev-window.c:5357 +#, fuzzy +msgid "_Save Image Asā¦" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤¾ (_S)..." + +#: ../shell/ev-window.c:5359 +msgid "Copy _Image" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ ą¤ą¤ą¤”ą¤¾ (_I)" + +#: ../shell/ev-window.c:5361 +msgid "Annotation Propertiesā¦" +msgstr "" + +#: ../shell/ev-window.c:5366 +#, fuzzy +msgid "_Open Attachment" +msgstr "ą¤ą„ą¤”ą¤£ą„ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5368 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "ą¤ą„ą¤”ą¤£ą„ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5453 +msgid "Zoom" +msgstr "ą¤®ą„ą¤ ą„/ą¤²ą¤¹ą¤¾ą¤Ø ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5455 +msgid "Adjust the zoom level" +msgstr "ą¤ą„ą¤® ą¤øą„ą¤„ą¤æą¤¤ą„ ą¤øą„ą¤øą„ą¤„ą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:5465 +msgid "Navigation" +msgstr "ą¤øą¤ą¤ą¤¾ą¤°" + +#: ../shell/ev-window.c:5467 +msgid "Back" +msgstr "ą¤®ą¤¾ą¤ą„" + +#. translators: this is the history action +#: ../shell/ev-window.c:5470 +msgid "Move across visited pages" +msgstr "ą¤ą„ą¤ ą¤¦ą¤æą¤²ą„ą¤²ą„ ą¤Ŗą¤¾ą¤Øą¤¾ą¤ą¤¶ą„ ą¤øą¤ą¤ą¤¾ą¤° ą¤ą¤°ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5500 +msgid "Previous" +msgstr "ą¤®ą¤¾ą¤ą„ą¤²" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5505 +msgid "Next" +msgstr "ą¤Ŗą„ą¤¢ą¤æą¤²" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5509 +msgid "Zoom In" +msgstr "ą¤®ą„ą¤ ą„ ą¤ą¤°ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5513 +msgid "Zoom Out" +msgstr "ą¤²ą¤¹ą¤¾ą¤Ø ą¤ą¤°ą¤¾" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5521 +msgid "Fit Width" +msgstr "ą¤°ą„ą¤ą¤¦ą„ą¤¤ ą¤¬ą¤øą¤µą¤¾" + +#: ../shell/ev-window.c:5682 ../shell/ev-window.c:5699 +msgid "Unable to launch external application." +msgstr "ą¤¬ą¤¾ą¤¹ą„ą¤°ą„ą¤² ą¤ ą¤Øą„ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤Ŗą„ą¤°ą¤ą„ą¤·ą„ą¤Ŗą„ą¤¤ ą¤ą¤°ą¤£ą„ ą¤ ą¤¶ą¤ą„ą¤Æ." + +#: ../shell/ev-window.c:5756 +msgid "Unable to open external link" +msgstr "ą¤¬ą¤¾ą¤¹ą„ą¤°ą„ą¤² ą¤ą„ą¤”ą¤£ą„ ą¤ą¤ą¤”ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤Ŗą¤Æą¤¶ą„" + +#: ../shell/ev-window.c:5923 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ą¤°ą„ą¤¤ą¤¾ ą¤Æą„ą¤ą„ą¤Æ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą¤ą¤¢ą¤³ą¤²ą¤¾ ą¤Øą¤¾ą¤¹ą„" + +#: ../shell/ev-window.c:5965 +msgid "The image could not be saved." +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„." + +#: ../shell/ev-window.c:5997 +msgid "Save Image" +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤®ą¤¾ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window.c:6125 +msgid "Unable to open attachment" +msgstr "ą¤ą„ą¤”ą¤£ą„ ą¤ą¤ą¤”ą¤£ą„ą¤Æą¤¾ą¤ø ą¤ ą¤øą¤®ą¤°ą„ą¤„" + +#: ../shell/ev-window.c:6178 +msgid "The attachment could not be saved." +msgstr "ą¤ą„ą¤”ą¤£ą„ ą¤øą„ą¤°ą¤ą„ą¤·ą„ą¤¤ ą¤ą¤°ą„ ą¤¶ą¤ą¤¤ ą¤Øą¤¾ą¤¹ą„." + +#: ../shell/ev-window.c:6223 +msgid "Save Attachment" +msgstr "ą¤ą„ą¤”ą¤£ą„ ą¤øą¤ą¤ą¤Æą„ą¤¤ ą¤ą¤°ą¤¾" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +msgid "%s ā Password Required" +msgstr "%s - ą¤Ŗą¤°ą¤µą¤²ą„ą¤ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤µą¤¶ą„ą¤Æą¤" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ą¤µą¤æą¤øą„ą¤¤ą¤¾ą¤° ą¤¦ą„ą¤µą¤¾ą¤°ą„" + +#: ../shell/main.c:72 ../shell/main.c:277 +msgid "MATE Document Viewer" +msgstr "MATE ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../shell/main.c:80 +#, fuzzy +msgid "The page label of the document to display." +msgstr "ą¤¦ą¤¾ą¤ą¤µą¤æą¤£ą„ą¤Æą¤¾ą¤ą„ą¤ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤Ŗą¤¾ą¤Ø." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "ą¤Ŗą¤¾ą¤Ø" + +#: ../shell/main.c:81 +#, fuzzy +msgid "The page number of the document to display." +msgstr "ą¤¦ą¤¾ą¤ą¤µą¤æą¤£ą„ą¤Æą¤¾ą¤ą„ą¤ą„ ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą„ ą¤Ŗą¤¾ą¤Ø." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤ą¤² ą¤øą„ą¤„ą¤æą¤¤ą„ą¤¤ ą¤ą¤µą„ą¤¹ą„ą¤ą¤ø ą¤ą¤¾ą¤²ą¤µą¤¾" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ą¤ą¤°ą¤£ ą¤øą„ą¤„ą¤æą¤¤ą„ą¤¤ ą¤ą¤µą„ą¤¹ą„ą¤ą¤ø ą¤ą¤¾ą¤²ą¤µą¤¾" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą¤ą¤µą„ą¤¹ą„ą¤ą¤ø ą¤Ŗą„ą¤°ą„ą¤µą¤¦ą¤°ą„ą¤¶ą¤ ą¤®ą„ą¤¹ą¤£ą„ą¤Ø ą¤ą¤¾ą¤²ą¤µą¤¾" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤¤ ą¤¶ą„ą¤§ą¤¾ą¤Æą¤ą„ ą¤ą¤ą¤¾ą¤¦ą„ ą¤¶ą¤¬ą„ą¤¦ ą¤ą¤æą¤ą¤µą¤¾ ą¤µą¤¾ą¤ą„ą¤Æ" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "ą¤ ą¤ą„ą¤·ą¤°ą¤®ą¤¾ą¤³ą¤¾" + +#: ../shell/main.c:89 +#, fuzzy +msgid "[FILEā¦]" +msgstr "[ą¤«ą¤¾ą¤ą¤²...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#, fuzzy +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¤¦ą„ą¤µą¤æą¤øą„ą¤„ą„ą¤¤ą„ ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤Æ ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§, ą¤ą¤°ą„ ą¤Øą¤æą¤µą¤”ą¤²ą„ą¤Æą¤¾ą¤ø ą¤ą„ą¤ą„ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾ ą¤¤ą¤Æą¤¾ą¤° ą¤ą„ą¤²ą„ą¤Æą¤¾ ą¤ą¤¾ą¤¤ą¤¾ą¤¤ ą¤ą¤£ą¤æ ą¤ą„ą¤ą„ " +"ą¤ą„ą¤ą„ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾ ą¤¤ą¤Æą¤¾ą¤° ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ø ą¤Ŗą„ą¤°ą¤¤ą¤æą¤¬ą¤ą¤§ ą¤ą¤°ą¤¤ą„" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą¤ą„ą¤Æą¤¾ ą¤ą„ą¤ą„ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾ ą¤ą¤°ą¤¾" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ą¤¾ą¤ą¤ą„ą¤Æą¤¾ ą¤ą„ą¤ą„ą¤Æą¤¾ ą¤Ŗą„ą¤°ą¤¤ą„ą¤®ą¤¾ ą¤ą¤°ą¤£ą„ą¤Æą¤¾ą¤ą¤¾ ą¤ą¤¦ą„ą¤¶" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#, fuzzy +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤ą¤°ą„ą¤¤ą¤¾ą¤ą„ ą¤µą„ą¤§ ą¤ą¤¦ą„ą¤¶ ą¤µ ą¤¤ą¤°ą„ą¤. ą¤ ą¤§ą¤æą¤ ą¤®ą¤¾ą¤¹ą¤æą¤¤ą„ ą¤ą¤°ą„ą¤¤ą¤¾ ą¤Øą„ą¤ą¤æą¤²ą¤ø ą¤„ą¤ą¤¬ą¤Øą„ą¤²ą¤° ą¤¦ą¤øą„ą¤¤ą¤ą¤µą¤ " +"ą¤Ŗą¤¹ą¤¾." + diff --git a/po/ms.po b/po/ms.po new file mode 100644 index 00000000..4b150bc9 --- /dev/null +++ b/po/ms.po @@ -0,0 +1,1680 @@ +# Malay translation for evince. +# Copyright (C) 2010 evince's COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Umarzuki Bin Mochlis Moktar <umar@umarzuki.org>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-02-18 17:07+0000\n" +"PO-Revision-Date: 2010-02-28 22:05+0730\n" +"Last-Translator: Umarzuki bin Mochlis Moktar <umarzuki@gmail.com>\n" +"Language-Team: Malay <ms@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "" + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Bukan jenis MIME buku komik: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Jenis Mime Tidak Diketahui" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "Fail telah rosak" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "Tiada fail didalam arkib" + +#: ../backend/comics/comics-document.c:474 +#, fuzzy, c-format +msgid "No images found in archive %s" +msgstr "" +"Tiada fail faks ditemui:\n" +"%1\n" + +#: ../backend/comics/comics-document.c:718 +#, fuzzy, c-format +msgid "There was an error deleting ā%sā." +msgstr "" +"Terdapat rakat memapar bantuan: \n" +"%s" + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "Ralat %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Buku Komik" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Format dokumen DjVu telah salah" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Dokument-dokumen DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Format dokumen DVI telah salah" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dokumen-dokumen DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Ya" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Tidak" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Jenis 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Jenis 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Jenis 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Jenis 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Jenis 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "Jenis font tidak diketahui" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "Tiada nama" + +#: ../backend/pdf/ev-poppler.cc:996 +#, fuzzy +msgid "Embedded subset" +msgstr "Dokumen terbenam" + +#: ../backend/pdf/ev-poppler.cc:998 +#, fuzzy +msgid "Embedded" +msgstr "Dokumen terbenam" + +#: ../backend/pdf/ev-poppler.cc:1000 +#, fuzzy +msgid "Not embedded" +msgstr "Dokumen terbenam" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +#, fuzzy +msgid "PDF Documents" +msgstr "Dokumen/Diagram" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Dokumen tidak sah" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +#, fuzzy +msgid "Impress Slides" +msgstr "&Lengahkan antara slaid:" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Tiada ralat" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Memori tidak mencukupi" + +#: ../backend/impress/zip.c:59 +#, fuzzy +msgid "Cannot find ZIP signature" +msgstr "Tidak dapat mencari testregression bolehlaksana." + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Fail ZIP tidak sah" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Gagal membuka file" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Tidak dapat data baca dari fail" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Tidak jumpa fail di dalam arkib ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Ralat yang tidak diketahui" + +#: ../backend/ps/ev-spectre.c:102 +#, fuzzy, c-format +msgid "Failed to load document ā%sā" +msgstr "Ralat: gagal untuk memuatkan parameter" + +#: ../backend/ps/ev-spectre.c:135 +#, fuzzy, c-format +msgid "Failed to save document ā%sā" +msgstr "Tidak dapat menyimpan maklumat dokumen." + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +#, fuzzy +msgid "PostScript Documents" +msgstr "Dokumen/Diagram" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, fuzzy, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Tidak dapat menyimpan fail sumber:" + +#: ../libdocument/ev-attachment.c:373 +#, fuzzy, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Tak dapat membuka path fail '%s': %s\n" + +#: ../libdocument/ev-attachment.c:408 +#, fuzzy, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Tak dapat membuka path fail '%s': %s\n" + +#: ../libdocument/ev-document-factory.c:168 +#, fuzzy, c-format +msgid "File type %s (%s) is not supported" +msgstr "Jenis imej '%s'tidak disokong" + +#: ../libdocument/ev-document-factory.c:359 +#, fuzzy +msgid "All Documents" +msgstr "Tutup semua dokumen yang dibuka." + +#: ../libdocument/ev-document-factory.c:391 +#, fuzzy +msgid "All Files" +msgstr "Semua Fail" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Tidak dapat mencipta fail sementara" + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Lokasi direktori sementara untuk digunakan" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, fuzzy, c-format +msgid "File is not a valid .desktop file" +msgstr "'%s' bukan fail BMP yang sah" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, fuzzy, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "%s: fail `%s' tidak mempunyai versi disokong %d\n" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, fuzzy, c-format +msgid "Starting %s" +msgstr "** Memulakan %1 **" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, fuzzy, c-format +msgid "Unrecognized launch option: %d" +msgstr "%s: pilihan `%s' adalah kabur\n" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, fuzzy, c-format +msgid "Not a launchable item" +msgstr "<qt>Anda belum memilih butiran: <b>%1</b>.</qt>" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +#, fuzzy +msgid "Disable connection to session manager" +msgstr "Matikan hubungan kepada pengurus sesi" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Nyatakan fail yang mengandungi tetapan tersimpan" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FAIL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +#, fuzzy +msgid "Specify session management ID" +msgstr "Tentukan ID pengurusan sesi" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +#, fuzzy +msgid "Session management options:" +msgstr "Tentukan ID pengurusan sesi" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +#, fuzzy +msgid "Show session management options" +msgstr "Tentukan ID pengurusan sesi" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Tunjuk ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_Alih ke Bar Alatan" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +#, fuzzy +msgid "Move the selected item on the toolbar" +msgstr "Pindah teks atau item dipilih ke papan klip" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "Buang Da_ripada Bar Alatan" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +#, fuzzy +msgid "Remove the selected item from the toolbar" +msgstr "Buang aplikasi dipilih daripada senarai." + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "Pa_dam Bar Alatan" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +#, fuzzy +msgid "Remove the selected toolbar" +msgstr "&Alih Keluar Hubungan yang Dipilih" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Pemisah" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +#, fuzzy +msgid "Running in presentation mode" +msgstr "Opsyen untuk Mod Persembahan" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5301 +msgid "Best Fit" +msgstr "Sesuai Muat" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Muat Ke Lebar" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4183 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "Pemapar Dokumen" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Paparkan " + +#: ../data/evince.schemas.in.h:1 +#, fuzzy +msgid "Override document restrictions" +msgstr "Dokumen Perkataan Applixware" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Hapuskan Fail Sementara" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Cetak fail tetapan" + +#: ../previewer/ev-previewer.c:143 +#: ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "Prapapar Dokumen MATE" + +#: ../previewer/ev-previewer-window.c:95 +#: ../shell/ev-window.c:2995 +msgid "Failed to print document" +msgstr "Gagal mencetak dokumen" + +#: ../previewer/ev-previewer-window.c:209 +#, fuzzy, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Pemacu untuk pencetak <b>%1</b> tidak ditemui." + +#. Go menu +#: ../previewer/ev-previewer-window.c:253 +#: ../shell/ev-window.c:5050 +msgid "_Previous Page" +msgstr "_Halaman Terdahulu" + +#: ../previewer/ev-previewer-window.c:254 +#: ../shell/ev-window.c:5051 +msgid "Go to the previous page" +msgstr "Pergi ke halaman terdahulu" + +#: ../previewer/ev-previewer-window.c:256 +#: ../shell/ev-window.c:5053 +msgid "_Next Page" +msgstr "Halaman Seterus_nya" + +#: ../previewer/ev-previewer-window.c:257 +#: ../shell/ev-window.c:5054 +msgid "Go to the next page" +msgstr "Pergi ke halaman seterusnya" + +#: ../previewer/ev-previewer-window.c:260 +#: ../shell/ev-window.c:5037 +#, fuzzy +msgid "Enlarge the document" +msgstr "Dokumen AbiWord" + +#: ../previewer/ev-previewer-window.c:263 +#: ../shell/ev-window.c:5040 +#, fuzzy +msgid "Shrink the document" +msgstr "Dokumen AbiWord" + +#: ../previewer/ev-previewer-window.c:266 +#: ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "Cetak" + +#: ../previewer/ev-previewer-window.c:267 +#: ../shell/ev-window.c:5008 +msgid "Print this document" +msgstr "Cetak dokumen ini" + +#: ../previewer/ev-previewer-window.c:273 +#: ../shell/ev-window.c:5152 +msgid "_Best Fit" +msgstr "Sesuai _Muat" + +#: ../previewer/ev-previewer-window.c:274 +#: ../shell/ev-window.c:5153 +#, fuzzy +msgid "Make the current document fill the window" +msgstr "Tutup tetingkap ini atau dokumen" + +#: ../previewer/ev-previewer-window.c:276 +#: ../shell/ev-window.c:5155 +msgid "Fit Page _Width" +msgstr "Muat Ke _Lebar" + +#: ../previewer/ev-previewer-window.c:277 +#: ../shell/ev-window.c:5156 +msgid "Make the current document fill the window width" +msgstr "" + +#: ../previewer/ev-previewer-window.c:460 +#: ../shell/ev-window.c:5223 +msgid "Page" +msgstr "Halaman" + +#: ../previewer/ev-previewer-window.c:461 +#: ../shell/ev-window.c:5224 +#, fuzzy +msgid "Select Page" +msgstr "Pilih Page Down" + +#: ../properties/ev-properties-main.c:116 +#, fuzzy +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +#, fuzzy +msgid "Title:" +msgstr "Tajuk:" + +#: ../properties/ev-properties-view.c:61 +#, fuzzy +msgid "Location:" +msgstr "Lokasi:" + +#: ../properties/ev-properties-view.c:62 +#, fuzzy +msgid "Subject:" +msgstr "- Tajuk: " + +#: ../properties/ev-properties-view.c:63 +#, fuzzy +msgid "Author:" +msgstr "Pengarang:" + +#: ../properties/ev-properties-view.c:64 +#, fuzzy +msgid "Keywords:" +msgstr "Kata kunci" + +#: ../properties/ev-properties-view.c:65 +#, fuzzy +msgid "Producer:" +msgstr "Pengeluar" + +#: ../properties/ev-properties-view.c:66 +#, fuzzy +msgid "Creator:" +msgstr "Pencipta" + +#: ../properties/ev-properties-view.c:67 +#, fuzzy +msgid "Created:" +msgstr "Dicipta:" + +#: ../properties/ev-properties-view.c:68 +#, fuzzy +msgid "Modified:" +msgstr "Diubahsuai:" + +#: ../properties/ev-properties-view.c:69 +#, fuzzy +msgid "Number of Pages:" +msgstr "Bilangan halaman:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Dioptimumkan:" + +#: ../properties/ev-properties-view.c:71 +#, fuzzy +msgid "Format:" +msgstr "Format" + +#: ../properties/ev-properties-view.c:72 +#, fuzzy +msgid "Security:" +msgstr "Keselamatan" + +#: ../properties/ev-properties-view.c:73 +#, fuzzy +msgid "Paper Size:" +msgstr "_Saiz kertas:" + +#: ../properties/ev-properties-view.c:211 +#: ../libview/ev-print-operation.c:1896 +#, fuzzy +msgid "None" +msgstr "Tiada" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +#, fuzzy +msgid "default:mm" +msgstr "_URL piawai:" + +#: ../properties/ev-properties-view.c:284 +#, fuzzy, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f kb/s" + +#: ../properties/ev-properties-view.c:288 +#, fuzzy, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f KB" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, fuzzy, c-format +msgid "%s, Portrait (%s)" +msgstr "Potret" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, fuzzy, c-format +msgid "%s, Landscape (%s)" +msgstr "Landskap" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d of %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "dari %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +#, fuzzy +msgid "Preparing to printā¦" +msgstr "Bersedia untuk memuat naik pemacu ke hos %1" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "Menyudahkan..." + +#: ../libview/ev-print-operation.c:345 +#, fuzzy, c-format +msgid "Printing page %d of %dā¦" +msgstr "Saiz Halaman dan Kualiti Pencetakan" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "Mencetak tidak disokong oleh pencetak ini." + +#: ../libview/ev-print-operation.c:1234 +#, fuzzy +msgid "Invalid page selection" +msgstr "Pemilihan Warna Dialog" + +#: ../libview/ev-print-operation.c:1235 +#, fuzzy +msgid "Warning" +msgstr "Amaran" + +#: ../libview/ev-print-operation.c:1237 +#, fuzzy +msgid "Your print range selection does not include any pages" +msgstr "Pilihan julat cetakan tidak termasuk mana-mana laman " + +#: ../libview/ev-print-operation.c:1891 +#, fuzzy +msgid "Page Scaling:" +msgstr "Laman HTML" + +#: ../libview/ev-print-operation.c:1897 +#, fuzzy +msgid "Shrink to Printable Area" +msgstr "Had Luas Ganda (bagi %1)" + +#: ../libview/ev-print-operation.c:1898 +#, fuzzy +msgid "Fit to Printable Area" +msgstr "Had Luas Ganda (bagi %1)" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" + +#: ../libview/ev-print-operation.c:1913 +#, fuzzy +msgid "Auto Rotate and Center" +msgstr "Putar di sekeling paksi X dan Y" + +#: ../libview/ev-print-operation.c:1916 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "" + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1923 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "" + +#: ../libview/ev-print-operation.c:2005 +#, fuzzy +msgid "Page Handling" +msgstr "Pengendalian Ralat" + +#: ../libview/ev-jobs.c:1434 +#, fuzzy, c-format +msgid "Failed to print page %d: %s" +msgstr "Skalakan cetakan kepada saiz halaman" + +#: ../libview/ev-view-accessible.c:41 +#, fuzzy +msgid "Scroll Up" +msgstr "Skrol Atas" + +#: ../libview/ev-view-accessible.c:42 +#, fuzzy +msgid "Scroll Down" +msgstr "Skrol Bawah" + +#: ../libview/ev-view-accessible.c:48 +#, fuzzy +msgid "Scroll View Up" +msgstr "Skrol Baris Atas" + +#: ../libview/ev-view-accessible.c:49 +#, fuzzy +msgid "Scroll View Down" +msgstr "Skrol Baris ke Bawah" + +#: ../libview/ev-view-accessible.c:533 +#, fuzzy +msgid "Document View" +msgstr "Lihat Maklumat Dokumen" + +#: ../libview/ev-view-presentation.c:669 +#, fuzzy +msgid "Jump to page:" +msgstr "&Muat Halaman" + +#: ../libview/ev-view-presentation.c:979 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "Persembahan tamat. Klik untuk keluar." + +#: ../libview/ev-view.c:1724 +#, fuzzy +msgid "Go to first page" +msgstr "Alih ke halaman pertama dokumen" + +#: ../libview/ev-view.c:1726 +#, fuzzy +msgid "Go to previous page" +msgstr "Pergi ke artikel sebelumnya" + +#: ../libview/ev-view.c:1728 +#, fuzzy +msgid "Go to next page" +msgstr "Pergi ke artikel seterusnya" + +#: ../libview/ev-view.c:1730 +#, fuzzy +msgid "Go to last page" +msgstr "Alih ke halaman terakhir dokument" + +#: ../libview/ev-view.c:1732 +#, fuzzy +msgid "Go to page" +msgstr "&Pergi ke Halaman..." + +#: ../libview/ev-view.c:1734 +#, fuzzy +msgid "Find" +msgstr "Cari" + +#: ../libview/ev-view.c:1762 +#, fuzzy, c-format +msgid "Go to page %s" +msgstr "&Pergi ke Halaman..." + +#: ../libview/ev-view.c:1768 +#, fuzzy, c-format +msgid "Go to %s on file ā%sā" +msgstr "Keterangan fail untuk pencetak IOR pada" + +#: ../libview/ev-view.c:1771 +#, fuzzy, c-format +msgid "Go to file ā%sā" +msgstr "Pergi ke pelayar fail" + +#: ../libview/ev-view.c:1779 +#, fuzzy, c-format +msgid "Launch %s" +msgstr "Lancar &Kmail" + +#: ../libview/ev-view.c:3926 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Memuatkan..." + +#: ../shell/eggfindbar.c:320 +#, fuzzy +msgid "Find:" +msgstr "cari" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5025 +#, fuzzy +msgid "Find Pre_vious" +msgstr "Cari &Sebelumnya" + +#: ../shell/eggfindbar.c:333 +#, fuzzy +msgid "Find previous occurrence of the search string" +msgstr "Panggil semula rentetan cari/ganti terdahulu" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5023 +#, fuzzy +msgid "Find Ne_xt" +msgstr "Cari _lagi" + +#: ../shell/eggfindbar.c:341 +#, fuzzy +msgid "Find next occurrence of the search string" +msgstr "Panggil semula rentetan cari/ganti seterusnya" + +#: ../shell/eggfindbar.c:348 +#, fuzzy +msgid "C_ase Sensitive" +msgstr "Huruf bes&ar/kecil berpengaruh" + +#: ../shell/eggfindbar.c:351 +#, fuzzy +msgid "Toggle case sensitive search" +msgstr "Toggle pencarian case sensitif" + +#: ../shell/ev-keyring.c:102 +#, fuzzy, c-format +msgid "Password for document %s" +msgstr "Katalaluan untuk root:" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Menukarkan %s" + +#: ../shell/ev-convert-metadata.c:92 +#, fuzzy, c-format +msgid "%d of %d documents converted" +msgstr "Dokumen/Diagram" + +#: ../shell/ev-convert-metadata.c:164 +#: ../shell/ev-convert-metadata.c:179 +#, fuzzy +msgid "Converting metadata" +msgstr "Downloading Metadata" + +#: ../shell/ev-convert-metadata.c:185 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +#, fuzzy +msgid "Open a recently used document" +msgstr "Buka dalam Dokumen Baru" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "" + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:269 +#, fuzzy +msgid "_Unlock Document" +msgstr "Dokumen AbiWord" + +#: ../shell/ev-password-view.c:261 +#, fuzzy +msgid "Enter password" +msgstr "Masukkan Kata Laluan" + +#: ../shell/ev-password-view.c:301 +#, fuzzy +msgid "Password required" +msgstr "Antaramuka diperkukan" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password-view.c:332 +#, fuzzy +msgid "_Password:" +msgstr "_Katalaluan: " + +#: ../shell/ev-password-view.c:365 +#, fuzzy +msgid "Forget password _immediately" +msgstr "Kirim faks segera" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "Ingat katalaluan sehingga anda _log keluar" + +#: ../shell/ev-password-view.c:389 +#, fuzzy +msgid "Remember _forever" +msgstr "Na&fikan Selamanya" + +#: ../shell/ev-properties-dialog.c:58 +#, fuzzy +msgid "Properties" +msgstr "Ciri-ciri" + +#: ../shell/ev-properties-dialog.c:92 +#, fuzzy +msgid "General" +msgstr "Umum" + +#: ../shell/ev-properties-dialog.c:102 +#, fuzzy +msgid "Fonts" +msgstr "Fon" + +#: ../shell/ev-properties-dialog.c:115 +#, fuzzy +msgid "Document License" +msgstr "Persetujuan &Lesen" + +#: ../shell/ev-properties-fonts.c:135 +#, fuzzy +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Mengumpulkan maklumat font... %3d%%" + +#: ../shell/ev-properties-license.c:138 +#, fuzzy +msgid "Usage terms" +msgstr "Penggunaan: %s <dir>\n" + +#: ../shell/ev-properties-license.c:144 +#, fuzzy +msgid "Text License" +msgstr "Persetujuan &Lesen" + +#: ../shell/ev-properties-license.c:150 +#, fuzzy +msgid "Further Information" +msgstr "Maklumat/Kalendar" + +#: ../shell/ev-sidebar-attachments.c:712 +#, fuzzy +msgid "Attachments" +msgstr "&Lampiran" + +#: ../shell/ev-sidebar-layers.c:401 +#, fuzzy +msgid "Layers" +msgstr "Lapisan" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Cetak..." + +#: ../shell/ev-sidebar-links.c:750 +#, fuzzy +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:956 +#, fuzzy +msgid "Thumbnails" +msgstr "Mencipta thumbnails" + +#: ../shell/ev-window.c:829 +#, fuzzy, c-format +msgid "Page %s ā %s" +msgstr "Halaman" + +#: ../shell/ev-window.c:831 +#, fuzzy, c-format +msgid "Page %s" +msgstr "Halaman" + +#: ../shell/ev-window.c:1275 +#, fuzzy +msgid "The document contains no pages" +msgstr "%s:%d tidak mengandungi nama method." + +#: ../shell/ev-window.c:1278 +msgid "The document contains only empty pages" +msgstr "Dokumen hanya mengandungi halaman kosong" + +#: ../shell/ev-window.c:1472 +#: ../shell/ev-window.c:1638 +#, fuzzy +msgid "Unable to open document" +msgstr "Tak dapat Membuka Fail" + +#: ../shell/ev-window.c:1609 +#, fuzzy, c-format +msgid "Loading document from ā%sā" +msgstr "Memuatkan Kumpulan Dari LDAP" + +#: ../shell/ev-window.c:1751 +#: ../shell/ev-window.c:2028 +#, fuzzy, c-format +msgid "Downloading document (%d%%)" +msgstr "Dokumen AbiWord" + +#: ../shell/ev-window.c:1784 +#, fuzzy +msgid "Failed to load remote file." +msgstr "Tidak dapat menyimpan fail jauh." + +#: ../shell/ev-window.c:1972 +#, fuzzy, c-format +msgid "Reloading document from %s" +msgstr "Muat semula dokumen semasa dari cakera." + +#: ../shell/ev-window.c:2004 +#, fuzzy +msgid "Failed to reload document." +msgstr "Ulangmuat dokumen semasa yang dipaparkan" + +#: ../shell/ev-window.c:2159 +#, fuzzy +msgid "Open Document" +msgstr "Dokumen yang hendak dibuka" + +#: ../shell/ev-window.c:2423 +#, fuzzy, c-format +msgid "Saving document to %s" +msgstr "Dokumen yang hendak dibuka" + +#: ../shell/ev-window.c:2426 +#, fuzzy, c-format +msgid "Saving attachment to %s" +msgstr "Ralat semasa menyimpan ke '%1'." + +#: ../shell/ev-window.c:2429 +#, fuzzy, c-format +msgid "Saving image to %s" +msgstr "Klip ke imej" + +#: ../shell/ev-window.c:2473 +#: ../shell/ev-window.c:2573 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Fail tidak dapat disimpan sebagai ā%sā." + +#: ../shell/ev-window.c:2504 +#, fuzzy, c-format +msgid "Uploading document (%d%%)" +msgstr "Dokumen AbiWord" + +#: ../shell/ev-window.c:2508 +#, fuzzy, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Lampiran bawah" + +#: ../shell/ev-window.c:2512 +#, fuzzy, c-format +msgid "Uploading image (%d%%)" +msgstr "Imej AutoCAD" + +#: ../shell/ev-window.c:2634 +#, fuzzy +msgid "Save a Copy" +msgstr "Simpan Salinan Imej" + +#: ../shell/ev-window.c:2939 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d kerja tetangguh dalam giliran" + +#: ../shell/ev-window.c:3052 +#, fuzzy, c-format +msgid "Printing job ā%sā" +msgstr "Jenis kerja tidak diketahui %u" + +#: ../shell/ev-window.c:3255 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Tunggu hingga kerja mencetak ā%sā selesai sebelum tutup?" + +#: ../shell/ev-window.c:3258 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3270 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3274 +#, fuzzy +msgid "Cancel _print and Close" +msgstr "" +"Cetak dan\n" +"Simpan Seting" + +#: ../shell/ev-window.c:3278 +#, fuzzy +msgid "Close _after Printing" +msgstr "Mod penjimatan tenaga selepas pencetakan" + +#: ../shell/ev-window.c:3836 +#, fuzzy +msgid "Toolbar Editor" +msgstr "Editor GFlare" + +#: ../shell/ev-window.c:3968 +#, fuzzy +msgid "There was an error displaying help" +msgstr "" +"Terdapat rakat memapar bantuan: \n" +"%s" + +#: ../shell/ev-window.c:4179 +#, fuzzy, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "Pelungsur bantuan default" + +#: ../shell/ev-window.c:4210 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "" + +#: ../shell/ev-window.c:4214 +msgid "Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:4218 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "anda sepatutunya telah menerima satu salinan GNU General Public License bersama Evince; jika tidak, tulis kepada Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4243 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4246 +#, fuzzy +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Senarai penulis program" + +#: ../shell/ev-window.c:4252 +#, fuzzy +msgid "translator-credits" +msgstr "Hasbullah Bin Pit <sebol@my-penguin.org>, Merlimau." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4503 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d dijumpai pada halaman ini" + +#: ../shell/ev-window.c:4511 +#, fuzzy, c-format +msgid "%3d%% remaining to search" +msgstr "Tetapkan indeks untuk memulakan carian" + +#: ../shell/ev-window.c:4988 +#, fuzzy +msgid "_File" +msgstr "_Fail" + +#: ../shell/ev-window.c:4989 +#, fuzzy +msgid "_Edit" +msgstr "_Edit" + +#: ../shell/ev-window.c:4990 +#, fuzzy +msgid "_View" +msgstr "_Lihat" + +#: ../shell/ev-window.c:4991 +#, fuzzy +msgid "_Go" +msgstr "_Pergi ke" + +#: ../shell/ev-window.c:4992 +#, fuzzy +msgid "_Help" +msgstr "_Bantuan" + +#. File menu +#: ../shell/ev-window.c:4995 +#: ../shell/ev-window.c:5263 +msgid "_Openā¦" +msgstr "_Buka..." + +#: ../shell/ev-window.c:4996 +#: ../shell/ev-window.c:5264 +#, fuzzy +msgid "Open an existing document" +msgstr "Buka dokumen yang ada untuk diedit" + +#: ../shell/ev-window.c:4998 +#, fuzzy +msgid "Op_en a Copy" +msgstr "Simpan Salinan Imej" + +#: ../shell/ev-window.c:4999 +msgid "Open a copy of the current document in a new window" +msgstr "Buka satu salinan dokumen terkini dalam tetingkap baru" + +#: ../shell/ev-window.c:5001 +#, fuzzy +msgid "_Save a Copyā¦" +msgstr "simpan sebagai" + +#: ../shell/ev-window.c:5002 +#, fuzzy +msgid "Save a copy of the current document" +msgstr "" +"Tidak dapat menyimpan dokumen \n" +"'%1'" + +#: ../shell/ev-window.c:5004 +#, fuzzy +msgid "Page Set_upā¦" +msgstr "Setkan Bentangan Halaman" + +#: ../shell/ev-window.c:5005 +msgid "Set up the page settings for printing" +msgstr "Tetapkan tetapan laman untuk mencetak" + +#: ../shell/ev-window.c:5007 +msgid "_Printā¦" +msgstr "C_etak..." + +#: ../shell/ev-window.c:5010 +msgid "P_roperties" +msgstr "Ci_ri-ciri" + +#: ../shell/ev-window.c:5018 +#, fuzzy +msgid "Select _All" +msgstr "Pilih _Semua" + +#: ../shell/ev-window.c:5020 +msgid "_Findā¦" +msgstr "_Cari..." + +#: ../shell/ev-window.c:5021 +msgid "Find a word or phrase in the document" +msgstr "Cari satu ayat atau frasa " + +#: ../shell/ev-window.c:5027 +msgid "T_oolbar" +msgstr "Bar a_lat" + +#: ../shell/ev-window.c:5029 +#, fuzzy +msgid "Rotate _Left" +msgstr "Margin Kiri" + +#: ../shell/ev-window.c:5031 +#, fuzzy +msgid "Rotate _Right" +msgstr "Margin kanan" + +#: ../shell/ev-window.c:5042 +#, fuzzy +msgid "_Reload" +msgstr "&Ulangmuat" + +#: ../shell/ev-window.c:5043 +#, fuzzy +msgid "Reload the document" +msgstr "Ulangmuat dokumen semasa yang dipaparkan" + +#: ../shell/ev-window.c:5046 +#, fuzzy +msgid "Auto_scroll" +msgstr "Offset skrol" + +#: ../shell/ev-window.c:5056 +#, fuzzy +msgid "_First Page" +msgstr "Halaman &Pertama" + +#: ../shell/ev-window.c:5057 +#, fuzzy +msgid "Go to the first page" +msgstr "Alih ke halaman pertama dokumen" + +#: ../shell/ev-window.c:5059 +#, fuzzy +msgid "_Last Page" +msgstr "Halaman &Terakhir" + +#: ../shell/ev-window.c:5060 +#, fuzzy +msgid "Go to the last page" +msgstr "Alih ke halaman terakhir dokument" + +#. Help menu +#: ../shell/ev-window.c:5064 +#, fuzzy +msgid "_Contents" +msgstr "_Kandungan" + +#: ../shell/ev-window.c:5067 +#, fuzzy +msgid "_About" +msgstr "_Perihal" + +#. Toolbar-only +#: ../shell/ev-window.c:5071 +#, fuzzy +msgid "Leave Fullscreen" +msgstr "&Lihat layar penuh" + +#: ../shell/ev-window.c:5072 +#, fuzzy +msgid "Leave fullscreen mode" +msgstr "Togol mod skrinpenuh" + +#: ../shell/ev-window.c:5074 +#, fuzzy +msgid "Start Presentation" +msgstr "Persembahan Applixware" + +#: ../shell/ev-window.c:5075 +#, fuzzy +msgid "Start a presentation" +msgstr "Persembahan Applixware" + +#. View Menu +#: ../shell/ev-window.c:5134 +#, fuzzy +msgid "_Toolbar" +msgstr "_Toolbar" + +#: ../shell/ev-window.c:5135 +#, fuzzy +msgid "Show or hide the toolbar" +msgstr "Papar atau sorok senaraimain" + +#: ../shell/ev-window.c:5137 +#, fuzzy +msgid "Side _Pane" +msgstr "Bekas 1 (Tepi)" + +#: ../shell/ev-window.c:5138 +#, fuzzy +msgid "Show or hide the side pane" +msgstr "Papar atau sembunyi pemberitahuan dan tugas" + +#: ../shell/ev-window.c:5140 +#, fuzzy +msgid "_Continuous" +msgstr "&Bersambung" + +#: ../shell/ev-window.c:5141 +#, fuzzy +msgid "Show the entire document" +msgstr "Pilih seluruh teks dokumen semasa." + +#: ../shell/ev-window.c:5143 +#, fuzzy +msgid "_Dual" +msgstr "Duaan " + +#: ../shell/ev-window.c:5144 +msgid "Show two pages at once" +msgstr "Tunjuk dua halaman sekaligus" + +#: ../shell/ev-window.c:5146 +#, fuzzy +msgid "_Fullscreen" +msgstr "_Skrinpenuh" + +#: ../shell/ev-window.c:5147 +msgid "Expand the window to fill the screen" +msgstr "Kembangkan tingkap untuk penuhkan skrin" + +#: ../shell/ev-window.c:5149 +#, fuzzy +msgid "Pre_sentation" +msgstr "Pra_lihat" + +#: ../shell/ev-window.c:5150 +#, fuzzy +msgid "Run document as a presentation" +msgstr "Dokumen persembahan KPresenter Baru:" + +#: ../shell/ev-window.c:5158 +#, fuzzy +msgid "_Inverted Colors" +msgstr "Pemetaan warna..." + +#: ../shell/ev-window.c:5159 +msgid "Show page contents with the colors inverted" +msgstr "Tunjuk kandungan halaman dengan warna disongsangkan" + +#. Links +#: ../shell/ev-window.c:5167 +#, fuzzy +msgid "_Open Link" +msgstr "Buka Pautan" + +#: ../shell/ev-window.c:5169 +#, fuzzy +msgid "_Go To" +msgstr "&Pergi Ke..." + +#: ../shell/ev-window.c:5171 +#, fuzzy +msgid "Open in New _Window" +msgstr "Buka dalam Tetingkap Baru" + +#: ../shell/ev-window.c:5173 +#, fuzzy +msgid "_Copy Link Address" +msgstr "Salin Alamat &Pautan" + +#: ../shell/ev-window.c:5175 +#, fuzzy +msgid "_Save Image Asā¦" +msgstr "Simpan Salinan Imej" + +#: ../shell/ev-window.c:5177 +#, fuzzy +msgid "Copy _Image" +msgstr "Salin Imej" + +#: ../shell/ev-window.c:5182 +#, fuzzy +msgid "_Open Attachment" +msgstr "&Buka Lampiran" + +#: ../shell/ev-window.c:5184 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "Fail tidak dapat disimpan:" + +#: ../shell/ev-window.c:5237 +#, fuzzy +msgid "Zoom" +msgstr "Zum" + +#: ../shell/ev-window.c:5239 +#, fuzzy +msgid "Adjust the zoom level" +msgstr "Aras Maksima Zoom" + +#: ../shell/ev-window.c:5249 +#, fuzzy +msgid "Navigation" +msgstr "Pemanduan arah" + +#: ../shell/ev-window.c:5251 +#, fuzzy +msgid "Back" +msgstr "Undur" + +#. translators: this is the history action +#: ../shell/ev-window.c:5254 +msgid "Move across visited pages" +msgstr "Alih sepanjang halaman yang telah dilihat" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5284 +#, fuzzy +msgid "Previous" +msgstr "Terdahulu" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5289 +#, fuzzy +msgid "Next" +msgstr "Seterusnya" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5293 +#, fuzzy +msgid "Zoom In" +msgstr "Zum Ke dalam" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5297 +#, fuzzy +msgid "Zoom Out" +msgstr "Zum Ke luar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5305 +#, fuzzy +msgid "Fit Width" +msgstr "Muat Lebar" + +#: ../shell/ev-window.c:5466 +#: ../shell/ev-window.c:5483 +msgid "Unable to launch external application." +msgstr "Tidak dapat lancarkan aplikasi luaran." + +#: ../shell/ev-window.c:5540 +#, fuzzy +msgid "Unable to open external link" +msgstr "Buka Pautan di dalam &Pelayar Luar" + +#: ../shell/ev-window.c:5707 +msgid "Couldn't find appropriate format to save image" +msgstr "Tidak dapat jumpa format sesuai untuk simpan imej" + +#: ../shell/ev-window.c:5749 +#, fuzzy +msgid "The image could not be saved." +msgstr "Fail tidak dapat disimpan" + +#: ../shell/ev-window.c:5781 +#, fuzzy +msgid "Save Image" +msgstr "Simpan Imej" + +#: ../shell/ev-window.c:5848 +#, fuzzy +msgid "Unable to open attachment" +msgstr "Tak dapat Membuka Fail" + +#: ../shell/ev-window.c:5901 +#, fuzzy +msgid "The attachment could not be saved." +msgstr "Fail tidak dapat disimpan" + +#: ../shell/ev-window.c:5946 +#, fuzzy +msgid "Save Attachment" +msgstr "Simpan Lampiran" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +msgid "%s ā Password Required" +msgstr "Antaramuka diperkukan" + +#: ../shell/ev-utils.c:330 +#, fuzzy +msgid "By extension" +msgstr "Sambungan GIMP" + +#: ../shell/main.c:70 +#: ../shell/main.c:246 +#, fuzzy +msgid "MATE Document Viewer" +msgstr "Pelungsur bantuan default" + +#: ../shell/main.c:78 +#, fuzzy +msgid "The page of the document to display." +msgstr "Alih ke halaman pertama dokumen" + +#: ../shell/main.c:78 +#, fuzzy +msgid "PAGE" +msgstr "Halaman" + +#: ../shell/main.c:79 +#, fuzzy +msgid "Run evince in fullscreen mode" +msgstr "Rupa bentuk Piawai dalam Mod Skrin Penuh" + +#: ../shell/main.c:80 +#, fuzzy +msgid "Run evince in presentation mode" +msgstr "Menjalankan saluran dalam mod uji fail." + +#: ../shell/main.c:81 +#, fuzzy +msgid "Run evince as a previewer" +msgstr "&Jalankan sebagai pengguna lain" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ayat atau frasa untuk mencari dokumen" + +#: ../shell/main.c:82 +#, fuzzy +msgid "STRING" +msgstr "AYAT" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FAIL...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "Pilihab boolean sedia ada: benar membolehkan thumbnail dan palsu tidak membenarkan mencipta thumbnail baru" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Benarkan thumb untuk Dokumen PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Arahan thumbnail untuk Dokumen PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "" + diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 00000000..7de271bd --- /dev/null +++ b/po/nb.po @@ -0,0 +1,1710 @@ +# Norwegian translation of evince (bokmĆ„l dialect). +# Copyright (C) 2000-2003, 2005 Free Software Foundation, Inc. +# Kjartan Maraas <kmaraas@gnome.org>, 2000-2010. +# Terance Edward Sola <terance@lyse.net>, 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: evince 2.31.x\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-21 12:08+0200\n" +"PO-Revision-Date: 2010-08-21 12:08+0200\n" +"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" +"Language-Team: Norwegian bokmal <i18n-nb@lster.ping.uio.no>\n" +"Language: \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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Feil under oppstart av kommando Ā«%sĀ» for Ć„ dekomprimere tegneserien: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Kommando Ā«%sĀ» feilet ved dekomprimering av tegneserien." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Kommandoen Ā«%sĀ» avsluttet ikke pĆ„ normal mĆ„te." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ikke en MIME-type for en tegneserie: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Kan ikke finne en passende kommando for Ć„ dekomprimere denne typen " +"tegneserien" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Ukjent MIME-type" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Filen er korrupt" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Ingen filer i arkivet" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Ingen bilder funnet i arkiv %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Det oppsto en feil ved sletting av Ā«%sĀ»." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Feil %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Tegneserier" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokumentet har feil format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dette dokumentet bestĆ„r av flere filer. En eller flere av disse filene kan " +"ikke aksesseres." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-dokumenter" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-dokumentet har feil format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokumenter" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Dette arbeidet er Public Domain" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nei" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Ukjent skrifttype" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Uten navn" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Innebygd subsett" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Innebygd" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Ikke innebygd" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokumenter" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ugyldig dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Lysbilder fra Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Ingen feil" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ikke nok minne" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Kan ikke finne signatur for ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ugyldig ZIP-fil" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIP-arkiver over flere filer er ikke stĆøttet" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Kan ikke Ć„pne filen" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Kan ikke lese fra filen" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Kan ikke finne filen i ZIP-arkivet" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Ukjent feil" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Kunne ikke Ć„pne dokument Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Kunne ikke lagre dokument Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-dokumenter" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Kunne ikke lagre vedlegg Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Kunne ikke Ć„pne vedlegg Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Kunne ikke Ć„pne vedlegg Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Filtype %s (%s) er ikke stĆøttet" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle dokumenter" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle filer" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Klarte ikke Ć„ lage en midlertidig fil: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Klarte ikke Ć„ lage en midlertidig katalog: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen er ikke en gyldig .desktop-fil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Kjenner ikke igjen versjon Ā«%sĀ» i .desktop-fil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Starter %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet tar ikke dokumenter pĆ„ kommandolinjen" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Kjenner ikke igjen oppstartsalternativ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan ikke gi URIer til dokumenter til en oppfĆøring av type Ā«Types=LinkĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "OppfĆøringen kan ikke startes" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "SlĆ„ av forbindelse til sesjonshĆ„ndterer" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Oppgi fil med lagret konfigurasjon" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FIL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Oppgi ID for sesjonshĆ„ndtering" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Alternativer for sesjonshĆ„ndtering" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Vis alternativer for sesjonshĆ„ndtering" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Vis Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Flytt pĆ„ verktĆøylinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Flytt valgt oppfĆøring pĆ„ verktĆøylinjen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Fje_rn verktĆøylinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Fjern valgt oppfĆøring fra verktĆøylinjen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "F_jern verktĆøylinje" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Fjern valgt verktĆøylinje" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Skillelinje" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Beste tilpasning" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Tilpass til sidebredde" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentvisning" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Vis dokumenter med mange sider" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Overstyr begrensninger satt i dokumentet" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Overstyr dokumentbegrensninger som f.eks mulighet til Ć„ kopiere eller skrive " +"ut." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Slett midlertidig fil" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Skriv ut fil med innstillinger" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE dokumentvisning" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Klarte ikke Ć„ skrive ut dokumentet" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Valgt skriver, Ā«%sĀ», ble ikke funnet" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Forrige side" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "GĆ„ til forrige side" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_Neste side" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "GĆ„ til neste side" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ForstĆørr dokumentet" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Komprimer dokumentet" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Skriv ut" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Skriv ut dette dokumentet" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_Beste tilpasning" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "La dokumentet fylle hele vinduet" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Tilpass til side_bredde" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "La dokumentet fylle vinduet i bredden" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Side" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Velg side" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Tittel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Lokasjon:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Emne:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Forfatter:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "NĆøkkelord:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produsert av:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Opprettet av:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Opprettet:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Endret:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Antall sider:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimalisert:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Sikkerhet:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "PapirstĆørrelse:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Ingen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f tomme" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, portrett (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, landskap (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d av %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "av %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Lasterā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Forbereder utskriftā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "FullfĆørerā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Skriver ut side %d av %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Utskrift stĆøttes ikke pĆ„ denne skriveren." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Ugyldig sideutvalg" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Advarsel" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Ingen sider i omrĆ„det som er valgt for utskrift" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Skalering av side:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Krymp til utskriftsomrĆ„de" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Tilpass utskriftsomrĆ„de" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Skaler dokumentets sider til Ć„ passe til skriverens sidestĆørrelse. Velg fra " +"en av fĆølgende:\n" +"\n" +"ā¢ Ā«NoneĀ»: Ingen skalering av sidene utfĆøres.\n" +"\n" +"ā¢ Ā«Shrink to Printable AreaĀ»: Dokumentsider som er stĆørre enn " +"utskriftsomrĆ„det reduseres til Ć„ passe til skriverens utskriftsomrĆ„de.\n" +"\n" +"ā¢ Ā«Fit to Printable AreaĀ»: Dokumentets sider forstĆørres eller forminskes til " +"Ć„ passe utskriftsomrĆ„det for skriveren etter behov.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Roter og sentrer automatisk" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Roter skriverens sideorientering for hver side til Ć„ passe orientering i " +"dokumentet. Dokumentets sider vil bli sentrert innenfor utskriftsomrĆ„det." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Velg sidestĆørrelse ved bruk av dokumentets sidestĆørrelse" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Hver side vil bli skrevet ut pĆ„ samme papirstĆørrelse som dokumentets " +"sidestĆørrelse hvis dette slĆ„s pĆ„." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "SidehĆ„ndtering" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Klarte ikke Ć„ skrive ut side %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rull opp" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rull ned" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rull visning opp" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rull visning ned" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentvisning" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "GĆ„ til side:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Slutt pĆ„ presentasjonen. Klikk for Ć„ avslutte." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "GĆ„ til fĆørste side" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "GĆ„ til forrige side" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "GĆ„ til neste side" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "GĆ„ til siste side" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "GĆ„ til side" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "SĆøk" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "GĆ„ til side %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "GĆ„ til %s i fil Ā«%sĀ»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "GĆ„ til fil Ā«%sĀ»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Start %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Finn:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Finn forri_ge" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Finn forrige oppfĆøring av sĆøkestrengen" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Finn ne_ste" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Finn neste oppĆøring av sĆøkestrengen" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Skill mellom smĆ„ og store bokstaver" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "SlĆ„ av/pĆ„ sĆøk som skiller mellom smĆ„/store bokstaver" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Notat" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Kommentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "NĆøkkel" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Hjelp" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nytt avsnitt" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Avsnitt" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Sett inn" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kryss" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Sirkel" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Ukjent" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Egenskaper for anmerkninger" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Farge:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Gjennomsiktig" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Ugjennomsiktig" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Opprinnelig tilstand for vindu:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ć pne" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Lukk" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "KjĆører i presentasjonsmodus" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Passord for dokument %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konverterer %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d av %d dokumenter konvertert" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konverterer metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Metadataformatet som brukes av Evince har endret seg og mĆ„ derfor migreres. " +"Hvis migreringen avbrytes vil ikke metadatalageret fungere." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Ć pne et nylig brukt dokument" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Dette dokumentet er lĆ„st og kan kun leses etter Ć„ ha oppgitt korrekt passord." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_LĆ„s opp dokument" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Oppgi passord" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Passord kreves" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumentet Ā«%sĀ» er lĆ„st og krever et passord fĆør det kan Ć„pnes." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Passord:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Glem passordet _med en gang" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Husk passordet til du _logger ut" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Husk _for alltid" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Egenskaper" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Generelt" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Skrifter" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumentlisens" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Skrifttype" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Samler informasjon om skrifterā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "VilkĆ„r for bruk" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Tekstlisens" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Videre informasjon" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Liste" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Notater" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Legg til tekstanmerkning" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Legg til" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokumentet inneholder ingen notater" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Side %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Vedlegg" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lag" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Skriv utā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniatyrer" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Side %s - %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Side %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Dokumentet inneholder ingen sider" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Dokumentet inneholder kun tomme sider" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Kan ikke Ć„pne dokument" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Laster dokument fra Ā«%sĀ»" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Laster ned dokument (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Klarte ikke Ć„ laste ekstern fil." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Leser dokument fra %s pĆ„ nytt" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Klarte ikke Ć„ lese dokumentet pĆ„ nytt." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Ć pne dokument" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Lagrer dokumentet til %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Lagrer vedlegg til %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Lagrer bilde til %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Filen kunne ikke lagres som Ā«%sĀ»." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Laster opp dokument (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Laster opp vedlegg (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Laster opp bilde (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Lagre en kopi" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d utestĆ„ende jobb i kĆøen" +msgstr[1] "%d utestĆ„ende jobber i kĆøen" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Skriver ut jobb %s" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokumentet inneholder skjemafelter som ikke er fylt ut. Hvis du ikke lagrer " +"en kopi vil disse endringene gĆ„ tapt." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokumentet inneholder nye eller endrede anmerkninger. Hvis du ikke lagrer en " +"kopi vil disse endringene gĆ„ tapt." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Lagre en kopi av dokument Ā«%sĀ» fĆør programmet lukkes?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Fortsett _uten Ć„ lagre" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Lagre en _kopi" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Vent med Ć„ lukke programmet til utskriftsjobb %s er fullfĆørt?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Det er %d aktive utskriftsjobber. Vent med Ć„ lukke programmet til disse er " +"fullfĆørt?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Hvis du lukker vinduet vil utestĆ„ende utskriftsjobber ikke bli fullfĆørt." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Avbryt _utskrift og lukk" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Lukk etter ut_skrift" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Redigering av verktĆøylinje" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Det oppsto en feil ved visning av hjelp" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentvisning.\n" +"Bruker %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince er fri programvare; du kan redistribuere programmet og eller endre " +"det i henhold til betingelsene gitt i GNU General Public License som " +"publisert av Free Software Foundation; enten versjon 2 av lisensen, eller " +"(hvis du Ćønsker) enhver senere versjon.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince distribueres i hĆ„p om at programmet vil vƦre nyttig, men UTEN NOEN " +"GARANTI; selv ikke en implisitt garanti for at det er SALGBART eller PASSER " +"ET SPESIELT FORMĆ L. Se Gnu General Public License for flere detaljer.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Du skal ha mottatt en kopi av GNU General Public License sammen med Evince; " +"hvis ikke kan du skrive til Free Software Foundation, Inc.,51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince-utviklerene" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "Kjartan Maraas <kmaraas@gnome.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d funnet pĆ„ denne siden" +msgstr[1] "%d funnet pĆ„ denne siden" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Ikke funnet" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% igjen Ć„ sĆøke i" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Fil" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "R_ediger" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Vis" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_GĆ„ til" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_Hjelp" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Ć pneā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Ć pne et eksisterende dokument" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Ć pn_e en kopi" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Ć pne en kopi av dette dokumentet i et nytt vindu" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "_Lagre en kopiā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Lagre en kopi av dette dokumentet" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Skriv utā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "E_genskaper" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Velg _alt" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_SĆøkā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Finn et ord eller en frase i dokumentet" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "V_erktĆøylinje" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Roter til _venstre" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "_Roter til hĆøyre" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Lagre nĆ„vƦrende innstillinger som _forvalg" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "L_es pĆ„ nytt" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Les dokumentet pĆ„ nytt" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Automati_sk rulling" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "_FĆørste side" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "GĆ„ til den fĆørste siden" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "S_iste side" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "GĆ„ til den siste siden" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Innhold" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Om" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Forlat fullskjerm" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Forlat fullskjerm-modus" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Start presentasjon" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Start en presentasjon" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "Verk_tĆøylinje" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Vis eller skjul verktĆøylinjen" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Si_defelt" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Vis eller skjul sidelinjen" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Sammenhengende" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Vis hele dokumentet" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Tosidig" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Vis to sider samtidig" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Fullskjerm" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Utvid vinduet sĆ„ det fyller skjermen" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "Pre_sentasjon" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Vis dokumentet som en presentasjon" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Inverterte farger" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Vis sideinnhold med fargene snudd om" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Ć pne lenke" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_GĆ„ til" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Ć pne i nytt _vindu" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Kopier lenkeadressen" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "Lagre bilde _somā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Kopier b_ilde" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Egenskaper for anmerkningerā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Ć pne vedlegg" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Lagre vedlegg _somā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Juster nivĆ„ for zoom" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigasjon" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Tilbake" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Bla gjennom sider du har sett pĆ„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Forrige" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Neste" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Zoom inn" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Zoom ut" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Tilpass bredde" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Kan ikke starte eksternt program." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Kan ikke Ć„pne ekstern lenke." + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Kunne ikke finne passende format for Ć„ lagre filen" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Bildet kunne ikke lagres." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Lagre bilde" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Kan ikke Ć„pne vedlegg" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Vedlegget kunne ikke lagres." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Lagre vedlegg" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s - passord kreves" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Etter utvidelse" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE dokumentvisning" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Etikett for side i dokumentet som skal vises." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "SIDE" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Nummer pĆ„ siden i dokumentet som skal vises." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "KjĆør evince i fullskjerm-modus" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "KjĆør evince i presentasjonsmodus" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "KjĆør evince som forhĆ„ndsvisning" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ord eller frase som skal finnes i dokumentet" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRENG" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolske verdier tilgjengelig: Ā«trueĀ» aktiverer miniatyrer og Ā«falseĀ» " +"deaktiverer oppretting av nye miniatyrer." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Aktiver generering av miniatyrer for PDF-dokumenter" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Miniatyrbildekommando for PDF-dokumenter" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Gyldig kommando pluss argumenter for PDF-dokument miniatyrbilder. Se i " +"Caja sin miniatyrbildedokumentasjon for mer informasjon." diff --git a/po/nds.po b/po/nds.po new file mode 100644 index 00000000..19960a53 --- /dev/null +++ b/po/nds.po @@ -0,0 +1,1464 @@ +# Low German translation for evince. +# Copyright (C) 2009 evince's COPYRIGHT HOLDER +# This file is distributed under the same license as the evince package. +# Nils-Christoph Fiedler <fiedler@medienkompanie.de>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-11-30 11:09+0000\n" +"PO-Revision-Date: 2010-03-19 15:33+0100\n" +"Last-Translator: Nils-Christoph Fiedler <fiedler@medienkompanie.de>\n" +"Language-Team: Low German <nds-lowgerman@lists.sourceforge.net>\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" + +#: ../backend/comics/comics-document.c:177 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:191 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" + +#: ../backend/comics/comics-document.c:200 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "" + +#: ../backend/comics/comics-document.c:357 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "" + +#: ../backend/comics/comics-document.c:364 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" + +#: ../backend/comics/comics-document.c:402 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Unbekannter MIME Typ" + +#: ../backend/comics/comics-document.c:429 +msgid "File corrupted" +msgstr "Datei im dutt" + +#: ../backend/comics/comics-document.c:441 +msgid "No files in archive" +msgstr "Keene Datei im Archiv" + +#: ../backend/comics/comics-document.c:480 +#, c-format +msgid "No images found in archive %s" +msgstr "In de Verteeknis %s kĆ¼nn keene Billers funnen werrn" + +#: ../backend/comics/comics-document.c:724 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "KĆ¼nn \"%s\" nich akerat lƶschen." + +#: ../backend/comics/comics-document.c:861 +#, c-format +msgid "Error %s" +msgstr "Fehler %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comics" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DJVU document has incorrect format" +msgstr "DJVU Dokument het nich akerates Format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of such files cannot be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu Dokumente" + +#: ../backend/dvi/dvi-document.c:107 +msgid "DVI document has incorrect format" +msgstr "DVI Dokument het nich akerates Format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Dokumente" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "Nee" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Type 1" +msgstr "Typ 1" + +#: ../backend/pdf/ev-poppler.cc:926 +msgid "Type 1C" +msgstr "Typ 1C" + +#: ../backend/pdf/ev-poppler.cc:928 +msgid "Type 3" +msgstr "Typ 3" + +#: ../backend/pdf/ev-poppler.cc:930 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:932 +msgid "Type 1 (CID)" +msgstr "Typ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:934 +msgid "Type 1C (CID)" +msgstr "Typ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:936 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:938 +msgid "Unknown font type" +msgstr "Unbekannte Schriftart" + +#: ../backend/pdf/ev-poppler.cc:964 +msgid "No name" +msgstr "Keen Naam" + +#: ../backend/pdf/ev-poppler.cc:972 +msgid "Embedded subset" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:974 +msgid "Embedded" +msgstr "Inbett" + +#: ../backend/pdf/ev-poppler.cc:976 +msgid "Not embedded" +msgstr "nich inbett" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF Dokumente" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Nich akerates Dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Keen Fehler" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nich genug Spieker" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "KĆ¼nn ZIP Unnerschrieven nich finnen" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Nich akerate ZIP Datei" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "KĆ¼nn de Datei nich opmaken" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "KĆ¼nn Daten in datei nich lesen" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Unbekannter Fehler" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "KĆ¼nn Dokument \"%s\" nich laden" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "KĆ¼nn dokument \"%s\" nich spiekern" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Dokumente" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "KĆ¼nn Anhangen \"%s\" nich spiekern: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "KĆ¼nn Anhangen \"%s\" nich opmaken: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "KĆ¼nn Anhangen \"%s\" nich opmaken" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Dateityp %s (%s) is nich unnerstĆ¼tt" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "All Dokumente" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "All Dateien" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "" + +#: ../libdocument/ev-file-helpers.c:223 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datei is keene akerate .desktop Datei" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, fuzzy, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Dateiverschoon '%s' vu'm Schrievdisk nich erkannt" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Starte %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, fuzzy, c-format +msgid "Application does not accept documents on command line" +msgstr "Anwendung akzepteert keen Dokumente ƶver de Befehlszeile" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Unbekannte Startoption: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, fuzzy, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Dokumenten-Adressen (URIs) kƶdd nich an een Desktop-Eindrag mit Ā»Type=LinkĀ« ƶvergeven warn" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Keen startbares Element" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Deaktivert de Verbinnen to'm Tƶrnoppasser" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:46 +#: ../previewer/ev-previewer.c:47 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Tƶrnoppassens ID ingeven" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Tƶrnoppassensoptschoonen:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Tƶrnoppassensoptschoonen opwiesen" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "Wies op ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "Op de WarktĆ¼Ć¼gbalken _verschuven" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "Dat utwƤhlte Element op de WarktĆ¼Ć¼gbalken verschuven" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "Ut de WarktĆ¼Ć¼gbalken _lƶschen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "UtwƤhltes Element ut WarktĆ¼Ć¼gbalken lƶschen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "WarktĆ¼Ć¼gbalken _lƶschen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "UtwƤhlten WarktĆ¼Ć¼gbalken lƶschen" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Deeler" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "Lƶƶpt in Vordragsmodus" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5387 +msgid "Best Fit" +msgstr "Best Anpassen" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Sietenbrede Ƥnnern" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4263 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:280 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentkieker" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Unnerscheedliche Dokumente opwiesen" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../previewer/ev-previewer.c:45 +msgid "Delete the temporary file" +msgstr "TwĆ¼schentiedliche Datei lƶschen" + +#: ../previewer/ev-previewer.c:46 +msgid "Print settings file" +msgstr "Druckinstellendatei" + +#: ../previewer/ev-previewer.c:141 +#: ../previewer/ev-previewer.c:175 +msgid "MATE Document Previewer" +msgstr "MATE Dokument Utblick" + +#: ../previewer/ev-previewer-window.c:95 +#: ../shell/ev-window.c:2985 +msgid "Failed to print document" +msgstr "KĆ¼nn dat Dokument nich drucken" + +#: ../previewer/ev-previewer-window.c:209 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "" + +#. Go menu +#: ../previewer/ev-previewer-window.c:253 +#: ../shell/ev-window.c:5136 +msgid "_Previous Page" +msgstr "Een Siet _torĆ¼gg" + +#: ../previewer/ev-previewer-window.c:254 +#: ../shell/ev-window.c:5137 +msgid "Go to the previous page" +msgstr "To lester Siet geihn" + +#: ../previewer/ev-previewer-window.c:256 +#: ../shell/ev-window.c:5139 +msgid "_Next Page" +msgstr "Een Siet _vor" + +#: ../previewer/ev-previewer-window.c:257 +#: ../shell/ev-window.c:5140 +msgid "Go to the next page" +msgstr "To nƤhster Siet geihn" + +#: ../previewer/ev-previewer-window.c:260 +#: ../shell/ev-window.c:5123 +msgid "Enlarge the document" +msgstr "Dokument grƶter maken" + +#: ../previewer/ev-previewer-window.c:263 +#: ../shell/ev-window.c:5126 +msgid "Shrink the document" +msgstr "Dokument lĆ¼tter maken" + +#: ../previewer/ev-previewer-window.c:266 +#: ../shell/ev-print-operation.c:1319 +msgid "Print" +msgstr "Drucken" + +#: ../previewer/ev-previewer-window.c:267 +#: ../shell/ev-window.c:5094 +msgid "Print this document" +msgstr "DĆ¼sses Dokument drucken" + +#: ../previewer/ev-previewer-window.c:273 +#: ../shell/ev-window.c:5238 +msgid "_Best Fit" +msgstr "Dat, wat am Besten _passt" + +#: ../previewer/ev-previewer-window.c:274 +#: ../shell/ev-window.c:5239 +msgid "Make the current document fill the window" +msgstr "" + +#: ../previewer/ev-previewer-window.c:276 +#: ../shell/ev-window.c:5241 +msgid "Fit Page _Width" +msgstr "Sieten_brede Ƥnnern" + +#: ../previewer/ev-previewer-window.c:277 +#: ../shell/ev-window.c:5242 +msgid "Make the current document fill the window width" +msgstr "" + +#: ../previewer/ev-previewer-window.c:462 +#: ../shell/ev-window.c:5309 +msgid "Page" +msgstr "Siet" + +#: ../previewer/ev-previewer-window.c:463 +#: ../shell/ev-window.c:5310 +msgid "Select Page" +msgstr "Siet utwƤhlen" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "Ort:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Verwennen:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "Schriever:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "Slƶtelwƶƶr:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "Produzent:" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "Urheber:" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "Erstellt:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "Ćnnert:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "Sietentaal:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Better makt:" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "Sekerheit:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "Papiergrƶte:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "Keen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "Standard:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portrait (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Landschapt (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d vun %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "vun %d" + +#: ../libview/ev-jobs.c:1426 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Nah boven rollen" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Runner rollen" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Dokumentansicht" + +#: ../libview/ev-view.c:1766 +msgid "Go to first page" +msgstr "To de erste Siet wesseln" + +#: ../libview/ev-view.c:1768 +msgid "Go to previous page" +msgstr "To lester Siet geihn" + +#: ../libview/ev-view.c:1770 +msgid "Go to next page" +msgstr "To nƤhster Siet geihn" + +#: ../libview/ev-view.c:1772 +msgid "Go to last page" +msgstr "To de leste Siet wesseln" + +#: ../libview/ev-view.c:1774 +msgid "Go to page" +msgstr "To Siet wesseln" + +#: ../libview/ev-view.c:1776 +msgid "Find" +msgstr "Finnen" + +#: ../libview/ev-view.c:1804 +#, c-format +msgid "Go to page %s" +msgstr "To Siet %s wesseln" + +#: ../libview/ev-view.c:1810 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "" + +#: ../libview/ev-view.c:1813 +#, c-format +msgid "Go to file ā%sā" +msgstr "Geih to Datei \"%s\"" + +#: ../libview/ev-view.c:1821 +#, c-format +msgid "Launch %s" +msgstr "%s starten" + +#: ../libview/ev-view.c:3096 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../libview/ev-view.c:4042 +msgid "Jump to page:" +msgstr "To Siet hĆ¼ppen:" + +#: ../libview/ev-view.c:4324 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loading..." +msgstr "Lade..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Finnen:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5111 +msgid "Find Pre_vious" +msgstr "_Vorige finnen" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5109 +msgid "Find Ne_xt" +msgstr "_NƤhsten finnen" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Passwoord fƶr dat Dokument %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:164 +#: ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:185 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "" + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Slute Dokument op" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Passwoord ingeven" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Passwoord nƶdig" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Passwoord:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "Passwoord just wedder _vergeten" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "Passwoord merken bit _Avmellen" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "JĆ¼mmers _merken" + +#. Initial state +#: ../shell/ev-print-operation.c:345 +msgid "Preparing to print ..." +msgstr "" + +#: ../shell/ev-print-operation.c:347 +msgid "Finishing..." +msgstr "Beenne..." + +#: ../shell/ev-print-operation.c:349 +#, c-format +msgid "Printing page %d of %d..." +msgstr "Drucke Siet %d vun %d..." + +#: ../shell/ev-print-operation.c:1173 +#, fuzzy +msgid "Printing is not supported on this printer." +msgstr "Drucken wird auf diesem Drucker nicht unterstĆ¼tzt" + +#: ../shell/ev-print-operation.c:1238 +msgid "Invalid page selection" +msgstr "Nich akerate Sietenutwahl" + +#: ../shell/ev-print-operation.c:1239 +msgid "Warning" +msgstr "Oppassen!" + +#: ../shell/ev-print-operation.c:1241 +msgid "Your print range selection does not include any page" +msgstr "" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "Eegenschapten" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "Allgemeen" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "Schriftarten" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "Dokumentlizenz" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Schriftart" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "Gebrukregeln" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "textlizenz" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "Mehr Informatschoonen" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "Anhangen" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Print..." +msgstr "Drucken..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "Utblickbillers" + +#: ../shell/ev-window.c:830 +#, c-format +msgid "Page %s - %s" +msgstr "Siet %s - %s" + +#: ../shell/ev-window.c:832 +#, c-format +msgid "Page %s" +msgstr "Siet %s" + +#: ../shell/ev-window.c:1265 +msgid "The document contains no pages" +msgstr "dat Dokument het keene Sieten in" + +#: ../shell/ev-window.c:1268 +msgid "The document contains only empty pages" +msgstr "" + +#: ../shell/ev-window.c:1462 +#: ../shell/ev-window.c:1628 +msgid "Unable to open document" +msgstr "KĆ¼nn dat Dokument nich opmaken" + +#: ../shell/ev-window.c:1599 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Lade Dokument vun \"%s\"" + +#: ../shell/ev-window.c:1741 +#: ../shell/ev-window.c:2018 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Lade Dokument daal (%d%%)" + +#: ../shell/ev-window.c:1774 +msgid "Failed to load remote file." +msgstr "" + +#: ../shell/ev-window.c:1962 +#, c-format +msgid "Reloading document from %s" +msgstr "" + +#: ../shell/ev-window.c:1994 +msgid "Failed to reload document." +msgstr "" + +#: ../shell/ev-window.c:2149 +msgid "Open Document" +msgstr "Dokument opmaken" + +#: ../shell/ev-window.c:2413 +#, c-format +msgid "Saving document to %s" +msgstr "Spieker Dokument nah %s" + +#: ../shell/ev-window.c:2416 +#, c-format +msgid "Saving attachment to %s" +msgstr "Spieker Anhangen nah %s" + +#: ../shell/ev-window.c:2419 +#, c-format +msgid "Saving image to %s" +msgstr "Bill spiekern nah %s" + +#: ../shell/ev-window.c:2463 +#: ../shell/ev-window.c:2563 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "" + +#: ../shell/ev-window.c:2494 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2498 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2502 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "" + +#: ../shell/ev-window.c:2624 +msgid "Save a Copy" +msgstr "Kopie spiekern" + +#: ../shell/ev-window.c:2929 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Opdrag tƶvt in Reeg" +msgstr[1] "%d OpdrƤge tƶven in Reeg" + +#: ../shell/ev-window.c:3042 +#, c-format +msgid "Printing job ā%sā" +msgstr "Drucke Opdrag \"%s\"" + +#: ../shell/ev-window.c:3245 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3248 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" + +#: ../shell/ev-window.c:3260 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" + +#: ../shell/ev-window.c:3264 +msgid "Cancel _print and Close" +msgstr "_Druck avbreken un sluten" + +#: ../shell/ev-window.c:3268 +msgid "Close _after Printing" +msgstr "_Achter Drucken sluten" + +#: ../shell/ev-window.c:3892 +msgid "Toolbar Editor" +msgstr "WarktĆ¼Ć¼gbalkenbewarker" + +#: ../shell/ev-window.c:4024 +#, fuzzy +msgid "There was an error displaying help" +msgstr "Beim aufrufen der Hilfefunktion ist ein Fehler aufgetreten: %s" + +#: ../shell/ev-window.c:4259 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" + +#: ../shell/ev-window.c:4288 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "" + +#: ../shell/ev-window.c:4292 +msgid "Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:4296 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:4320 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4323 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 De Evince Schrievers" + +#: ../shell/ev-window.c:4329 +msgid "translator-credits" +msgstr "Nils-Christoph Fiedler <fiedler@medienkompanie.de>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4584 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d op dĆ¼sse Siet funnen" +msgstr[1] "%d op dĆ¼sse Siet funnen" + +#: ../shell/ev-window.c:4592 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:5074 +msgid "_File" +msgstr "_Datei" + +#: ../shell/ev-window.c:5075 +msgid "_Edit" +msgstr "_Bewarken" + +#: ../shell/ev-window.c:5076 +msgid "_View" +msgstr "_Ansicht" + +#: ../shell/ev-window.c:5077 +msgid "_Go" +msgstr "_Denn man to" + +#: ../shell/ev-window.c:5078 +msgid "_Help" +msgstr "_Hƶlp" + +#. File menu +#: ../shell/ev-window.c:5081 +#: ../shell/ev-window.c:5349 +msgid "_Open..." +msgstr "_Opmaken..." + +#: ../shell/ev-window.c:5082 +#: ../shell/ev-window.c:5350 +msgid "Open an existing document" +msgstr "" + +#: ../shell/ev-window.c:5084 +msgid "Op_en a Copy" +msgstr "Eene K_opiie opmaken" + +#: ../shell/ev-window.c:5085 +msgid "Open a copy of the current document in a new window" +msgstr "" + +#: ../shell/ev-window.c:5087 +msgid "_Save a Copy..." +msgstr "_Eene Kopie spiekern..." + +#: ../shell/ev-window.c:5088 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:5090 +msgid "Page Set_up..." +msgstr "Sieten_instellens..." + +#: ../shell/ev-window.c:5091 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:5093 +msgid "_Print..." +msgstr "_Drucken..." + +#: ../shell/ev-window.c:5096 +msgid "P_roperties" +msgstr "E_egenschapten" + +#: ../shell/ev-window.c:5104 +msgid "Select _All" +msgstr "_Allens markeren" + +#: ../shell/ev-window.c:5106 +msgid "_Find..." +msgstr "_Finnen..." + +#: ../shell/ev-window.c:5107 +msgid "Find a word or phrase in the document" +msgstr "" + +#: ../shell/ev-window.c:5113 +msgid "T_oolbar" +msgstr "_WarktĆ¼Ć¼gbalken" + +#: ../shell/ev-window.c:5115 +msgid "Rotate _Left" +msgstr "Nah _links dreihn" + +#: ../shell/ev-window.c:5117 +msgid "Rotate _Right" +msgstr "Nah _rechts dreihn" + +#: ../shell/ev-window.c:5128 +msgid "_Reload" +msgstr "_Opfrischen" + +#: ../shell/ev-window.c:5129 +msgid "Reload the document" +msgstr "DĆ¼sses Dokument opfrischen" + +#: ../shell/ev-window.c:5132 +msgid "Auto_scroll" +msgstr "_Vun alleen rollen" + +#: ../shell/ev-window.c:5142 +msgid "_First Page" +msgstr "_Erste Siet" + +#: ../shell/ev-window.c:5143 +msgid "Go to the first page" +msgstr "To de erste Siet wesseln" + +#: ../shell/ev-window.c:5145 +msgid "_Last Page" +msgstr "_Leste Siet" + +#: ../shell/ev-window.c:5146 +msgid "Go to the last page" +msgstr "To de leste Siet wesseln" + +#. Help menu +#: ../shell/ev-window.c:5150 +msgid "_Contents" +msgstr "_Inholls" + +#: ../shell/ev-window.c:5153 +msgid "_About" +msgstr "_Ćver" + +#. Toolbar-only +#: ../shell/ev-window.c:5157 +msgid "Leave Fullscreen" +msgstr "Fullbill verloten" + +#: ../shell/ev-window.c:5158 +msgid "Leave fullscreen mode" +msgstr "Fullbill sluten" + +#: ../shell/ev-window.c:5160 +msgid "Start Presentation" +msgstr "PrƤsentatschoon starten" + +#: ../shell/ev-window.c:5161 +#, fuzzy +msgid "Start a presentation" +msgstr "PrƤsentatschoon starten" + +#. View Menu +#: ../shell/ev-window.c:5220 +msgid "_Toolbar" +msgstr "_WarktĆ¼Ć¼gbalken" + +#: ../shell/ev-window.c:5221 +msgid "Show or hide the toolbar" +msgstr "WarktĆ¼Ć¼gbalken opwiesen or verbargen" + +#: ../shell/ev-window.c:5223 +msgid "Side _Pane" +msgstr "_Sietenrebeet" + +#: ../shell/ev-window.c:5224 +msgid "Show or hide the side pane" +msgstr "" + +#: ../shell/ev-window.c:5226 +msgid "_Continuous" +msgstr "" + +#: ../shell/ev-window.c:5227 +msgid "Show the entire document" +msgstr "Dat heele Dokument opwiesen" + +#: ../shell/ev-window.c:5229 +msgid "_Dual" +msgstr "_Twejfach" + +#: ../shell/ev-window.c:5230 +msgid "Show two pages at once" +msgstr "Twej Sieten op eenmol opwiesen" + +#: ../shell/ev-window.c:5232 +msgid "_Fullscreen" +msgstr "_Fullbill" + +#: ../shell/ev-window.c:5233 +msgid "Expand the window to fill the screen" +msgstr "" + +#: ../shell/ev-window.c:5235 +msgid "Pre_sentation" +msgstr "PrƤsentat_schoon" + +#: ../shell/ev-window.c:5236 +msgid "Run document as a presentation" +msgstr "Dokument as Vordrag opmaken" + +#: ../shell/ev-window.c:5244 +msgid "_Inverted Colors" +msgstr "_Klƶƶrs umdreihn" + +#: ../shell/ev-window.c:5245 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5253 +msgid "_Open Link" +msgstr "_VerknĆ¼ppen opmaken" + +#: ../shell/ev-window.c:5255 +msgid "_Go To" +msgstr "_Denn man to" + +#: ../shell/ev-window.c:5257 +msgid "Open in New _Window" +msgstr "In nejem _Finster opmaken" + +#: ../shell/ev-window.c:5259 +msgid "_Copy Link Address" +msgstr "_VerknĆ¼ppenanskrivt koperen" + +#: ../shell/ev-window.c:5261 +msgid "_Save Image As..." +msgstr "_Bill spiekern as..." + +#: ../shell/ev-window.c:5263 +msgid "Copy _Image" +msgstr "Bill _koperen" + +#: ../shell/ev-window.c:5268 +msgid "_Open Attachment" +msgstr "Anhangen _opmaken" + +#: ../shell/ev-window.c:5270 +msgid "_Save Attachment As..." +msgstr "Anhangen _spiekern as..." + +#: ../shell/ev-window.c:5323 +msgid "Zoom" +msgstr "Grƶte" + +#: ../shell/ev-window.c:5325 +msgid "Adjust the zoom level" +msgstr "Grƶte Ƥnnern" + +#: ../shell/ev-window.c:5335 +msgid "Navigation" +msgstr "Navigatschoon" + +#: ../shell/ev-window.c:5337 +msgid "Back" +msgstr "TorĆ¼gg" + +#. translators: this is the history action +#: ../shell/ev-window.c:5340 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5370 +msgid "Previous" +msgstr "Een' torĆ¼gg" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5375 +msgid "Next" +msgstr "Een' vor" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5379 +msgid "Zoom In" +msgstr "Grƶter maken" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5383 +msgid "Zoom Out" +msgstr "LĆ¼tter maken" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5391 +msgid "Fit Width" +msgstr "Brede Ƥnnern" + +#: ../shell/ev-window.c:5552 +#: ../shell/ev-window.c:5569 +msgid "Unable to launch external application." +msgstr "" + +#: ../shell/ev-window.c:5609 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:5776 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:5818 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5850 +msgid "Save Image" +msgstr "Bill spiekern" + +#: ../shell/ev-window.c:5917 +msgid "Unable to open attachment" +msgstr "KĆ¼nn Anhangen nich opmaken" + +#: ../shell/ev-window.c:5970 +msgid "The attachment could not be saved." +msgstr "" + +#: ../shell/ev-window.c:6015 +msgid "Save Attachment" +msgstr "Anhang spiekern" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Passwoord nƶdig" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Nah Erwietern" + +#: ../shell/main.c:68 +#: ../shell/main.c:244 +msgid "MATE Document Viewer" +msgstr "MATE Dokumentopwieser" + +#: ../shell/main.c:76 +msgid "The page of the document to display." +msgstr "" + +#: ../shell/main.c:76 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:77 +msgid "Run evince in fullscreen mode" +msgstr "Evince in Fullbill lƶƶpen laten" + +#: ../shell/main.c:78 +msgid "Run evince in presentation mode" +msgstr "Evince in Vordragsmodus lƶƶpen laten" + +#: ../shell/main.c:79 +msgid "Run evince as a previewer" +msgstr "" + +#: ../shell/main.c:80 +msgid "The word or phrase to find in the document" +msgstr "Dat Woort or de Deel, de in dĆ¼ssen DokumentƤ funnen werrn schall" + +#: ../shell/main.c:80 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:84 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "" + diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 00000000..53d3db07 --- /dev/null +++ b/po/ne.po @@ -0,0 +1,1302 @@ +# translation of evince.HEAD.ne.po to Nepali +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Pawan Chitrakar <pawan@mpp.org.np>, 2005. +# Shiva Prasad Pokharel <pokharelshiva@hotmail.com>, 2005. +# Mahesh Subedi <submanesh@hotmail.com>, 2006. +# Shyam Krishna Bal <shyamkrishna_bal@yahoo.com>, 2006. +# Narayan Kumar Magar <narayan@mpp.org.np>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD.ne\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-09-05 12:50+0100\n" +"PO-Revision-Date: 2007-10-09 11:41+0545\n" +"Last-Translator: Narayan Kumar Magar <narayan@mpp.org.np>\n" +"Language-Team: Nepali <info@mpp.org.np>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:150 +msgid "File corrupted." +msgstr "ą¤¦ą„ą¤·ą¤æą¤¤ ą¤«ą¤¾ą¤ą¤² ą„¤" + +#: ../backend/comics/comics-document.c:186 +#, c-format +msgid "No images found in archive %s" +msgstr "ą¤øą¤ą¤ą„ą¤°ą¤¹ %s ą¤®ą¤¾ ą¤ą„ą¤Øą„ ą¤Ŗą¤Øą¤æ ą¤ą¤µą¤æ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤°ą„ą¤Ø" + +#: ../backend/djvu/djvu-document.c:165 +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤§ą„ą¤°ą„ ą¤«ą¤¾ą¤ą¤²ą¤¹ą¤°ą„ą¤¦ą„ą¤µą¤¾ą¤°ą¤¾ ą¤øą¤æą¤°ą„ą¤ą¤Øą¤¾ ą¤ą¤°ą¤æą¤ą¤ą„ ą¤¹ą„ ą„¤ ą¤ą¤ ą¤µą¤¾ ą¤§ą„ą¤°ą„ ą¤¤ą„ą¤Æą¤øą„ą¤¤ą¤¾ ą¤«ą¤¾ą¤ą¤²ą¤¹ą¤°ą„ą¤ą„ ą¤Ŗą¤¹ą„ą¤ą¤ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø ą„¤" + +#: ../backend/dvi/dvi-document.c:98 +msgid "File not available" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§ ą¤ą„ą¤Ø" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤²ą¤¤ ą¤¢ą¤¾ą¤ą¤¾ą¤ą¤®ą¤¾ ą¤" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:701 +msgid "Yes" +msgstr "ą¤¹ą„" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:704 +msgid "No" +msgstr "ą¤¹ą„ą¤ą¤Ø" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "Type 1" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Type 1C" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§C" + +#: ../backend/pdf/ev-poppler.cc:781 +msgid "Type 3" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„©" + +#: ../backend/pdf/ev-poppler.cc:783 +msgid "TrueType" +msgstr "ą¤øą¤¤ą„ą¤Æ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../backend/pdf/ev-poppler.cc:785 +msgid "Type 1 (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§ (CID)" + +#: ../backend/pdf/ev-poppler.cc:787 +msgid "Type 1C (CID)" +msgstr "ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą„§C (CID)" + +#: ../backend/pdf/ev-poppler.cc:789 +msgid "TrueType (CID)" +msgstr "ą¤øą¤¤ą„ą¤Æ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° (CID)" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "Unknown font type" +msgstr "ą¤«ą¤Øą„ą¤ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° ą¤ ą¤ą„ą¤ą¤¾ą¤¤" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "No name" +msgstr "ą¤Øą¤¾ą¤® ą¤ą„ą¤Ø" + +#: ../backend/pdf/ev-poppler.cc:825 +msgid "Embedded subset" +msgstr "ą¤øą¤®ą„ą¤®ą¤æą¤²ą¤æą¤¤ ą¤øą¤¬ą¤øą„ą¤" + +#: ../backend/pdf/ev-poppler.cc:827 +msgid "Embedded" +msgstr "ą¤øą¤®ą„ą¤®ą¤æą¤²ą¤æą¤¤" + +#: ../backend/pdf/ev-poppler.cc:829 +msgid "Not embedded" +msgstr "ą¤øą¤®ą„ą¤®ą¤æą¤²ą¤æą¤¤ ą¤¹ą„ą¤ą¤Ø" + +#: ../backend/impress/zip.c:52 +msgid "No error" +msgstr "ą¤¤ą„ą¤°ą„ą¤ą¤æ ą¤ą„ą¤Ø" + +#: ../backend/impress/zip.c:55 +msgid "Not enough memory" +msgstr "ą¤Ŗą„ą¤°ą¤¶ą¤øą„ą¤¤ ą¤øą„ą¤®ą„ą¤¤ą¤æ ą¤ą„ą¤Ø" + +#: ../backend/impress/zip.c:58 +msgid "Cannot find zip signature" +msgstr "ą¤ą¤æą¤Ŗ ą¤¹ą¤øą„ą¤¤ą¤¾ą¤ą„ą¤·ą¤° ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø" + +#: ../backend/impress/zip.c:61 +msgid "Invalid zip file" +msgstr "ą¤ ą¤µą„ą¤§ ą¤ą¤æą¤Ŗ ą¤«ą¤¾ą¤ą¤²" + +#: ../backend/impress/zip.c:64 +msgid "Multi file zips are not supported" +msgstr "ą¤¬ą¤¹ą„ą¤µą¤æą¤§ ą¤«ą¤¾ą¤ą¤² ą¤ą¤æą¤Ŗą¤¹ą¤°ą„ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤ą„ą¤Øą¤Øą„" + +#: ../backend/impress/zip.c:67 +msgid "Cannot open the file" +msgstr "ą¤«ą¤¾ą¤ą¤² ą¤ą„ą¤²ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø" + +#: ../backend/impress/zip.c:70 +msgid "Cannot read data from file" +msgstr "ą¤«ą¤¾ą¤ą¤²ą¤¬ą¤¾ą¤ ą¤”ą„ą¤ą¤¾ ą¤Ŗą¤¢ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø" + +#: ../backend/impress/zip.c:73 +msgid "Cannot find file in the zip archive" +msgstr "ą¤ą¤æą¤Ŗ ą¤øą¤ą„ą¤ą„ą¤°ą¤¹ą¤®ą¤¾ ą¤«ą¤¾ą¤ą¤² ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø" + +#: ../backend/impress/zip.c:76 +msgid "Unknown error" +msgstr "ą¤ ą¤ą„ą¤ą¤¾ą¤¤ ą¤¤ą„ą¤°ą„ą¤ą¤æ" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "ą¤¬ą¤æ-ą¤¬ą¤¾ą¤ą¤ø" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "ą¤ą¤æą¤ ą„ą¤ ą¤æ" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "ą¤ą„ą¤¬ą¤²ą¤¾ą¤Æą¤”" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "ą¤²ą„ą¤ą¤°" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "ą¤ą¤¾ą¤Øą„ą¤Øą„" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "ą¤ą¤Øą¤¾ą¤" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "ą¤ą¤¾ą¤°ą„ą¤Æą¤ą¤¾ą¤°ą¤æą¤£ą„" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "ą¤ą„¦" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "ą¤ą„§" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "ą¤ą„Ø" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "ą¤ą„©" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "ą¤ą„Ŗ" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "ą¤ą„«" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "ą¤¬ą¤æą„Ŗ" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "ą¤¬ą¤æą„«" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "ą¤«ą„ą¤²ą¤æą¤" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "ą¤ą„ą¤µą¤°ą„ą¤ą„" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "ą„§ą„¦xą„§ą„Ŗ" + +#: ../backend/ps/ps-document.c:172 ../backend/ps/ps-document.c:186 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤² ą¤ą„ą¤²ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø ą„¤" + +#: ../backend/ps/ps-document.c:233 +#, c-format +msgid "Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "ā%sā ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤²ą„ą¤” ą¤ą¤°ą„ą¤Ø ą¤ ą¤øą¤«ą¤² ą¤ą¤Æą„ ą„¤ ą¤ą„ą¤øą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤ ą¤Øą„ą¤µą¤¾ą¤¦ą¤ ą¤®ą¤¾ą¤°ą„ą¤ą¤®ą¤¾ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤°ą„ą¤ą„ ą¤„ą¤æą¤ą¤Ø" + +#: ../backend/ps/ps-document.c:250 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤²ą„ą¤” ą¤ą¤°ą„ą¤Ø ą¤ ą¤øą¤«ą¤² ą¤ą¤Æą„" + +#: ../backend/ps/ps-document.c:433 +msgid "Encapsulated PostScript" +msgstr "ą¤ą¤Øą¤ą„ą¤Æą¤¾ą¤Ŗą„ą¤øą„ą¤²ą„ą¤ ą¤ą¤°ą¤æą¤ą¤ą„ ą¤Ŗą„ą¤·ą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤" + +#: ../backend/ps/ps-document.c:434 +msgid "PostScript" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "ą¤µą„ą¤Æą¤¾ą¤ą„ą¤Æą¤¾ą¤ą¤¾ą¤° ą¤ ą¤øą¤«ą¤² ą„¤" + +#: ../backend/impress/impress-document.c:294 +msgid "Remote files aren't supported" +msgstr "ą¤ą¤¾ą¤¢ą¤¾ą¤ą„ ą¤«ą¤¾ą¤ą¤²ą¤¹ą¤°ą„ ą¤øą¤®ą¤°ą„ą¤„ą¤æą¤¤ ą¤ą„ą¤Øą¤Øą„" + +#: ../backend/impress/impress-document.c:305 +msgid "Invalid document" +msgstr "ą¤ ą¤µą„ą¤§ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:316 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ā%sā ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤Ø: %s" + +#: ../libdocument/ev-attachment.c:348 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ā%sā ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ ą¤ą„ą¤²ą„ą¤Ø ą¤øą¤ą„ą¤Ø: %s" + +#: ../libdocument/ev-attachment.c:381 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ā%sā ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ ą¤ą„ą¤²ą„ą¤Ø ą¤øą¤ą„ą¤Ø" + +#: ../libdocument/ev-document-factory.c:291 +#: ../libdocument/ev-document-factory.c:398 +msgid "Unknown MIME Type" +msgstr "ą¤ ą¤ą„ą¤ą¤¾ą¤¤ ą¤®ą¤¾ą¤ą¤® ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°" + +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "ą¤¹ą„ą¤Æą¤¾ą¤£ą„ą¤”ą¤² ą¤Øą¤ą¤°ą¤æą¤ą¤ą„ ą¤®ą¤¾ą¤ą¤® ą¤Ŗą„ą¤°ą¤ą¤¾ą¤°: ā%sā" + +#: ../libdocument/ev-document-factory.c:439 +msgid "All Documents" +msgstr "ą¤øą¤¬ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:447 +msgid "PostScript Documents" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:457 +msgid "PDF Documents" +msgstr "ą¤Ŗą¤æ ą¤”ą¤æ ą¤Æą¤« ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:467 ../shell/ev-window.c:4950 +msgid "Images" +msgstr "ą¤ą¤µą¤æą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:477 +msgid "DVI Documents" +msgstr "ą¤”ą¤æ ą¤ą¤æ ą¤ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:487 +msgid "Djvu Documents" +msgstr "Djvu ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:497 +msgid "Comic Books" +msgstr "ą¤ą¤®ą¤æą¤ ą¤Ŗą„ą¤øą„ą¤¤ą¤ą¤¹ą¤°ą„" + +#: ../libdocument/ev-document-factory.c:507 +msgid "Impress Slides" +msgstr "ą¤øą„ą¤²ą¤¾ą¤ą¤” ą¤ą¤®ą„ą¤Ŗą„ą¤°ą„ą¤ø ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../libdocument/ev-document-factory.c:515 +msgid "All Files" +msgstr "ą¤øą¤¬ą„ ą¤«ą¤¾ą¤ą¤²ą¤¹ą¤°ą„" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:205 +#, c-format +msgid "Open ā%sā" +msgstr "ā%sā ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:322 +msgid "Empty" +msgstr "ą¤°ą¤æą¤¤ą„ą¤¤ą„" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą¤¦ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ą¤®ą¤¾ ą¤øą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "ą¤ą¤Æą¤Ø ą¤ą¤°ą¤æą¤ą¤ą„ ą¤µą¤øą„ą¤¤ą„ ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ą¤®ą¤¾ ą¤øą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ą¤¬ą¤¾ą¤ ą¤¹ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ą¤¬ą¤¾ą¤ ą¤ą¤Æą¤Ø ą¤ą¤°ą¤æą¤ą¤ą„ ą¤µą¤øą„ą¤¤ą„ ą¤¹ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ ą¤®ą„ą¤ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "ą¤ą¤Æą¤Ø ą¤ą¤°ą¤æą¤ą¤ą„ ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ ą¤¹ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "ą¤µą¤æą¤ą¤¾ą¤ą¤" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤®ą„ą¤”ą¤®ą¤¾ ą¤ą¤²ą¤æą¤°ą¤¹ą„ą¤ą„ ą¤" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4538 +msgid "Best Fit" +msgstr "ą¤øą¤µą„ ą¤ą¤Øą„ą¤¦ą¤¾ ą¤®ą¤æą¤²ą„ą¤ą„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ ą¤ą„ą¤”ą¤¾ą¤ ą¤®ą¤æą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą„«ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą„ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą„®ą„«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą„§ą„¦ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą„§ą„Øą„«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą„§ą„«ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą„§ą„ą„«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą„Øą„¦ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą„©ą„¦ą„¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą„Ŗą„¦ą„¦%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3669 +#: ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą„ą¤¶ą„ą¤Æą¤" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ą¤¬ą¤¹ą„ą¤Ŗą„ą¤·ą„ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą„ą¤¶ą„ą¤Æ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤Ŗą„ą¤°ą¤µą¤æą¤·ą„ą¤ą¤æ" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ą¤Æą„ ą¤øą¤¤ą„ą¤°ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤øą¤®ą„ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "ą¤ą¤æą¤°ą¤æą¤ą„ą¤®ą¤¾ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤µą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>ą¤²ą„ą¤ą¤:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>ą¤øą¤æą¤°ą„ą¤ą¤Øą¤¾ ą¤ą¤°ą„ą¤ą„:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>ą¤øą¤°ą„ą¤ą¤:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>ą¤¢ą¤¾ą¤ą¤¾ą¤:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>ą¤¶ą¤¬ą„ą¤¦ą¤ą„ą¤ą„ą¤ą„ą¤¹ą¤°ą„:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>ą¤Ŗą¤°ą¤æą¤®ą¤¾ą¤°ą„ą¤ą¤Ø ą¤ą¤°ą¤æą¤ą¤ą„:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>ą¤Ŗą„ą¤·ą„ą¤ ą¤¹ą¤°ą„ą¤ą„ ą¤øą¤ą„ą¤ą„ą¤Æą¤¾:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>ą¤ ą¤Ŗą„ą¤ą¤æą¤®ą¤¾ą¤ą¤ ą¤ą¤°ą¤æą¤ą¤ą„:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>ą¤ą¤¾ą¤ą¤ ą¤øą¤¾ą¤ą¤:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤¤ą¤¾:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>ą¤øą„ą¤°ą¤ą„ą¤·ą¤¾:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>ą¤µą¤æą¤·ą¤Æ:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>ą¤¶ą„ą¤°ą„ą¤·ą¤:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤Øą¤æą¤·ą„ą¤§ą¤¹ą¤°ą„ ą¤®ą¤æą¤ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ ą¤µą¤°ą„ą¤§ą¤¹ą¤°ą„ ą¤ ą¤§ą¤æą¤²ą„ą¤ą¤Ø ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„, ą¤ą¤øą„ą¤¤ą„ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą„ ą¤ą¤°ą„ą¤Øą„ą¤®ą¤¾ ą¤ ą¤µą¤°ą„ą¤§ ą¤µą¤¾ ą¤®ą„ą¤¦ą„ą¤°ą¤Ø ą¤ą¤°ą„ą¤Øą¤®ą¤¾ ą¤ ą¤µą¤°ą„ą¤§ ą„¤ " + +#: ../properties/ev-properties-main.c:110 +msgid "Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "ą¤ą„ą¤Øą„ ą¤Ŗą¤Øą¤æ ą¤¹ą„ą¤ą¤Ø" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "ą¤Ŗą„ą¤°ą„ą¤µą¤Øą¤æą¤°ą„ą¤§ą¤¾ą¤°ą¤æą¤¤:ą¤®ą¤æą¤²ą¤æą¤®ą¤æą¤ą¤°" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f ą¤ą¤Øą„ą¤" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¤Ŗą„ą¤°ą„ą¤ą„ą¤°ą„ą¤ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¤²ą„ą¤Æą¤¾ą¤£ą„ą¤”ą¤øą„ą¤ą„ą¤Ŗ (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ ą¤ą„ą¤ą„ą¤Øą„ą¤¹ą„ą¤ø" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ą„ ą¤Øą¤¾ą¤® ą¤Ŗą¤¤ą„ą¤¤ą¤¾ ą¤²ą¤ą¤¾ą¤ą¤Ø" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą¤®ą„ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤²" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "ą¤ ą¤¤ą¤æ ą¤øą¤®ą„ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² ą¤ą„ą¤ą¤¾ą¤ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤øą¤¤ą„ą¤Æ" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "ą¤°ą¤ą¤ą¤²ą¤¾ą¤ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤ø" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "ą¤øą¤µą„ ą¤®ą„ą¤Æą¤¾ą¤ą¤¹ą¤°ą„ą¤²ą¤¾ą¤ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą„ą¤Øą„ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "ą¤¹ą¤¾ą¤²ą¤ą„ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "ą¤ą¤¾ą¤²ą„ ą¤®ą„ą¤Æą¤¾ą¤ą¤¹ą¤°ą„ą¤²ą¤¾ą¤ ą¤¹ą¤¾ą¤ą¤²ą¤¾ą¤ą¤ ą¤ą¤°ą„ą¤Øą„ ą¤°ą¤ą¤" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "ą¤ą„ą¤ą„ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ą„ ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤ą¤ą¤Øą¤¾ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "ą¤Ŗą¤ą¤æą¤²ą„ą¤²ą„ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "ą¤ą„ą¤ą„ ą¤øą„ą¤ą„ą¤°ą¤æą¤ą¤ą„ ą¤Ŗą¤ą¤æą¤²ą„āāą¤²ą„ ą¤ą¤ą¤Øą¤¾ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "ą¤ą„ą¤ø ą¤øą¤®ą„ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤²" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "ą¤ą„ą¤ø ą¤øą¤®ą„ą¤µą„ą¤¦ą¤Øą¤¶ą„ą¤² ą¤ą„ą¤ą„ ą¤ą¤ą¤² ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-jobs.c:642 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤² ą¤øą¤æą¤°ą„ą¤ą¤Øą¤¾ ą¤ą¤°ą„ą¤Ø ą¤ ą¤øą¤«ą¤² ą¤ą¤Æą„: %s" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą¤ą„ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "ą¤ą„ %d" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤ą¤¾ą¤¹ą¤æą¤Æą„" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¤ą¤¾ą¤²ą„āāą¤ą¤¾ ą¤²ą¤ą¤¾ą¤ą¤ą¤ą„ ą¤ ą¤° ą¤Æą„ ą¤ą„ą¤²ą„āāą¤Øą„ ą¤ą¤Øą„ą¤¦ą¤¾ ą¤Ŗą¤¹ą¤æą¤²ą¤¾ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤ą¤µą¤¶ą„ą¤Æą¤ ą¤¹ą„ą¤Øą„ą¤ ą„¤" + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤Ŗą„ą¤°ą¤µą¤æą¤·ą„ą¤ą¤æ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ %s ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "ą¤ą¤²ą¤¤ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤”" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¤Æą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤²ą¤ ą¤ą¤°ą¤æą¤ą¤ą„ ą¤ ą¤° ą¤Æą¤øą¤²ą¤¾ą¤ ą¤ ą¤æą¤ ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤Ŗą„ą¤°ą¤µą¤æą¤·ą„ą¤ą¤æ ą¤ą¤°ą„ą¤° ą¤®ą¤¾ą¤¤ą„ą¤° ą¤Ŗą¤¢ą„ą¤Ø ą¤øą¤ą¤æą¤Øą„ą¤ ą„¤" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¤ą¤¾ą¤²ą„ą¤ą¤¾ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "ą¤ą„ą¤£ą¤¹ą¤°ą„" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "ą¤øą¤¾ą¤§ą¤¾ą¤°ą¤£" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ą¤«ą¤Øą„ą¤ą¤¹ą¤°ą„" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "ą¤«ą¤Øą„ą¤" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ą¤«ą¤Øą„ą¤ ą¤øą„ą¤ą¤Øą¤¾ ą¤øą¤¾ą¤®ą„ą¤²... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:670 +msgid "Attachments" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3491 +msgid "Loading..." +msgstr "ą¤²ą„ą¤” ą¤¹ą„ą¤ą¤¦ą„ą¤..." + +#: ../shell/ev-sidebar-links.c:342 +msgid "Print..." +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-sidebar-links.c:722 +msgid "Index" +msgstr "ą¤ ą¤Øą„ą¤ą„ą¤°ą¤®ą¤£ą¤æą¤ą¤¾" + +#: ../shell/ev-sidebar-thumbnails.c:729 +msgid "Thumbnails" +msgstr "ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą¤¹ą¤°ą„" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "ą¤®ą¤¾ą¤„ą¤æ ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "ą¤¤ą¤² ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "ą¤¦ą„ą¤¶ą„ą¤Æ ą¤®ą¤¾ą¤„ą¤æ ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "ą¤¦ą„ą¤¶ą„ą¤Æ ą¤¤ą¤² ą¤øą„ą¤ą„ą¤°ą„ą¤² ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą„ą¤¶ą„ą¤Æ" + +#: ../shell/ev-view.c:1423 +msgid "Go to first page" +msgstr "ą¤Ŗą¤¹ą¤æą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1425 +msgid "Go to previous page" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1427 +msgid "Go to next page" +msgstr "ą¤Ŗą¤ą¤æą¤²ą„āāą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1429 +msgid "Go to last page" +msgstr "ą¤ ą¤Øą„ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1431 +msgid "Go to page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1433 +msgid "Find" +msgstr "ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1461 +#, c-format +msgid "Go to page %s" +msgstr "%s ą¤Ŗą¤¾ą¤Øą¤¾ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1467 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤²ą¤®ą¤¾ %s ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1470 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¤«ą¤¾ą¤ą¤²ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:1478 +#, c-format +msgid "Launch %s" +msgstr "%s ą¤øą„ą¤°ą„ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-view.c:2419 +msgid "End of presentation. Press Escape to exit." +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æą¤ą„ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ą¤æ ą„¤ ą¤Øą¤æą¤øą„ą¤ą¤Øą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤ą¤øą„ą¤ą„ą¤Ŗ ą¤„ą¤æą¤ą„ą¤Øą„ą¤¹ą„ą¤øą„ ą„¤" + +#: ../shell/ev-view.c:3214 +msgid "Jump to page:" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:4851 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą¤Æą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ %d ą¤ą„ą¤ą„ą¤ą¤æą¤Æą„" +msgstr[1] "ą¤Æą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ %d ą¤ą„ą¤ą„ą¤ą¤æą¤Æą„" + +#: ../shell/ev-view.c:4860 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą¤ą„ą¤ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤µą¤¾ą¤ą¤ą„" + +#: ../shell/ev-window.c:746 +#, c-format +msgid "Page %s - %s" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ %s - %s" + +#: ../shell/ev-window.c:748 +#, c-format +msgid "Page %s" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ %s" + +#: ../shell/ev-window.c:1369 +msgid "Unable to open document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²ą„ą¤Ø ą¤ ą¤ą„ą¤·ą¤® ą¤" + +#: ../shell/ev-window.c:1559 +msgid "Open Document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:1629 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "ā%sā ą¤Ŗą„ą¤°ą¤£ą¤¾ą¤²ą„ ą¤²ą¤æą¤ą„ą¤ ą¤øą¤æą¤°ą„ą¤ą¤Øą¤¾ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤Ø: %s" + +#: ../shell/ev-window.c:1658 +msgid "Cannot open a copy." +msgstr "ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤ą„ą¤²ą„ą¤Ø ą¤øą¤ą„ą¤¦ą„ą¤Ø ą„¤" + +#: ../shell/ev-window.c:1940 ../shell/ev-window.c:2012 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sā ą¤ą„ ą¤°ą„ą¤Ŗą¤®ą¤¾ ą¤«ą¤¾ą¤ą¤² ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤Ø ą„¤" + +#: ../shell/ev-window.c:2061 +msgid "Save a Copy" +msgstr "ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:2159 ../shell/ev-window.c:3369 +msgid "Failed to print document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Ø ą¤ ą¤øą¤«ą¤² ą¤ą¤Æą„" + +#: ../shell/ev-window.c:2321 ../shell/ev-window.c:2500 +msgid "Printing is not supported on this printer." +msgstr "ą¤Æą¤ø ą¤®ą„ą¤¦ą„ą¤°ą¤ą¤®ą¤¾ ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤¾ą¤°ą„ą¤Æ ą¤øą¤®ą¤°ą„ą¤„ą¤Ø ą¤ą¤°ą¤æą¤¦ą„ą¤Ø ą„¤" + +#: ../shell/ev-window.c:2436 ../shell/ev-window.c:2551 +#: ../shell/ev-window.c:4347 +msgid "Print" +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:2490 +msgid "Generating PDF is not supported" +msgstr "ą¤Ŗą¤æ ą¤”ą¤æ ą¤Æą¤« ą¤ą¤¤ą„ą¤Ŗą¤Øą„ą¤Ø ą¤ą¤°ą„ą¤Øą„ ą¤ą¤¾ą¤® ą¤øą¤®ą¤°ą„ą¤„ą¤Ø ą¤ą¤°ą„ą¤Ø" + +#: ../shell/ev-window.c:2502 +#, c-format +msgid "" +"You were trying to print to a printer using the ā%sā driver. This program " +"requires a PostScript printer driver." +msgstr "" +"%s ą¤”ą„ą¤°ą¤¾ą¤ą¤ą¤° ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤ą¤°ą¤æą¤°ą¤¹ą„ą¤ą„ ą¤ą¤ą¤ą¤¾ ą¤®ą„ą¤¦ą„ą¤°ą¤ą¤®ą¤¾ ą¤¤ą¤Ŗą¤¾ą¤ą¤ą¤²ą„ ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Ø ą¤Ŗą„ą¤°ą¤Æą¤¾ą¤ø ą¤ą¤°ą¤æą¤°ą¤¹ą¤Øą„ ą¤ą¤ą¤ą„ ą¤„ą¤æą¤Æą„ ą„¤ ą¤Æą„ ą¤ą¤¾ą¤°ą„ą¤Æą¤ą„ą¤°ą¤®ą¤²ą¤¾ą¤ " +"ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ą¤øą„ą¤ą„ą¤°ą¤æą¤Ŗą„ą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤ ą¤”ą„ą¤°ą¤¾ą¤ą¤ą¤° ą¤ą¤µą¤¶ą„ą¤Æą¤ ą¤Ŗą¤°ą„ą¤¦ą¤ ą„¤" + +#: ../shell/ev-window.c:2560 +msgid "Pages" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤¹ą¤°ą„" + +#: ../shell/ev-window.c:3150 +msgid "Toolbar Editor" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ ą¤øą¤®ą„ą¤Ŗą¤¾ą¤¦ą¤" + +#: ../shell/ev-window.c:3665 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą¤°ą„ą¤¶ą¤ ą„¤\n" +"ą¤Ŗą„ą¤Ŗą¤²ą¤° ą¤Ŗą„ą¤°ą¤Æą„ą¤ ą¤ą¤°ą„ą¤¦ą„ %s (%s)" + +#: ../shell/ev-window.c:3693 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø ą¤øą„ą¤µą¤¤ą¤Øą„ą¤¤ą„ą¤° ą¤øą¤«ą„ą¤ą¤µą„ą¤Æą¤° ą¤¹ą„, ą¤¤ą¤Ŗą¤¾ą¤ą¤ą¤²ą„ ą¤Æą¤øą¤²ą¤¾ą¤ ą¤øą„ą¤µą¤¤ą¤Øą„ą¤¤ą„ą¤° ą¤øą¤«ą„ą¤ą¤µą„ą¤Æą¤° ą¤øą¤ą¤øą„ą¤„ą¤¾ą¤¦ą„ą¤µą¤¾ą¤°ą¤¾ ą¤Ŗą„ą¤°ą¤ą¤¾ą¤¶ą¤æą¤¤ ą¤ą¤æą¤ą¤Øą¤Æą„ ą¤øą¤¾ą¤®ą¤¾ą¤Øą„ą¤Æ ą¤øą¤¾ą¤°ą„ą¤µą¤ą¤Øą¤æą¤ ą¤ą¤ą¤¾ą¤ą¤¤ą¤Ŗą¤¤ą„ą¤°ą¤ą„ ą¤¶ą¤°ą„ą¤¤ ą¤ą¤æą¤¤ą„ą¤° ą¤°ą¤¹ą„ą¤°;ą¤µą¤¾ ą¤ą¤ą¤¾ą¤ą¤¤ą¤Ŗą¤¤ą„ą¤°ą¤ą„ ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ ą„Ø, ą¤µą¤¾ (ą¤¤ą¤Ŗą¤¾ą¤ą¤ą„ ą¤µą¤æą¤ą¤²ą„ą¤Ŗ )ą¤®ą¤¾ ą¤Ŗą¤ą¤æą¤ą¤¾ ą¤ą„ą¤Øą„ ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ą¤¬ą¤¾ą¤ ą¤Ŗą„ą¤Øą¤°ą„ą¤µą¤æą¤¤ą¤°ą¤£ ą¤ą¤°ą„ą¤Ø ą¤°/ą¤µą¤¾ ą¤Ŗą¤°ą¤æą¤®ą¤¾ą¤°ą„ą¤ą¤Ø ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤Øą„ą¤¹ą„ą¤Øą„ą¤ ą„¤\n" + +#: ../shell/ev-window.c:3697 +msgid "" +"Evince 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.\n" +msgstr "ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø ą¤ą¤Ŗą¤Æą„ą¤ą¤æ ą¤¹ą„ą¤Øą„ ą¤ą¤¶ą¤¾ą¤®ą¤¾ ą¤¤ą¤° ą¤ą„ą¤Øą„ ą¤µą¤¾ą¤°ą„ą¤Øą„ą¤ą¤æ ą¤µą¤æą¤Øą¤¾, ą¤Æą¤¦ą„ą¤Æą¤Ŗą¤æ ą¤µą„ą¤Æą¤¾ą¤Ŗą¤¾ą¤°ą¤æą¤ą¤°ą¤£ ą¤µą¤¾ ą¤ą„ą¤Øą„ ą¤Øą¤æą¤¶ą„ą¤ą¤æą¤¤ ą¤ą¤¦ą„ą¤¶ą„ą¤Æą¤øą¤ą¤ą¤ą„ ą¤ą„ą¤Øą„ ą¤øą„ą¤ą„ą¤¤ ą¤µą¤¾ą¤°ą„ą¤Øą„ą¤ą¤æ ą¤µą¤æą¤Øą¤¾ ą¤Øą„ ą¤µą¤æą¤¤ą¤°ą¤£ ą¤ą¤°ą¤æą¤ą¤ą„ ą¤¹ą„ ą„¤ ą¤ ą¤°ą„ ą¤µą¤æą¤øą„ą¤¤ą„ą¤¤ ą¤µą¤æą¤µą¤°ą¤£ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤ą¤æą¤ą¤Øą¤Æą„ ą¤øą¤¾ą¤§ą¤¾ą¤°ą¤£ ą¤øą¤¾ą¤°ą„ą¤µą¤ą¤Øą¤æą¤ ą¤ą¤ą¤¾ą¤ą¤¤ą¤Ŗą¤¤ą„ą¤° ą¤¹ą„ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„ ą„¤\n" + +#: ../shell/ev-window.c:3701 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "ą¤¤ą¤Ŗą¤¾ą¤ą¤²ą„ ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø ą¤øą¤ą¤ą¤øą¤ą¤ą„ ą¤ą¤æą¤ą¤Øą¤Æą„ ą¤øą¤¾ą¤§ą¤¾ą¤°ą¤£ ą¤øą¤¾ą¤°ą„ą¤µą¤ą¤Øą¤æą¤ ą¤ą¤ą¤¾ą¤ą¤¤ą¤Ŗą¤¤ą„ą¤°ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„ą¤¤ ą¤ą¤°ą„ą¤Øą„ ą¤Ŗą¤°ą„ą¤¦ą¤, ą¤Æą¤¦ą¤æ ą¤Øą¤ą¤ą¤®ą¤¾, ą¤øą„ą¤µą¤¤ą¤Øą„ą¤¤ą„ą¤° ą¤øą¤«ą„ą¤ą¤µą„ą¤Æą¤° ą¤øą¤ą¤øą„ą¤„ą¤¾, ą¤ą¤Øą„ą¤.,ą„«ą„Æ ą¤ą„ą¤®ą„ą¤Ŗą¤² ą¤Ŗą„ą¤²ą„ą¤ø,ą¤øą„ą¤ ą„©ą„©ą„¦, ą¤µą„ą¤øą„ą¤ą„ą¤Ø, ą¤ą¤®ą¤ ą„¦ą„Øą„§ą„§ą„§-ą„§ą„©ą„¦ą„ ą¤Æą„ ą¤ą¤ø ą¤ ą¤²ą¤¾ą¤ ą¤²ą„ą¤ą„ą¤Øą„ą¤¹ą„ą¤øą„\n" + +#: ../shell/ev-window.c:3725 ../shell/main.c:331 +msgid "Evince" +msgstr "ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø" + +#: ../shell/ev-window.c:3728 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© ą„§ą„Æą„Æą„¬-ą„Øą„¦ą„¦ą„ ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø ą¤²ą„ą¤ą¤ą¤¹ą¤°ą„" + +#: ../shell/ev-window.c:3734 +msgid "translator-credits" +msgstr "Mahesh Subedi<submanesh@yhoo.com>" + +#: ../shell/ev-window.c:4258 +msgid "_File" +msgstr "ą¤«ą¤¾ą¤ą¤²" + +#: ../shell/ev-window.c:4259 +msgid "_Edit" +msgstr "ą¤øą¤®ą„ą¤Ŗą¤¾ą¤¦ą¤Ø ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4260 +msgid "_View" +msgstr "ą¤¦ą„ą¤¶ą„ą¤Æ" + +#: ../shell/ev-window.c:4261 +msgid "_Go" +msgstr "ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4262 +msgid "_Help" +msgstr "ą¤®ą¤¦ą„ą¤¦ą¤¤" + +#. File menu +#: ../shell/ev-window.c:4265 ../shell/ev-window.c:4443 +msgid "_Open..." +msgstr "ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4266 +msgid "Open an existing document" +msgstr "ą¤ ą¤µą¤øą„ą¤„ą¤æą¤¤ ą¤°ą¤¹ą„ą¤ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4268 +msgid "Op_en a Copy" +msgstr "ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4269 +msgid "Open a copy of the current document in a new window" +msgstr "ą¤¹ą¤¾ą¤²ą¤ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤ą„ ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤Øą¤Æą¤¾ą¤ ą¤øą¤ą„ą¤ą„ą¤Æą¤¾ą¤²ą¤®ą¤¾ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4271 ../shell/ev-window.c:4445 +msgid "_Save a Copy..." +msgstr "ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4272 +msgid "Save a copy of the current document" +msgstr "ą¤ą¤¾ą¤²ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤²ą¤¾ą¤ ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4274 +msgid "Print Set_up..." +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤øą„ą¤ą¤ ą¤Ŗ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4275 +msgid "Setup the page settings for printing" +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤Ŗą„ą¤·ą„ą¤ ą¤øą„ą¤ą¤æą¤ ą¤øą„ą¤ą¤ ą¤Ŗ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4277 +msgid "_Print..." +msgstr "ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4278 ../shell/ev-window.c:4348 +msgid "Print this document" +msgstr "ą¤Æą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤²ą¤¾ą¤ ą¤®ą„ą¤¦ą„ą¤°ą¤£ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4280 +msgid "P_roperties" +msgstr "ą¤ą„ą¤£ą¤¹ą¤°ą„" + +#: ../shell/ev-window.c:4289 ../shell/ev-window.c:4291 +msgid "Select _All" +msgstr "ą¤øą¤¬ą„ ą¤ą¤¾ą¤Øą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4294 +msgid "_Find..." +msgstr "ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4295 +msgid "Find a word or phrase in the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤®ą¤¾ ą¤¶ą¤¬ą„ą¤¦ ą¤µą¤¾ ą¤µą¤¾ą¤ą„ą¤Æą¤¾ą¤¶ą¤ ą¤«ą„ą¤²ą¤¾ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4297 +msgid "Find Ne_xt" +msgstr "ą¤ ą¤°ą„ą¤ą„ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4299 +msgid "Find Pre_vious" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤«ą„ą¤²ą¤¾ ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4301 +msgid "T_oolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„" + +#: ../shell/ev-window.c:4303 +msgid "Rotate _Left" +msgstr "ą¤¬ą¤¾ą¤Æą¤¾ą¤ ą¤ą„ą¤®ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4305 +msgid "Rotate _Right" +msgstr "ą¤¦ą¤¾ą¤Æą¤¾ą¤ ą¤ą„ą¤®ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4310 +msgid "Enlarge the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤²ą¤¾ą¤ ą¤ ą„ą¤²ą„ ą¤¬ą¤Øą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4313 +msgid "Shrink the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą„ą¤®ą„ą¤ą„ą¤Æą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4315 +msgid "_Reload" +msgstr "ą¤Ŗą„ą¤Ø:ą¤²ą„ą¤” ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4316 +msgid "Reload the document" +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤²ą¤¾ą¤ ą¤Ŗą„ą¤Ø:ą¤²ą„ą¤” ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤ø" + +#. Go menu +#: ../shell/ev-window.c:4320 +msgid "_Previous Page" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:4321 +msgid "Go to the previous page" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4323 +msgid "_Next Page" +msgstr "ą¤ ą¤°ą„ą¤ą„ ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:4324 +msgid "Go to the next page" +msgstr "ą¤ ą¤°ą„ą¤ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4326 +msgid "_First Page" +msgstr "ą¤Ŗą¤¹ą¤æą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:4327 +msgid "Go to the first page" +msgstr "ą¤Ŗą¤¹ą¤æą¤²ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4329 +msgid "_Last Page" +msgstr "ą¤ ą¤Øą„ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:4330 +msgid "Go to the last page" +msgstr "ą¤ ą¤Øą„ą¤¤ą¤æą¤® ą¤Ŗą„ą¤·ą„ą¤ ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#. Help menu +#: ../shell/ev-window.c:4334 +msgid "_Contents" +msgstr "ą¤øą¤¾ą¤®ą¤¾ą¤ą„ą¤°ą„ą¤¹ą¤°ą„" + +#: ../shell/ev-window.c:4337 +msgid "_About" +msgstr "ą¤¬ą¤¾ą¤°ą„ą¤®ą¤¾" + +#. Toolbar-only +#: ../shell/ev-window.c:4341 +msgid "Leave Fullscreen" +msgstr "ą¤Ŗą„ą¤°ą„ą¤£ą¤Ŗą¤°ą„ą¤¦ą¤¾ą¤²ą¤¾ą¤ ą¤ą¤¾ą¤”ą„ą¤Øą„ą¤¹ą„ą¤ø" + +#: ../shell/ev-window.c:4342 +msgid "Leave fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą¤¾ ą¤Ŗą¤°ą„ą¤¦ą¤¾ ą¤®ą„ą¤” ą¤ą„ą¤”ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4344 +msgid "Start Presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„ ą¤øą„ą¤°ą„ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4345 +msgid "Start a presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤øą„ą¤°ą„ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#. View Menu +#: ../shell/ev-window.c:4399 +msgid "_Toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„" + +#: ../shell/ev-window.c:4400 +msgid "Show or hide the toolbar" +msgstr "ą¤ą¤Ŗą¤ą¤°ą¤£ą¤Ŗą¤ą„ą¤ą„ ą¤¦ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„ ą¤µą¤¾ ą¤²ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4402 +msgid "Side _Pane" +msgstr "ą¤øą¤¾ą¤ą¤” ą¤«ą¤²ą¤" + +#: ../shell/ev-window.c:4403 +msgid "Show or hide the side pane" +msgstr "ą¤ą„ą¤ ą¤«ą¤²ą¤ ą¤¦ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„ ą¤µą¤¾ ą¤²ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤ø" + +#: ../shell/ev-window.c:4405 +msgid "_Continuous" +msgstr "ą¤Øą¤æą¤°ą¤Øą„ą¤¤ą¤°ą¤¤ą¤¾" + +#: ../shell/ev-window.c:4406 +msgid "Show the entire document" +msgstr "ą¤øą¤®ą„ą¤Ŗą„ą¤°ą„ą¤£ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4408 +msgid "_Dual" +msgstr "ą¤¦ą„ą¤¹ą„ą¤°ą„" + +#: ../shell/ev-window.c:4409 +msgid "Show two pages at once" +msgstr "ą¤¦ą„ą¤ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤ą„ ą¤Ŗą¤ą¤ ą¤¦ą„ą¤ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4411 +msgid "_Fullscreen" +msgstr "ą¤Ŗą„ą¤°ą¤¾ ą¤Ŗą¤°ą„ą¤¦ą¤¾" + +#: ../shell/ev-window.c:4412 +msgid "Expand the window to fill the screen" +msgstr "ą¤Ŗą¤°ą„ą¤¦ą¤¾ ą¤ą¤°ą„ą¤Øą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤øą¤ą„ą¤ą„ą¤Æą¤¾ą¤² ą¤µą¤¢ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4414 +msgid "_Presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą„" + +#: ../shell/ev-window.c:4415 +msgid "Run document as a presentation" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤ą¤øą„ą¤¤ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤ą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4417 +msgid "_Best Fit" +msgstr "ą¤øą¤µą„ ą¤ą¤Øą„ą¤¦ą¤¾ ą¤®ą¤æą¤²ą„ą¤ą„" + +#: ../shell/ev-window.c:4418 +msgid "Make the current document fill the window" +msgstr "ą¤¹ą¤¾ą¤²ą¤ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤²ą¤¾ą¤ ą¤øą¤ą„ą¤ą„ą¤Æą¤¾ą¤² ą¤ą¤°ą¤æą¤Øą„ ą¤¬ą¤Øą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4420 +msgid "Fit Page _Width" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą„ ą¤ą„ą¤”ą¤¾ą¤ ą¤®ą¤æą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4421 +msgid "Make the current document fill the window width" +msgstr "ą¤øą¤ą„ą¤ą„ą¤Æą¤¾ą¤² ą¤ą„ą¤”ą¤¾ą¤ ą¤ą¤°ą„ą¤Ø ą¤¹ą¤¾ą¤²ą¤ą„ ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤µą¤Øą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#. Links +#: ../shell/ev-window.c:4428 +msgid "_Open Link" +msgstr "ą¤²ą¤æą¤ą„ą¤ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4430 +msgid "_Go To" +msgstr "ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4432 +msgid "Open in New _Window" +msgstr "ą¤Øą¤Æą¤¾ą¤ ą¤øą¤ą„ą¤ą„ą¤Æą¤¾ą¤²ą¤®ą¤¾ ą¤ą„ą¤²ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4434 +msgid "_Copy Link Address" +msgstr "ą¤²ą¤æą¤ą„ą¤ ą¤ ą„ą¤ą¤¾ą¤Øą¤¾ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤¬ą¤Øą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4436 +msgid "_Save Image As..." +msgstr "ą¤Æą¤ø ą¤°ą„ą¤Ŗą¤®ą¤¾ ą¤ą¤µą¤æ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„..." + +#: ../shell/ev-window.c:4438 +msgid "Copy _Image" +msgstr "ą¤ą¤µą¤æ ą¤Ŗą„ą¤°ą¤¤ą¤æą¤²ą¤æą¤Ŗą¤æ ą¤¬ą¤Øą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4477 +msgid "Page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/ev-window.c:4478 +msgid "Select Page" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ ą¤ą¤Æą¤Ø ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4489 +msgid "Zoom" +msgstr "ą¤ą„ą¤®" + +#: ../shell/ev-window.c:4491 +msgid "Adjust the zoom level" +msgstr "ą¤ą„ą¤® ą¤øą„ą¤¤ą¤° ą¤øą¤®ą¤¾ą¤Æą„ą¤ą¤Ø ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4501 +msgid "Navigation" +msgstr "ą¤Øą„ą¤ą¤æą¤ą„ą¤øą¤Ø" + +#: ../shell/ev-window.c:4503 +msgid "Back" +msgstr "ą¤Ŗą¤ą¤¾ą¤”ą¤æ" + +#: ../shell/ev-window.c:4505 +msgid "Move across visited pages" +msgstr "ą¤Ŗą¤¹ą¤æą¤²ą¤¾ ą¤ą„ą¤²ą¤æą¤ą¤ą¤¾ ą¤Ŗą„ą¤·ą„ą¤ ą¤¹ą¤°ą„ą¤®ą¤¾ ą¤ą¤¾ą¤Øą„ą¤¹ą„ą¤øą„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4521 +msgid "Previous" +msgstr "ą¤ ą¤ą¤æą¤²ą„ą¤²ą„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4526 +msgid "Next" +msgstr "ą¤ ą¤°ą„ą¤ą„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4530 +msgid "Zoom In" +msgstr "ą¤ą„ą¤® ą¤ą¤Ø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4534 +msgid "Zoom Out" +msgstr "ą¤ą„ą¤® ą¤ą¤ą¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4542 +msgid "Fit Width" +msgstr "ą¤ą„ą¤”ą¤¾ą¤ ą¤®ą¤æą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤ø" + +#: ../shell/ev-window.c:4732 +msgid "Unable to open external link" +msgstr "ą¤¬ą¤¾ą¤¹ą„ą¤Æ ą¤²ą¤æą¤ą„ą¤ ą¤ą„ą¤²ą„ą¤Ø ą¤ ą¤ą„ą¤·ą¤® ą¤" + +#: ../shell/ev-window.c:4734 +#, c-format +msgid "Invalid URI: ā%sā" +msgstr "ą¤ ą¤µą„ą¤§ ą¤Æą„ą¤ą¤°ą¤ą¤²: ā%sā" + +#: ../shell/ev-window.c:4902 +msgid "The image could not be saved." +msgstr "ą¤ą¤µą¤æą¤²ą¤¾ą¤ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą„ą¤Ø ą„¤" + +#: ../shell/ev-window.c:4937 +msgid "Save Image" +msgstr "ą¤ą¤µą¤æ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window.c:4993 +msgid "Unable to open attachment" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ ą¤ą„ą¤²ą„ą¤Ø ą¤ ą¤ą„ą¤·ą¤® ą¤" + +#: ../shell/ev-window.c:5046 +msgid "The attachment could not be saved." +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ą¤²ą¤¾ą¤ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Ø ą¤øą¤ą¤æą¤ą¤Ø ą„¤" + +#: ../shell/ev-window.c:5098 +msgid "Save Attachment" +msgstr "ą¤øą¤ą¤²ą¤ą„ą¤Øą¤¤ą¤¾ ą¤¬ą¤ą¤¤ ą¤ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/ev-window-title.c:139 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¤Ŗą¤¾ą¤øą¤µą¤°ą„ą¤” ą¤ą¤µą¤¶ą„ą¤Æą¤ą„ą¤¤ą¤¾" + +#: ../shell/main.c:59 +msgid "The page of the document to display." +msgstr "ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤ą„ ą¤Ŗą„ą¤·ą„ą¤ ą¤Ŗą„ą¤°ą¤°ą„ą¤¦ą¤¶ą¤Ø ą¤ą¤°ą„ą¤Ø" + +#: ../shell/main.c:59 +msgid "PAGE" +msgstr "ą¤Ŗą„ą¤·ą„ą¤ " + +#: ../shell/main.c:60 +msgid "Run evince in fullscreen mode" +msgstr "ą¤Ŗą„ą¤°ą¤¾ ą¤Ŗą¤°ą„ą¤¦ą¤¾ ą¤®ą„ą¤”ą¤®ą¤¾ ą¤ą¤ą¤¾ą¤Øą„ą¤ø ą¤ą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/main.c:61 +msgid "Run evince in presentation mode" +msgstr "ą¤Ŗą„ą¤°ą¤øą„ą¤¤ą„ą¤¤ą¤æ ą¤®ą„ą¤”ą¤®ą¤¾ ą¤ą¤ą¤¾ą¤Øą„ą¤ø ą¤ą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/main.c:62 +msgid "Run evince as a previewer" +msgstr "ą¤ą¤ą¤ą¤¾ ą¤Ŗą„ą¤°ą„ą¤µą¤¦ą¤°ą„ą¤¶ą¤ą¤ą„ ą¤°ą„ą¤Ŗą¤®ą¤¾ ą¤ą¤ą¤¾ą¤Øą„ą¤ø ą¤ą¤²ą¤¾ą¤ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../shell/main.c:314 +msgid "MATE Document Viewer" +msgstr "ą¤ą¤æą¤Øą„ą¤® ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą¤°ą„ą¤¶ą¤" + +#: ../shell/main.c:374 +msgid "Evince Document Viewer" +msgstr "ą¤ą¤ą¤¾ą¤ą¤Øą„ą¤ø ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤¦ą„ą¤¶ą„ą¤Æą¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą¤¬ą„ą¤²ą¤æą¤Æą¤Ø ą¤µą¤æą¤ą¤²ą„ą¤Ŗą¤¹ą¤°ą„ ą¤ą¤Ŗą¤²ą¤¬ą„ą¤§ ą¤, ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą¤ą„ ą¤øą¤¤ą„ą¤Æ ą¤øą¤ą„ą¤·ą¤®ą¤¹ą¤°ą„ ą¤° ą¤ą¤²ą¤¤ ą¤ ą¤ą„ą¤·ą¤®ą¤¹ą¤°ą„ą¤²ą„ ą¤Øą¤Æą¤¾ą¤ ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą¤¹ą¤°ą„ą¤ą„ ą¤øą¤æą¤°ą„ą¤ą¤Øą¤¾ " +"ą¤ą¤°ą„ą¤¦ą¤ " + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ą¤Ŗą¤æ ą¤”ą¤æ ą¤ą¤« ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„ą¤ą„ ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤² ą¤ą¤°ą„ą¤Øą„ ą¤øą¤ą„ą¤·ą¤® ą¤Ŗą¤¾ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ą¤Ŗą¤æ ą¤”ą¤æ ą¤ą¤« ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ą¤¹ą¤°ą„ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą„ą¤ø ą¤ą¤¦ą„ą¤¶" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¤ą¤¾ą¤ą¤ą¤¾ą¤¤ ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą¤°ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤µą„ą¤§ ą¤ą¤¦ą„ą¤¶ ą¤° ą¤¤ą¤°ą„ą¤ą¤¹ą¤°ą„ ą„¤ ą¤§ą„ą¤°ą„ ą¤ą¤¾ą¤Øą¤ą¤¾ą¤°ą„ą¤ą¤¾ ą¤²ą¤¾ą¤ą¤æ ą¤Øą¤ą¤æą¤²ą¤ø ą¤„ą¤®ą„ą¤¬ą¤Øą„ą¤²ą¤° " +"ą¤®ą¤æą¤øą¤æą¤²ą„ą¤ą¤°ą¤£ ą¤¹ą¤°ą„ą¤Øą„ą¤¹ą„ą¤øą„ ą„¤" + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 00000000..abc6f7c2 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,1801 @@ +# Dutch translation for Evince +# +# This file is distributed under the same license as the Evince package. +# +# Tino Meinen <a.t.meinen@chello.nl>, 2005, 2006 +# Reinout van Schouwen <reinout@cs.vu.nl>, 2005, 2009 +# Wouter Bolsterlee <wbolster@gnome.org>, 2006ā2010 +# +# Sommigen vinden 'viewer' niet mooi en willen +# daar 'weergave' van maken: Documentweergave of +# Documentenweergave. Persoonlijk geef ik voorlopig +# de voorkeur aan 'viewer': kort en duidelijk. +# (eventueel zou kunnen: Documenten inzien) +# +msgid "" +msgstr "" +"Project-Id-Version: Evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-19 18:14+0200\n" +"PO-Revision-Date: 2010-09-19 18:14+0200\n" +"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n" +"Language-Team: Dutch <vertaling@vrijschrift.org>\n" +"Language: nl\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Er is een fout opgetreden bij het uitvoeren van opdracht Ź»%sŹ¼ teneinde het " +"stripboek %s uit te pakken" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "De opdracht Ź»%sŹ¼ is mislukt bij het uitpakken van het stripboek." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "De opdracht Ź»%sŹ¼ is abnormaal afgesloten." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Geen stripboek-MIME-type: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Kan geen passende opdracht vinden om dit type stripboek uit te pakken" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Onbekend MIME-type" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Bestand is beschadigd" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Geen bestanden in archief" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Geen afbeeldingen gevonden in archief %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Er is een fout opgetreden bij het verwijderen van Ź»%sŹ¼." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Fout %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Stripboeken" + +# ongeldig/onjuist/foutief +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-document heeft onjuist formaat" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dit document bestaat uit meerdere bestanden. Een van deze bestanden kan niet " +"benaderd worden." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-documenten" + +# ongeldig/onjuist/foutief +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-document heeft onjuist formaat" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-documenten" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Dit werk is in het publieke domein" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nee" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Onbekend soort lettertype" + +# geen/naamloos/zonder naam/geen naam +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Naamloos" + +# deel/onderdeel +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Ingebed deel" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ingebed" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Niet ingebed" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-documenten" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ongeldig document" + +# Vrije vertaling (Wouter Bolsterlee) +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-presentatie" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Geen fout" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Onvoldoende geheugen" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Kan ZIP-signatuur niet vinden" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ongeldig ZIP-bestand" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIP-bestanden met meerdere bestanden worden niet ondersteund" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Kan het bestand niet openen" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Kan gegevens van bestand niet lezen" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Kan bestand in zipbestand niet vinden" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Onbekende fout" + +# niet in staat/kon +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Open van document ā%sā mislukt" + +# niet in staat/kon +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Opslaan van document ā%sā mislukt" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-documenten" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "De bijlage ā%sā kon niet opgeslagen worden: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "De bijlage ā%sā kon niet geopend worden: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "De bijlage ā%sā kon niet geopend worden" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Bestandstype %s (%s) wordt niet ondersteund" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle documenten" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle bestanden" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Aanmaken van een tijdelijk bestand mislukt: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Aanmaken van een tijdelijke map mislukt: %s." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Bestand is geen geldig desktop-bestand" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Onbekende versie ā%sā van desktop-bestand" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s starten" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "De toepassing accepteert geen documenten op de opdrachtregel" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Onbekende opstartoptie: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan geen document-URI's naar een desktopbestand met āType=Linkā sturen" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Geen uitvoerbaar item" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Verbinding met sessiebeheer uitschakelen" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Bestand met opgeslagen instellingen opgeven" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "BESTAND" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Sessiebeheer-ID opgeven" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opties voor sessiebeheer:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Opties voor sessiebeheer tonen" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā%sā tonen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "Ver_plaatsen op werkbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Geselecteerd item op de werkbalk verplaatsen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "Ver_wijderen van werkbalk" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Geselecteerd item van de werkbalk verwijderen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Werkbalk _verwijderen" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "De geselecteerde werkbalk verwijderen" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Scheidingsteken" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Passend" + +# korte label (is net zo duidelijk om 'passend' weg te laten) +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Paginabreed" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +# Misschien Evince documentenviewer +# viewer is ook nederlands +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Documentenviewer" + +# Dit is de tooltip die in het hoofdmenu bij het programma Evince verschijnt +# multipagina-documenten. Vrij vertaald (Wouter Bolsterlee). +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Documenten weergeven" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Documentrestricties negeren" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Documentrestricties, zoals een beperking op kopiĆ«ren of afdrukken, negeren." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Tijdelijk bestand wissen" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Het instellingenbestand afdrukken" + +# Misschien Evince documentenviewer +# viewer is ook nederlands +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE documentenpreviewer" + +# niet in staat/kon +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "Afdrukken van het document is mislukt" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Kan de geselecteerde printer Ź»%sŹ¼ niet vinden." + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "Vo_rige pagina" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Ga naar de vorige pagina" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "V_olgende pagina" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Ga naar de volgende pagina" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Het document vergroten" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Het document verkleinen" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Afdrukken" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Dit document afdrukken" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "_Passend" + +# de pagina laten passen in het venster +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Het huidige document passend weergeven in het venster" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "Pagina_breed passend" + +# de breedte van de pagina laten passen in het venster +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Het huidige document passend maken op de breedte van het venster" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Pagina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "Pagina selecteren" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Locatie:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Onderwerp:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Auteur:" + +# Sleutelwoorden/trefwoorden +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Trefwoorden:" + +# hier wordt het programma weergegeven waarmee het document +# is gemaakt: dus bijv: +# Programma: Acrobat distiller 6.0.1. for Macintosh +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Programma:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Maker:" + +# er komt te staan: Aangemaakt op: [datum] +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Aangemaakt op:" + +# gewijzigd/aangepast +# Er komt te staan: Laatste wijziging: [datum] +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Laatste wijziging:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Aantal pagina's:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Geoptimaliseerd:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formaat:" + +# er komt te staan: beveiliging: ja/nee +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Beveiliging:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Papierformaat" + +# Niets/geen +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Geen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, staand (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, liggend (%s)" + +# misschien beter: uit (ipv van): pagina 1 uit 5 +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d uit %d)" + +# misschien beter: uit (ipv van): pagina 1 uit 5 +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "uit %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Ladenā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Afdrukken voorbereidenā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Afrondenā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Pagina %d van %d afdrukkenā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Afdrukken is niet mogelijk met deze printer." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Ongeldige paginaselectie" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Waarschuwing" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Het geselecteerde afdrukbereik bevat geen enkele pagina" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Schalen van pagina's:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Verkleinen tot afdrukbaar gebied" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Schalen naar afdrukbaar gebied" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Documentpagina's schalen zodat deze op de printerpagina's passen. Kies een " +"van de volgende opties:\n" +"\n" +"ā¢ āGeenā: pagina's worden niet geschaald.\n" +"\n" +"ā¢ āVerkleinen tot afdrukbaar gebiedā: Documentpagina's groter dan het " +"afdrukbare gebied worden verkleind zodat deze op een printerpagina passen.\n" +"\n" +"ā¢ āSchalen naar afdrukbaar gebiedā: Documentpagina's worden vergroot of " +"verkleind zodat deze op het afdrukbare gebied op een printerpagina passen.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Automatisch roteren en centreren" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"PaginaoriĆ«ntatie van printer zo roteren dat deze overeenkomt met de " +"paginaoriĆ«ntatie van documentpagina's. Documentpagina's zullen gecentreerd " +"worden op de printerpagina." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Paginagrootte kiezen aan de hand van de documentpaginagrootte" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Indien ingeschakeld zal iedere pagina afgedrukt worden op dezelfde " +"paginagrootte als de documentpagina's." + +# betere vertaling? +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Pagina-afhandeling" + +# niet in staat/kon +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Afdrukken van pagina %d is mislukt: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Omhoog schuiven" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Omlaag schuiven" + +# Wat wordt hier precies bedoeld? +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Beeld omhoog schuiven" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Beeld omlaag schuiven" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Documentbeeld" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Ga naar pagina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Einde van presentatie. Klik om af te sluiten." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ga naar de eerste pagina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ga naar de vorige pagina" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ga naar de volgende pagina" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ga naar de laatste pagina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ga naar pagina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Zoeken" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ga naar pagina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ga naar %s in bestand ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ga naar bestand ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s opstarten" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Zoeken:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "Vo_rige zoeken" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Zoeken naar vorige positie waar de zoekreeks voorkomt" + +# volgende zoeken/volgende +# Ik heb het hier kort gehouden, en het is ws net zo duidelijk +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "V_olgende zoeken" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Zoeken naar volgende positie waar de zoekreeks voorkomt" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Hoofdlettergevoelig" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Hoofdlettergevoelige zoekopdracht" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Pictogram:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Notitie" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Opmerking" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Sleutel" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Hulp" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nieuwe alinea" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Alinea" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Toevoeging" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kruis" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Circle" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Onbekend" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Annotatie-eigenschappen" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Kleur:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Style:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparant" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Ondoorzichtig" + +# Vrij vertaald (Wouter Bolsterlee) +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "InitiĆ«le weergave:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Openen" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Sluiten" + +# Dit is de reden die opgegeven wordt voor het tijdelijk uitschakelen van de +# schermbeveiliging (Wouter Bolsterlee) +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Diapresentatie bezig" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Wachtwoord voor document %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Conversie van %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d van %d documenten geconverteerd" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Metadata converteren" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Het metadataformaat van Evince is veranderd, zodat de oude instellingen " +"gemigreerd dienen te worden. Als de migratie onderbroken wordt zal de " +"metadata-opslag niet meer werken." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Een recentelijk geopend document heropenen" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Het document is beveiligd en kan alleen gelezen worden door het juiste " +"wachtwoord te geven." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Document vrijgeven" + +# invoeren hier met opzet weggelaten +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Voer wachtwoord in" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Wachtwoord vereist" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Het document ā%sā is beveiligd en vereist een wachtwoord voordat het geopend " +"kan worden." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Wachtwoord:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Wachtwoord direct _vergeten" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Wachtwoord onthouden tot _afmelden" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Voor _altijd onthouden" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Eigenschappen" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Algemeen" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Lettertypes" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Documentlicentie" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Lettertype" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Lettertype-informatie verzamelenā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Gebruiksvoorwaarden" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Licentie-tekst" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Meer informatie" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lijst" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Annotaties" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Tekstannotatie toevoegen" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Toevoegen" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dit document bevat geen annotaties" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Pagina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Bijlagen" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lagen" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Afdrukkenā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturen" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Page %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Het document heeft geen bladzijden" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Het document bevat slechts lege pagina's" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Kon het document niet openen" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Document van Ź»%sŹ¼ laden" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Document downloaden (%d%%)" + +# niet in staat/kon +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Kon document op afstand niet laden." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Document van %s herladen" + +# niet in staat/kon +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Kon document niet herladen" + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Document openen" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Document opslaan naar %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Bijlage opslaan naar %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Afbeelding opslaan naar %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Het bestand kon niet worden opgeslagen als ā%sā." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Document uploaden (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Bijlage uploaden (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Afbeelding uploaden (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Een kopie opslaan" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "EĆ©n taak in de wachtrij" +msgstr[1] "%d taken in de wachtrij" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Afdrukken van taak ā%sā" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Het document bevat ingevulde formuliervelden. Als het document niet wordt " +"opgeslagen, zullen deze wijzigingen verloren gaan." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Het document bevat nieuwe of aangepaste annotaties. Als het document niet " +"wordt opgeslagen, zullen deze wijzigingen verloren gaan." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Kopie van document ā%sā opslaan alvorens af te sluiten?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Sluiten _zonder opslaan" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Een _kopie opslaan" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Wachten tot afdruktaak ā%sā voltooid alvorens af te sluiten?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Er zijn %d afdruktaken actief. Wachten tot deze voltooird zijn alvorens af " +"te sluiten?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Als het venster gesloten wordt, zullen afdruktaken in de wachtrij niet meer " +"uitgevoerd worden." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "Afdrukken annuleren en sl_uiten" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "Sluiten na _afdrukken" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Werkbalk-editor" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "Er is een fout opgetreden bij het tonen van de hulp." + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Documentenviewer\n" +"Maakt gebruik van %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince is vrije software; u mag het opnieuw distribueren en/of wijzigen\n" +"onder de voorwaarden van de GNU General Public License zoals gepubliceerd\n" +"door de Free Software Foundation; ofwel versie 2 van deze licentie of\n" +"(zo u wilt) een latere versie.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince wordt gedistibueerd in de hoop dat het nuttig zal zijn,\n" +"maar ZONDER ENIGE GARANTIE; zonder zelfs de geĆÆmpliceerde garantie\n" +"van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de\n" +"GNU General Public License voor meer details.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"U moet een kopie van de GNU General Public License hebben gekregen\n" +"samen met Evince; zoniet, schrijf dan naar de Free Software Foundation,\n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +# makers/auteurs +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 De auteurs van Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"Tino Meinen\n" +"Wouter Bolsterlee\n" +"Reinout van Schouwen\n" +"Kijk voor meer informatie op http://nl.mate.org/" + +# overeenkomsten/gevonden/maal/keer gevonden +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d keer op deze pagina gevonden" +msgstr[1] "%d keer op deze pagina gevonden" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Niet gevonden" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Nog %3d%% te doorzoeken" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Bestand" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "Be_werken" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "Beel_d" + +# in overeenstemming met Caja: Ga naar +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "_Ga naar" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "_Hulp" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Openenā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Een bestaand document openen" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "Een _kopie openen" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Een kopie van het huidige document openen in een nieuw venster" + +# Mnemonic gelijk aan "Opslaan _als" (Wouter Bolsterlee) +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "Een kopie opsl_aanā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Sla een kopie van het huidige document op" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "Af_drukkenā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "_Eigenschappen" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "_Alles selecteren" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_Zoekenā¦" + +# zinsdeel/zin/frase +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Een woord of een zin in het document zoeken" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "_Werkbalk" + +# Linksom/naar links +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "_Linksom draaien" + +# rechtsom/naar rechts +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "_Rechtsom draaien" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Huidige instellingen als _standaard opslaan" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "He_rladen" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Het document herladen" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "Automatisch _schuiven" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "_Eerste pagina" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Ga naar de eerste pagina" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_Laatste pagina" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Ga naar de laatste pagina" + +# Sneltoets op 'h' gezet +# beter zichtbaar de de 'i' en komt overeen met emacs +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "In_houd" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "I_nfo" + +# schermvullend +# kde gebruikt Volledig scherm +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "Volledig scherm verlaten" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Schermvullende modus verlaten" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "Presentatie" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "Document als een diapresentatie tonen" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "_Werkbalk" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "De werkbalk tonen of verbergen" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "_Zijpaneel" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "Het zijpaneel tonen of verbergen" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_Doorlopend" + +# hele/gehele/complete document +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "Het gehele document tonen" + +# Duaal is zo'n raar woord +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_Twee" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "Twee pagina's tegelijk tonen" + +# schermvullend +# kde gebruikt: vollgedig scherm +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "_Volledig scherm" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Het venster schermvullend maken" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "Pre_sentatie" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "Document als een diapresentatie tonen" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "_Omgekeerde kleuren" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "Pagina's tonen met omgekeerde kleuren" + +# link/verwijzing +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "Verwijzing _openen" + +# in overeenstemming met Caja: Ga naar +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_Ga naar" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "In _nieuw venster openen" + +# verwijzing/verwijzingsadres/link-adres +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "Verwijzingsadres _kopiĆ«ren" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "Afbeelding op_slaan alsā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "_Afbeelding kopiĆ«ren" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "Annotatie-eigenschappenā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "Bijlage _openen" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "Bijlage op_slaan alsā¦" + +# Zoomen +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Het zoomniveau aanpassen" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Navigatie" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Terug" + +# Vrij vertaald (Wouter Bolsterlee) +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Navigeren naar bezochte pagina's" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "Vorige" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Volgende" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Inzoomen" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Uitzoomen" + +# knoptekst? +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Breedte" + +# niet in staat/kon +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "De externe verwijzing kon niet geopend worden" + +# niet in staat/kon +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "De externe verwijzing kon niet geopend worden" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Kon geen geschikt formaat voor opslaan van afbeelding vinden" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "De afbeelding kon niet worden opgeslagen." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Afbeelding opslaan" + +# niet in staat/kon +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "De bijlage kon niet geopend worden" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "De bijlage kon niet worden opgeslagen." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Bijlage opslaan" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Wachtwoord vereist" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Op toevoeging" + +# Misschien Evince documentenviewer +# viewer is ook nederlands +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE documentenviewer" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Het paginalabel van het weer te geven document." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Het paginanummer van het weer te geven document." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Starten met volledig scherm" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Starten als diapresentatie" + +# Vrij vertaald (Wouter Bolsterlee) +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Starten in voorbeeldmodus" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Woord of zinsnede waarnaar gezocht moet worden" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[BESTANDā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Geeft aan of miniaturen gemaakt worden. Indien uitgeschakeld worden geen " +"nieuwe miniaturen gemaakt." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Miniaturen aanzetten voor PDF-documenten" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Opdracht voor miniaturen bij PDF-documenten" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Opdracht en bijbehorende argumenten voor het maken van miniaturen van PDF-" +"documenten. Meer informatie is beschikbaar in de documentatie voor āCaja " +"thumbnailerā." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Afdrukin_stellingenā¦" + +# Vrij vertaald (Wouter Bolsterlee) +#~ msgid "Set up the page settings for printing" +#~ msgstr "De afdrukinstellingen wijzigen" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 00000000..b61fffdc --- /dev/null +++ b/po/nn.po @@ -0,0 +1,1920 @@ +# translation of nn.po to Norwegian Nynorsk +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Ć smund SkjƦveland <aasmunds@ulrik.uio.no>, 2006-2008. +# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: nn\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug." +"cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-07-20 15:08+0000\n" +"PO-Revision-Date: 2010-07-27 14:48+0200\n" +"Last-Translator: Torstein Adolf Winterseth <kvikende@fsfe.org>\n" +"Language-Team: Engelsk (Storbritannia) <kde-i18n-doc@kde.org>\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-Generator: Lokalize 1.0\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Feil under oppstart av kommando Ā«%sĀ» for Ć„ dekomprimera teikneeserien: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Kommando Ā«%sĀ» feila ved dekomprimering av teikneserien." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Kommandoen Ā«%sĀ» avslutta ikkje pĆ„ normal mĆ„te." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ikkje ein MIME-type for ein teikneserie: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Kan ikkje finna ein passande kommando for Ć„ dekomprimera denne typen " +"teikneserie" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Ukjend MIME-type" + +#: ../backend/comics/comics-document.c:492 +#| msgid "File corrupted." +msgid "File corrupted" +msgstr "Fila er Ćøydelagd." + +#: ../backend/comics/comics-document.c:505 +#| msgid "No images found in archive %s" +msgid "No files in archive" +msgstr "Ingen filer i arkivet" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Fann ingen bilete i arkivet %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Det oppstod ein feil nĆ„r Ā«%sĀ» skulle slettast." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Feil %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Teikneseriar" + +#: ../backend/djvu/djvu-document.c:173 +#| msgid "DVI document has incorrect format" +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokumentet har feil format" + +#: ../backend/djvu/djvu-document.c:250 +#| msgid "" +#| "The document is composed by several files. One or more of such files " +#| "cannot be accessed." +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokumentet er sete saman av fleire filer, og Ć©i eller fleire av dei er ikkje " +"mogleg Ć„ fĆ„ tak pĆ„." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#| msgid "Djvu Documents" +msgid "DjVu Documents" +msgstr "DjVu-dokument" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-dokumentet har feil format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokument" + +#: ../backend/pdf/ev-poppler.cc:521 +msgid "This work is in the Public Domain" +msgstr "Dette verket er i offentleg domene" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:774 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:777 +msgid "No" +msgstr "Nei" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:919 +msgid "Unknown font type" +msgstr "Ukjend type skrift" + +#: ../backend/pdf/ev-poppler.cc:945 +msgid "No name" +msgstr "Utan namn" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded subset" +msgstr "Innebygd utval" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Embedded" +msgstr "Innebygd" + +#: ../backend/pdf/ev-poppler.cc:957 +msgid "Not embedded" +msgstr "Ikkje innebygd" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokument" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ugyldig dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-lysark" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Ingen feil" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ikkje nok minne" + +#: ../backend/impress/zip.c:59 +#| msgid "Cannot find zip signature" +msgid "Cannot find ZIP signature" +msgstr "Klarte ikkje Ć„ finna ZIP-signatur" + +#: ../backend/impress/zip.c:62 +#| msgid "Invalid zip file" +msgid "Invalid ZIP file" +msgstr "Ugyldig ZIP-fil" + +#: ../backend/impress/zip.c:65 +#| msgid "Multi file zips are not supported" +msgid "Multi file ZIPs are not supported" +msgstr "ZIP-arkiv som gĆ„r over fleire filer er ikkje stĆøtta" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Klarte ikkje Ć„ opna fila" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Klarte ikkje Ć„ lesa data frĆ„ fila" + +#: ../backend/impress/zip.c:74 +#| msgid "Cannot find file in the zip archive" +msgid "Cannot find file in the ZIP archive" +msgstr "Klarte ikkje Ć„ finna fila i ZIP-arkivet" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Ukjend feil" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Klarte ikkje Ć„ lasta dokumentet Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Klarte ikkje Ć„ lagra dokumentet Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript-dokument" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Klarte ikkje Ć„ lagra vedlegget Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Klarte ikkje Ć„ opna vedlegget Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Klarte ikkje Ć„ opna vedlegget Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +#| msgid "Multi file zips are not supported" +msgid "File type %s (%s) is not supported" +msgstr "Filtype %s (%s) er ikkje stĆøtta" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alle dokument" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alle filer" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +#| msgid "Failed to create file ā%sā: %s" +msgid "Failed to create a temporary file: %s" +msgstr "Klarte ikkje Ć„ laga ei mellombels fil: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +#| msgid "Failed to create file ā%sā: %s" +msgid "Failed to create a temporary directory: %s" +msgstr "Klarte ikkje Ć„ laga ei mellombels mappe: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fila er ikkje ei gyldig .desktop-fil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Kjenner ikkje igjen versjonen til .desktop-fila Ā«%sĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Startar %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet godtek ikkje dokument frĆ„ kommandolinja" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Kjenner ikkje igjen oppstartsvalet %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Kan ikkje senda dokument-URI-ar til ei skrivebordsoppfĆøring med Ā«Type=LinkĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Ikkje ei kĆøyrbar oppfĆøring." + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "SlĆ„ av tilkoplinga til Ćøkthandsamaren" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Oppgje fil som inneheld lagra oppsett" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +#| msgid "[FILE...]" +msgid "FILE" +msgstr "FIL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Oppgje Ćøkthandsamings-ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Val til Ćøktstyring:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Vis val for Ćøktstyring" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Vis Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Flytt pĆ„ verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Flytt det valte elementet pĆ„ verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Fjern frĆ„ verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Fjern det valte elementet frĆ„ verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Fjern verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Fjern den valde verktĆøylinja" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Skiljefelt" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5517 +msgid "Best Fit" +msgstr "Beste tilpassing" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Tilpass sidebreidda" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "800 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "1600 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "3200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "3400 %" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4304 +#: ../shell/ev-window-title.c:149 ../shell/main.c:313 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentframsynar" + +#: ../data/evince.desktop.in.in.h:2 +#| msgid "View multipage documents" +msgid "View multi-page documents" +msgstr "Vis dokument med mange sider" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Overstyr dokumentavgrensingar" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Overstyr dokumentavgrensingar, slik som avgrensingar pĆ„ utskrift og " +"kopiering." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "Slett mellombels fil" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "Skriv ut fil med innstillingar" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +#| msgid "MATE Document Viewer" +msgid "MATE Document Previewer" +msgstr "MATE dokumentframsynar" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3065 +msgid "Failed to print document" +msgstr "Klarte ikkje Ć„ skriva ut dokumentet" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Den valde skrivaren Ā«%sĀ» vart ikkje funnen" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5232 +msgid "_Previous Page" +msgstr "_FĆørre side" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5233 +msgid "Go to the previous page" +msgstr "GĆ„ til fĆørre side" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5235 +msgid "_Next Page" +msgstr "_Neste side" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5236 +msgid "Go to the next page" +msgstr "GĆ„ til neste side" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5219 +msgid "Enlarge the document" +msgstr "ForstĆørr dokumentet" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5222 +msgid "Shrink the document" +msgstr "Forminsk dokumentet" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Skriv ut" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5190 +msgid "Print this document" +msgstr "Skriv ut dette dokumentet" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5334 +msgid "_Best Fit" +msgstr "_Beste tilpassing" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5335 +msgid "Make the current document fill the window" +msgstr "Fyll vindauget med dokumentet" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5337 +msgid "Fit Page _Width" +msgstr "Tilpass side_breidda" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5338 +msgid "Make the current document fill the window width" +msgstr "Fyll vindaugebreidda med dokumentet" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5439 +msgid "Page" +msgstr "Side" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5440 +msgid "Select Page" +msgstr "Vel side" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +#| msgid "<b>Title:</b>" +msgid "Title:" +msgstr "Tittel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Stad:" + +#: ../properties/ev-properties-view.c:62 +#| msgid "<b>Subject:</b>" +msgid "Subject:" +msgstr "Emne:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +#| msgid "<b>Author:</b>" +msgid "Author:" +msgstr "Forfattar:" + +#: ../properties/ev-properties-view.c:64 +#| msgid "<b>Keywords:</b>" +msgid "Keywords:" +msgstr "NĆøkkelord:" + +#: ../properties/ev-properties-view.c:65 +#| msgid "<b>Producer:</b>" +msgid "Producer:" +msgstr "Produsert av:" + +#: ../properties/ev-properties-view.c:66 +#| msgid "<b>Creator:</b>" +msgid "Creator:" +msgstr "Oppretta av:" + +#: ../properties/ev-properties-view.c:67 +#| msgid "<b>Created:</b>" +msgid "Created:" +msgstr "Oppretta:" + +#: ../properties/ev-properties-view.c:68 +#| msgid "<b>Modified:</b>" +msgid "Modified:" +msgstr "Endra:" + +#: ../properties/ev-properties-view.c:69 +#| msgid "<b>Number of Pages:</b>" +msgid "Number of Pages:" +msgstr "Tal pĆ„ sider:" + +#: ../properties/ev-properties-view.c:70 +#| msgid "<b>Optimized:</b>" +msgid "Optimized:" +msgstr "Optimert:" + +#: ../properties/ev-properties-view.c:71 +#| msgid "<b>Format:</b>" +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +#| msgid "<b>Security:</b>" +msgid "Security:" +msgstr "Tryggleik:" + +#: ../properties/ev-properties-view.c:73 +#| msgid "<b>Paper Size:</b>" +msgid "Paper Size:" +msgstr "Papirstorleik:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Ingen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +#| msgid "%.0f x %.0f mm" +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +#| msgid "%.2f x %.2f inch" +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f tomme" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, stĆ„ande (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, liggjande (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d av %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "av %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +#| msgid "Loading..." +msgid "Loadingā¦" +msgstr "Lastar ā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "FĆørebur utskrift ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "FullfĆører ā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Skriv ut side %d av %d ā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Utskrift er ikkje stĆøtta pĆ„ denne skrivaren." + +#: ../libview/ev-print-operation.c:1226 +#| msgid "Invalid zip file" +msgid "Invalid page selection" +msgstr "Ugyldig sideutval" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Ć tvaring" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "OmrĆ„det valt for utskrift inneheld ingen sider" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Skalering av side:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Krymp til utskriftsomrĆ„de" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Tilpass utskriftsomrĆ„de" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Skaler sidene til dokumentet til Ć„ passa til sidestorleiken til skrivaren. " +"Vel Ć©in av fĆølgjande:\n" +"\n" +"ā¢ Ā«NoneĀ»: Ingen skalering av sidene vert utfĆørd.\n" +"\n" +"ā¢ Ā«Shrink to Printable AreaĀ»: Dokumentsider som er stĆørre enn " +"utskriftsomrĆ„det vert forminska til Ć„ passa til utskriftsomrĆ„de.\n" +"\n" +"ā¢ Ā«Fit to Printable AreaĀ»: Sidene til dokumentet vert forstĆørra eller " +"forminska til " +"Ć„ passa utskriftsomrĆ„det til skrivaren etter behov.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Roter og sentrer automatisk" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Roter sideorienteringa til skrivaren for kvar side til Ć„ passa orientering i " +"dokumentet. Sidene til dokumentet vil sentrerast innenfor utskriftsomrĆ„det." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Vel sidestorleik ved bruk av sidestorleiken til dokumentet" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Kvar side vil verta skrivne ut pĆ„ same papirstorleik som sidestorleiken til " +"dokumentet om dette vert slĆ„tt pĆ„." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Sidehandtering" + +#: ../libview/ev-jobs.c:1529 +#, c-format +#| msgid "Failed to print document" +msgid "Failed to print page %d: %s" +msgstr "Klarte ikkje Ć„ skriva ut side %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rull opp" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rull ned" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rull synsfeltet opp" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rull synsfeltet ned" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentframsyning" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "GĆ„ til side:" + +#: ../libview/ev-view-presentation.c:968 +#| msgid "End of presentation. Press Escape to exit." +msgid "End of presentation. Click to exit." +msgstr "Slutten av presentasjonen. Trykk for Ć„ avslutta." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "GĆ„ til fĆørste side" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "GĆ„ til fĆørre side" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "GĆ„ til neste side" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "GĆ„ til siste side" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "GĆ„ til side" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Finn" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "GĆ„ til side %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "GĆ„ til %s i fila Ā«%sĀ»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "GĆ„ til fil Ā«%sĀ»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Start %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Finn:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5207 +msgid "Find Pre_vious" +msgstr "Finn f_Ćørre" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Finn fĆørre oppfĆøring av sĆøkjestrengen" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5205 +msgid "Find Ne_xt" +msgstr "Finn ne_ste" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Finn neste oppĆøring av sĆøkjestrengen" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "S_kil mellom store og smĆ„ bokstavar" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Skil eller ikkje skil pĆ„ smĆ„ og store bokstavar" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "Merknad" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "Kommentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "NĆøkkel" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "Hjelp" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nytt avsnitt" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Avsnitt" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Set inn" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kross" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Sirkel" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "Ukjend" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "Kommentareigenskapar" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Farge:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Gjennomsiktig" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Ugjennomsiktig" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Innleiande vindaugtilstand:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Open..." +msgid "Open" +msgstr "Opna" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Lukk" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "KĆøyr i presentasjonsmodus" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Passord for dokumentet %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konverterer %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d av %d dokument konverterte" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konverterer metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Metadataformatet som vert brukt av Evince har endrs seg og mĆ„ difor " +"migrerast. " +"Om migreringa vert avbroten vil ikkje metadatalageret fungera." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Opna eit nyleg brukt dokument" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Dokumentet er lĆ„st og kan berre lesast ved Ć„ skriva rett passord." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "L_Ć„s opp dokumentet" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Skriv passord" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Treng passord" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumentet Ā«%sĀ» er lĆ„st og treng eit passord for Ć„ opnast." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Passord:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "GlĆøym passordet _med ein gong" + +#: ../shell/ev-password-view.c:380 +#| msgid "Remember password for this session" +msgid "Remember password until you _log out" +msgstr "Hugs passordet til du _loggar ut" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Hugs _for alltid" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Eigenskapar" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Allmennt" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Skrifter" + +#: ../shell/ev-properties-dialog.c:118 +#| msgid "Document Viewer" +msgid "Document License" +msgstr "Dokumentlisens" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Skrift" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +#| msgid "Gathering font information... %3d%%" +msgid "Gathering font informationā¦ %3d%%" +msgstr "Samlar informasjon om skrifer ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "VilkĆ„r for bruk" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Tekstlisens" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Vidare informasjon" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Liste" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Kommentarar" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Legg til tekstkommentar" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Legg til" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "Run document as a presentation" +msgid "Document contains no annotations" +msgstr "Dokumentet inneheld ingen kommentarar" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "Side %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Vedlegg" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lag" + +#: ../shell/ev-sidebar-links.c:335 +#| msgid "Print" +msgid "Printā¦" +msgstr "Skriv ut ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Register" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniatyrar" + +#: ../shell/ev-window.c:855 +#, c-format +#| msgid "Page %s - %s" +msgid "Page %s ā %s" +msgstr "Side %s ā %s" + +#: ../shell/ev-window.c:857 +#, c-format +msgid "Page %s" +msgstr "Side %s" + +#: ../shell/ev-window.c:1322 +msgid "The document contains no pages" +msgstr "Dokumentet inneheld ingen sider" + +#: ../shell/ev-window.c:1325 +msgid "The document contains only empty pages" +msgstr "Dokumentet inneheld kun tomme sider" + +#: ../shell/ev-window.c:1525 ../shell/ev-window.c:1691 +msgid "Unable to open document" +msgstr "Klarte ikkje Ć„ opna dokumentet" + +#: ../shell/ev-window.c:1662 +#, c-format +#| msgid "Failed to load document ā%sā" +msgid "Loading document from ā%sā" +msgstr "Lastar dokument frĆ„ Ā«%sĀ»" + +#: ../shell/ev-window.c:1804 ../shell/ev-window.c:2082 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Lastar ned dokument (%d%%)" + +#: ../shell/ev-window.c:1837 +#| msgid "Failed to create file ā%sā: %s" +msgid "Failed to load remote file." +msgstr "Klarte ikkje Ć„ lasta ekstern fil." + +#: ../shell/ev-window.c:2026 +#, c-format +#| msgid "Reload the document" +msgid "Reloading document from %s" +msgstr "Les dokument frĆ„ %s pĆ„ nytt" + +#: ../shell/ev-window.c:2058 +#| msgid "Failed to print document" +msgid "Failed to reload document." +msgstr "Klarte ikkje Ć„ lesa dokumentet pĆ„ nytt." + +#: ../shell/ev-window.c:2213 +msgid "Open Document" +msgstr "Opna dokument" + +#: ../shell/ev-window.c:2511 +#, c-format +#| msgid "Shrink the document" +msgid "Saving document to %s" +msgstr "Lagrar dokumentet til %s" + +#: ../shell/ev-window.c:2514 +#, c-format +#| msgid "Save Attachment" +msgid "Saving attachment to %s" +msgstr "Lagrar vedlegg til %s" + +#: ../shell/ev-window.c:2517 +#, c-format +msgid "Saving image to %s" +msgstr "Lagrar bilete til %s" + +#: ../shell/ev-window.c:2561 ../shell/ev-window.c:2661 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Fila kunne ikkje lagrast som Ā«%sĀ»." + +#: ../shell/ev-window.c:2592 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Lastar opp dokument (%d%%)" + +#: ../shell/ev-window.c:2596 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Lastar opp vedlegg (%d%%)" + +#: ../shell/ev-window.c:2600 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Lastar opp bilete (%d%%)" + +#: ../shell/ev-window.c:2724 +msgid "Save a Copy" +msgstr "Lagra ein kopi" + +#: ../shell/ev-window.c:3009 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d utestĆ„ande jobb i kĆøa" +msgstr[1] "%d utestĆ„ande jobbar i kĆøa" + +#: ../shell/ev-window.c:3122 +#, c-format +msgid "Printing job ā%sā" +msgstr "Skriv ut jobb %s" + +#: ../shell/ev-window.c:3336 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Vent med Ć„ lukka programmet til utskriftsjobb %s er fullfĆørd?" + +#: ../shell/ev-window.c:3339 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Det er %d aktive utskriftsjobbar. Vent med Ć„ lukka programmet til desse er " +"fullfĆørde?" + +#: ../shell/ev-window.c:3351 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Viss du lukkar vindauget vil utestĆ„ande utskriftsjobbar ikkje verta " +"fullfĆørde." + +#: ../shell/ev-window.c:3355 +msgid "Cancel _print and Close" +msgstr "Avbryt _utskrift og lukk" + +#: ../shell/ev-window.c:3359 +msgid "Close _after Printing" +msgstr "Lukk etter ut_skrift" + +#: ../shell/ev-window.c:3949 +msgid "Toolbar Editor" +msgstr "VerktĆøylinjeredigering" + +#: ../shell/ev-window.c:4088 +msgid "There was an error displaying help" +msgstr "Det oppstod ein feil ved vising av hjelp" + +#: ../shell/ev-window.c:4300 +#, c-format +#| msgid "" +#| "Document Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentframsynar.\n" +"Brukar %s (%s)" + +#: ../shell/ev-window.c:4331 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince er fri programvare. Du kan vidareformidla det og/eller " +"endra det under vilkĆ„ra i GNU General Public License publisert av Free " +"Software Foundation, anten versjon 2 av lisensen, eller, om du Ćønskjer, ein " +"nyare versjon.\n" + +#: ../shell/ev-window.c:4335 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince er gjort tilgjengeleg med hĆ„p om at det vil vera til nytte, men " +"UTAN NOKON GARANTI, og heller ikkje med nokon indirekte garanti om at det " +"vil vera OMSETJELEG eller EIGNA TIL NOKO SPESIELT FORMĆ L. SjĆ„ GNU General " +"Public License for meir informasjon.\n" + +#: ../shell/ev-window.c:4339 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Du bĆør ha motteken ein kopi av GNU General Public License saman med " +"programmet. Dersom det ikkje er tilfellet, skriv til Free Software " +"Foundation, Inc., 51 Franklin St, Fifth Floor, " +"Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:4364 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4367 +#| msgid "Ā© 1996-2007 The Evince authors" +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Utviklarane av Evince" + +#: ../shell/ev-window.c:4373 +msgid "translator-credits" +msgstr "" +"Ć smund SkjƦveland <aasmunds@ulrik.uio.no>\n" +"Torstein Winterseth <kvikende@fsfe.org>\n" +"\n" +"Send feilmeldingar og kommentarar til <i18n-nn@lister.ping.uio.no>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4658 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d funnen pĆ„ denne sida" +msgstr[1] "%d funne pĆ„ denne sida" + +#: ../shell/ev-window.c:4666 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% att Ć„ sĆøka i" + +#: ../shell/ev-window.c:5173 +msgid "_File" +msgstr "_Fil" + +#: ../shell/ev-window.c:5174 +msgid "_Edit" +msgstr "_Rediger" + +#: ../shell/ev-window.c:5175 +msgid "_View" +msgstr "_Vis" + +#: ../shell/ev-window.c:5176 +msgid "_Go" +msgstr "_GĆ„" + +#: ../shell/ev-window.c:5177 +msgid "_Help" +msgstr "_Hjelp" + +#. File menu +#: ../shell/ev-window.c:5180 ../shell/ev-window.c:5479 +#| msgid "_Open..." +msgid "_Openā¦" +msgstr "_Opna ā¦" + +#: ../shell/ev-window.c:5181 ../shell/ev-window.c:5480 +msgid "Open an existing document" +msgstr "Opna eit eksisterande dokument" + +#: ../shell/ev-window.c:5183 +msgid "Op_en a Copy" +msgstr "Opn_a ein kopi" + +#: ../shell/ev-window.c:5184 +msgid "Open a copy of the current document in a new window" +msgstr "Opna ein kopi av det noverande dokumentet i eit nytt vindauge" + +#: ../shell/ev-window.c:5186 +#| msgid "Save a Copy" +msgid "_Save a Copyā¦" +msgstr "Lagra ein kopi ā¦" + +#: ../shell/ev-window.c:5187 +msgid "Save a copy of the current document" +msgstr "Lagra ein kopi av det noverande dokumentet" + +#: ../shell/ev-window.c:5189 +#| msgid "Print" +msgid "_Printā¦" +msgstr "_Skriv ut ā¦" + +#: ../shell/ev-window.c:5192 +msgid "P_roperties" +msgstr "Eigenskapa_r" + +#: ../shell/ev-window.c:5200 +msgid "Select _All" +msgstr "Merk _alt" + +#: ../shell/ev-window.c:5202 +#| msgid "Find" +msgid "_Findā¦" +msgstr "_Finn ā¦" + +#: ../shell/ev-window.c:5203 +msgid "Find a word or phrase in the document" +msgstr "Finn eit ord eller ei setning i dokumentet" + +#: ../shell/ev-window.c:5209 +msgid "T_oolbar" +msgstr "V_erktĆøylinje" + +#: ../shell/ev-window.c:5211 +msgid "Rotate _Left" +msgstr "Roter til _venstre" + +#: ../shell/ev-window.c:5213 +msgid "Rotate _Right" +msgstr "Roter til _hĆøgre" + +#: ../shell/ev-window.c:5224 +msgid "_Reload" +msgstr "_Last om att" + +#: ../shell/ev-window.c:5225 +msgid "Reload the document" +msgstr "Last dokumentet om att" + +#: ../shell/ev-window.c:5228 +msgid "Auto_scroll" +msgstr "Automati_sk rulling" + +#: ../shell/ev-window.c:5238 +msgid "_First Page" +msgstr "_FĆørste side" + +#: ../shell/ev-window.c:5239 +msgid "Go to the first page" +msgstr "GĆ„ til fĆørste side" + +#: ../shell/ev-window.c:5241 +msgid "_Last Page" +msgstr "_Siste side" + +#: ../shell/ev-window.c:5242 +msgid "Go to the last page" +msgstr "GĆ„ til siste side" + +#. Help menu +#: ../shell/ev-window.c:5246 +msgid "_Contents" +msgstr "I_nnhald" + +#: ../shell/ev-window.c:5249 +msgid "_About" +msgstr "_Om" + +#. Toolbar-only +#: ../shell/ev-window.c:5253 +msgid "Leave Fullscreen" +msgstr "Forlat fullskjerm" + +#: ../shell/ev-window.c:5254 +msgid "Leave fullscreen mode" +msgstr "Forlat fullskjermmodus" + +#: ../shell/ev-window.c:5256 +msgid "Start Presentation" +msgstr "Start presentasjon" + +#: ../shell/ev-window.c:5257 +msgid "Start a presentation" +msgstr "Start ein presentasjon" + +#. View Menu +#: ../shell/ev-window.c:5316 +msgid "_Toolbar" +msgstr "_VerktĆøylinje" + +#: ../shell/ev-window.c:5317 +msgid "Show or hide the toolbar" +msgstr "Vis eller gĆøym verktĆøylinja" + +#: ../shell/ev-window.c:5319 +msgid "Side _Pane" +msgstr "Side_panel" + +#: ../shell/ev-window.c:5320 +msgid "Show or hide the side pane" +msgstr "Vis eller gĆøym sidepanelet" + +#: ../shell/ev-window.c:5322 +msgid "_Continuous" +msgstr "_Samanhengande" + +#: ../shell/ev-window.c:5323 +msgid "Show the entire document" +msgstr "Vis heile dokumentet" + +#: ../shell/ev-window.c:5325 +msgid "_Dual" +msgstr "_Dobbel" + +#: ../shell/ev-window.c:5326 +msgid "Show two pages at once" +msgstr "Vis to sider samtidig" + +#: ../shell/ev-window.c:5328 +msgid "_Fullscreen" +msgstr "_Fullskjerm" + +#: ../shell/ev-window.c:5329 +msgid "Expand the window to fill the screen" +msgstr "Utvid vindauget sĆ„ det fyller heile skjermen" + +#: ../shell/ev-window.c:5331 +msgid "Pre_sentation" +msgstr "Pre_sentasjon" + +#: ../shell/ev-window.c:5332 +msgid "Run document as a presentation" +msgstr "Vis dokumentet som ein presentasjon" + +#: ../shell/ev-window.c:5340 +msgid "_Inverted Colors" +msgstr "_Inverterte fargar" + +#: ../shell/ev-window.c:5341 +msgid "Show page contents with the colors inverted" +msgstr "Vis sideinnhald med fargane snutt om" + +#. Links +#: ../shell/ev-window.c:5349 +msgid "_Open Link" +msgstr "_Opna lenkje" + +#: ../shell/ev-window.c:5351 +msgid "_Go To" +msgstr "_GĆ„ til" + +#: ../shell/ev-window.c:5353 +msgid "Open in New _Window" +msgstr "Opna i nytt _vindauge" + +#: ../shell/ev-window.c:5355 +msgid "_Copy Link Address" +msgstr "_Kopier lenkjeadresse" + +#: ../shell/ev-window.c:5357 +#| msgid "_Save Image As..." +msgid "_Save Image Asā¦" +msgstr "_Lagra bilete som ā¦" + +#: ../shell/ev-window.c:5359 +msgid "Copy _Image" +msgstr "Kopier b_ilete" + +#: ../shell/ev-window.c:5361 +msgid "Annotation Propertiesā¦" +msgstr "Kommentareigenskapar ā¦" + +#: ../shell/ev-window.c:5366 +#| msgid "Save Attachment" +msgid "_Open Attachment" +msgstr "_Opna vedlegg" + +#: ../shell/ev-window.c:5368 +#| msgid "Save Attachment" +msgid "_Save Attachment Asā¦" +msgstr "_Lagra vedlegg som ā¦" + +#: ../shell/ev-window.c:5453 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5455 +msgid "Adjust the zoom level" +msgstr "Juster zoomnivĆ„et" + +#: ../shell/ev-window.c:5465 +msgid "Navigation" +msgstr "Navigasjon" + +#: ../shell/ev-window.c:5467 +msgid "Back" +msgstr "Tilbake" + +#. translators: this is the history action +#: ../shell/ev-window.c:5470 +msgid "Move across visited pages" +msgstr "GĆ„ gjennom vitja sider" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5500 +msgid "Previous" +msgstr "FĆørre" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5505 +msgid "Next" +msgstr "Neste" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5509 +msgid "Zoom In" +msgstr "Zoom inn" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5513 +msgid "Zoom Out" +msgstr "Zoom ut" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5521 +msgid "Fit Width" +msgstr "Tilpass breidda" + +#: ../shell/ev-window.c:5682 ../shell/ev-window.c:5699 +#| msgid "Unable to open external link" +msgid "Unable to launch external application." +msgstr "Klarte ikkje starta eksternt program." + +#: ../shell/ev-window.c:5756 +msgid "Unable to open external link" +msgstr "Klarte ikkje opna ekstern lenkje" + +#: ../shell/ev-window.c:5923 +msgid "Couldn't find appropriate format to save image" +msgstr "Klarte ikkje finna hĆøveleg format Ć„ lagra biletet i" + +#: ../shell/ev-window.c:5965 +msgid "The image could not be saved." +msgstr "Biletet kunne ikkje lagrast." + +#: ../shell/ev-window.c:5997 +msgid "Save Image" +msgstr "Lagra bilete" + +#: ../shell/ev-window.c:6125 +msgid "Unable to open attachment" +msgstr "Klarte ikkje Ć„ opna dokumentet" + +#: ../shell/ev-window.c:6178 +msgid "The attachment could not be saved." +msgstr "Vedlegget kunne ikkje lagrast." + +#: ../shell/ev-window.c:6223 +msgid "Save Attachment" +msgstr "Lagra vedlegg" + +#: ../shell/ev-window-title.c:162 +#, c-format +#| msgid "%s - Password Required" +msgid "%s ā Password Required" +msgstr "%s ā Treng passord" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Etter filtype" + +#: ../shell/main.c:72 ../shell/main.c:277 +msgid "MATE Document Viewer" +msgstr "MATE dokumentframsynar" + +#: ../shell/main.c:80 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "Side i dokumentet som skal visast." + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "SIDE" + +#: ../shell/main.c:81 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "Side i dokumentet som skal visast." + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "KĆøyr Evince i fullskjerm" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "KĆøyr Evince som ein presentasjonsvisar" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "KĆøyr Evince som fĆørehandsvisar" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "Ord eller uttrykk Ć„ finna i dokumentet" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRENG" + +#: ../shell/main.c:89 +#| msgid "[FILE...]" +msgid "[FILEā¦]" +msgstr "[FIL ā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#| msgid "" +#| "Boolean options available, true enables thumbnailing and false disables " +#| "the creation of new thumbnails" +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Boolske val tilgjengelege: Ā«trueĀ» slĆ„r pĆ„ miniatyrar og Ā«falseĀ» slĆ„r av " +"oppretting av nye miniatyrar" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "SlĆ„ pĆ„ generering av miniatyrar av PDF-dokument" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Miniatyrkommando for PDF-dokument" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#| msgid "" +#| "Valid command plus arguments for the PDF Document thumbnailer. See " +#| "caja thumbnailer documentation for more information." +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Gyldig kommando pluss argument for miniatyrgeneratoren for PDF-dokument. SjĆ„ " +"dokumentasjonen til Caja' miniatyrdokumentasjon for meir informasjon." + +#~ msgid "File not available" +#~ msgstr "Fila ikkje tilgjengeleg" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Eksterne filer er ikkje stĆøtta" + +#~ msgid "BBox" +#~ msgstr "BBox (ramme)" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Statement" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Klarte ikkje opna fila Ā«%sĀ»." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "Klarte ikkje Ć„ lasta dokumentet Ā«%sĀ». GhostScript-tolkar ikkje funnen i " +#~ "sĆøkestien" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Encapsulated PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Tolkar feila." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Ikkje handsama MIME-type: Ā«%sĀ»" + +#~ msgid "Password Entry" +#~ msgstr "Passordfelt" + +#~ msgid "Save password in keyring" +#~ msgstr "Lagra passordet pĆ„ nĆøkkelringen" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f Ć %.2f tommar" + +#~ msgid "Search string" +#~ msgstr "SĆøkjetekst" + +#~ msgid "The name of the string to be found" +#~ msgstr "Namn pĆ„ strengen du vil finna" + +#~ msgid "Case sensitive" +#~ msgstr "Skil mellom store og smĆ„ bokstavar" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE i eit store/smĆ„ bokstavar-kjenslevart sĆøk" + +#~ msgid "Highlight color" +#~ msgstr "Framhevingsfarge" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Farge Ć„ framheva alle treff med" + +#~ msgid "Current color" +#~ msgstr "Noverande farge" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Farge Ć„ framheva noverande treff med" + +#~ msgid "Find Previous" +#~ msgstr "Finn fĆørre" + +#~ msgid "Find Next" +#~ msgstr "Finn neste" + +#~ msgid "Incorrect password" +#~ msgstr "Feil passord" + +#~ msgid "Print..." +#~ msgstr "Skriv ut ..." + +#~ msgid "Couldn't create symlink ā%sā: %s" +#~ msgstr "Klarte ikkje laga den symbolske lenkja Ā«%sĀ»: %s" + +#~ msgid "Cannot open a copy." +#~ msgstr "Klarte ikkje opna ein kopi." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Lagra ein kopi ..." + +#~ msgid "Print Set_up..." +#~ msgstr "Skrivaro_ppsett ..." + +#~ msgid "Setup the page settings for printing" +#~ msgstr "Set opp sideoppsettet ved utskrift" + +#~ msgid "_Print..." +#~ msgstr "S_kriv ut ..." + +#~ msgid "_Find..." +#~ msgstr "_Finn ..." + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince Dokumentframsynar" diff --git a/po/oc.po b/po/oc.po new file mode 100644 index 00000000..d3b050a0 --- /dev/null +++ b/po/oc.po @@ -0,0 +1,1304 @@ +# Translation of oc.po to Occitan +# Occitan translation of evince. +# Copyright (C) 2007 The Free Software Foundation, Inc. +# This file is distributed under the GNU General Public License Version 2. +# +# +# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2007. +# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: oc\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-02-19 20:19+0100\n" +"PO-Revision-Date: 2008-02-13 11:30+0100\n" +"Last-Translator: Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>\n" +"Language-Team: Occitan <ubuntu-l10n-oci@lists.ubuntu.com>\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" + +#: ../backend/comics/comics-document.c:163 +#, c-format +msgid "File corrupted." +msgstr "" + +#: ../backend/comics/comics-document.c:197 +#, c-format +msgid "No images found in archive %s" +msgstr "" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "" + +#: ../backend/djvu/djvu-document.c:167 +#, c-format +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Documents Djvu" + +#: ../backend/dvi/dvi-document.c:98 +#, c-format +msgid "File not available" +msgstr "FichiĆØrs pas disponible" + +#: ../backend/dvi/dvi-document.c:113 +#, c-format +msgid "DVI document has incorrect format" +msgstr "" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documents DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:674 +msgid "Yes" +msgstr "Ćc" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:677 +msgid "No" +msgstr "Non" + +#: ../backend/pdf/ev-poppler.cc:750 +msgid "Type 1" +msgstr "Tipe 1" + +#: ../backend/pdf/ev-poppler.cc:752 +msgid "Type 1C" +msgstr "Tpe 1C" + +#: ../backend/pdf/ev-poppler.cc:754 +msgid "Type 3" +msgstr "Tipe 3" + +#: ../backend/pdf/ev-poppler.cc:756 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:758 +msgid "Type 1 (CID)" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:760 +msgid "Type 1C (CID)" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:762 +msgid "TrueType (CID)" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:764 +msgid "Unknown font type" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:790 +msgid "No name" +msgstr "Pas de nom" + +#: ../backend/pdf/ev-poppler.cc:798 +msgid "Embedded subset" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:800 +msgid "Embedded" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:802 +msgid "Not embedded" +msgstr "" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documents PDF" + +#: ../backend/impress/impress-document.c:296 +#, c-format +msgid "Remote files aren't supported" +msgstr "" + +#: ../backend/impress/impress-document.c:307 +#, c-format +msgid "Invalid document" +msgstr "" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Pas cap d'error" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Pas pro de memĆ²ria" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Impossible de dobrir lo fichiĆØr" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Error desconeguda" + +#: ../backend/ps/ev-spectre.c:113 ../backend/ps/ps-document.c:248 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Impossible de dobrir lo document \"%s\"" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Letra" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../backend/ps/ps-document.c:170 ../backend/ps/ps-document.c:184 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "Impossible de dobrir lo fichiĆØr \"%s\"." + +#: ../backend/ps/ps-document.c:231 +#, c-format +msgid "" +"Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "" + +#: ../backend/ps/ps-document.c:431 +msgid "Encapsulated PostScript" +msgstr "" + +#: ../backend/ps/ps-document.c:432 +msgid "PostScript" +msgstr "PostScript" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documents PostScript" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "" + +#: ../libdocument/ev-document-factory.c:177 +#: ../libdocument/ev-document-factory.c:295 +#, c-format +msgid "Unknown MIME Type" +msgstr "" + +#: ../libdocument/ev-document-factory.c:196 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "" + +#: ../libdocument/ev-document-factory.c:350 +msgid "All Documents" +msgstr "Totes los documents" + +#: ../libdocument/ev-document-factory.c:382 +msgid "All Files" +msgstr "Totes los fichiĆØrs" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "Visualizar ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "_Suprimir la barra d'espleches" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "Separador" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4390 +msgid "Best Fit" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300 %" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400 %" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3517 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "Visualizaire de documents" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "Mot de _pas :" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Autor :</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Creat :</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Creator :</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Format :</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Modificat :</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Nombre de paginas :</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>Talha de papiĆØr :</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>Seguritat :</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>SubjĆØcte :</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>TĆtol :</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "Pas cap" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "Defau" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "Respectar la cassa" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "Recercar :" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "Recercar lo precedent" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "Recercar lo seguent" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-jobs.c:650 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "" + +#: ../shell/ev-open-recent-action.c:71 +msgid "Open a recently used document" +msgstr "" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d sus %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "sus %d" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "Un mot de santa Clara fa mestiĆØr" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "Picatz lo mot de pas" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "Mot de pas pel document %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Desvarrolhar lo document" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Propietats" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "General" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "PoliƧas" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "PoliƧa" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "Estacaments" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3642 +msgid "Loading..." +msgstr "Cargament..." + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "Estampar..." + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "IndĆØx" + +#: ../shell/ev-sidebar-thumbnails.c:728 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "" + +#: ../shell/ev-view.c:1442 +msgid "Go to first page" +msgstr "Anar a la primiĆØra pagina" + +#: ../shell/ev-view.c:1444 +msgid "Go to previous page" +msgstr "Anar a la pagina precedenta" + +#: ../shell/ev-view.c:1446 +msgid "Go to next page" +msgstr "Anar a la pagina seguenta" + +#: ../shell/ev-view.c:1448 +msgid "Go to last page" +msgstr "Anar a la darriĆØra pagina" + +#: ../shell/ev-view.c:1450 +msgid "Go to page" +msgstr "Anar a la pagina" + +#: ../shell/ev-view.c:1452 +msgid "Find" +msgstr "Recercar" + +#: ../shell/ev-view.c:1480 +#, c-format +msgid "Go to page %s" +msgstr "Anar a la pagina %s" + +#: ../shell/ev-view.c:1486 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "" + +#: ../shell/ev-view.c:1489 +#, c-format +msgid "Go to file ā%sā" +msgstr "Anar al fichiĆØr \"%s\"" + +#: ../shell/ev-view.c:1497 +#, c-format +msgid "Launch %s" +msgstr "Aviar %s" + +#: ../shell/ev-view.c:2448 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../shell/ev-view.c:3371 +msgid "Jump to page:" +msgstr "" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5149 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-view.c:5158 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:750 +#, c-format +msgid "Page %s - %s" +msgstr "Pagina %s - %s" + +#: ../shell/ev-window.c:752 +#, c-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../shell/ev-window.c:1381 +msgid "Unable to open document" +msgstr "Impossible de dobrir lo document" + +#: ../shell/ev-window.c:1542 +msgid "Open Document" +msgstr "Dobrir un document" + +#: ../shell/ev-window.c:1603 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "" + +#: ../shell/ev-window.c:1632 +msgid "Cannot open a copy." +msgstr "Impossible de dobrir una cĆ²pia." + +#: ../shell/ev-window.c:1876 ../shell/ev-window.c:1926 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "" + +#: ../shell/ev-window.c:1971 +msgid "Save a Copy" +msgstr "" + +#: ../shell/ev-window.c:2092 ../shell/ev-window.c:3218 +msgid "Failed to print document" +msgstr "" + +#: ../shell/ev-window.c:2256 +msgid "Printing is not supported on this printer." +msgstr "" + +#: ../shell/ev-window.c:2382 ../shell/ev-window.c:4184 +msgid "Print" +msgstr "Estampar" + +#: ../shell/ev-window.c:2996 +msgid "Toolbar Editor" +msgstr "_Barra d'espleches" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" + +#: ../shell/ev-window.c:3541 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" + +#: ../shell/ev-window.c:3545 +msgid "" +"Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:3549 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:3573 ../shell/main.c:349 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3576 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 Los autors d'Evince" + +#: ../shell/ev-window.c:3582 +msgid "translator-credits" +msgstr "Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>" + +#: ../shell/ev-window.c:4096 +msgid "_File" +msgstr "_FichiĆØr" + +#: ../shell/ev-window.c:4097 +msgid "_Edit" +msgstr "_Edicion" + +#: ../shell/ev-window.c:4098 +msgid "_View" +msgstr "_Visualizacion" + +#: ../shell/ev-window.c:4099 +msgid "_Go" +msgstr "_Anar" + +#: ../shell/ev-window.c:4100 +msgid "_Help" +msgstr "_Ajuda" + +#. File menu +#: ../shell/ev-window.c:4103 ../shell/ev-window.c:4280 +#: ../shell/ev-window.c:4352 +msgid "_Open..." +msgstr "_Dobrir..." + +#: ../shell/ev-window.c:4104 ../shell/ev-window.c:4353 +msgid "Open an existing document" +msgstr "" + +#: ../shell/ev-window.c:4106 +msgid "Op_en a Copy" +msgstr "" + +#: ../shell/ev-window.c:4107 +msgid "Open a copy of the current document in a new window" +msgstr "" + +#: ../shell/ev-window.c:4109 ../shell/ev-window.c:4282 +msgid "_Save a Copy..." +msgstr "" + +#: ../shell/ev-window.c:4110 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:4112 +msgid "Print Set_up..." +msgstr "" + +#: ../shell/ev-window.c:4113 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4115 +msgid "_Print..." +msgstr "_Estampar..." + +#: ../shell/ev-window.c:4116 ../shell/ev-window.c:4185 +msgid "Print this document" +msgstr "Estampar lo document" + +#: ../shell/ev-window.c:4118 +msgid "P_roperties" +msgstr "P_ropietats" + +#: ../shell/ev-window.c:4126 +msgid "Select _All" +msgstr "Seleccionar un fichiĆØr" + +#: ../shell/ev-window.c:4128 +msgid "_Find..." +msgstr "_Recercar..." + +#: ../shell/ev-window.c:4129 +msgid "Find a word or phrase in the document" +msgstr "" + +#: ../shell/ev-window.c:4131 +msgid "Find Ne_xt" +msgstr "Recercar lo seguent" + +#: ../shell/ev-window.c:4133 +msgid "Find Pre_vious" +msgstr "Recercar lo _precedent" + +#: ../shell/ev-window.c:4135 +msgid "T_oolbar" +msgstr "B_arra d'espleches" + +#: ../shell/ev-window.c:4137 +msgid "Rotate _Left" +msgstr "" + +#: ../shell/ev-window.c:4139 +msgid "Rotate _Right" +msgstr "" + +#: ../shell/ev-window.c:4144 +msgid "Enlarge the document" +msgstr "" + +#: ../shell/ev-window.c:4147 +msgid "Shrink the document" +msgstr "" + +#: ../shell/ev-window.c:4149 +msgid "_Reload" +msgstr "_Tornar cargar" + +#: ../shell/ev-window.c:4150 +msgid "Reload the document" +msgstr "" + +#: ../shell/ev-window.c:4153 +msgid "Auto_scroll" +msgstr "" + +#. Go menu +#: ../shell/ev-window.c:4157 +msgid "_Previous Page" +msgstr "Pagina _precedenta" + +#: ../shell/ev-window.c:4158 +msgid "Go to the previous page" +msgstr "" + +#: ../shell/ev-window.c:4160 +msgid "_Next Page" +msgstr "Pagina _seguenta" + +#: ../shell/ev-window.c:4161 +msgid "Go to the next page" +msgstr "" + +#: ../shell/ev-window.c:4163 +msgid "_First Page" +msgstr "_PrimiĆØra pagina" + +#: ../shell/ev-window.c:4164 +msgid "Go to the first page" +msgstr "" + +#: ../shell/ev-window.c:4166 +msgid "_Last Page" +msgstr "_DarriĆØra pagina" + +#: ../shell/ev-window.c:4167 +msgid "Go to the last page" +msgstr "" + +#. Help menu +#: ../shell/ev-window.c:4171 +msgid "_Contents" +msgstr "_Ensenhador" + +#: ../shell/ev-window.c:4174 +msgid "_About" +msgstr "_A prepaus" + +#. Toolbar-only +#: ../shell/ev-window.c:4178 +msgid "Leave Fullscreen" +msgstr "" + +#: ../shell/ev-window.c:4179 +msgid "Leave fullscreen mode" +msgstr "" + +#: ../shell/ev-window.c:4181 +msgid "Start Presentation" +msgstr "" + +#: ../shell/ev-window.c:4182 +msgid "Start a presentation" +msgstr "" + +#. View Menu +#: ../shell/ev-window.c:4236 +msgid "_Toolbar" +msgstr "_Barra d'espleches" + +#: ../shell/ev-window.c:4237 +msgid "Show or hide the toolbar" +msgstr "" + +#: ../shell/ev-window.c:4239 +msgid "Side _Pane" +msgstr "" + +#: ../shell/ev-window.c:4240 +msgid "Show or hide the side pane" +msgstr "" + +#: ../shell/ev-window.c:4242 +msgid "_Continuous" +msgstr "" + +#: ../shell/ev-window.c:4243 +msgid "Show the entire document" +msgstr "" + +#: ../shell/ev-window.c:4245 +msgid "_Dual" +msgstr "" + +#: ../shell/ev-window.c:4246 +msgid "Show two pages at once" +msgstr "" + +#: ../shell/ev-window.c:4248 +msgid "_Fullscreen" +msgstr "Ecran _complet" + +#: ../shell/ev-window.c:4249 +msgid "Expand the window to fill the screen" +msgstr "" + +#: ../shell/ev-window.c:4251 +msgid "Pre_sentation" +msgstr "Pre_sentacion" + +#: ../shell/ev-window.c:4252 +msgid "Run document as a presentation" +msgstr "" + +#: ../shell/ev-window.c:4254 +msgid "_Best Fit" +msgstr "" + +#: ../shell/ev-window.c:4255 +msgid "Make the current document fill the window" +msgstr "" + +#: ../shell/ev-window.c:4257 +msgid "Fit Page _Width" +msgstr "" + +#: ../shell/ev-window.c:4258 +msgid "Make the current document fill the window width" +msgstr "" + +#. Links +#: ../shell/ev-window.c:4265 +msgid "_Open Link" +msgstr "_Dobrir lo ligam" + +#: ../shell/ev-window.c:4267 +msgid "_Go To" +msgstr "_Anar a" + +#: ../shell/ev-window.c:4269 +msgid "Open in New _Window" +msgstr "Dobrir dins una fenĆØstra novĆØla" + +#: ../shell/ev-window.c:4271 +msgid "_Copy Link Address" +msgstr "_Copiar l'adreƧa del ligam" + +#: ../shell/ev-window.c:4273 +msgid "_Save Image As..." +msgstr "_Enregistrar l'imatge coma..." + +#: ../shell/ev-window.c:4275 +msgid "Copy _Image" +msgstr "Copiar l'_imatge" + +#: ../shell/ev-window.c:4314 +msgid "Page" +msgstr "Pagina" + +#: ../shell/ev-window.c:4315 +msgid "Select Page" +msgstr "Seleccionar la pagina" + +#: ../shell/ev-window.c:4326 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:4328 +msgid "Adjust the zoom level" +msgstr "" + +#: ../shell/ev-window.c:4338 +msgid "Navigation" +msgstr "Navegacion" + +#: ../shell/ev-window.c:4340 +msgid "Back" +msgstr "Precedent" + +#. translators: this is the history action +#: ../shell/ev-window.c:4343 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4373 +msgid "Previous" +msgstr "Precedent" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4378 +msgid "Next" +msgstr "Seguent" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4382 +msgid "Zoom In" +msgstr "Agrandir lo zoom" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4386 +msgid "Zoom Out" +msgstr "Reduire el zoom" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4394 +msgid "Fit Width" +msgstr "" + +#: ../shell/ev-window.c:4607 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:4777 +msgid "Couldn't find appropriate format to save image" +msgstr "" + +#: ../shell/ev-window.c:4813 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:4845 +msgid "Save Image" +msgstr "Enregistrar l'imatge" + +#: ../shell/ev-window.c:4904 +msgid "Unable to open attachment" +msgstr "" + +#: ../shell/ev-window.c:4956 +msgid "The attachment could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5001 +msgid "Save Attachment" +msgstr "" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "" + +#: ../shell/main.c:58 +msgid "The page of the document to display." +msgstr "" + +#: ../shell/main.c:58 +msgid "PAGE" +msgstr "PAGINA" + +#: ../shell/main.c:59 +msgid "Run evince in fullscreen mode" +msgstr "" + +#: ../shell/main.c:60 +msgid "Run evince in presentation mode" +msgstr "" + +#: ../shell/main.c:61 +msgid "Run evince as a previewer" +msgstr "" + +#: ../shell/main.c:62 +msgid "The word or phrase to find in the document" +msgstr "" + +#: ../shell/main.c:62 +msgid "STRING" +msgstr "" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[FICHIĆR...]" + +#: ../shell/main.c:332 +msgid "MATE Document Viewer" +msgstr "" + +#: ../shell/main.c:392 +msgid "Evince Document Viewer" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" + +#~ msgid "Pages" +#~ msgstr "Paginas" diff --git a/po/or.po b/po/or.po new file mode 100644 index 00000000..00ff88c0 --- /dev/null +++ b/po/or.po @@ -0,0 +1,1598 @@ +# translation of evince.master.or.po to Oriya +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Subhransu Behera <arya_subhransu@yahoo.co.in>, 2006. +# Manoj Kumar Giri <mgiri@redhat.com>, 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.master.or\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-05-04 12:28+0000\n" +"PO-Revision-Date: 2010-05-17 23:35+0530\n" +"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n" +"Language-Team: Oriya <Translation-team-or@lists.sourceforge.net>\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" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¬ą¬®ą¬æą¬ ą¬¬ą¬¹ą¬æą¬ą ą¬øą¬ąą¬ąą¬ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ā%sā ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ą¬ą ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¤ąą¬°ąą¬ą¬æ: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ ā%sā ą¬ą¬®ą¬æą¬ ą¬¬ą¬¹ą¬æą¬ą ą¬ ą¬øąą¬„ą¬¾ąą ą¬”ą¬æą¬°ąą¬ąą¬ąą¬°ą ą¬ą¬æą¬¤ą¬°ą ą¬øą¬ąą¬ąą¬ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³ą„¤" + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ ā%sā ą¬øą¬¾ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬¾ą¬¬ą¬°ą ą¬øą¬®ą¬¾ą¬Ŗąą¬¤ ą¬¹ąą¬ą¬Øą¬„ą¬æą¬²ą¬¾ą„¤" + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¬ąą¬ą¬æą¬ ą¬¹ą¬¾ą¬øąąą¬øąą¬Ŗą¬¦ ą¬¬ą¬¹ą¬æ MIME ą¬Ŗąą¬°ą¬ą¬¾ą¬° ą¬Øąą¬¹ą¬: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¬ą¬¹ą¬æ ą¬Ŗąą¬°ą¬ą¬¾ą¬° ą¬ą¬®ą¬æą¬ ą¬¬ą¬¹ą¬æą¬ą ą¬Ŗąą¬°ą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬øą¬ ą¬æą¬ ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ ą¬Ŗą¬¾ą¬ą¬¬ą ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą¬ ą¬ą¬£ą¬¾ MIME ą¬Ŗąą¬°ą¬ą¬¾ą¬°" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą¬«ą¬¾ą¬ą¬² ą¬ąą¬·ą¬¤ą¬æą¬ąą¬°ą¬øąą¬¤ ą¬¹ąą¬ą¬ą¬æ" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ą¬ ą¬ą¬æą¬²ąą¬ą¬°ą ą¬ąą¬£ą¬øą¬æ ą¬«ą¬¾ą¬ą¬² ą¬Øą¬¾ą¬¹ą¬æą¬ą„¤" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą¬ ą¬ą¬æą¬²ąą¬ą¬°ą ą¬ąą¬£ą¬øą¬æ ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æ ą¬®ą¬æą¬³ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą¬ą ą¬ ą¬Ŗą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬øą¬®ąą¬°ą ą¬ąą¬ą¬æą¬ ą¬¤ąą¬°ąą¬ą¬æą„¤" + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ą¬¤ąą¬°ąą¬ą¬æ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą¬¹ą¬¾ą¬øąą¬Æą¬°ą¬øą¬¾ą¬¤ąą¬®ą¬ ą¬¬ą¬¹ą¬æ" + +#: ../backend/djvu/djvu-document.c:173 +#, fuzzy +#| msgid "DVI document has incorrect format" +msgid "DjVu document has incorrect format" +msgstr "DVI ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ąą¬² ą¬«ą¬°ąą¬®ą¬¾ą¬ ą¬ ą¬ą¬æ" + +#: ../backend/djvu/djvu-document.c:250 +#, fuzzy +#| msgid "" +#| "The document is composed of several files. One or more of such files " +#| "cannot be accessed." +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą¬æ ą¬ ą¬Øąą¬ ą¬«ą¬¾ą¬ą¬² ą¬¦ąą±ą¬¾ą¬°ą¬¾ ą¬°ą¬ą¬Øą¬¾ ą¬ą¬°ą¬¾ą¬Æą¬¾ą¬ą¬ą¬æą„¤ ą¬ą¬¹ą¬æą¬Ŗą¬°ą¬æ ą¬ą¬ ą¬¬ą¬¾ ą¬ ą¬§ą¬æą¬ ą¬«ą¬¾ą¬ą¬²ą¬°ą ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬ą¬°ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬¬ą ą¬Øą¬¾ą¬¹ą¬æą¬ą„¤" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#, fuzzy +#| msgid "Djvu Documents" +msgid "DjVu Documents" +msgstr "Djvu ą¬¦ą¬²ą¬æą¬²" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ąą¬² ą¬«ą¬°ąą¬®ą¬¾ą¬ ą¬ ą¬ą¬æ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą¬¦ą¬²ą¬æą¬²" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ą¬¹ą¬" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą¬Øą¬¾ą¬" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "ą¬Ŗąą¬°ą¬ą¬¾ą¬° 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "ą¬Ŗąą¬°ą¬ą¬¾ą¬° 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "ą¬Ŗąą¬°ą¬ą¬¾ą¬° 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "ą¬Ŗąą¬°ą¬ą¬¾ą¬° 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "ą¬Ŗąą¬°ą¬ą¬¾ą¬° 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą¬ ą¬ą¬£ą¬¾ ą¬ ą¬ąą¬·ą¬°ą¬°ąą¬Ŗ ą¬Ŗąą¬°ą¬ą¬¾ą¬°" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą¬ąą¬£ą¬øą¬æ ą¬Øą¬¾ą¬® ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ą¬øą¬Øąą¬Øą¬æą¬¬ąą¬¶ą¬æą¬¤ ą¬ą¬Ŗą¬øąą¬" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ą¬øą¬Øąą¬Øą¬æą¬¹ą¬æą¬¤" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą¬øą¬Øąą¬Øą¬æą¬¬ąą¬¶ą¬æą¬¤ ą¬Øąą¬¹ąą¬" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą¬¦ą¬²ą¬æą¬²" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą¬ ą¬¬ąą¬§ ą¬¦ą¬²ą¬æą¬²" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą¬ą¬®ąą¬Ŗąą¬°ąą¬ø ą¬øąą¬²ą¬¾ą¬ą¬”" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¬ąą¬£ą¬øą¬æ ą¬¤ąą¬°ąą¬ą¬æ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą¬Æą¬„ąą¬·ąą¬ ą¬øąą¬®ąą¬¤ą¬æą¬øąą¬„ą¬¾ą¬Ø ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:59 +#, fuzzy +#| msgid "Cannot find zip signature" +msgid "Cannot find ZIP signature" +msgstr "ą¬ą¬æą¬Ŗ ą¬¹ą¬øąą¬¤ą¬¾ą¬ąą¬·ą¬° ą¬®ą¬æą¬³ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:62 +#, fuzzy +#| msgid "Invalid zip file" +msgid "Invalid ZIP file" +msgstr "ą¬ ą¬¬ąą¬§ ą¬ą¬æą¬Ŗ ą¬«ą¬¾ą¬ą¬²" + +#: ../backend/impress/zip.c:65 +#, fuzzy +#| msgid "Multi file zips are not supported" +msgid "Multi file ZIPs are not supported" +msgstr "ą¬ą¬ą¬¾ą¬§ą¬æą¬ ą¬«ą¬¾ą¬ą¬²ą¬ą ą¬ą¬æą¬Ŗą¬ą¬°ą¬æą¬¬ą¬¾ ą¬øą¬®ą¬°ąą¬„ą¬æą¬¤ ą¬Øąą¬¹ąą¬" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¬ą¬¹ą¬æ ą¬«ą¬¾ą¬ą¬²ą¬ą ą¬ąą¬²ą¬æ ą¬Ŗą¬¾ą¬°ą¬æą¬¬ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¬«ą¬¾ą¬ą¬²ą¬°ą ą¬¤ą¬„ąą ą¬Ŗą¬¢ą¬¼ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬¬ą ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:74 +#, fuzzy +#| msgid "Cannot find file in the zip archive" +msgid "Cannot find file in the ZIP archive" +msgstr "ą¬ą¬æą¬Ŗ ą¬ ą¬ą¬æą¬²ąą¬ą¬¾ą¬ą¬¾ą¬°ą¬°ą ą¬«ą¬¾ą¬ą¬² ą¬ąą¬ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬¬ą ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą¬ ą¬ą¬£ą¬¾ ą¬¤ąą¬°ąą¬ą¬æ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ā%sā ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ā%sā ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¬Ŗąą¬·ąą¬ą¬øąą¬ąą¬°ą¬æą¬Ŗąą¬ ą¬¦ą¬²ą¬æą¬²" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ā%sā ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬æą¬¤ ą¬ą¬°ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ā%sā ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬ąą¬²ą¬æ ą¬Ŗą¬¾ą¬°ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ā%sā ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬ąą¬²ą¬æ ą¬Ŗą¬¾ą¬°ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą¬«ą¬¾ą¬ą¬² ą¬Ŗąą¬°ą¬ą¬¾ą¬° %s (%s) ą¬øą¬®ą¬°ąą¬„ą¬æą¬¤ ą¬Øąą¬¹ąą¬" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¬øą¬®ą¬øąą¬¤ ą¬¦ą¬²ą¬æą¬²" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¬øą¬®ą¬øąą¬¤ ą¬«ą¬¾ą¬ą¬²" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +#| msgid "Failed to create a temporary directory." +msgid "Failed to create a temporary file: %s" +msgstr "ą¬ ą¬øąą¬„ą¬¾ąą ą¬”ą¬æą¬°ąą¬ąą¬ąą¬°ą ą¬Øą¬æą¬°ąą¬®ą¬¾ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³ą„¤" + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +#| msgid "Failed to create a temporary directory." +msgid "Failed to create a temporary directory: %s" +msgstr "ą¬ ą¬øąą¬„ą¬¾ąą ą¬”ą¬æą¬°ąą¬ąą¬ąą¬°ą ą¬Øą¬æą¬°ąą¬®ą¬¾ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³ą„¤" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¬«ą¬¾ą¬ą¬²ą¬ą¬æ ą¬ąą¬ą¬æą¬ ą¬¬ąą¬§ .desktop ą¬«ą¬¾ą¬ą¬² ą¬Øąą¬¹ą¬" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¬ ą¬ą¬æą¬¹ąą¬Øą¬¾ ą¬”ąą¬øąą¬ą¬ą¬Ŗ ą¬«ą¬¾ą¬ą¬² ą¬øą¬ą¬øąą¬ą¬°ą¬£ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą¬ą ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ą¬Øą¬¾ą¬®ą¬¾ą¬°ą ą¬Ŗąą¬°ąąą¬ą¬ą¬æ ą¬¦ą¬²ą¬æą¬² ą¬ąą¬°ą¬¹ą¬£ ą¬ą¬°ąą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¬ ą¬ą¬æą¬¹ąą¬Øą¬¾ ą¬ą¬°ą¬®ąą¬ ą¬¬ą¬æą¬ą¬³ąą¬Ŗ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą¬¦ą¬²ą¬æą¬² URI ą¬ąą¬”ą¬¼ą¬æą¬ą 'ą¬Ŗąą¬°ą¬ą¬¾ą¬°=ą¬øą¬ą¬Æąą¬' ą¬”ąą¬øąą¬ą¬ą¬Ŗ ą¬ą¬°ą¬£ą¬ą ą¬Ŗą¬ ą¬¾ą¬Æą¬¾ą¬ą¬Ŗą¬¾ą¬°ą¬æą¬¬ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¬ąą¬ą¬æą¬ ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬¬ą¬øąą¬¤ą ą¬Øąą¬¹ą¬" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą¬ ą¬§ą¬æą¬¬ąą¬¶ą¬Ø ą¬Ŗą¬°ą¬æą¬ą¬¾ą¬³ą¬ą¬ąą¬ ą¬Ŗąą¬°ą¬¤ą¬æ ą¬øą¬ą¬Æąą¬ ą¬Øą¬æą¬·ąą¬ąą¬°ą¬æą ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą¬øą¬ą¬°ą¬ąą¬·ą¬æą¬¤ ą¬¬ą¬æą¬Øąąą¬¾ą¬ø ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬„ą¬æą¬¬ą¬¾ ą¬«ą¬¾ą¬ą¬²ą¬ą ą¬¦ą¬°ąą¬¶ą¬¾ą¬Øąą¬¤ą" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "ą¬«ą¬¾ą¬ą¬²" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą¬ ą¬§ą¬æą¬¬ąą¬¶ą¬Ø ą¬Ŗą¬°ą¬æą¬ą¬¾ą¬³ą¬Ø ID ą¬ą¬²ąą¬²ąą¬ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą¬ ą¬§ą¬æą¬¬ąą¬¶ą¬Ø ą¬Ŗą¬°ą¬æą¬ą¬¾ą¬³ą¬Øą¬¾ ą¬¬ą¬æą¬ą¬³ąą¬Ŗą¬ąą¬”ą¬¼ą¬æą¬:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¬ ą¬§ą¬æą¬¬ąą¬¶ą¬Ø ą¬Ŗą¬°ą¬æą¬ą¬¾ą¬³ą¬Øą¬¾ ą¬¬ą¬æą¬ą¬³ąą¬Ŗą¬ąą¬”ą¬¼ą¬æą¬ą ą¬¦ą¬°ąą¬¶ą¬¾ą¬Øąą¬¤ą" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sāą¬ą ą¬¦ą¬°ąą¬¶ą¬¾ą¬Øąą¬¤ą" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æ ą¬ą¬Ŗą¬°ą ą¬ą¬²ą¬¾ą¬Øąą¬¤ą (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ą¬ąą¬æą¬¤ ą¬¬ą¬øąą¬¤ąą¬ą ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æą¬ą ą¬ąą¬ąą¬ą¬¾ą¬Øąą¬¤ą" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Øą¬Ŗą¬ą¬æą¬°ą ą¬ą¬¾ą¬¢ą¬¼ą¬æą¬¦ą¬æą¬ ą¬Øąą¬¤ą (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æą¬°ą ą¬ąą¬æą¬¤ ą¬¬ą¬øąą¬¤ąą¬ą ą¬ ą¬Ŗą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æą¬ą ą¬ ą¬Ŗą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "ą¬ąą¬æą¬¤ ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æą¬ą ą¬ ą¬Ŗą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "ą¬¬ą¬æą¬ą¬¾ą¬ą¬" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬§ą¬¾ą¬°ą¬¾ą¬°ą ą¬ą¬¾ą¬²ąą¬ ą¬ą¬æ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5380 +msgid "Best Fit" +msgstr "ą¬øą¬°ąą¬¬ą¬¤ąą¬ąą¬°ąą¬·ąą¬ ą¬®ąą¬³ą¬" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ ą¬ą¬øą¬¾ą¬° ą¬øą¬¹ą¬æą¬¤ ą¬®ąą¬³ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą«ą¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ąą¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą§ą¦ą¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą§ą«ą¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ąØą¦ą¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ąŖą¦ą¦%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4232 +#: ../shell/ev-window-title.c:149 ../shell/main.c:296 +#, c-format +msgid "Document Viewer" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬" + +#: ../data/evince.desktop.in.in.h:2 +#, fuzzy +#| msgid "View multipage documents" +msgid "View multi-page documents" +msgstr "ą¬ą¬ą¬¾ą¬§ą¬æą¬ ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ ą¬¬ą¬æą¬¶ą¬æą¬·ąą¬ ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬¦ąą¬ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ą¬ ą¬øąą¬„ą¬¾ąą ą¬«ą¬¾ą¬ą¬²ą¬ą ą¬ ą¬Ŗą¬øą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ą ą¬¬ą¬æą¬Øąąą¬¾ą¬ø ą¬«ą¬¾ą¬ą¬²" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "MATE ą¬¦ą¬²ą¬æą¬² ą¬Ŗąą¬°ą¬¾ą¬ ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3020 +msgid "Failed to print document" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¬¬ą¬ąą¬ą¬æą¬¤ ą¬®ąą¬¦ąą¬°ą¬£ą '%s' ą¬®ą¬æą¬³ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5129 +msgid "_Previous Page" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5130 +msgid "Go to the previous page" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5132 +msgid "_Next Page" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5133 +msgid "Go to the next page" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5116 +msgid "Enlarge the document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬øą¬®ąą¬Ŗąą¬°ą¬øą¬¾ą¬°ą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5119 +msgid "Shrink the document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬øą¬ąą¬ąą¬ą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5087 +msgid "Print this document" +msgstr "ą¬ą¬¹ą¬æ ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5231 +msgid "_Best Fit" +msgstr "ą¬øą¬°ąą¬¬ą¬¤ąą¬ąą¬°ąą¬·ąą¬ ą¬®ąą¬³ą¬ (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5232 +msgid "Make the current document fill the window" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ą¬¤ą¬æą¬ ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ą¬ą¬¾ą¬°ą¬ą ą±ą¬æą¬£ąą¬”ą ą¬ą¬°ą¬£ ą¬Ŗą¬°ąą¬Æąą¬Æą¬Øąą¬¤ ą¬Ŗą¬°ą¬æą¬¬ą¬°ąą¬¤ąą¬¤ą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5234 +msgid "Fit Page _Width" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ ą¬ą¬øą¬¾ą¬° ą¬øą¬¹ą¬æą¬¤ ą¬®ąą¬³ ą¬ą¬°ą¬Øąą¬¤ą (_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5235 +msgid "Make the current document fill the window width" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ą¬¤ą¬æą¬ ą¬¦ą¬²ą¬æą¬²ą¬ą ą±ą¬æą¬£ąą¬”ą ą¬ ą¬øą¬¾ą¬° ą¬ ą¬Øąą¬Æą¬¾ąą ą¬®ąą¬³ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5302 +msgid "Page" +msgstr "ą¬Ŗąą¬·ąą¬ ą¬¾" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5303 +msgid "Select Page" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ ą¬ąą¬Ø ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¬¦ą¬²ą¬æą¬²" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą¬¶ąą¬°ąą¬·ą¬:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą¬ ą¬¬ą¬øąą¬„ą¬¾ą¬Ø:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą¬¬ą¬æą¬·ą:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ą¬²ąą¬ą¬:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą¬øąą¬ą¬ ą¬¶ą¬¬ąą¬¦:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą¬Ŗąą¬°ą¬Æąą¬ą¬:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą¬øąą¬°ą¬·ąą¬ą¬¾:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą¬øąą¬°ąą¬·ąą¬:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą¬Ø ą¬ą¬°ą¬¾ą¬Æą¬¾ą¬ą¬ą¬æ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ ą¬øą¬ą¬ąą¬Æą¬¾:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą¬ ą¬Øąą¬ąą¬³ąą¬¤:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą¬øą¬ąą¬ą¬æą¬ą¬°ą¬£ ą¬¶ąą¬³ą:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą¬øąą¬°ą¬ąą¬·ą¬¾:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą¬Ŗąą¬·ąą¬ ą¬¾ ą¬ą¬ą¬¾ą¬°:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ą¬ą¬æą¬ą¬æ ą¬Øąą¬¹ąą¬" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬Øą¬æą¬°ąą¬§ą¬¾ą¬°ą¬æą¬¤:ą¬®ą¬æą¬²ą¬æą¬®ą¬æą¬ą¬°" + +#: ../properties/ev-properties-view.c:284 +#, fuzzy, c-format +#| msgid "%.0f x %.0f mm" +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f ą¬®ą¬æą¬²ą¬æą¬®ą¬æą¬ą¬°" + +#: ../properties/ev-properties-view.c:288 +#, fuzzy, c-format +#| msgid "%.2f x %.2f inch" +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f ą¬ą¬ąą¬" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¬ą¬æą¬¤ąą¬°ą¬Ŗą¬ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¬ą¬”ąą¬ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d %d ą¬°)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ą¬°" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#, fuzzy +#| msgid "Preparing to print ..." +msgid "Preparing to printā¦" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬Ŗąą¬°ą¬øąą¬¤ąą¬¤ ą¬¹ąą¬ą¬ ą¬ą¬æ ..." + +#: ../libview/ev-print-operation.c:336 +#, fuzzy +#| msgid "Finishing..." +msgid "Finishingā¦" +msgstr "ą¬øą¬®ą¬¾ą¬Ŗąą¬¤ ą¬ą¬°ąą¬ ą¬ą¬æ..." + +#: ../libview/ev-print-operation.c:338 +#, fuzzy, c-format +#| msgid "Printing page %d of %d..." +msgid "Printing page %d of %dā¦" +msgstr "%d ą¬° %d ą¬Ŗąą¬·ąą¬ ą¬¾ą¬ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą¬ą¬¹ą¬æ ą¬®ąą¬¦ąą¬°ą¬£ąą¬°ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬Ŗąą¬°ą¬ąą¬°ą¬æąą¬¾ ą¬øą¬®ą¬°ąą¬„ą¬æą¬¤ ą¬Øąą¬¹ąą¬ą„¤" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą¬ ą¬¬ąą¬§ ą¬Ŗąą¬·ąą¬ ą¬¾ ą¬ąą¬Ø" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą¬ąą¬¤ą¬¾ą¬¬ą¬Øą" + +#: ../libview/ev-print-operation.c:1229 +#, fuzzy +#| msgid "Your print range selection does not include any page" +msgid "Your print range selection does not include any pages" +msgstr "ą¬ą¬Ŗą¬£ą¬ąą¬ą¬° ą¬®ąą¬¦ąą¬°ą¬£ ą¬Ŗą¬°ą¬æą¬øą¬° ą¬ąą¬Ø ą¬ąą¬£ą¬øą¬æ ą¬Ŗąą¬·ąą¬ ą¬¾ą¬ą ą¬ ą¬Øąą¬¤ą¬°ąą¬ąą¬ąą¬¤ ą¬ą¬°ąą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą¬Ŗąą¬·ąą¬ ą¬¾ %d ą¬ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¬ą¬Ŗą¬°ą¬ą ą¬øąą¬ąą¬°ąą¬² ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¬¤ą¬³ą¬ą ą¬øąą¬ąą¬°ąą¬² ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¬¦ąą¬°ąą¬¶ąą¬Æą¬ą ą¬ą¬Ŗą¬°ą¬ą ą¬øąą¬ąą¬°ąą¬² ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¬¦ąą¬°ąą¬¶ąą¬Æą¬ą ą¬¤ą¬³ą¬ą ą¬øąą¬ąą¬°ąą¬² ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬¦ąą¬°ąą¬¶ąą¬Æ" + +#: ../libview/ev-view-presentation.c:673 +msgid "Jump to page:" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą:" + +#: ../libview/ev-view-presentation.c:975 +#, fuzzy +#| msgid "End of presentation. Press Escape to exit." +msgid "End of presentation. Click to exit." +msgstr "ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬øą¬®ą¬¾ą¬Ŗąą¬¤ą¬æ. ą¬Ŗąą¬°ą¬øąą¬„ą¬¾ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ Escapeą¬ą ą¬¦ą¬¬ą¬¾ą¬Øąą¬¤ą." + +#: ../libview/ev-view.c:1727 +msgid "Go to first page" +msgstr "ą¬Ŗąą¬°ą¬„ą¬® ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1729 +msgid "Go to previous page" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1731 +msgid "Go to next page" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1733 +msgid "Go to last page" +msgstr "ą¬¶ąą¬· ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1735 +msgid "Go to page" +msgstr "ą¬ą¬¹ą¬æ ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1737 +msgid "Find" +msgstr "ą¬ąą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1765 +#, c-format +msgid "Go to page %s" +msgstr "%s ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą %s ą¬«ą¬¾ą¬ą¬²ą¬°ą" + +#: ../libview/ev-view.c:1774 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą¬«ą¬¾ą¬ą¬²ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:1782 +#, c-format +msgid "Launch %s" +msgstr "%s ą¬ą ą¬ą¬³ą¬¾ą¬Øąą¬¤ą" + +#: ../libview/ev-view.c:3926 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +#, fuzzy +#| msgid "Loading..." +msgid "Loadingā¦" +msgstr "ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą ..." + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą¬ąą¬ą¬Øąą¬¤ą:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5104 +msgid "Find Pre_vious" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬ąą¬ą¬Øąą¬¤ą (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą¬øą¬Øąą¬§ą¬¾ą¬Ø ą¬Ŗą¬ą¬ąą¬¤ą¬æą¬° ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬ą¬Ŗą¬øąą¬„ą¬æą¬¤ą¬æą¬ą ą¬ąą¬ą¬Øąą¬¤ą" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5102 +msgid "Find Ne_xt" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬ąą¬ą¬Øąą¬¤ą (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą¬øą¬Øąą¬§ą¬¾ą¬Ø ą¬Ŗą¬ą¬ąą¬¤ą¬æą¬° ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą ą¬ą¬Ŗą¬øąą¬„ą¬æą¬¤ą¬æą¬ą ą¬ąą¬ą¬Øąą¬¤ą" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą¬ ą¬ąą¬·ą¬° ą¬Øą¬æą¬°ąą¬¦ąą¬¦ą¬æą¬·ąą¬ (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą¬ ą¬ąą¬·ą¬° ą¬Øą¬æą¬°ąą¬¦ąą¬¦ą¬æą¬·ąą¬ ą¬ ą¬Øąą¬øą¬Øąą¬§ą¬¾ą¬Øą¬ą ą¬ ą¬¦ą¬³ą¬¬ą¬¦ą¬³ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą¬¦ą¬²ą¬æą¬² ą¬Ŗą¬¾ą¬ą¬ ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤" + +#: ../shell/ev-convert-metadata.c:88 +#, fuzzy, c-format +#| msgid "Starting %s" +msgid "Converting %s" +msgstr "ą¬°ąą¬Ŗą¬¾ą¬Øąą¬¤ą¬°ą¬æą¬¤ ą¬ą¬°ąą¬ą¬æ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¬Øą¬æą¬ą¬ą¬°ą ą¬¬ąąą¬¬ą¬¹ąą¬¤ ą¬¹ąą¬ą¬„ą¬æą¬¬ą¬¾ ą¬ąą¬ą¬æą¬ ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬ąą¬²ą¬Øąą¬¤ą" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¬ą¬¹ą¬æ ą¬¦ą¬²ą¬æą¬²ą¬ą¬æ ą¬¤ą¬¾ą¬³ą¬ą¬æą¬¤ ą¬ ą¬ą ą¬ą¬¬ą¬ ą¬ąą¬¬ą¬³ ą¬øą¬ ą¬æą¬ ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ ą¬ą¬°ą¬£ ą¬ą¬°ą¬æ ą¬ą¬¹ą¬¾ą¬ą ą¬Ŗą¬¢ą¬æą¬¹ąą¬¬ą„¤" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą¬¦ą¬²ą¬²ą¬æą¬ą ą¬ ą¬Ø-ą¬²ą¬ ą¬ą¬°ą¬Øąą¬¤ą (_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ ą¬ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ ą¬ą¬¬ą¬¶ąą¬Æą¬" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ā%sā ą¬¦ą¬²ą¬æą¬²ą¬ą¬æ ą¬¤ą¬¾ą¬³ą¬ą¬æą¬¤ ą¬ ą¬ą¬æ ą¬ą¬¬ą¬ ą¬ą¬¹ą¬¾ą¬ą ą¬ąą¬²ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬ąą¬ą¬æą¬ ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ ą¬ą¬¬ą¬¶ąą¬Æą¬ą„¤" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ą¬ąą¬ąą¬¤ (_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą¬ ą¬¤ą¬æą¬¶ą¬æą¬ąą¬° ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ą¬ąą¬¤ą¬ą ą¬ąą¬²ą¬æą¬Æą¬¾ą¬ą¬Øąą¬¤ą (_i)" + +#: ../shell/ev-password-view.c:380 +#, fuzzy +#| msgid "Remember password until you _logout" +msgid "Remember password until you _log out" +msgstr "ą¬²ą¬ą¬ą¬ą¬ ą¬¹ąą¬¬ą¬¾ ą¬Ŗą¬°ąą¬Æąąą¬Øąą¬¤ ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ą¬ą ą¬®ą¬Øą ą¬°ą¬ą¬Øąą¬¤ą (_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą¬øą¬¬ąą¬¦ą¬æą¬Ø ą¬Ŗą¬¾ą¬ą¬ ą¬®ą¬Øąą¬°ą¬ą¬Øąą¬¤ą (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą¬ąą¬£ą¬§ą¬°ąą¬®" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą¬øą¬¾ą¬§ą¬¾ą¬°ą¬£" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą¬ ą¬ąą¬·ą¬°ą¬°ąą¬Ŗą¬ąą¬”ą¬¼ą¬æą¬" + +#: ../shell/ev-properties-dialog.c:118 +#, fuzzy +#| msgid "Document Viewer" +msgid "Document License" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¬ ą¬ąą¬·ą¬°ą¬°ąą¬Ŗ" + +#: ../shell/ev-properties-fonts.c:162 +#, fuzzy, c-format +#| msgid "Gathering font information... %3d%%" +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą¬ ą¬ąą¬·ą¬°ą¬°ąą¬Ŗ ą¬øąą¬ą¬Øą¬¾ą¬ą ą¬øą¬ą¬ąą¬°ą¬¹ ą¬ą¬°ąą¬ ą¬ą¬æ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą¬øąą¬¤ą¬°ą¬ąą¬”ą¬¼ą¬æą¬" + +#: ../shell/ev-sidebar-links.c:335 +#, fuzzy +#| msgid "Print" +msgid "Printā¦" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą¬ ą¬Øąą¬ąą¬°ą¬®ą¬£ą¬æą¬ą¬¾" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ą¬ąą¬·ąą¬¦ąą¬° ą¬ą¬æą¬¤ąą¬°" + +#: ../shell/ev-window.c:840 +#, fuzzy, c-format +#| msgid "Page %s - %s" +msgid "Page %s ā %s" +msgstr "ą¬Ŗąą¬·ąą¬ ą¬¾ %s - %s" + +#: ../shell/ev-window.c:842 +#, c-format +msgid "Page %s" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ %s" + +#: ../shell/ev-window.c:1300 +msgid "The document contains no pages" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬°ą ą¬ąą¬£ą¬øą¬æ ą¬Ŗąą¬·ąą¬ ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../shell/ev-window.c:1303 +msgid "The document contains only empty pages" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬°ą ą¬ąą¬¬ą¬³ ą¬ą¬¾ą¬²ą¬æ ą¬Ŗąą¬·ąą¬ ą¬¾ą¬ąą¬”ą¬¼ą¬æą¬ ą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:1497 ../shell/ev-window.c:1663 +msgid "Unable to open document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬ąą¬²ą¬æą¬¬ą¬¾ą¬°ą ą¬ ą¬øą¬®ą¬°ąą¬„" + +#: ../shell/ev-window.c:1634 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sāą¬°ą ą¬¦ą¬²ą¬æą¬² ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:1776 ../shell/ev-window.c:2054 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ (%d%%)" + +#: ../shell/ev-window.c:1809 +#, fuzzy +#| msgid "Failed to reload document." +msgid "Failed to load remote file." +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬Ŗąą¬Øą¬°ąą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³" + +#: ../shell/ev-window.c:1998 +#, c-format +msgid "Reloading document from %s" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬Ŗąą¬Øą¬°ąą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ %s" + +#: ../shell/ev-window.c:2030 +msgid "Failed to reload document." +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬Ŗąą¬Øą¬°ąą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬¬ą¬æą¬«ą¬³" + +#: ../shell/ev-window.c:2185 +msgid "Open Document" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬ąą¬²ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:2483 +#, c-format +msgid "Saving document to %s" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą %są¬°ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:2486 +#, c-format +msgid "Saving attachment to %s" +msgstr "%s ą¬°ą ą¬øą¬ą¬²ą¬ąą¬Øą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:2489 +#, c-format +msgid "Saving image to %s" +msgstr "%s ą¬°ą ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:2533 ../shell/ev-window.c:2633 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¬«ą¬¾ą¬ą¬²ą¬ą ā%sā ą¬ą¬¾ą¬¬ą¬°ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ąą„¤" + +#: ../shell/ev-window.c:2564 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą¬¦ą¬²ą¬æą¬² ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ (%d%%)" + +#: ../shell/ev-window.c:2568 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą¬øą¬ą¬øą¬²ą¬ąą¬Øą¬ą ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ (%d%%)" + +#: ../shell/ev-window.c:2572 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ (%d%%)" + +#: ../shell/ev-window.c:2696 +msgid "Save a Copy" +msgstr "ą¬ąą¬ą¬æą¬ ą¬Ŗąą¬°ą¬¤ą¬æą¬²ą¬æą¬Ŗą¬æ ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:2964 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą¬§ą¬¾ą¬”ą¬¼ą¬æą¬°ą ą¬„ą¬æą¬¬ą¬¾ %d ą¬¬ą¬³ą¬ą¬¾ ą¬ą¬¾ą¬°ąą¬Æąą" +msgstr[1] "ą¬§ą¬¾ą¬”ą¬¼ą¬æą¬°ą ą¬„ą¬æą¬¬ą¬¾ %d ą¬¬ą¬³ą¬ą¬¾ ą¬ą¬¾ą¬°ąą¬Æąą" + +#: ../shell/ev-window.c:3077 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą¬ą¬¾ą¬°ąą¬Æąą ā%sāą¬ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:3289 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą¬¬ą¬Øąą¬¦ ą¬¹ąą¬¬ą¬¾ ą¬Ŗąą¬°ąą¬¬ą¬°ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬¾ą¬°ąą¬Æąą ā%sā ą¬øą¬®ą¬¾ą¬Ŗąą¬¤ ą¬¹ąą¬¬ą¬¾ ą¬Ŗą¬°ąą¬Æąąą¬Øąą¬¤ ą¬ ą¬Ŗąą¬ąą¬·ą¬¾ ą¬ą¬°ą¬æą¬¬ą ą¬ą¬æ?" + +#: ../shell/ev-window.c:3292 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ą¬øąą¬ ą¬¾ą¬°ą %d ą¬ą¬æ ą¬®ąą¬¦ąą¬°ą¬£ą ą¬ą¬¾ą¬°ąą¬Æąą ą¬øą¬ąą¬°ą¬æą ą¬ ą¬ą¬æą„¤ ą¬¬ą¬Øąą¬¦ ą¬¹ąą¬¬ą¬¾ ą¬Ŗąą¬°ąą¬¬ą¬°ą ą¬®ąą¬¦ąą¬°ą¬£ą ą¬øą¬®ą¬¾ą¬Ŗąą¬¤ ą¬¹ąą¬¬ą¬¾ ą¬Ŗą¬°ąą¬Æąąą¬Øąą¬¤ " +"ą¬ ą¬Ŗąą¬ąą¬·ą¬¾ ą¬ą¬°ą¬æą¬¬ą ą¬ą¬æ?" + +#: ../shell/ev-window.c:3304 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą¬Æą¬¦ą¬æ ą¬ą¬Ŗą¬£ ą¬ą¬¹ą¬æ ą±ą¬æą¬£ąą¬”ąą¬ą ą¬¬ą¬Øąą¬¦ ą¬ą¬°ą¬æą¬¦ą¬æą¬ ą¬Øąą¬¤ą¬æ, ą¬¤ąą¬¬ą ą¬¬ą¬³ą¬ą¬¾ ą¬®ąą¬¦ąą¬°ą¬£ą ą¬ą¬¾ą¬°ąą¬Æąąą¬ąą¬”ą¬¼ą¬æą¬ą ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬¾ą¬Æą¬¾ą¬ą¬Ŗą¬¾ą¬°ą¬æą¬¬ ą¬Øą¬¾ą¬¹ą¬æą¬ą„¤" + +#: ../shell/ev-window.c:3308 +msgid "Cancel _print and Close" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą ą¬ą¬¬ą¬ ą¬¬ą¬Øąą¬¦ą¬ą¬°ą¬Øąą¬¤ąą¬ą ą¬¬ą¬¾ą¬¤ą¬æą¬² ą¬ą¬°ą¬Øąą¬¤ą (_p)" + +#: ../shell/ev-window.c:3312 +msgid "Close _after Printing" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬Ŗą¬°ą ą¬¬ą¬Øąą¬¦ ą¬ą¬°ą¬Øąą¬¤ą (_a)" + +#: ../shell/ev-window.c:3878 +msgid "Toolbar Editor" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æ ą¬øą¬®ąą¬Ŗą¬¾ą¬¦ą¬" + +#: ../shell/ev-window.c:4017 +msgid "There was an error displaying help" +msgstr "ą¬øą¬¹ą¬¾ąą¬¤ą¬¾ ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬øą¬®ąą¬°ą ą¬ąą¬ą¬æą¬ ą¬¤ąą¬°ąą¬ą¬æ" + +#: ../shell/ev-window.c:4228 +#, fuzzy, c-format +#| msgid "" +#| "Document Viewer.\n" +#| "Using poppler %s (%s)" +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą¬¦ą¬²ą¬æą¬² ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬ą„¤\n" +"ą¬Ŗąą¬Ŗąą¬²ą¬° %s (%s) ą¬¬ąą¬Æą¬¬ą¬¹ą¬¾ą¬° ą¬ą¬°ąą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:4259 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" + +#: ../shell/ev-window.c:4263 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince 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.\n" + +#: ../shell/ev-window.c:4267 +#, fuzzy +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4292 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4295 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4301 +msgid "translator-credits" +msgstr "ą¬¶ąą¬ąą¬°ą¬¾ą¬ą¬¶ą ą¬¬ąą¬¹ąą¬°ą¬¾ <arya_subhransu@yahoo.co.in>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4575 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą¬ą¬¹ą¬æ ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬°ą %d ą¬®ą¬æą¬³ą¬æą¬²ą¬¾" +msgstr[1] "ą¬ą¬¹ą¬æ ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬°ą %d ą¬®ą¬æą¬³ą¬æą¬²ą¬¾" + +#: ../shell/ev-window.c:4583 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ą¬øą¬Øąą¬§ą¬¾ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ %3d%% ą¬¬ą¬³ą¬ą¬¾ ą¬ ą¬ą¬æ" + +#: ../shell/ev-window.c:5070 +msgid "_File" +msgstr "ą¬«ą¬¾ą¬ą¬² (_F)" + +#: ../shell/ev-window.c:5071 +msgid "_Edit" +msgstr "ą¬øą¬®ąą¬Ŗą¬¾ą¬¦ą¬Ø ą¬ą¬°ą¬Øąą¬¤ą (_E)" + +#: ../shell/ev-window.c:5072 +msgid "_View" +msgstr "ą¬¦ąą¬°ąą¬¶ąą¬Æ (_V)" + +#: ../shell/ev-window.c:5073 +msgid "_Go" +msgstr "ą¬Æą¬¾ą¬ą¬Øąą¬¤ą (_G)" + +#: ../shell/ev-window.c:5074 +msgid "_Help" +msgstr "ą¬øą¬¹ą¬¾ąą¬¤ą¬¾ (_H)" + +#. File menu +#: ../shell/ev-window.c:5077 ../shell/ev-window.c:5342 +#, fuzzy +#| msgid "_Open..." +msgid "_Openā¦" +msgstr "ą¬ąą¬²ą¬Øąą¬¤ą ... (_O)" + +#: ../shell/ev-window.c:5078 ../shell/ev-window.c:5343 +msgid "Open an existing document" +msgstr "ą¬ąą¬ą¬æą¬ ą¬ ą¬¬ą¬øąą¬„ą¬æą¬¤ ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬ąą¬²ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5080 +msgid "Op_en a Copy" +msgstr "ą¬ąą¬ą¬æą¬ ą¬Øą¬ą¬²ą¬ą ą¬ąą¬²ą¬Øąą¬¤ą (_e)" + +#: ../shell/ev-window.c:5081 +msgid "Open a copy of the current document in a new window" +msgstr "ą¬¬ą¬°ąą¬¤ąą¬¤ą¬®ą¬¾ą¬Ø ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ąą¬ą¬æą¬ ą¬Øą¬ą¬²ą¬ą ą¬Øąą¬¤ą¬Ø ą±ą¬æą¬£ąą¬”ąą¬°ą ą¬ąą¬²ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5083 +#, fuzzy +#| msgid "Save a Copy" +msgid "_Save a Copyā¦" +msgstr "ą¬ąą¬ą¬æą¬ ą¬Ŗąą¬°ą¬¤ą¬æą¬²ą¬æą¬Ŗą¬æ ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5084 +msgid "Save a copy of the current document" +msgstr "ą¬¬ą¬°ąą¬¤ąą¬¤ą¬®ą¬¾ą¬Ø ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ąą¬ą¬æą¬ ą¬Øą¬ą¬²ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5086 +#, fuzzy +#| msgid "Print" +msgid "_Printā¦" +msgstr "ą¬®ąą¬¦ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5089 +msgid "P_roperties" +msgstr "ą¬ąą¬£ą¬§ą¬°ąą¬® (_r)" + +#: ../shell/ev-window.c:5097 +msgid "Select _All" +msgstr "ą¬øą¬¬ąą¬ą¬æą¬ą¬æ ą¬ąą¬Ø ą¬ą¬°ą¬Øąą¬¤ą (_A)" + +#: ../shell/ev-window.c:5099 +#, fuzzy +#| msgid "Find" +msgid "_Findā¦" +msgstr "ą¬ąą¬ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5100 +msgid "Find a word or phrase in the document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬°ą ą¬ąą¬ą¬æą¬ ą¬¶ą¬¬ąą¬¦ ą¬ą¬æą¬®ąą¬¬ą¬¾ ą¬¬ą¬¾ą¬ąą¬Æą¬¾ą¬ą¬¶ą¬ą ą¬ąą¬ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5106 +msgid "T_oolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æ (_o)" + +#: ../shell/ev-window.c:5108 +msgid "Rotate _Left" +msgstr "ą¬¬ą¬¾ą¬®ą¬ą ą¬ąą¬°ą¬¾ą¬Øąą¬¤ą (_L)" + +#: ../shell/ev-window.c:5110 +msgid "Rotate _Right" +msgstr "ą¬”ą¬¾ą¬¹ą¬¾ą¬£ą¬ą ą¬ąą¬°ą¬¾ą¬Øąą¬¤ą (_R)" + +#: ../shell/ev-window.c:5121 +msgid "_Reload" +msgstr "ą¬Ŗąą¬Øą¬°ąą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą (_R)" + +#: ../shell/ev-window.c:5122 +msgid "Reload the document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬Ŗąą¬Øą¬°ąą¬§ą¬¾ą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5125 +msgid "Auto_scroll" +msgstr "ą¬øąą±ąą¬ ą¬¦ąą¬¶ąąą¬¬ą¬¦ą¬³ (_s)" + +#: ../shell/ev-window.c:5135 +msgid "_First Page" +msgstr "ą¬Ŗąą¬°ą¬„ą¬® ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ (_F)" + +#: ../shell/ev-window.c:5136 +msgid "Go to the first page" +msgstr "ą¬Ŗąą¬°ą¬„ą¬® ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5138 +msgid "_Last Page" +msgstr "ą¬¶ąą¬· ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ (_L)" + +#: ../shell/ev-window.c:5139 +msgid "Go to the last page" +msgstr "ą¬¶ąą¬· ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą" + +#. Help menu +#: ../shell/ev-window.c:5143 +msgid "_Contents" +msgstr "ą¬øąą¬ąą¬Ŗą¬¤ąą¬° (_C)" + +#: ../shell/ev-window.c:5146 +msgid "_About" +msgstr "ą¬¬ą¬æą¬¬ą¬°ą¬£ą (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5150 +msgid "Leave Fullscreen" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ąą¬£ąą¬£ ą¬Ŗą¬°ą¬¦ą¬¾ ą¬§ą¬¾ą¬°ą¬¾ą¬ą ą¬ą¬¾ą¬”ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5151 +msgid "Leave fullscreen mode" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ąą¬£ąą¬£ ą¬Ŗą¬°ą¬¦ą¬¾ ą¬ ą¬¬ą¬øąą¬„ą¬¾ą¬ą ą¬ą¬¾ą¬”ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5153 +msgid "Start Presentation" +msgstr "ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5154 +msgid "Start a presentation" +msgstr "ą¬ąą¬ą¬æą¬ ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ą¬Øąą¬¤ą" + +#. View Menu +#: ../shell/ev-window.c:5213 +msgid "_Toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æ (_T)" + +#: ../shell/ev-window.c:5214 +msgid "Show or hide the toolbar" +msgstr "ą¬øą¬¾ą¬§ą¬Ø ą¬Ŗą¬ą¬æą¬ą ą¬¦ąą¬ą¬¾ą¬Øąą¬¤ą ą¬ą¬æą¬®ąą¬¬ą¬¾ ą¬²ąą¬ąą¬ą¬¾ąą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5216 +msgid "Side _Pane" +msgstr "ą¬Ŗą¬¾ą¬°ąą¬¶ąą¬¬ ą¬«ą¬³ą¬ (_P)" + +#: ../shell/ev-window.c:5217 +msgid "Show or hide the side pane" +msgstr "ą¬Ŗą¬¾ą¬°ąą¬¶ąą¬¬ ą¬«ą¬³ą¬ą¬ą ą¬¦ąą¬ą¬¾ą¬Øąą¬¤ą ą¬ą¬æą¬®ąą¬¬ą¬¾ ą¬²ąą¬ąą¬ąą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5219 +msgid "_Continuous" +msgstr "ą¬Øą¬æą¬°ą¬¬ą¬æą¬ąą¬ą¬æą¬Øąą¬Ø (_C) " + +#: ../shell/ev-window.c:5220 +msgid "Show the entire document" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ąą¬£ąą¬£ ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬¦ąą¬ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5222 +msgid "_Dual" +msgstr "ą¬¦ąą¬¬ą (_D)" + +#: ../shell/ev-window.c:5223 +msgid "Show two pages at once" +msgstr "ą¬¦ąą¬ą¬ą¬æ ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾ą¬ą ą¬ą¬ą¬¤ąą¬° ą¬¦ąą¬ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5225 +msgid "_Fullscreen" +msgstr "ą¬øą¬®ąą¬Ŗąą¬°ąą¬£ ą¬Ŗą¬°ą¬¦ą¬¾ (_F)" + +#: ../shell/ev-window.c:5226 +msgid "Expand the window to fill the screen" +msgstr "ą¬Ŗą¬°ą¬¦ą¬¾ ą¬Ŗąą¬°ąą¬£ąą¬£ ą¬¹ąą¬¬ą¬¾ ą¬Ŗą¬°ąą¬Æąą¬Æą¬Øąą¬¤ ą±ą¬æą¬£ąą¬”ąą¬ą ą¬Ŗąą¬°ą¬øą¬¾ą¬°ą¬æą¬¤ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5228 +msgid "Pre_sentation" +msgstr "ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø (_s)" + +#: ../shell/ev-window.c:5229 +msgid "Run document as a presentation" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬ą ą¬ąą¬ą¬æą¬ ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬ą¬¾ą¬¬ą¬°ą ą¬ą¬³ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5237 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5238 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5246 +msgid "_Open Link" +msgstr "ą¬øą¬ą¬Æąą¬ ą¬ąą¬²ą¬Øąą¬¤ą (_O)" + +#: ../shell/ev-window.c:5248 +msgid "_Go To" +msgstr "ą¬ą¬ ą¬¾ą¬ą ą¬Æą¬¾ą¬ą¬Øąą¬¤ą (_G)" + +#: ../shell/ev-window.c:5250 +msgid "Open in New _Window" +msgstr "ą¬Øąą¬¤ą¬Ø ą±ą¬æą¬£ąą¬”ąą¬°ą ą¬ąą¬²ą¬Øąą¬¤ą (_W)" + +#: ../shell/ev-window.c:5252 +msgid "_Copy Link Address" +msgstr "ą¬øą¬ą¬Æąą¬ ą¬ ą¬æą¬ą¬£ą¬¾ ą¬Øą¬ą¬² ą¬ą¬°ą¬Øąą¬¤ą (_C)" + +#: ../shell/ev-window.c:5254 +#, fuzzy +#| msgid "_Save Image As..." +msgid "_Save Image Asā¦" +msgstr "ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬ą¬¹ą¬æą¬Ŗą¬°ą¬æ ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą (_S)..." + +#: ../shell/ev-window.c:5256 +msgid "Copy _Image" +msgstr "ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬Øą¬ą¬² ą¬ą¬°ą¬Øąą¬¤ą (_I)" + +#: ../shell/ev-window.c:5261 +#, fuzzy +#| msgid "Save Attachment" +msgid "_Open Attachment" +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5263 +#, fuzzy +#| msgid "Save Attachment" +msgid "_Save Attachment Asā¦" +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5316 +msgid "Zoom" +msgstr "ą¬øą¬¾ą¬Øą¬¬ą¬” ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5318 +msgid "Adjust the zoom level" +msgstr "ą¬øą¬¾ą¬Øą¬¬ą¬” ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬øąą¬¤ą¬°ą¬ą ą¬Øą¬æąą¬Øąą¬¤ąą¬°ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5328 +msgid "Navigation" +msgstr "ą¬Ŗą¬„ą¬Ŗą¬¦ą¬°ąą¬¶ą¬Ø" + +#: ../shell/ev-window.c:5330 +msgid "Back" +msgstr "ą¬Ŗą¬ą¬ą" + +#. translators: this is the history action +#: ../shell/ev-window.c:5333 +msgid "Move across visited pages" +msgstr "ą¬Ŗą¬°ą¬æą¬¦ą¬°ąą¬¶ą¬æą¬¤ ą¬Ŗąą¬·ąą¬ ą¬¾ą¬ąą¬”ą¬¼ą¬æą¬ ą¬ą¬¾ą¬°ą¬æą¬Ŗą¬ą ą¬ą¬¤ą¬æ ą¬ą¬°ą¬Øąą¬¤ą" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5363 +msgid "Previous" +msgstr "ą¬Ŗąą¬°ąą¬¬ą¬¬ą¬°ąą¬¤ąą¬¤ą" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5368 +msgid "Next" +msgstr "ą¬Ŗą¬°ą¬¬ą¬°ąą¬¤ąą¬¤ą" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5372 +msgid "Zoom In" +msgstr "ą¬¬ą¬” ą¬ą¬°ą¬Øąą¬¤ą" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5376 +msgid "Zoom Out" +msgstr "ą¬øą¬¾ą¬Ø ą¬ą¬°ą¬Øąą¬¤ą" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5384 +msgid "Fit Width" +msgstr "ą¬ą¬øą¬¾ą¬° ą¬øą¬¹ą¬æą¬¤ ą¬®ąą¬³ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5545 ../shell/ev-window.c:5562 +msgid "Unable to launch external application." +msgstr "ą¬¬ą¬¾ą¬°ąą¬¹ąą ą¬Ŗąą¬°ąąą¬ą¬ą ą¬ą¬°ą¬®ąą¬ ą¬ą¬°ą¬æą¬¬ą¬¾ą¬°ą ą¬ ą¬øą¬®ą¬°ąą¬„ą„¤" + +#: ../shell/ev-window.c:5619 +msgid "Unable to open external link" +msgstr "ą¬¬ą¬¾ą¬°ąą¬¹ąą ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬ąą¬²ą¬æą¬¬ą¬¾ą¬°ą ą¬ ą¬øą¬®ą¬°ąą¬„" + +#: ../shell/ev-window.c:5786 +msgid "Couldn't find appropriate format to save image" +msgstr "ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬ą¬Ŗą¬Æąą¬ąą¬¤ ą¬¶ąą¬³ą ą¬®ą¬æą¬³ąą¬Øą¬¾ą¬¹ą¬æą¬" + +#: ../shell/ev-window.c:5828 +msgid "The image could not be saved." +msgstr "ą¬Ŗąą¬°ą¬¤ą¬æą¬ą¬¬ą¬æą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬." + +#: ../shell/ev-window.c:5860 +msgid "Save Image" +msgstr "ą¬ą¬æą¬¤ąą¬°ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window.c:5927 +msgid "Unable to open attachment" +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬ąą¬²ą¬æą¬¬ą¬¾ą¬°ą ą¬ ą¬øą¬®ą¬°ąą¬„" + +#: ../shell/ev-window.c:5980 +msgid "The attachment could not be saved." +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬æą¬Ŗą¬¾ą¬°ą¬æą¬²ą¬¾ ą¬Øą¬¾ą¬¹ą¬æą¬ą„¤" + +#: ../shell/ev-window.c:6025 +msgid "Save Attachment" +msgstr "ą¬øą¬ą¬²ą¬ąą¬Øą¬ą¬ą ą¬øą¬ą¬°ą¬ąą¬·ą¬£ ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +#| msgid "%s - Password Required" +msgid "%s ā Password Required" +msgstr "%s - ą¬Ŗąą¬°ą¬¬ąą¬¶ ą¬øą¬ąą¬ąą¬¤ ą¬ą¬¬ą¬¶ąą¬Æą¬" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "ą¬ ą¬Øąą¬²ą¬ąą¬Ø ą¬¦ąą±ą¬¾ą¬°ą¬¾" + +#: ../shell/main.c:72 ../shell/main.c:260 +msgid "MATE Document Viewer" +msgstr "ą¬Øąą¬® ą¬¦ą¬²ą¬æą¬² ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬" + +#: ../shell/main.c:80 +#, fuzzy +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬¦ą¬²ą¬æą¬²ą¬° ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾" + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾" + +#: ../shell/main.c:81 +#, fuzzy +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "ą¬Ŗąą¬°ą¬¦ą¬°ąą¬¶ą¬Ø ą¬ą¬°ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬¦ą¬²ą¬æą¬²ą¬° ą¬Ŗąą¬°ąą¬·ąą¬ ą¬¾" + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "ą¬øą¬ą¬ąą¬Æą¬¾" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "evince ą¬ą ą¬øą¬®ąą¬Ŗąą¬°ąą¬£ąą¬£ ą¬§ą¬¾ą¬°ą¬¾ą¬°ą ą¬ą¬³ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "evince ą¬ą¬Ŗą¬øąą¬„ą¬¾ą¬Ŗą¬Ø ą¬§ą¬¾ą¬°ą¬¾ą¬°ą ą¬ą¬³ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "evince ą¬ą ą¬Ŗąą¬°ą¬¾ą¬ą¬¦ą¬°ąą¬¶ą¬ ą¬ą¬¾ą¬¬ą¬°ą ą¬ą¬²ą¬¾ą¬Øąą¬¤ą" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ą¬¦ą¬²ą¬æą¬²ą¬°ą ą¬ąą¬ą¬æą¬¬ą¬¾ ą¬Ŗą¬¾ą¬ą¬ ą¬ąą¬ą¬æą¬ ą¬¶ą¬¬ąą¬¦ ą¬ą¬æą¬®ąą¬¬ą¬¾ ą¬¬ą¬¾ą¬ąą¬Æą¬¾ą¬ą¬¶" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +#, fuzzy +#| msgid "[FILE...]" +msgid "[FILEā¦]" +msgstr "[ą¬«ą¬¾ą¬ą¬² ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#, fuzzy +#| msgid "" +#| "Boolean options available, true enables thumbnailing and false disables " +#| "the creation of new thumbnails" +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "ą¬¬ąą¬²ą¬æą¬ą¬Ø ą¬¬ą¬æą¬ą¬³ąą¬Ŗ ą¬ą¬Ŗą¬²ą¬¬ąą¬§, ą¬øą¬¤ ą¬ąą¬·ąą¬¦ąą¬°ą¬ą¬æą¬¤ąą¬°ą¬ą ą¬øą¬ąą¬°ą¬æą ą¬ą¬°ą¬æą¬„ą¬¾ą¬ ą¬ą¬¬ą¬ ą¬®ą¬æą¬ ą¬Øąą¬¤ą¬Ø ą¬ąą¬·ąą¬¦ąą¬°ą¬ą¬æą¬¤ąą¬° ą¬Øą¬æą¬°ąą¬®ą¬¾ą¬£ą¬ą ą¬Øą¬æą¬·ąą¬ąą¬°ą¬æą ą¬ą¬°ą¬æą¬„ą¬¾ą¬" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą¬¦ą¬²ą¬æą¬²ą¬° ą¬ąą¬·ąą¬¦ąą¬° ą¬ą¬æą¬¤ąą¬°ą¬£ ą¬Ŗąą¬°ą¬ąą¬°ą¬æąą¬¾ą¬ą ą¬øą¬ąą¬°ą¬æą ą¬ą¬°ą¬Øąą¬¤ą" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą¬¦ą¬²ą¬æą¬² ą¬Ŗą¬¾ą¬ą¬ ą¬ąą¬·ąą¬¦ąą¬° ą¬ą¬æą¬¤ąą¬° ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#, fuzzy +#| msgid "" +#| "Valid command plus arguments for the PDF Document thumbnailer. See " +#| "caja thumbnailer documentation for more information." +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą¬¦ą¬²ą¬æą¬² ą¬ąą¬·ąą¬¦ąą¬°ą¬ą¬æą¬¤ąą¬°ą¬£ ą¬Ŗą¬¾ą¬ą¬ ą¬¬ąą¬§ ą¬Øą¬æą¬°ąą¬¦ąą¬¦ąą¬¶ ą¬øą¬¹ą¬æą¬¤ ą¬øąą±ą¬¤ą¬Øąą¬¤ąą¬°ą¬ą¬°. ą¬Øą¬ą¬æą¬²ą¬ø ą¬ąą¬·ąą¬¦ąą¬°ą¬ą¬æą¬¤ąą¬°ą¬£ ą¬¦ą¬²ą¬æą¬²ą¬æą¬ą¬°ą¬£ ą¬Ŗą¬¾ą¬ą¬ ą¬ ą¬§ą¬æą¬ " +"ą¬øąą¬ą¬Øą¬¾." + diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 00000000..bf3b31c0 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,1950 @@ +# translation of evince.HEAD.po to Punjabi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Amanpreet Singh Alam <aalam@users.sf.net>, 2005,2006,2007,2008, 2009. +# A S Alam <aalam@users.sf.net>, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-08-14 09:01+0000\n" +"PO-Revision-Date: 2010-08-17 07:27+0530\n" +"Last-Translator: A S Alam <aalam@users.sf.net>\n" +"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\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-Generator: Lokalize 1.0\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ąØąØ¾ąØ®ąØæąØ ąØąØæąØ¤ąØ¾ąØ¬ ąØ”ą©ąØą©°ąØŖąØ°ą©ą©±ąØø ąØąØ°ąØØ ąØµąØ¾ąØøąØ¤ą© ąØąØ®ąØ¾ąØąØ” ā%sā ąØąØ²ąØ¾ąØąØ£ ąØ¦ą©ąØ°ąØ¾ąØØ ąØąØ²ąØ¤ą©: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ąØąØ¾ąØ®ąØæąØ ąØąØæąØ¤ąØ¾ąØ¬ ąØ”ą©ąØą©°ąØŖąØ°ą©ą©±ąØø ąØąØ°ąØØ ąØ²ąØ ąØąØ®ąØ¾ąØąØ” ā%sā ąØ«ą©ąØ²ą©ąØ¹ ąØ¹ą©ąØą„¤" + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ąØąØ®ąØ¾ąØąØ” ā%sā ąØ ąØøąØ§ąØ¾ąØ°ąØØ ąØ¢ą©°ąØ ąØØąØ¾ąØ² ąØ¬ą©°ąØ¦ ąØ¹ą© ąØąØą„¤" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ąØą©±ąØ ąØąØ¾ąØ®ąØæąØ ąØ¬ą©ą©±ąØ MIME ąØąØæąØøąØ® ąØØąØ¹ą©ąØ: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ąØąØø ąØąØæąØøąØ® ąØ¦ą© ąØąØ¾ąØ®ąØæąØ ąØąØæąØ¤ąØ¾ąØ¬ ąØØą©ą©° ąØ”ą©ąØą©°ąØŖąØ°ą©ą©±ąØø ąØąØ°ąØØ ąØµąØ¾ąØøąØ¤ą© ąØ¢ą©ą©±ąØąØµą© ąØąØ®ąØ¾ąØąØ” ąØØąØ¹ą©ąØ ąØ²ą©±ąØą©" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ąØ ąØ£ąØąØ¾ąØ£ MIME ąØąØ¾ąØąØŖ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ąØ«ąØ¾ąØąØ² ąØØąØæąØąØ¾ąØ°ąØ¾ ąØ¹ą©" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ąØ ąØąØ¾ąØąØµ ąØµąØæą©±ąØ ąØ«ąØ¾ąØąØ² ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "ąØ ąØąØ¾ąØąØµ %s ąØµąØæą©±ąØ ąØą©ąØ ąØąØæą©±ąØ¤ąØ° ąØØąØ¹ą©ąØ ąØ®ąØæąØ²ąØæąØ" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ąØ¹ąØąØ¾ąØąØ£ ąØ¦ą©ąØ°ąØ¾ąØØ ąØąØ²ąØ¤ą© ąØ¹ą©ą„¤" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ąØąØ²ąØ¤ą© %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ąØ¹ąØ¾ąØøąØ°ąØø ąØąØæąØ¤ąØ¾ąØ¬ąØ¾ąØ" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØąØ²ąØ¤ ąØ«ąØ¾ąØ°ąØ®ą©ąØ ąØ¹ą©" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØąØ ąØ«ąØ¾ąØąØ²ąØ¾ąØ ąØØąØ¾ąØ² ąØ¬ąØ£ąØ¾ąØąØ ąØąØæąØ ąØ¹ą©ą„¤ ąØą©°ąØØą©ąØ¹ąØ¾ąØ ąØµąØæą©±ąØą©ąØ ąØą©±ąØ ąØąØ¾ąØ ąØµą©±ąØ§ ąØ«ąØ¾ąØąØ²ąØ¾ąØ ąØØą©ą©° ąØµąØ°ąØ¤ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ąØ¾ ąØ¹ą©ą„¤" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØąØ²ąØ¤ ąØ«ąØ¾ąØ°ąØ®ą©ąØ ąØ¹ą©" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ąØąØ¹ ąØą©°ąØ® ąØŖąØ¬ąØ²ąØæąØ ąØ”ą©ąØ®ą©ąØØ ąØµąØæą©±ąØ ąØ¹ą©" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ąØ¹ąØ¾ąØ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ąØØąØ¹ą©ąØ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type ą©§" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type ą©©" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ąØ ąØ£ąØąØ¾ąØ£ ąØ«ą©ąØąØ ąØąØ¾ąØąØŖ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ąØą©ąØ ąØØąØ¾ąØ ąØØąØ¹ą©ąØ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ąØą©°ąØ¬ą©ą©±ąØ” ąØøąØ¬-ąØøą©ą©±ąØ" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ąØą©°ąØ¬ą©ą©±ąØ”" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ąØą©°ąØ¬ą©ą©±ąØ” ąØØąØ¹ą©ąØ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ąØąØ²ąØ¤ ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ąØąØ®ąØŖąØ°ą©ą©±ąØø ąØøąØ²ąØ¾ąØąØ”ąØ¾ąØ" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ąØą©ąØ ąØąØ²ąØ¤ą© ąØØąØ¹ą©ąØ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ąØ²ą©ą©ą©ąØ¦ą© ąØ®ą©ąØ®ą©ąØ°ą© ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ąØąØ¼ąØæąØŖ ąØ¦ąØøąØ¤ąØąØ¤ ąØØąØ¹ą©ąØ ąØ²ą©±ąØą© ąØąØ¾ ąØøąØąØ¦ą©" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ąØąØ²ąØ¤ ąØąØ¼ąØæąØŖ ąØ«ąØ¾ąØąØ²" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ąØ®ąØ²ąØą©-ąØ«ąØ¾ąØąØ² ąØąØ¼ąØæąØŖ ąØøąØ¹ąØ¾ąØąØ ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ąØ«ąØ¾ąØąØ² ąØą©ąØ²ą©ąØ¹ą© ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ą© ąØ¹ą©" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ąØ«ąØ¾ąØąØ² ąØ¤ą©ąØ ąØ”ąØ¾ąØąØ¾ ąØŖą©ą©ąØ¹ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ąØ¾" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ąØąØ¼ąØæąØŖ ąØąØąØ¾ąØąØµ 'ąØ ąØ«ąØ¾ąØąØ² ąØØąØ¹ą©ąØ ąØ²ą©±ąØą© ąØąØ¾ ąØøąØąØ¦ą©" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ąØ ąØ£ąØąØ¾ąØ£ ąØąØ²ąØ¤ą©" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ā%sā ąØØą©ą©° ąØ²ą©ąØ” ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ā%sā ąØøą©°ąØąØ¾ąØ²ąØ£ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ąØŖą©ąØøąØ-ąØøąØąØ°ąØæąØŖąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ąØØą©±ąØ„ą© ā%sā ąØøą©°ąØąØ¾ąØ²ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ąØØą©±ąØ„ą© ā%sā ąØØą©ą©° ąØą©ąØ²ą©ąØ¹ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ąØØą©±ąØ„ą© ā%sā ąØØą©ą©° ąØą©ąØ²ą©ąØ¹ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ąØ«ąØ¾ąØąØ² ąØąØ¾ąØąØŖ %s (%s) ąØøąØ¹ąØæąØÆą©ąØą© ąØ¹ą©" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ąØøąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ąØøąØ ąØ«ąØ¾ąØąØ²ąØ¾ąØ" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ąØąØ°ąØąØ¼ą© ąØ«ąØ¾ąØąØ² ąØ¬ąØ£ąØ¾ąØąØ£ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ąØąØ°ąØąØ¼ą© ąØ”ąØ¾ąØąØ°ą©ąØąØąØ°ą© ąØ¬ąØ£ąØ¾ąØąØ£ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ąØ«ąØ¾ąØąØ² ąØ ą©ąØ .desktop ąØ«ąØ¾ąØąØ² ąØØąØ¹ą©ąØ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ąØ¬ą©ąØŖąØąØ¾ąØ£ ąØ”ą©ąØøąØąØąØ¾ąØŖ ąØ«ąØ¾ąØąØ² ąØµąØ°ąØąØØ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ąØøąØ¼ą©ąØ°ą© ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ąØąØŖąØ²ą©ąØą©ąØøąØ¼ąØØ ąØąØ®ąØ¾ąØąØ” ąØ²ąØ¾ąØąØØ ąØ¤ą©ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ąØØąØąØ¼ą©ąØ° ąØØąØ¹ą©ąØ ąØąØ°ąØ¦ą©" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ąØ¬ą©ąØŖąØąØ¾ąØ£ ąØ²ąØ¾ąØąØ ąØą©ąØ£: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ URIs 'Type=Link' ąØ”ą©ąØøąØąØąØ¾ąØŖ ąØąØąØąØ°ą© ąØØą©ą©° ąØ¦ąØæą©±ąØ¤ąØ¾ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ąØ¾" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ąØąØ²ąØ¾ąØąØ£ąØÆą©ąØ ąØąØąØąØ® ąØØąØ¹ą©ąØ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ąØøąØ¼ą©ąØøąØ¼ąØØ ąØ®ą©ąØØą©ąØąØ° ąØØąØ¾ąØ² ąØą©ąØØą©ąØąØøąØ¼ąØØ ąØąØÆą©ąØ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ąØøą©°ąØ°ąØąØØąØ¾ ąØøą©°ąØąØ¾ąØ²ąØ£ ąØµąØ¾ąØ²ą© ąØ«ąØ¾ąØąØ² ąØ¦ąØæąØ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ąØ«ąØ¾ąØąØ²" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ąØøąØ¼ą©ąØøąØ¼ąØØ ąØŖąØ°ąØ¬ą©°ąØ§ ID ąØ¦ąØæąØ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ąØøąØ¼ą©ąØøąØ¼ąØØ ąØŖąØ°ąØ¬ą©°ąØ§ ąØą©ąØ£ąØ¾ąØ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ąØøąØ¼ą©ąØøąØ¼ąØØ ąØŖąØ°ąØ¬ą©°ąØ§ ąØą©ąØ£ąØ¾ąØ ąØµą©ąØą©" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ąØµą©ąØą©" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØą©±ąØ¤ą© ąØ¹ąØæąØ²ąØ¾ąØ(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ąØą©ąØ²ąØ¾ąØ° ąØą©±ąØ¤ą© ąØą©ąØ£ą© ąØąØąØąØ® ąØąØ§ąØ°-ąØąØ§ąØ° ąØąØ°ą©" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØ¤ą©ąØ ąØ¹ąØąØ¾ąØ(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØ¤ą©ąØ ąØą©ąØ£ą© ąØąØąØąØ® ąØ¹ąØąØ¾ąØ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØ¹ąØąØ¾ąØ(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ąØą©ąØ£ą© ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØ¹ąØąØ¾ąØ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ąØµą©±ąØąØ°ą©ąØµąØ¾ąØ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "ąØµąØ§ą©ąØ ąØ«ąØæą©±ąØ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ąØŖą©ąØąØ¼ ąØą©ą©ąØ¾ąØ ąØ«ąØæą©±ąØ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ą©«ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "ą©ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ą©®ą©«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "ą©§ą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "ą©§ą©Øą©«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "ą©§ą©«ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "ą©§ą©ą©«%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "ą©Øą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "ą©©ą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "ą©Ŗą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "ą©®ą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "ą©§ą©¬ą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "ą©©ą©Øą©¦ą©¦%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "ą©¬ą©Ŗą©¦ą©¦%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ°ąØøąØ¼ąØ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ąØ®ąØ²ąØą©-ąØŖą©ąØąØ¼ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµą©ąØą©" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖąØ¾ąØ¬ą©°ąØ¦ą©ąØąØ ąØØą©ą©° ąØ ąØ£ąØ”ąØæą©±ąØ ąØ¾ ąØąØ°ą©" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖąØ¾ąØ¬ą©°ąØ¦ą©ąØąØ, ąØąØæąØµą©ąØ ąØąØæ ąØąØ¾ąØŖą© ąØąØ¾ąØ ąØŖąØ°ąØæą©°ąØ ąØąØ¦ąØæ ąØ²ąØ ąØŖąØ¾ąØ¬ą©°ąØ¦ą©, ąØØą©ą©° ąØ ąØ£ąØ”ąØæą©±ąØ ąØ¾ ąØąØ°ą©ą„¤" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ąØąØ°ąØąØ¼ą© ąØ«ąØ¾ąØąØ²ąØ¾ąØ ąØ¹ąØąØ¾ąØ" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ąØøą©ąØąØæą©°ąØ ąØ«ąØ¾ąØąØ² ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ąØąØØą©ąØ® ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ°ąØøąØ¼ąØ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖąØ°ąØæą©°ąØ ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ąØą©ąØ£ąØæąØ ąØŖąØ°ąØæą©°ąØ '%s' ąØ²ą©±ąØąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "ąØŖą©ąØąØ¼ ąØŖąØæą©±ąØą©(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "ąØŖąØæąØąØ²ą© ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "ąØŖą©ąØąØ¼ ąØ ą©±ąØą©(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "ąØ ąØąØ²ą© ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµą©±ąØ”ąØ¾ ąØąØ°ą©" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØøą©ą©°ąØą©ą©" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "ąØąØ¹ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "ąØµąØ§ą©ąØ ąØ«ąØæą©±ąØ(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØØą©ą©° ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ ąØą©±ąØ¤ą© ąØ«ąØæą©±ąØ ąØąØ°ą©" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "ąØŖą©ąØąØ¼ ąØą©ą©ąØ¾ąØ ąØ«ąØæą©±ąØ(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØØą©ą©° ąØµąØæą©°ąØ”ą© ąØą©ą©ąØ¾ąØ 'ąØ ąØ«ąØæą©±ąØ ąØąØ°ą©" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "ąØŖą©ąØąØ¼" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "ąØŖą©ąØąØ¼ ąØą©ąØ£ą©" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ąØąØ¾ąØąØąØ²:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ąØąØæąØąØ¾ąØ£ąØ¾:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ąØµąØæąØøąØ¼ąØ¾:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ąØ²ą©ąØąØ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ąØøąØ¼ąØ¬ąØ¦:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ąØŖąØ°ą©ąØ”ąØæąØąØøąØ°:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ąØąØ°ą©ąØąØąØ°:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ąØ¬ąØ£ąØ¾ąØąØ:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ąØøą©ąØ§ ąØą©ąØ¤ą©:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ąØŖą©ąØąØ¼ąØ¾ąØ ąØ¦ą© ąØąØæąØ£ąØ¤ą©:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ąØ ąØØą©ąØą©ąØ²:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ąØ«ąØ¾ąØ°ąØ®ą©ąØ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ąØøą©ąØ°ą©±ąØąØæąØ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ąØŖą©ąØŖąØ° ąØøąØ¾ąØąØąØ¼:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ąØą©ąØ ąØØąØ¹ą©ąØ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f ąØą©°ąØ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ąØŖą©ąØ°ąØąØ°ą©ąØ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ąØ²ą©ąØ”ąØøąØą©ąØŖ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%2$d ąØµąØæą©±ąØą©ąØ %1$d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr ", %d ąØµąØæą©±ąØą©ąØ" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©ā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØ²ąØ ąØ¤ąØæąØąØ° ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ąØ®ą©ąØą©°ąØ®ąØ² ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©ā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "%2$d ąØµąØæąØą©ąØ %1$d ąØŖą©ąØąØ¼ ąØŖąØ°ąØæą©°ąØ ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©ā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ąØąØø ąØŖąØ°ąØæą©°ąØąØ° ąØą©±ąØ¤ą© ąØŖąØ°ąØæą©°ąØąØæą©°ąØ ąØøąØ¹ąØ¾ąØąØ ąØØąØ¹ą©ąØ ąØ¹ą©ą„¤" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ąØąØ²ąØ¤ ąØŖą©ąØąØ¼ ąØą©ąØ£" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ąØą©ąØ¤ąØ¾ąØµąØØą©" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ąØ¤ą©ąØ¹ąØ¾ąØ”ą© ąØŖąØ°ąØæą©°ąØ ąØ°ą©ąØąØ¼ ąØµąØæą©±ąØ ąØą©ąØ ąØµą© ąØŖą©ąØąØ¼ ąØøąØ¼ąØ¾ąØ®ąØ² ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ąØŖą©ąØąØ¼ ąØøąØą©ąØ²ąØæą©°ąØ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØ¹ą©ąØ£ ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØ²ąØ ąØøą©ą©°ąØą©ą©" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØ¹ą©ąØ£ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØ²ąØ ąØ«ąØæą©±ąØ" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ ąØØą©ą©° ąØą©ąØ£ą© ąØŖąØ°ąØæą©°ąØąØ° ąØŖą©ąØąØ¼ ąØ®ą©ąØ¤ąØ¾ąØ¬ąØ ąØøąØą©ąØ² ąØąØ°ą©ą„¤ ąØ¹ą©ąØ ąØ¦ąØæą©±ąØ¤ąØæąØąØ ąØµąØæą©±ąØą©ąØ ąØąØæąØøą© ąØØą©ą©° ąØą©ąØ£ą©:\n" +"\n" +"ā¢ \"None (ąØą©ąØ ąØØąØ¹ą©ąØ)\": ąØą©ąØ ąØŖą©ąØąØ¼ ąØøąØą©ąØ²ąØæą©°ąØ ąØØąØ¹ą©ąØ ąØą©ąØ¤ą© ąØąØ¾ąØµą©ąØą©ą„¤\n" +"\n" +"ā¢ \"Shrink to Printable Area (ąØŖąØ°ąØæą©°ąØ ąØ¹ą©ąØ£ ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØ²ąØ ąØøą©ą©°ąØą©ą©)\": ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼, ąØą© ąØąØæ ąØŖąØ°ąØæą©°ąØ " +"ąØ¹ą©ąØ£ ąØą©ąØ¤ąØ° ąØ¤ą©ąØ ąØµą©±ąØ§ ąØ¹ą©ąØµą©ąØąØ¾, ąØØą©ą©° ąØŖąØ°ąØæą©°ąØąØ° ąØŖą©ąØąØ¼ ąØ¦ą© ąØŖąØ°ąØæą©°ąØ ąØ¹ą©ąØ£ ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØ®ą©ąØ¤ąØ¾ąØ¬ąØ ąØąØąØ¾ąØąØ ąØąØ¾ąØµą©ąØąØ¾ą„¤\n" +"\n" +"ā¢ \"Fit to Printable Area (ąØŖąØ°ąØæą©°ąØ ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØµąØæą©±ąØ ąØ«ąØæą©±ąØ)\": ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ąØ¾ąØ ąØØą©ą©° ąØŖąØ°ąØæą©°ąØąØ° ąØŖą©ąØąØ¼ ąØ¦ą© " +"ąØŖąØ°ąØæą©°ąØ ąØ¹ą©ąØ£ ąØÆą©ąØ ąØą©ąØ¤ąØ° ąØµąØæą©±ąØ ąØ«ąØæą©±ąØ ąØąØ°ąØØ ąØ²ąØ ąØµą©±ąØ”ąØ¾ ąØąØ¾ąØ ąØą©ąØąØ¾ ąØą©ąØ¤ąØ¾ ąØąØ¾ąØµą©ąØąØ¾ą„¤\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ąØąØą© ąØą©ą©°ąØ®ąØ¾ąØ ąØ ąØ¤ą© ąØøą©ąØąØąØ°" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ąØ¹ąØ°ą©ąØ ąØŖą©ąØąØ¼ ąØ²ąØ ąØŖąØ°ąØæą©°ąØąØ° ąØŖą©ąØąØ¼ ąØøąØ„ąØæąØ¤ą© ąØØą©ą©° ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ ąØ¦ą© ąØøąØ„ąØæąØ¤ą© ąØ®ą©ąØ¤ąØ¾ąØ¬ąØ ąØą©ą©°ąØ®ąØ¾ąØą„¤ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ ąØØą©ą©° ąØŖąØ°ąØæą©°ąØąØ° ąØŖą©ąØąØ¼ ąØ¦ą© " +"ąØøą©ąØąØąØ° ąØµąØæą©±ąØ ąØ°ą©±ąØąØæąØ ąØąØ¾ąØµą©ąØąØ¾ą„¤" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ ąØøąØ¾ąØąØąØ¼ ąØ¦ą© ąØµąØ°ąØ¤ą©ąØ ąØąØ°ąØą© ąØŖą©ąØąØ¼ ąØøąØ¾ąØąØąØ¼ ąØą©ąØ£ą©" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ąØąØ¦ą©ąØ ąØąØ¾ąØ²ą© ąØą©ąØ¤ąØ¾ ąØ¤ąØ¾ąØ ąØ¹ąØ°ą©ąØ ąØŖą©ąØąØ¼ ąØØą©ą©° ąØąØøą© ąØŖą©ąØŖąØ° ąØøąØ¾ąØąØąØ¼ ąØ®ą©ąØ¤ąØ¾ąØ¬ąØ ąØŖąØ°ąØæą©°ąØ ąØą©ąØ¤ąØ¾ ąØąØ¾ąØµą©ąØąØ¾, ąØąØæąØµą©ąØ ąØąØæ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØŖą©ąØąØ¼ ąØ¦ąØ¾ " +"ąØ¹ą©ą„¤" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ąØŖą©ąØąØ¼ ąØ¹ą©ąØ”ąØ²ąØæą©°ąØ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ąØŖą©ąØąØ¼ %d ąØŖąØ°ąØæą©°ąØ ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ąØ¹ą©ąØ ąØ¾ąØ ąØąØ¾ąØ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ąØąØ²ąØ ąØą©±ąØ¤ą© ąØ²ą© ąØąØ¾ąØ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ąØąØ²ąØ ąØ¹ą©ąØ ąØ¾ąØ ąØ²ą© ąØąØ¾ąØ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØąØ²ąØ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØŖą©ąØ°ą© ąØ¹ą©ąØą„¤ ąØ¬ą©°ąØ¦ ąØąØ°ąØØ ąØ²ąØ ąØąØ²ąØæą©±ąØ ąØąØ°ą©ą„¤" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ąØŖąØ¹ąØæąØ²ą© ąØŖą©ąØąØ¼ 'ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ąØŖąØæąØąØ²ą© ąØŖą©ąØąØ¼ 'ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ąØ ąØąØ²ą© ąØŖą©ąØąØ¼ 'ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ąØąØąØ°ą© ąØŖą©ąØąØ¼ 'ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ąØą©ąØ" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ąØŖą©ąØąØ¼ %s ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ąØ«ąØ¾ąØąØ² ā%2$sā ąØµąØæą©±ąØ %1$s ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ąØ«ąØ¾ąØąØ² ā%sā ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ąØąØ²ąØ¾ąØ" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ąØą©ąØ:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ąØŖąØæą©±ąØą© ąØą©ąØ(_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ąØą©ąØ ąØ¦ą© ąØøąØ¤ąØ° ąØ¦ą© ąØŖąØæąØąØ²ą© ąØ®ą©ąØą©ąØ¦ąØą© ąØą©ąØą©" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ąØ ą©±ąØą© ąØą©ąØ(_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ąØą©ąØ ąØøąØ¤ąØ° ąØ¦ą© ąØ ąØąØ²ą© ąØ®ą©ąØą©ąØ¦ąØą© ąØ¦ą© ąØą©ąØ ąØąØ°ą©" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ąØ ą©±ąØąØ° ąØ ąØąØ¾ąØ° 'ąØ¤ą© ąØØąØæąØ°ąØąØ°(_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ąØ ą©±ąØąØ° ąØąØąØ¾ąØ° ąØØąØæąØ°ąØąØ° ąØą©ąØ ąØ¬ąØ¦ąØ²ą©" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ąØąØąØąØ¾ąØØ:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "ąØØą©ąØ" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "ąØąØæą©±ąØŖąØ£ą©" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ąØøąØµąØæą©±ąØ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "ąØ®ą©±ąØ¦ąØ¦" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ąØØąØµąØ¾ąØ ąØŖą©ąØ¹ą©ąØ°ąØ¾" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ąØŖą©ąØ¹ą©ąØ°ąØ¾" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ąØøąØ¼ąØ¾ąØ®ąØ²" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ąØąØ¾ąØąØąØ¾" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ąØą©±ąØąØ°" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "ąØ ąØ£ąØąØ¾ąØ£" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "ąØµąØæąØąØąØæąØ ąØµąØæąØøąØ¼ą©ąØøąØ¼ąØ¤ąØ¾" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "ąØ°ą©°ąØ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#| msgid "Title:" +msgid "Style:" +msgstr "ąØøąØąØ¾ąØąØ²:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ąØŖąØ¾ąØ°ąØ¦ąØ°ąØøąØ¼ą©" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ąØ¬ąØ²ą©ąØ°ą©ąØŖąØØ" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ąØøąØ¼ą©ąØ°ą©ąØąØ¤ą© ąØµąØæą©°ąØ”ą© ąØ¹ąØ¾ąØ²ąØ¤:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Openā¦" +msgid "Open" +msgstr "ąØą©ąØ²ą©ąØ¹ą©" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ąØ¬ą©°ąØ¦ ąØąØ°ą©" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØ®ą©ąØ” ąØµąØæą©±ąØ ąØą©±ąØ² ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ %s ąØ²ąØ ąØŖąØ¾ąØøąØµąØ°ąØ”" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ąØ¬ąØ¦ąØ²ąØæąØ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%2$d ąØµąØæą©±ąØą©ąØ %1$d ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¬ąØ¦ąØ²ą©" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ąØ®ą©ąØąØ¾ąØ”ąØ¾ąØąØ¾ ąØ¬ąØ¦ąØ²ąØæąØ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ąØąØµą©ąØØąØø ąØµąØ²ą©ąØ ąØµąØ°ąØ¤ąØæąØ ąØ®ą©ąØąØ¾ąØ”ąØ¾ąØąØ¾ ąØ«ąØ¾ąØ°ąØ®ą©ąØ ąØ¬ąØ¦ąØ²ąØæąØ ąØąØæąØ ąØ¹ą© ąØ ąØ¤ą© ąØąØøąØąØ°ąØą© ąØąØø ąØØą©ą©° ąØ®ąØ¾ąØąØąØ°ą©ąØ ąØąØ°ąØØ ąØ¦ą© ąØ²ą©ą© ąØ¹ą©ą„¤ ąØą© " +"ąØ®ąØ¾ąØąØąØ°ą©ąØøąØ¼ąØØ ąØØą©ą©° ąØ°ą©±ąØ¦ ąØą©ąØ¤ąØ¾ ąØ¤ąØ¾ąØ ąØ®ą©ąØąØ¾ąØ”ąØ¾ąØąØ¾ ąØøąØą©ąØ°ą©ąØąØ¼ ąØøąØą©ąØ°ą©ąØąØ¼ ąØą©°ąØ® ąØØąØ¹ą©ąØ ąØąØ°ą©ąØąØ¾ą„¤" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ąØą©±ąØ ąØ¤ąØ¾ąØąØ¼ąØ¾ ąØµąØ°ąØ¤ą© ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØØą©ą©° ąØą©ąØ²ą©ąØ¹ą©" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ąØąØ¹ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ąØ¾ąØ ąØ¹ą© ąØ ąØ¤ą© ąØ ą©ąØ ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¦ą©ąØ£ ąØąØŖąØ°ą©°ąØ¤ ąØ¹ą© ąØŖą©ą©ąØ¹ąØæąØ ąØąØ¾ ąØøąØąØ¦ąØ¾ ąØ¹ą©ą„¤" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¤ąØ¾ąØ²ąØ¾ ąØą©ąØ²ą©ąØ¹ą©(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¦ąØæąØ" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¦ą© ąØ²ą©ą© ąØ¹ą©" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ā%sā ąØ²ąØ¾ąØ ąØ¹ą© ąØ ąØ¤ą© ąØąØø ąØØą©ą©° ąØą©ąØ²ą©ąØ¹ąØ£ ąØ¤ą©ąØ ąØŖąØ¹ąØæąØ²ąØ¾ąØ ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¦ą© ąØ²ą©ą© ąØ¹ą©ą„¤" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ”(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¤ą©ąØ°ą©°ąØ¤ ąØą©ą©±ąØ² ąØąØ¾ąØ(_i)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ąØ¤ą©ąØ¹ąØ¾ąØ”ą© ąØ²ąØ¾ąØ ąØąØąØ ąØ¹ą©ąØ£ ąØ¤ą©±ąØ ąØŖąØ¾ąØøąØµąØ°ąØ” ąØÆąØ¾ąØ¦ ąØ°ą©±ąØą©(_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ąØ¹ąØ®ą©ąØøąØ¼ąØ¾ ąØÆąØ¾ąØ¦ ąØ°ą©±ąØą©(_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ąØµąØæąØøąØ¼ą©ąØøąØ¼ąØ¤ąØ¾" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ąØøąØ§ąØ¾ąØ°ąØØ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ąØ«ą©ąØąØ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ąØ¾ąØąØøą©ąØąØø" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ąØ«ą©ąØąØ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ąØ«ą©ąØąØ ąØąØ¾ąØ£ąØąØ¾ąØ°ą© ąØ²ąØ ąØąØ¾ ąØ°ąØ¹ą© ąØ¹ą©ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ąØµąØ°ąØ¤ą©ąØ ąØøąØ¼ąØ°ąØ¤ąØ¾ąØ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ąØą©ąØąØøąØ ąØ²ąØ¾ąØąØøą©ąØąØø" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ąØ¹ą©ąØ° ąØąØ¾ąØ£ąØąØ¾ąØ°ą©" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ąØ²ąØæąØøąØ" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#| msgid "Location:" +msgid "Annotations" +msgstr "ąØµąØæąØąØąØæąØ" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "ąØą©ąØąØøąØ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ąØą©ąØąØøąØ ąØµąØæąØąØąØæąØ ąØøąØ¼ąØ¾ąØ®ąØ²" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ąØøąØ¼ąØ¾ąØ®ąØ²" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "The document contains no pages" +msgid "Document contains no annotations" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµąØæą©±ąØ ąØą©ąØ ąØµąØæąØąØąØæąØ ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "%d ąØŖą©ąØąØ¼" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ąØ ąØą©ąØąØąØ®ą©ąØąØ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ąØŖąØ°ąØ¤ąØ¾ąØ" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ąØŖąØ°ąØæą©°ąØā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ąØą©°ąØ”ą©ąØąØø" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ąØ„ą©°ąØ®ąØØą©ąØ²" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "ąØŖą©ąØąØ¼ %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "%s ąØŖą©ąØąØ¼" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµąØæą©±ąØ ąØą©ąØ ąØŖą©ąØąØ¼ ąØØąØ¹ą©ąØ ąØ¹ą©" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµąØæą©±ąØ ąØą©ąØµąØ² ąØąØ¾ąØ²ą© ąØŖą©ąØąØ¼ ąØ¹ąØØ" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØą©ąØ²ą©ąØ¹ąØ£ ąØ²ąØ ąØ ąØøąØ®ąØ°ą©±ąØ„" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā\" ąØ¤ą©ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ (%d%%) ąØ”ąØ¾ąØąØØąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ąØ°ąØæąØ®ą©ąØ ąØ«ąØ¾ąØąØ² ąØ²ą©ąØ” ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹ą„¤" + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "%s ąØ¤ą©ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ą©ą©-ąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ą©ą©-ąØ²ą©ąØ” ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹ą„¤" + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØą©ąØ²ą©ąØ¹ą©" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ %s ąØµąØą©ąØ ąØøą©°ąØąØ¾ąØ²ąØæąØ ąØąØ¾ąØąØ¦ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ąØ ąØą©ąØąØ®ą©ąØąØ %s ąØą©±ąØ¤ą© ąØøą©°ąØąØ¾ąØ²ą© ąØąØ¾ ąØ°ąØ¹ą© ąØ¹ą©" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "%s ąØ²ąØ ąØąØæą©±ąØ¤ąØ° ąØøą©°ąØąØ¾ąØ²ąØæąØ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ąØ«ąØ¾ąØąØ² ā%sā ąØµąØą©ąØ ąØøą©°ąØąØ¾ąØ²ą© ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØą©ą„¤" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ (%d%%) ąØ ą©±ąØŖąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ąØ ąØą©ąØąØ®ą©ąØąØ (%d%%) ąØ ą©±ąØŖąØ²ą©ąØ” ąØą©ąØ¤ą© ąØąØ¾ ąØ°ąØ¹ą© ąØ¹ą©" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ąØąØæą©±ąØ¤ąØ° (%d%%) ąØ ą©±ąØŖąØ²ą©ąØ” ąØą©ąØ¤ąØ¾ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą©" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ą©" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ąØąØ¤ąØ¾ąØ° ąØµąØæą©±ąØ %d ąØ¬ąØ¾ąØą© ąØą©°ąØ®" +msgstr[1] "ąØąØ¤ąØ¾ąØ° ąØµąØæą©±ąØ ąØ¬ąØ¾ąØą© %d ąØą©°ąØ®" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ąØŖąØ°ąØæą©°ąØąØæą©°ąØ ąØą©°ąØ® ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµąØæą©±ąØ ąØ«ąØ¾ąØ°ąØ® ąØą©ąØ¤ąØ° ąØ¹ąØØ, ąØąØæą©°ąØØą©ąØ¹ąØ¾ąØ ąØØą©ą©° ąØąØ°ąØæąØ ąØąØæąØ ąØ¹ą©ą„¤ ąØą© ąØ¤ą©ąØøą©ąØ ąØąØ¾ąØŖą© ąØØąØ¾ ąØøą©°ąØąØ¾ąØ²ą© ąØ¤ąØ¾ąØ ąØ¬ąØ¦ąØ²ąØ¾ąØ ąØŖą©±ąØą© ąØ¤ą©ąØ° ąØą©±ąØ¤ą© " +"ąØ¹ą© ąØąØ¤ąØ® ąØ¹ą© ąØąØ¾ąØ£ąØą©ą„¤" + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØØąØµą©ąØąØ ąØąØ¾ąØ ąØøą©ąØ§ą©ąØąØ ąØąØąØąØ ąØµąØæąØąØąØæąØ ąØ¹ą©ą„¤ ąØą© ąØ¤ą©ąØøą©ąØ ąØąØ¾ąØŖą© ąØØąØ¾ ąØøą©°ąØąØ¾ąØ²ą© ąØ¤ąØ¾ąØ ąØ¬ąØ¦ąØ²ąØ¾ąØ ąØŖą©±ąØą© ąØ¤ą©ąØ° ąØą©±ąØ¤ą© " +"ąØ¹ą© ąØąØ¤ąØ® ąØ¹ą© ąØąØ¾ąØ£ąØą©ą„¤" + +#: ../shell/ev-window.c:3413 +#, c-format +#| msgid "Wait until print job ā%sā finishes before closing?" +msgid "Save a copy of document ā%sā before closing?" +msgstr "ąØą© ąØ¬ą©°ąØ¦ ąØąØ°ąØØ ąØ¤ą©ąØ ąØŖąØ¹ąØæąØ²ąØ¾ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ā%sā ąØ¦ą© ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ąØ£ą© ąØ¹ą©?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ąØ¬ąØæąØØąØ¾ąØ ąØøą©°ąØąØ¾ąØ²ą© ąØ¬ą©°ąØ¦ ąØąØ°ą©(_w)" + +#: ../shell/ev-window.c:3436 +#| msgid "Save a Copy" +msgid "Save a _Copy" +msgstr "ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ą©(_C)" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ąØą© ąØ¬ą©°ąØ¦ ąØąØ°ąØØ ąØ¤ą©ąØ ąØŖąØ¹ąØæąØ²ąØ¾ąØ ąØŖąØ°ąØæą©°ąØąØæą©°ąØ ąØą©°ąØ® ā%sā ąØŖą©ąØ°ąØ¾ ąØ¹ą©ąØ£ ąØ¦ą© ąØąØ”ą©ąØ ąØąØ°ąØØą© ąØ¹ą©?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d ąØŖąØ°ąØæą©°ąØąØæą©°ąØ ąØą©°ąØ® ąØąØ¾ąØ²ą© ąØ¹ąØØą„¤ ąØą© ąØ¤ą©ąØøą©ąØ ąØ¬ą©°ąØ¦ ąØąØ°ąØØ ąØ¤ą©ąØ ąØŖąØ¹ąØæąØ²ąØ¾ąØ ąØąØŖąØ¾ąØ ąØŖą©ąØ°ą© ąØąØ°ąØØą© ąØąØ¾ąØ¹ą©ą©°ąØ¦ą© ąØ¹ą©?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ąØą© ąØ¤ą©ąØøą©ąØ ąØµąØæą©°ąØ”ą© ąØ¬ą©°ąØ¦ ąØąØ° ąØ¦ąØæą©±ąØ¤ą© ąØ¤ąØ¾ąØ ąØ¬ąØ¾ąØą© ąØąØŖąØ¾ąØ ąØą©°ąØ® ąØąØ¾ąØŖąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ąØµą©ąØąØ¾ą„¤" + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "ąØŖąØ°ąØæą©°ąØąØæą©°ąØ ąØ°ą©±ąØ¦ ąØąØ°ąØą© ąØ¬ą©°ąØ¦ ąØąØ°ą©(_p)" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ąØØ ąØ¦ą© ąØ¬ąØ¾ąØ ąØ¦ ąØ¬ą©°ąØ¦ ąØąØ°ą©(_a)" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØąØ”ą©ąØąØ°" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ąØ®ą©±ąØ¦ąØ¦ ąØµą©ąØąØ¾ąØąØ£ ąØ¦ą© ąØ¦ą©ąØ°ąØ¾ąØØ ąØąØ²ąØ¤ą©" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ°ąØøąØ¼ąØ ąØ¹ą©ą„¤\n" +"%s (%s) ąØ¦ą© ąØµąØ°ąØ¤ą©ąØ ąØąØ°ąØą©" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ąØąØµą©ąØØąØø ąØą©±ąØ ąØ®ą©ąØąØ¤ ąØøąØ¾ąØ«ąØąØµą©ąØ ąØ° ąØ¹ą©, ąØąØæąØø ąØØą©ą©° ąØ«ąØ°ą© ąØøąØ¾ąØ«ąØąØµą©ąØ ąØ° ąØ«ąØ¾ąØąØąØØąØ”ą©ąØøąØ¼ąØØ ąØµąØ²ą©ąØ ąØąØ¾ąØ°ą© ąØąØØą© ąØąØ°ąØØąØ² ąØŖąØ¬ąØ²ąØæąØ ąØ²ąØ¾ąØąØøą©ąØąØø " +"ąØ¦ą© ąØµąØ°ąØąØØ ą©Ø ąØąØ¾ąØ (ąØ¤ą©ąØ¹ąØ¾ąØ”ą© ąØą©ąØ£ ąØ®ą©ąØ¤ąØ¾ąØ¬ąØ) ąØØąØµą©ąØ ąØµąØ°ąØąØØ ąØ ąØ§ą©ąØØ ąØµą©°ąØ”ąØæąØ ąØ ąØ¤ą©/ąØąØ¾ąØ ąØøą©ąØ§ąØæąØ ąØąØ¾ ąØøąØąØ¦ąØ¾ ąØ¹ą©ą„¤\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"ąØąØµą©ąØØąØø ąØØą©ą©° ąØąØø ąØąØ°ą©ąØøą© ąØØąØ¾ąØ² ąØµą©°ąØ”ąØæąØ ąØąØ¾ ąØ°ąØæąØ¹ąØ¾ ąØ¹ą© ąØąØæ ąØąØ¹ ąØ²ąØ¾ąØąØ¦ąØ¾ąØąØ ąØ¹ą©ąØµą©ąØąØ¾, ąØŖąØ° ąØ¬ąØæąØØąØ¾ąØ ąØąØæąØøą© ąØµąØ¾ąØ°ą©°ąØą© ąØ¦ą©, " +"ąØ¬ąØæąØØąØ¾ąØ ąØąØæąØøą© ąØąØ¾ąØø ąØ®ąØąØøąØ¦ ąØ²ąØ ąØ ą©ąØ ąØąØ¾ąØ ąØ²ąØ¾ąØąØ¦ąØ¾ąØąØ ąØ°ąØ¹ąØæąØ£ ąØ¦ą©ą„¤ ąØµąØ§ą©ąØ°ą© ąØąØ¾ąØ£ąØąØ¾ąØ°ą© ąØ²ąØ ąØąØØą© ąØąØ°ąØØąØ² ąØŖąØ¬ąØ²ąØæąØ " +"ąØ²ąØ¾ąØąØøą©ąØąØø ąØØą©ą©° ąØµą©ąØą©ą„¤\n" + +#: ../shell/ev-window.c:4571 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ąØ¤ą©ąØøą©ąØ ąØąØØą© ąØąØ°ąØØąØ² ąØŖąØ¬ąØ²ąØæąØ ąØ²ąØ¾ąØąØøą©ąØąØø ąØ¦ą© ąØØąØąØ² ąØąØµą©ąØØąØø ąØØąØ¾ąØ² ąØŖąØ°ąØ¾ąØŖąØ¤ ąØą©ąØ¤ą© ąØ¹ą©ąØµą©ąØą©, ąØą©ąØąØ° ąØØąØ¹ą©ąØ ąØ¤ąØ¾ąØ ąØ«ąØ°ą© " +"ąØøąØ¾ąØ«ąØąØµą©ąØ ąØ° ąØ«ąØ¾ąØąØąØØąØ”ą©ąØøąØ¼ąØØ ą©«ą©§ ąØ«ąØ°ą©ąØąØ²ąØæąØØ ąØøąØąØ°ą©ąØ, ąØŖą©°ąØąØµą©ąØ ąØ®ą©°ąØąØ¼ąØ², ąØ¬ą©ąØøąØąØØ, ąØąØ® ąØ ą©¦ą©Øą©§ą©§ą©¦-ą©§ą©©ą©¦ą©§ ąØ ąØ®ąØ°ą©ąØąØ¾ ąØ¤ą©ąØ ąØŖąØ°ąØ¾ąØŖąØ¤ ąØąØ°ąØØ ąØ²ąØ " +"ąØ²ąØæąØą©ą„¤\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "ąØąØµąØØą©ąØø" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© ą©§ą©Æą©Æą©¬-ą©Øą©¦ą©¦ą©Æ Evince ąØ²ą©ąØąØ" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"ąØ ąØ®ąØØąØŖąØ°ą©ąØ¤ ąØøąØæą©°ąØ ąØąØ²ąØ®\n" +"Punjabi Open Source Team\n" +"http://www.satluj.com" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ąØąØø ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© %d ąØ®ąØæąØ²ąØæąØ" +msgstr[1] "ąØąØø ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© %d ąØ®ąØæąØ²ą©" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ąØØąØ¹ą©ąØ ąØ²ą©±ąØąØæąØ" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ąØą©ąØąØ£ ąØ²ąØ ąØ¬ąØ¾ąØą©" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "ąØ«ąØ¾ąØąØ²(_F)" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "ąØøą©ąØ§(_E)" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "ąØµą©ąØą©(_V)" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "ąØąØ¾ąØ(_G)" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "ąØ®ą©±ąØ¦ąØ¦(_H)" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "ąØą©ąØ²ą©ąØ¹ą©(_O)ā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØą©ąØ²ą©ąØ¹ą©" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "ąØą©±ąØ ąØąØ¾ąØŖą© ąØą©ąØ²ą©ąØ¹ą©(_e)" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ą© ąØąØ¾ąØŖą© ąØØąØµą©ąØ ąØµąØæą©°ąØ”ą© 'ąØ ąØą©ąØ²ą©ąØ¹ą©" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ą©(_S)ā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ą© ąØą©±ąØ ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ą©" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©(_P)ā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "ąØµąØæąØøąØ¼ą©ąØøąØ¼ąØ¤ąØ¾(_r)" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "ąØøąØ ąØą©ąØ£ą©(_A)" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "ąØą©ąØą©(_F)ā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØøąØ¼ąØ¬ąØ¦ ąØąØ¾ąØ ąØŖą©ąØ¹ą©ąØ°ąØ¾ ąØą©ąØą©" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ°(_o)" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "ąØą©±ąØ¬ą© ąØą©ą©°ąØ®ąØ¾ąØ(_L)" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "ąØøą©±ąØą© ąØą©ą©°ąØ®ąØ¾ąØ(_R)" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØøą©ąØąØæą©°ąØ ąØØą©ą©° ąØ”ąØæąØ«ąØ¾ąØ²ąØ ąØµąØą©ąØ ąØøą©°ąØąØ¾ąØ²ą©(_D)" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "ąØ®ą©ą©-ąØ²ą©ąØ”(_R)" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ą©ą© ąØ²ą©ąØ” ąØąØ°ą©" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "ąØąØą© ąØøąØąØ°ą©ąØ²(_s)" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "ąØŖąØ¹ąØæąØ²ąØ¾ąØ ąØŖą©ąØąØ¼(_F)" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "ąØŖąØ¹ąØæąØ²ą© ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "ąØąØąØ°ą© ąØŖą©ąØąØ¼(_L)" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "ąØąØąØ°ą© ąØŖą©ąØąØ¼ ąØą©±ąØ¤ą© ąØąØ¾ąØ" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "ąØøąØ®ą©±ąØąØ°ą©(_C)" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "ąØąØø ąØ¬ąØ¾ąØ°ą©(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ ąØą©±ąØ”ą©" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ ąØ¢ą©°ąØ ąØą©±ąØ”ą©" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØøąØ¼ą©ąØ°ą©" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ąØą©±ąØ ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØøąØ¼ą©ąØ°ą© ąØąØ°ą©" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ°(_T)" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "ąØą©ąØ²ąØ¬ąØ¾ąØ° ąØµą©ąØą© ąØąØ¾ąØ ąØąØ¹ąØ²ą©" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "ąØ¬ąØ¾ąØ¹ą©(_P)" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "ąØ¬ąØ¾ąØ¹ą© ąØµą©ąØą© ąØąØ¾ąØ ąØąØ¹ąØ²ą©" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "ąØ²ąØąØ¾ąØ¤ąØ¾ąØ°(_C)" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "ąØŖą©ąØ°ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµą©ąØą©" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "ąØ¦ą©ąØ¹ąØ°ąØ¾(_D)" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "ąØą©±ąØ ąØµąØ¾ąØ° ąØ¹ą© ąØ¦ą© ąØŖą©ąØąØ¼ ąØµą©ąØą©" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ(_F)" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "ąØµąØæą©°ąØ”ą© ąØØą©ą©° ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ ąØą©±ąØ¤ą© ąØ«ą©ąØ²ąØ¾ąØ" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ(_s)" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØØą©ą©° ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØ¦ą© ąØ°ą©ąØŖ 'ąØ ąØąØ²ąØ¾ąØ" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "ąØąØ²ąØ ąØ°ą©°ąØ(_I)" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "ąØąØ²ąØ ąØ°ą©°ąØąØ¾ąØ ąØØąØ¾ąØ² ąØŖą©ąØąØ¼ ąØøąØ®ąØą©±ąØ°ą© ąØµą©ąØą©" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "ąØ²ąØæą©°ąØ ąØą©ąØ²ą©ąØ¹ą©(_O)" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "ąØąØ¾ąØ(_G)" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "ąØØąØµą©ąØ ąØµąØæą©°ąØ”ą© ąØµąØæą©±ąØ ąØą©ąØ²ą©ąØ¹ą©(_W)" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "ąØ²ąØæą©°ąØ ąØąØ”ąØ°ą©ą©±ąØø ąØąØ¾ąØŖą© ąØąØ°ą©(_C)" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "ąØąØæą©±ąØ¤ąØ° ąØą©°ąØ ąØøą©°ąØąØ¾ąØ²ą©(_S)ā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "ąØąØæą©±ąØ¤ąØ° ąØąØ¾ąØŖą© ąØąØ°ą©(_I)" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "ąØµąØæąØąØąØæąØ ąØµąØæąØøąØ¼ą©ąØøąØ¼ąØ¤ąØ¾ā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "ąØ ąØą©ąØąØ®ą©ąØąØ ąØą©ąØ²ą©ąØ¹ą©(_O)" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "ąØ ąØą©ąØąØ®ą©ąØąØ ąØą©°ąØ ąØøą©°ąØąØ¾ąØ²ą©(_S)ā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ąØąØ¼ą©ąØ®" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "ąØąØ¼ą©ąØ® ąØ²ą©ąØµąØ² ąØ ąØ”ąØą©±ąØøąØ ąØąØ°ą©" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "ąØØą©ąØµą©ąØą©ąØøąØ¼ąØØ" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "ąØŖąØæą©±ąØą©" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "ąØą©ąØ²ą©ąØ¹ą© ąØŖą©ąØąØ¼ąØ¾ąØ ąØµąØæą©±ąØ ąØąØ¾ąØ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "ąØŖąØæą©±ąØą©" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "ąØ ą©±ąØą©" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ąØąØ¼ą©ąØ® ąØąØØ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ąØąØ¼ą©ąØ® ąØąØąØ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "ąØą©ą©ąØ¾ąØ ąØ«ąØæą©±ąØ" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ąØ¬ąØ¾ąØ¹ąØ°ą© ąØąØŖąØ²ą©ąØą©ąØøąØ¼ąØØ ąØøąØ¼ą©ąØ°ą© ąØąØ°ąØØ ąØ²ąØ ąØ ąØøąØ®ąØ°ą©±ąØ„" + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ąØ¬ąØ¾ąØ¹ąØ°ą© ąØ²ąØæą©°ąØ ąØą©ąØ²ą©ąØ¹ąØ£ ąØ²ąØ ąØ ąØøąØ®ąØ°ą©±ąØ„" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ąØąØæą©±ąØ¤ąØ° ąØøą©°ąØąØ¾ąØ²ąØ£ ąØ²ąØ ąØ¢ą©ą©±ąØąØµąØ¾ąØ ąØ«ąØ¾ąØ°ąØ®ą©ąØ ąØØąØ¹ą©ąØ ąØ®ąØæąØ²ąØæąØ" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "ąØąØæą©±ąØ¤ąØ° ąØøą©°ąØąØ¾ąØ²ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ ąØ¹ą©ą„¤" + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "ąØąØæą©±ąØ¤ąØ° ąØøą©°ąØąØ¾ąØ²ą©" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ąØ ąØą©ąØąØąØ®ą©ąØąØ ąØą©ąØ²ą©ąØ¹ąØ£ ąØ²ąØ ąØ ąØøąØ®ąØ°ą©±ąØ„ ąØ¹ą©" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "ąØ ąØą©ąØąØąØ®ą©ąØąØ ąØØą©ą©° ąØøą©°ąØąØ¾ąØ²ąØæąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ ąØ¹ą©ą„¤" + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "ąØ ąØą©ąØąØąØ®ą©ąØąØ ąØøą©°ąØąØ¾ąØ²ą©" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ąØŖąØ¾ąØøąØµąØ°ąØ” ąØąØ¾ąØ¹ą©ąØ¦ąØ¾ ąØ¹ą©" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ąØąØąØøąØą©ąØØąØøąØ¼ąØØ ąØØąØ¾ąØ²" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ąØąØØą©ąØ® ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ°ąØøąØ¼ąØ" + +#: ../shell/main.c:77 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "ąØµą©ąØąØ¾ąØąØ£ ąØ²ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ¾ ąØŖą©ąØąØ¼ ąØ²ą©ąØ¬ąØ² ąØ¹ą©ą„¤" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "ąØŖą©ąØąØ¼" + +#: ../shell/main.c:78 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "ąØµą©ąØąØ¾ąØąØ£ ąØ²ąØ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ¾ ąØŖą©ąØąØ¼ ąØØą©°ąØ¬ąØ° ąØ¹ą©ą„¤" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ąØØą©°ąØ¬ąØ°" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ąØąØµąØØą©ąØø ąØØą©ą©° ąØŖą©ąØ°ą© ąØøąØąØ°ą©ąØØ ąØ®ą©ąØ” ąØØąØ¾ąØ² ąØąØ²ąØ¾ąØ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ąØąØµąØØą©ąØø ąØØą©ą©° ąØŖąØ°ąØæąØąØ¼ą©ą©±ąØØąØą©ąØøąØ¼ąØØ ąØ®ą©ąØ” 'ąØ ąØąØ²ąØ¾ąØ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ąØąØµąØØą©ąØø ąØØą©ą©° ąØąØ²ąØ-ąØ¦ąØ°ąØøąØ¼ąØ ąØµąØ¾ąØąØ ąØąØ²ąØ¾ąØ" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØøąØ¼ąØ¬ąØ¦ ąØąØ¾ąØ ąØŖą©ąØ¹ą©ąØ°ąØ¾ ąØą©ąØą©" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ąØ²ąØ¾ąØąØØ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ąØ«ąØ¾ąØąØ²ā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "ąØ¬ą©ąØ²ą©ąØ ąØØ ąØą©ąØ£ąØ¾ąØ ąØąØŖąØ²ą©±ąØ¬ąØ§ ąØ¹ąØØ: ąØøąØ¹ą©ąØ ąØØąØ¾ąØ² ąØ„ą©°ąØ®ąØØą©ąØ² ąØÆą©ąØ ąØ¹ą©ąØµą©ąØąØ¾ ąØ ąØ¤ą© ąØąØ²ąØ¤ ąØØąØ¾ąØ² ąØØąØµą©ąØ ąØ„ą©°ąØ®ąØØą©ąØ² ąØØąØ¹ą©ąØ ąØ¬ąØ£ ąØøąØąØ£ąØą©ą„¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ąØ ąØ„ą©°ąØ®ąØØą©ąØ² ąØÆą©ąØ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ąØ ąØ„ą©°ąØ®ąØØą©ąØ² ąØąØ®ąØ¾ąØąØ”" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "PDF ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ„ą©°ąØ®ąØØą©ąØ²ąØ° ąØ²ąØ ąØ ą©ąØ ąØąØ®ąØ¾ąØąØ” ąØ ąØ¤ą© ąØ®ą©ą©±ąØ²ą„¤ ąØµąØ§ą©ąØ°ą© ąØąØ¾ąØ£ąØąØ¾ąØ°ą© ąØ²ąØ ąØØąØąØ¾ąØ²ąØæąØø ąØ„ą©°ąØ®ąØØą©ąØ²ąØ° ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØµą©ąØą©ą„¤" + +#~| msgid "Page Set_up..." +#~ msgid "Page Set_upā¦" +#~ msgstr "ąØŖą©ąØąØ¼ ąØøą©ą©±ąØąØ ą©±ąØŖ(_u)ā¦" + +#~| msgid "Setup the page settings for printing" +#~ msgid "Set up the page settings for printing" +#~ msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ąØØ ąØ²ąØ ąØøąØ«ąØ¼ąØ¾ ąØøą©ąØąØæą©°ąØ ąØøą©ąØąØ ą©±ąØŖ" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ąØ”ą©ąØą©ąØ®ą©ąØąØ 'ąØ ąØąØ²ąØ¤ ąØ«ąØ¾ąØ°ąØ®ą©ąØ ąØ¹ą©" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ąØ«ąØ¾ąØąØ² ā%sā ąØ¬ąØ£ąØ¾ąØąØ£ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹: %s" + +#~ msgid "Search string" +#~ msgstr "ąØøąØ¼ąØ¬ąØ¦ ąØą©ąØ" + +#~ msgid "The name of the string to be found" +#~ msgstr "ąØą©ąØ ąØ²ąØ ąØøąØ¤ąØ° ąØ¦ąØ¾ ąØØąØ¾ąØ" + +#~ msgid "Case sensitive" +#~ msgstr "ąØąØąØ¾ąØ° ąØŖą©ąØ°ąØ¤ą© ąØøą©°ąØµą©ąØ¦ąØØąØ¶ą©ąØ²" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE ąØą©ąØąØ° ąØą©ąØ ąØ ą©±ąØąØ° ąØ ąØąØ¾ąØ° ąØØą©ą©° ąØ§ąØæąØąØØ 'ąØ ąØ°ą©±ąØ ąØą© ąØąØ°ąØØą© ąØ¹ą©" + +#~ msgid "Highlight color" +#~ msgstr "ąØ¹ąØ¾ąØąØ²ąØ¾ąØąØ ąØ°ą©°ąØ" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ąØøąØ ąØ®ą©ąØ²ąØ¾ąØ ąØØą©ą©° ąØ¹ąØ¾ąØąØ²ąØ¾ąØąØ ąØąØ°ąØØ ąØ²ąØ ąØ°ą©°ąØ" + +#~ msgid "Current color" +#~ msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ°ą©°ąØ" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ąØ®ą©ąØą©ąØ¦ąØ¾ ąØ®ą©ąØ²ąØ¾ąØ ąØØą©ą©° ąØ¹ąØ¾ąØąØ²ąØ¾ąØąØ ąØ²ąØ ąØ°ą©°ąØ" + +#~| msgid "Reload the document" +#~ msgid "Recover previous documents?" +#~ msgstr "ąØŖąØæąØąØ²ąØ¾ ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ą©ą©-ąØŖą©ąØ°ąØ¾ąØŖąØ¤ ąØąØ°ąØØąØ¾ ąØ¹ą©?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ąØąØµąØØą©ąØø ąØŖąØæąØąØ²ą© ąØµąØ¾ąØ° ąØą©±ąØ²ąØ£ ąØ¦ą©ąØ°ąØ¾ąØØ ąØ ąØąØ¾ąØØąØ ąØ¬ą©°ąØ¦ ąØ¹ą© ąØąØæąØ ąØąØ¾ąØŖąØ¦ąØ¾ ąØ¹ą©ą„¤ ąØ¤ą©ąØøą©ąØ ąØą©ą©±ąØ²ą©ąØ¹ą© ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ®ą©ą©-ąØŖą©ąØ°ąØ¾ąØŖąØ¤ ąØąØ° " +#~ "ąØøąØąØ¦ą© ąØ¹ą©ą„¤" + +#~ msgid "_Don't Recover" +#~ msgstr "ąØ®ą©ą©-ąØŖą©ąØ°ąØ¾ąØŖąØ¤ ąØØąØ¾ ąØąØ°ą©(_D)" + +#~ msgid "_Recover" +#~ msgstr "ąØ®ą©ą©-ąØŖą©ąØ°ąØ¾ąØŖąØ¤ ąØąØ°ą©(_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ąØąØ°ą©ąØøąØ¼ ąØ®ą©ą©-ąØŖą©ąØ°ąØ¾ąØŖąØ¤ą©" + +#~ msgid "Print..." +#~ msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©..." + +#~| msgid "Couldn't create symlink ā%sā: %s" +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "symlink ā%sā ąØ¬ąØ£ąØ¾ąØąØ ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØæąØ: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ąØąØ¾ąØŖą© ąØą©ąØ²ą©ąØ¹ą© ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ą© ąØ¹ą©ą„¤" + +#~ msgid "_Save a Copy..." +#~ msgstr "ąØą©±ąØ ąØąØ¾ąØŖą© ąØøą©°ąØąØ¾ąØ²ą©(_S)..." + +#~ msgid "_Print..." +#~ msgstr "ąØŖąØ°ąØæą©°ąØ ąØąØ°ą©(_P)..." + +#~ msgid "_Find..." +#~ msgstr "ąØą©ąØ(_F)..." + +#~ msgid "Co_nnect" +#~ msgstr "ąØą©ąØØą©ąØąØ ąØąØ°ą©(_n)" + +#~ msgid "Connect _anonymously" +#~ msgstr "ąØ ąØąØæąØąØ¤ ąØ¦ą© ąØ¤ą©ąØ° ąØą©±ąØ¤ą© ąØą©ąØØą©ąØąØ(_a)" + +#~ msgid "Connect as u_ser:" +#~ msgstr "ąØÆą©ąØąØ¼ąØ° ąØµąØą©ąØ ąØą©ąØØą©ąØąØ(_s):" + +#~ msgid "_Username:" +#~ msgstr "ąØÆą©ąØąØ¼ąØ° ąØØąØ¾ąØ(_U):" + +#~ msgid "_Domain:" +#~ msgstr "ąØ”ą©ąØ®ą©ąØØ(_D):" + +#~ msgid "_Forget password immediately" +#~ msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØ¤ą©ąØ°ą©°ąØ¤ ąØą©ą©±ąØ² ąØąØ¾ąØ(_F)" + +#~ msgid "_Remember password until you logout" +#~ msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØÆąØ¾ąØ¦ ąØ°ą©±ąØą©, ąØąØ¦ą©ąØ ąØ¤ą©±ąØ ąØ¤ą©ąØøą©ąØ ąØ²ąØ¾ąØąØąØąØ ąØØąØ¹ą©ąØ ąØąØ°ąØ¦ą©(_R)" + +#~ msgid "_Remember forever" +#~ msgstr "ąØ¹ąØ®ą©ąØøąØ¼ąØ¾ ąØŖąØ¾ąØøąØµąØ°ąØ” ąØÆąØ¾ąØ¦ ąØ°ą©±ąØą©(_R)" + +#~ msgid "File not available" +#~ msgstr "ąØ«ąØ¾ąØąØ² ąØąØŖąØ²ą©±ąØ¬ąØ§ ąØØąØ¹ą©ąØ ąØ¹ą©" + +#~ msgid "Remote files aren't supported" +#~ msgstr "ąØ°ąØæąØ®ą©ąØ ąØ«ąØ¾ąØąØ² ąØøąØ¹ąØæąØÆą©ąØą© ąØØąØ¹ą©ąØ ąØ¹ą©" + +#~ msgid "Find Previous" +#~ msgstr "ąØŖąØæą©±ąØą© ąØą©ąØ" + +#~ msgid "Find Next" +#~ msgstr "ąØ ą©±ąØą© ąØą©ąØ" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "ąØŖą©±ąØ¤ąØ°" + +#~ msgid "Tabloid" +#~ msgstr "ąØøąØ®ąØ¾ąØąØ¾ąØ° ąØŖą©±ąØ¤ąØ°" + +#~ msgid "Ledger" +#~ msgstr "ąØ²ą©ąØ”ąØ°" + +#~ msgid "Legal" +#~ msgstr "ąØ²ą©ąØąØ²" + +#~ msgid "Statement" +#~ msgstr "ąØøąØą©ąØąØ®ąØæą©°ąØ" + +#~ msgid "Executive" +#~ msgstr "ąØąØąØąØ¼ą©ąØąØæąØąØąØæąØµ" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "ąØ«ą©ąØ²ą©ąØ" + +#~ msgid "Quarto" +#~ msgstr "ąØą©ąØąØąØ°ąØąØ¼" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ąØ«ąØ¾ąØąØ² ā%sā ąØą©ąØ²ą©ąØ¹ą© ąØØąØ¹ą©ąØ ąØąØ¾ ąØøąØąØ¦ą© ąØ¹ą©ą„¤" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "ā%sā ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ²ą©ąØ” ąØąØ°ąØØ ąØ²ąØ ąØ«ą©ąØ²ą©ąØ¹ ąØ¹ą©ą„¤ ąØą©ąØøąØ-ąØøąØą©ąØ°ąØæąØŖąØ ąØą©°ąØąØ°ąØŖąØ°ą©ąØąØ° ąØ®ąØ¾ąØ°ąØ ąØµąØæą©±ąØ ąØØąØ¹ą©ąØ ąØ®ąØæąØ²ąØæąØ ąØ¹ą©ą„¤" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "ąØą©°ąØą©ąØŖąØøą©ąØ²ą©ąØąØ” ąØŖą©ąØøąØ-ąØøąØą©ąØ°ąØæąØŖąØ" + +#~ msgid "PostScript" +#~ msgstr "ąØŖą©ąØøąØ-ąØøąØą©ąØ°ąØæąØŖąØ" + +#~ msgid "Interpreter failed." +#~ msgstr "ąØą©°ąØąØ°-ąØŖąØ°ą©ąØąØ° ąØ«ą©ąØ²ą©ąØ¹ ąØ¹ą©ąØąØ ąØ¹ą©ą„¤" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ąØąØ¼ą©ąØ°-ąØ¹ą©ąØąØ”ąØ² MIME ąØąØ¾ąØąØŖ: ā%sā" + +#~ msgid "Password Entry" +#~ msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØąØąØąØ°ą©" + +#~ msgid "Save password in keyring" +#~ msgstr "ąØŖąØ¾ąØøąØµąØ°ąØ” ąØą©±ąØ²ą© (keyring) 'ąØ ąØøą©°ąØąØ¾ąØ²ą©" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>ąØąØ¾ąØąØąØ²:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Incorrect password" +#~ msgstr "ąØąØ²ąØ¤ ąØŖąØ¾ąØøąØµąØ°ąØ”" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "PDF ąØ¬ąØ£ąØ¾ąØąØ£ ąØ²ąØ ąØøąØ¹ąØ¾ąØąØ ąØØąØ¹ą©ąØ" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ąØ¤ą©ąØøą©ąØ ąØą©±ąØ ąØŖąØ°ąØæą©°ąØąØ° ąØą©±ąØ¤ą© ā%sā ąØ”ąØ°ąØ¾ąØąØµąØ° ąØØąØ¾ąØ² ąØŖąØ°ąØæą©°ąØ ąØąØ°ąØØ ąØ¦ą© ąØą©ąØøąØ¼ąØøąØ¼ ąØąØ° ąØ°ąØ¹ą© ąØ¹ą©ą„¤ ąØąØ¹ ąØŖąØ°ą©ąØąØ°ąØ¾ąØ® ąØØą©ą©° ąØą©±ąØ " +#~ "ąØŖą©ąØøąØąØøąØąØ°ąØæąØŖąØ ąØŖąØ°ąØæą©°ąØąØ° ąØ”ąØ°ąØ¾ąØąØµąØ° ąØ¦ą© ąØ²ą©ą© ąØ¹ą©ą„¤" + +#~ msgid "Pages" +#~ msgstr "ąØŖą©ąØąØ¼" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "ąØąØ²ąØ¤ URI: ā%sā" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "ąØąØ¼ą©ąØ°-ąØøąØ¹ąØ¾ąØąØ URI: ā%sā" + +#~ msgid "Evince Document Viewer" +#~ msgstr "ąØąØµąØØą©ąØø ąØ”ą©ąØą©ąØ®ą©ąØąØ ąØ¦ąØ°ąØøąØ¼ąØ" + +#~ msgid "Images" +#~ msgstr "ąØąØæą©±ąØ¤ąØ°" + +#~ msgid "Open ā%sā" +#~ msgstr "ā%sā ąØą©ąØ²ą©ąØ¹ą©" + +#~ msgid "Empty" +#~ msgstr "ąØąØ¾ąØ²ą©" + +#~ msgid "75%" +#~ msgstr "75%" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 00000000..ec723fec --- /dev/null +++ b/po/pl.po @@ -0,0 +1,1723 @@ +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +# Aviary.pl +# JeÅli masz jakiekolwiek uwagi odnoszÄ ce siÄ do tÅumaczenia lub chcesz +# pomĆ³c w jego rozwijaniu i pielÄgnowaniu, napisz do nas: +# matepl@aviary.pl +# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-14 19:16+0200\n" +"PO-Revision-Date: 2010-09-14 13:23+0200\n" +"Last-Translator: Piotr DrÄ g <piotrdrag@gmail.com>\n" +"Language-Team: Polish <matepl@aviary.pl>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Poedit-Language: Polish\n" +"X-Poedit-Country: Poland\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"BÅÄ d podczas uruchamiania polecenia \"%s\", aby dekompresowaÄ komiks: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "" +"Wykonanie polecenia \"%s\" podczas dekompresowania komiksu siÄ nie powiodÅo." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Polecenie \"%s\" nie zakoÅczyÅo dziaÅania normalnie." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "To nie jest typ MIME komiksu: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Nie można znaleÅŗÄ odpowiedniego polecenia do dekompresji tego typu komiksu" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Nieznany typ MIME" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Uszkodzony plik" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nie odnaleziono plikĆ³w w archiwum" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nie odnaleziono obrazĆ³w w archiwum %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "WystÄ piÅ bÅÄ d podczas usuwania \"%s\"." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "BÅÄ d %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Komiksy" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Dokument DjVu ma niepoprawny format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Ten dokument jest zÅożony z kilku plikĆ³w. Brak dostÄpu do jednego lub kilku " +"z nich." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Dokumenty DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Dokument DVI ma niepoprawny format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dokumenty DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Ta praca znajduje siÄ w domenie publicznej" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Tak" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nie" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Nieznany typ czcionki" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Bez nazwy" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Osadzony podzestaw" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Osadzone" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Niesadzone" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dokumenty PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "NieprawidÅowy dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Slajdy prezentacji" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Bez bÅÄdu" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Brak pamiÄci" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Nie można odnaleÅŗÄ podpisu ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "NieprawidÅowy plik ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Wieloplikowe archiwa ZIP nie sÄ obsÅugiwane" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Nie można otworzyÄ pliku" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Nie można odczytaÄ danych z pliku" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Nie można odnaleÅŗÄ pliku w archiwum ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Nieznany bÅÄ d" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Wczytanie dokumentu \"%s\" siÄ nie powiodÅo" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Zapisanie dokumentu \"%s\" siÄ nie powiodÅo" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dokumenty PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Nie można zapisaÄ zaÅÄ cznika \"%s\": %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Nie można otworzyÄ zaÅÄ cznika \"%s\": %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Nie można otworzyÄ zaÅÄ cznika \"%s\"" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Plik typu %s (%s) nie jest obsÅugiwany" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Wszystkie dokumenty" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Wszystkie pliki" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Utworzenie pliku tymczasowego siÄ nie powiodÅo: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Utworzenie katalogu tymczasowego siÄ nie powiodÅo: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "NieprawidÅowy plik .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nierozpoznana wersja pliku .desktop \"%s\"" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Uruchamianie %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program nie przyjmuje dokumentĆ³w w wierszu poleceÅ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nierozpoznana opcja uruchamiania: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Nie można przekazaÄ adresĆ³w URI dokumentĆ³w do wpisu .desktop \"Type=Link\"" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nie można uruchomiÄ elementu" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "RozÅÄ cza poÅÄ czenie z menedżerem sesji" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "OkreÅla plik zawierajÄ cy zapisanÄ konfiguracjÄ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "PLIK" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "OkreÅla identyfikator zarzÄ dzania sesji" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "Identyfikator" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opcje zarzÄ dzania sesjÄ :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "WyÅwietla opcje zarzÄ dzania sesjÄ " + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "WyÅwietl \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_PrzesuÅ na pasku narzÄdziowym" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Przesuwa zaznaczony obiekt na pasku narzÄdziowym" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_UsuÅ z paska narzÄdziowego" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Usuwa zaznaczony obiekt z paska narzÄdziowego" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_UsuÅ pasek narzÄdziowy" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "_PrzesuÅ zaznaczony pasek narzÄdziowy" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separator" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Dopasuj" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Dopasuj do szerokoÅci" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "PrzeglÄ darka dokumentĆ³w" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "WyÅwietlanie wielostronicowych dokumentĆ³w" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Bez uwzglÄdniania ograniczeÅ dokumentu" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Bez uwzglÄdniania ograniczeÅ dokumentu, takich jak ograniczenie kopiowania " +"lub drukowania." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Usuwa plik tymczasowy" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Drukuje plik ustawieÅ" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "PrzeglÄ darka podglÄ du dokumentĆ³w Årodowiska MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "Wydrukowanie dokumentu siÄ nie powiodÅo" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Nie można odnaleÅŗÄ wybranej drukarki \"%s\"" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "Poprzednia _strona" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Przechodzi do poprzedniej strony" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "_NastÄpna strona" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Przechodzi do nastÄpnej strony" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "PowiÄksza widok dokumentu" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Zmniejsza widok dokumentu" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Wydrukuj" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Drukuje bieÅ¼Ä cy dokument" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "Najlepsze d_opasowanie" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Dopasowuje rozmiar dokumentu do rozmiaru okna" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "Dopasowanie do _szerokoÅci" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Dopasowuje szerokoÅÄ dokumentu do szerokoÅci okna" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Strona" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "Wybiera stronÄ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TytuÅ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "PoÅożenie:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Temat:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "SÅowa kluczowe:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producent:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "TwĆ³rca:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Utworzono:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Zmodyfikowano:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Liczba stron:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optymalizacja:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Zabezpieczenia:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Rozmiar papieru:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Brak" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f cali" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, pionowo (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, poziomo (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d z %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "z %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Wczytywanieā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Przygotowywanie do wydrukuā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "KoÅczenieā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Drukowanie strony %d z %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Drukowanie na tej drukarce nie jest obsÅugiwane." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "NieprawidÅowy wybĆ³r strony" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Ostrzeżenie" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "WybĆ³r zakresu wydruku nie zawiera żadnej strony" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Skalowanie strony:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Zmniejszenie do drukowalnego obszaru" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Dopasowanie do drukowalnego obszaru" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Skalowanie stron dokumentu, aby pasowaÅy do wybranej strony drukarki. ProszÄ " +"wybraÄ jednÄ opcjÄ z poniższych:\n" +"\n" +"ā¢ \"Brak\": żadne skalowanie strony nie bÄdzie wykonywane.\n" +"\n" +"ā¢ \"Zmniejszenie do drukowalnego obszaru\": strony dokumentu wiÄksze niż " +"obszar drukowalny bÄdÄ zmniejszane, aby pasowaÄ do drukowalnego obszaru " +"stron drukarki.\n" +"\n" +"ā¢ \"Dopasowanie do drukowalnego obszaru\": strony dokumentĆ³w bÄdÄ " +"powiÄkszane lub zmniejszane, aby dopasowaÄ do obszaru drukowalnego stron " +"drukarki.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Automatyczne obracanie i wyÅrodkowanie" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Obraca ukÅad strony drukarki każdej strony na pasujÄ cy do ukÅadu stron " +"dokumentu. Strony dokumentu bÄdÄ wyÅrodkowane na stronie drukarki." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "WybĆ³r rozmiaru strony na podstawie rozmiaru stron dokumentu" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Kiedy jest wÅÄ czone, każda strona bÄdzie drukowana na tym samym rozmiarze " +"papieru, ktĆ³ry używajÄ strony dokumentu." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ObsÅuga stron" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Wydrukowanie strony %d siÄ nie powiodÅo: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "PrzewiniÄcie w gĆ³rÄ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "PrzewiniÄcie w dĆ³Å" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "PrzewiniÄcie widoku w gĆ³rÄ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "PrzewiniÄcie widoku w dĆ³Å" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Widok dokumentĆ³w" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "PrzejdÅŗ do strony:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Koniec prezentacji. KlikniÄcie zamknie okno." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "PrzejdÅŗ do pierwszej strony" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "PrzejdÅŗ do poprzedniej strony" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "PrzejdÅŗ do nastÄpnej strony" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "PrzejdÅŗ do ostatniej strony" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "PrzejdÅŗ do strony" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ZnajdÅŗ" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "PrzejdÅŗ do strony %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "PrzejdÅŗ do %s z pliku \"%s\"" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "PrzejdÅŗ do pliku \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Uruchom %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ZnajdÅŗ:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "ZnajdÅŗ p_oprzednie" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Wyszukuje poprzednie wystÄ pienie szukanego napisu" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "ZnajdÅŗ _nastÄpne" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Wyszukuje nastÄpne wystÄ pienie szukanego napisu" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_RozrĆ³Å¼nianie wielkoÅci liter" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "WÅÄ cza rozrĆ³Å¼nianie wielkoÅci liter przy wyszukiwaniu" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikona:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Notatka" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Komentarz" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Klucz" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Pomoc" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nowy akapit" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Akapit" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Wstawka" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Krzyżyk" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "KĆ³Åko" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Nieznana" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "WÅaÅciwoÅci adnotacji" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Kolor:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Styl:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Przezroczysty" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Nieprzezroczysty" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "PoczÄ tkowy stan okna:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Otwarte" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ZamkniÄte" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Praca w trybie prezentacji" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "HasÅo dla dokumentu %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konwertowanie %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "Przekonwertowano dokumentĆ³w: %d z %d" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konwertowanie metadanych" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Format metadanych używany przez program Evince zostaÅ zmieniony, dlatego " +"musi zostaÄ wykonana migracja. JeÅli zostanie ona anulowana, pamiÄÄ " +"metadanych nie bÄdzie dziaÅaÅa." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Otwiera ostatnio używany dokument" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ten dokument jest zablokowany, jego otwarcie wymaga wprowadzenia poprawnego " +"hasÅa." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "Odblok_uj dokument" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ProszÄ wprowadziÄ hasÅo" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Wymagane hasÅo" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Dokument \"%s\" jest zablokowany, jego otwarcie wymaga wprowadzenia hasÅa." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_HasÅo:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_Bez zapamiÄtania hasÅa" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_ZapamiÄtanie hasÅa do wylogowania" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Z_apamiÄtanie na zawsze" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "WÅaÅciwoÅci" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "OgĆ³lne" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Czcionki" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licencja dokumentu" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Czcionka" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Zbieranie informacji o czcionceā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Warunki używania" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Tekst licencji" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "WiÄcej informacji" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Adnotacje" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Dodanie adnotacji tekstowej" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Dodawanie" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokument nie zawiera adnotacji" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Strona %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ZaÅÄ czniki" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Warstwy" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Wydrukujā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Indeks" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniatury" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Strona %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Strona %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Dokument nie zawiera stron" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Dokument zawiera tylko puste strony" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Nie można otworzyÄ dokumentu" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Wczytywanie dokumentu z \"%s\"" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Pobieranie dokumentu (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Wczytanie zdalnego pliku siÄ nie powiodÅo." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Ponowne wczytywanie dokumentu z %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Ponowne wczytanie dokumentu siÄ nie powiodÅo." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Otwarcie dokumentu" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Zapisywanie dokumentu do %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Zapisywanie zaÅÄ cznika do %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Zapisywanie obrazu do %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Nie można zapisaÄ pliku jako \"%s\"." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "WysyÅanie dokumentu (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "WysyÅanie zaÅÄ cznika (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "WysyÅanie obrazu (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Zapis kopii" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d oczekujÄ ce zadanie w kolejce" +msgstr[1] "%d oczekujÄ ce zadania w kolejce" +msgstr[2] "%d oczekujÄ cych zadaÅ w kolejce" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Drukowanie zadania \"%s\"" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokument zawiera pola formularza, ktĆ³re zostaÅy wypeÅnione. JeÅli kopia nie " +"zostanie zapisana, to zmiany zostanÄ bezpowrotnie utracone." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokument zawiera nowe lub zmienione adnotacje. JeÅli kopia nie zostanie " +"zapisana, to zmiany zostanÄ bezpowrotnie utracone." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ZapisaÄ kopiÄ dokumentu \"%s\" przed zamkniÄciem?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Zamknij _bez zapisywania" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Zapisz _kopiÄ" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "PoczekaÄ na ukoÅczenie zadania wydruku \"%s\" przed zamkniÄciem?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Aktywnych zadaÅ wydruku: %d. PoczekaÄ na ukoÅczenie wydruku przed " +"zamkniÄciem?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ZamkniÄcie okna spowoduje anulowanie wydruku oczekujÄ cych zadaÅ." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "Anuluj _drukowanie i zamknij" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "_Zamknij po wydrukowaniu" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Edytor paska narzÄdziowego" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "WystÄ piÅ bÅÄ d podczas wyÅwietlania pomocy" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"PrzeglÄ darka dokumentĆ³w\n" +"Używa biblioteki poppler %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Program Evince jest wolnym oprogramowaniem; można go rozprowadzaÄ dalej i/" +"lub modyfikowaÄ na warunkach Powszechnej Licencji Publicznej GNU, wydanej " +"przez FundacjÄ Wolnego Oprogramowania (Free Software Foundation) - wedÅug " +"wersji drugiej tej Licencji lub ktĆ³rejÅ z pĆ³Åŗniejszych wersji.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Program Evince rozpowszechniany jest z nadziejÄ , iż bÄdzie on użyteczny - " +"jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyÅlnej gwarancji PRZYDATNOÅCI " +"HANDLOWEJ albo PRZYDATNOÅCI DO OKREÅLONYCH ZASTOSOWAÅ. W celu uzyskania " +"bliższych informacji należy zapoznaÄ siÄ z PowszechnÄ LicencjÄ PublicznÄ " +"GNU.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Z pewnoÅciÄ wraz z programem Evince dostarczono także egzemplarz Powszechnej " +"Licencji Publicznej GNU (GNU General Public License); jeÅli nie - proszÄ " +"napisaÄ do Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " +"Boston, MA 02110-130159 USA.\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Autorzy programu Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "Aviary.pl <matepl@aviary.pl>, 2008, 2009, 2010" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d wystÄ pienie na tej stronie" +msgstr[1] "%d wystÄ pienia na tej stronie" +msgstr[2] "%d wystÄ pieÅ na tej stronie" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Nie odnaleziono" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% pozostaÅych do przeszukania" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Plik" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Edycja" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Widok" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "Przej_dÅŗ" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "Pomo_c" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_OtwĆ³rzā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Otwiera istniejÄ cy dokument" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "OtwĆ³rz _kopiÄ" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Otwiera kopiÄ bieÅ¼Ä cego dokumentu w nowym oknie" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_Zapisz kopiÄā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Zapisuje kopiÄ bieÅ¼Ä cego dokumentu" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "Wy_drukujā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "WÅ_aÅciwoÅci" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "Z_aznacz wszystko" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_ZnajdÅŗā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Wyszukuje w dokumencie podane sÅowo lub wyrażenie" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "Pasek _narzÄdziowy" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "ObrĆ³Ä w _lewo" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "ObrĆ³Ä w p_rawo" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Zapisz bieÅ¼Ä ce ustawienia jako _domyÅlne" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "Wczy_taj ponownie" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Wczytuje ponownie bieÅ¼Ä cy dokument" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "_Automatyczne przewijanie" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "Pie_rwsza strona" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Przechodzi do pierwszej strony" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_Ostatnia strona" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Przechodzi do ostatniej strony" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Spis treÅci" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_O programie" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "OpuÅÄ tryb peÅnoekranowy" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Opuszcza tryb peÅnoekranowy" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "WyÅwietl prezentacjÄ" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "WyÅwietla prezentacjÄ" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "Pasek _narzÄdziowy" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "WyÅwietla lub ukrywa pasek narzÄdziowy" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "Panel _boczny" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "WyÅwietla lub ukrywa panel boczny" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_CiÄ gÅy" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "WyÅwietla caÅy dokument" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "Po_dwĆ³jny" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "WyÅwietla dwie strony naraz" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "PeÅny _ekran" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "WyÅwietla dokument w trybie peÅnoekranowym" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "Pre_zentacja" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "WyÅwietla dokument jako prezentacjÄ" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "OdwrĆ³cone _kolory" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "WyÅwietla zawartoÅÄ strony z odwrĆ³conymi kolorami" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_OtwĆ³rz odnoÅnik" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_PrzejdÅŗ do" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Ot_wĆ³rz w nowym oknie" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_Skopiuj adres odnoÅnika" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_Zapisz obraz jakoā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "Skopiuj _obraz" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "WÅaÅciwoÅci adnotacjiā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_OtwĆ³rz zaÅÄ cznik" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "Zapi_sz zaÅÄ cznik jakoā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "PowiÄkszenie" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Dostosowuje powiÄkszenie dokumentu" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Nawigacja" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Wstecz" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Przechodzi pomiÄdzy odwiedzonymi stronami" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "Poprzednia" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "NastÄpna" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "PowiÄksz" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Pomniejsz" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Dopasuj do szerokoÅci" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "Nie można uruchomiÄ zewnÄtrznego programu." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "Nie można otworzyÄ zewnÄtrznego odnoÅnika" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Nie można odnaleÅŗÄ odpowiedniego formatu, aby zapisaÄ obraz" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "Nie można zapisaÄ obrazu." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Zapis obrazu" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "Nie można otworzyÄ zaÅÄ cznika" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "Nie można zapisaÄ zaÅÄ cznika." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Zapis zaÅÄ cznika" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā wymagane hasÅo" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Wg rozszerzenia" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "PrzeglÄ darka dokumentĆ³w dla Årodowiska MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Etykieta strony dokumentu do wyÅwietlenia." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "STRONA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Numer strony dokumentu do wyÅwietlenia." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Uruchamia program Evince w trybie peÅnoekranowym" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Uruchamia program Evince w trybie prezentacji" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Uruchamia program Evince w trybie podglÄ du" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "SÅowo lub wyrażenie do wyszukania w dokumencie" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "CIÄG" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[PLIKā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"DostÄpne sÄ dwie opcje: \"true\" wÅÄ cza miniatury, \"false\" wyÅÄ cza " +"tworzenie nowych miniatur" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Tworzenie miniatur dokumentĆ³w PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Polecenie tworzenia miniatur dla dokumentĆ³w PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PrawidÅowe polecenie wraz z parametrami dla generatora miniatur PDF. WiÄcej " +"informacji można znaleÅŗÄ w dokumentacji generatora miniatur programu " +"Caja." diff --git a/po/ps.po b/po/ps.po new file mode 100644 index 00000000..553eb380 --- /dev/null +++ b/po/ps.po @@ -0,0 +1,1241 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: evince.head\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-07-14 03:15+0000\n" +"PO-Revision-Date: 2008-07-14 16:24-0800\n" +"Last-Translator: Zabeeh Khan <zabeehkhan@gmail.com>\n" +"Language-Team: Pashto <pathanisation@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Pashto, Pushto\n" +"X-Poedit-Country: AFGHANISTAN\n" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "File corrupted." +msgstr ".Ų§ŁŲÆŲ±ŲŗŁŁ ŲÆŁŲŖŁŁ" + +#: ../backend/comics/comics-document.c:203 +#, c-format +msgid "No images found in archive %s" +msgstr "Ų§Ų±Ų“ŁŁ Ś©Ū Ś©ŁŁ Ų§ŁŚŁŲ± ŁŁŁ Ł ŁŁŲÆŁ Ų“Ł %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Ł¼ŁŚ©Ł Ś©ŲŖŲ§ŲØŁŁŁ" + +#: ../backend/djvu/djvu-document.c:247 +#, c-format +msgid "The document is composed by several files. One or more of such files cannot be accessed." +msgstr "" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ Djvu" + +#: ../backend/dvi/dvi-document.c:94 +#, c-format +msgid "File not available" +msgstr "ŲÆŁŲŖŁŁ ŁŁ Ų“ŲŖŁ" + +#: ../backend/dvi/dvi-document.c:109 +#, c-format +msgid "DVI document has incorrect format" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŲ§Ų³Ł Ł ŲØŚ¼Ł ŁŲ±Ł DVI" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:688 +msgid "Yes" +msgstr "ŁŁ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:691 +msgid "No" +msgstr "ŁŁ" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Type 1" +msgstr "Ū± ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:767 +msgid "Type 1C" +msgstr "Ū±C ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:769 +msgid "Type 3" +msgstr "Ū³ ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:771 +msgid "TrueType" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:773 +msgid "Type 1 (CID)" +msgstr "(CID) Ū± ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:775 +msgid "Type 1C (CID)" +msgstr "(CID) Ū±C ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "TrueType (CID)" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Unknown font type" +msgstr "ŲÆ ŁŁŚ©ŲØŚ¼Ū ŁŲ§Ł¾ŪŚŁŲÆŁ Ų“ŁŪ ŚŁŁ" + +#: ../backend/pdf/ev-poppler.cc:805 +msgid "No name" +msgstr "ŁŪŚ ŁŁŁ " + +#: ../backend/pdf/ev-poppler.cc:813 +msgid "Embedded subset" +msgstr "" + +#: ../backend/pdf/ev-poppler.cc:815 +msgid "Embedded" +msgstr "Ų±Ų§ŲŖŲ§Ł" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "Not embedded" +msgstr "ŁŲ§ Ų±Ų§ŲŖŲ§Ł" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ PDF" + +#: ../backend/impress/impress-document.c:296 +#, c-format +msgid "Remote files aren't supported" +msgstr "ŁŲ± ŲÆŁŲŖŁŪ Ł ŁŁŪ ŁŁ ŲÆŁ" + +#: ../backend/impress/impress-document.c:307 +#, c-format +msgid "Invalid document" +msgstr "ŁŲ§Ų³Ł ŁŲ§Ų³ŁŁŲÆ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŁŪŚ ŲŖŪŲ±ŁŲŖŁŁ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŲÆŁŁ Ų±Ł ŁŲ§ŲÆ ŁŲ“ŲŖŁ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "Ų²ŪŁ¾ ŁŲ§Ų³ŁŁŚ© ŁŁ Ų“Ł Ł ŁŁŲÆŁŪ" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "ŁŲ§Ų³Ł Ų²ŪŁ¾ ŲÆŁŲŖŁŁ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "Ś«Ś¼ ŲÆŁŲŖŁŁ Ų²ŪŁ¾ŁŁŁ Ł ŁŁŁ ŁŁ ŲÆŁ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŲÆŁŲŖŁŁ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŁŁ ŲÆŁŲŖŁŪ Ų§ŁŁ ŲŖŁŚ© ŁŁ Ų“Ł ŁŁŲ³ŲŖŁŪ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "Ł¾Ł Ų²ŪŁ¾ Ų§Ų±Ų“ŁŁ Ś©Ū ŲÆŁŲŖŁŁ ŁŁ Ų“Ł Ł ŁŁŲÆŁŪ" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŁŲ§Ł¾ŪŚŁŲÆŁŪ ŲŖŪŲ±ŁŲŖŁŁ" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŁŲ§Ų³ŁŁŲÆ Ł¾Ł ŁŪŚŁŁ Ś©Ū Ł¾Ų§ŲŖŪ Ų±Ų§ŲŗŪ ā%sā ŲÆ" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŁŲ§Ų³ŁŁŲÆ Ł¾Ł Ų³Ų§ŲŖŁŁ Ś©Ū Ł¾Ų§ŲŖŪ Ų±Ų§ŲŗŪ ā%sā ŲÆ" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ PostScript" + +#: ../libdocument/ev-attachment.c:303 +#: ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "%s :ŁŚŁŁ ŁŁ Ų“Ł Ų³Ų§ŲŖŁŪ ā%sā" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "%s :ŁŚŁŁ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ ā%sā" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŁŚŁŁ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ ā%sā" + +#: ../libdocument/ev-document-factory.c:193 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ŲÆŁŲŖŁŁ ŚŁŁ Ł ŁŁŪ ŁŁ ŲÆŪ (%s) %s" + +#: ../libdocument/ev-document-factory.c:294 +#, c-format +msgid "Unknown MIME Type" +msgstr "ŚŁŁ MIME ŁŲ§Ł¾ŪŚŁŲÆŁŪ" + +#: ../libdocument/ev-document-factory.c:349 +msgid "All Documents" +msgstr "Ł¼ŁŁ ŁŲ§Ų³ŁŁŲÆŁŁŁ" + +#: ../libdocument/ev-document-factory.c:381 +msgid "All Files" +msgstr "Ł¼ŁŁŪ ŲÆŁŲŖŁŪ" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "ŁŚ_ŁŪŲÆŁ" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "ŲØŪŁŁŁ Ł ŁŚŁŪŲÆŁ_" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr ":ŁŚ©Ł Ś©_Ų§Ų±Ł ŁŚŁŪŲÆŁ" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr ":Ś©Ų§Ų±ŁŁŁŁ _" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr ":Ų“Ł¾ŁŁ_" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr ":ŲŖŪŲ±ŁŁŁŪ_" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "ŲÆŲ³ŲŖŁ ŁŁ ŁŲ§ŲÆŁ ŁŁŲ³ŲŖŁ_" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "ŲŖŪŲ±ŁŁŁŪ ŲŖŲ± ŁŲŖŁŁ ŁŲ§ŲÆ Ų³Ų§ŲŖŁ_" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "ŲŖŁ ŁŲ§ŲÆ Ų³Ų§ŲŖŁ_" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ŚŁŲÆŁ ā%s_ā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "ŲŖŁŚ©Ł¾Ł¼Ł Ś©Ū Ų®ŁŚŁŁ_" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "Ł¼Ų§Ś©Ł Ų“ŁŪ ŲŖŁŚ©Ū Ł¾Ł ŲŖŁŚ©Ł¾Ł¼Ł Ś©Ū Ų®ŁŚŁŁ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "ŁŁ ŲŖŁŚ©Ł¾Ł¼Ū ŚŁŚ«ŁŁ_" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "Ł¼Ų§Ś©Ł Ų“ŁŪ ŲŖŁŚ©Ū ŁŁ ŲŖŁŚ©Ł¾Ł¼Ū ŚŁŚ«ŁŁ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "ŲŖŁŚ©Ł¾Ł¼Ł ŚŁŚ«ŁŁ_" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "Ł¼Ų§Ś©Ł Ų“ŁŪ ŲŖŁŚ©Ł¾Ł¼Ł ŚŁŚ«ŁŁ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "ŲØŪŁŁŲÆ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:4623 +msgid "Best Fit" +msgstr "ŚŁ ŲØŲ±Ų§ŲØŲ±ŁŁ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŲÆ Ł Ų® Ł¾ŁŁŁŲ§ŁŪ ŲØŲ±Ų§ŲØŲ±ŁŁ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "ŪµŪ°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "Ū·Ū°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "ŪøŪµŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "Ū±Ū°Ū°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "Ū±Ū²ŪµŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "Ū±ŪµŪ°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "Ū±Ū·ŪµŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "Ū²Ū°Ū°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "Ū³Ū°Ū°ŁŖ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "Ū“Ū°Ū°ŁŖ" + +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:3729 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŁŲÆŲ§ŁŪ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Ś«Ś¼ ŁŲ§Ų³ŁŁŲÆŁŁŁ ŁŁŲÆŁ" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ŲŖŪŲ±ŁŁŁŪ ŁŁŁŲŖ" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ŲÆ ŲÆŪ ŁŲ§Ų³ŲŖŪ ŁŁ¾Ų§Ų±Ł ŲŖŪŲ±ŁŁŁŪ ŁŲ§ŲÆ Ų³Ų§ŲŖŁ" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>:ŁŁŚ©ŁŲ§Ł</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>:Ų¬ŁŚ Ų“ŁŪ</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>:Ų¬ŁŚŁŁŁŚ©Ū</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>:ŲØŚ¼Ł</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>:Ų§Ų±ŁŁŁŁŁŁ</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>:ŲØŲÆŁ Ų“ŁŪ</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>:ŲÆ Ł Ų®ŁŁŁ Ų“Ł ŪŲ±</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>:ŲÆ Ł¾Ų§Ś¼Ū Ś©Ś</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>:Ų®ŁŁŲÆŁŲŖŁŲØ</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>:Ų³Ų±ŁŁŚ©</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>:Ų³Ų±ŁŁŚ©</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../properties/ev-properties-main.c:111 +msgid "Document" +msgstr "ŁŲ§Ų³ŁŁŲÆ" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "ŁŪŚ " + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:369 +msgid "default:mm" +msgstr "" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:251 +#: ../properties/ev-properties-view.c:406 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f Ł Ł " + +#: ../properties/ev-properties-view.c:255 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f Ų§ŪŁŚŁ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:279 +#: ../properties/ev-properties-view.c:417 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "(%s) ŲŖŁŚ© Ų%s" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:286 +#: ../properties/ev-properties-view.c:424 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "(%s) Ł¾Ų³ŁŲ±ŪŲ² Ų%s" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:401 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f Ų§ŪŁŚŁ" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "Ł Ų²Ū Ł¾ŁŁ¼Ł" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "ŲÆ Ł ŁŁŲÆŁ Ś©ŪŲÆŁŁŚ©Ł Ł Ų²Ł ŁŁŁ " + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "ŚŁŪŲÆŁ Ų±ŁŚ«" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "ŲÆ Ł¼ŁŁŁ Ų³Ų§Ų±Ł ŁŁ¾Ų§Ų±Ł ŲÆ ŚŁŪŲÆŁ Ų±ŁŚ«" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "Ų§ŁŲ³ŁŪ Ų±ŁŚ«" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "ŲÆ Ų§ŁŲ³ŁŁ Ų³Ų§Ų±Ł ŁŁ¾Ų§Ų±Ł ŲÆ ŚŁŪŲÆŁ Ų±ŁŚ«" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr ":ŁŁ¼ŁŁ" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "Ł Ų®Ś©ŁŪ ŁŁ¼ŁŁ" + +#: ../shell/eggfindbar.c:334 +#: ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "ŲÆ Ł¾ŁŁ¼Ł Ł Ų²Ł Ł Ų®Ś©ŁŪ Ų³Ų§Ų±Ū ŁŁ¼ŁŁ" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "Ų±Ų§ŲŖŁŁŁŚ©Ū ŁŁ¼ŁŁ" + +#: ../shell/eggfindbar.c:347 +#: ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "ŲÆ Ł¾ŁŁ¼Ł Ł Ų²Ł Ų±Ų§ŲŖŁŁŁŚ©Ū Ų³Ų§Ų±Ū ŁŁ¼ŁŁ" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:363 +#: ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-jobs.c:702 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "%s :ŲÆŁŲŖŁŪ Ł¾Ł Ų¬ŁŚŁŁŁ Ś©Ū Ł¾Ų§ŲŖŪ Ų±Ų§ŲŗŪ ā%sā ŲÆ" + +#: ../shell/ev-open-recent-action.c:71 +msgid "Open a recently used document" +msgstr "Ų§ŁŲ³ Ś©Ų§Ų±ŁŁ Ų“ŁŪ ŁŲ§Ų³ŁŁŲÆ Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ŁŁ %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "%d ŁŁ" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "ŲŖŪŲ±ŁŁŁŪ Ų§ŚŁŁŁ ŲÆŁ" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr ".ŁŲ§Ų³ŁŁŲÆ Ś©ŁŁŁ¾ ŲÆŪ Ų§Ł ŲÆ Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŁ ŁŁ¾Ų§Ų±Ł ŁŪ ŲŖŪŲ±ŁŁŁŪ Ų§ŚŁŁŁ ŲÆŁ ā%sā" + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "ŲŖŪŲ±ŁŁŁŪ ŁŁŁŚ©Ų¦" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŲŖŪŲ±ŁŁŁŪ %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "ŁŲ§Ų³Ł Ł ŲŖŪŲ±ŁŁŁŪ" + +#: ../shell/ev-password-view.c:111 +msgid "This document is locked and can only be read by entering the correct password." +msgstr ".ŲÆŲ§ ŁŲ§Ų³ŁŁŲÆ Ś©ŁŁŁ¾ ŲÆŪ Ų§Ł ŁŁŲ§Ų²Ū ŁŁŁ ŁŪ ŁŁŲ³ŲŖŁŪ Ų“Ų¦ ŚŪ Ų³Ł Ł ŲŖŪŲ±ŁŁŁŪ ŁŁŁŚ©Ų¦" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŲ§Ś©ŁŁŁ¾ŁŁ_" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "ŚŲ§ŁŲŖŁŲ§ŁŪ" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "Ł¼ŁŁŚ«ŚŁ" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "ŁŁŚ©ŲØŚ¼Ū" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "ŁŁŚ©ŲØŚ¼Ł" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "%3d%% ...ŲÆ ŁŁŚ©ŲØŚ¼Ū Ų®ŲØŲ±ŲŖŁŲ§ŁŪ Ł¼ŁŁŁŁ Ś©ŁŚŁ" + +#: ../shell/ev-sidebar-attachments.c:675 +msgid "Attachments" +msgstr "ŁŚŁŁ" + +#: ../shell/ev-sidebar-links.c:266 +#: ../shell/ev-view.c:3647 +msgid "Loading..." +msgstr "...ŁŪŚŁ Ś©ŁŚŁ" + +#: ../shell/ev-sidebar-links.c:339 +msgid "Print..." +msgstr "...ŚŲ§Ł¾ŁŁ" + +#: ../shell/ev-sidebar-links.c:719 +msgid "Index" +msgstr "ŁŚŁŲ§Ł" + +#: ../shell/ev-sidebar-thumbnails.c:727 +msgid "Thumbnails" +msgstr "ŲØŁ¼Ł ŁŁŚ©Ł" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ŲØŲ±Ł Ų±ŲŗŚŲŖŁ" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ŚŚ©ŲŖŁ Ų±ŲŗŚŲŖŁ" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ŁŁŲÆ ŲØŲ±Ł Ų±ŲŗŚŲŖŁ" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ŁŁŲÆ ŚŚ©ŲŖŁ Ų±ŲŗŚŲŖŁ" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŁŲÆ" + +#: ../shell/ev-view.c:1443 +msgid "Go to first page" +msgstr "ŁŁŁ ŚŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-view.c:1445 +msgid "Go to previous page" +msgstr "Ł Ų®Ś©ŁŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-view.c:1447 +msgid "Go to next page" +msgstr "Ų±Ų§ŲŖŁŁŁŚ©Ł Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-view.c:1449 +msgid "Go to last page" +msgstr "ŁŲ±ŁŲ³ŲŖŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-view.c:1451 +msgid "Go to page" +msgstr "Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-view.c:1453 +msgid "Find" +msgstr "ŁŁ¼ŁŁ" + +#: ../shell/ev-view.c:1481 +#, c-format +msgid "Go to page %s" +msgstr "Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ %s" + +#: ../shell/ev-view.c:1487 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŲŖŁ ŁŲ±ŲŖŁŁ %s ŲÆŁŲŖŁŁ Ś©Ū ā%sā Ł¾Ł" + +#: ../shell/ev-view.c:1490 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŲÆŁŲŖŁŪ ŁŁ ŁŲ±ŲŖŁŁ ā%sā" + +#: ../shell/ev-view.c:1498 +#, c-format +msgid "Launch %s" +msgstr "Ł¾ŪŁŁŁ %s" + +#: ../shell/ev-view.c:2450 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../shell/ev-view.c:3374 +msgid "Jump to page:" +msgstr ":Ł Ų® ŲŖŁ Ł¼ŁŁ¾ ŁŁŁ" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:5158 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-view.c:5167 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:785 +#, c-format +msgid "Page %s - %s" +msgstr "%s - %s Ł Ų®" + +#: ../shell/ev-window.c:787 +#, c-format +msgid "Page %s" +msgstr "Ł Ų® %s" + +#: ../shell/ev-window.c:1200 +msgid "The document contains no pages" +msgstr "ŁŲ§Ų³ŁŁŲÆ Ł Ų®ŁŁŁ ŁŁ ŁŲ±Ł" + +#: ../shell/ev-window.c:1432 +#: ../shell/ev-window.c:1507 +msgid "Unable to open document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ" + +#: ../shell/ev-window.c:1704 +msgid "Open Document" +msgstr "ŁŲ§Ų³ŁŁŲÆ Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:1765 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "" + +#: ../shell/ev-window.c:1794 +msgid "Cannot open a copy." +msgstr "ŁŁ ŪŲ³Ł ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ" + +#: ../shell/ev-window.c:2038 +#: ../shell/ev-window.c:2088 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr ".ŁŁŁ Ų³Ų§ŲŖŁ Ų“ŁŁ ā%sā ŲÆŁŲŖŁŁ ŁŚ©Ł" + +#: ../shell/ev-window.c:2133 +msgid "Save a Copy" +msgstr "ŁŁ ŪŲ³Ł Ų³Ų§ŲŖŁ" + +#: ../shell/ev-window.c:2254 +#: ../shell/ev-window.c:3430 +msgid "Failed to print document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŚŲ§Ł¾ŁŁŁ Ś©Ū Ł¾Ų§ŲŖŪ Ų±Ų§ŲŗŪ" + +#: ../shell/ev-window.c:2419 +msgid "Printing is not supported on this printer." +msgstr ".Ł¾Ł ŲÆŪ ŚŲ§Ł¾Ś«Ų± ŲØŲ§ŁŲÆŪ ŚŲ§Ł¾ŁŁŁ Ł ŁŁŪ ŁŁ ŲÆŁ" + +#: ../shell/ev-window.c:2545 +#: ../shell/ev-window.c:4415 +msgid "Print" +msgstr "ŚŲ§Ł¾ŁŁ" + +#: ../shell/ev-window.c:3183 +msgid "Toolbar Editor" +msgstr "ŲŖŁŚ©Ł¾Ł¼Ł Ų³Ł ŁŁŚ«Ų±" + +#: ../shell/ev-window.c:3725 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +".ŁŲ§Ų³ŁŁŲÆ ŁŁŲÆŲ§ŁŪ\n" +"Ś©Ų§Ų±ŁŁ (%s) %s ŚŪ Ł¾Ų§Ł¾ŁŲ±" + +#: ../shell/ev-window.c:3753 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "" + +#: ../shell/ev-window.c:3757 +msgid "Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:3761 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:3785 +#: ../shell/main.c:350 +msgid "Evince" +msgstr "Ų§ŪŁŪŁŲ³" + +#: ../shell/ev-window.c:3788 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "ŚŲ§Ł¾Ų±ŚŲŖŪ Ū±Ū¹Ū¹Ū¶-Ū²Ū°Ū°Ū· ŲÆ Ų§ŪŁŪŁŲ³ ŁŁŚ©ŁŲ§ŁŲ§Ł" + +#: ../shell/ev-window.c:3794 +msgid "translator-credits" +msgstr "" +"Zabeeh Khan <zabeehkhan@gmail.com>\n" +"The Pathanisation Project <pathanisation@googlegroups.com>" + +#: ../shell/ev-window.c:4327 +msgid "_File" +msgstr "ŲÆŁŲŖŁŁ_" + +#: ../shell/ev-window.c:4328 +msgid "_Edit" +msgstr "Ų³Ł ŁŁ_" + +#: ../shell/ev-window.c:4329 +msgid "_View" +msgstr "ŁŁŲÆ_" + +#: ../shell/ev-window.c:4330 +msgid "_Go" +msgstr "ŁŲ±ŲŖŚ«_" + +#: ../shell/ev-window.c:4331 +msgid "_Help" +msgstr "Ł Ų±Ų³ŲŖŁ_" + +#. File menu +#: ../shell/ev-window.c:4334 +#: ../shell/ev-window.c:4513 +#: ../shell/ev-window.c:4585 +msgid "_Open..." +msgstr "...Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ_" + +#: ../shell/ev-window.c:4335 +#: ../shell/ev-window.c:4586 +msgid "Open an existing document" +msgstr "Ų“ŲŖŁ ŁŲ§Ų³ŁŁŲÆ Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:4337 +msgid "Op_en a Copy" +msgstr "ŁŁ ŪŲ³Ł Ł¾Ų±_Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:4338 +msgid "Open a copy of the current document in a new window" +msgstr "ŲÆ Ų§ŁŲ³ŁŁ ŁŲ§Ų³ŁŁŲÆ ŁŁŁ ŁŁ ŪŲ³Ł Ł¾Ł ŁŁŪ Ś©ŚŚ©Ū Ś©Ū Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:4340 +#: ../shell/ev-window.c:4515 +msgid "_Save a Copy..." +msgstr "...ŁŁ ŪŲ³Ł Ų³Ų§ŲŖŁ_" + +#: ../shell/ev-window.c:4341 +msgid "Save a copy of the current document" +msgstr "ŲÆ Ų§ŁŲ³ŁŁ ŁŲ§Ų³ŁŁŲÆ ŁŁŁ ŁŁ ŪŲ³Ł Ų³Ų§ŲŖŁ" + +#: ../shell/ev-window.c:4343 +msgid "Print Set_up..." +msgstr "...Ł Ų® Ų§Ł Ų³_ŲŖŁ" + +#: ../shell/ev-window.c:4344 +msgid "Setup the page settings for printing" +msgstr "ŲÆ ŚŲ§Ł¾ŁŁŁ ŁŁ¾Ų§Ų±Ł ŲÆ Ł Ų® Ų§Ł Ų³ŲŖŁŪ Ų§Ł Ų³ŲŖŁ" + +#: ../shell/ev-window.c:4346 +msgid "_Print..." +msgstr "...ŚŲ§Ł¾ŁŁ_" + +#: ../shell/ev-window.c:4347 +#: ../shell/ev-window.c:4416 +msgid "Print this document" +msgstr "ŲÆŲ§ ŁŲ§Ų³ŁŁŲÆ ŚŲ§Ł¾ŁŁ" + +#: ../shell/ev-window.c:4349 +msgid "P_roperties" +msgstr "Ś_Ų§ŁŲŖŁŲ§ŁŪ" + +#: ../shell/ev-window.c:4357 +msgid "Select _All" +msgstr "Ł¼ŁŁ Ł¼Ų§Ś©Ł_" + +#: ../shell/ev-window.c:4359 +msgid "_Find..." +msgstr "...ŁŁ¼ŁŁ_" + +#: ../shell/ev-window.c:4360 +msgid "Find a word or phrase in the document" +msgstr "Ł¾Ł ŁŲ§Ų³ŁŁŲÆ Ś©Ū Ś©ŁŁ Ł ŁŁŪ ŁŲ§ Ś Ų±Ś«ŁŲÆŪ ŁŁ¼ŁŁ" + +#: ../shell/ev-window.c:4362 +msgid "Find Ne_xt" +msgstr "Ų±Ų§_ŲŖŁŁŁŚ©Ū ŁŁ¼ŁŁ" + +#: ../shell/ev-window.c:4364 +msgid "Find Pre_vious" +msgstr "Ł Ų®Ś©_ŁŪ ŁŁ¼ŁŁ" + +#: ../shell/ev-window.c:4366 +msgid "T_oolbar" +msgstr "ŲŖ_ŁŚ©Ł¾Ł¼Ł" + +#: ../shell/ev-window.c:4368 +msgid "Rotate _Left" +msgstr "Ś©ŁŚ¼ ŚŁŲ±ŁŁŁ_" + +#: ../shell/ev-window.c:4370 +msgid "Rotate _Right" +msgstr "ŚŁ ŚŁŲ±ŁŁŁ_" + +#: ../shell/ev-window.c:4375 +msgid "Enlarge the document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŁŁŁŁ" + +#: ../shell/ev-window.c:4378 +msgid "Shrink the document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŁŚŁŁ" + +#: ../shell/ev-window.c:4380 +msgid "_Reload" +msgstr "ŲØŁŲ§ŁŪŚŁ_" + +#: ../shell/ev-window.c:4381 +msgid "Reload the document" +msgstr "ŁŲ§Ų³ŁŁŲÆ ŲØŁŲ§ŁŪŚŁ" + +#: ../shell/ev-window.c:4384 +msgid "Auto_scroll" +msgstr "Ų®Ł¾ŁŁ Ų±ŲŗŚŲŖŁ" + +#. Go menu +#: ../shell/ev-window.c:4388 +msgid "_Previous Page" +msgstr "Ł Ų®Ś©ŁŪ Ł Ų®_" + +#: ../shell/ev-window.c:4389 +msgid "Go to the previous page" +msgstr "Ł Ų®Ś©ŁŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-window.c:4391 +msgid "_Next Page" +msgstr "Ų±Ų§ŲŖŁŁŁŚ©Ū Ł Ų®_" + +#: ../shell/ev-window.c:4392 +msgid "Go to the next page" +msgstr "Ų±Ų§ŲŖŁŁŁŚ©Ł Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-window.c:4394 +msgid "_First Page" +msgstr "ŁŁŁ ŚŪ Ł Ų®_" + +#: ../shell/ev-window.c:4395 +msgid "Go to the first page" +msgstr "ŁŁŁ ŚŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#: ../shell/ev-window.c:4397 +msgid "_Last Page" +msgstr "ŁŲ±ŁŲ³ŲŖŪ Ł Ų®_" + +#: ../shell/ev-window.c:4398 +msgid "Go to the last page" +msgstr "ŁŲ±ŁŲ³ŲŖŁ Ł Ų® ŲŖŁ ŁŲ±ŲŖŁŁ" + +#. Help menu +#: ../shell/ev-window.c:4402 +msgid "_Contents" +msgstr "Ł ŁŚŁ¾Ų§ŁŚ«Ū_" + +#: ../shell/ev-window.c:4405 +msgid "_About" +msgstr "Ł¾Ł Ų§ŚŁ_" + +#. Toolbar-only +#: ../shell/ev-window.c:4409 +msgid "Leave Fullscreen" +msgstr "Ł¼ŁŁŁ Ł¾Ų±ŲÆŁ Ł¾Ų±ŪŚŁŲÆŁ" + +#: ../shell/ev-window.c:4410 +msgid "Leave fullscreen mode" +msgstr "ŲÆ Ł¼ŁŁŪ Ł¾Ų±ŲÆŪ Ų§Ś©Ų± Ł¾Ų±ŪŚŁŲÆŁ" + +#: ../shell/ev-window.c:4412 +msgid "Start Presentation" +msgstr "" + +#: ../shell/ev-window.c:4413 +msgid "Start a presentation" +msgstr "" + +#. View Menu +#: ../shell/ev-window.c:4469 +msgid "_Toolbar" +msgstr "ŲŖŁŚ©Ł¾Ł¼Ł_" + +#: ../shell/ev-window.c:4470 +msgid "Show or hide the toolbar" +msgstr "ŲŖŁŚ©Ł¾Ł¼Ł ŚŁŲÆŁ ŁŲ§ Ł¾Ł¼ŁŁ" + +#: ../shell/ev-window.c:4472 +msgid "Side _Pane" +msgstr "Ś ŁŚ« _ŚŁŚ©Ų§Ł¼" + +#: ../shell/ev-window.c:4473 +msgid "Show or hide the side pane" +msgstr "ŲÆ Ś ŁŚ« ŚŁŚ©Ų§Ł¼ ŚŁŲÆŁ ŁŲ§ Ł¾Ł¼ŁŁ" + +#: ../shell/ev-window.c:4475 +msgid "_Continuous" +msgstr "Ł¾Ų±ŁŁ Ł¾Ų³Ū_" + +#: ../shell/ev-window.c:4476 +msgid "Show the entire document" +msgstr "Ł¼ŁŁ ŁŲ§Ų³ŁŁŲÆ ŚŁŲÆŁ" + +#: ../shell/ev-window.c:4478 +msgid "_Dual" +msgstr "ŲÆŁŁ_" + +#: ../shell/ev-window.c:4479 +msgid "Show two pages at once" +msgstr "Ł¾Ł ŁŁ Ł ŁŲ§Ł ŲÆŁŁ Ł Ų®Ł ŚŁŲÆŁ" + +#: ../shell/ev-window.c:4481 +msgid "_Fullscreen" +msgstr "Ł¼ŁŁŁ Ł¾Ų±ŲÆŁ_" + +#: ../shell/ev-window.c:4482 +msgid "Expand the window to fill the screen" +msgstr "Ś©ŚŚ©Ū ŲŗŚŁŁ ŚŪ Ł¾Ų±ŲÆŁ ŚŚ©Ł Ś©ŚŁ" + +#: ../shell/ev-window.c:4484 +msgid "Pre_sentation" +msgstr "" + +#: ../shell/ev-window.c:4485 +msgid "Run document as a presentation" +msgstr "" + +#: ../shell/ev-window.c:4487 +msgid "_Best Fit" +msgstr "ŚŁ ŲØŲ±Ų§ŲØŲ±ŁŁ_" + +#: ../shell/ev-window.c:4488 +msgid "Make the current document fill the window" +msgstr "Ł¾Ł Ų§ŁŲ³ŁŁ ŁŲ§Ų³ŁŁŲÆ Ś©ŚŚ©Ū ŚŚ©ŁŁ" + +#: ../shell/ev-window.c:4490 +msgid "Fit Page _Width" +msgstr "ŲÆ Ł Ų® _Ł¾ŁŁŁŲ§ŁŪ ŲØŲ±Ų§ŲØŲ±ŁŁ" + +#: ../shell/ev-window.c:4491 +msgid "Make the current document fill the window width" +msgstr "Ł¾Ł Ų§ŁŲ³ŁŁ ŁŲ§Ų³ŁŁŲÆ ŲÆ Ś©ŚŚ©Ū Ł¾ŁŁŁŲ§ŁŪ ŚŚ©ŁŁ" + +#. Links +#: ../shell/ev-window.c:4498 +msgid "_Open Link" +msgstr "ŲŖŚŁŁ Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:4500 +msgid "_Go To" +msgstr "ŲŖŁ ŁŲ±ŲŖŚ«_" + +#: ../shell/ev-window.c:4502 +msgid "Open in New _Window" +msgstr "Ł¾Ł ŁŁŪ _Ś©ŚŚ©Ū Ś©Ū Ł¾Ų±Ų§ŁŁŲ³ŲŖŁ" + +#: ../shell/ev-window.c:4504 +msgid "_Copy Link Address" +msgstr "ŲÆ ŲŖŚŁŪ Ł¾ŲŖŁ ŁŁ ŪŲ³Ł_" + +#: ../shell/ev-window.c:4506 +msgid "_Save Image As..." +msgstr "...Ų§ŁŚŁŲ± Ų³Ų§ŲŖŁ Ł¾Ł_" + +#: ../shell/ev-window.c:4508 +msgid "Copy _Image" +msgstr "Ų§ŁŚŁŲ± ŁŁ ŪŲ³Ł_" + +#: ../shell/ev-window.c:4547 +msgid "Page" +msgstr "Ł Ų®" + +#: ../shell/ev-window.c:4548 +msgid "Select Page" +msgstr "Ł Ų® Ł¼Ų§Ś©Ł" + +#: ../shell/ev-window.c:4559 +msgid "Zoom" +msgstr "ŁŁŁŁŁ" + +#: ../shell/ev-window.c:4561 +msgid "Adjust the zoom level" +msgstr "ŲÆ ŁŁŁŁŲ§ŁŁ Ś©ŚŁ ŲØŲ±Ų§ŲØŲ±ŁŁ" + +#: ../shell/ev-window.c:4571 +msgid "Navigation" +msgstr "ŚŁŁŁŁ" + +#: ../shell/ev-window.c:4573 +msgid "Back" +msgstr "Ų“Ų§ŲŖŁ" + +#. translators: this is the history action +#: ../shell/ev-window.c:4576 +msgid "Move across visited pages" +msgstr "Ł¾Ł Ś©ŲŖŁ Ų“ŁŁŁ Ł Ų®ŁŁŁ ŲŖŪŲ±ŪŲÆŁ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4606 +msgid "Previous" +msgstr "Ł Ų®Ś©ŁŪ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4611 +msgid "Next" +msgstr "Ų±Ų§ŲŖŁŁŁŚ©Ū" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4615 +msgid "Zoom In" +msgstr "ŁŁŚŪŲ±ŁŁ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4619 +msgid "Zoom Out" +msgstr "ŁŁŚ©Ł ŁŁ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4627 +msgid "Fit Width" +msgstr "Ł¾ŁŁŁŲ§ŁŪ ŲØŲ±Ų§ŲØŲ±ŁŁ" + +#: ../shell/ev-window.c:4832 +msgid "Unable to open external link" +msgstr "ŲØŁŲ±ŁŪ ŲŖŚŁŁ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ" + +#: ../shell/ev-window.c:4993 +msgid "Couldn't find appropriate format to save image" +msgstr "ŲÆ Ų§ŁŚŁŲ± Ų³Ų§ŲŖŁŁ ŁŁ¾Ų§Ų±Ł Ų³Ł Ł ŲØŚ¼Ł ŁŁŁ Ł ŁŁŲÆŁ Ų“ŁŁ" + +#: ../shell/ev-window.c:5033 +msgid "The image could not be saved." +msgstr ".Ų§ŁŚŁŲ± ŁŁ Ų“Ł Ų³Ų§ŲŖŁ Ś©ŪŲÆŪ" + +#: ../shell/ev-window.c:5065 +msgid "Save Image" +msgstr "Ų§ŁŚŁŲ± Ų³Ų§ŲŖŁ" + +#: ../shell/ev-window.c:5124 +msgid "Unable to open attachment" +msgstr "ŁŚŁŁ ŁŁ Ų“Ł Ł¾Ų±Ų§ŁŁŲ³ŲŖŁŪ" + +#: ../shell/ev-window.c:5176 +msgid "The attachment could not be saved." +msgstr ".ŁŚŁŁ ŁŁ Ų“Ł Ų³Ų§ŲŖŁ Ś©ŪŲÆŪ" + +#: ../shell/ev-window.c:5221 +msgid "Save Attachment" +msgstr "ŁŚŁŁ Ų³Ų§ŲŖŁ" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "ŲŖŪŲ±ŁŁŁŪ Ų§ŚŁŁŁ ŲÆŁ - %s" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Ł¾Ł Ų“Ų§ŲŖŲ§ŚŁ" + +#: ../shell/main.c:59 +msgid "The page of the document to display." +msgstr ".ŲÆ ŁŲ§Ų³ŁŁŲÆ ŁŲŗŁ Ł Ų® ŚŪ ŁŚŁŲÆŁ Ų“Ł" + +#: ../shell/main.c:59 +msgid "PAGE" +msgstr "Ł Ų®" + +#: ../shell/main.c:60 +msgid "Run evince in fullscreen mode" +msgstr "Ų§ŪŁŪŁŲ³ Ł¾Ł Ł¼ŁŁŁ Ł¾Ų±ŲÆŁ Ų§Ś©Ų± Ś©Ū ŚŲŗŁŁŁ" + +#: ../shell/main.c:61 +msgid "Run evince in presentation mode" +msgstr "" + +#: ../shell/main.c:62 +msgid "Run evince as a previewer" +msgstr "Ų§ŪŁŪŁŲ³ ŁŚ©Ł Ł Ų®ŁŁŲÆŁŁŚ©Ū ŚŲŗŁŁŁ" + +#: ../shell/main.c:63 +msgid "The word or phrase to find in the document" +msgstr "ŁŲŗŁ ŁŁŪ ŁŲ§ Ś Ų±Ś«ŁŲÆŪ ŚŪ ŲÆŪ ŁŲ§Ų³ŁŁŲÆ Ś©Ū ŁŁŁ¼ŁŁ Ų“Ł" + +#: ../shell/main.c:63 +msgid "STRING" +msgstr "Ł Ų²Ū" + +#: ../shell/main.c:66 +msgid "[FILE...]" +msgstr "[...ŲÆŁŲŖŁŁ]" + +#: ../shell/main.c:333 +msgid "MATE Document Viewer" +msgstr "Ų¬ŁŁŁ Ł ŁŲ§Ų³ŁŁŲÆ ŁŁŲÆŲ§ŁŪ" + +#: ../shell/main.c:395 +msgid "Evince Document Viewer" +msgstr "Ų§ŪŁŪŁŲ³ ŁŲ§Ų³ŁŁŲÆ ŁŁŲÆŲ§ŁŪ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ ŲØŁ¼Ł ŁŁŚ©ŁŁŁ ŲŖŁŲ§ŁŁŁ PDF ŲÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŁŲ§Ų³ŁŁŲÆŁŁŁ ŁŁ¾Ų§Ų±Ł ŲØŁ¼Ł ŁŁŚ©Ū ŲØŁŁŪ PDF ŲÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "" + diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 00000000..93f3b9b1 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,2105 @@ +# evince's Portuguese translation. +# Copyright Ā© 2005, 2006, 2007, 2008, 2009, 2010 evince +# This file is distributed under the same license as the evince package. +# Duarte Loreto <happyguy_pt@hotmail.com>, 2005, 2006, 2007, 2008, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.32\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-11 21:06+0100\n" +"PO-Revision-Date: 2010-09-11 21:15+0000\n" +"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n" +"Language-Team: Portuguese <mate_pt@yahoogroups.com>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Erro ao iniciar o comando ā%sā de forma a descomprimir o livro de banda " +"desenhada: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "O comando ā%sā falhou na descompressĆ£o do livro de banda desenhada." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "O comando ā%sā nĆ£o terminou normalmente." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "NĆ£o Ć© um tipo MIME de um livro de banda desenhada: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Incapaz de encontrar um comando apropriado para descomprimir este tipo de " +"livros de banda desenhada" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipo MIME Desconhecido" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Ficheiro corrompido" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nenhum ficheiro no arquivo" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nenhuma imagem encontrada no arquivo %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Ocorreu um erro ao apagar ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Erro %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Livros de Banda Desenhada" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Documento DjVu tem formato incorrecto" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"O documento Ć© composto por vĆ”rios ficheiros. Um ou mais desses ficheiros nĆ£o " +"estĆ” acessĆvel." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documentos DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Documento DVI tem formato incorrecto" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documentos DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Este trabalho encontra-se no DomĆnio PĆŗblico" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Sim" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "NĆ£o" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Tipo 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Tipo 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Tipo 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Tipo 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Tipo 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipo de fonte desconhecido" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Nenhum nome" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subconjunto embutido" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Embutido" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "NĆ£o embutido" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documentos PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documento invĆ”lido" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Slides Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Nenhum erro" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "MemĆ³ria insuficiente" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Incapaz de encontrar a assinatura ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ficheiro ZIP invĆ”lido" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIPs multi-ficheiro nĆ£o sĆ£o suportados" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Incapaz de abrir o ficheiro" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Incapaz de ler dados do ficheiro" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Incapaz de encontrar ficheiro no arquivo ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Erro desconhecido" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Falha ao ler o documento ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Falha ao gravar o documento ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documentos PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Incapaz de gravar o anexo ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Incapaz de abrir o anexo ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Incapaz de abrir o anexo ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Tipo de ficheiro %s (%s) nĆ£o Ć© suportado" + +# 48x48/emblems/emblem-documents.icon.in.h:1 +# 48x48/emblems/emblem-documents.icon.in.h:1 +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Todos os Documentos" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Todos os ficheiros" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Falha ao criar um ficheiro temporĆ”rio: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Falha ao criar um directĆ³rio temporĆ”rio: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ficheiro nĆ£o Ć© um ficheiro .desktop vĆ”lido" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "VersĆ£o '%s' de ficheiro desktop desconhecida" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "A iniciar %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "A aplicaĆ§Ć£o nĆ£o aceita documentos na linha de comando" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpĆ§Ć£o de arranque desconhecida: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"NĆ£o Ć© possĆvel indicar URIs numa entrada de desktop do tipo 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "NĆ£o Ć© um item iniciĆ”vel" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desactivar a ligaĆ§Ć£o ao gestor de sessƵes" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especifique o ficheiro que contĆ©m a configuraĆ§Ć£o gravada" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FICHEIRO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especifique o ID de gestĆ£o de sessĆ£o" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "OpƧƵes de gestĆ£o de sessĆ£o:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Apresentar as opƧƵes de gestĆ£o de sessĆ£o" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Apresentar ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Mover na Barra de Ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Mover o item seleccionado na barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Remover da Barra de Ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Remover o item seleccionado da barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Apagar a Barra de Ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Remover a barra de ferramentas seleccionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separador" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5759 +msgid "Best Fit" +msgstr "Melhor Ajuste" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Caber Ć Largura na PĆ”gina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4552 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visualizador de Documento" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visualizar documentos multi-pĆ”ginas" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Ignorar as restriƧƵes do documento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Ignorar as restriƧƵes do documento tais como restriĆ§Ć£o Ć cĆ³pia ou impressĆ£o." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Apagar o ficheiro temporĆ”rio" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Ficheiro de definiƧƵes de impressĆ£o" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "AntevisĆ£o de Documentos do MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3183 +msgid "Failed to print document" +msgstr "Falha ao imprimir o documento" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Incapaz de encontrar a impressora '%s' seleccionada" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5474 +msgid "_Previous Page" +msgstr "PĆ”gina _Anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5475 +msgid "Go to the previous page" +msgstr "Ir para a pĆ”gina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5477 +msgid "_Next Page" +msgstr "PĆ”gina _Seguinte" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5478 +msgid "Go to the next page" +msgstr "Ir para a pĆ”gina seguinte" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5461 +msgid "Enlarge the document" +msgstr "Ampliar o documento" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5464 +msgid "Shrink the document" +msgstr "Reduzir o documento" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Imprimir" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5430 +msgid "Print this document" +msgstr "Imprimir este documento" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5576 +msgid "_Best Fit" +msgstr "_Melhor Ajuste" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5577 +msgid "Make the current document fill the window" +msgstr "Faz o documento actual encher a janela" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5579 +msgid "Fit Page _Width" +msgstr "Caber Ć _Largura na PĆ”gina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5580 +msgid "Make the current document fill the window width" +msgstr "Faz o documento actual encher a janela Ć largura" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5681 +msgid "Page" +msgstr "PĆ”gina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5682 +msgid "Select Page" +msgstr "Seleccionar a PĆ”gina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtulo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "LocalizaĆ§Ć£o:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Assunto:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Palavras Chave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produtor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Criador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Criado:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Alterado:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NĆŗmero de PĆ”ginas:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizado:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "SeguranƧa:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Tamanho do Papel:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Nenhum" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "omissĆ£o:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f pol" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Retrato (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Paisagem (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "A Lerā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "A preparar a impressĆ£oā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "A terminarā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "A imprimir a pĆ”gina %d de %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ImpressĆ£o nĆ£o Ć© suportada nesta impressora." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "SelecĆ§Ć£o de pĆ”gina invĆ”lida" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Aviso" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "A selecĆ§Ć£o de intervalo de impressĆ£o nĆ£o inclui qualquer pĆ”gina" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Escala de PĆ”gina:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Redimensionar para a Ćrea de ImpressĆ£o" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Fazer Caber na Ćrea de ImpressĆ£o" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Escalar as pĆ”ginas do documento para caberem na pĆ”gina de impressĆ£o " +"seleccionada. Seleccione de entre uma das seguintes:\n" +"\n" +"ā¢ \"None\": NĆ£o Ć© realizado redimensionamento de pĆ”gina.\n" +"\n" +"ā¢ \"Redimensionar para a Ćrea de ImpressĆ£o\": PĆ”ginas de documento maiores " +"do que a Ć”rea de impressĆ£o sĆ£o reduzidas para caberem na pĆ”gina impressa.\n" +"\n" +"ā¢ \"Fazer Caber na Ćrea de ImpressĆ£o\": As pĆ”ginas do documento sĆ£o " +"ampliadas ou reduzidas para encherem a totalidade da pĆ”gina impressa.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Centrar e Rodar Automaticamente" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Rodar a orientaĆ§Ć£o de cada pĆ”gina do documento para coincidir com a " +"orientaĆ§Ć£o da pĆ”gina na impressora. As pĆ”ginas do documento serĆ£o centradas " +"na pĆ”gina impressa." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" +"Seleccionar o tamanho da pĆ”gina utilizando o tamanho da pĆ”gina do documento" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Quando activo, cada pĆ”gina serĆ” impressa no mesmo tamanho de papel que o " +"utilizado na pĆ”gina do documento." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "GestĆ£o de PĆ”ginas" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Falha ao imprimir a pĆ”gina %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rolar Acima" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rolar Abaixo" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rolar a Vista Acima" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rolar a Vista Abaixo" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Vista de Documento" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Ir para a pĆ”gina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fim da apresentaĆ§Ć£o. Clique para sair." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ir para a primeira pĆ”gina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ir para a pĆ”gina anterior" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ir para a pĆ”gina seguinte" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ir para a Ćŗltima pĆ”gina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ir para a pĆ”gina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Procurar" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ir para a pĆ”gina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ir para %s no ficheiro ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ir para o ficheiro ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Iniciar %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Procurar:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5447 +msgid "Find Pre_vious" +msgstr "Procurar a _Anterior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Procurar a ocorrĆŖncia anterior da expressĆ£o" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5445 +msgid "Find Ne_xt" +msgstr "Procurar a _Seguinte" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Procurar a ocorrĆŖncia seguinte da expressĆ£o" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "SensĆvel Ć C_apitalizaĆ§Ć£o" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Alternar a sensibilidade Ć capitalizaĆ§Ć£o da procura" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ćcone:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Nota" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ComentĆ”rio" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Chave" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Ajuda" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Novo ParĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ParĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Inserir" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cruzar" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "CĆrculo" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Desconhecido" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Propriedades da AnotaĆ§Ć£o" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Cor:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Estilo:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparente" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaco" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Estado inicial da janela:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Abrir" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Fechar" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ExecuĆ§Ć£o em modo de apresentaĆ§Ć£o" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Senha para o documento %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "A converter %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d de %d documentos convertidos" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "A converter metadados" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"O formato de metadados utilizado pelo Evince foi alterado, pelo que tem de " +"ser migrado. Se a migraĆ§Ć£o for cancelada, o repositĆ³rio de metadados nĆ£o irĆ” " +"funcionar." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Abrir um documento utilizado recentemente" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Este documento estĆ” trancado e apenas poderĆ” ser lido apĆ³s ser introduzida a " +"senha correcta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Destrancar Documento" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Introduza a senha" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Senha necessĆ”ria" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"O documento ā%sā estĆ” trancado e requer uma senha antes de poder ser aberto." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Senha:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Esquecer a senha _imediatamente" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Recordar a senha atĆ© terminar a _sessĆ£o" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Recordar para sempre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Propriedades" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Geral" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Fontes" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "LicenƧa do Documento" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Fonte" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "A obter informaĆ§Ć£o de fonteā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Termos de utilizaĆ§Ć£o" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Texto da LicenƧa" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "InformaƧƵes Adicionais" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "AnotaƧƵes" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Texto" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Adicionar anotaĆ§Ć£o de texto" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Adicionar" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "O documento nĆ£o contĆ©m quaisquer anotaƧƵes" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "PĆ”gina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Anexos" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Camadas" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimirā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndice" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Imagens de ReferĆŖncia" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ”gina %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "PĆ”gina %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "O documento nĆ£o contĆ©m quaisquer pĆ”ginas" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "O documento apenas contĆ©m pĆ”ginas vazias" + +#: ../shell/ev-window.c:1642 ../shell/ev-window.c:1808 +msgid "Unable to open document" +msgstr "Incapaz de abrir o documento" + +#: ../shell/ev-window.c:1779 +#, c-format +msgid "Loading document from ā%sā" +msgstr "A ler documento de ā%sā" + +#: ../shell/ev-window.c:1921 ../shell/ev-window.c:2200 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "A obter o documento (%d%%)" + +#: ../shell/ev-window.c:1954 +msgid "Failed to load remote file." +msgstr "Falha ao ler o ficheiro remoto." + +#: ../shell/ev-window.c:2144 +#, c-format +msgid "Reloading document from %s" +msgstr "A reler o documento de %s" + +#: ../shell/ev-window.c:2176 +msgid "Failed to reload document." +msgstr "Falha ao reler o documento." + +#: ../shell/ev-window.c:2331 +msgid "Open Document" +msgstr "Abrir Documento" + +#: ../shell/ev-window.c:2629 +#, c-format +msgid "Saving document to %s" +msgstr "A gravar o documento em %s" + +#: ../shell/ev-window.c:2632 +#, c-format +msgid "Saving attachment to %s" +msgstr "A gravar o anexo em %s" + +#: ../shell/ev-window.c:2635 +#, c-format +msgid "Saving image to %s" +msgstr "A gravar a imagem em %s" + +#: ../shell/ev-window.c:2679 ../shell/ev-window.c:2779 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Incapaz de gravar o ficheiro como ā%sā." + +#: ../shell/ev-window.c:2710 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "A enviar o documento (%d%%)" + +#: ../shell/ev-window.c:2714 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "A enviar o anexo (%d%%)" + +#: ../shell/ev-window.c:2718 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "A enviar a imagem (%d%%)" + +#: ../shell/ev-window.c:2842 +msgid "Save a Copy" +msgstr "Gravar uma CĆ³pia" + +#: ../shell/ev-window.c:3127 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d trabalho pendente na pilha" +msgstr[1] "%d trabalhos pendentes na pilha" + +#: ../shell/ev-window.c:3240 +#, c-format +msgid "Printing job ā%sā" +msgstr "A imprimir o trabalho ā%sā" + +#: ../shell/ev-window.c:3418 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"O documento contĆ©m campos de formulĆ”rio que foram preenchidos. Se nĆ£o gravar " +"uma cĆ³pia, as alteraƧƵes serĆ£o definitivamente perdidas." + +#: ../shell/ev-window.c:3422 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"O documento contĆ©m anotaƧƵes novas ou alteradas. Se nĆ£o gravar uma cĆ³pia, " +"as alteraƧƵes serĆ£o definitivamente perdidas." + +#: ../shell/ev-window.c:3429 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Gravar uma cĆ³pia do documento ā%sā antes de fechar?" + +#: ../shell/ev-window.c:3448 +msgid "Close _without Saving" +msgstr "Fechar _sem Gravar" + +#: ../shell/ev-window.c:3452 +msgid "Save a _Copy" +msgstr "Gravar uma _CĆ³pia" + +#: ../shell/ev-window.c:3526 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Aguardar atĆ© que o trabalho de impressĆ£o ā%sā termine antes de fechar?" + +#: ../shell/ev-window.c:3529 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Existem %d trabalhos de impressĆ£o activos. Aguardar atĆ© que a impressĆ£o " +"termine antes de fechar?" + +#: ../shell/ev-window.c:3541 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Se fechar a janela, os trabalhos de impressĆ£o pendentes nĆ£o serĆ£o impressos." + +#: ../shell/ev-window.c:3545 +msgid "Cancel _print and Close" +msgstr "Cancelar a im_pressĆ£o e Fechar" + +#: ../shell/ev-window.c:3549 +msgid "Close _after Printing" +msgstr "Fechar _apĆ³s Imprimir" + +#: ../shell/ev-window.c:4169 +msgid "Toolbar Editor" +msgstr "Editor de Barra de Ferramentas" + +#: ../shell/ev-window.c:4336 +msgid "There was an error displaying help" +msgstr "Ocorreu um erro ao apresentar a ajuda" + +#: ../shell/ev-window.c:4548 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualizador de Documentos.\n" +"A utilizar %s (%s)" + +#: ../shell/ev-window.c:4579 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince Ć© uma aplicaĆ§Ć£o livre; pode redistribuĆ-la e/ou alterĆ”-la sob os " +"termos da LicenƧa PĆŗblica GenĆ©rica GNU tal como publicada pela Free Software " +"Foundation; ou a versĆ£o 2 da LicenƧa ou (Ć sua discriĆ§Ć£o) qualquer versĆ£o " +"posterior.\n" + +#: ../shell/ev-window.c:4583 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince Ć© distribuĆdo na expectativa de que possa ser Ćŗtil, mas SEM QUALQUER " +"GARANTIA; sem sequer a garantia implĆcita de COMERCIABILIDADE ou ADEQUAĆĆO A " +"UM DETERMINADO FIM. Consulte a LicenƧa PĆŗblica GenĆ©rica GNU para mais " +"detalhes.\n" + +#: ../shell/ev-window.c:4587 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"DeverĆ” ter recebido uma cĆ³pia da LicenƧa PĆŗblica GenĆ©rica GNU juntamente com " +"o Evince; caso contrĆ”rio, escreva para a Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA (em inglĆŖs)\n" + +#: ../shell/ev-window.c:4612 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4615 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Os autores do Evince" + +#: ../shell/ev-window.c:4621 +msgid "translator-credits" +msgstr "Duarte Loreto <happyguy_pt@hotmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4887 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d encontrada nesta pĆ”gina" +msgstr[1] "%d encontradas nesta pĆ”gina" + +#: ../shell/ev-window.c:4892 +msgid "Not found" +msgstr "Nenhuma encontrada" + +#: ../shell/ev-window.c:4898 +#, c-format +msgid "%3d%% remaining to search" +msgstr "resta procurar em %3d%%" + +#: ../shell/ev-window.c:5413 +msgid "_File" +msgstr "_Ficheiro" + +#: ../shell/ev-window.c:5414 +msgid "_Edit" +msgstr "_Editar" + +#: ../shell/ev-window.c:5415 +msgid "_View" +msgstr "_Ver" + +#: ../shell/ev-window.c:5416 +msgid "_Go" +msgstr "_Ir" + +#: ../shell/ev-window.c:5417 +msgid "_Help" +msgstr "_Ajuda" + +#. File menu +#: ../shell/ev-window.c:5420 ../shell/ev-window.c:5721 +msgid "_Openā¦" +msgstr "_Abrirā¦" + +#: ../shell/ev-window.c:5421 ../shell/ev-window.c:5722 +msgid "Open an existing document" +msgstr "Abrir um documento existente" + +#: ../shell/ev-window.c:5423 +msgid "Op_en a Copy" +msgstr "Abrir u_ma CĆ³pia" + +#: ../shell/ev-window.c:5424 +msgid "Open a copy of the current document in a new window" +msgstr "Abrir uma cĆ³pia do documento actual numa nova janela" + +#: ../shell/ev-window.c:5426 +msgid "_Save a Copyā¦" +msgstr "_Gravar uma CĆ³piaā¦" + +#: ../shell/ev-window.c:5427 +msgid "Save a copy of the current document" +msgstr "Gravar uma cĆ³pia do documento actual" + +#: ../shell/ev-window.c:5429 +msgid "_Printā¦" +msgstr "_Imprimirā¦" + +#: ../shell/ev-window.c:5432 +msgid "P_roperties" +msgstr "P_ropriedades" + +#: ../shell/ev-window.c:5440 +msgid "Select _All" +msgstr "Seleccionar _Tudo" + +#: ../shell/ev-window.c:5442 +msgid "_Findā¦" +msgstr "_Procurarā¦" + +#: ../shell/ev-window.c:5443 +msgid "Find a word or phrase in the document" +msgstr "Procurar uma palavra ou frase no documento" + +#: ../shell/ev-window.c:5449 +msgid "T_oolbar" +msgstr "Barra de Ferramen_tas" + +#: ../shell/ev-window.c:5451 +msgid "Rotate _Left" +msgstr "Rodar para a _Esquerda" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Right" +msgstr "Rodar para a _Direita" + +#: ../shell/ev-window.c:5455 +msgid "Save Current Settings as _Default" +msgstr "Gravar as DefiniƧƵes Actuais como _OmissƵes" + +#: ../shell/ev-window.c:5466 +msgid "_Reload" +msgstr "_Reler" + +#: ../shell/ev-window.c:5467 +msgid "Reload the document" +msgstr "Reler o documento" + +#: ../shell/ev-window.c:5470 +msgid "Auto_scroll" +msgstr "_Rolar automaticamente" + +#: ../shell/ev-window.c:5480 +msgid "_First Page" +msgstr "_Primeira PĆ”gina" + +#: ../shell/ev-window.c:5481 +msgid "Go to the first page" +msgstr "Ir para a primeira pĆ”gina" + +#: ../shell/ev-window.c:5483 +msgid "_Last Page" +msgstr "Ć_ltima PĆ”gina" + +#: ../shell/ev-window.c:5484 +msgid "Go to the last page" +msgstr "Ir para a Ćŗltima pĆ”gina" + +#. Help menu +#: ../shell/ev-window.c:5488 +msgid "_Contents" +msgstr "_ConteĆŗdo" + +#: ../shell/ev-window.c:5491 +msgid "_About" +msgstr "_Sobre" + +#. Toolbar-only +#: ../shell/ev-window.c:5495 +msgid "Leave Fullscreen" +msgstr "Desfazer _EcrĆ£ Completo" + +#: ../shell/ev-window.c:5496 +msgid "Leave fullscreen mode" +msgstr "Deixar o modo de _ecrĆ£ completo" + +# 48x48/emblems/emblem-presentation.icon.in.h:1 +# 48x48/emblems/emblem-presentation.icon.in.h:1 +#: ../shell/ev-window.c:5498 +msgid "Start Presentation" +msgstr "Iniciar a ApresentaĆ§Ć£o" + +#: ../shell/ev-window.c:5499 +msgid "Start a presentation" +msgstr "Iniciar uma apresentaĆ§Ć£o" + +#. View Menu +#: ../shell/ev-window.c:5558 +msgid "_Toolbar" +msgstr "Barra de Ferramen_tas" + +#: ../shell/ev-window.c:5559 +msgid "Show or hide the toolbar" +msgstr "Apresentar ou esconder a barra de ferramentas" + +#: ../shell/ev-window.c:5561 +msgid "Side _Pane" +msgstr "_Painel Lateral" + +#: ../shell/ev-window.c:5562 +msgid "Show or hide the side pane" +msgstr "Apresentar ou esconder a barra lateral" + +#: ../shell/ev-window.c:5564 +msgid "_Continuous" +msgstr "_ContĆnuo" + +#: ../shell/ev-window.c:5565 +msgid "Show the entire document" +msgstr "Apresentar todo o documento" + +#: ../shell/ev-window.c:5567 +msgid "_Dual" +msgstr "_Duplo" + +#: ../shell/ev-window.c:5568 +msgid "Show two pages at once" +msgstr "Apresentar duas pĆ”ginas simultaneamente" + +#: ../shell/ev-window.c:5570 +msgid "_Fullscreen" +msgstr "_EcrĆ£ Completo" + +#: ../shell/ev-window.c:5571 +msgid "Expand the window to fill the screen" +msgstr "Expandir a janela para encher o ecrĆ£" + +# 48x48/emblems/emblem-presentation.icon.in.h:1 +# 48x48/emblems/emblem-presentation.icon.in.h:1 +#: ../shell/ev-window.c:5573 +msgid "Pre_sentation" +msgstr "Apre_sentaĆ§Ć£o" + +#: ../shell/ev-window.c:5574 +msgid "Run document as a presentation" +msgstr "Executar o documento como uma apresentaĆ§Ć£o" + +#: ../shell/ev-window.c:5582 +msgid "_Inverted Colors" +msgstr "Cores _Invertidas" + +#: ../shell/ev-window.c:5583 +msgid "Show page contents with the colors inverted" +msgstr "Apresentar o conteĆŗdo da pĆ”gina com as cores invertidas" + +#. Links +#: ../shell/ev-window.c:5591 +msgid "_Open Link" +msgstr "_Abrir o Link" + +#: ../shell/ev-window.c:5593 +msgid "_Go To" +msgstr "_Ir Para" + +#: ../shell/ev-window.c:5595 +msgid "Open in New _Window" +msgstr "Abrir numa Nova _Janela" + +#: ../shell/ev-window.c:5597 +msgid "_Copy Link Address" +msgstr "_Copiar o EndereƧo do Link" + +#: ../shell/ev-window.c:5599 +msgid "_Save Image Asā¦" +msgstr "_Gravar a Imagem Comoā¦" + +#: ../shell/ev-window.c:5601 +msgid "Copy _Image" +msgstr "Copiar _Imagem" + +#: ../shell/ev-window.c:5603 +msgid "Annotation Propertiesā¦" +msgstr "Propriedades da AnotaĆ§Ć£oā¦" + +#: ../shell/ev-window.c:5608 +msgid "_Open Attachment" +msgstr "_Abrir o Anexo" + +#: ../shell/ev-window.c:5610 +msgid "_Save Attachment Asā¦" +msgstr "_Gravar o Anexo Comoā¦" + +#: ../shell/ev-window.c:5695 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5697 +msgid "Adjust the zoom level" +msgstr "Ajustar o nĆvel de zoom" + +#: ../shell/ev-window.c:5707 +msgid "Navigation" +msgstr "NavegaĆ§Ć£o" + +#: ../shell/ev-window.c:5709 +msgid "Back" +msgstr "Retroceder" + +#. translators: this is the history action +#: ../shell/ev-window.c:5712 +msgid "Move across visited pages" +msgstr "Mover por entre as pĆ”ginas visitadas" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5742 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5747 +msgid "Next" +msgstr "Seguinte" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5751 +msgid "Zoom In" +msgstr "Aproximar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5755 +msgid "Zoom Out" +msgstr "Afastar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5763 +msgid "Fit Width" +msgstr "Caber Ć Largura" + +#: ../shell/ev-window.c:5908 ../shell/ev-window.c:5925 +msgid "Unable to launch external application." +msgstr "Incapaz de iniciar uma aplicaĆ§Ć£o externa." + +#: ../shell/ev-window.c:5982 +msgid "Unable to open external link" +msgstr "Incapaz de abrir uma ligaĆ§Ć£o externa" + +#: ../shell/ev-window.c:6149 +msgid "Couldn't find appropriate format to save image" +msgstr "Incapaz de encontrar o formato apropriado para gravar a imagem" + +#: ../shell/ev-window.c:6191 +msgid "The image could not be saved." +msgstr "Incapaz de gravar a imagem." + +#: ../shell/ev-window.c:6223 +msgid "Save Image" +msgstr "Gravar a Imagem" + +#: ../shell/ev-window.c:6351 +msgid "Unable to open attachment" +msgstr "Incapaz de abrir o anexo" + +#: ../shell/ev-window.c:6404 +msgid "The attachment could not be saved." +msgstr "Incapaz de gravar o anexo." + +#: ../shell/ev-window.c:6449 +msgid "Save Attachment" +msgstr "Gravar o Anexo" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Senha NecessĆ”ria" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Por extensĆ£o" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visualizador de Documentos do MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "A etiqueta de pĆ”gina do documento a apresentar." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PĆGINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "O nĆŗmero da pĆ”gina do documento a apresentar." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NĆMERO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executar o evince modo de ecrĆ£ completo" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executar o evince em modo de apresentaĆ§Ć£o" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executar o evince como um antevisor" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "A palavra ou frase a procurar no documento" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "EXPRESSĆO" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FICHEIROā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"OpƧƵes boleanas disponĆveis: verdadeiro activa as imagens de referĆŖncia e " +"falso desactiva a criaĆ§Ć£o de novas imagens de referĆŖncia" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Activar as imagens de referĆŖncia de Documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Comando de criaĆ§Ć£o de imagens de referĆŖncia para Documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Comando vĆ”lido e argumentos para a aplicaĆ§Ć£o de geraĆ§Ć£o de imagens de " +"referĆŖncia de Documentos PDF. Consulte a documentaĆ§Ć£o de imagens de " +"referĆŖncia do Caja para mais informaƧƵes." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Config_uraĆ§Ć£o de PĆ”ginaā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Configurar as definiƧƵes de pĆ”gina para impressĆ£o" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "Documento DJVU tem formato incorrecto" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Falha ao criar o ficheiro ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Procurar expressĆ£o" + +#~ msgid "The name of the string to be found" +#~ msgstr "O nome da expressĆ£o a ser procurada" + +#~ msgid "Case sensitive" +#~ msgstr "Sensibilidade Ć capitalizaĆ§Ć£o" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "VERDADEIRO para uma procura sensĆvel Ć capitalizaĆ§Ć£o" + +#~ msgid "Highlight color" +#~ msgstr "Cor de realce" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "A cor de realce de todas as coincidĆŖncias" + +#~ msgid "Current color" +#~ msgstr "Cor actual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Cor de realce para a coincidĆŖncia actual" + +#~ msgid "Recover previous documents?" +#~ msgstr "Recuperar os documentos anteriores?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Parece que o Evince terminou inesperadamente da Ćŗltima vez que foi " +#~ "executado. Pode recuperar os documentos abertos." + +#~ msgid "_Don't Recover" +#~ msgstr "_NĆ£o Recuperar" + +#~ msgid "_Recover" +#~ msgstr "_Recuperar" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaĆ§Ć£o de Erro" + +#~ msgid "Print..." +#~ msgstr "Imprimir..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Incapaz de criar ligaĆ§Ć£o simbĆ³lica ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Incapaz de abrir uma cĆ³pia." + +#~ msgid "_Save a Copy..." +#~ msgstr "Gravar uma _CĆ³pia..." + +#~ msgid "_Print..." +#~ msgstr "Im_primir..." + +#~ msgid "_Find..." +#~ msgstr "_Procurar..." + +#~ msgid "Co_nnect" +#~ msgstr "_Ligar" + +#~ msgid "Connect _anonymously" +#~ msgstr "Ligar _anonimamente" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Ligar como utili_zador:" + +#~ msgid "_Username:" +#~ msgstr "_Utilizador:" + +#~ msgid "_Domain:" +#~ msgstr "_DomĆnio:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Esquecer a senha imediatamente" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Recordar a senha atĆ© terminar a sessĆ£o" + +#~ msgid "_Remember forever" +#~ msgstr "_Recordar para sempre" + +#~ msgid "File not available" +#~ msgstr "Ficheiro indisponĆvel" + +#~ msgid "Remote files aren't supported" +#~ msgstr "NĆ£o sĆ£o suportados ficheiros remotos" + +#~ msgid "Password Entry" +#~ msgstr "IntroduĆ§Ć£o de Senha" + +#~ msgid "Remember password for this session" +#~ msgstr "Recordar a senha para esta sessĆ£o" + +#~ msgid "Save password in keyring" +#~ msgstr "Gravar a senha no chaveiro" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f pol" + +#~ msgid "Find Previous" +#~ msgstr "Procurar Anterior" + +#~ msgid "Find Next" +#~ msgstr "Procurar Seguinte" + +#~ msgid "Incorrect password" +#~ msgstr "Senha incorrecta" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Visualizador de Documentos Evince" + +#~ msgid "BBox" +#~ msgstr "CaixaB" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Jornal" + +#~ msgid "Ledger" +#~ msgstr "DiĆ”rio" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Depoimento" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "FĆ³lio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Incapaz de abrir o ficheiro ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "Falha ao ler o documento ā%sā. NĆ£o foi encontrado o interpretador " +#~ "ghostscript no caminho" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Postscript Encapsulado" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Falha no interpretador." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Tipo MIME nĆ£o suportado: ā%sā" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "A geraĆ§Ć£o de PDF nĆ£o Ć© suportada" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "Estava a tentar imprimir para uma impressora utilizando o controlador ā%" +#~ "sā.Esta aplicaĆ§Ć£o requer um controlador de impressora PostScript." + +#~ msgid "Pages" +#~ msgstr "PĆ”ginas" + +#~ msgid "Images" +#~ msgstr "Imagens" + +#~ msgid "Open ā%sā" +#~ msgstr "Abrir ā%sā" + +#~ msgid "Empty" +#~ msgstr "Vazio" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "URI invĆ”lido: ā%sā" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "Nenhum documento lido." + +#~ msgid "File is not readable." +#~ msgstr "Ficheiro ilegĆvel." + +#~ msgid "Document loaded." +#~ msgstr "Documento lido." + +#~ msgid "Broken pipe." +#~ msgstr "Canal quebrado." + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "Erro ao descomprimir o ficheiro ā%sā:\n" + +#~ msgid "_Previous" +#~ msgstr "_Anterior" + +#~ msgid "_Next" +#~ msgstr "_Seguinte" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "" +#~ "A funcionalidade de \"Procurar\" estarĆ” indisponĆvel neste documento" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Procurar por expressƵes apenas Ć© suportado em documentos PDF." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Default sidebar size" +#~ msgstr "Tamanho por omissĆ£o da barra lateral" + +#~ msgid "Show sidebar by default" +#~ msgstr "Por omissĆ£o apresentar a barra lateral" + +#~ msgid "Show statusbar by default" +#~ msgstr "Por omissĆ£o apresentar barra estados" + +#~ msgid "Show toolbar by default" +#~ msgstr "Por omissĆ£o apresentar a barra de ferramentas" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "A barra lateral Ć© a zona lateral que contĆ©m as listas de Ćndice e Imagens " +#~ "de ReferĆŖncia. O tamanho por omissĆ£o define a largura em pixels da barra " +#~ "lateral a partir do lado da janela. Qualquer nĆŗmero inteiro serĆ” aceite. " +#~ "A barra lateral nunca serĆ” menor do que o tamanho do texto necessĆ”rio " +#~ "para apresentar Imagens de ReferĆŖncia ou Ćndice. Valores maiores irĆ£o " +#~ "fazer com que a barra lateral ocupe tanto espaƧo da Ć”rea de apresentaĆ§Ć£o " +#~ "como possĆvel, relativamente ao tamanho da janela." + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "A barra lateral Ć© a zona lateral que contĆ©m as listas de Ćndice e Imagens " +#~ "de ReferĆŖncia. Duas opƧƵes boleanas, verdadeiro torna a barra lateral " +#~ "visĆvel por omissĆ£o enquanto que falso a torna escondida por omissĆ£o" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "A barra de estados Ć© a barra inferior standard que apresenta informaĆ§Ć£o " +#~ "adicional sobre links e outras acƧƵes. Duas opƧƵes boleanas, verdadeiro " +#~ "torna a barra de estados visĆvel por omissĆ£o enquanto que falso a torna " +#~ "escondida por omissĆ£o." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "A barra de ferramentas Ć© a barra superior que contĆ©m controlos de " +#~ "navegaĆ§Ć£o e zoom. Duas opƧƵes boleanas, verdadeiro torna a barra lateral " +#~ "visĆvel por omissĆ£o enquanto que falso a torna escondida por omissĆ£o." + +#~ msgid "Unable to find glade file" +#~ msgstr "Incapaz de encontrar o ficheiro glade" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "Incapaz de encontrar o ficheiro glade %s. Certifique-se de que a " +#~ "instalaĆ§Ć£o desta aplicaĆ§Ć£o estĆ” correctamente realizada." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "Visualizador de Documento - Senha NecessĆ”ria" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Gravar o documento actual com um novo nome de ficheiro" + +#~ msgid "View the properties of this document" +#~ msgstr "Visualizar as propriedades deste documento" + +#~ msgid "Close this window" +#~ msgstr "Fechar esta janela" + +#~ msgid "Copy text from the document" +#~ msgstr "Copiar texto deste documento" + +#~ msgid "Select the entire page" +#~ msgstr "Seleccionar a pĆ”gina toda" + +#~ msgid "Customize the toolbar" +#~ msgstr "Personalizar a barra de ferramentas" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Rodar o documento para a esquerda" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Rodar o documento para a direita" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Apresentar a ajuda para a aplicaĆ§Ć£o de visualizaĆ§Ć£o" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Apresentar crĆ©ditos dos criadores da aplicaĆ§Ć£o de visualizaĆ§Ć£o" + +#~ msgid "Scroll one page forward" +#~ msgstr "Rolar uma pĆ”gina em frente" + +#~ msgid "Scroll one page backward" +#~ msgstr "Rolar uma pĆ”gina atrĆ”s" + +#~ msgid "Focus the page selector" +#~ msgstr "Foco sobre o selector de pĆ”ginas" + +#~ msgid "Go ten pages backward" +#~ msgstr "Retroceder dez pĆ”ginas" + +#~ msgid "Go ten pages forward" +#~ msgstr "AvanƧar dez pĆ”ginas" + +#~ msgid "_Statusbar" +#~ msgstr "Barra de _Estados" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Apresentar ou esconder a barra estados" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 00000000..1497cfa7 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,1969 @@ +# Brazilian Portuguese translation of Evince. +# Copyright (C) 2004-2009 the Evince authors. +# This file is distributed under the same license as the evince package. +# Raphael Higino <In Memoriam>, 2004-2005, 2007. +# Licio Fernando <liciofernando@gmail.com>, ?. +# Leonardo Ferreira Fontenelle <leonardof@gnome.org>, 2006-2008. +# Washington Lins <washington-lins@uol.com.br>, 2007. +# Rodrigo Flores <rodrigomarquesflores@gmail.com>, 2007. +# Hugo Doria <hugodoria@gmail.com>, 2007-2008. +# Vladimir Melo <vmelo@gnome.org>, 2008, 2009. +# Taylon Silmer <taylonsilva@gmail.com>, 2009. +# FabrĆcio Godoy <skarllot@gmail.com>, 2009. +# AndrĆ© Gondim <andregondim@ubuntu.com>, 2009. +# Og Maciel <ogmaciel@gnome.org>, 2009. +# Henrique P. Machado <hpmachado@gnome.org>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-13 11:43+0000\n" +"PO-Revision-Date: 2010-09-04 15:05-0300\n" +"Last-Translator: Henrique P. Machado <hpmachado@gnome.org>\n" +"Language-Team: Brazilian Portuguese <mate-pt_br-list@gnome.org>\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: Portuguese\n" +"X-Poedit-Country: BRAZIL\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Erro ao lanƧar o comando \"%s\" para descomprimir a revista em quadrinhos: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "O comando \"%s\" falhou ao descomprimir a revista em quadrinhos." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "O comando \"%s\" nĆ£o terminou normalmente." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "NĆ£o Ć© um tipo MIME de revistas em quadrinhos: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"NĆ£o foi possĆvel localizar um comando apropriado para descomprimir este tipo " +"de revista em quadrinhos" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tipo MIME desconhecido" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Arquivo corrompido" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nenhum arquivo no pacote" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "NĆ£o foram localizadas imagens no pacote %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Houve um erro ao excluir \"%s\"." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Erro %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Revistas em quadrinho" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "O documento DjVu tem um formato incorreto" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"O documento Ć© composto de vĆ”rios arquivos. Um ou mais deles nĆ£o podem ser " +"acessados." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documentos DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "O documento DVI tem um formato incorreto" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documentos DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Este trabalho estĆ” em DomĆnio PĆŗblico" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Sim" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "NĆ£o" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Tipo 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Tipo 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Tipo 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Tipo 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Tipo 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipo de fonte desconhecido" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Sem nome" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subconjunto embutido" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Embutido" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "NĆ£o embutido" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documentos PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Documento invĆ”lido" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Slides do Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Nenhum erro" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "MemĆ³ria insuficiente" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "NĆ£o Ć© possĆvel encontrar a assinatura do arquivo ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Arquivo ZIP invĆ”lido" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "NĆ£o hĆ” suporte a pacotes ZIP com mĆŗltiplos arquivos" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "NĆ£o foi possĆvel abrir o arquivo" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "NĆ£o foi possĆvel ler os dados do arquivo" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "NĆ£o Ć© possĆvel encontrar arquivo no pacote ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Erro desconhecido" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Falha ao carregar o documento \"%s\"" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Falha ao salvar o documento \"%s\"" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documentos PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "NĆ£o foi possĆvel salvar o anexo \"%s\": %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "NĆ£o foi possĆvel abrir o anexo \"%s\": %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "NĆ£o foi possĆvel abrir o anexo \"%s\"" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "NĆ£o hĆ” suporte ao tipo de arquivo %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Todos os documentos" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Todos os arquivos" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Falha ao criar um arquivo temporĆ”rio: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Falha ao criar um diretĆ³rio temporĆ”rio: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O arquivo nĆ£o Ć© um arquivo .desktop vĆ”lido" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Arquivo .desktop nĆ£o reconhecido versĆ£o \"%s\"" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "O aplicativo nĆ£o aceita documentos na linha de comando" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpĆ§Ć£o de lanƧamento nĆ£o reconhecida: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"NĆ£o Ć© possĆvel passar URIs de documentos para uma entrada \"Type=Link\" de " +"arquivo .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Item nĆ£o lanƧƔvel" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desabilita a conexĆ£o com gerenciador de sessĆ£o" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especifica o arquivo contendo a configuraĆ§Ć£o salva" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ARQUIVO" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especifica a ID de gerenciamento de sessĆ£o" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "OpƧƵes de gerenciamento de sessĆ£o:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Mostra as opƧƵes de gerenciamento de sessĆ£o" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Mostrar \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Mover na barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Mover o item selecionado na barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Remover da barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Remover o item selecionado da barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Excluir _barra de ferramentas" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Remover a barra de ferramentas selecionada" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separador" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Melhor ajuste" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Largura da pĆ”gina" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Visualizador de Documentos" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visualize documentos de mĆŗltiplas pĆ”ginas" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Sobrescrever restriƧƵes do documento" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Ignora restriƧƵes do documento original, como restriĆ§Ć£o a cĆ³pia ou impressĆ£o." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Excluir o arquivo temporĆ”rio" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Imprimir arquivo de configuraƧƵes" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Visualizador de Documentos do MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "Falha ao imprimir o documento" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "NĆ£o foi possĆvel localizar a impressora \"%s\" selecionada" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "PĆ”gina _anterior" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "Ir para a pĆ”gina anterior" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "PrĆ³xima pĆ”gi_na" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "Ir para a prĆ³xima pĆ”gina" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Aumenta o documento" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Encolhe o documento" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Imprimir" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "Imprime este documento" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "_Melhor ajuste" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "Faz o documento atual preencher a janela" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "_Largura da pĆ”gina" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "Faz o documento atual preencher a largura da janela" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "PĆ”gina" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "Seleciona pĆ”gina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Documento" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "TĆtulo:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "LocalizaĆ§Ć£o:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Assunto:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Palavras-chave:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Produtor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Criador:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Criado:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificado:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NĆŗmero de pĆ”ginas:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Otimizado:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Formato:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "SeguranƧa:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Tamanho do papel:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Nenhum" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f pol." + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Retrato (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Paisagem (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d de %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "de %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Carregando..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Preparando para imprimir..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Concluindo..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Imprimindo pĆ”gina %d de %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "NĆ£o hĆ” suporte a impressĆ£o nesta impressora." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "SeleĆ§Ć£o de pĆ”gina invĆ”lida" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Aviso" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "A sua seleĆ§Ć£o de intervalo de impressĆ£o nĆ£o inclui pĆ”gina alguma" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Escala:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Encolher para a Ć”rea imprimĆvel" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Caber na Ć”rea imprimĆvel" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Redimensiona pĆ”ginas para caber na pĆ”gina da impressora. Selecione uma das " +"seguintes opƧƵes:\n" +"\n" +"ā¢ \"Nenhum\": Nenhum redimensionamento de pĆ”gina Ć© realizado.\n" +"\n" +"ā¢ \"Reduzir para a Ć”rea de impressĆ£o\": PĆ”ginas de documentos maiores que a " +"Ć”rea de impressĆ£o sĆ£o reduzidas para caber na Ć”rea de impressĆ£o da pĆ”gina na " +"impressora.\n" +"\n" +"ā¢ \"Preencher Ć”rea de impressĆ£o\": PĆ”ginas de documentos sĆ£o ampliadas ou " +"reduzidas conforme a necessidade, para preencher a Ć”rea de impressĆ£o da " +"pĆ”gina na impressora.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Auto rotacionar e centralizar" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"Rotacionar a orientaĆ§Ć£o de cada pĆ”gina para corresponder Ć cada pĆ”gina do " +"documento. As pĆ”ginas do documento serĆ£o centralizadas dentro da pĆ”gina da " +"impressora." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Selecionar tamanho da pĆ”gina usando o tamanho da pĆ”gina do documento" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Quando habilitado, cada pĆ”gina serĆ” impressa com o mesmo tamanho de papel da " +"pĆ”gina do documento." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Manuseio de pĆ”gina" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Falha ao imprimir a pĆ”gina %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rolar para cima" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rolar para baixo" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rolar visualizaĆ§Ć£o para cima" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rolar visualizaĆ§Ć£o para baixo" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Visualizador de Documentos" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Ir para a pĆ”gina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Fim da apresentaĆ§Ć£o. Clique para sair." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Ir para a primeira pĆ”gina" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Ir para a pĆ”gina anterior" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Ir para a prĆ³xima pĆ”gina" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Ir para a Ćŗltima pĆ”gina" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Ir para a pĆ”gina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Localizar" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Ir para a pĆ”gina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Ir para %s no arquivo \"%s\"" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Ir para o arquivo \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "LanƧar %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Localizar:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "Localizar an_terior" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Localiza a ocorrĆŖncia anterior da expressĆ£o pesquisada" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "Localizar _prĆ³xima" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Localiza a prĆ³xima ocorrĆŖncia da expressĆ£o pesquisada" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Diferenciar maiĆŗsc./minĆŗsc." + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Alternar sensibilidade a maiusculizaĆ§Ć£o" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ćcone:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Nota" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ComentĆ”rio" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Chave" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Ajuda" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Novo parĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ParĆ”grafo" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Inserir" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cruz" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "CĆrculo" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Desconhecido" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Propriedades da anotaĆ§Ć£o" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Cor:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Estilo:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparente" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaco" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Estado inicial da janela:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Abrir" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Fechar" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Executando em modo de apresentaĆ§Ć£o" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Senha para o documento %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Convertendo %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "documento %d de %d convertido" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Convertendo meta-dados" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"O formato dos meta-dados usados pelo Evince mudaram, e desde entĆ£o " +"necessitam ser migrados. Se a migraĆ§Ć£o for cancelada o armazenamento dos " +"meta-dados nĆ£o irĆ” funcionar." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Abre um documento usado recentemente" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Este documento estĆ” bloqueado e sĆ³ pode ser lido digitando a senha correta." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Desbloquear documento" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Digite a senha" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Senha requerida" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "O documento \"%s\" estĆ” bloqueado e requer uma senha para ser aberto." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Senha:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Esquecer a senha _imediatamente" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_Lembrar a senha durante esta sessĆ£o" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Lembrar sempre" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Propriedades" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Geral" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Fontes" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "LicenƧa do documento" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Fonte" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Reunindo informaƧƵes de fontes... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Termos de uso" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Texto da licenƧa" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "InformaƧƵes adicionais" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "AnotaƧƵes" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Texto" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Adicionar anotaĆ§Ć£o de texto" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Adicionar" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "O documento nĆ£o contĆ©m anotaƧƵes" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "PĆ”gina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Anexos" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Camadas" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Imprimir..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Ćndice" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "PĆ”gina %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "PĆ”gina %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "O documento nĆ£o contĆ©m pĆ”ginas" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "O documento contĆ©m apenas pĆ”ginas vazias" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "NĆ£o foi possĆvel abrir o documento" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Carregando o documento a partir de \"%s\"" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Baixando o documento (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "Falhou ao carregar o arquivo remoto." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Recarregando o documento a partir de %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "Falha ao recarregar o documento." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Abrir documento" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Salvando o documento em %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Salvando o anexo em %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Salvando a imagem em %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "NĆ£o foi possĆvel salvar o arquivo como \"%s\"." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Enviando o documento (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Enviando o anexo (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Enviando a imagem (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Salvar uma cĆ³pia" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d trabalho pendente na fila" +msgstr[1] "%d trabalhos pendentes na fila" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Imprimindo o trabalho \"%s\"" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"O documento contĆ©m campos de formulĆ”rio que foram preenchidos. Se vocĆŖ nĆ£o " +"salvar uma cĆ³pia, as alteraƧƵes serĆ£o permanentemente perdidas." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"O documento contĆ©m anotaƧƵes novas ou modificadas. Se vocĆŖ nĆ£o salvar uma " +"cĆ³pia, as alteraƧƵes serĆ£o permanentemente perdidas." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Salvar uma cĆ³pia do documento \"%s\" antes de fechar?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Fechar se_m salvar" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Salvar uma _cĆ³pia" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Aguardar o tĆ©rmino da impressĆ£o do trabalho \"%s\" antes de fechar?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Existem %d trabalhos de impressĆ£o ativos. Aguardar o tĆ©rmino das impressƵes " +"antes de fechar?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"Se vocĆŖ fechar a janela, os trabalhos de impressĆ£o pendentes nĆ£o serĆ£o " +"impressos." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "Cancelar im_pressĆ£o e fechar" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "Fechar depois de im_primir" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Editor de barra de ferramentas" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "Houve um erro ao exibir a ajuda" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Visualizador de Documentos.\n" +"Usando %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince Ć© um software livre; vocĆŖ pode redistribuĆ-lo e/ou modificĆ”-lo sob os " +"termos da LicenƧa PĆŗblica Geral GNU (GPL) como publicada pela FundaĆ§Ć£o do " +"Software Livre; seja a versĆ£o 2 da LicenƧa ou (se preferir) qualquer versĆ£o " +"mais recente.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"O Evince Ć© distribuĆdo na esperanƧa de que seja Ćŗtil, mas SEM NENHUMA " +"GARANTIA; atĆ© mesmo sem a garantia implĆcita de COMERCIALIZAĆĆO ou de " +"ADAPTAĆĆO A UM PROPĆSITO EM PARTICULAR. Veja a LicenƧa PĆŗblica Geral GNU " +"(GPL) para mais detalhes.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"VocĆŖ deve ter recebido uma cĆ³pia da LicenƧa PĆŗblica Geral GNU (GPL) junto " +"com o Evince; se nĆ£o, escreva para a Free Software Foundation, Inc., 51 " +"Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Os autores do Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"Raphael Higino <In memoriam>\n" +"Licio Fernando <liciofernando@gmail.com>\n" +"Leonardo Ferreira Fontenelle <leonardof@gnome.org>\n" +"Washington Lins <washington-lins@uol.com.br>\n" +"Rodrigo Flores <rodrigomarquesflores@gmail.com>\n" +"Hugo Doria <hugodoria@gmail.com>\n" +"Vladimir Melo <vmelo@gnome.org>\n" +"Taylon Silmer <taylonsilva@gmail.com>\n" +"FabrĆcio Godoy <skarllot@gmail.com>\n" +"AndrĆ© Gondim <andregondim@ubuntu.com>\n" +"Og Maciel <ogmaciel@gnome.org>\n" +"Henrique P. Machado <hpmachado@gnome.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d resultado nesta pĆ”gina" +msgstr[1] "%d resultados nesta pĆ”gina" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "NĆ£o encontrado" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% restante para pesquisar" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Arquivo" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Editar" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Ver" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "_Ir" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "Aj_uda" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Abrir..." + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Abrir um documento existente" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "Abrir uma _cĆ³pia" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Abre uma cĆ³pia do documento atual numa nova janela" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_Salvar uma cĆ³pia..." + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Salvar uma cĆ³pia do documento atual" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "Im_primir..." + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "Prop_riedades" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "Selecionar _tudo" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_Localizar..." + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "Localizar uma palavra ou frase no documento" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "Barra de _ferramentas" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "Girar Ć _esquerda" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "Girar Ć _direita" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Salvar configuraƧƵes atuais como _padrĆ£o" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_Recarregar" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "Recarrega o documento" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "Rolagem a_utomĆ”tica" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "Pr_imeira pĆ”gina" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "Vai para a primeira pĆ”gina" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "Ć_ltima pĆ”gina" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "Vai para a Ćŗltima pĆ”gina" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "S_umĆ”rio" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_Sobre" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "Sair da tela cheia" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "Sai do modo tela cheia" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "Iniciar apresentaĆ§Ć£o" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "Inicia uma apresentaĆ§Ć£o" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "Barra de _ferramentas" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "Mostra ou oculta a barra de ferramentas" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "_Barra lateral" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "Mostrar ou ocultar a barra lateral" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_ContĆnuo" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "Mostrar o documento inteiro" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_Duplo" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "Mostra duas pĆ”ginas de uma vez" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "_Tela cheia" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Expandir a janela para ocupar toda a tela" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "A_presentaĆ§Ć£o" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "Executar o documento como uma apresentaĆ§Ć£o" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "Cores _invertidas" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "Mostra o conteĆŗdo da pĆ”gina com as cores invertidas" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_Abrir link" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_Ir para" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Abrir em uma nova _janela" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_Copiar endereƧo do link" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_Salvar imagem como..." + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "Copiar _imagem" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "Propriedades da anotaĆ§Ć£o..." + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_Abrir anexo" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_Salvar anexo como..." + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "Ajusta o fator de zoom" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "NavegaĆ§Ć£o" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Voltar" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Mover-se pelas pĆ”ginas visitadas" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "Anterior" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "PrĆ³xima" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Ampliar" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Reduzir" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Largura da pĆ”gina" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "NĆ£o foi possĆvel executar o aplicativo externo." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "NĆ£o foi possĆvel abrir o link externo" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "NĆ£o foi possĆvel encontrar formato apropriado para salvar imagem" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "NĆ£o foi possĆvel salvar a imagem." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Salvar imagem" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "NĆ£o foi possĆvel abrir o anexo" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "NĆ£o foi possĆvel salvar o anexo." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Salvar anexo" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Senha requerida" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Por extensĆ£o" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Visualizador de Documentos do MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "A etiqueta da pĆ”gina do documento a ser exibida." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PĆGINA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "O nĆŗmero da pĆ”gina do documento a ser exibido." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NĆMERO" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Executa o Evince em modo de tela cheia" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Executa o Evince em modo de apresentaĆ§Ć£o" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Executa o Evince como visualizador" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "A palavra ou frase a ser localizada no documento" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "EXPRESSĆO" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ARQUIVO...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"OpƧƵes booleanas disponĆveis: verdadeiro habilita a miniaturizaĆ§Ć£o e falso " +"desabilita a criaĆ§Ć£o de novas miniaturas" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Habilitar a miniaturizaĆ§Ć£o de documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Comando de miniatura para documentos PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Um comando vĆ”lido e argumentos para o miniaturizador de documentos PDF. Veja " +"a documentaĆ§Ć£o do miniaturizador do Caja para mais informaƧƵes." + +#~ msgid "Page Set_upā¦" +#~ msgstr "ConfiguraĆ§Ć£o da _pĆ”gina..." + +#~ msgid "Set up the page settings for printing" +#~ msgstr "Configura a pĆ”gina para impressĆ£o" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "O documento DJVU tem um formato incorreto" + +#~ msgid "Print..." +#~ msgstr "Imprimir..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Salvar uma cĆ³pia..." + +#~ msgid "_Print..." +#~ msgstr "Im_primir..." + +#~ msgid "_Find..." +#~ msgstr "_Localizar..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Falha ao criar o arquivo \"%s\": %s" + +#~ msgid "Search string" +#~ msgstr "Pesquisar expressĆ£o" + +#~ msgid "The name of the string to be found" +#~ msgstr "O nome da expressĆ£o a ser localizada" + +#~ msgid "Case sensitive" +#~ msgstr "Diferenciar maiĆŗsc./minĆŗsc." + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "VERDADEIRO para uma pesquisa sensĆvel a maiusculizaĆ§Ć£o" + +#~ msgid "Highlight color" +#~ msgstr "Cor de destaque" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Cor de destaque para todas as ocorrĆŖncias" + +#~ msgid "Current color" +#~ msgstr "Cor atual" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Cor de destaque para a ocorrĆŖncia atual" + +#~ msgid "Recover previous documents?" +#~ msgstr "Recuperar os documentos anteriores?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "O Evince parece ter saĆdo inesperadamente na Ćŗltima vez que foi " +#~ "executado. VocĆŖ pode recuperar os documentos abertos." + +#~ msgid "_Don't Recover" +#~ msgstr "_NĆ£o recuperar" + +#~ msgid "_Recover" +#~ msgstr "_Recuperar" + +#~ msgid "Crash Recovery" +#~ msgstr "RecuperaĆ§Ć£o de travamento" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "NĆ£o foi possĆvel criar o link simbĆ³lico \"%s\": " + +#~ msgid "Cannot open a copy." +#~ msgstr "NĆ£o foi possĆvel abrir uma cĆ³pia." + +#~ msgid "Co_nnect" +#~ msgstr "Co_nectar" + +#~ msgid "Connect _anonymously" +#~ msgstr "Conectar _anonimamente" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Conectar como u_suĆ”rio:" + +#~ msgid "_Username:" +#~ msgstr "Nome de _usuĆ”rio:" + +#~ msgid "_Domain:" +#~ msgstr "_DomĆnio:" + +#~ msgid "_Forget password immediately" +#~ msgstr "Es_quecer a senha imediatamente" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Lembrar a senha por esta sessĆ£o" + +#~ msgid "_Remember forever" +#~ msgstr "_Lembrar sempre" + +#~ msgid "File not available" +#~ msgstr "Arquivo nĆ£o disponĆvel" + +#~ msgid "Remote files aren't supported" +#~ msgstr "NĆ£o hĆ” suporte a arquivos remotos" + +#~ msgid "Find Previous" +#~ msgstr "Localizar anterior" + +#~ msgid "Find Next" +#~ msgstr "Localizar prĆ³xima" + +#~ msgid "Password Entry" +#~ msgstr "Entrada de senha" + +#~ msgid "Remember password for this session" +#~ msgstr "Lembrar a senha para esta sessĆ£o" + +#~ msgid "Save password in keyring" +#~ msgstr "Salvar a senha no chaveiro" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>TĆtulo:</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f pol." + +#~ msgid "Incorrect password" +#~ msgstr "Senha incorreta" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Visualizador de documentos Evince" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Carta" + +#~ msgid "Tabloid" +#~ msgstr "TablĆ³ide" + +#~ msgid "Ledger" +#~ msgstr "EpitĆ”fio" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "SentenƧa" + +#~ msgid "Executive" +#~ msgstr "Executivo" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "FĆ³lio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "NĆ£o Ć© possĆvel abrir o arquivo \"%s\"." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "Falha ao carregar o documento \"%s\". O interpretador Ghostscript nĆ£o foi " +#~ "localizado no caminho" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "PostScript Encapsulado" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "Falha do interpretador." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Tipo MIME nĆ£o manipulĆ”vel: \"%s\"" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "NĆ£o hĆ” suporte a geraĆ§Ć£o de arquivos PDF" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "VocĆŖ estava tentando imprimir em uma impressora usando o driver \"%s\". " +#~ "Este programa requer um driver de impressora PostScript." + +#~ msgid "Pages" +#~ msgstr "PĆ”ginas" + +#~ msgid "Failed to get info for document" +#~ msgstr "Falha ao obter informaƧƵes para o documento" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "URI invĆ”lido: \"%s\"" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "NĆ£o hĆ” suporte ao URI: \"%s\"" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 00000000..aa97139d --- /dev/null +++ b/po/ro.po @@ -0,0 +1,1797 @@ +# Romanian translation for evince. +# Copyright (C) 2005 - 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Eugen Paiuc <eug_paiuc@bluewin.ch>, 2005. +# MiČu Moldovan <dumol@mate.ro>, 2005 - 2009. +# Lucian Adrian Grijincu <lucian.grijincu@gmail.com>, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-09-25 19:40+0000\n" +"PO-Revision-Date: 2010-09-26 01:58+0300\n" +"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n" +"Language-Team: Romanian Mate Team <matero-list@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.6.1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Eroare la lansarea comenzii ā%sā de decomprimare a cÄrČii cu benzi desenate: " +"%s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Comanda ā%sā a eČuat la decomprimarea cÄrČii cu benzi desenate." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Comanda ā%sā s-a Ć®ncheiat anormal." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Nu este un tip MIME pentru benzi desenate: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"Nu se poate gÄsi comanda potrivitÄ pentru a decomprima acest tip de carte cu " +"benzi desenate" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Tip MIME necunoscut" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "FiČier corupt" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nici un fiČier Ć®n arhivÄ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nu s-au gÄsit imagini Ć®n arhiva %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "S-a produs o eroare la Čtergerea ā%sā" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Eroare %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Benzi desenate" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "Documentul DjVu are un format nevalid" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Documentul este compus din mai multe fiČiere. Unul sau mai multe dintre " +"acestea nu au putut fi accesate." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Documente DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Documentul DVI are un format nevalid" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Documente DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "AceastÄ lucrare este Ć®n Domeniul public" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Da" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nu" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Tip 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Tip 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Tip 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Tip 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Tip 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Tipul fontului este necunoscut" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "FÄrÄ nume" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Subset Ć®ncapsulat" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ćncapsulat" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "NeĆ®ncapsulat" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Documente PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Document nevalid" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Diapozitive Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "FÄrÄ eroare" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Memorie insuficientÄ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Nu s-a gÄsit semnÄtura ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "FiČier ZIP nevalid" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ZIP-urile cu fiČiere multiple nu sunt suportate" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "FiČierul nu a putut fi deschis." + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Nu s-au putut citi datele din fiČier" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Nu s-a gÄsit fiČierul Ć®n arhiva ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Eroare necunoscutÄ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ĆncÄrcarea documentului ā%sā a eČuat" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Salvarea documentului ā%sā a eČuat" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Documente PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Nu s-a putut salva ataČamentul ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Nu s-a putut deschide ataČamentul ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Nu s-a putut deschide ataČamentul ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Tipul de fiČier %s (%s) nu este suportat" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Toate documentele" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Toate fiČierele" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Crearea fiČierului temporar a eČuat: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Crearea dosarului temporar a eČuat: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "FiČierul nu este un fiČier .desktop valid" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "FiČier desktop necunoscut, versiunea ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Se porneČte %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "AplicaČia nu acceptÄ documente Ć®n linia de comandÄ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OpČiune de lansare necunoscutÄ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nu se pot pasa URI-uri document cÄtre o intrare desktop de tip link" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nu e un element care sÄ poatÄ fi lansat" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "DezactiveazÄ conexiunea la administratorul de sesiuni" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "SpecificÄ fiČierul ce conČine configuraČia salvatÄ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FIČIER" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "SpecificÄ ID-ul pentru administrarea de sesiuni" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "OpČiuni de administrare a sesiunii:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "AfiČeazÄ opČiunile de administrare a sesiunii" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "AratÄ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_MutÄ Ć®n bara cu unelte" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "MutÄ elementul selectat Ć®n bara cu unelte" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Scoate din bara cu unelte" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Čterge elementul selectat din bara cu unelte" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "Čt_erge bara cu unelte" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Čterge bara cu unelte selectatÄ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Separator" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Cea mai bunÄ potrivire" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Potrivire la lÄČimea paginii" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Vizualizator de documente" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "VizualizaČi documente cu mai multe pagini" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "IgnorÄ restricČiile documentului" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"IgnorÄ restricČiile documentului, precum cele referitoare la tipÄrire sau " +"copiere." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Čterge fiČierul temporar" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "TipÄreČte fiČierul de configurÄri" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Previzualizare de documente MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "TipÄrirea documentului a eČuat" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Imprimanta selectatÄ ā%sā nu a fost gÄsitÄ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "Pagina pr_ecedentÄ" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "AratÄ pagina precedentÄ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "Pagina ur_mÄtoare" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "AratÄ pagina urmÄtoare" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Apropie documentul" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "DepÄrteazÄ documentul" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "TipÄreČte" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "TipÄreČte acest document" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "Ćncadrat per_fect" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "PotriveČte documentul curent la mÄrimea ferestrei" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "Ćncadrat la _lÄČime" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "PotriveČte documentul curent la lÄČimea ferestrei" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5683 +msgid "Page" +msgstr "PaginÄ" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "SelecteazÄ pagina" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Document" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titlu:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "LocaČie:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Subiect:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Cuvinte cheie:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ProducÄtor:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Creat:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Modificat:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "NumÄr de pagini:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizat:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Securitate:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Format de paginÄ:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "FÄrÄ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Portret (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Vedere (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d din %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "din %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Se Ć®ncarcÄā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Se pregÄteČte tipÄrireaā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "Se finalizeazÄā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Se tipÄreČte pagina %d din %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "TipÄrirea nu e suportatÄ pentru acest tip de imprimantÄ." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Selectare nevalidÄ de pagini" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Avertisment" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Intervalul selectat pentru tipÄrire nu include nicio paginÄ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Scalare paginÄ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "MicČoreazÄ la aria tipÄribilÄ" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ĆncadreazÄ la aria tipÄribilÄ" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ScaleazÄ paginile documentelor pentru a Ć®ncÄpea pe pagina imprimantei " +"selectatÄ. AlegeČi una din urmÄtoarele:\n" +"\n" +"ā¢ āNiciunaā: Nu se efectueazÄ nicio scalare de paginÄ.\n" +"\n" +"ā¢ āMicČoreazÄ la aria tipÄribilÄā: Paginile documentului mai mari decĆ¢t aria " +"tipÄribilÄ sunt micČorate pentru a Ć®ncÄpea pe aria tipÄribilÄ a paginii " +"imprimantei.\n" +"\n" +"ā¢ āĆncadreazÄ la aria tipÄribilÄā: Paginile documentului sunt mÄrite sau " +"micČorate dupÄ nevoie pentru a Ć®ncÄpea pe aria tipÄribilÄ a paginii " +"imprimantei.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "RoteČte automat Či centreazÄ" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"RoteČte orientarea de imprimare a fiecÄrei pagini pentru a se potrivi cu " +"orientarea fiecÄrei pagini a documentului. Paginile documentului vor fi " +"centrate Ć®n pagina documentului." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Alege dimensiunea paginii folosind dimensiunea paginii documentului" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"CĆ¢nd este activat, fiecare paginÄ va fi tipÄritÄ pe o hĆ¢rtie aceeaČi " +"dimensiune ca pagina documentului." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Gestionare pagini" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "TipÄrirea paginii %d a eČuat: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Defilare Ć®n sus" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Defilare Ć®n jos" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Defilare ascendentÄ a vizualizÄrii" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Defilare descendentÄ a vizualizÄrii" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Vizualizare document" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Du-te la pagina:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "SfĆ¢rČitul prezentÄrii. Clic pentru ieČire." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Du-te la prima paginÄ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Du-te la pagina precedentÄ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Du-te la pagina urmÄtoare" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Du-te la ultima paginÄ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Du-te la pagina" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "CautÄ" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Du-te la pagina %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Du-te la %s Ć®n fiČierul ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Du-te Ć®n fiČierul ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "PorneČte %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "CautÄ:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "CautÄ Ć®na_poi" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "CautÄ precedenta apariČie a Čirului de caractere cÄutat" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "CautÄ Ć®n co_ntinuare" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "CautÄ urmÄtoarea apariČie a Čirului de caractere cÄutat" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Majuscule semnificative" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "CÄutare cu/fÄrÄ majuscule nesemnificative" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "IconiČÄ:" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "NotÄ" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Comentariu" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Cheie" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Ajutor" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Paragraf nou" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Paragraf" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "InserČie" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Cruce" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Cerc" + +# LG: descriere a unei iconiČe ataČabile unei notiČe +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Necunoscut" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ProprietÄČi adnotare" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Culoare:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opac" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Stare iniČialÄ fereastrÄ:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Deschide" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Ćnchide" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Pornit Ć®n modul de prezentare" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Parola pentru documentul ā%sā" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Se converteČte %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d din %d documente convertite" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Se convertesc metadatele" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Formatul metadatelor folosit de Evince s-a schimbat Či, prin urmare, trebuie " +"migrat. DacÄ migrarea este anulatÄ stocarea acestora nu va funcČiona." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Deschide un document utilizat recent" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Acest document este criptat Či nu poate fi citit decĆ¢t dupÄ introducerea " +"corectÄ a parolei." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Decriptare document" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "IntroduceČi parola" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "E nevoie de parolÄ" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Documentul ā%sā este criptat Či necesitÄ o parolÄ pentru a fi deschis." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ParolÄ:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_UitÄ parola imediat" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ReČine parola pĆ¢nÄ _la Ć®nchiderea sesiunii" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ReČine pentru _totdeauna" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ProprietÄČi" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "Generale" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Fonturi" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "LicenČÄ document" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Se obČin informaČiile despre fonturiā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Termeni de utilizare" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "LicenČÄ text" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "InformaČii suplimentare" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ListÄ" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "AdnotÄri" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Text" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "AdÄugÄ adnotare text" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "AdaugÄ" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Documentul nu conČine nicio adnotare" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Pagina %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "AtaČamente" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Straturi" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "TipÄreČteā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniaturi" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "PaginÄ %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "Documentul nu conČine nici o paginÄ" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "Acest document conČine doar pagini goale" + +#: ../shell/ev-window.c:1644 ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "Documentul nu a putut fi deschis" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Se Ć®ncarcÄ documentul de la ā%sā" + +#: ../shell/ev-window.c:1923 ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Se descarcÄ documentul (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "ReĆ®ncÄrcarea documentului de la distanČÄ a eČuat." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "Se reĆ®ncarcÄ documentul de la %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "ReĆ®ncÄrcarea documentului a eČuat." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "Deschidere document" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Se salveazÄ documentul Ć®n %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Se salveazÄ ataČamentul Ć®n %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Se salveazÄ imaginea Ć®n %s" + +#: ../shell/ev-window.c:2681 ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "FiČierul nu a putut fi salvat ca ā%sā." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Se Ć®ncarcÄ documentul (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Se Ć®ncarcÄ ataČamentul (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Se Ć®ncarcÄ imaginea (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Salvare copie" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "o sarcinÄ Ć®n aČteptare Ć®n coadÄ" +msgstr[1] "%d sarcini Ć®n aČteptare Ć®n coadÄ" +msgstr[2] "%d de sarcini Ć®n aČteptare Ć®n coadÄ" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "Se tipÄreČte sarcina ā%sā" + +#: ../shell/ev-window.c:3420 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Documentul conČine cĆ¢mpuri care au fost completate. DacÄ nu salvaČi o copie, " +"modificÄrile vor fi pierdute definitiv." + +#: ../shell/ev-window.c:3424 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Documentul conČine adnotÄri noi sau modificate. DacÄ nu salvaČi o copie, " +"modificÄrile vor fi pierdute definitiv." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "SalvaČi o copie a documentului ā%sā Ć®nainte de Ć®nchidere?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "Ćnchide _fÄrÄ a salva" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "SalveazÄ o _copie" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "" +"DoriČi sÄ aČteptaČi ca sarcina de tipÄrire ā%sā sÄ se termine Ć®nainte de a " +"ieČi?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ExistÄ %d sarcini de tipÄrire active. DoriČi sÄ aČteptaČi pĆ¢nÄ cĆ¢nd " +"tipÄrirea se terminÄ Ć®nainte de a Ć®nchide?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "DacÄ Ć®nchideČi fereastra, sarcinile Ć®n aČteptare nu vor fi tipÄrite." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "AnuleazÄ ti_pÄrirea Či ieČi" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "IeČi dupÄ termin_area tipÄririi" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "Editor barÄ cu unelte" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "A intervenit o eroare la afiČarea ajutorului" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Vizualizare documente.\n" +"UtilizeazÄ %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince este āfree softwareā. Poate fi redistribuit Či/sau modificat Ć®n " +"termenii licenČei GNU General Public License Ć®n forma publicatÄ de Free " +"Software Foundation, versiunea 2 sau (dacÄ preferaČi) orice altÄ versiune " +"ulterioarÄ.\n" + +#: ../shell/ev-window.c:4585 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince este distribuit Ć®n speranČa cÄ vÄ va fi util, dar FÄRÄ NICI O " +"GARANČIE, nici mÄcar garanČia unei posibile COMERCIALIZÄRI ori a UTILIZÄRII " +"PENTRU UN ANUME SCOP. ConsultaČi licenČa GNU General Public License pentru " +"mai multe detalii.\n" + +#: ../shell/ev-window.c:4589 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Ar fi trebuit sÄ primiČi o copie a licenČei GNU General Public License " +"Ć®mpreunÄ cu Evince. Ćn caz contrar, scrieČi la Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Autorii Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "" +"Eugen Paiuc <eug_paiuc@bluewin.ch>\n" +"Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n" +"MiČu Moldovan <dumol@mate.ro>\n" +"\n" +"ContribuČii din Launchpad:\n" +" Dread Knight https://launchpad.net/~dread.knight\n" +" Gheorghe Pop https://launchpad.net/~pop-gheorghe\n" +" IonuČ Jula https://launchpad.net/~ionutjula\n" +" Lucian Adrian Grijincu https://launchpad.net/~lucian.grijincu" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "Una gÄsitÄ Ć®n aceastÄ paginÄ" +msgstr[1] "%d gÄsite Ć®n aceastÄ paginÄ" +msgstr[2] "%d gÄsite Ć®n aceastÄ paginÄ" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "Nu a fost gÄsit" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "RÄmĆ¢n de cÄutat: %3d%%" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_FiČier" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_Editare" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_Vizualizare" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "_Navigare" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "_Ajutor" + +#. File menu +#: ../shell/ev-window.c:5422 ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_Deschideā¦" + +#: ../shell/ev-window.c:5423 ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "Deschide un document existent" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "D_eschide o copie" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "Deschide o copie a documentului curent Ć®ntr-o fereastrÄ nouÄ" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_SalveazÄ o copieā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "SalveazÄ o copie a documentului curent" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "Ti_pÄreČteā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "P_roprietÄČi" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "SelecteazÄ t_ot" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_CautÄā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "CautÄ un cuvĆ¢nt sau o frazÄ Ć®n document" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "BarÄ cu _unelte" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "RoteČte Ć®n _stĆ¢nga" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "RoteČte Ć®n _dreapta" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Salvea_zÄ configurÄrile curente ca implicite" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_ReĆ®ncarcÄ" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "ReĆ®ncarcÄ documentul" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "Derulare _automatÄ" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "_Prima paginÄ" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "AratÄ prima paginÄ" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_Ultima paginÄ" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "AratÄ ultima paginÄ" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Cuprins" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_Despre" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "MÄrime normalÄ" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "MÄrime normalÄ" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "PorneČte prezentarea" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "PorneČte o prezentare" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "BarÄ cu _unelte" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "AratÄ sau ascunde bara cu unelte" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "_Vedere lateralÄ" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "AratÄ sau ascunde vederea lateralÄ" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "C_ontinuu" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "AratÄ tot documentul" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_Dual" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "AratÄ douÄ pagini deodatÄ" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "_Pe tot ecranul" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "Pune fereastra pe tot ecranul" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "Pre_zentare" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "AratÄ documentul ca pe o prezentare" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "Culori _inversate" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "AfiČeazÄ conČinutul paginilor cu culorile inversate" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_Deschide adresa" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_Navigare" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "Deschide Ć®ntr-o nouÄ _fereastrÄ" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_CopiazÄ adresa" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "_SalveazÄ imaginea caā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "CopiazÄ _imaginea" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "ProprietÄČi adnotareā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "_Deschide ataČament" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "_SalveazÄ ataČamentul caā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "Zoom" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "AjusteazÄ nivelul de zoom" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "Navigare" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "Ćnapoi" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "Navigare Ć®n paginile vizitate" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "PrecedentÄ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "UrmÄtoare" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Apropie" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "DepÄrteazÄ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "Ćncadrat la lÄČime" + +#: ../shell/ev-window.c:5910 ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "Nu s-a putut lansa aplicaČia externÄ." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "Adresa externÄ nu a putut fi deschisÄ" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "Nu s-a gÄsit un format potrivit pentru salvarea imaginii" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "Imaginea nu a putut fi salvatÄ." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Salvare imagine" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "AtaČamentul nu a putut fi deschis" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "AtaČamentul nu a putut fi salvat." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Salvare ataČament" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Parola este necesarÄ" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "DupÄ extensie" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Vizualizare de documente Ć®n MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Eticheta paginii documentului de afiČat." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "PAGINÄ" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "NumÄrul paginii documentului de afiČat." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMÄR" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "PorneČte Evince pe tot ecranul" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "PorneČte Evince Ć®n modul de prezentare" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "PorneČte Evince Ć®n modul de previzualizare" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "CuvĆ¢ntul ori fraza de cÄutat Ć®n document" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ČIR" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FIČIERā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"OpČiuni disponibile: ātrueā permite crearea de noi miniaturi, āfalseā " +"dezactiveazÄ crearea de noi miniaturi" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Activare miniaturi pentru documente PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Program pentru crearea de miniaturi ale documentelor PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ComandÄ validÄ Či argumente necesare pentru crearea de miniaturi ale " +"documentelor PDF. Pentru detalii, consultaČi documentaČia Caja " +"thumbnailer." + +#~ msgid "Page Set_upā¦" +#~ msgstr "OpČi_uni paginÄā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "AlegeČi opČiunile paginilor de tipÄrit" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "Documentul DJVU are format incorect" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Nu s-a putut crea documentul ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Čir de cÄutare" + +#~ msgid "The name of the string to be found" +#~ msgstr "Numele Čirului de cÄutat" + +#~ msgid "Case sensitive" +#~ msgstr "Majuscule nesemnificative" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE pentru o cÄutare cu majuscule nesemnificative" + +#~ msgid "Highlight color" +#~ msgstr "Culoare de evidenČiere" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Culoare de evidenČiere pentru toate potrivirile" + +#~ msgid "Current color" +#~ msgstr "Culoare curentÄ" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Culoare de evidenČiere pentru potrivirea curentÄ" + +#~ msgid "Recover previous documents?" +#~ msgstr "RecuperaČi documentele precedente?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Se pare cÄ Evince a ieČit Ć®n mod neaČteptat la ultima rulare. PuteČi " +#~ "recupera documentele deschise." + +#~ msgid "_Don't Recover" +#~ msgstr "_Nu recupera" + +#~ msgid "_Recover" +#~ msgstr "_RecupereazÄ" + +#~ msgid "Crash Recovery" +#~ msgstr "Restaurare dupÄ terminare prematurÄ" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 00000000..22ee2ff4 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,1676 @@ +# translation of evince-master-po-ru-9768.merged.po to Russian +# Russian translation of evince. +# Copyright (C) 2005-2009, 2010 The Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# +# Nickolay V. Shmyrev <nshmyrev@yandex.ru>, 2005. +# Yuri Kozlov <yuray@komyakino.ru>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince trunk\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-09-21 20:17+0000\n" +"PO-Revision-Date: 2010-09-22 12:27+0300\n" +"Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n" +"Language-Team: Russian <mate-cyr@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ŠŃŠøŠ±ŠŗŠ° ŠæŃŠø Š·Š°ŠæŃŃŠŗŠµ ŠæŃŠ¾Š³ŃŠ°Š¼Š¼Ń Ā«%sĀ» Š“Š»Ń ŃŠ°ŃŠæŠ°ŠŗŠ¾Š²ŠŗŠø ŠŗŠ½ŠøŠ³Šø ŠŗŠ¾Š¼ŠøŠŗŃŠ¾Š²: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŠŠ¾Š¼Š°Š½Š“Šµ Ā«%sĀ» Š½Šµ ŃŠ“Š°Š»Š¾ŃŃ Š²ŃŠæŠ¾Š»Š½ŠøŃŃ ŃŠ°ŃŠæŠ°ŠŗŠ¾Š²ŠŗŃ ŠŗŠ½ŠøŠ³Šø ŠŗŠ¾Š¼ŠøŠŗŃŠ¾Š²." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Ā«%sĀ» Š·Š°Š²ŠµŃŃŠøŠ»Š°ŃŃ Ń Š¾ŃŠøŠ±ŠŗŠ¾Š¹." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Š¢ŠøŠæ MIME Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½Šµ Š¾ŃŠ½Š¾ŃŠøŃŃŃ Šŗ ŠŗŠ¾Š¼ŠøŠŗŃŠ°Š¼: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°Š¹ŃŠø ŠæŠ¾Š“Ń Š¾Š“ŃŃŠµŠ¹ ŠŗŠ¾Š¼Š°Š½Š“Ń Š“Š»Ń ŃŠ°Š·Š¶Š°ŃŠøŃ Š“Š°Š½Š½Š¾Š³Š¾ ŃŠøŠæŠ° ŠŗŠ½ŠøŠ³Šø ŠŗŠ¾Š¼ŠøŠŗŃŠ¾Š²" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠ½ŃŠ¹ MIME ŃŠøŠæ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Š¤Š°Š¹Š» ŠæŠ¾Š²ŃŠµŠ¶Š“ŃŠ½" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Š¤Š°Š¹Š»Ń Š² Š°ŃŃ ŠøŠ²Šµ Š¾ŃŃŃŃŃŃŠ²ŃŃŃ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Š Š°ŃŃ ŠøŠ²Šµ %s Š½Šµ Š½Š°Š¹Š“ŠµŠ½Š¾ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠ¹" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ŠŃŠ¾ŠøŠ·Š¾ŃŠ»Š° Š¾ŃŠøŠ±ŠŗŠ° ŠæŃŠø ŃŠ“Š°Š»ŠµŠ½ŠøŠø %s." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ŠŃŠøŠ±ŠŗŠ° %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŠŠ½ŠøŠ³Šø ŠŗŠ¾Š¼ŠøŠŗŃŠ¾Š²" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń DjVu ŠøŠ¼ŠµŠµŃ Š½ŠµŠŗŠ¾ŃŃŠµŠŗŃŠ½ŃŠ¹ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ¾ŃŃŠ¾ŠøŃ ŠøŠ· Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠøŃ ŃŠ°Š¹Š»Š¾Š². ŠŠ“ŠøŠ½ ŠøŠ»Šø Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠ¾ ŃŃŠøŃ ŃŠ°Š¹Š»Š¾Š² Š½ŠµŠ“Š¾ŃŃŃŠæŠ½Ń." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ° DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń DVI ŠøŠ¼ŠµŠµŃ Š½ŠµŠŗŠ¾ŃŃŠµŠŗŃŠ½ŃŠ¹ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ° DVI" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ŠŃŠ° ŃŠ°Š±Š¾ŃŠ° Š½Š°Ń Š¾Š“ŠøŃŃŃ Š² Š¾Š±ŃŠµŃŃŠ²ŠµŠ½Š½Š¾Š¼ Š“Š¾ŃŃŠ¾ŃŠ½ŠøŠø" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ŠŠ°" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ŠŠµŃ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠ½ŃŠ¹ ŃŠøŠæ ŃŃŠøŃŃŠ¾Š²" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ŠŠµŠ· Š½Š°Š·Š²Š°Š½ŠøŃ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ŠŃŃŃŠ¾ŠµŠ½Š½Š¾Šµ ŠæŠ¾Š“Š¼Š½Š¾Š¶ŠµŃŃŠ²Š¾" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ŠŃŃŃŠ¾ŠµŠ½Š½ŃŠ¹" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ŠŠ½ŠµŃŠ½ŠøŠ¹" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ° PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŠŠµŠŗŠ¾ŃŃŠµŠŗŃŠ½ŃŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Š”Š»Š°Š¹Š“Ń Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠµŃ Š¾ŃŠøŠ±ŠŗŠø" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµŠ“Š¾ŃŃŠ°ŃŠ¾ŃŠ½Š¾ ŠæŠ°Š¼ŃŃŠø" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°Š¹ŃŠø ŠæŃŠøŠ·Š½Š°Šŗ ŃŠ°Š¹Š»Š° ZIP" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ŠŠµŠŗŠ¾ŃŃŠµŠŗŃŠ½ŃŠ¹ ŃŠ°Š¹Š» ŃŠ¾ŃŠ¼Š°ŃŠ° ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠŠ½Š¾Š³Š¾ŃŠ°Š¹Š»Š¾Š²ŃŠµ Š°ŃŃ ŠøŠ²Ń ZIP Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŃŃŃŃ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ ŃŠ°Š¹Š»" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŠæŃŠ¾ŃŠøŃŠ°ŃŃ Š“Š°Š½Š½ŃŠµ ŠøŠ· ŃŠ°Š¹Š»Š°" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°Š¹ŃŠø ŃŠ°Š¹Š» Š² Š°ŃŃ ŠøŠ²Šµ ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠ½Š°Ń Š¾ŃŠøŠ±ŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ā«%sĀ»" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ā«%sĀ»" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŃ ŃŠ¾ŃŠ¼Š°ŃŠ° PostScript" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ Ā«%sĀ»: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ Ā«%sĀ»" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Š¢ŠøŠæ ŃŠ°Š¹Š»Š¾Š² %s (%s) Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ŠŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ŠŃŠµ ŃŠ°Š¹Š»Ń" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Š·Š“Š°ŃŃ Š²ŃŠµŠ¼ŠµŠ½Š½ŃŠ¹ ŃŠ°Š¹Š»: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Š·Š“Š°ŃŃ Š²ŃŠµŠ¼ŠµŠ½Š½ŃŠ¹ ŠŗŠ°ŃŠ°Š»Š¾Š³: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Š¤Š°Š¹Š» Š½Šµ ŃŠ²Š»ŃŠµŃŃŃ ŠŗŠ¾ŃŃŠµŠŗŃŠ½ŃŠ¼ ŃŠ°Š¹Š»Š¾Š¼ .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠµŃŠ°ŃŠæŠ¾Š·Š½Š°Š½Š½ŃŠ¹ ŃŠ°Š¹Š» Š² desktop Š²ŠµŃŃŠøŠø Ā«%sĀ»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ŠŠ°ŠæŃŃŠŗŠ°ŠµŃŃŃ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃ Š¾ŃŠŗŃŃŃŠøŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² ŃŠµŃŠµŠ· ŠŗŠ¾Š¼Š°Š½Š“Š½ŃŃ ŃŃŃŠ¾ŠŗŃ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŠ¾ŠæŠ¾Š·Š½Š°Š½Š½ŃŠ¹ ŠæŠ°ŃŠ°Š¼ŠµŃŃ Š·Š°ŠæŃŃŠŗŠ°: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæŠµŃŠµŠ“Š°ŃŃ Š°Š“ŃŠµŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² Š·Š°ŠæŠøŃŠø 'Type=Link' ŃŠ°Š¹Š»Š° desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŠµŠ·Š°ŠæŃŃŠŗŠ°ŠµŠ¼ŃŠ¹ Š¾Š±ŃŠµŠŗŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ŠŃŠŗŠ»ŃŃŠøŃŃ ŃŠ¾ŠµŠ“ŠøŠ½ŠµŠ½ŠøŠµ Ń Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŠ¾Š¼ ŃŠµŠ°Š½ŃŠ¾Š²" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Š£ŠŗŠ°Š¶ŠøŃŠµ ŃŠ°Š¹Š» Ń ŃŠ¾Ń ŃŠ°Š½ŠµŠ½Š½ŃŠ¼Šø ŠæŠ°ŃŠ°Š¼ŠµŃŃŠ°Š¼Šø" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "Š¤ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Š£ŠŗŠ°Š·Š°ŃŃ ID ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŃ ŃŠµŠ°Š½ŃŠ¾Š¼" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ŠŠ°ŃŠ°Š¼ŠµŃŃŃ ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŃ ŃŠµŠ°Š½ŃŠ¾Š¼:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŠæŠ°ŃŠ°Š¼ŠµŃŃŃ ŃŠæŃŠ°Š²Š»ŠµŠ½ŠøŃ ŃŠµŠ°Š½ŃŠ¾Š¼" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ Ā«_%sĀ»" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_ŠŠµŃŠµŠ¼ŠµŃŃŠøŃŃ Š½Š° ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ŠŠµŃŠµŠ¼ŠµŃŃŠøŃŃ Š²ŃŠ±ŃŠ°Š½Š½ŃŠ¹ ŃŠ»ŠµŠ¼ŠµŠ½Ń Š½Š° ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Š£Š“Š°Š»ŠøŃŃ ŠøŠ· ŠæŠ°Š½ŠµŠ»Šø ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Š£Š“Š°Š»ŠøŃŃ Š²ŃŠ±ŃŠ°Š½Š½ŃŠ¹ ŃŠ»ŠµŠ¼ŠµŠ½Ń ŠøŠ· ŠæŠ°Š½ŠµŠ»Šø ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Š£Š“Š°Š»ŠøŃŃ ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Š£Š“Š°Š»ŠøŃŃ Š²ŃŠ±ŃŠ°Š½Š½ŃŃ ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Š Š°Š·Š“ŠµŠ»ŠøŃŠµŠ»Ń" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5761 +msgid "Best Fit" +msgstr "Š£Š¼ŠµŃŃŠøŃŃ Š² Š¾ŠŗŠ½Šµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠ¾ ŃŠøŃŠøŠ½Šµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4554 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ŠŃŠ¾ŃŠ¼Š¾ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠŃŠ¾ŃŠ¼Š¾ŃŃ Š¼Š½Š¾Š³Š¾ŃŃŃŠ°Š½ŠøŃŠ½ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŠ³Š½Š¾ŃŠøŃŠ¾Š²Š°ŃŃ Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŃ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ŠŠ³Š½Š¾ŃŠøŃŠ¾Š²Š°ŃŃ Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, Š½Š°ŠæŃŠøŠ¼ŠµŃ, Š¾Š³ŃŠ°Š½ŠøŃŠµŠ½ŠøŠµ Š½Š° ŠŗŠ¾ŠæŠøŃŠ¾Š²Š°Š½ŠøŠµ Šø ŠæŠµŃŠ°ŃŃ." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Š£Š“Š°Š»ŠøŃŃ Š²ŃŠµŠ¼ŠµŠ½Š½ŃŠ¹ ŃŠ°Š¹Š»" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ŠŠ°ŠæŠµŃŠ°ŃŠ°ŃŃ ŃŠ°Š¹Š» ŠæŠ°ŃŠ°Š¼ŠµŃŃŠ¾Š²" + +#: ../previewer/ev-previewer.c:144 +#: ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ŠŃŠµŠ“Š²Š°ŃŠøŃŠµŠ»ŃŠ½ŃŠ¹ ŠæŃŠ¾ŃŠ¼Š¾ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../previewer/ev-previewer-window.c:91 +#: ../shell/ev-window.c:3185 +msgid "Failed to print document" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°ŠæŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŠŃŠ±ŃŠ°Š½Š½ŃŠ¹ ŠæŃŠøŠ½ŃŠµŃ Ā«%sĀ» Š½Šµ Š½Š°Š¹Š“ŠµŠ½" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 +#: ../shell/ev-window.c:5476 +msgid "_Previous Page" +msgstr "_ŠŠ°Š·Š°Š“" + +#: ../previewer/ev-previewer-window.c:285 +#: ../shell/ev-window.c:5477 +msgid "Go to the previous page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:5479 +msgid "_Next Page" +msgstr "_ŠŠæŠµŃŃŠ“" + +#: ../previewer/ev-previewer-window.c:288 +#: ../shell/ev-window.c:5480 +msgid "Go to the next page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŠ»ŠµŠ“ŃŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../previewer/ev-previewer-window.c:291 +#: ../shell/ev-window.c:5463 +msgid "Enlarge the document" +msgstr "Š£Š²ŠµŠ»ŠøŃŠøŃŃ ŃŠ°Š·Š¼ŠµŃ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../previewer/ev-previewer-window.c:294 +#: ../shell/ev-window.c:5466 +msgid "Shrink the document" +msgstr "Š£Š¼ŠµŠ½ŃŃŠøŃŃ ŃŠ°Š·Š¼ŠµŃ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../previewer/ev-previewer-window.c:297 +#: ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ŠŠ°ŠæŠµŃŠ°ŃŠ°ŃŃ" + +#: ../previewer/ev-previewer-window.c:298 +#: ../shell/ev-window.c:5432 +msgid "Print this document" +msgstr "ŠŠ°ŠæŠµŃŠ°ŃŠ°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:342 +#: ../shell/ev-window.c:5578 +msgid "_Best Fit" +msgstr "_Š£Š¼ŠµŃŃŠøŃŃ Š² Š¾ŠŗŠ½Šµ" + +#: ../previewer/ev-previewer-window.c:343 +#: ../shell/ev-window.c:5579 +msgid "Make the current document fill the window" +msgstr "ŠŠ°ŃŃŃŠ°Š±ŠøŃŠ¾Š²Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š»Ń ŃŠ¾Š¾ŃŠ²ŠµŃŃŃŠ²ŠøŃ Š¾ŠŗŠ½Ń" + +#: ../previewer/ev-previewer-window.c:345 +#: ../shell/ev-window.c:5581 +msgid "Fit Page _Width" +msgstr "ŠŠ¾ _ŃŠøŃŠøŠ½Šµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../previewer/ev-previewer-window.c:346 +#: ../shell/ev-window.c:5582 +msgid "Make the current document fill the window width" +msgstr "ŠŠ°ŃŃŃŠ°Š±ŠøŃŠ¾Š²Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š»Ń ŃŠ¾Š¾ŃŠ²ŠµŃŃŃŠ²ŠøŃ ŃŠøŃŠøŠ½Šµ Š¾ŠŗŠ½Š°" + +#: ../previewer/ev-previewer-window.c:558 +#: ../shell/ev-window.c:5683 +msgid "Page" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ°" + +#: ../previewer/ev-previewer-window.c:559 +#: ../shell/ev-window.c:5684 +msgid "Select Page" +msgstr "ŠŃŠ“ŠµŠ»ŠøŃŃ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŠ°Š³Š¾Š»Š¾Š²Š¾Šŗ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŠµŃŃŠ¾Š½Š°Ń Š¾Š¶Š“ŠµŠ½ŠøŠµ:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š¢ŠµŠ¼Š°:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ŠŠ²ŃŠ¾Ń:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŠŠ»ŃŃŠµŠ²ŃŠµ ŃŠ»Š¾Š²Š°:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š¼Š°:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Š”Š¾Š·Š“Š°ŃŠµŠ»Ń:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Š”Š¾Š·Š“Š°Š½:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ŠŠ·Š¼ŠµŠ½ŃŠ½:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Š§ŠøŃŠ»Š¾ ŃŃŃŠ°Š½ŠøŃ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ŠŠæŃŠøŠ¼ŠøŠ·Š°ŃŠøŃ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Š¤Š¾ŃŠ¼Š°Ń:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ŠŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃŃ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Š Š°Š·Š¼ŠµŃ ŃŃŃŠ°Š½ŠøŃŃ:" + +#: ../properties/ev-properties-view.c:188 +#: ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ŠŃŃŃŃŃŃŠ²ŃŠµŃ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f Š¼Š¼" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f Š“ŃŠ¹Š¼Š¾Š²" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ŠæŃŃŠ¼Š°Ń (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ŠæŠ¾Š²ŃŃŠ½ŃŃŠ°Ń (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ŠøŠ· %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "ŠøŠ· %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 +#: ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŠŠ°Š³ŃŃŠ·ŠŗŠ°ā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ŠŠ¾Š“Š³Š¾ŃŠ¾Š²ŠŗŠ° Šŗ ŠæŠµŃŠ°ŃŠøā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ŠŠ°Š²ŠµŃŃŠµŠ½ŠøŠµā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŠŠµŃŠ°ŃŃ ŃŃŃŠ°Š½ŠøŃŃ %d ŠøŠ· %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ŠŠµŃŠ°ŃŃ Š½Š° ŃŃŠ¾Š¼ ŠæŃŠøŠ½ŃŠµŃŠµ Š½Šµ ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ŠŃŠ±ŃŠ°Š½Š° Š½ŠµŠæŃŠ°Š²ŠøŠ»ŃŠ½Š°Ń ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ŠŃŠµŠ“ŃŠæŃŠµŠ¶Š“ŠµŠ½ŠøŠµ" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ŠŃŠ±ŃŠ°Š½Š½ŃŠ¹ Š²Š°Š¼Šø Š“ŠøŠ°ŠæŠ°Š·Š¾Š½ ŃŃŃŠ°Š½ŠøŃ Š½Šµ ŃŠ¾Š“ŠµŃŠ¶ŠøŃ ŃŃŃŠ°Š½ŠøŃ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ŠŠ°ŃŃŃŠ°Š±ŠøŃŠ¾Š²Š°Š½ŠøŠµ ŃŃŃŠ°Š½ŠøŃŃ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Š£ŃŠµŠ·Š°ŃŃ Š“Š¾ Š¾Š±Š»Š°ŃŃŠø ŠæŠµŃŠ°ŃŠø" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Š£Š¼ŠµŃŃŠøŃŃ Š² Š¾Š±Š»Š°ŃŃŃ ŠæŠµŃŠ°ŃŠø" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" +"ŠŠ¾Š“Š³Š¾Š½ŠŗŠ° ŃŃŃŠ°Š½ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Šŗ Š¾Š±Š»Š°ŃŃŠø ŠæŠµŃŠ°ŃŠø Š²ŃŠ±ŃŠ°Š½Š½Š¾Š³Š¾ ŠæŃŠøŠ½ŃŠµŃŠ°. ŠŃŠ±ŠµŃŠøŃŠµ:\n" +"\n" +"ā¢ \"ŠŠµŃ\": ŠŠµ Š²ŃŠæŠ¾Š»Š½ŃŃŃ ŠæŠ¾Š“Š³Š¾Š½ŠŗŃ.\n" +"\n" +"ā¢ \"Š£ŃŠµŠ·Š°ŃŃ Š“Š¾ Š¾Š±Š»Š°ŃŃŠø ŠæŠµŃŠ°ŃŠø\": Š”ŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°, Š±Š¾Š»ŃŃŠøŠµ ŃŠµŠ¼ Š¾Š±Š»Š°ŃŃŃ ŠæŠµŃŠ°ŃŠø, Š±ŃŠ“ŃŃ ŃŃŠµŠ·Š°Š½Ń Š“Š¾ Š¾Š±Š»Š°ŃŃŠø ŠæŠµŃŠ°ŃŠø ŃŃŃŠ°Š½ŠøŃŃ ŠæŃŠøŠ½ŃŠµŃŠ°.\n" +"\n" +"ā¢ \"Š£Š¼ŠµŃŃŠøŃŃ Š² Š¾Š±Š»Š°ŃŃŃ ŠæŠµŃŠ°ŃŠø\": Š”ŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š±ŃŠ“ŃŃ ŃŠ²ŠµŠ»ŠøŃŠµŠ½Ń ŠøŠ»Šø ŃŠ¼ŠµŠ½ŃŃŠµŠ½Ń Š² ŃŠ¾Š¾ŃŠ²ŠµŃŃŃŠ²ŠøŠø Ń Š¾Š±Š»Š°ŃŃŃŃ ŠæŠµŃŠ°ŃŠø ŃŃŃŠ°Š½ŠøŃŃ ŠæŃŠøŠ½ŃŠµŃŠ°.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ŠŠ²ŃŠ¾Š¼Š°ŃŠøŃŠµŃŠŗŠ¾Šµ Š²ŃŠ°ŃŠµŠ½ŠøŠµ Šø ŃŠµŠ½ŃŃŠøŃŠ¾Š²Š°Š½ŠøŠµ" + +#: ../libview/ev-print-operation.c:1885 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "ŠŠ·Š¼ŠµŠ½ŃŃŃ Š¾ŃŠøŠµŠ½ŃŠ°ŃŠøŃ ŃŃŃŠ°Š½ŠøŃŃ ŠæŃŠøŠ½ŃŠµŃŠ° Š² ŃŠ¾Š¾ŃŠ²ŠµŃŃŃŠ²ŠøŠø Ń ŠŗŠ°Š¶Š“Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. Š”ŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š±ŃŠ“ŃŃ ŃŠµŠ½ŃŃŠøŃŠ¾Š²Š°Š½Ń Š½Š° ŃŃŃŠ°Š½ŠøŃŠµ ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ŠŃŠ±Š¾Ń ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ Š½Š° Š¾ŃŠ½Š¾Š²Šµ ŃŠ°Š·Š¼ŠµŃŠ° ŃŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../libview/ev-print-operation.c:1892 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "ŠŃŠ»Šø Š²ŠŗŠ»ŃŃŠµŠ½Š¾, ŃŠ¾ ŠŗŠ°Š¶Š“Š°Ń ŃŃŃŠ°Š½ŠøŃŠ° Š±ŃŠ“ŠµŃ Š½Š°ŠæŠµŃŠ°ŃŠ°Š½Š° Ń Š¾Š“Š½ŠøŠ¼ ŃŠ°Š·Š¼ŠµŃŠ¾Š¼ Š±ŃŠ¼Š°Š³Šø, ŠŗŠ°Šŗ Ń ŃŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ŠŠ±ŃŠ°Š±Š¾ŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°ŠæŠµŃŠ°ŃŠ°ŃŃ ŃŃŃŠ°Š½ŠøŃŃ %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š²Š²ŠµŃŃ " + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š²Š½ŠøŠ·" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š²Š²ŠµŃŃ " + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š²Š½ŠøŠ·" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ŠŃŠ¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŃŃŠ°Š½ŠøŃŠµ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ŠŠ¾Š½ŠµŃ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŠø. ŠŠ°Š¶Š¼ŠøŃŠµ Š“Š»Ń Š²ŃŃ Š¾Š“Š°." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠµŃŠ²Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŠ»ŠµŠ“ŃŃŃŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ŠŠ°Š¹ŃŠø" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŃŃŠ°Š½ŠøŃŠµ %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ %s Š² ŃŠ°Š¹Š»Šµ Ā«%sĀ»" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŃŠ°Š¹Š»Ń Ā«%sĀ»" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŃ %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ŠŠ°Š¹ŃŠø:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5449 +msgid "Find Pre_vious" +msgstr "ŠŠ°Š¹ŃŠø ŠæŃ_ŠµŠ“ŃŠ“ŃŃŠµŠµ" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ŠŠ°Š¹ŃŠø ŠæŃŠµŠ“ŃŠ“ŃŃŠµŠµ Š²Ń Š¾Š¶Š“ŠµŠ½ŠøŠµ ŃŃŃŠ¾ŠŗŠø" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5447 +msgid "Find Ne_xt" +msgstr "ŠŠ°Š¹ŃŠø _ŃŠ»ŠµŠ“ŃŃŃŠµŠµ" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ŠŠ°Š¹ŃŠø ŃŠ»ŠµŠ“ŃŃŃŠµŠµ Š²Ń Š¾Š¶Š“ŠµŠ½ŠøŠµ ŃŠ»Š¾Š²Š°" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Š£ŃŠøŃŃŠ²Š°ŃŃ _ŃŠµŠ³ŠøŃŃŃ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ŠŠµŃŠµŠŗŠ»ŃŃŠøŃŃ ŃŃŠ²ŃŃŠ²ŠøŃŠµŠ»ŃŠ½Š¾ŃŃŃ ŠæŠ¾ŠøŃŠŗŠ° Šŗ ŃŠµŠ³ŠøŃŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ŠŠ½Š°ŃŠ¾Šŗ:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ŠŠ°Š¼ŠµŃŠŗŠ°" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ŠŠ¾Š¼Š¼ŠµŠ½ŃŠ°ŃŠøŠ¹" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ŠŠ»ŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "Š”ŠæŃŠ°Š²ŠŗŠ°" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ŠŠ¾Š²ŃŠ¹ ŠæŠ°ŃŠ°Š³ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ŠŠ°ŃŠ°Š³ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ŠŃŃŠ°Š²ŠøŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ŠŠ°ŃŠµŃŠŗŠ½ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ŠŠ±Š²ŠµŃŃŠø" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ŠŠµŠøŠ·Š²ŠµŃŃŠ½Š¾" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š° ŠæŃŠøŠ¼ŠµŃŠ°Š½ŠøŠ¹" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Š¦Š²ŠµŃ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Š”ŃŠøŠ»Ń:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ŠŃŠ¾Š·ŃŠ°ŃŠ½ŃŠ¹" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ŠŠµŠæŃŠ¾Š·ŃŠ°ŃŠ½Š¾ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ŠŠµŃŠ²Š¾Š½Š°ŃŠ°Š»ŃŠ½Š¾Šµ ŃŠ¾ŃŃŠ¾ŃŠ½ŠøŠµ Š¾ŠŗŠ½Š°:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ŠŃŠŗŃŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ŠŠ°ŠŗŃŃŃŃ" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ŠŠ°ŠæŃŃŠµŠ½ ŃŠµŠ¶ŠøŠ¼ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŠø" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ°ŃŠ¾Š»Ń Šŗ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŠŃŠµŠ¾Š±ŃŠ°Š·ŃŠµŃŃŃ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d ŠøŠ· %d Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² ŠæŃŠµŠ¾Š±ŃŠ°Š·Š¾Š²Š°Š½Š¾" + +#: ../shell/ev-convert-metadata.c:165 +#: ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ŠŃŠµŠ¾Š±ŃŠ°Š·Š¾Š²Š°Š½ŠøŠµ Š¼ŠµŃŠ°Š“Š°Š½Š½ŃŃ " + +#: ../shell/ev-convert-metadata.c:187 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Š¤Š¾ŃŠ¼Š°Ń Š¼ŠµŃŠ°Š“Š°Š½Š½ŃŃ , ŠøŃŠæŠ¾Š»ŃŠ·ŃŠµŠ¼ŃŠ¹ Š² Evince, ŠøŠ·Š¼ŠµŠ½ŃŠ½, Šø ŠæŠ¾ŃŃŠ¾Š¼Ń Š“Š¾Š»Š¶ŠµŠ½ Š±ŃŃŃ ŠæŃŠµŠ¾Š±ŃŠ°Š·Š¾Š²Š°Š½. ŠŃŠ»Šø Š¾ŃŠ¼ŠµŠ½ŠøŃŃ ŠæŃŠµŠ¾Š±ŃŠ°Š·Š¾Š²Š°Š½ŠøŠµ, ŃŠ¾ Ń ŃŠ°Š½ŠøŠ»ŠøŃŠµ Š¼ŠµŃŠ°Š“Š°Š½Š½ŃŃ Š½Šµ Š±ŃŠ“ŠµŃ ŃŠ°Š±Š¾ŃŠ°ŃŃ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ŠŃŠŗŃŃŃŃ Š½ŠµŠ“Š°Š²Š½Š¾ ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š²ŃŠøŠ¹ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "ŠŃŠ¾Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š·Š°Š±Š»Š¾ŠŗŠøŃŠ¾Š²Š°Š½ Šø Š¼Š¾Š¶ŠµŃ Š±ŃŃŃ ŠæŃŠ¾ŃŠøŃŠ°Š½ ŃŠ¾Š»ŃŠŗŠ¾ ŠæŠ¾ŃŠ»Šµ Š²Š²Š¾Š“Š° ŠæŠ°ŃŠ¾Š»Ń." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Š Š°Š·Š±Š»Š¾ŠŗŠøŃŠ¾Š²Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ŠŠ²ŠµŠ“ŠøŃŠµ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Š¢ŃŠµŠ±ŃŠµŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Ā«%sĀ» Š·Š°Š±Š»Š¾ŠŗŠøŃŠ¾Š²Š°Š½ Šø ŃŃŠµŠ±ŃŠµŃ ŠæŠ°ŃŠ¾Š»Ń Š“Š»Ń ŃŃŠµŠ½ŠøŃ." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ŠŠ°ŃŠ¾Š»Ń:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_ŠŠµŠ¼ŠµŠ“Š»ŠµŠ½Š½Š¾ Š·Š°Š±ŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ŠŠ°ŠæŠ¾Š¼Š½ŠøŃŃ ŠæŠ°ŃŠ¾Š»Ń Š“Š»Ń ŃŃŠ¾Š³Š¾ _ŃŠµŠ°Š½ŃŠ°" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ŠŠ°ŠæŠ¾Š¼Š½ŠøŃŃ _Š½Š°Š²ŃŠµŠ³Š“Š°" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š°" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ŠŠ±ŃŠøŠµ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ŠØŃŠøŃŃŃ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ŠŠøŃŠµŠ½Š·ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ŠØŃŠøŃŃ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Š”Š¾Š±ŠøŃŠ°ŠµŃŃŃ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ Š¾ ŃŃŠøŃŃŠ°Ń ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Š£ŃŠ»Š¾Š²ŠøŃ ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŃ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Š¢ŠµŠŗŃŃ Š»ŠøŃŠµŠ½Š·ŠøŠø" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ŠŠ¾ŠæŠ¾Š»Š½ŠøŃŠµŠ»ŃŠ½Š°Ń ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Š”ŠæŠøŃŠ¾Šŗ" + +#: ../shell/ev-sidebar-annotations.c:203 +#: ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ŠŃŠøŠ¼ŠµŃŠ°Š½ŠøŃ" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Š¢ŠµŠŗŃŃ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ŠŠ¾Š±Š°Š²ŠøŃŃ ŃŠµŠŗŃŃ ŠæŃŠøŠ¼ŠµŃŠ°Š½ŠøŃ" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ŠŠ¾Š±Š°Š²ŠøŃŃ" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ ŃŠ¾Š“ŠµŃŠ¶ŠøŃ ŠæŃŠøŠ¼ŠµŃŠ°Š½ŠøŠ¹" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ŠŠ»Š¾Š¶ŠµŠ½ŠøŃ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Š”Š»Š¾Šø" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ŠŠµŃŠ°ŃŃā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Š”Š¾Š“ŠµŃŠ¶Š°Š½ŠøŠµ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ŠŠ±ŃŠ°Š·ŃŃ ŃŃŃŠ°Š½ŠøŃ" + +#: ../shell/ev-window.c:875 +#, c-format +msgid "Page %s ā %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s ā %s" + +#: ../shell/ev-window.c:877 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s" + +#: ../shell/ev-window.c:1436 +msgid "The document contains no pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ ŃŠ¾Š“ŠµŃŠ¶ŠøŃ ŃŃŃŠ°Š½ŠøŃ" + +#: ../shell/ev-window.c:1439 +msgid "The document contains only empty pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ¾Š“ŠµŃŠ¶ŠøŃ ŃŠ¾Š»ŃŠŗŠ¾ ŠæŃŃŃŃŠµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../shell/ev-window.c:1644 +#: ../shell/ev-window.c:1810 +msgid "Unable to open document" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:1781 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ŠŠ°Š³ŃŃŠ·ŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠøŠ· Ā«%sĀ»" + +#: ../shell/ev-window.c:1923 +#: ../shell/ev-window.c:2202 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŠŠ°Š³ŃŃŠ·ŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° (%d%%)" + +#: ../shell/ev-window.c:1956 +msgid "Failed to load remote file." +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š·Š°Š³ŃŃŠ·ŠøŃŃ ŃŠ°Š¹Š» ŠøŠ·Š²Š½Šµ." + +#: ../shell/ev-window.c:2146 +#, c-format +msgid "Reloading document from %s" +msgstr "ŠŠ±Š½Š¾Š²Š»ŠµŠ½ŠøŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠøŠ· %s" + +#: ../shell/ev-window.c:2178 +msgid "Failed to reload document." +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾Š±Š½Š¾Š²ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../shell/ev-window.c:2333 +msgid "Open Document" +msgstr "ŠŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:2631 +#, c-format +msgid "Saving document to %s" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š² %s" + +#: ../shell/ev-window.c:2634 +#, c-format +msgid "Saving attachment to %s" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ Š²Š»Š¾Š¶ŠµŠ½ŠøŃ Š² %s" + +#: ../shell/ev-window.c:2637 +#, c-format +msgid "Saving image to %s" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ Š² %s" + +#: ../shell/ev-window.c:2681 +#: ../shell/ev-window.c:2781 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ Š¼Š¾Š¶ŠµŃ Š±ŃŃŃ ŃŠ¾Ń ŃŠ°Š½ŃŠ½ Š² ŃŠ°Š¹Š»Šµ Ā«%sĀ»." + +#: ../shell/ev-window.c:2712 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ ŃŠ“Š°Š»ŃŠ½Š½Š¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° (%d%%)" + +#: ../shell/ev-window.c:2716 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ ŃŠ“Š°Š»ŃŠ½Š½Š¾Š³Š¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ (%d%%)" + +#: ../shell/ev-window.c:2720 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠµŠ½ŠøŠµ ŃŠ“Š°Š»ŃŠ½Š½Š¾Š³Š¾ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ (%d%%)" + +#: ../shell/ev-window.c:2844 +msgid "Save a Copy" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ" + +#: ../shell/ev-window.c:3129 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Š·Š°Š“Š°Š½ŠøŠµ Š¾Š¶ŠøŠ“Š°ŠµŃ Š² Š¾ŃŠµŃŠµŠ“Šø" +msgstr[1] "%d Š·Š°Š“Š°Š½ŠøŃ Š¾Š¶ŠøŠ“Š°ŃŃ Š² Š¾ŃŠµŃŠµŠ“Šø" +msgstr[2] "%d Š·Š°Š“Š°Š½ŠøŠ¹ Š¾Š¶ŠøŠ“Š°ŠµŃ Š² Š¾ŃŠµŃŠµŠ“Šø" + +#: ../shell/ev-window.c:3242 +#, c-format +msgid "Printing job ā%sā" +msgstr "ŠŠµŃŠ°ŃŃ Š·Š°Š“Š°Š½ŠøŃ Ā«%sĀ»" + +#: ../shell/ev-window.c:3420 +msgid "Document contains form fields that have been filled out. If you don't save a copy, changes will be permanently lost." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ¾Š“ŠµŃŠ¶ŠøŃ Š·Š°ŠæŠ¾Š»Š½ŠµŠ½Š½ŃŠµ ŠæŠ¾Š»Ń ŃŠ¾ŃŠ¼. ŠŃŠ»Šø Š½Šµ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ, ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ Š±ŃŠ“ŃŃ ŃŃŠµŃŃŠ½Ń." + +#: ../shell/ev-window.c:3424 +msgid "Document contains new or modified annotations. If you don't save a copy, changes will be permanently lost." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ¾Š“ŠµŃŠ¶ŠøŃ Š½Š¾Š²ŃŠµ ŠøŠ»Šø ŠøŠ·Š¼ŠµŠ½ŃŠ½Š½ŃŠµ ŠæŃŠøŠ¼ŠµŃŠ°Š½ŠøŃ. ŠŃŠ»Šø Š½Šµ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ, ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ Š±ŃŠ“ŃŃ ŃŃŠµŃŃŠ½Ń." + +#: ../shell/ev-window.c:3431 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Ā«%sĀ» ŠæŠµŃŠµŠ“ Š·Š°ŠŗŃŃŃŠøŠµŠ¼?" + +#: ../shell/ev-window.c:3450 +msgid "Close _without Saving" +msgstr "ŠŠ°ŠŗŃŃŃŃ _Š±ŠµŠ· ŃŠ¾Ń ŃŠ°Š½ŠµŠ½ŠøŃ" + +#: ../shell/ev-window.c:3454 +msgid "Save a _Copy" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ _ŠŗŠ¾ŠæŠøŃ" + +#: ../shell/ev-window.c:3528 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ŠŠ¶ŠøŠ“Š°ŃŃ Š·Š°Š²ŠµŃŃŠµŠ½ŠøŃ Š·Š°Š“Š°Š½ŠøŃ Š½Š° ŠæŠµŃŠ°ŃŃ Ā«%sĀ» ŠæŠµŃŠµŠ“ Š·Š°ŠŗŃŃŃŠøŠµŠ¼?" + +#: ../shell/ev-window.c:3531 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d Š·Š°Š“Š°Š½ŠøŠ¹ ŠæŠµŃŠ°ŃŠø ŠµŃŃ Š½Šµ Š·Š°Š²ŠµŃŃŠµŠ½Ń. ŠŠ¶ŠøŠ“Š°ŃŃ ŠøŃ Š·Š°Š²ŠµŃŃŠµŠ½ŠøŃ ŠæŠµŃŠµŠ“ Š·Š°ŠŗŃŃŃŠøŠµŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°?" + +#: ../shell/ev-window.c:3543 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ŠŃŠ»Šø Š²Ń Š·Š°ŠŗŃŠ¾ŠµŃŠµ Š¾ŠŗŠ½Š¾, Š·Š°Š“Š°Š½ŠøŃ Š½Š° ŠæŠµŃŠ°ŃŃ, ŠæŠ¾ŃŃŠ°Š²Š»ŠµŠ½Š½ŃŠµ Š² Š¾ŃŠµŃŠµŠ“Ń, Š½Šµ Š±ŃŠ“ŃŃ Š²ŃŠæŠ¾Š»Š½ŠµŠ½Ń." + +#: ../shell/ev-window.c:3547 +msgid "Cancel _print and Close" +msgstr "ŠŃŠ¼ŠµŠ½ŠøŃŃ _ŠæŠµŃŠ°ŃŃ Šø Š·Š°ŠŗŃŃŃŃ" + +#: ../shell/ev-window.c:3551 +msgid "Close _after Printing" +msgstr "ŠŠ°ŠŗŃŃŃŃ Šæ_Š¾ŃŠ»Šµ ŠæŠµŃŠ°ŃŠø" + +#: ../shell/ev-window.c:4171 +msgid "Toolbar Editor" +msgstr "ŠŃŠ°Š²ŠŗŠ° ŠæŠ°Š½ŠµŠ»Šø ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../shell/ev-window.c:4338 +msgid "There was an error displaying help" +msgstr "ŠŃŠ¾ŠøŠ·Š¾ŃŠ»Š° Š¾ŃŠøŠ±ŠŗŠ° ŠæŃŠø Š¾ŃŠ¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠø ŃŠæŃŠ°Š²ŠŗŠø" + +#: ../shell/ev-window.c:4550 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŠŃŠ¾ŃŠ¼Š¾ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²\n" +"ŠŃŠæŠ¾Š»ŃŠ·ŃŠµŃ %s (%s)" + +#: ../shell/ev-window.c:4581 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Evince ā ŃŠ²Š¾Š±Š¾Š“Š½Š¾Šµ ŠæŃŠ¾Š³ŃŠ°Š¼Š¼Š½Š¾Šµ Š¾Š±ŠµŃŠæŠµŃŠµŠ½ŠøŠµ. ŠŃ Š¼Š¾Š¶ŠµŃŠµ ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŃŃ ŠøŠ»Šø ŠøŠ·Š¼ŠµŠ½ŃŃŃ ŠµŠ³Š¾ ŠæŃŠø ŃŃŠ»Š¾Š²ŠøŃŃ ŃŠ¾Š¾ŃŠ²ŠµŃŃŃŠ²ŠøŃ GNU General Public License Š¾ŠæŃŠ±Š»ŠøŠŗŠ¾Š²Š°Š½Š½Š¾Š¹ Free Software Foundation; Š»ŠøŠ±Š¾ Š²ŠµŃŃŠøŠø 2 Š»ŠøŃŠµŠ½Š·ŠøŠø, Š»ŠøŠ±Š¾ (Š½Š° Š²Š°ŃŠµ ŃŃŠ¼Š¾ŃŃŠµŠ½ŠøŠµ) Š»ŃŠ±Š¾Š¹ Š±Š¾Š»ŠµŠµ ŠæŠ¾Š·Š“Š½ŠµŠ¹ Š²ŠµŃŃŠøŠø.\n" + +#: ../shell/ev-window.c:4585 +msgid "Evince 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.\n" +msgstr "Evince ŃŠ°ŃŠæŃŠ¾ŃŃŃŠ°Š½ŃŠµŃŃŃ Š² Š½Š°Š“ŠµŠ¶Š“Šµ Š½Š° ŃŠ¾, ŃŃŠ¾ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š±ŃŠ“ŠµŃ ŠæŠ¾Š»ŠµŠ·Š½Š¾, Š½Š¾ ŠŠŠ ŠŠ”ŠÆŠŠŠ„ ŠŠŠ ŠŠŠ¢ŠŠ; Š½Šµ Š³Š°ŃŠ°Š½ŃŠøŃŃŠµŃŃŃ Š“Š°Š¶Šµ ŠŠ ŠŠŠŠŠŠŠ”Š¢Š¬ ŠøŠ»Šø Š”ŠŠŠ¢ŠŠŠ¢Š”Š¢ŠŠŠ ŠŠŠŠŠ-ŠŠŠŠ Š¢Š ŠŠŠŠŠŠŠŠÆŠ. ŠŠ»Ń ŠæŠ¾Š»ŃŃŠµŠ½ŠøŃ Š“Š¾ŠæŠ¾Š»Š½ŠøŃŠµŠ»ŃŠ½Š¾Š¹ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŠø Š¾Š·Š½Š°ŠŗŠ¾Š¼ŃŃŠµŃŃ Ń GNU General Public License.\n" + +#: ../shell/ev-window.c:4589 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "ŠŃ Š“Š¾Š»Š¶Š½Ń ŠæŠ¾Š»ŃŃŠøŃŃ ŠŗŠ¾ŠæŠøŃ GNU General Public License Š²Š¼ŠµŃŃŠµ Ń Evince. ŠŃŠ»Šø ŃŃŠ¾Š³Š¾ Š½Šµ ŠæŃŠ¾ŠøŠ·Š¾ŃŠ»Š¾, Š½Š°ŠæŠøŃŠøŃŠµ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4614 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4617 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Š°Š²ŃŠ¾ŃŃ Evince" + +#: ../shell/ev-window.c:4623 +msgid "translator-credits" +msgstr "ŠŠøŠŗŠ¾Š»Š°Š¹ Š. ŠØŠ¼ŃŃŃŠ² <nshmyrev@yandex.ru>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4889 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ŃŠ¾Š²ŠæŠ°Š“ŠµŠ½ŠøŠµ" +msgstr[1] "%d ŃŠ¾Š²ŠæŠ°Š“ŠµŠ½ŠøŃ" +msgstr[2] "%d ŃŠ¾Š²ŠæŠ°Š“ŠµŠ½ŠøŠ¹" + +#: ../shell/ev-window.c:4894 +msgid "Not found" +msgstr "ŠŠµ Š½Š°Š¹Š“ŠµŠ½Š¾" + +#: ../shell/ev-window.c:4900 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Š¾ŃŃŠ°ŃŃŃŃ Š“Š»Ń ŠæŠ¾ŠøŃŠŗŠ°" + +#: ../shell/ev-window.c:5415 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:5416 +msgid "_Edit" +msgstr "_ŠŃŠ°Š²ŠŗŠ°" + +#: ../shell/ev-window.c:5417 +msgid "_View" +msgstr "_ŠŠøŠ“" + +#: ../shell/ev-window.c:5418 +msgid "_Go" +msgstr "Š_ŠµŃŠµŃ Š¾Š“" + +#: ../shell/ev-window.c:5419 +msgid "_Help" +msgstr "_Š”ŠæŃŠ°Š²ŠŗŠ°" + +#. File menu +#: ../shell/ev-window.c:5422 +#: ../shell/ev-window.c:5723 +msgid "_Openā¦" +msgstr "_ŠŃŠŗŃŃŃŃā¦" + +#: ../shell/ev-window.c:5423 +#: ../shell/ev-window.c:5724 +msgid "Open an existing document" +msgstr "ŠŃŠŗŃŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5425 +msgid "Op_en a Copy" +msgstr "ŠŃŠŗŃŃŃŃ _ŠŗŠ¾ŠæŠøŃ" + +#: ../shell/ev-window.c:5426 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŠŗŃŃŃŃ ŠŗŠ¾ŠæŠøŃ ŃŠµŠŗŃŃŠµŠ³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š² Š½Š¾Š²Š¾Š¼ Š¾ŠŗŠ½Šµ" + +#: ../shell/ev-window.c:5428 +msgid "_Save a Copyā¦" +msgstr "_Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃā¦" + +#: ../shell/ev-window.c:5429 +msgid "Save a copy of the current document" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠŗŠ¾ŠæŠøŃ ŃŠµŠŗŃŃŠµŠ³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-window.c:5431 +msgid "_Printā¦" +msgstr "_ŠŠµŃŠ°ŃŃā¦" + +#: ../shell/ev-window.c:5434 +msgid "P_roperties" +msgstr "_Š”Š²Š¾Š¹ŃŃŠ²Š°" + +#: ../shell/ev-window.c:5442 +msgid "Select _All" +msgstr "ŠŃŠ“ŠµŠ»ŠøŃŃ _Š²ŃŃ" + +#: ../shell/ev-window.c:5444 +msgid "_Findā¦" +msgstr "_ŠŠ°Š¹ŃŠøā¦" + +#: ../shell/ev-window.c:5445 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ°Š¹ŃŠø ŃŠ»Š¾Š²Š¾ ŠøŠ»Šø ŃŃŠ°Š·Ń Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: ../shell/ev-window.c:5451 +msgid "T_oolbar" +msgstr "ŠŠ°Š½ŠµŠ»Ń _ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../shell/ev-window.c:5453 +msgid "Rotate _Left" +msgstr "ŠŠ¾Š²ŠµŃŠ½ŃŃŃ Š²_Š»ŠµŠ²Š¾" + +#: ../shell/ev-window.c:5455 +msgid "Rotate _Right" +msgstr "ŠŠ¾Š²ŠµŃŠ½ŃŃŃ Š²_ŠæŃŠ°Š²Š¾" + +#: ../shell/ev-window.c:5457 +msgid "Save Current Settings as _Default" +msgstr "Š”Š“ŠµŠ»Š°ŃŃ ŃŠµŠŗŃŃŠøŠµ Š½Š°ŃŃŃŠ¾Š¹ŠŗŠø Š½Š°ŃŃŃŠ¾Š¹ŠŗŠ°Š¼Šø ŠæŠ¾ ŃŠ¼Š¾Š»ŃŠ°Š½ŠøŃ" + +#: ../shell/ev-window.c:5468 +msgid "_Reload" +msgstr "_ŠŠ±Š½Š¾Š²ŠøŃŃ" + +#: ../shell/ev-window.c:5469 +msgid "Reload the document" +msgstr "ŠŠ±Š½Š¾Š²ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5472 +msgid "Auto_scroll" +msgstr "ŠŃŠ¾_ŠŗŃŃŃŠøŠ²Š°ŃŃ Š°Š²ŃŠ¾Š¼Š°ŃŠøŃŠµŃŠŗŠø" + +#: ../shell/ev-window.c:5482 +msgid "_First Page" +msgstr "_ŠŠ°ŃŠ°Š»Š¾" + +#: ../shell/ev-window.c:5483 +msgid "Go to the first page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠµŃŠ²Š¾Š¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../shell/ev-window.c:5485 +msgid "_Last Page" +msgstr "_ŠŠ¾Š½ŠµŃ" + +#: ../shell/ev-window.c:5486 +msgid "Go to the last page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Šŗ ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ¹ ŃŃŃŠ°Š½ŠøŃŠµ" + +#. Help menu +#: ../shell/ev-window.c:5490 +msgid "_Contents" +msgstr "_Š”Š¾Š“ŠµŃŠ¶Š°Š½ŠøŠµ" + +#: ../shell/ev-window.c:5493 +msgid "_About" +msgstr "_Š ŠæŃŠ¾Š³ŃŠ°Š¼Š¼Šµ" + +#. Toolbar-only +#: ../shell/ev-window.c:5497 +msgid "Leave Fullscreen" +msgstr "ŠŃŠ¹ŃŠø ŠøŠ· ŠæŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Š°" + +#: ../shell/ev-window.c:5498 +msgid "Leave fullscreen mode" +msgstr "ŠŃŠ¹ŃŠø ŠøŠ· ŠæŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Š°" + +#: ../shell/ev-window.c:5500 +msgid "Start Presentation" +msgstr "ŠŠ°ŃŠ°ŃŃ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5501 +msgid "Start a presentation" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š² ŃŠµŠ¶ŠøŠ¼ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŠø" + +#. View Menu +#: ../shell/ev-window.c:5560 +msgid "_Toolbar" +msgstr "ŠŠ°Š½ŠµŠ»Ń _ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../shell/ev-window.c:5561 +msgid "Show or hide the toolbar" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŠøŠ»Šø ŃŠæŃŃŃŠ°ŃŃ ŠæŠ°Š½ŠµŠ»Ń ŠøŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../shell/ev-window.c:5563 +msgid "Side _Pane" +msgstr "_ŠŠ¾ŠŗŠ¾Š²Š°Ń ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5564 +msgid "Show or hide the side pane" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŠøŠ»Šø ŃŠæŃŃŃŠ°ŃŃ Š±Š¾ŠŗŠ¾Š²ŃŃ ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5566 +msgid "_Continuous" +msgstr "_ŠŠµŠæŃŠµŃŃŠ²Š½Š¾" + +#: ../shell/ev-window.c:5567 +msgid "Show the entire document" +msgstr "ŠŠ¾ŠŗŠ°Š·ŃŠ²Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠµŠ»ŠøŠŗŠ¾Š¼" + +#: ../shell/ev-window.c:5569 +msgid "_Dual" +msgstr "_ŠŠ²Šµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../shell/ev-window.c:5570 +msgid "Show two pages at once" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŠæŠ¾ Š“Š²Šµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../shell/ev-window.c:5572 +msgid "_Fullscreen" +msgstr "ŠŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½ŃŠ¹ _ŃŠµŠ¶ŠøŠ¼" + +#: ../shell/ev-window.c:5573 +msgid "Expand the window to fill the screen" +msgstr "ŠŠ¾ŠŗŠ°Š·ŃŠ²Š°ŃŃ Š¾ŠŗŠ½Š¾ Š½Š° Š²ŠµŃŃ ŃŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5575 +msgid "Pre_sentation" +msgstr "_ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5576 +msgid "Run document as a presentation" +msgstr "ŠŃŠ¾Š±ŃŠ°Š¶Š°ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠŗŠ°Šŗ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃ" + +#: ../shell/ev-window.c:5584 +msgid "_Inverted Colors" +msgstr "_ŠŠ½Š²ŠµŃŃŠøŃŠ¾Š²Š°ŃŃ ŃŠ²ŠµŃŠ°" + +#: ../shell/ev-window.c:5585 +msgid "Show page contents with the colors inverted" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŃ ŃŠ¾Š“ŠµŃŠ¶ŠøŠ¼Š¾Šµ ŃŃŃŠ°Š½ŠøŃŃ Š² ŠøŠ½Š²ŠµŃŃŠøŃŠ¾Š²Š°Š½Š½Š¾Š¼ ŃŠ²ŠµŃŠµ" + +#. Links +#: ../shell/ev-window.c:5593 +msgid "_Open Link" +msgstr "_ŠŃŠŗŃŃŃŃ ŃŃŃŠ»ŠŗŃ" + +#: ../shell/ev-window.c:5595 +msgid "_Go To" +msgstr "_ŠŠµŃŠµŠ¹ŃŠø" + +#: ../shell/ev-window.c:5597 +msgid "Open in New _Window" +msgstr "ŠŃŠŗŃŃŃŃ Š² _Š½Š¾Š²Š¾Š¼ Š¾ŠŗŠ½Šµ" + +#: ../shell/ev-window.c:5599 +msgid "_Copy Link Address" +msgstr "_ŠŠ¾ŠæŠøŃŠ¾Š²Š°ŃŃ Š°Š“ŃŠµŃ ŃŃŃŠ»ŠŗŠø" + +#: ../shell/ev-window.c:5601 +msgid "_Save Image Asā¦" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ _ŠŗŠ°Šŗā¦" + +#: ../shell/ev-window.c:5603 +msgid "Copy _Image" +msgstr "ŠŠ¾ŠæŠøŃŠ¾Š²Š°ŃŃ _ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:5605 +msgid "Annotation Propertiesā¦" +msgstr "Š”Š²Š¾Š¹ŃŃŠ²Š° ŠæŃŠøŠ¼ŠµŃŠ°Š½ŠøŠ¹ā¦" + +#: ../shell/ev-window.c:5610 +msgid "_Open Attachment" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:5612 +msgid "_Save Attachment Asā¦" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ _Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ ŠŗŠ°Šŗā¦" + +#: ../shell/ev-window.c:5697 +msgid "Zoom" +msgstr "ŠŠ°ŃŃŃŠ°Š±" + +#: ../shell/ev-window.c:5699 +msgid "Adjust the zoom level" +msgstr "ŠŠ·Š¼ŠµŠ½ŠøŃŃ Š¼Š°ŃŃŃŠ°Š±" + +#: ../shell/ev-window.c:5709 +msgid "Navigation" +msgstr "ŠŠµŃŠµŠ¼ŠµŃŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:5711 +msgid "Back" +msgstr "ŠŠ°Š·Š°Š“" + +#. translators: this is the history action +#: ../shell/ev-window.c:5714 +msgid "Move across visited pages" +msgstr "ŠŠµŃŠµŠ¼ŠµŃŠ°ŃŃŃŃ ŠæŠ¾ ŠæŃŠµŠ“ŃŠ“ŃŃŠøŠ¼ ŃŃŃŠ°Š½ŠøŃŠ°Š¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5744 +msgid "Previous" +msgstr "ŠŃŠµŠ“ŃŠ“ŃŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5749 +msgid "Next" +msgstr "Š”Š»ŠµŠ“ŃŃŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5753 +msgid "Zoom In" +msgstr "Š£Š²ŠµŠ»ŠøŃŠøŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5757 +msgid "Zoom Out" +msgstr "Š£Š¼ŠµŠ½ŃŃŠøŃŃ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5765 +msgid "Fit Width" +msgstr "ŠŠ¾ ŃŠøŃŠøŠ½Šµ ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../shell/ev-window.c:5910 +#: ../shell/ev-window.c:5927 +msgid "Unable to launch external application." +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š·Š°ŠæŃŃŃŠøŃŃ Š²Š½ŠµŃŠ½ŠµŠµ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ." + +#: ../shell/ev-window.c:5984 +msgid "Unable to open external link" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š²Š½ŠµŃŠ½ŃŃ ŃŃŃŠ»ŠŗŃ" + +#: ../shell/ev-window.c:6151 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š½Š°Š¹ŃŠø ŠæŠ¾Š“Ń Š¾Š“ŃŃŠøŠ¹ ŃŠ¾ŃŠ¼Š°Ń Š“Š»Ń ŃŠ¾Ń ŃŠ°Š½ŠµŠ½ŠøŃ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ" + +#: ../shell/ev-window.c:6193 +msgid "The image could not be saved." +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ." + +#: ../shell/ev-window.c:6225 +msgid "Save Image" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:6353 +msgid "Unable to open attachment" +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ Š¾ŃŠŗŃŃŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window.c:6406 +msgid "The attachment could not be saved." +msgstr "ŠŠµ ŃŠ“Š°Š»Š¾ŃŃ ŃŠ¾Ń ŃŠ°Š½ŠøŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ." + +#: ../shell/ev-window.c:6451 +msgid "Save Attachment" +msgstr "Š”Š¾Ń ŃŠ°Š½ŠøŃŃ Š²Š»Š¾Š¶ŠµŠ½ŠøŠµ" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ŃŃŠµŠ±ŃŠµŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ŠŠ¾ ŃŠ°ŃŃŠøŃŠµŠ½ŠøŃ" + +#: ../shell/main.c:69 +#: ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ŠŃŠ¾ŃŠ¼Š¾ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š²" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "ŠŃŠ¾Š±ŃŠ°Š¶Š°ŠµŠ¼Š°Ń Š¼ŠµŃŠŗŠ° ŃŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "Š”Š¢Š ŠŠŠŠ¦Š" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "ŠŃŠ¾Š±ŃŠ°Š¶Š°ŠµŠ¼ŃŠ¹ Š½Š¾Š¼ŠµŃ ŃŃŃŠ°Š½ŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ŠŠŠŠŠ " + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŃ Evince Š² ŠæŠ¾Š»Š½Š¾ŃŠŗŃŠ°Š½Š½Š¾Š¼ ŃŠµŠ¶ŠøŠ¼Šµ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŃ Evince Š² ŃŠµŠ¶ŠøŠ¼Šµ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŠø" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŃ Evince Š² ŃŠµŠ¶ŠøŠ¼Šµ ŠæŃŠµŠ“Š²Š°ŃŠøŃŠµŠ»ŃŠ½Š¾Š³Š¾ ŠæŃŠ¾ŃŠ¼Š¾ŃŃŠ°" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Š”Š»Š¾Š²Š¾ ŠøŠ»Šø ŃŃŠ°Š·Š°, ŠŗŠ¾ŃŠ¾ŃŃŠµ Š½Š°Š“Š¾ Š½Š°Š¹ŃŠø Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "Š”Š¢Š ŠŠŠ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Š¤ŠŠŠā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "ŠŠ¾Š·Š¼Š¾Š¶Š½Š¾ Š»Š¾Š³ŠøŃŠµŃŠŗŠ¾Šµ Š·Š½Š°ŃŠµŠ½ŠøŠµ: true Š²ŠŗŠ»ŃŃŠ°ŠµŃ ŃŠ¾Š·Š“Š°Š½ŠøŠµ Š¾Š±ŃŠ°Š·ŃŠ¾Š², Š° false Š²ŃŠŗŠ»ŃŃŠ°ŠµŃ ŃŠ¾Š·Š“Š°Š½ŠøŠµ Š½Š¾Š²ŃŃ Š¾Š±ŃŠ°Š·ŃŠ¾Š²" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ŠŠŗŠ»ŃŃŠøŃŃ ŃŠ¾Š·Š“Š°Š½ŠøŠµ Š¾Š±ŃŠ°Š·ŃŠ¾Š² Š“Š»Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° ŃŠ¾Š·Š“Š°Š½ŠøŃ Š¾Š±ŃŠ°Š·ŃŠ¾Š² Š“Š»Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ¾Š² PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° Šø Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŃ Š“Š»Ń Š·Š°ŠæŃŃŠŗŠ° ŠæŃŠ¾Š³ŃŠ°Š¼Š¼Ń ŃŠ¾Š·Š“Š°Š½ŠøŃ ŠøŠ·Š¾Š±ŃŠ°Š¶ŠµŠ½ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° PDF. ŠŠ»Ń ŠæŠ¾Š»ŃŃŠµŠ½ŠøŃ Š“Š¾ŠæŠ¾Š»Š½ŠøŃŠµŠ»ŃŠ½Š¾Š¹ ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŠø ŃŠ¼Š¾ŃŃŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃ ŠæŠ¾ Caja." diff --git a/po/rw.po b/po/rw.po new file mode 100644 index 00000000..c4dc5f04 --- /dev/null +++ b/po/rw.po @@ -0,0 +1,841 @@ +# translation of evince to Kinyarwanda. +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Steve Murphy <murf@e-tools.com>, 2005 +# Steve performed initial rough translation from compendium built from translations provided by the following translators: +# Philibert Ndandali <ndandali@yahoo.fr>, 2005. +# Viateur MUGENZI <muvia1@yahoo.fr>, 2005. +# NoĆ«lla Mupole <s24211045@tuks.co.za>, 2005. +# Carole Karema <karemacarole@hotmail.com>, 2005. +# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005. +# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005. +# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.. +# +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-04-01 11:26-0700\n" +"PO-Revision-Date: 2005-03-31 20:55-0700\n" +"Last-Translator: Steve Murphy <murf@e-tools.com>\n" +"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"ULL NAME <EMAIL@ADDRESS>\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: data/evince-password.glade.h:1 +msgid "*" +msgstr "*" + +#: data/evince-password.glade.h:2 +#, fuzzy +msgid "<span size=\"smaller\"> </span>" +msgstr "<Ingano Gitoya" + +# basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_PASSWORD.text +#: data/evince-password.glade.h:3 +#, fuzzy +msgid "_Password:" +msgstr "Ijambobanga..." + +#: data/evince.desktop.in.h:1 shell/ev-window.c:470 +msgid "Document Viewer" +msgstr "" + +#: data/evince.desktop.in.h:2 shell/main.c:87 +msgid "Evince Document Viewer" +msgstr "" + +#: data/evince.desktop.in.h:3 +#, fuzzy +msgid "View multipage documents" +msgstr "Inyandiko" + +#: data/evince.schemas.in.h:1 +#, fuzzy +msgid "Default sidebar size" +msgstr "Umurongo wo ku mpande Ingano" + +#: data/evince.schemas.in.h:2 +#, fuzzy +msgid "Show sidebar by default" +msgstr "Umurongo wo ku mpande ku Mburabuzi" + +#: data/evince.schemas.in.h:3 +#, fuzzy +msgid "Show sidebar by default." +msgstr "Umurongo wo ku mpande ku Mburabuzi" + +#: data/evince.schemas.in.h:4 +#, fuzzy +msgid "Show statusbar by default" +msgstr "ku Mburabuzi" + +#: data/evince.schemas.in.h:5 +#, fuzzy +msgid "Show statusbar by default." +msgstr "ku Mburabuzi" + +#: data/evince.schemas.in.h:6 +#, fuzzy +msgid "Show toolbar by default" +msgstr "Umwanyabikoresho ku Mburabuzi" + +#: data/evince.schemas.in.h:7 +#, fuzzy +msgid "Show toolbar by default." +msgstr "Umwanyabikoresho ku Mburabuzi" + +#: data/evince.schemas.in.h:8 +#, fuzzy +msgid "The default sidebar size." +msgstr "Mburabuzi Umurongo wo ku mpande Ingano" + +#: ps/gsdefaults.c:30 +msgid "BBox" +msgstr "" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.10.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.13.text +#: ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Ibaruwa" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.12.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.15.text +#: ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Imiterere binyamakuru" + +#: ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.11.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.14.text +#: ps/gsdefaults.c:34 +msgid "Legal" +msgstr "By'amategeko" + +#: ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Inyandiko" + +#: ps/gsdefaults.c:36 +msgid "Executive" +msgstr "" + +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.1.text +#: ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.2.text +#: ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.3.text +#: ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.1.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.4.text +#: ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.2.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.5.text +#: ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_STD.3.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\page.src:RID_SVXSTRARY_PAPERSIZE_DRAW.6.text +#: ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ps/gsdefaults.c:43 +msgid "B4" +msgstr "" + +#: ps/gsdefaults.c:44 +msgid "B5" +msgstr "" + +#: ps/gsdefaults.c:45 +msgid "Folio" +msgstr "" + +#: ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "" + +#: ps/gsdefaults.c:47 +msgid "10x14" +msgstr "" + +#: ps/ps-document.c:142 +#, fuzzy +msgid "No document loaded." +msgstr "Inyandiko" + +#: ps/ps-document.c:538 +msgid "Broken pipe." +msgstr "" + +#: ps/ps-document.c:722 +#, fuzzy +msgid "Interpreter failed." +msgstr "Byanze" + +#. report error +#: ps/ps-document.c:844 +#, fuzzy, c-format +msgid "Error while decompressing file %s:\n" +msgstr "IDOSIYE" + +#: ps/ps-document.c:1037 +#, fuzzy, c-format +msgid "Cannot open file %s.\n" +msgstr "Gufungura IDOSIYE" + +#: ps/ps-document.c:1039 +#, fuzzy +msgid "File is not readable." +msgstr "Idosiye%S ntirisomeka" + +#: ps/ps-document.c:1059 +#, fuzzy, c-format +msgid "Error while scanning file %s\n" +msgstr "IDOSIYE" + +#: ps/ps-document.c:1062 +#, fuzzy +msgid "The file is not a PostScript document." +msgstr "IDOSIYE ni OYA a Inyandiko" + +#: ps/ps-document.c:1075 +msgid "Document loaded." +msgstr "" + +#: shell/eggfindbar.c:141 +#, fuzzy +msgid "Search string" +msgstr "Ikurikiranyanyuguti" + +#: shell/eggfindbar.c:142 +#, fuzzy +msgid "The name of the string to be found" +msgstr "Izina: Bya i Ikurikiranyanyuguti Kuri Byabonetse" + +# officecfg/registry\schema\org\openoffice\Office\Calc.xcs:....Calculate.Other.CaseSensitive.text +#: shell/eggfindbar.c:155 +msgid "Case sensitive" +msgstr "Imyandikire y'inyuguti nkuru/nto" + +#: shell/eggfindbar.c:156 +#, fuzzy +msgid "TRUE for a case sensitive search" +msgstr "kugirango a Gushaka" + +#: shell/eggfindbar.c:163 +#, fuzzy +msgid "Highlight color" +msgstr "Garagaza ibara" + +#: shell/eggfindbar.c:164 +#, fuzzy +msgid "Color of highlight for all matches" +msgstr "Bya garagaza cyane kugirango Byose" + +#: shell/eggfindbar.c:170 +#, fuzzy +msgid "Current color" +msgstr "Ibara" + +#: shell/eggfindbar.c:171 +#, fuzzy +msgid "Color of highlight for the current match" +msgstr "Bya garagaza cyane kugirango i KIGEZWEHO BIHUYE" + +# sfx2/source\appl\newhelp.src:STR_HELP_BUTTON_SEARCHDIALOG.text +#: shell/eggfindbar.c:288 +#, fuzzy +msgid "F_ind:" +msgstr "Gushaka..." + +#: shell/eggfindbar.c:301 +#, fuzzy +msgid "_Previous" +msgstr "Ibanjirije" + +#: shell/eggfindbar.c:302 +#, fuzzy +msgid "_Next" +msgstr "Bikurikira" + +# officecfg/registry\schema\org\openoffice\Office\Calc.xcs:....Calculate.Other.CaseSensitive.text +#: shell/eggfindbar.c:314 +#, fuzzy +msgid "C_ase Sensitive" +msgstr "Imyandikire y'inyuguti nkuru/ nto" + +# dbaccess/source/ui/inc/toolbox.hrc:MID_DOCUMENT_OPEN.text +#: shell/ev-application.c:120 +#, fuzzy +msgid "Open document" +msgstr "Gufungura Inyandiko" + +#: shell/ev-application.c:130 +#, fuzzy +msgid "PostScript and PDF Documents" +msgstr "Na" + +#: shell/ev-application.c:138 +msgid "PostScript Documents" +msgstr "" + +#: shell/ev-application.c:145 shell/ev-window.c:875 +msgid "PDF Documents" +msgstr "" + +#: shell/ev-application.c:150 +msgid "Images" +msgstr "Ishusho" + +#: shell/ev-application.c:155 shell/ev-window.c:880 +msgid "All Files" +msgstr "Amadosiye yose" + +#: shell/ev-password-view.c:111 +#, fuzzy +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Inyandiko ni Gifunze Na Gusoma ku i Ijambobanga..." + +#: shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "" + +#: shell/ev-password.c:88 +#, fuzzy +msgid "Unable to find glade file" +msgstr "Kuri Gushaka IDOSIYE" + +#: shell/ev-password.c:90 +#, fuzzy, c-format +msgid "" +"The glade file, %s, cannot be found. Please check that your installation is " +"complete." +msgstr "IDOSIYE Byabonetse Kugenzura... iyinjizaporogaramu ni Byuzuye" + +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +#: shell/ev-password.c:104 +msgid "Password required" +msgstr "Ijambobanga ni ngombwa" + +#: shell/ev-password.c:105 +#, fuzzy, c-format +msgid "" +"The document <i>%s</i> is locked and requires a password before it can be " +"opened." +msgstr "Inyandiko i i ni Gifunze Na a Ijambobanga... Mbere" + +# basctl/source\basicide\basidesh.src:RID_STR_WRONGPASSWORD.text +#: shell/ev-password.c:142 +#, fuzzy +msgid "Incorrect password" +msgstr "ijambobanga si ryo" + +#: shell/ev-sidebar-links.c:132 +msgid "Loading..." +msgstr "Itangira..." + +#: shell/ev-view.c:720 +#, fuzzy, c-format +msgid "Go to page %s" +msgstr "Kuri Ipaji" + +#. g_mutex_unlock (EV_DOC_MUTEX); +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: shell/ev-view.c:1156 +#, fuzzy, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%dByabonetse ku iyi Ipaji" + +#: shell/ev-view.c:1168 +#, fuzzy +msgid "Not found" +msgstr "Bitabonetse" + +#: shell/ev-view.c:1170 +#, fuzzy, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%%Kuri Gushaka" + +#: shell/ev-window.c:378 +#, fuzzy +msgid "Unable to open document" +msgstr "Kuri Gufungura Inyandiko" + +#: shell/ev-window.c:464 +msgid "Document Viewer - Password Required" +msgstr "" + +#: shell/ev-window.c:466 +#, c-format +msgid "%s - Password Required" +msgstr "" + +#: shell/ev-window.c:742 +#, fuzzy, c-format +msgid "Unhandled MIME type: '%s'" +msgstr "Ubwoko" + +#: shell/ev-window.c:846 +#, fuzzy, c-format +msgid "The file could not be saved as \"%s\"." +msgstr "IDOSIYE OYA Nka" + +#: shell/ev-window.c:867 +#, fuzzy +msgid "Save a Copy" +msgstr "Kubika a" + +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# +#: shell/ev-window.c:949 +msgid "Print" +msgstr "Gucapa" + +#: shell/ev-window.c:972 +#, fuzzy +msgid "Printing is not supported on this printer." +msgstr "ni OYA ku iyi Mucapyi" + +#: shell/ev-window.c:975 +#, fuzzy, c-format +msgid "" +"You were trying to print to a printer using the \"%s\" driver. This program " +"requires a PostScript printer driver." +msgstr "" +"Kuri Gucapa Kuri a Mucapyi ikoresha i Musomyi: Porogaramu a Mucapyi Musomyi:" + +#: shell/ev-window.c:1027 +#, fuzzy +msgid "The \"Find\" feature will not work with this document" +msgstr "OYA Akazi Na: iyi Inyandiko" + +#: shell/ev-window.c:1029 +#, fuzzy +msgid "Searching for text is only supported for PDF documents." +msgstr "kugirango Umwandiko ni kugirango Inyandiko" + +#. Toolbar-only +#: shell/ev-window.c:1245 shell/ev-window.c:2024 +msgid "Leave Fullscreen" +msgstr "" + +#: shell/ev-window.c:1630 +msgid "Many..." +msgstr "" + +#: shell/ev-window.c:1635 +msgid "Not so many..." +msgstr "" + +#: shell/ev-window.c:1640 +#, fuzzy +msgid "" +"Evince is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +msgstr "" +"ni Kigenga Na Cyangwa i Bya i Nka Verisiyo 2. Bya i ku Ihitamo Verisiyo" + +#: shell/ev-window.c:1644 +#, fuzzy +msgid "" +"Evince is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +msgstr "ni in i ATARIIGIHARWE i Cyangwa A kugirango Birenzeho Birambuye" + +#: shell/ev-window.c:1648 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with Evince; if not, write to the Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "BYAKIRIWE a Gukoporora Bya i Na: NIBA OYA Kwandika Kuri i" + +#: shell/ev-window.c:1670 shell/main.c:82 +msgid "Evince" +msgstr "" + +#: shell/ev-window.c:1673 +#, fuzzy +msgid "Ā© 1996-2004 The Evince authors" +msgstr "Abahanzi" + +#: shell/ev-window.c:1676 +#, fuzzy +msgid "PostScript and PDF File Viewer." +msgstr "Na Idosiye" + +#: shell/ev-window.c:1679 +#, fuzzy +msgid "translator-credits" +msgstr "Umusemuzi" + +# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_HFCMD_FILE.text +#: shell/ev-window.c:1955 +#, fuzzy +msgid "_File" +msgstr "IDOSIYE" + +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\basidesh.src:RID_BASICMENU.MN_EDIT.text +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\basidesh.src:RID_BASICPLUGINMENU.MN_PLEDIT.text +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\macrodlg.src:RID_MACROCHOOSER.RID_PB_EDIT.text +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\moduldlg.src:RID_TP_MODULS.RID_PB_EDIT.text +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_EDIT.text +#: shell/ev-window.c:1956 +#, fuzzy +msgid "_Edit" +msgstr "Guhindura" + +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\basidesh.src:RID_BASICMENU.MN_VIEW.text +# #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# +# basctl/source\basicide\basidesh.src:RID_BASICPLUGINMENU.MN_PLVIEW.text +#: shell/ev-window.c:1957 +#, fuzzy +msgid "_View" +msgstr "Kureba" + +#: shell/ev-window.c:1958 +#, fuzzy +msgid "_Go" +msgstr "Gyayo" + +#: shell/ev-window.c:1959 +#, fuzzy +msgid "_Help" +msgstr "Ifashayobora" + +#: shell/ev-window.c:1963 +#, fuzzy +msgid "Open an existing document" +msgstr "Inyandiko" + +#: shell/ev-window.c:1965 +#, fuzzy +msgid "_Save a Copy..." +msgstr "Kubika a" + +#: shell/ev-window.c:1966 +#, fuzzy +msgid "Save the current document with a new filename" +msgstr "Kubika i KIGEZWEHO Inyandiko Na: a Gishya Izina ry'idosiye:" + +# sfx2/source\appl\newhelp.src:STR_HELP_BUTTON_PRINT.text +#: shell/ev-window.c:1968 +msgid "Print..." +msgstr "Gucapa..." + +#: shell/ev-window.c:1969 +#, fuzzy +msgid "Print this document" +msgstr "iyi Inyandiko" + +#: shell/ev-window.c:1972 +#, fuzzy +msgid "Close this window" +msgstr "Funga iyi Idirishya" + +#: shell/ev-window.c:1977 +#, fuzzy +msgid "Copy text from the document" +msgstr "Umwandiko Bivuye i Inyandiko" + +# #-#-#-#-# padmin.pot (PACKAGE VERSION) #-#-#-#-# +# padmin/source\padialog.src:RID_FONTIMPORT_DIALOG.RID_FIMP_BTN_SELECTALL.text +# #-#-#-#-# padmin.pot (PACKAGE VERSION) #-#-#-#-# +# padmin/source\padialog.src:RID_ADDP_PAGE_OLDPRINTERS.RID_ADDP_OLD_BTN_SELECTALL.text +#: shell/ev-window.c:1979 +#, fuzzy +msgid "Select _All" +msgstr "Hitamo byose" + +#: shell/ev-window.c:1980 +#, fuzzy +msgid "Select the entire page" +msgstr "i Ipaji" + +#: shell/ev-window.c:1983 +#, fuzzy +msgid "Find a word or phrase in the document" +msgstr "a ijambo Cyangwa in i Inyandiko" + +#: shell/ev-window.c:1988 +#, fuzzy +msgid "Enlarge the document" +msgstr "i Inyandiko" + +#: shell/ev-window.c:1991 +#, fuzzy +msgid "Shrink the document" +msgstr "i Inyandiko" + +#: shell/ev-window.c:1994 +#, fuzzy +msgid "Reset the zoom level to the default value" +msgstr "i Ihindurangano urwego Kuri i Mburabuzi Agaciro" + +# sfx2/sdi\sfxslots.src:SID_RELOAD.text +#: shell/ev-window.c:1996 +#, fuzzy +msgid "_Reload" +msgstr "Kongera Gutangiza" + +#: shell/ev-window.c:1997 +#, fuzzy +msgid "Reload the document" +msgstr "Kongerakuyitangiza i Inyandiko" + +# sc/sdi\scslots.src:SID_PREVIEW_PREVIOUS.text +#. Go menu +#: shell/ev-window.c:2001 +#, fuzzy +msgid "_Previous Page" +msgstr "Ipaji ibanje" + +#: shell/ev-window.c:2002 +#, fuzzy +msgid "Go to the previous page" +msgstr "Kuri i Ibanjirije Ipaji" + +# sc/sdi\scslots.src:SID_PREVIEW_NEXT.text +#: shell/ev-window.c:2004 +#, fuzzy +msgid "_Next Page" +msgstr "Ipaji ikurikira" + +#: shell/ev-window.c:2005 +#, fuzzy +msgid "Go to the next page" +msgstr "Kuri i Komeza>> Ipaji" + +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Print.Sender..1.text +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Print.Logo..1.text +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Print.Tray.Page1.text +#: shell/ev-window.c:2007 +#, fuzzy +msgid "_First Page" +msgstr "Ipaji ibanza" + +#: shell/ev-window.c:2008 +#, fuzzy +msgid "Go to the first page" +msgstr "Kuri i Itangira Ipaji" + +# sc/sdi\scslots.src:SID_PREVIEW_LAST.text +#: shell/ev-window.c:2010 +#, fuzzy +msgid "_Last Page" +msgstr "Ipaji ya nyuma" + +#: shell/ev-window.c:2011 +#, fuzzy +msgid "Go to the last page" +msgstr "Kuri i Iheruka Ipaji" + +# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# +# sc/source\ui\dbgui\validate.src:TP_VALIDATION_INPUTHELP.FL_CONTENT.text +# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# +# sc/source\ui\dbgui\validate.src:TP_VALIDATION_ERROR.FL_CONTENT.text +# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# +# sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.TBX_CMD.IID_ZOOMOUT.text +# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# +# sc/source\ui\navipi\navipi.src:SCSTR_CONTENT_ROOT.text +#. Help menu +#: shell/ev-window.c:2015 +#, fuzzy +msgid "_Contents" +msgstr "Ibigize" + +#: shell/ev-window.c:2016 +#, fuzzy +msgid "Display help for the viewer application" +msgstr "Ifashayobora kugirango i Porogaramu" + +#: shell/ev-window.c:2019 +#, fuzzy +msgid "_About" +msgstr "Bigyanye" + +#: shell/ev-window.c:2020 +#, fuzzy +msgid "Display credits for the document viewer creators" +msgstr "kugirango i Inyandiko" + +#: shell/ev-window.c:2025 +#, fuzzy +msgid "Leave fullscreen mode" +msgstr "Ubwoko" + +#. View Menu +#: shell/ev-window.c:2032 +#, fuzzy +msgid "_Toolbar" +msgstr "Umwanyabikoresho" + +#: shell/ev-window.c:2033 +#, fuzzy +msgid "Show or hide the toolbar" +msgstr "Cyangwa Gushisha i Umwanyabikoresho" + +#: shell/ev-window.c:2035 +msgid "_Statusbar" +msgstr "" + +#: shell/ev-window.c:2036 +#, fuzzy +msgid "Show or hide the statusbar" +msgstr "Cyangwa Gushisha i" + +#: shell/ev-window.c:2038 +msgid "Side _pane" +msgstr "" + +#: shell/ev-window.c:2039 +#, fuzzy +msgid "Show or hide the side pane" +msgstr "Cyangwa Gushisha i" + +#: shell/ev-window.c:2041 +msgid "_Fullscreen" +msgstr "" + +#: shell/ev-window.c:2042 +#, fuzzy +msgid "Expand the window to fill the screen" +msgstr "i Idirishya Kuri Kuzuza i Mugaragaza" + +#: shell/ev-window.c:2044 +msgid "_Best Fit" +msgstr "" + +#: shell/ev-window.c:2045 +#, fuzzy +msgid "Make the current document fill the window" +msgstr "i KIGEZWEHO Inyandiko Kuzuza i Idirishya" + +#: shell/ev-window.c:2047 +msgid "Fit Page _Width" +msgstr "" + +#: shell/ev-window.c:2048 +#, fuzzy +msgid "Make the current document fill the window width" +msgstr "i KIGEZWEHO Inyandiko Kuzuza i Idirishya Ubugari" + +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/inc\globlmn.hrc:ITEM_FORMAT_PARA_LINESPACE_10.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\chardlg.src:RID_SVXPAGE_CHAR_EFFECTS.LB_UNDERLINE.2.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\chardlg.src:RID_SVXPAGE_CHAR_EFFECTS.LB_STRIKEOUT.2.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\paragrph.src:RID_SVXPAGE_STD_PARAGRAPH.LB_LINEDIST.1.text +# #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# +# svx/source\dialog\tabarea.src:RID_SVXPAGE_HATCH.LB_LINE_TYPE.1.text +#: shell/ev-window.c:2053 +msgid "Single" +msgstr "cyonyine" + +#: shell/ev-window.c:2054 +#, fuzzy +msgid "Show the document one page at a time" +msgstr "i Inyandiko Ipaji ku a Igihe" + +#: shell/ev-window.c:2056 +msgid "Multi" +msgstr "" + +#: shell/ev-window.c:2057 +#, fuzzy +msgid "Show the full document at once" +msgstr "i Inyandiko ku Rimwe" + +# basctl/source\basicide\basidesh.src:RID_STR_PAGE.text +#: shell/ev-window.c:2086 +msgid "Page" +msgstr "Ipaji" + +#: shell/ev-window.c:2087 +msgid "Select Page" +msgstr "" + +#. translators: this is the label for toolbar button +#: shell/ev-window.c:2100 +msgid "Previous" +msgstr "Ibanjirije" + +#: shell/ev-window.c:2105 +msgid "Next" +msgstr "Ikurikira" + +#. translators: this is the label for toolbar button +#: shell/ev-window.c:2108 +msgid "Fit Width" +msgstr "" + +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFont.Index.text +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCJK.Index.text +# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# +# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCTL.Index.text +#: shell/ev-window.c:2301 +msgid "Index" +msgstr "Umubarendanga" + +#: shell/ev-window.c:2308 +msgid "Thumbnails" +msgstr "" diff --git a/po/si.po b/po/si.po new file mode 100644 index 00000000..a621162a --- /dev/null +++ b/po/si.po @@ -0,0 +1,1363 @@ +# translation of si.po to Sinhala +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Danishka Navin <snavin@redhat.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: si\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-02 03:16+0100\n" +"PO-Revision-Date: 2007-08-02 12:03+0530\n" +"Last-Translator: Danishka Navin <snavin@redhat.com>\n" +"Language-Team: Sinhala <en@li.org>\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-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:150 +msgid "File corrupted." +msgstr "" + +#: ../backend/comics/comics-document.c:186 +#, c-format +msgid "No images found in archive %s" +msgstr "" + +#: ../backend/djvu/djvu-document.c:162 +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" + +#: ../backend/dvi/dvi-document.c:98 +msgid "File not available" +msgstr "ą¶ą·ą¶±ą·ą· ą¶·ą·ą·ą·ą¶ą¶ŗą· ą¶±ą·ą¶" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:687 + +msgid "Yes" +msgstr "ą¶ą·ą·" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:690 + +msgid "No" +msgstr "ą¶±ą·ą¶" + +#: ../backend/pdf/ev-poppler.cc:790 +msgid "Type 1" +msgstr "ą·ą¶»ą·āą¶ą¶ŗ 1" + +#: ../backend/pdf/ev-poppler.cc:792 +msgid "Type 1C" +msgstr "ą·ą¶»ą·āą¶ą¶ŗ 1C" + +#: ../backend/pdf/ev-poppler.cc:794 +msgid "Type 3" +msgstr "ą·ą¶»ą·āą¶ą¶ŗ 3" + +#: ../backend/pdf/ev-poppler.cc:796 +msgid "TrueType" +msgstr "ą·ą¶ą·āą¶ŗ ą·ą¶»ą·āą¶ą¶ŗ" + +#: ../backend/pdf/ev-poppler.cc:798 +msgid "Type 1 (CID)" +msgstr "ą·ą¶»ą·āą¶ą¶ŗ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:800 +msgid "Type 1C (CID)" +msgstr "ą·ą¶»ą·āą¶ą¶ŗ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:802 +msgid "TrueType (CID)" +msgstr "ą·ą¶ą·āą¶ŗ ą·ą¶»ą·āą¶ą¶ŗ (CID)" + +#: ../backend/pdf/ev-poppler.cc:804 +msgid "Unknown font type" +msgstr "ą¶±ą·ą¶Æą¶±ą·ą¶±ą· ą¶ ą¶ą·āą·ą¶» ą·ą¶»ą·āą¶ą¶ŗ" + +#: ../backend/pdf/ev-poppler.cc:830 + +msgid "No name" +msgstr "ą¶±ą¶øą¶ą· ą¶±ą·ą¶" + +#: ../backend/pdf/ev-poppler.cc:838 +msgid "Embedded subset" +msgstr "ą¶ą·ą·ą·ą¶Æą·ą¶Æą· ą¶ą¶“ ą¶ą·ą· ą¶ą¶ŗ" + +#: ../backend/pdf/ev-poppler.cc:840 +msgid "Embedded" +msgstr "ą¶ą·ą·ą·ą¶Æą·ą¶Æą·" + +#: ../backend/pdf/ev-poppler.cc:842 +msgid "Not embedded" +msgstr "ą¶ą·ą·ą·ą¶Æą·ą¶Æą· ą¶±ą·ą¶ą·" + +#: ../backend/impress/zip.c:52 +msgid "No error" +msgstr "ą¶Æą·ą· ą¶±ą·ą¶" + +#: ../backend/impress/zip.c:55 +msgid "Not enough memory" +msgstr "ą¶øą¶ą¶ą¶ŗ ą¶“ą·āą¶»ą¶øą·ą¶«ą·ą¶ą· ą¶±ą·ą¶" + +#: ../backend/impress/zip.c:58 +msgid "Cannot find zip signature" +msgstr "" + +#: ../backend/impress/zip.c:61 +msgid "Invalid zip file" +msgstr "ą·ą·ą·ą¶Æą·āą¶ŗ zip ą¶ą·ą¶±ą·ą·" + +#: ../backend/impress/zip.c:64 +msgid "Multi file zips are not supported" +msgstr "" + +#: ../backend/impress/zip.c:67 +msgid "Cannot open the file" +msgstr "ą¶ą·ą¶±ą·ą· ą·ą·ą·ą·ą¶ ą¶ą· ą¶±ą·ą·ą·ą¶" + +#: ../backend/impress/zip.c:70 +msgid "Cannot read data from file" +msgstr "ą¶ą·ą¶±ą·ą·ą·ą¶±ą· ą¶Æą¶ą·ą¶ ą¶ą·ą¶ŗą·ą·ą¶ŗ ą¶±ą·ą·ą·ą¶" + +#: ../backend/impress/zip.c:73 +msgid "Cannot find file in the zip archive" +msgstr "" + +#: ../backend/impress/zip.c:76 + +msgid "Unknown error" +msgstr "ą¶±ą·ą¶Æą¶±ą·ą¶±ą· ą¶Æą·ą·ą¶ŗą¶ą·" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "" + +#: ../backend/ps/gsdefaults.c:37 + +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 + +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 + +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 + +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 + +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 + +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "" + +#: ../backend/ps/ps-document.c:172 ../backend/ps/ps-document.c:186 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "" + +#: ../backend/ps/ps-document.c:233 +#, c-format +msgid "Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "" + +#: ../backend/ps/ps-document.c:250 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "" + +#: ../backend/ps/ps-document.c:439 +msgid "Encapsulated PostScript" +msgstr "" + +#: ../backend/ps/ps-document.c:440 +msgid "PostScript" +msgstr "" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "" + +#: ../backend/impress/impress-document.c:294 +msgid "Remote files aren't supported" +msgstr "" + +#: ../backend/impress/impress-document.c:305 +msgid "Invalid document" +msgstr "ą·ą·ą·ą¶Æą·āą¶ŗ ą¶½ą·ą¶ą¶±ą¶ŗ" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:316 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:348 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "" + +#: ../libdocument/ev-attachment.c:381 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "" + +#: ../libdocument/ev-document-factory.c:291 +#: ../libdocument/ev-document-factory.c:398 +msgid "Unknown MIME Type" +msgstr "ą¶±ą·ą¶Æą¶±ą·ą¶±ą· MIME ą·ą¶»ą·āą¶ą¶ŗ" + +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "" + +#: ../libdocument/ev-document-factory.c:439 +msgid "All Documents" +msgstr "ą·ą·ą¶ŗą· ą·ą¶ø ą¶½ą·ą¶ą¶±" + +#: ../libdocument/ev-document-factory.c:447 +msgid "PostScript Documents" +msgstr "" + +#: ../libdocument/ev-document-factory.c:457 +msgid "PDF Documents" +msgstr "PDF ą¶½ą·ą¶ą¶±" + +#: ../libdocument/ev-document-factory.c:467 ../shell/ev-window.c:4941 + +msgid "Images" +msgstr "ą¶“ą·ą· ą·ą¶¹ą·ą¶¶ą·" + +#: ../libdocument/ev-document-factory.c:477 +msgid "DVI Documents" +msgstr "DVI ą¶½ą·ą¶ą¶±" + +#: ../libdocument/ev-document-factory.c:487 +msgid "Djvu Documents" +msgstr "Djvu ą¶½ą·ą¶ą¶±" + +#: ../libdocument/ev-document-factory.c:497 +msgid "Comic Books" +msgstr "" + +#: ../libdocument/ev-document-factory.c:507 +msgid "Impress Slides" +msgstr "" + +#: ../libdocument/ev-document-factory.c:515 + +msgid "All Files" +msgstr "ą·ą·ą¶ŗą· ą·ą¶ø ą¶ą·ą¶±ą·" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:205 +#, c-format +msgid "Open ā%sā" +msgstr "ā%sā ą·ą·ą·ą·ą¶ ą¶ą¶»ą¶±ą·ą¶±" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:322 + +msgid "Empty" +msgstr "ą·ą·ą·ą·" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format + +msgid "Show ā_%sā" +msgstr "ā_%sā ą¶“ą·ą¶±ą·ą·ą¶±ą·ą¶±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 + +msgid "_Move on Toolbar" +msgstr "ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą¶»ą·ą· ą·ą·ą¶ ą¶ą·ą¶± ą¶ŗą¶±ą·ą¶± (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 + +msgid "Move the selected item on the toolbar" +msgstr "ą¶ą·ą¶»ą·ą¶ą¶ą· ą¶ ą¶ŗą·ą¶ą¶øą¶ŗ ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą¶»ą·ą· ą·ą·ą¶ ą¶ą·ą¶± ą¶ŗą¶±ą·ą¶±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 + +msgid "_Remove from Toolbar" +msgstr "ą¶øą·ą¶ ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą·ą·ą¶±ą· ą¶ą·ą¶ą· ą¶ą¶»ą¶±ą·ą¶± (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 + +msgid "Remove the selected item from the toolbar" +msgstr "ą¶ą·ą¶»ą·ą¶ą¶ą· ą¶ ą¶ŗą·ą¶ą¶øą¶ŗ ą¶øą·ą¶ ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą·ą·ą¶±ą· ą¶ą·ą¶ą· ą¶ą¶»ą¶±ą·ą¶±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 + +msgid "_Delete Toolbar" +msgstr "ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą· ą¶øą¶ą¶±ą·ą¶± (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 + +msgid "Remove the selected toolbar" +msgstr "ą¶ą·ą¶»ą·ą¶ą¶ą· ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą· ą¶ą·ą¶ą· ą¶ą¶»ą¶±ą·ą¶±" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:439 + +msgid "Separator" +msgstr "ą·ą·ą¶±ą¶ą¶»ą¶±ą¶ŗ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4531 +msgid "Best Fit" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 + +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 + +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 + +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 + +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 + +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 + +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3683 +#: ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "ą¶½ą·ą¶ą¶± ą¶Æą·ą·ą¶±" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "ą¶»ą·ą·ą·ą¶“ą¶Æ ą¶ą¶ą·ą· ą¶ą· ą¶ą·ą¶»ą·ą¶øą·" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "" + +#: ../data/evince-password.glade.h:4 + +msgid "_Password:" +msgstr "ą¶»ą·ą·ą·ą¶“ą¶Æą¶ŗ: (_P)" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>ą¶ą¶ą·:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>ą¶±ą·ą¶»ą·ą¶øą·ą¶«ą¶ŗ ą¶ą· ą¶Æą·ą¶±ą¶ŗ:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>ą·ą¶ą¶ŗą·ą¶ą·ą¶ŗ:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>ą¶±ą·ą·ą·ą¶“ą·ą¶Æą¶:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>ą¶ą¶»ą¶ą·āą·ą·ą·:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>ą·ą·ą·ą¶ŗ:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>ą·ą·ą¶»ą·ą·ą¶ą¶½ą¶ŗ:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" + +#: ../properties/ev-properties-main.c:110 + +msgid "Document" +msgstr "ą¶½ą·ą¶ą¶±" + +#: ../properties/ev-properties-view.c:182 + +msgid "None" +msgstr "ą¶ą·ą·ą·ą·ą¶ą· ą¶±ą·ą¶" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "ą¶“ą·ą¶»ą¶±ą·ą¶øą·ą¶ŗ:mm" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "" + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "ą·ą·ą¶ŗą¶±ą·ą¶±:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "" + +#: ../shell/ev-password.c:149 + +msgid "Enter password" +msgstr "ą¶»ą·ą·ą·ą¶“ą¶Æą¶ŗ ą¶ą¶ą·ą· ą¶ą· ą¶ą¶»ą¶±ą·ą¶±" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "" + +#: ../shell/ev-properties-dialog.c:61 + +msgid "Properties" +msgstr "ą·ą¶ą·ą¶ą¶øą·" + +#: ../shell/ev-properties-dialog.c:94 + +msgid "General" +msgstr "ą·ą·ą¶øą·ą¶±ą·āą¶ŗ" + +#: ../shell/ev-properties-dialog.c:104 + +msgid "Fonts" +msgstr "ą¶ ą¶ą·ą¶»ą·" + +#: ../shell/ev-properties-fonts.c:141 + +msgid "Font" +msgstr "ą¶ ą¶ą·āą·ą¶»" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "" + +#: ../shell/ev-sidebar-attachments.c:670 + +msgid "Attachments" +msgstr "ą¶ą¶øą·ą¶«ą·ą¶øą·" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3446 + +msgid "Loading..." +msgstr "ą¶“ą·ą¶»ą¶«ą¶ŗ ą·ą·ą¶øą·ą¶±ą·..." + +#: ../shell/ev-sidebar-links.c:342 + +msgid "Print..." +msgstr "ą¶øą·ą¶Æą·āą¶»ą¶«ą¶ŗ..." + +#: ../shell/ev-sidebar-links.c:722 +msgid "Index" +msgstr "ą¶“ą¶§ą·ą¶±" + +#: ../shell/ev-sidebar-thumbnails.c:733 +msgid "Thumbnails" +msgstr "" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "" + +#: ../shell/ev-view.c:1422 +msgid "Go to first page" +msgstr "" + +#: ../shell/ev-view.c:1424 +msgid "Go to previous page" +msgstr "" + +#: ../shell/ev-view.c:1426 +msgid "Go to next page" +msgstr "" + +#: ../shell/ev-view.c:1428 +msgid "Go to last page" +msgstr "" + +#: ../shell/ev-view.c:1430 +msgid "Go to page" +msgstr "" + +#: ../shell/ev-view.c:1432 + +msgid "Find" +msgstr "ą·ą·ą¶ŗą¶±ą·ą¶±" + +#: ../shell/ev-view.c:1460 +#, c-format +msgid "Go to page %s" +msgstr "" + +#: ../shell/ev-view.c:1466 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "" + +#: ../shell/ev-view.c:1469 +#, c-format +msgid "Go to file ā%sā" +msgstr "" + +#: ../shell/ev-view.c:1477 +#, c-format +msgid "Launch %s" +msgstr "" + +#: ../shell/ev-view.c:2412 +msgid "End of presentation. Press Escape to exit." +msgstr "" + +#: ../shell/ev-view.c:3168 +msgid "Jump to page:" +msgstr "" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:4817 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "" +msgstr[1] "" + +#: ../shell/ev-view.c:4826 +#, c-format +msgid "%3d%% remaining to search" +msgstr "" + +#: ../shell/ev-window.c:737 +#, c-format +msgid "Page %s - %s" +msgstr "ą¶“ą·ą¶§ą·ą· %s - %s" + +#: ../shell/ev-window.c:739 +#, c-format +msgid "Page %s" +msgstr "%s ą¶“ą·ą¶§ą·ą·" + +#: ../shell/ev-window.c:1347 +msgid "Unable to open document" +msgstr "" + +#: ../shell/ev-window.c:1536 +msgid "Open Document" +msgstr "ą¶½ą·ą¶ą¶±ą¶ŗ ą·ą·ą·ą·ą¶ ą¶ą¶»ą¶±ą·ą¶±" + +#: ../shell/ev-window.c:1598 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "" + +#: ../shell/ev-window.c:1627 +msgid "Cannot open a copy." +msgstr "" + +#: ../shell/ev-window.c:1909 ../shell/ev-window.c:1996 +#: ../shell/ev-window.c:2052 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "" + +#: ../shell/ev-window.c:1992 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "" + +#: ../shell/ev-window.c:2096 +msgid "Save a Copy" +msgstr "ą¶“ą·ą¶§ą¶“ą¶ą¶ą· ą·ą·ą¶»ą¶ą·ą¶±ą·ą¶±" + +#: ../shell/ev-window.c:2186 ../shell/ev-window.c:3384 +msgid "Failed to print document" +msgstr "" + +#: ../shell/ev-window.c:2346 ../shell/ev-window.c:2525 +msgid "Printing is not supported on this printer." +msgstr "" + +#: ../shell/ev-window.c:2461 ../shell/ev-window.c:2576 +#: ../shell/ev-window.c:4340 + +msgid "Print" +msgstr "ą¶øą·ą¶Æą·āą¶»ą¶«ą¶ŗ" + +#: ../shell/ev-window.c:2515 +msgid "Generating PDF is not supported" +msgstr "" + +#: ../shell/ev-window.c:2527 +#, c-format +msgid "" +"You were trying to print to a printer using the ā%sā driver. This program " +"requires a PostScript printer driver." +msgstr "" + +#: ../shell/ev-window.c:2585 +msgid "Pages" +msgstr "" + +#: ../shell/ev-window.c:3167 + +msgid "Toolbar Editor" +msgstr "ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą· ą·ą¶ą·ą¶±ą¶ŗ" + +#: ../shell/ev-window.c:3679 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" + +#: ../shell/ev-window.c:3707 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" + +#: ../shell/ev-window.c:3711 +msgid "" +"Evince 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.\n" +msgstr "" + +#: ../shell/ev-window.c:3715 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../shell/ev-window.c:3739 ../shell/main.c:331 +msgid "Evince" +msgstr "" + +#: ../shell/ev-window.c:3742 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "" + +#: ../shell/ev-window.c:3748 + +msgid "translator-credits" +msgstr "ą¶“ą¶»ą·ą·ą¶»ą·ą¶ą¶± ą·ą·ą¶ą·ą¶ą·ą¶ŗ" + +#: ../shell/ev-window.c:4251 + +msgid "_File" +msgstr "ą¶ą·ą¶±ą· (_F)" + +#: ../shell/ev-window.c:4252 + +msgid "_Edit" +msgstr "ą·ą·ą¶ą·ą·ą¶øą· (_E)" + +#: ../shell/ev-window.c:4253 + +msgid "_View" +msgstr "ą¶Æą·ą·ą¶± (_V)" + +#: ../shell/ev-window.c:4254 + +msgid "_Go" +msgstr "ą¶ŗą¶±ą·ą¶± (_G)" + +#: ../shell/ev-window.c:4255 + +msgid "_Help" +msgstr "ą¶ą¶Æą·ą· (_H)" + +#. File menu +#: ../shell/ev-window.c:4258 ../shell/ev-window.c:4436 + +msgid "_Open..." +msgstr "ą·ą·ą·ą·ą¶ ą¶ą¶»ą¶±ą·ą¶±... (_O)" + +#: ../shell/ev-window.c:4259 +msgid "Open an existing document" +msgstr "" + +#: ../shell/ev-window.c:4261 +msgid "Op_en a Copy" +msgstr "" + +#: ../shell/ev-window.c:4262 +msgid "Open a copy of the current document in a new window" +msgstr "" + +#: ../shell/ev-window.c:4264 ../shell/ev-window.c:4438 +msgid "_Save a Copy..." +msgstr "" + +#: ../shell/ev-window.c:4265 +msgid "Save a copy of the current document" +msgstr "" + +#: ../shell/ev-window.c:4267 +msgid "Print Set_up..." +msgstr "" + +#: ../shell/ev-window.c:4268 +msgid "Setup the page settings for printing" +msgstr "" + +#: ../shell/ev-window.c:4270 + +msgid "_Print..." +msgstr "ą¶øą·ą¶Æą·āą¶»ą¶«ą¶ŗ... (_P)" + +#: ../shell/ev-window.c:4271 ../shell/ev-window.c:4341 +msgid "Print this document" +msgstr "" + +#: ../shell/ev-window.c:4273 + +msgid "P_roperties" +msgstr "ą¶ ą¶ą¶ą¶ŗą¶±ą· (_r)" + +#: ../shell/ev-window.c:4282 ../shell/ev-window.c:4284 + +msgid "Select _All" +msgstr "ą·ą·ą¶ŗą¶½ą·ą¶½ ą¶ą·ą¶»ą¶±ą·ą¶± (_A)" + +#: ../shell/ev-window.c:4287 + +msgid "_Find..." +msgstr "ą·ą·ą¶ŗą¶±ą·ą¶±... (_F)" + +#: ../shell/ev-window.c:4288 +msgid "Find a word or phrase in the document" +msgstr "" + +#: ../shell/ev-window.c:4290 + +msgid "Find Ne_xt" +msgstr "ą¶øą·ą· ą¶ ą·ą·ą·ą·ą¶ø (_x)" + +#: ../shell/ev-window.c:4292 + +msgid "Find Pre_vious" +msgstr "ą¶“ą·ą¶» ą·ą·ą·ą·ą¶ø (_x)" + +#: ../shell/ev-window.c:4294 + +msgid "T_oolbar" +msgstr "ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą· (_o)" + +#: ../shell/ev-window.c:4296 +msgid "Rotate _Left" +msgstr "" + +#: ../shell/ev-window.c:4298 +msgid "Rotate _Right" +msgstr "" + +#: ../shell/ev-window.c:4303 +msgid "Enlarge the document" +msgstr "" + +#: ../shell/ev-window.c:4306 +msgid "Shrink the document" +msgstr "" + +#: ../shell/ev-window.c:4308 + +msgid "_Reload" +msgstr "ą¶“ą·āą¶»ą¶ą·ą¶“ą·ą¶»ą¶«ą¶ŗ (_R)" + +#: ../shell/ev-window.c:4309 +msgid "Reload the document" +msgstr "" + +#. Go menu +#: ../shell/ev-window.c:4313 +msgid "_Previous Page" +msgstr "" + +#: ../shell/ev-window.c:4314 +msgid "Go to the previous page" +msgstr "" + +#: ../shell/ev-window.c:4316 +msgid "_Next Page" +msgstr "" + +#: ../shell/ev-window.c:4317 +msgid "Go to the next page" +msgstr "" + +#: ../shell/ev-window.c:4319 +msgid "_First Page" +msgstr "" + +#: ../shell/ev-window.c:4320 +msgid "Go to the first page" +msgstr "" + +#: ../shell/ev-window.c:4322 +msgid "_Last Page" +msgstr "" + +#: ../shell/ev-window.c:4323 +msgid "Go to the last page" +msgstr "" + +#. Help menu +#: ../shell/ev-window.c:4327 + +msgid "_Contents" +msgstr "ą¶ ą¶±ą·ą¶ą¶»ą·ą¶ą¶ (_C)" + +#: ../shell/ev-window.c:4330 + +msgid "_About" +msgstr "ą·ą¶øą·ą¶¶ą¶±ą·ą¶°ą· (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:4334 +msgid "Leave Fullscreen" +msgstr "" + +#: ../shell/ev-window.c:4335 +msgid "Leave fullscreen mode" +msgstr "" + +#: ../shell/ev-window.c:4337 +msgid "Start Presentation" +msgstr "" + +#: ../shell/ev-window.c:4338 +msgid "Start a presentation" +msgstr "" + +#. View Menu +#: ../shell/ev-window.c:4392 + +msgid "_Toolbar" +msgstr "ą¶øą·ą·ą¶½ą¶øą· ą¶“ą·ą·ą¶»ą·ą· (_T)" + +#: ../shell/ev-window.c:4393 +msgid "Show or hide the toolbar" +msgstr "" + +#: ../shell/ev-window.c:4395 + +msgid "Side _Pane" +msgstr "ą¶“ą·ą¶ą· ą¶“ą·ą·ą¶»ą·ą· (_P)" + +#: ../shell/ev-window.c:4396 +msgid "Show or hide the side pane" +msgstr "" + +#: ../shell/ev-window.c:4398 +msgid "_Continuous" +msgstr "" + +#: ../shell/ev-window.c:4399 +msgid "Show the entire document" +msgstr "" + +#: ../shell/ev-window.c:4401 +msgid "_Dual" +msgstr "" + +#: ../shell/ev-window.c:4402 +msgid "Show two pages at once" +msgstr "" + +#: ../shell/ev-window.c:4404 + +msgid "_Fullscreen" +msgstr "ą·ą¶øą·ą¶“ą·ą¶»ą·ą¶« ą¶ą·ą¶»ą¶ŗ (_F)" + +#: ../shell/ev-window.c:4405 +msgid "Expand the window to fill the screen" +msgstr "" + +#: ../shell/ev-window.c:4407 +msgid "_Presentation" +msgstr "" + +#: ../shell/ev-window.c:4408 +msgid "Run document as a presentation" +msgstr "" + +#: ../shell/ev-window.c:4410 +msgid "_Best Fit" +msgstr "" + +#: ../shell/ev-window.c:4411 +msgid "Make the current document fill the window" +msgstr "" + +#: ../shell/ev-window.c:4413 +msgid "Fit Page _Width" +msgstr "" + +#: ../shell/ev-window.c:4414 +msgid "Make the current document fill the window width" +msgstr "" + +#. Links +#: ../shell/ev-window.c:4421 + +msgid "_Open Link" +msgstr "ą¶“ą·ą¶»ą·ą¶ ą·ą·ą·ą·ą¶ ą¶ą¶»ą¶±ą·ą¶± (_O)" + +#: ../shell/ev-window.c:4423 + +msgid "_Go To" +msgstr "ą·ą·ą¶ą¶§ ą¶ŗą¶±ą·ą¶± (_G)" + +#: ../shell/ev-window.c:4425 + +msgid "Open in New _Window" +msgstr "ą¶±ą· ą¶ą·ą·ą· ą·ą·ą¶ ą·ą·ą·ą·ą¶ ą¶ą¶»ą¶±ą·ą¶± (_W)" + +#: ../shell/ev-window.c:4427 + +msgid "_Copy Link Address" +msgstr "ą¶“ą·ą¶»ą·ą¶ą· ą¶½ą·ą¶“ą·ą¶±ą¶ŗ ą¶“ą·ą¶§ą¶“ą¶ą· ą¶ą¶»ą¶±ą·ą¶± (_C)" + +#: ../shell/ev-window.c:4429 +msgid "_Save Image As..." +msgstr "" + +#: ../shell/ev-window.c:4431 +msgid "Copy _Image" +msgstr "" + +#: ../shell/ev-window.c:4470 + +msgid "Page" +msgstr "ą¶“ą·ą¶§ą·ą·" + +#: ../shell/ev-window.c:4471 +msgid "Select Page" +msgstr "ą¶“ą·ą¶§ą·ą· ą¶ą·ą¶»ą¶±ą·ą¶±" + +#: ../shell/ev-window.c:4482 + +msgid "Zoom" +msgstr "ą·ą·ą·ą·ą¶½ą¶«ą¶ŗ" + +#: ../shell/ev-window.c:4484 +msgid "Adjust the zoom level" +msgstr "" + +#: ../shell/ev-window.c:4494 +msgid "Navigation" +msgstr "" + +#: ../shell/ev-window.c:4496 +msgid "Back" +msgstr "ą¶“ą·ą·ą¶“ą·ą¶§" + +#: ../shell/ev-window.c:4498 +msgid "Move across visited pages" +msgstr "" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4514 + +msgid "Previous" +msgstr "ą¶“ą·ą¶»" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4519 + +msgid "Next" +msgstr "ą¶øą·ą· ą¶" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4523 + +msgid "Zoom In" +msgstr "ą·ą·ą·ą·ą¶½ ą¶ą¶»ą¶±ą·ą¶±" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4527 + +msgid "Zoom Out" +msgstr "ą¶ą·ą¶©ą· ą¶ą¶»ą¶±ą·ą¶±" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4535 +msgid "Fit Width" +msgstr "" + +#: ../shell/ev-window.c:4723 +msgid "Unable to open external link" +msgstr "" + +#: ../shell/ev-window.c:4725 +#, c-format +msgid "Invalid URI: ā%sā" +msgstr "" + +#: ../shell/ev-window.c:4893 +msgid "The image could not be saved." +msgstr "" + +#: ../shell/ev-window.c:4928 + +msgid "Save Image" +msgstr "ą¶“ą·ą· ą·ą¶¹ą·ą¶¶ą·ą· ą·ą·ą¶»ą¶ą·ą¶±ą·ą¶±" + +#: ../shell/ev-window.c:4984 +msgid "Unable to open attachment" +msgstr "" + +#: ../shell/ev-window.c:5037 +msgid "The attachment could not be saved." +msgstr "" + +#: ../shell/ev-window.c:5089 +msgid "Save Attachment" +msgstr "" + +#: ../shell/ev-window-title.c:139 +#, c-format +msgid "%s - Password Required" +msgstr "%s - ą¶»ą·ą·ą·ą¶“ą¶Æą¶ŗ ą¶ ą·ą·ą·āą¶ŗą·ą·" + +#: ../shell/main.c:59 +msgid "The page of the document to display." +msgstr "" + +#: ../shell/main.c:59 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:60 +msgid "Run evince in fullscreen mode" +msgstr "" + +#: ../shell/main.c:61 +msgid "Run evince in presentation mode" +msgstr "" + +#: ../shell/main.c:62 +msgid "Run evince as a previewer" +msgstr "" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../shell/main.c:314 +msgid "MATE Document Viewer" +msgstr "" + +#: ../shell/main.c:374 +msgid "Evince Document Viewer" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" + diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 00000000..f18661e3 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,1323 @@ +# translation of sk.po to Slovak +# Slovak translation of evince. +# Copyright (C) 2005, 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# +# $Id: sk.po,v 1.1 2005/06/25 23:45:27 marcel Exp $ +# +# MĆ”rio VrablanskĆ½ <vrablansky@gmail.com>, 2005. +# Peter Tuharsky <tuharsky@misbb.sk>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: sk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-09-13 22:21+0200\n" +"PO-Revision-Date: 2007-09-09 20:09+0100\n" +"Last-Translator: Peter TuhĆ”rsky <tuharsky@misbb.sk>\n" +"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural= (n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" +"X-Generator: KBabel 1.11.4\n" +"X-Poedit-Country: SLOVAKIA\n" + +#: ../backend/comics/comics-document.c:150 +msgid "File corrupted." +msgstr "SĆŗbor je poÅ”kodenĆ½." + +#: ../backend/comics/comics-document.c:186 +#, c-format +msgid "No images found in archive %s" +msgstr "V archĆve %s sa nenaÅ”li žiadne obrĆ”zky" + +#: ../backend/djvu/djvu-document.c:165 +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" +"Dokument je tvorenĆ½ viacerĆ½mi sĆŗbormi. Jeden alebo viacero z nich nie je " +"dostupnĆ½ch." + +#: ../backend/dvi/dvi-document.c:98 +msgid "File not available" +msgstr "SĆŗbor nie je dostupnĆ½" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Dokument DVI nemĆ” sprĆ”vny formĆ”t" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:675 +msgid "Yes" +msgstr "Ćno" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:678 +msgid "No" +msgstr "Nie" + +#: ../backend/pdf/ev-poppler.cc:751 +msgid "Type 1" +msgstr "Typ 1" + +#: ../backend/pdf/ev-poppler.cc:753 +msgid "Type 1C" +msgstr "Typ 1C" + +#: ../backend/pdf/ev-poppler.cc:755 +msgid "Type 3" +msgstr "Typ 3" + +#: ../backend/pdf/ev-poppler.cc:757 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:759 +msgid "Type 1 (CID)" +msgstr "Typ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:761 +msgid "Type 1C (CID)" +msgstr "Typ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:763 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Unknown font type" +msgstr "NeznĆ”my typ pĆsma" + +#: ../backend/pdf/ev-poppler.cc:791 +msgid "No name" +msgstr "Bez mena" + +#: ../backend/pdf/ev-poppler.cc:799 +msgid "Embedded subset" +msgstr "ZabudovanĆ” podmnožina" + +#: ../backend/pdf/ev-poppler.cc:801 +msgid "Embedded" +msgstr "ZabudovanĆ”" + +#: ../backend/pdf/ev-poppler.cc:803 +msgid "Not embedded" +msgstr "Nie je zabudovanĆ”" + +#: ../backend/impress/zip.c:52 +msgid "No error" +msgstr "Bez chyby" + +#: ../backend/impress/zip.c:55 +msgid "Not enough memory" +msgstr "Nedostatok pamƤti" + +#: ../backend/impress/zip.c:58 +msgid "Cannot find zip signature" +msgstr "NemĆ“Å¾em nĆ”jsÅ„ podpis zip" + +#: ../backend/impress/zip.c:61 +msgid "Invalid zip file" +msgstr "NeplatnĆ½ sĆŗbor zip" + +#: ../backend/impress/zip.c:64 +msgid "Multi file zips are not supported" +msgstr "Viacero sĆŗborov zip nie je podporovanĆ½ch" + +#: ../backend/impress/zip.c:67 +msgid "Cannot open the file" +msgstr "NemĆ“Å¾em otvoriÅ„ tento sĆŗbor" + +#: ../backend/impress/zip.c:70 +msgid "Cannot read data from file" +msgstr "NemĆ“Å¾em ÄĆtaÅ„ Ćŗdaje zo sĆŗboru" + +#: ../backend/impress/zip.c:73 +msgid "Cannot find file in the zip archive" +msgstr "Neviem nĆ”jsÅ„ sĆŗbor v archĆve zip" + +#: ../backend/impress/zip.c:76 +msgid "Unknown error" +msgstr "NeznĆ”ma chyba" + +#: ../backend/ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ../backend/ps/gsdefaults.c:31 +msgid "Letter" +msgstr "Letter" + +#: ../backend/ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Tabloid" + +#: ../backend/ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ../backend/ps/gsdefaults.c:34 +msgid "Legal" +msgstr "Legal" + +#: ../backend/ps/gsdefaults.c:35 +msgid "Statement" +msgstr "Statement" + +#: ../backend/ps/gsdefaults.c:36 +msgid "Executive" +msgstr "Executive" + +#: ../backend/ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ../backend/ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ../backend/ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ../backend/ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ../backend/ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ../backend/ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ../backend/ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ../backend/ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ../backend/ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Folio" + +#: ../backend/ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ../backend/ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ../backend/ps/ps-document.c:172 ../backend/ps/ps-document.c:186 +#, c-format +msgid "Cannot open file ā%sā." +msgstr "NemĆ“Å¾em otvoriÅ„ sĆŗbor ā%sā." + +#: ../backend/ps/ps-document.c:233 +#, c-format +msgid "" +"Failed to load document ā%sā. Ghostscript interpreter was not found in path" +msgstr "" +"Zlyhalo naÄĆtanie dokumentu ā%sā. Ghostscript interpreter sa nenaÅ”iel na " +"svojom mieste" + +#: ../backend/ps/ps-document.c:250 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Zlyhalo otvorenie dokumentu ā%sā" + +#: ../backend/ps/ps-document.c:433 +msgid "Encapsulated PostScript" +msgstr "ZapuzdrenĆ½ PostScript" + +#: ../backend/ps/ps-document.c:434 +msgid "PostScript" +msgstr "PostScript" + +#: ../backend/ps/ps-interpreter.c:543 +msgid "Interpreter failed." +msgstr "Interpreter zlyhal." + +#: ../backend/impress/impress-document.c:294 +msgid "Remote files aren't supported" +msgstr "VzdialenĆ© sĆŗbory nie sĆŗ podporovanĆ©" + +#: ../backend/impress/impress-document.c:305 +msgid "Invalid document" +msgstr "NeplatnĆ½ dokument" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:316 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Nepodarilo sa uložiÅ„ prĆlohu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:348 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Nepodarilo sa otvoriÅ„ prĆlohu ā%sā: %s" + +#: ../libdocument/ev-attachment.c:381 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Nepodarilo sa otvoriÅ„ prĆlohu ā%sā" + +#: ../libdocument/ev-document-factory.c:291 +#: ../libdocument/ev-document-factory.c:398 +msgid "Unknown MIME Type" +msgstr "NeznĆ”my typ MIME" + +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unhandled MIME type: ā%sā" +msgstr "NepodporovanĆ½ typ MIME: ā%sā" + +#: ../libdocument/ev-document-factory.c:439 +msgid "All Documents" +msgstr "VÅ”etky dokumenty" + +#: ../libdocument/ev-document-factory.c:447 +msgid "PostScript Documents" +msgstr "Dokumenty v PostScripte" + +#: ../libdocument/ev-document-factory.c:457 +msgid "PDF Documents" +msgstr "Dokumenty PDF" + +#: ../libdocument/ev-document-factory.c:467 ../shell/ev-window.c:4950 +msgid "Images" +msgstr "ObrĆ”zky" + +#: ../libdocument/ev-document-factory.c:477 +msgid "DVI Documents" +msgstr "Dokumenty DVI" + +#: ../libdocument/ev-document-factory.c:487 +msgid "Djvu Documents" +msgstr "Dokumenty Djvu" + +#: ../libdocument/ev-document-factory.c:497 +msgid "Comic Books" +msgstr "VtipnĆ© knihy" + +#: ../libdocument/ev-document-factory.c:507 +msgid "Impress Slides" +msgstr "PrezentĆ”cie z Impress" + +#: ../libdocument/ev-document-factory.c:515 +msgid "All Files" +msgstr "VÅ”etky sĆŗbory" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:205 +#, c-format +msgid "Open ā%sā" +msgstr "OtvoriÅ„ ā%sā" + +#: ../cut-n-paste/recent-files/egg-recent-view-uimanager.c:322 +msgid "Empty" +msgstr "PrĆ”zdny" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "ZobraziÅ„ ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "_PresunĆŗÅ„ na paneli nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "PresunĆŗÅ„ vybranĆŗ položku na paneli nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "_OstrĆ”niÅ„ z panelu nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "OdstrĆ”niÅ„ vybranĆŗ položku z panelu nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "_OdstrĆ”niÅ„ panel nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "_OdstrĆ”niÅ„ vybranĆ½ panel nĆ”strojov" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "OddeľovaÄ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "BeÅ¾Ć v režime prezentĆ”cie" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4538 +msgid "Best Fit" +msgstr "PrispĆ“sobiÅ„" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "PrispĆ“sobiÅ„ Å”Ćrke strany" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3669 +#: ../shell/ev-window-title.c:126 +msgid "Document Viewer" +msgstr "PrehliadaÄ dokumentov" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "ZobraziÅ„ viacstranovĆ© dokumenty" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "Položka hesla" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "ZapamƤtaÅ„ heslo pre tĆŗto relĆ”ciu" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "UložiÅ„ heslo v zvƤzku kľĆŗÄov" + +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_Heslo:" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Autor:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>VytvorenĆ©:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Tvorca:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>FormĆ”t:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>KľĆŗÄovĆ© slovĆ”:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>ZmenenĆ©:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>PoÄet strĆ”n:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>OptimalizovanĆ©:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>VeľkosÅ„ papiera:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>Vyrobil:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>BezpeÄnosÅ„:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Predmet:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>Nadpis:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "PrekonaÅ„ obmedzenia dokumentu" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"PrekonaÅ„ obmedzenia dokumentu, naprĆklad obmedzenia na kopĆrovanie alebo " +"tlaÄ." + +#: ../properties/ev-properties-main.c:110 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:182 +msgid "None" +msgstr "Žiadny" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:207 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "predvolenĆ©:mm" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f palca" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Na vĆ½Å”ku (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Na Å”Ćrku (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f pal" + +#: ../shell/eggfindbar.c:158 +msgid "Search string" +msgstr "HľadaÅ„ reÅ„azec" + +#: ../shell/eggfindbar.c:159 +msgid "The name of the string to be found" +msgstr "NĆ”zov reÅ„azca, ktorĆ½ sa mĆ” hľadaÅ„ " + +#: ../shell/eggfindbar.c:172 +msgid "Case sensitive" +msgstr "RozliÅ”ovaÅ„ veľkĆ© a malĆ© pĆsmenĆ”" + +#: ../shell/eggfindbar.c:173 +msgid "TRUE for a case sensitive search" +msgstr "TRUE (Ćno) pre rozliÅ”ovanie veľkĆ½ch a malĆ½ch pĆsmen" + +#: ../shell/eggfindbar.c:180 +msgid "Highlight color" +msgstr "Farba pre zvĆ½razÅovanie" + +#: ../shell/eggfindbar.c:181 +msgid "Color of highlight for all matches" +msgstr "Farba pre zvĆ½razÅovanie vÅ”etkĆ½ch zhĆ“d" + +#: ../shell/eggfindbar.c:187 +msgid "Current color" +msgstr "AktuĆ”lna farba" + +#: ../shell/eggfindbar.c:188 +msgid "Color of highlight for the current match" +msgstr "Farba pre zvĆ½razÅovanie aktuĆ”lnej zhody" + +#: ../shell/eggfindbar.c:321 +msgid "Find:" +msgstr "NĆ”jsÅ„:" + +#: ../shell/eggfindbar.c:330 +msgid "Find Previous" +msgstr "NĆ”jsÅ„ predchĆ”dzajĆŗce" + +#: ../shell/eggfindbar.c:334 ../shell/eggfindbar.c:337 +msgid "Find previous occurrence of the search string" +msgstr "HladaÅ„ predchĆ”dzajĆŗci vĆ½skyt slova alebo frĆ”zy" + +#: ../shell/eggfindbar.c:343 +msgid "Find Next" +msgstr "HľadaÅ„ ÄalÅ”iu" + +#: ../shell/eggfindbar.c:347 ../shell/eggfindbar.c:350 +msgid "Find next occurrence of the search string" +msgstr "HľadaÅ„ nĆ”sledujĆŗci vĆ½skyt slova alebo frĆ”zy" + +#: ../shell/eggfindbar.c:359 +msgid "C_ase Sensitive" +msgstr "_RozliÅ”ovaÅ„ veľkĆ© a malĆ© pĆsmenĆ”" + +#: ../shell/eggfindbar.c:363 ../shell/eggfindbar.c:366 +msgid "Toggle case sensitive search" +msgstr "PrepĆnanie rozliÅ”ovania veľkĆ½ch a malĆ½ch pĆsmen" + +#: ../shell/ev-jobs.c:642 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Zlyhalo vytvorenie sĆŗboru ā%sā: %s" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d z %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "z %d" + +#: ../shell/ev-password.c:83 +msgid "Password required" +msgstr "PotrebnĆ© je heslo" + +#: ../shell/ev-password.c:84 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokument ā%sā je zamknutĆ½ a pre otvorenie je potrebnĆ© heslo." + +#: ../shell/ev-password.c:149 +msgid "Enter password" +msgstr "Zadajte heslo" + +#: ../shell/ev-password.c:252 +#, c-format +msgid "Password for document %s" +msgstr "Heslo pre dokument %s" + +#: ../shell/ev-password.c:334 +msgid "Incorrect password" +msgstr "NesprĆ”vne heslo" + +#: ../shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Dokument je zamknutĆ½ a je možnĆ© ho ÄĆtaÅ„ až po zadanĆ sprĆ”vneho hesla " + +#: ../shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_OdomknĆŗÅ„ dokument" + +#: ../shell/ev-properties-dialog.c:61 +msgid "Properties" +msgstr "Vlastnosti" + +#: ../shell/ev-properties-dialog.c:94 +msgid "General" +msgstr "HlavnĆ½" + +#: ../shell/ev-properties-dialog.c:104 +msgid "Fonts" +msgstr "PĆsma" + +#: ../shell/ev-properties-fonts.c:141 +msgid "Font" +msgstr "PĆsmo" + +#: ../shell/ev-properties-fonts.c:152 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "ZhromažÄujem informĆ”cie o pĆsmach... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:670 +msgid "Attachments" +msgstr "PrĆlohy" + +#: ../shell/ev-sidebar-links.c:266 ../shell/ev-view.c:3491 +msgid "Loading..." +msgstr "NaÄĆtavam..." + +#: ../shell/ev-sidebar-links.c:342 +msgid "Print..." +msgstr "TlaÄ..." + +#: ../shell/ev-sidebar-links.c:722 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:729 +msgid "Thumbnails" +msgstr "NĆ”hľady" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Up" +msgstr "Posun nahor" + +#: ../shell/ev-view-accessible.c:43 +msgid "Scroll Down" +msgstr "Posun nadol" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Up" +msgstr "PosunĆŗÅ„ obraz hore" + +#: ../shell/ev-view-accessible.c:50 +msgid "Scroll View Down" +msgstr "PosunĆŗÅ„ obraz dole" + +#: ../shell/ev-view-accessible.c:536 +msgid "Document View" +msgstr "Prehliadanie dokumentu" + +#: ../shell/ev-view.c:1423 +msgid "Go to first page" +msgstr "ChoÄ na prvĆŗ stranu" + +#: ../shell/ev-view.c:1425 +msgid "Go to previous page" +msgstr "ChoÄ na predchĆ”dzajĆŗcu stranu" + +#: ../shell/ev-view.c:1427 +msgid "Go to next page" +msgstr "ChoÄ na ÄalÅ”iu stranu" + +#: ../shell/ev-view.c:1429 +msgid "Go to last page" +msgstr "ChoÄ na poslednĆŗ stranu" + +#: ../shell/ev-view.c:1431 +msgid "Go to page" +msgstr "ChoÄ na stranu" + +#: ../shell/ev-view.c:1433 +msgid "Find" +msgstr "NĆ”jsÅ„" + +#: ../shell/ev-view.c:1461 +#, c-format +msgid "Go to page %s" +msgstr "PrejsÅ„ na stranu %s" + +#: ../shell/ev-view.c:1467 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "PrejsÅ„ na %s v sĆŗbore ā%sā" + +#: ../shell/ev-view.c:1470 +#, c-format +msgid "Go to file ā%sā" +msgstr "ChoÄ na sĆŗbor ā%sā" + +#: ../shell/ev-view.c:1478 +#, c-format +msgid "Launch %s" +msgstr "SpustiÅ„ %s" + +#: ../shell/ev-view.c:2419 +msgid "End of presentation. Press Escape to exit." +msgstr "Koniec prezentĆ”cie. StlaÄte ESC." + +#: ../shell/ev-view.c:3214 +msgid "Jump to page:" +msgstr "ChoÄ na stranu:" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-view.c:4851 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d nĆ”jdenĆ½ch na tejto strane" +msgstr[1] "%d nĆ”jdenĆ½ na tejto strane" +msgstr[2] "%d nĆ”jdenĆ© na tejto strane" + +#: ../shell/ev-view.c:4860 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ZostĆ”va vyhľadaÅ„ %3d%%" + +#: ../shell/ev-window.c:746 +#, c-format +msgid "Page %s - %s" +msgstr "Strana %s - %s" + +#: ../shell/ev-window.c:748 +#, c-format +msgid "Page %s" +msgstr "Strana %s" + +#: ../shell/ev-window.c:1369 +msgid "Unable to open document" +msgstr "NemĆ“Å¾em otvoriÅ„ dokument" + +#: ../shell/ev-window.c:1559 +msgid "Open Document" +msgstr "OtvoriÅ„ dokument" + +#: ../shell/ev-window.c:1629 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "Nepodarilo sa vytvoriÅ„ symbolickĆ½ odkaz ā%sā: %s" + +#: ../shell/ev-window.c:1658 +msgid "Cannot open a copy." +msgstr "NemĆ“Å¾em otvoriÅ„ kĆ³piu" + +#: ../shell/ev-window.c:1940 ../shell/ev-window.c:2012 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "SĆŗbor sa nepodarilo uložiÅ„ ako ā%sā." + +#: ../shell/ev-window.c:2061 +msgid "Save a Copy" +msgstr "UložiÅ„ kĆ³piu" + +#: ../shell/ev-window.c:2159 ../shell/ev-window.c:3369 +msgid "Failed to print document" +msgstr "Zlyhala tlaÄ dokumentu" + +#: ../shell/ev-window.c:2321 ../shell/ev-window.c:2500 +msgid "Printing is not supported on this printer." +msgstr "TlaÄ na tejto tlaÄiarni nie je podporovanĆ”" + +#: ../shell/ev-window.c:2436 ../shell/ev-window.c:2551 +#: ../shell/ev-window.c:4347 +msgid "Print" +msgstr "TlaÄ" + +#: ../shell/ev-window.c:2490 +msgid "Generating PDF is not supported" +msgstr "Export do PDF nie je podporovanĆ½" + +#: ../shell/ev-window.c:2502 +#, c-format +msgid "" +"You were trying to print to a printer using the ā%sā driver. This program " +"requires a PostScript printer driver." +msgstr "" +"PokĆŗsili ste sa tlaÄiÅ„ na tlaÄiarni pomocou ovlĆ”daÄa ā%sā. Tento program " +"potrebuje ovlĆ”daÄ tlaÄiarne PostScript." + +#: ../shell/ev-window.c:2560 +msgid "Pages" +msgstr "Strany" + +#: ../shell/ev-window.c:3150 +msgid "Toolbar Editor" +msgstr "Editor panelu nĆ”strojov" + +#: ../shell/ev-window.c:3665 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"PrehliadaÄ dokumentov.\n" +"PoužĆva poppler %s (%s)" + +#: ../shell/ev-window.c:3693 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince je free software; mĆ“Å¾ete ho redistribuovaÅ„ a/alebo modifikovaÅ„ za " +"podmienok GNU General Public License publikovanĆ½ch Free Software Foundation; " +"a to buÄ verzie licencie 2, alebo (podľa vĆ”Å”ho uvĆ”Å¾enia) ľubovoľnej " +"neskorÅ”ej verzie.\n" + +#: ../shell/ev-window.c:3697 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince je distribuovanĆ½ v nĆ”deji, že bude užitoÄnĆ½, ale BEZ AKEJKOĽVEK " +"ZĆRUKY; a to ani bez predpokladanej zĆ”ruky PREDAJNOSTI, alebo VHODNOSTI PRE " +"KONKRĆTNY ĆÄEL. Pre ÄalÅ”ie podrobnosti viz. GNU General Public License.\n" + +#: ../shell/ev-window.c:3701 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"KĆ³piu GNU General Public License ste mali dostaÅ„ spolu s Evince; ak sa tak " +"nestalo napĆÅ”te na Free Software Foundation, Inc., 59 Temple Place, Suite " +"330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:3725 ../shell/main.c:331 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3728 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 Autori Evince" + +#: ../shell/ev-window.c:3734 +msgid "translator-credits" +msgstr "" +"MĆ”rio VrablanskĆ½ <vrablansky@gmail.com>\n" +"Peter TuhĆ”rsky <tuharsky@misbb.sk>" + +#: ../shell/ev-window.c:4258 +msgid "_File" +msgstr "_SĆŗbor" + +#: ../shell/ev-window.c:4259 +msgid "_Edit" +msgstr "_UpraviÅ„" + +#: ../shell/ev-window.c:4260 +msgid "_View" +msgstr "_ZobraziÅ„" + +#: ../shell/ev-window.c:4261 +msgid "_Go" +msgstr "Ć_sÅ„" + +#: ../shell/ev-window.c:4262 +msgid "_Help" +msgstr "_PomocnĆk" + +#. File menu +#: ../shell/ev-window.c:4265 ../shell/ev-window.c:4443 +msgid "_Open..." +msgstr "_OtvoriÅ„..." + +#: ../shell/ev-window.c:4266 +msgid "Open an existing document" +msgstr "OtvoriÅ„ existujĆŗci dokument" + +#: ../shell/ev-window.c:4268 +msgid "Op_en a Copy" +msgstr "O_tvoriÅ„ kĆ³piu" + +#: ../shell/ev-window.c:4269 +msgid "Open a copy of the current document in a new window" +msgstr "OtvoriÅ„ kĆ³piu aktuĆ”lneho dokumentu v novom okne" + +#: ../shell/ev-window.c:4271 ../shell/ev-window.c:4445 +msgid "_Save a Copy..." +msgstr "_UložiÅ„ kĆ³piu..." + +#: ../shell/ev-window.c:4272 +msgid "Save a copy of the current document" +msgstr "UložiÅ„ kĆ³piu aktuĆ”lneho dokumentu" + +#: ../shell/ev-window.c:4274 +msgid "Print Set_up..." +msgstr "Na_stavenie TlaÄe..." + +#: ../shell/ev-window.c:4275 +msgid "Setup the page settings for printing" +msgstr "NastaviÅ„ vlastnosti strĆ”nky pre tlaÄ" + +#: ../shell/ev-window.c:4277 +msgid "_Print..." +msgstr "_TlaÄ..." + +#: ../shell/ev-window.c:4278 ../shell/ev-window.c:4348 +msgid "Print this document" +msgstr "VytlaÄiÅ„ tento dokument" + +#: ../shell/ev-window.c:4280 +msgid "P_roperties" +msgstr "_Vlastnosti" + +#: ../shell/ev-window.c:4289 ../shell/ev-window.c:4291 +msgid "Select _All" +msgstr "VybraÅ„ _vÅ”etko" + +#: ../shell/ev-window.c:4294 +msgid "_Find..." +msgstr "_NĆ”jsÅ„..." + +#: ../shell/ev-window.c:4295 +msgid "Find a word or phrase in the document" +msgstr "NĆ”jsÅ„ v dokumente slovo alebo frĆ”zu" + +#: ../shell/ev-window.c:4297 +msgid "Find Ne_xt" +msgstr "NĆ”jsÅ„ Äa_lÅ”iu" + +#: ../shell/ev-window.c:4299 +msgid "Find Pre_vious" +msgstr "NĆ”jsÅ„ _predchĆ”dzajĆŗce" + +#: ../shell/ev-window.c:4301 +msgid "T_oolbar" +msgstr "Panel _nĆ”strojov" + +#: ../shell/ev-window.c:4303 +msgid "Rotate _Left" +msgstr "OtoÄiÅ„ _doľava" + +#: ../shell/ev-window.c:4305 +msgid "Rotate _Right" +msgstr "OtoÄiÅ„ do_prava" + +#: ../shell/ev-window.c:4310 +msgid "Enlarge the document" +msgstr "ZvƤÄÅ”iÅ„ dokument" + +#: ../shell/ev-window.c:4313 +msgid "Shrink the document" +msgstr "ZmenÅ”iÅ„ dokument" + +#: ../shell/ev-window.c:4315 +msgid "_Reload" +msgstr "_Znovu naÄĆtaÅ„" + +#: ../shell/ev-window.c:4316 +msgid "Reload the document" +msgstr "Znovu naÄĆtaÅ„ dokument" + +#. Go menu +#: ../shell/ev-window.c:4320 +msgid "_Previous Page" +msgstr "_PredchĆ”dzajĆŗca strana" + +#: ../shell/ev-window.c:4321 +msgid "Go to the previous page" +msgstr "ChoÄ na predchĆ”dzajĆŗcu stranu" + +#: ../shell/ev-window.c:4323 +msgid "_Next Page" +msgstr "Äa_lÅ”ia Strana" + +#: ../shell/ev-window.c:4324 +msgid "Go to the next page" +msgstr "ChoÄ na ÄalÅ”iu stranu" + +#: ../shell/ev-window.c:4326 +msgid "_First Page" +msgstr "_PrvĆ” strana" + +#: ../shell/ev-window.c:4327 +msgid "Go to the first page" +msgstr "ChoÄ na prvĆŗ stranu" + +#: ../shell/ev-window.c:4329 +msgid "_Last Page" +msgstr "Po_slednĆ” strana" + +#: ../shell/ev-window.c:4330 +msgid "Go to the last page" +msgstr "ChoÄ na poslednĆŗ stranu" + +#. Help menu +#: ../shell/ev-window.c:4334 +msgid "_Contents" +msgstr "_Obsah" + +#: ../shell/ev-window.c:4337 +msgid "_About" +msgstr "O _aplikĆ”cii" + +#. Toolbar-only +#: ../shell/ev-window.c:4341 +msgid "Leave Fullscreen" +msgstr "OpustiÅ„ režim celej obrazovky" + +#: ../shell/ev-window.c:4342 +msgid "Leave fullscreen mode" +msgstr "OpustiÅ„ režim celej obrazovky" + +#: ../shell/ev-window.c:4344 +msgid "Start Presentation" +msgstr "SpustiÅ„ PrezentĆ”ciu" + +#: ../shell/ev-window.c:4345 +msgid "Start a presentation" +msgstr "SpustiÅ„ prezentĆ”ciu" + +#. View Menu +#: ../shell/ev-window.c:4399 +msgid "_Toolbar" +msgstr "_Panel nĆ”strojov" + +#: ../shell/ev-window.c:4400 +msgid "Show or hide the toolbar" +msgstr "ZobraziÅ„ alebo skryÅ„ panel nĆ”strojov" + +#: ../shell/ev-window.c:4402 +msgid "Side _Pane" +msgstr "BoÄnĆ½ _panel" + +#: ../shell/ev-window.c:4403 +msgid "Show or hide the side pane" +msgstr "ZobraziÅ„ alebo skryÅ„ boÄnĆ½ panel" + +#: ../shell/ev-window.c:4405 +msgid "_Continuous" +msgstr "_SĆŗvislĆ½" + +#: ../shell/ev-window.c:4406 +msgid "Show the entire document" +msgstr "ZobraziÅ„ celĆ½ dokument" + +#: ../shell/ev-window.c:4408 +msgid "_Dual" +msgstr "_DuĆ”lny" + +#: ../shell/ev-window.c:4409 +msgid "Show two pages at once" +msgstr "ZobraziÅ„ dve strany naraz" + +#: ../shell/ev-window.c:4411 +msgid "_Fullscreen" +msgstr "_CelĆ” obrazovka" + +#: ../shell/ev-window.c:4412 +msgid "Expand the window to fill the screen" +msgstr "ZvƤÄÅ”iÅ„ okno tak, aby zaplnilo celĆŗ obrazovku" + +#: ../shell/ev-window.c:4414 +msgid "_Presentation" +msgstr "_PrezentĆ”cia" + +#: ../shell/ev-window.c:4415 +msgid "Run document as a presentation" +msgstr "SpustiÅ„ dokument ako prezentĆ”ciu" + +#: ../shell/ev-window.c:4417 +msgid "_Best Fit" +msgstr "_PrispĆ“sobiÅ„" + +#: ../shell/ev-window.c:4418 +msgid "Make the current document fill the window" +msgstr "NechaÅ„ aktuĆ”lny dokument vyplniÅ„ okno" + +#: ../shell/ev-window.c:4420 +msgid "Fit Page _Width" +msgstr "PrispĆ“sobiÅ„ Å”Ć_rke strany" + +#: ../shell/ev-window.c:4421 +msgid "Make the current document fill the window width" +msgstr "NechaÅ„ aktuĆ”lny dokument vyplniÅ„ Å”Ćrku okna" + +#. Links +#: ../shell/ev-window.c:4428 +msgid "_Open Link" +msgstr "_OtvoriÅ„ odkaz" + +#: ../shell/ev-window.c:4430 +msgid "_Go To" +msgstr "Ć_sÅ„ na" + +#: ../shell/ev-window.c:4432 +msgid "Open in New _Window" +msgstr "OtvoriÅ„ v novom _okne" + +#: ../shell/ev-window.c:4434 +msgid "_Copy Link Address" +msgstr "_KopĆrovaÅ„ adresu odkazu" + +#: ../shell/ev-window.c:4436 +msgid "_Save Image As..." +msgstr "_UložiÅ„ obrĆ”zok ako..." + +#: ../shell/ev-window.c:4438 +msgid "Copy _Image" +msgstr "KopĆrovaÅ„ _ObrĆ”zok" + +#: ../shell/ev-window.c:4477 +msgid "Page" +msgstr "Strana" + +#: ../shell/ev-window.c:4478 +msgid "Select Page" +msgstr "ZvoliÅ„ stranu" + +#: ../shell/ev-window.c:4489 +msgid "Zoom" +msgstr "ZvƤÄÅ”enie" + +#: ../shell/ev-window.c:4491 +msgid "Adjust the zoom level" +msgstr "UpraviÅ„ ĆŗroveÅ zvƤÄÅ”enia" + +#: ../shell/ev-window.c:4501 +msgid "Navigation" +msgstr "NavigĆ”cia" + +#: ../shell/ev-window.c:4503 +msgid "Back" +msgstr "SpĆ¤Å„" + +#: ../shell/ev-window.c:4505 +msgid "Move across visited pages" +msgstr "Pohyb medzi navÅ”tĆvenĆ½mi strĆ”nkami" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4521 +msgid "Previous" +msgstr "PredchĆ”dzajĆŗca" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4526 +msgid "Next" +msgstr "ÄalÅ”ia" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4530 +msgid "Zoom In" +msgstr "PriblĆžiÅ„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4534 +msgid "Zoom Out" +msgstr "OddialiÅ„" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4542 +msgid "Fit Width" +msgstr "PrispĆ“sobiÅ„ Å”Ćrke" + +#: ../shell/ev-window.c:4732 +msgid "Unable to open external link" +msgstr "NemĆ“Å¾em otvoriÅ„ vonkajÅ”Ć odkaz" + +#: ../shell/ev-window.c:4734 +#, c-format +msgid "Invalid URI: ā%sā" +msgstr "NeplatnĆ© URI: ā%sā" + +#: ../shell/ev-window.c:4902 +msgid "The image could not be saved." +msgstr "ObrĆ”zok sa nepodarilo uložiÅ„." + +#: ../shell/ev-window.c:4937 +msgid "Save Image" +msgstr "UložiÅ„ obrĆ”zok" + +#: ../shell/ev-window.c:4993 +msgid "Unable to open attachment" +msgstr "NemĆ“Å¾em otvoriÅ„ prĆlohu" + +#: ../shell/ev-window.c:5046 +msgid "The attachment could not be saved." +msgstr "PrĆlohu sa nepodarilo uložiÅ„." + +#: ../shell/ev-window.c:5098 +msgid "Save Attachment" +msgstr "UložiÅ„ prĆlohu" + +#: ../shell/ev-window-title.c:139 +#, c-format +msgid "%s - Password Required" +msgstr "%s - PotrebnĆ© je heslo" + +#: ../shell/main.c:59 +msgid "The page of the document to display." +msgstr "Strana dokumentu, ktorĆŗ zobraziÅ„." + +#: ../shell/main.c:59 +msgid "PAGE" +msgstr "STRANA" + +#: ../shell/main.c:60 +msgid "Run evince in fullscreen mode" +msgstr "SpustiÅ„ evince v režime celej obrazovky" + +#: ../shell/main.c:61 +msgid "Run evince in presentation mode" +msgstr "SpustiÅ„ evince v prezentaÄnom režime" + +#: ../shell/main.c:62 +msgid "Run evince as a previewer" +msgstr "SpustiÅ„ evince v režime nĆ”hľadov" + +#: ../shell/main.c:65 +msgid "[FILE...]" +msgstr "[SĆBOR...]" + +#: ../shell/main.c:314 +msgid "MATE Document Viewer" +msgstr "PrehliadaÄ dokumentov MATE" + +#: ../shell/main.c:374 +msgid "Evince Document Viewer" +msgstr "Evince PrehliadaÄ dokumentov" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"DostupnĆ© booleanovskĆ© možnosti, true povolĆ nĆ”hľady a false zakĆ”Å¾e " +"vytvĆ”ranie novĆ½ch nĆ”hľadov" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PovoliÅ„ vytvĆ”ranie nĆ”hľadov PDF dokumentov" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PrĆkaz nĆ”hľadu pre PDF dokumenty" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PlatnĆ½ prĆkaz s parametrami pre nĆ”hľady PDF dokumentu. Pre ÄalÅ”ie informĆ”cie " +"si pozrite dokumentĆ”ciu nĆ”hľadov k Nautilu." diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 00000000..8db4e0f6 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,1776 @@ +# Slovenian translations of Evince. +# Copyright (C) 2006-2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# +# Matic Žgur <mr.zgur@gmail.com>, 2006. +# Matjaž Horvat <m@owca.info>, 2006. +# Matej UrbanÄiÄ <mateju@svn.mate.org>, 2006 - 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2010-08-14 12:29+0000\n" +"PO-Revision-Date: 2010-08-14 19:28+0100\n" +"Last-Translator: Matej UrbanÄiÄ <mateju@svn.mate.org>\n" +"Language-Team: Slovenian MATE Translation Team <mate-si@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\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-Country: SLOVENIA\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Napaka med zaganjanjem ukaza ā%sā za razÅ”irjanje stripa: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Ukaz ā%sā je spodletel pri razÅ”irjanju stripa." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Ukaz ā%sā se ni uspeÅ”no zakljuÄil." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ni MIME vrsta stripa: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Ni mogoÄe najti ustreznega ukaza za razÅ”irjanje te vrste stripa." + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Neznana MIME vrsta" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Pokvarjena datoteka" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "V arhivu ni datotek." + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "V arhivu %s ni slik" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "PriÅ”lo je do napake med brisanjem ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Napaka %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Stripi" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DVI dokument ni pravilno zapisan" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "Dokument je sestavljen iz veÄ datotek. Do ene ali veÄ teh datotek ni mogoÄ dostop." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Djvu dokumenti" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "Dokument DVI nima prave oblike zapisa" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Dokumenti" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Projekt je v javni domeni" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Da" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Ne" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Vrsta 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Vrsta 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Vrsta 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Vrsta 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Vrsta 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Neznana vrsta pisave" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Brez imena" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Vgrajena podmnožica" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Vgrajeno" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Ni vgrajeno" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dokumenti PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Neveljaven dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress diapredstavitev" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Brez napake" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Ni dovolj pomnilnika" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Ni mogoÄe najti podpisa arhiva zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Neveljavna datoteka ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Zip z veÄ datotekami arhiva ni podprt" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Ni mogoÄe odpreti datoteke" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Ni mogoÄe prebrati podatkov iz datoteke" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Ni mogoÄe najti datoteke v arhivu zip" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Neznana napaka" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Nalaganje dokumenta \"%s\" ni uspelo" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Napaka med shranjevanjem dokumenta ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dokumenti PostScript" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Ni mogoÄe shraniti priloge \"%s\": %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Ni mogoÄe odpreti priloge \"%s\": %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Ni mogoÄe odpreti priloge \"%s\"" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Vrsta datoteke %s (%s) ni podprta" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Vsi dokumenti" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Vse datoteke" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Ni mogoÄe ustvariti zaÄasne datoteke: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Ni mogoÄe ustvariti zaÄasne mape: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datoteka ni veljavna .desktop datoteka" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Neznana razliÄica datoteke namizja '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Zaganjanje %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program ne sprejme dokumentov preko ukazne vrstice" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nepoznana možnost zagona: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ni mogoÄe poslati naslova URI dokumenta na vnos 'Vrsta=Povezava' predmeta namizja" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Predmet ni izvedljiv" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "OnemogoÄi povezavo z upravljalnikom seje" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "DoloÄitev datoteke s shranjenimi nastavitvami" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "DATOTEKA" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "DoloÄi ID upravljanja seje" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Možnosti upravljanja seje:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Pokaži možnosti upravljanja seje" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Pokaži \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Premakni na orodni vrstici" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Premakne izbrani predmet na orodni vrstici" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Odstrani iz orodne vrstice" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Odstrani izbrani predmet iz orodne vrstice" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_IzbriÅ”i orodno vrstico" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Odstrani izbrano orodno vrstico" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "LoÄilnik" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "Prilagojeno zaslonu" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Prilagojeno Å”irini strani" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Pregledovalnik dokumentov" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Poglejte veÄstranske dokumente" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Prezri omejitve dokumenta" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Prezri omejitve dokumenta, kot sta omejitev kopiranja ali tiskanja." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "IzbriÅ”i zaÄasno datoteko" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Natisni datoteko nastavitev" + +#: ../previewer/ev-previewer.c:144 +#: ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Pregledovalnik dokumentov za MATE" + +#: ../previewer/ev-previewer-window.c:91 +#: ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Tiskanje dokumenta ni uspelo" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Izbranega tiskalnika '%s' ni mogoÄe najti" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 +#: ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_Predhodna stran" + +#: ../previewer/ev-previewer-window.c:285 +#: ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "Pojdi na predhodno stran" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_Naslednja stran" + +#: ../previewer/ev-previewer-window.c:288 +#: ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "Pojdi na naslednjo stran" + +#: ../previewer/ev-previewer-window.c:291 +#: ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "PoveÄaj dokument" + +#: ../previewer/ev-previewer-window.c:294 +#: ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "SkrÄi dokument" + +#: ../previewer/ev-previewer-window.c:297 +#: ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Natisni" + +#: ../previewer/ev-previewer-window.c:298 +#: ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Natisni dokument" + +#: ../previewer/ev-previewer-window.c:342 +#: ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_NajboljÅ”a prilagoditev" + +#: ../previewer/ev-previewer-window.c:343 +#: ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "RazÅ”iri trenutni dokument, da zapolni okno" + +#: ../previewer/ev-previewer-window.c:345 +#: ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Prilagoditev Å”irini _strani" + +#: ../previewer/ev-previewer-window.c:346 +#: ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "RazÅ”iri trenutni dokument, da zapolni Å”irino okna" + +#: ../previewer/ev-previewer-window.c:558 +#: ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Stran" + +#: ../previewer/ev-previewer-window.c:559 +#: ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "Izberi stran" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Naslov:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Mesto:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Zadeva:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Avtor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "KljuÄne besede:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producent:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Ustvarjalec:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Ustvarjeno:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Spremenjeno:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Å tevilo strani:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Prilagojeno:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Oblika:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "Varnost:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Velikost papirja:" + +#: ../properties/ev-properties-view.c:188 +#: ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Brez" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, pokonÄno (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ležeÄe (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d od %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "od %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 +#: ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Nalaganje ..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Priprava na tiskanje ..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ZakljuÄevanje ..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Tiskanje strani %d od %d ..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Tiskanje na tem tiskalniku ni podprto." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Neveljaven izbor strani" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Opozorilo" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ObmoÄje tiskanja ne vkljuÄuje nobene strani" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Prilagajanje velikosti strani:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "SkrÄi na obmoÄje tiskanja" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Prilagodi velikosti tiskanja" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" +"Prilagajanje velikosti dokumenta tiskalniku. Izbrati je mogoÄe naslednje vrednosti:\n" +"\n" +"ā¢ \"Brez\": strani ne bodo prilagojene tiskanju.\n" +"\n" +"ā¢ \"SkrÄi na obmoÄje tiskanja\": strani dokumenta, ki so veÄje od obmoÄja tiskanja bodo pomanjÅ”ane na zahtevano velikost.\n" +"\n" +"ā¢ \"Prilagodi velikosti tiskanja\": strani dokumenta so poveÄane ali pomanjÅ”ane glede na obmoÄje tiskanja.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Samodejno zavrti in sredini" + +#: ../libview/ev-print-operation.c:1885 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "Zavrti postavitev vsake natisnjene strani tako, da se sklada z stranjo dokumenta. Strani bodo postavljene na sredino natisnjene strani." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Izbor velikosti strani z uporabo podatka velikosti dokumenta" + +#: ../libview/ev-print-operation.c:1892 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "Izbrana možnost omogoÄa, da bo stran natisnjena na enako velikost papirja, kot je velika stran dokumenta." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Upravljanje strani" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Napaka med tiskanjem strani %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Pomakni gor" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Pomakni dol" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Pomakni pogled gor" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Pomakni pogled dol" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentni pogled" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Pojdi na stran:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Konec predstavitve. Kliknite za konÄanje." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Pojdi na prvo stran" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Pojdi na prejÅ”njo stran" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Pojdi na naslednjo stran" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Pojdi na zadnjo stran" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Pojdi na stran" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "PoiÅ”Äi" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Pojdi na stran %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Pojdi na %s v datoteki \"%s\"" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Pojdi v datoteko \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Zaženi %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Najdi:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Najdi _predhodne" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Najdi predhodno ponovitev iskanega niza" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Najdi naslednje" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Najdi naslednjo ponovitev iskanega niza" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Razlikovanje velikosti Ärk" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Preklopi iskanje z razlikovanjem velikih in malih Ärk" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikona:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Opomba" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Razlaga" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "KljuÄ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "PomoÄ" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nov odstavek" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Odstavek" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Vstavi" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Križ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Krog" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "Neznano" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Lastnosti pripombe" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Barva:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Slog:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Prozorno" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Prekrivno" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ZaÄetno stanje okna:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Odpri" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Zapri" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Zagon v predstavitvenem naÄinu" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Geslo za dokument %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Pretvarjanje %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d od %d pretvorjenih dokumentov" + +#: ../shell/ev-convert-metadata.c:165 +#: ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Pretvarjanje metapodatkov" + +#: ../shell/ev-convert-metadata.c:187 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Zapis metapodatkov kot ga uporablja Evince je spremenjen in ga je treba pretvoriti. V primeru, da je pretvorba preklicana, metapodatki ne bodo razpoložljivi." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Odpri nedavno uporabljeni dokument" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "Dokument je zaklenjen, preberete ga lahko edino tako, da vpiÅ”ete pravilno geslo." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_Odkleni dokument" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Vnos gesla" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Zahtevano geslo" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokument \"%s\" je zaklenjen in zahteva geslo preden je lahko odprt." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Geslo:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_Takoj pozabi geslo" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Zapomni si geslo do _odjave" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Zapomni si" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Lastnosti" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "SploÅ”no" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Pisave" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dovoljenja dokumenta" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Pisava" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Zbiranje podrobnosti o pisavah ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Pogoji uporabe" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Besedilo dovoljenja" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "VeÄ podrobnosti" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Seznam" + +#: ../shell/ev-sidebar-annotations.c:203 +#: ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Pripombe" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Besedilo" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Dodaj pripombo k besedilu ..." + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Dodaj" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokument ne vsebuje pripomb" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Stran %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Priloge" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Plasti" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Natisni ..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Kazalo" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "SliÄice" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Stran %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Stran %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Dokument ne vsebuje nobene strani" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Dokument vsebuje le prazne strani" + +#: ../shell/ev-window.c:1627 +#: ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Dokumenta ni mogoÄe odpreti" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Nalaganje dokumenta preko ā%sā" + +#: ../shell/ev-window.c:1906 +#: ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Prejemanje dokumenta (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Napaka med nalaganjem oddaljenega dokumenta." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Ponovno nalaganje dokumenta iz %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Ponovno nalaganje dokumenta ni uspelo." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Odpri dokument" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Shranjevanje dokumenta v %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Shranjevanje prilog v %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Shranjevanje slike v %s" + +#: ../shell/ev-window.c:2664 +#: ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Ni mogoÄe shraniti datoteke kot \"%s\"-" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "PoÅ”iljanje dokumenta (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "PoÅ”iljanje priloge (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "PoÅ”iljanje slike (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Shrani kopijo" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d poslov v vrsti" +msgstr[1] "%d posel v vrsti" +msgstr[2] "%d posla v vrsti" +msgstr[3] "%d posli v vrsti" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Tiskanje ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "Document contains form fields that have been filled out. If you don't save a copy, changes will be permanently lost." +msgstr "Dokument vsebuje izpolnjena polja obrazca. V kolikor kopije ne shranite, bodo spremembe trajno izgubljene." + +#: ../shell/ev-window.c:3406 +msgid "Document contains new or modified annotations. If you don't save a copy, changes will be permanently lost." +msgstr "Dokument vsebuje nove ali spremenjene pripombe. V kolikor kopije ne shranite, bodo spremembe trajno izgubljene." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Ali želite shraniti spremembe v dokumentu ā%sā pred zapiranjem?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Zapri _brez shranjevanja" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Shrani _kopijo" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Ali želite poÄakati, da se dokument ā%sā natisne, preden zakljuÄite?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "V vrsti je %d pripravljenih dokumentov za tiskanje. Ali želite poÄakati, da se natisnejo vsi dokumenti?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "V primeru, da zaprete okno, pripravljeni dokumenti ne bodo natisnjeni." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "PrekliÄi _tiskanje in zapri okno" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "Zapri _po tiskanju" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Urejevalnik orodnih vrstic" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "PriÅ”lo je do napake med prikazovanjem pomoÄi" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Pregledovalnik dokumentov\n" +"Uporaba %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Evince je prosti program. Lahko ga razÅ”irjate in/ali spreminjate pod pogoji licence GNU General Public License kot jo je objavila organizacija Free Software Foundation; bodisi pod razliÄico 2 ali (po vaÅ”em mnenju) katerokoli kasnejÅ”o razliÄico.\n" + +#: ../shell/ev-window.c:4567 +msgid "Evince 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.\n" +msgstr "Evince se razÅ”irja v upanju, da bo koristen, vendar BREZ ZAGOTOVILA KAKRÅ NEGAKOLI JAMSTVA; tudi brez posrednega jamstva CENOVNE VREDNOSTI ali PRIMERNOSTI ZA DOLOÄENO UPORABO. Za veÄ podrobnosti si oglejte GNU General Public License.\n" + +#: ../shell/ev-window.c:4571 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "Skupaj s programom bi morali prejeti kopijo GNU SploÅ”nega javnega dovoljenja. V primeru, da je niste, piÅ”ite na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Avtorji programa Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Matic Žgur <mr.zgur@gmail.com>\n" +"Matjaž Horvat <m@owca.info>\n" +"Matej UrbanÄiÄ <mateju@svn.mate.org>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d zadetkov na tej strani" +msgstr[1] "%d zadetek na tej strani" +msgstr[2] "%d zadetka na tej strani" +msgstr[3] "%d zadetki na tej strani" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Ni mogoÄe najti" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Preiskati je treba Å”e %3d%%" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Datoteka" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Uredi" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "Po_gled" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "P_ojdi" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "Pomo_Ä" + +#. File menu +#: ../shell/ev-window.c:5402 +#: ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Odpri ā¦" + +#: ../shell/ev-window.c:5403 +#: ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Odpri obstojeÄi dokument" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Odpri _kopijo" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Odpre kopijo trenutnega dokumenta v novem oknu" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "_Shrani kopijo" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Shrani kopijo trenutnega dokumenta" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "_Natisni ..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "L_astnosti" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Izberi _vse" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "_Najdi ..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Najdi besedo ali reklo v dokumentu" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "O_rodna vrstica" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Zavrti _levo" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Zavrti _desno" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Shrani trenutne nastavitve kot _privzete" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_Ponovno naloži" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "Ponovno naloži trenuten dokument" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Samodejno _drsenje" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "P_rva stran" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "Pojdi na prvo stran" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Zadnja stran" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "Pojdi na zadnjo stran" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_Vsebina" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_O programu" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "Zapusti celozaslonski naÄin" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "Zapusti celozaslonski naÄin" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "ZaÄni predstavitev" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ZaÄni predstavitev" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_Orodna vrstica" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Pokaži ali skrij orodno vrstico" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "_Stranski pladenj" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Pokaži ali skrij stranski pladenj" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_Neprekinjen" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Pokaži cel dokument" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dvojni" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Pokaži dve strani skupaj" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_Celozaslonski naÄin" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "RazÅ”iri okno, da zapolni zaslon" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "_Predstavitev" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Zaženi dokument kot predstavitev" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Preobrni barve" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Pokaži vsebino strani s preobrnjenimi barvami." + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Odpri povezavo" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "Po_jdi na" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Odpri v _novem oknu" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Kopiraj naslov povezave" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "S_hrani sliko kot ..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Kopiraj _sliko" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Lastnosti pripombe ..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Odpri prilogo" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Shrani prilogo _kot ..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Približanje" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Prilagodi raven približanja" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Krmiljenje" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "Nazaj" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Pomikaj se med obiskanimi stranmi" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "Predhodni" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "Naslednja" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Približaj" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Oddalji" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Prilagodi Å”irini" + +#: ../shell/ev-window.c:5890 +#: ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Ni mogoÄe zagnati zunanjega programa." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Ni mogoÄe odpreti zunanje povezave" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Ni mogoÄe najti primernega zapisa za shranjevanje slike" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Slike ni mogoÄe shraniti." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Shrani sliko" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Ni mogoÄe odpreti priloge" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Ni mogoÄe shraniti priloge." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Shrani prilogo" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā zahtevano geslo" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Po konÄnici" + +#: ../shell/main.c:69 +#: ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Pregledovalnik dokumentov za MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Naziv strani dokumenta za prikaz." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "STRAN" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Å tevilka strani dokumenta, ki naj se pokaže." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "Å TEVILKA" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Zaženi evince v celozaslonskem naÄinu" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Zaženi evince v predstavitvenem naÄinu" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Zaženi evince v predoglednem naÄinu" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "PoiÅ”Äi besedo ali reklo v dokumentu" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "NIZ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[DATOTEKA ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "LogiÄne operacije: 'prav' omogoÄi vzorÄne slike in 'napak' izkljuÄi ustvarjanje vzorÄnih slik" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "OmogoÄi sliÄice dokumentov PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Ukaz za sliÄice dokumentov PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "Veljavni ukazi in argumenti za vzorÄne slike PDF dokumenta. VeÄ podrobnosti je mogoÄe najti v dokumentaciji o vzorÄnih slikah." + +#~ msgid "Page Set_upā¦" +#~ msgstr "Nastavitev s_trani ..." +#~ msgid "Set up the page settings for printing" +#~ msgstr "Nastavitev lastnosti strani za tiskanje" +#~ msgid "DJVU document has incorrect format" +#~ msgstr "Dokument DJVU nima prave oblike zapisa" +#~ msgid "Print..." +#~ msgstr "Natisni ..." +#~ msgid "_Save a Copy..." +#~ msgstr "_Shrani kopijo ..." +#~ msgid "_Print..." +#~ msgstr "_Natisni ..." +#~ msgid "_Find..." +#~ msgstr "_PoiÅ”Äi ..." +#~ msgid "Search string" +#~ msgstr "PoiÅ”Äi niz" +#~ msgid "The name of the string to be found" +#~ msgstr "Ime iskanega niza" +#~ msgid "Case sensitive" +#~ msgstr "Razlikuj velike in male Ärke" +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE za razlikovanje velikih in malih Ärk" +#~ msgid "Highlight color" +#~ msgstr "Barva poudarjanja" +#~ msgid "Color of highlight for all matches" +#~ msgstr "Barva poudarjanja za vse zadetke" +#~ msgid "Current color" +#~ msgstr "Trenutna barva" +#~ msgid "Color of highlight for the current match" +#~ msgstr "Barva poudarjanja za trenutni zadetek" +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Ni mogoÄe ustvariti datoteke \"%s\": %s" +#~ msgid "Recover previous documents?" +#~ msgstr "Ali naj se obnovijo predhodni dokumenti?" +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Videti je, da je bil program nenadno zakljuÄen ob zadnjem zagonu. Odprte " +#~ "dokumente je vÄasih mogoÄe obnoviti." +#~ msgid "_Don't Recover" +#~ msgstr "_Ne obnovi" +#~ msgid "_Recover" +#~ msgstr "_Obnovi" +#~ msgid "Crash Recovery" +#~ msgstr "Obnavljanje po sesutju" +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Ni mogoÄe ustvariti simbolne povezave ā%sā: " +#~ msgid "Cannot open a copy." +#~ msgstr "Ni mogoÄe odpreti kopije." +#~ msgid "Co_nnect" +#~ msgstr "Po_veži" +#~ msgid "Connect _anonymously" +#~ msgstr "Poveži se _anonimno" +#~ msgid "Connect as u_ser:" +#~ msgstr "Poveži kot u_porabnik" +#~ msgid "_Username:" +#~ msgstr "_UporabniÅ”ko ime:" +#~ msgid "_Domain:" +#~ msgstr "_Domena:" +#~ msgid "_Forget password immediately" +#~ msgstr "_Takoj pozabi geslo" +#~ msgid "_Remember password until you logout" +#~ msgstr "Zapomni si geslo do _odjave" +#~ msgid "_Remember forever" +#~ msgstr "_Zapomni si trajno" +#~ msgid "File not available" +#~ msgstr "Datoteka ni na voljo" +#~ msgid "Remote files aren't supported" +#~ msgstr "Oddaljene datoteke niso podprte" +#~ msgid "Find Previous" +#~ msgstr "PoiÅ”Äi prejÅ”nje" +#~ msgid "Find Next" +#~ msgstr "PoiÅ”Äi naslednje" +#~ msgid "Downloading document %d%%" +#~ msgstr "PrenaÅ”anje dokumenta (%d%%)" +#~ msgid "Password Entry" +#~ msgstr "Vnos gesla" +#~ msgid "Remember password for this session" +#~ msgstr "Zapomni si geslo za to sejo" +#~ msgid "Save password in keyring" +#~ msgstr "Shrani geslo v zbirko kljuÄev" +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>Naslov:</b>" +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" +#~ msgid "Incorrect password" +#~ msgstr "Nepravilno geslo" +#~ msgid "Evince Document Viewer" +#~ msgstr "Pregledovalnik dokumentov Evince" + diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 00000000..2bce5013 --- /dev/null +++ b/po/sq.po @@ -0,0 +1,1322 @@ +# PĆ«rkthimi i mesazheve tĆ« evince nĆ« shqip. +# This file is distributed under the same license as the Evince package. +# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. +# +# Laurent Dhima <laurenti@alblinux.net>, 2005-2008. +msgid "" +msgstr "" +"Project-Id-Version: evince HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-02 07:24+0000\n" +"PO-Revision-Date: 2008-09-04 10:12+0200\n" +"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n" +"Language-Team: albanian <mate-albanian-perkthyesit@lists.sourceforge.net>\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" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "File corrupted." +msgstr "File i dĆ«mtuar." + +#: ../backend/comics/comics-document.c:203 +#, c-format +msgid "No images found in archive %s" +msgstr "Nuk u gjetĆ«n figura tek arkivi %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Libra komikĆ«" + +#: ../backend/djvu/djvu-document.c:247 +#, c-format +msgid "" +"The document is composed by several files. One or more of such files cannot " +"be accessed." +msgstr "" +"Dokumenti pĆ«rbĆ«het nga disa file. E pamundur hyrja tek njĆ« apo mĆ« shumĆ« prej " +"tyre." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Dokumente Djvu" + +#: ../backend/dvi/dvi-document.c:94 +#, c-format +msgid "File not available" +msgstr "File jo nĆ« dispozicion" + +#: ../backend/dvi/dvi-document.c:109 +#, c-format +msgid "DVI document has incorrect format" +msgstr "Dokumenti DVI Ć«shtĆ« i njĆ« formati tĆ« parregullt" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "Dokumente DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:688 +msgid "Yes" +msgstr "Po" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:691 +msgid "No" +msgstr "Jo" + +#: ../backend/pdf/ev-poppler.cc:765 +msgid "Type 1" +msgstr "Lloji 1" + +#: ../backend/pdf/ev-poppler.cc:767 +msgid "Type 1C" +msgstr "Lloji 1C" + +#: ../backend/pdf/ev-poppler.cc:769 +msgid "Type 3" +msgstr "Lloji 3" + +#: ../backend/pdf/ev-poppler.cc:771 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:773 +msgid "Type 1 (CID)" +msgstr "Lloji 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:775 +msgid "Type 1C (CID)" +msgstr "Lloji 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:777 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Unknown font type" +msgstr "Lloj gĆ«rmĆ« e panjohur" + +#: ../backend/pdf/ev-poppler.cc:805 +msgid "No name" +msgstr "Pa emĆ«r" + +#: ../backend/pdf/ev-poppler.cc:813 +msgid "Embedded subset" +msgstr "E nĆ«npĆ«rbashkĆ«t e trupĆ«zuar" + +#: ../backend/pdf/ev-poppler.cc:815 +msgid "Embedded" +msgstr "TrupĆ«zuar" + +#: ../backend/pdf/ev-poppler.cc:817 +msgid "Not embedded" +msgstr "Jo e trupĆ«zuar" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "Dokumente PDF" + +#: ../backend/impress/impress-document.c:297 +#, c-format +msgid "Remote files aren't supported" +msgstr "File nĆ« distancĆ« nuk suportohen" + +#: ../backend/impress/impress-document.c:308 +#, c-format +msgid "Invalid document" +msgstr "Dokument i pavlefshĆ«m" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Prezantime Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "AsnjĆ« gabim" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Memorje e pamjaftueshme" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "E pamundur gjetja e firmĆ«s sĆ« zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "File i pavlefshĆ«m zip" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "File zip shumĆ«fishĆ« nuk suportohen" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "E pamundur hapja e file" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "I pamundur leximi i tĆ« dhĆ«nave nga file" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "E pamundur gjetja e file nĆ« arkivin zip" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Gabim i panjohur" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "E pamundur hapja e dokumentit ā%sā" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "E pamundur ruajtja e dokumentit ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Dokumente PostScript" + +#: ../libdocument/ev-attachment.c:303 ../libdocument/ev-attachment.c:324 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "E pamundur ruajtja e tĆ« bashkangjiturit ā%sā: %s" + +#: ../libdocument/ev-attachment.c:360 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "E pamundur hapja e tĆ« bashkangjiturit ā%sā: %s" + +#: ../libdocument/ev-attachment.c:393 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "E pamundur hapja e tĆ« bashkangjiturit ā%sā" + +#: ../libdocument/ev-document-factory.c:181 +#: ../libdocument/ev-document-factory.c:302 +#, c-format +msgid "Unknown MIME Type" +msgstr "Lloj MIME i panjohur" + +#: ../libdocument/ev-document-factory.c:201 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "File i llojit %s (%s) nuk suportohet" + +#: ../libdocument/ev-document-factory.c:357 +msgid "All Documents" +msgstr "TĆ« gjithĆ« dokumentĆ«t" + +#: ../libdocument/ev-document-factory.c:389 +msgid "All Files" +msgstr "TĆ« gjithĆ« files" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "Li_dhu" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "Lidhu nĆ« menyrĆ« _anonime" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "Lidhu si _pĆ«rdorues:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "_PĆ«rdoruesi:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_Domain:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../data/evince-password.glade.h:4 +msgid "_Password:" +msgstr "_FjalĆ«kalimi:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_Harro menjĆ«herĆ« fjalĆ«kalimin" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_Kujto fjalĆ«kalimin derisa tĆ« shkĆ«putesh" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_Kujto pĆ«rgjithmonĆ«" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:139 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "File nuk Ć«shtĆ« njĆ« file i vlefshĆ«m .desktop" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:161 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version i pasaktĆ« file desktop '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:872 +#, c-format +msgid "Starting %s" +msgstr "Duke nisur %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1006 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikativi nuk pranon dokumente nĆ« rreshtin e komandĆ«s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1074 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opsion i pasaktĆ« nisje: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1276 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nuk mund t'i kalohen URLtĆ« e dokumenteve njĆ« zĆ«ri desktop 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1295 +#, c-format +msgid "Not a launchable item" +msgstr "Nuk Ć«shtĆ« njĆ« element i ekzekutueshĆ«m" + +#: ../cut-n-paste/smclient/eggsmclient.c:185 +msgid "Disable connection to session manager" +msgstr "Ćaktivizon lidhjen me menazhuesin e seancĆ«s" + +#: ../cut-n-paste/smclient/eggsmclient.c:188 +msgid "Specify file containing saved configuration" +msgstr "Specifikon file qĆ« pĆ«rmban konfiurimin e ruajtur" + +#: ../cut-n-paste/smclient/eggsmclient.c:188 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:191 +msgid "Specify session management ID" +msgstr "Specifikon ID e menazhuesit tĆ« seancĆ«s" + +#: ../cut-n-paste/smclient/eggsmclient.c:191 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Session Management Options" +msgstr "Opsionet e menazhimit tĆ« seancĆ«s" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Show Session Management options" +msgstr "Shfaq opsionet e menazhimit tĆ« seancĆ«s" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:938 +#, c-format +msgid "Show ā_%sā" +msgstr "Shfaq ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Move on Toolbar" +msgstr "_LĆ«viz tek paneli i instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Move the selected item on the toolbar" +msgstr "LĆ«viz elementin e zgjedhur tek paneli i instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1403 +msgid "_Remove from Toolbar" +msgstr "_Hiq nga paneli i instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1404 +msgid "Remove the selected item from the toolbar" +msgstr "Hiq elementin e zgjedhur nga paneli i instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1405 +msgid "_Delete Toolbar" +msgstr "_Hiq panelin e instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1406 +msgid "Remove the selected toolbar" +msgstr "Hiq panelin e zgjedhur tĆ« instrumentĆ«ve" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:441 +msgid "Separator" +msgstr "NdarĆ«s" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "Duke punuar nĆ« mĆ«nyrĆ«n prezantim" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:4719 +msgid "Best Fit" +msgstr "PĆ«rshtatja mĆ« e mirĆ«" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "PĆ«rshtat gjerĆ«sinĆ« e faqes" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:3751 +#: ../shell/ev-window-title.c:132 +#, c-format +msgid "Document Viewer" +msgstr "Shikues dokumentesh" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Shiko dokumentĆ« shumfaqĆ«sh" + +#: ../data/evince-password.glade.h:1 +msgid "Password Entry" +msgstr "DhĆ«nia e fjalĆ«kalimit" + +#: ../data/evince-password.glade.h:2 +msgid "Remember password for this session" +msgstr "Kujto fjalĆ«kalimin pĆ«r kĆ«tĆ« seancĆ«" + +#: ../data/evince-password.glade.h:3 +msgid "Save password in keyring" +msgstr "Ruaje fjalĆ«kalimin nĆ« keyring" + +#: ../data/evince-properties.glade.h:1 +msgid "<b>Author:</b>" +msgstr "<b>Autori:</b>" + +#: ../data/evince-properties.glade.h:2 +msgid "<b>Created:</b>" +msgstr "<b>Krijuar:</b>" + +#: ../data/evince-properties.glade.h:3 +msgid "<b>Creator:</b>" +msgstr "<b>Krijuesi:</b>" + +#: ../data/evince-properties.glade.h:4 +msgid "<b>Format:</b>" +msgstr "<b>Formati:</b>" + +#: ../data/evince-properties.glade.h:5 +msgid "<b>Keywords:</b>" +msgstr "<b>FjalĆ« kyƧe:</b>" + +#: ../data/evince-properties.glade.h:6 +msgid "<b>Modified:</b>" +msgstr "<b>Ndryshuar:</b>" + +#: ../data/evince-properties.glade.h:7 +msgid "<b>Number of Pages:</b>" +msgstr "<b>Numri i faqeve:</b>" + +#: ../data/evince-properties.glade.h:8 +msgid "<b>Optimized:</b>" +msgstr "<b>Optimizuar:</b>" + +#: ../data/evince-properties.glade.h:9 +msgid "<b>Paper Size:</b>" +msgstr "<b>MadhĆ«sia e fletĆ«s:</b>" + +#: ../data/evince-properties.glade.h:10 +msgid "<b>Producer:</b>" +msgstr "<b>Prodhues:</b>" + +#: ../data/evince-properties.glade.h:11 +msgid "<b>Security:</b>" +msgstr "<b>Siguria:</b>" + +#: ../data/evince-properties.glade.h:12 +msgid "<b>Subject:</b>" +msgstr "<b>Subjekti:</b>" + +#: ../data/evince-properties.glade.h:13 +msgid "<b>Title:</b>" +msgstr "<b>Titulli:</b>" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Mbishkruaj kufizimet nĆ« dokument" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Mbishkruaj kufizimet nĆ« dokument, si p.sh. kufizimin e kopjes apo shtypjes." + +#: ../properties/ev-properties-main.c:114 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:180 +msgid "None" +msgstr "AsnjĆ«" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:205 +#: ../properties/ev-properties-view.c:367 +msgid "default:mm" +msgstr "default:mm" + +#. Metric measurement (millimeters) +#: ../properties/ev-properties-view.c:249 +#: ../properties/ev-properties-view.c:404 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:253 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:277 +#: ../properties/ev-properties-view.c:415 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Vertikale (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:284 +#: ../properties/ev-properties-view.c:422 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Horizontale (%s)" + +#. Imperial measurement (inches) +#: ../properties/ev-properties-view.c:399 +#, c-format +msgid "%.2f x %.2f in" +msgstr "%.2f x %.2f in" + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "KĆ«rko tekstin" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "Emri i tekstit qĆ« duhet gjetur" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "NdjeshmĆ«ri gĆ«rma tĆ« mĆ«dha/tĆ« vogla" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "TRUE pĆ«r kĆ«rkim tĆ« ndjeshĆ«m ndaj ndryshimit gĆ«rma tĆ« mĆ«dha/vogla" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "Ngjyra e vĆ«nies nĆ« dukje" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "Ngjyra e vĆ«nies nĆ« dukje pĆ«r tĆ« gjithĆ« rezultatet" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "Ngjyra aktuale" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "Ngjyra e vĆ«nies nĆ« dukje pĆ«r rezultatin aktual" + +#: ../shell/eggfindbar.c:309 +msgid "Find:" +msgstr "Gjej:" + +#: ../shell/eggfindbar.c:318 +msgid "Find Previous" +msgstr "Gjej paraardhĆ«sen" + +#: ../shell/eggfindbar.c:322 ../shell/eggfindbar.c:325 +msgid "Find previous occurrence of the search string" +msgstr "Gjej korrispondimin paraardhĆ«s tĆ« tekstit tĆ« kĆ«rkuar" + +#: ../shell/eggfindbar.c:331 +msgid "Find Next" +msgstr "Gjej nĆ« vazhdim" + +#: ../shell/eggfindbar.c:335 ../shell/eggfindbar.c:338 +msgid "Find next occurrence of the search string" +msgstr "Gjej korrispondimin nĆ« vazhdim tĆ« tekstit tĆ« kĆ«rkuar" + +#: ../shell/eggfindbar.c:347 +msgid "C_ase Sensitive" +msgstr "I ndje_shĆ«m ndaj gĆ«rma tĆ« mĆ«dha/vogla" + +#: ../shell/eggfindbar.c:351 ../shell/eggfindbar.c:354 +msgid "Toggle case sensitive search" +msgstr "Ndrysho kĆ«rkimin e ndjeshĆ«m ndaj ndryshimit gĆ«rma tĆ« mĆ«dha/vogla" + +#: ../shell/ev-jobs.c:962 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "I pamundur krijimi i file ā%sā: %s" + +#: ../shell/ev-open-recent-action.c:73 +msgid "Open a recently used document" +msgstr "Hap njĆ« dokument tĆ« pĆ«rdorur sĆ« fundmi" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d nĆ« %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "nga %d" + +#: ../shell/ev-password.c:88 +msgid "Password required" +msgstr "KĆ«rkohet fjalĆ«kalimi" + +#: ../shell/ev-password.c:89 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumenti ā%sā Ć«shtĆ« bllokuar dhe kĆ«rkon njĆ« fjalĆ«kalim pĆ«r t'u hapur." + +#: ../shell/ev-password.c:154 +msgid "Enter password" +msgstr "Shkruaj fjalĆ«kalimin" + +#: ../shell/ev-password.c:260 +#, c-format +msgid "Password for document %s" +msgstr "FjalĆ«kalimi pĆ«r dokumentin %s" + +#: ../shell/ev-password.c:347 +msgid "Incorrect password" +msgstr "FjalĆ«kalim i gabuar" + +#: ../shell/ev-password-view.c:112 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ky dokument Ć«shtĆ« bllokuar dhe mund tĆ« lexohet vetĆ« mbasi tĆ« jepet " +"fjalĆ«kalimi korrekt." + +# (pofilter) accelerators: accelerator _ appears before an invalid accelerator character 'Ć' (eg. space) +#: ../shell/ev-password-view.c:121 +msgid "_Unlock Document" +msgstr "Ć_blloko dokumentin" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "PronĆ«sitĆ«" + +#: ../shell/ev-properties-dialog.c:90 +msgid "General" +msgstr "TĆ« pĆ«rgjithshme" + +#: ../shell/ev-properties-dialog.c:100 +msgid "Fonts" +msgstr "GĆ«rmat" + +#: ../shell/ev-properties-fonts.c:139 +msgid "Font" +msgstr "GĆ«rmat" + +#: ../shell/ev-properties-fonts.c:150 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Duke bashkuar informacionet mbi gĆ«rmat... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:690 +msgid "Attachments" +msgstr "TĆ« bashkangjitur" + +#: ../shell/ev-sidebar-links.c:267 ../shell/ev-view.c:3638 +msgid "Loading..." +msgstr "Duke ngarkuar..." + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "Printo..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "Treguesi" + +#: ../shell/ev-sidebar-thumbnails.c:731 +msgid "Thumbnails" +msgstr "Miniaturat" + +#: ../shell/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "SipĆ«r" + +#: ../shell/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "PoshtĆ«" + +#: ../shell/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "RrĆ«shqit sipĆ«r pamjen" + +#: ../shell/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "RrĆ«shqit poshtĆ« pamjen" + +#: ../shell/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Shikimi i dokumentit" + +#: ../shell/ev-view.c:1437 +msgid "Go to first page" +msgstr "Shko tek faqja e parĆ«" + +#: ../shell/ev-view.c:1439 +msgid "Go to previous page" +msgstr "Shko tek faqja paraardhĆ«se" + +#: ../shell/ev-view.c:1441 +msgid "Go to next page" +msgstr "Shko tek faqja nĆ« vazhdim" + +#: ../shell/ev-view.c:1443 +msgid "Go to last page" +msgstr "Shko tek faqja e fundit" + +#: ../shell/ev-view.c:1445 +msgid "Go to page" +msgstr "Shko tek faqja" + +#: ../shell/ev-view.c:1447 +msgid "Find" +msgstr "Gjej" + +#: ../shell/ev-view.c:1475 +#, c-format +msgid "Go to page %s" +msgstr "Shko tek faqja %s" + +#: ../shell/ev-view.c:1481 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Shko tek %s tek file ā%sā" + +#: ../shell/ev-view.c:1484 +#, c-format +msgid "Go to file ā%sā" +msgstr "Shko tek file ā%sā" + +#: ../shell/ev-view.c:1492 +#, c-format +msgid "Launch %s" +msgstr "Nis %s" + +#: ../shell/ev-view.c:2444 +msgid "End of presentation. Press Escape to exit." +msgstr "Fund i prezantimit. Shtyp Escape pĆ«r dalje." + +#: ../shell/ev-view.c:3368 +msgid "Jump to page:" +msgstr "Shko tek faqja:" + +#: ../shell/ev-window.c:790 +#, c-format +msgid "Page %s - %s" +msgstr "Faqja %s - %s" + +#: ../shell/ev-window.c:792 +#, c-format +msgid "Page %s" +msgstr "Faqja %s" + +#: ../shell/ev-window.c:1201 +msgid "The document contains no pages" +msgstr "Dokumenti nuk pĆ«rmban asnjĆ« faqe" + +#: ../shell/ev-window.c:1425 ../shell/ev-window.c:1500 +msgid "Unable to open document" +msgstr "E pamundur hapja e dokumentit" + +#: ../shell/ev-window.c:1697 +msgid "Open Document" +msgstr "Hap dokumentin" + +#: ../shell/ev-window.c:1758 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "I pamundur krijimi i lidhjes simbolike ā%sā: %s" + +#: ../shell/ev-window.c:1787 +msgid "Cannot open a copy." +msgstr "E pamundur hapja e njĆ« kopje." + +#: ../shell/ev-window.c:2031 ../shell/ev-window.c:2081 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "File nuk mund tĆ« ruhet si ā%sā." + +#: ../shell/ev-window.c:2126 +msgid "Save a Copy" +msgstr "Ruaj njĆ« kopje" + +#: ../shell/ev-window.c:2247 ../shell/ev-window.c:3452 +msgid "Failed to print document" +msgstr "I pamundur prinitmi i dokumentit" + +#: ../shell/ev-window.c:2412 +msgid "Printing is not supported on this printer." +msgstr "Printimi nuk suportohet nga ky printer." + +#: ../shell/ev-window.c:2538 ../shell/ev-window.c:4511 +msgid "Print" +msgstr "Printo" + +#: ../shell/ev-window.c:3205 +msgid "Toolbar Editor" +msgstr "Edituesi i panelit tĆ« instrumentĆ«ve" + +#: ../shell/ev-window.c:3747 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Shikuesi i dokumentĆ«ve.\n" +"Duke pĆ«rdorur poppler %s (%s)" + +#: ../shell/ev-window.c:3775 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince Ć«shtĆ« program i lirĆ«; mund t'a rishpĆ«rndani dhe/apo ndryshoninĆ«n " +"kushtet e LiƧencĆ«s Publike tĆ« PĆ«rgjithshme GNU sikurse publikuar ngaFree " +"Software Foundation; sipas versionit 2 tĆ« LiƧencĆ«s, ose(sipas dĆ«shirĆ«s suaj) " +"Ƨdo versioni tjetĆ«r pasardhĆ«s.\n" + +#: ../shell/ev-window.c:3779 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince shpĆ«rndahet me shpresĆ«n qĆ« do t'ju jetĆ« i dobishĆ«m,por PA ASNJĆ LLOJ " +"GARANCIE; pa as garancinĆ« e shprehur tĆ« TREGĆTIMIT apo VLEFSHMĆRINĆ PĆR NJĆ " +"PĆRDORIM PRECIZ. Shiko LiƧencĆ«n Publike tĆ« PĆ«rgjithshme GNU pĆ«r hollĆ«si tĆ« " +"tjera.\n" + +#: ../shell/ev-window.c:3783 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"SĆ« bashku me Evince duhet tĆ« keni marrĆ« edhe njĆ« kopje tĆ« LiƧencĆ«s PubliketĆ« " +"PĆ«rgjithshme; nĆ«se jo, kĆ«rkoja Fondacionit Free Software, INC.,59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:3807 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:3810 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© 1996-2007 AutorĆ«t e Evince" + +#: ../shell/ev-window.c:3816 +msgid "translator-credits" +msgstr "Laurent Dhima <laurenti@alblinux.net>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4032 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d gjetur nĆ« kĆ«tĆ« faqe" +msgstr[1] "%d gjetur nĆ« kĆ«tĆ« faqe" + +#: ../shell/ev-window.c:4040 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% akoma pĆ«r t'u kĆ«rkuar" + +#: ../shell/ev-window.c:4423 +msgid "_File" +msgstr "_File" + +#: ../shell/ev-window.c:4424 +msgid "_Edit" +msgstr "_Ndrysho" + +#: ../shell/ev-window.c:4425 +msgid "_View" +msgstr "_Shfaq" + +#: ../shell/ev-window.c:4426 +msgid "_Go" +msgstr "_Shko" + +#: ../shell/ev-window.c:4427 +msgid "_Help" +msgstr "_NdihmĆ«" + +#. File menu +#: ../shell/ev-window.c:4430 ../shell/ev-window.c:4609 +#: ../shell/ev-window.c:4681 +msgid "_Open..." +msgstr "_Hap..." + +#: ../shell/ev-window.c:4431 ../shell/ev-window.c:4682 +msgid "Open an existing document" +msgstr "Hap njĆ« dokument ekzistues" + +#: ../shell/ev-window.c:4433 +msgid "Op_en a Copy" +msgstr "Hap njĆ« kopj_e" + +#: ../shell/ev-window.c:4434 +msgid "Open a copy of the current document in a new window" +msgstr "Hap njĆ« kopje tĆ« dokumentit aktual nĆ« njĆ« dritare tĆ« re" + +#: ../shell/ev-window.c:4436 ../shell/ev-window.c:4611 +msgid "_Save a Copy..." +msgstr "_Ruaj njĆ« kopje..." + +#: ../shell/ev-window.c:4437 +msgid "Save a copy of the current document" +msgstr "Ruaj njĆ« kopje tĆ« dokumentit aktual" + +#: ../shell/ev-window.c:4439 +msgid "Print Set_up..." +msgstr "Rreg_ullimet e printimit..." + +#: ../shell/ev-window.c:4440 +msgid "Setup the page settings for printing" +msgstr "Konfiguro rregullimet e faqes pĆ«r printim" + +#: ../shell/ev-window.c:4442 +msgid "_Print..." +msgstr "_Printo..." + +#: ../shell/ev-window.c:4443 ../shell/ev-window.c:4512 +msgid "Print this document" +msgstr "Printo kĆ«tĆ« dokument" + +#: ../shell/ev-window.c:4445 +msgid "P_roperties" +msgstr "P_ronĆ«sitĆ«" + +#: ../shell/ev-window.c:4453 +msgid "Select _All" +msgstr "Zgjidh _gjithƧka" + +#: ../shell/ev-window.c:4455 +msgid "_Find..." +msgstr "_Gjej..." + +#: ../shell/ev-window.c:4456 +msgid "Find a word or phrase in the document" +msgstr "Gjej njĆ« fjalĆ« apo frazĆ« nĆ« dokument" + +#: ../shell/ev-window.c:4458 +msgid "Find Ne_xt" +msgstr "Gjej nĆ« va_zhdim" + +#: ../shell/ev-window.c:4460 +msgid "Find Pre_vious" +msgstr "Gjej para_ardhĆ«sen" + +#: ../shell/ev-window.c:4462 +msgid "T_oolbar" +msgstr "Paneli i _instrumentĆ«ve" + +#: ../shell/ev-window.c:4464 +msgid "Rotate _Left" +msgstr "Rrotullo _Majtas" + +#: ../shell/ev-window.c:4466 +msgid "Rotate _Right" +msgstr "Rrotullo _Djathtas" + +#: ../shell/ev-window.c:4471 +msgid "Enlarge the document" +msgstr "Zmadho dokumentin" + +#: ../shell/ev-window.c:4474 +msgid "Shrink the document" +msgstr "Ngushto dokumentin" + +#: ../shell/ev-window.c:4476 +msgid "_Reload" +msgstr "_Rilexo" + +#: ../shell/ev-window.c:4477 +msgid "Reload the document" +msgstr "Rilexo dokumentin" + +#: ../shell/ev-window.c:4480 +msgid "Auto_scroll" +msgstr "RĆ«_shkitje automatike" + +#. Go menu +#: ../shell/ev-window.c:4484 +msgid "_Previous Page" +msgstr "Faqja _ParaardhĆ«se" + +#: ../shell/ev-window.c:4485 +msgid "Go to the previous page" +msgstr "Shko tek faqja paraardhĆ«se" + +#: ../shell/ev-window.c:4487 +msgid "_Next Page" +msgstr "Faqja nĆ« _Vazhdim" + +#: ../shell/ev-window.c:4488 +msgid "Go to the next page" +msgstr "Shko tek faqja nĆ« vazhdim" + +#: ../shell/ev-window.c:4490 +msgid "_First Page" +msgstr "_Faqja e parĆ«" + +#: ../shell/ev-window.c:4491 +msgid "Go to the first page" +msgstr "Shko tek faqja e parĆ«" + +#: ../shell/ev-window.c:4493 +msgid "_Last Page" +msgstr "Faqja e _fundit" + +#: ../shell/ev-window.c:4494 +msgid "Go to the last page" +msgstr "Shko tek faqja e fundit" + +#. Help menu +#: ../shell/ev-window.c:4498 +msgid "_Contents" +msgstr "_PĆ«rmbajtja" + +#: ../shell/ev-window.c:4501 +msgid "_About" +msgstr "_Informacione" + +#. Toolbar-only +#: ../shell/ev-window.c:4505 +msgid "Leave Fullscreen" +msgstr "Largohu nga modaliteti me ekran tĆ« plotĆ«" + +#: ../shell/ev-window.c:4506 +msgid "Leave fullscreen mode" +msgstr "Dil nga modaliteti me ekran tĆ« plotĆ«" + +#: ../shell/ev-window.c:4508 +msgid "Start Presentation" +msgstr "Fillo prezantimin" + +#: ../shell/ev-window.c:4509 +msgid "Start a presentation" +msgstr "Fillo njĆ« prezantim" + +#. View Menu +#: ../shell/ev-window.c:4565 +msgid "_Toolbar" +msgstr "_Paneli i instrumentĆ«ve" + +#: ../shell/ev-window.c:4566 +msgid "Show or hide the toolbar" +msgstr "Shfaq ose fsheh panelin" + +#: ../shell/ev-window.c:4568 +msgid "Side _Pane" +msgstr "_Paneli anĆ«s" + +#: ../shell/ev-window.c:4569 +msgid "Show or hide the side pane" +msgstr "Shfaq ose fsheh panelin anĆ«sor" + +#: ../shell/ev-window.c:4571 +msgid "_Continuous" +msgstr "_Pa ndĆ«rprerje" + +#: ../shell/ev-window.c:4572 +msgid "Show the entire document" +msgstr "Shfaq krejt dokumentin" + +#: ../shell/ev-window.c:4574 +msgid "_Dual" +msgstr "_Dopjo" + +#: ../shell/ev-window.c:4575 +msgid "Show two pages at once" +msgstr "Shfaq dy faqe njĆ«kohĆ«sisht" + +#: ../shell/ev-window.c:4577 +msgid "_Fullscreen" +msgstr "_Ekran i plotĆ«" + +#: ../shell/ev-window.c:4578 +msgid "Expand the window to fill the screen" +msgstr "Zmadho dritaren pĆ«r t'ju pĆ«rshtatur krejt ekranit" + +#: ../shell/ev-window.c:4580 +msgid "Pre_sentation" +msgstr "Pre_zantim" + +#: ../shell/ev-window.c:4581 +msgid "Run document as a presentation" +msgstr "Zbato dokumentin si njĆ« prezantim" + +#: ../shell/ev-window.c:4583 +msgid "_Best Fit" +msgstr "_PĆ«rshtate" + +#: ../shell/ev-window.c:4584 +msgid "Make the current document fill the window" +msgstr "PĆ«rshtatja dritares dokumentin aktual" + +#: ../shell/ev-window.c:4586 +msgid "Fit Page _Width" +msgstr "PĆ«rshtat _gjerĆ«sinĆ« e faqes" + +#: ../shell/ev-window.c:4587 +msgid "Make the current document fill the window width" +msgstr "PĆ«rshtatja dokumentin aktual gjerĆ«sisĆ« sĆ« dritares" + +#. Links +#: ../shell/ev-window.c:4594 +msgid "_Open Link" +msgstr "_Hap adresĆ«n" + +#: ../shell/ev-window.c:4596 +msgid "_Go To" +msgstr "_Shko tek" + +#: ../shell/ev-window.c:4598 +msgid "Open in New _Window" +msgstr "Hap nĆ« _Dritare tĆ« re" + +#: ../shell/ev-window.c:4600 +msgid "_Copy Link Address" +msgstr "_Kopjo adresĆ«n e lidhjes" + +#: ../shell/ev-window.c:4602 +msgid "_Save Image As..." +msgstr "Ruaj figurĆ«n _Si..." + +#: ../shell/ev-window.c:4604 +msgid "Copy _Image" +msgstr "Kopjo f_igurĆ«n" + +#: ../shell/ev-window.c:4643 +msgid "Page" +msgstr "Faqja" + +#: ../shell/ev-window.c:4644 +msgid "Select Page" +msgstr "Zgjidh faqen" + +#: ../shell/ev-window.c:4655 +msgid "Zoom" +msgstr "Shkalla e zmadhimit" + +#: ../shell/ev-window.c:4657 +msgid "Adjust the zoom level" +msgstr "Rregullo nivelin e zmadhimit" + +#: ../shell/ev-window.c:4667 +msgid "Navigation" +msgstr "Lundrimi" + +#: ../shell/ev-window.c:4669 +msgid "Back" +msgstr "Mbrapa" + +#. translators: this is the history action +#: ../shell/ev-window.c:4672 +msgid "Move across visited pages" +msgstr "LĆ«viz midis faqeve tĆ« vizituara" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4702 +msgid "Previous" +msgstr "ParaardhĆ«se" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4707 +msgid "Next" +msgstr "NĆ« vazhdim" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4711 +msgid "Zoom In" +msgstr "Zmadho" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4715 +msgid "Zoom Out" +msgstr "ZvogĆ«lo" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:4723 +msgid "Fit Width" +msgstr "PĆ«rshtat sipas gjerĆ«sisĆ«" + +#: ../shell/ev-window.c:4928 +msgid "Unable to open external link" +msgstr "E pamundur hapja e lidhjes sĆ« jashtme" + +#: ../shell/ev-window.c:5089 +msgid "Couldn't find appropriate format to save image" +msgstr "E pamundur gjetja e formatit tĆ« duhur pĆ«r ruajtjen e figurĆ«s" + +#: ../shell/ev-window.c:5129 +msgid "The image could not be saved." +msgstr "E pamundur ruajtja e figurĆ«s." + +#: ../shell/ev-window.c:5161 +msgid "Save Image" +msgstr "Ruaj figurĆ«n" + +#: ../shell/ev-window.c:5220 +msgid "Unable to open attachment" +msgstr "E pamundur hapja e tĆ« bashkangjiturit" + +#: ../shell/ev-window.c:5272 +msgid "The attachment could not be saved." +msgstr "E pamundur ruajtja e tĆ« bashkangjiturit." + +#: ../shell/ev-window.c:5317 +msgid "Save Attachment" +msgstr "Ruaj tĆ« bashkangjiturin" + +#: ../shell/ev-window-title.c:145 +#, c-format +msgid "%s - Password Required" +msgstr "%s - KĆ«rkohet fjalĆ«kalimi" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Sipas prapashtesĆ«s" + +#: ../shell/main.c:52 +msgid "The page of the document to display." +msgstr "Faqja e dokumentit pĆ«r t'u shfaqur." + +#: ../shell/main.c:52 +msgid "PAGE" +msgstr "FAQJA" + +#: ../shell/main.c:53 +msgid "Run evince in fullscreen mode" +msgstr "Ekzekuto evince nĆ« modalitetin me ekran tĆ« plotĆ«" + +#: ../shell/main.c:54 +msgid "Run evince in presentation mode" +msgstr "Ekzekuto evince nĆ« modalitetin prezantime" + +#: ../shell/main.c:55 +msgid "Run evince as a previewer" +msgstr "Ekzekuto evince si vĆ«shtrues i shpejtĆ«" + +#: ../shell/main.c:56 +msgid "The word or phrase to find in the document" +msgstr "Fjala apo fraza pĆ«r tu kĆ«rkuar nĆ« dokument" + +#: ../shell/main.c:56 +msgid "STRING" +msgstr "VARG" + +#: ../shell/main.c:59 +msgid "[FILE...]" +msgstr "[FILE...]" + +#: ../shell/main.c:325 +msgid "MATE Document Viewer" +msgstr "Shikues dokumentesh pĆ«r MATE" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Opcionet booleane nĆ« dispozicion, true aktivon krijimin e miniaturave dhe " +"false Ƨaktivon krijimin e miniaturave tĆ« reja" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Aktivo krijimin e miniaturave tĆ« dokumentĆ«ve PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Komanda pĆ«r miniaturat e dokumentĆ«ve PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"Komanda e vlefshme plus argumentĆ«t pĆ«r krijimin e miniaturave tĆ« dokumentit " +"PDF. Shiko dokumentet e krijuesit tĆ« miniaturave caja pĆ«r informacione " +"tĆ« mĆ«tejshme." + diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 00000000..7dac6958 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,2123 @@ +# Serbian translation of evince +# Courtesy of Prevod.org team (http://prevod.org/) -- 2005-2009. +# +# This file is distributed under the same license as the evince package. +# +# Maintainer: ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org> +# Reviewed on 2005-09-03 by: ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org> +# Translated on 2007-03-12 by: ŠŠ³Š¾Ń ŠŠµŃŃŠ¾ŃŠ¾Š²ŠøŃ <igor@prevod.org> +# ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ <gpopac@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-08-02 18:58+0000\n" +"PO-Revision-Date: 2010-08-18 10:52+0200\n" +"Last-Translator: ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ <gpopac@gmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠøŠ»ŠøŠŗŠ¾Š¼ ŠæŠ¾ŠŗŃŠµŃŠ°ŃŠ° Š½Š°ŃŠµŠ“Š±Šµ ā%sā ŃŠ°Š“Šø ŃŠ°ŃŠæŠ°ŠŗŠ¾Š²Š°ŃŠ° ŃŃŃŠøŠæŠ°: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŠŠ°ŃŠµŠ“Š±Š° ā%sā Š½ŠøŃŠµ ŃŃŠæŠµŠ»Š° Š“Š° Š¾ŃŠæŠ°ŠŗŃŃŠµ ŃŃŃŠøŠæ." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ŠŠ°ŃŠµŠ“Š±Š° %s Š½ŠøŃŠµ ŠøŠ·Š°ŃŠ»Š° Š½Š¾ŃŠ¼Š°Š»Š½Š¾." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ŠŠ²Š¾ Š½ŠøŃŠµ ŠŠŠŠ Š²ŃŃŃŠ° Š·Š° ŃŃŃŠøŠæ: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŃŠµŠ¼ Š½Š°ŃŠ“Š±Ń Š·Š° ŃŠ°ŃŠæŠ°ŠŗŠ¾Š²Š°ŃŠµ Š¾Š²Šµ Š²ŃŃŃŠµ ŃŃŃŠøŠæŠ°" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° ŠŠŠŠ Š²ŃŃŃŠ°" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° ŃŠµ Š¾ŃŃŠµŃŠµŠ½Š°" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ŠŠµŠ¼Š° Š“Š°ŃŠ¾ŃŠµŠŗŠ° Ń Š°ŃŃ ŠøŠ²Šø" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "ŠŠøŃŠµŠ“Š½Š° ŃŠ»ŠøŠŗŠ° Š½ŠøŃŠµ ŠæŃŠ¾Š½Š°ŃŠµŠ½Š° Ń Š°ŃŃ ŠøŠ²Šø %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ŠŠ°Š²ŠøŠ»Š° ŃŠµ Š³ŃŠµŃŠŗŠ° ŠæŃŠøŠ»ŠøŠŗŠ¾Š¼ Š±ŃŠøŃŠ°ŃŠ° ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ŠŃŠµŃŠŗŠ° %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Š”ŃŃŠøŠæŠ¾Š²Šø" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ŠŃŠŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŠ¼Š° Š½ŠµŠøŃŠæŃŠ°Š²Š°Š½ Š¾Š±Š»ŠøŠŗ" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠµ ŃŠ°ŃŃŠ°Š²ŃŠµŠ½ ŠøŠ· Š½ŠµŠŗŠ¾Š»ŠøŠŗŠ¾ Š“Š°ŃŠ¾ŃŠµŠŗŠ°. ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠøŃŃŃŠæŠøŠ¼ ŃŠµŠ“Š½Š¾Ń ŠøŠ»Šø " +"Š²ŠøŃŠµ Š¾Š²ŠøŃ Š“Š°ŃŠ¾ŃŠµŠŗŠ°." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ŠŃŠŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ŠŠŠ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŠ¼Š° Š½ŠµŠøŃŠæŃŠ°Š²Š°Š½ Š¾Š±Š»ŠøŠŗ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ŠŠŠ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ŠŠ²Š°Ń ŃŠ°Š“ ŃŠµ Ń ŃŠ°Š²Š½Š¾Š¼ Š“Š¾Š¼ŠµŠ½Ń" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ŠŠ°" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ŠŠµ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š²ŃŃŃŠ° ŃŠ»Š¾Š²Š½Š¾Š³ Š»ŠøŠŗŠ°" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ŠŠµŠ· ŠøŠ¼ŠµŠ½Š°" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Š£Š³ŃŠµŠ¶Š“ŠµŠ½Šø ŠæŠ¾Š“ŃŠŗŃŠæ" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Š£Š³ŃŠµŠ¶Š“ŠµŠ½" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ŠŠøŃŠµ ŃŠ³ŃŠµŠ¶Š“ŠµŠ½" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ŠŠŠ¤ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŠŠµŠøŃŠæŃŠ°Š²Š°Š½ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Š”Š»Š°ŃŠ“Š¾Š²Šø ŠæŃŠ¾Š³ŃŠ°Š¼Š° āŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠ°ā" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠµŠ¼Š° Š³ŃŠµŃŠŗŠµ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµŠ“Š¾Š²Š¾ŃŠ½Š¾ Š¼ŠµŠ¼Š¾ŃŠøŃŠµ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ŠŠøŃŠµ ŠæŃŠ¾Š½Š°ŃŠµŠ½ ŠŠŠ ŠæŠ¾ŃŠæŠøŃ" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ŠŠøŃŠµ ŠøŃŠæŃŠ°Š²Š½Š° ŠŠŠ Š“Š°ŃŠ¾ŃŠµŠŗŠ°" + +# ŠŠøŃŠµ ŃŠøŠ³ŃŃŠ½Š¾ Š“Š° Š»Šø ŃŠµ Š¼ŠøŃŠ»Šø Š½Š° Š²ŠøŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŠ° Ń zip Š°ŃŃ ŠøŠ²Šø, ŠøŠ»Šø Š²ŠøŃŠµ zip Š°ŃŃ ŠøŠ²Š° Ń ŠæŃŠøŠ»Š¾Š³Ń. +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠŠøŃŃ ŠæŠ¾Š“ŃŠ¶Š°Š½Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø ŃŠ° Š²ŠøŃŠµ ŠŠŠ Š“Š°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ Š“Š°ŃŠ¾ŃŠµŠŗŃ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠ¾ŃŠøŃŠ°Š¼ ŠæŠ¾Š“Š°ŃŠŗŠµ ŠøŠ· Š“Š°ŃŠ¾ŃŠµŠŗŠµ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠ¾Š½Š°ŃŠµŠ¼ Š“Š°ŃŠ¾ŃŠµŠŗŃ Ń ŠŠŠ Š°ŃŃ ŠøŠ²Šø" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š³ŃŠµŃŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŃŠ°ŃŃŠ²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŠŠ¾ŃŃŃŠŗŃŠøŠæŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŃŠ°ŃŃŠ²Š°ŃŠ¼ ŠæŃŠøŠ»Š¾Š³ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ ŠæŃŠøŠ»Š¾Š³ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ ŠæŃŠøŠ»Š¾Š³ ā%sā" + +# ŠŠøŃŠµ ŃŠøŠ³ŃŃŠ½Š¾ Š“Š° Š»Šø ŃŠµ Š¼ŠøŃŠ»Šø Š½Š° Š²ŠøŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŠ° Ń zip Š°ŃŃ ŠøŠ²Šø, ŠøŠ»Šø Š²ŠøŃŠµ zip Š°ŃŃ ŠøŠ²Š° Ń ŠæŃŠøŠ»Š¾Š³Ń. +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Š¢ŠøŠæ Š“Š°ŃŠ¾ŃŠµŠŗŠµ %s (%s) Š½ŠøŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Š”Š²Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Š”Š²Šµ Š“Š°ŃŠ¾ŃŠµŠŗŠµ" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŠæŃŠ°Š²ŠøŠ¼ ŠæŃŠøŠ²ŃŠµŠ¼ŠµŠ½Ń Š“Š°ŃŠ¾ŃŠµŠŗŃ: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŠæŃŠ°Š²ŠøŠ¼ ŠæŃŠøŠ²ŃŠµŠ¼ŠµŠ½Šø Š“ŠøŃŠµŠŗŃŠ¾ŃŠøŃŃŠ¼: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ŠŠ²Š¾ Š½ŠøŃŠµ ŠøŃŠæŃŠ°Š²Š½Š° .desktop Š“Š°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠøŃŠµ ŠæŃŠµŠæŠ¾Š·Š½Š°ŃŠ° desktop Š“Š°ŃŠ¾ŃŠµŠŗŠ° Ń ŠøŠ·Š“Š°ŃŃ ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ŠŠ¾ŠŗŃŠµŃŠµŠ¼ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼ Š½Šµ ŠæŃŠøŃ Š²Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ ŠøŠ· ŠŗŠ¾Š¼Š°Š½Š“Š½Šµ Š»ŠøŠ½ŠøŃŠµ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ° Š¾ŠæŃŠøŃŠ° ŠæŃŠø ŠæŠ¾ŠŗŃŠµŃŠ°ŃŃ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠ¾ŃŠ»ŠµŠ“ŠøŠ¼ Š°Š“ŃŠµŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Ń ŃŠ½Š¾Ń āType=ŠŠ“ŃŠµŃŠ°ā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŠøŃŠµ ŠøŠ·Š²ŃŃŠ½Š° ŃŃŠ°Š²ŠŗŠ°" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ŠŠ½ŠµŠ¼Š¾Š³ŃŃŠø Š²ŠµŠ·Šø ŃŠ° ŃŠæŃŠ°Š²Š½ŠøŠŗŠ¾Š¼ ŃŠµŃŠøŃŠµ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ŠŠ·Š°Š±ŠµŃŠøŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŃ ŃŠ° ŃŠ°ŃŃŠ²Š°Š½ŠøŠ¼ ŠæŠ¾Š“ŠµŃŠ°Š²Š°ŃŠøŠ¼Š°" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ŠŠŠ¢ŠŠ¢ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ŠŠ“ŃŠµŠ“ŠøŃŠµ ŠŠ ŃŠæŃŠ°Š²Š½ŠøŠŗŠ° ŃŠµŃŠøŃŠµ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ŠŠæŃŠøŃŠµ ŃŠæŃŠ°Š²Š½ŠøŠŗŠ° ŃŠµŃŠøŃŠµ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø Š¾ŠæŃŠøŃŠµ ŃŠæŃŠ°Š²Š½ŠøŠŗŠ° ŃŠµŃŠøŃŠµ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_ŠŃŠµŠ¼ŠµŃŃŠø Š½Š° ŠæŠ°Š»ŠµŃŃ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ŠŃŠµŠ¼ŠµŃŃŠø ŠøŠ·Š°Š±ŃŠ°Š½Šø ŠæŃŠµŠ“Š¼ŠµŃ Š½Š° ŠæŠ°Š»ŠµŃŃ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Š£ŠŗŠ»Š¾Š½Šø ŃŠ° ŠæŠ°Š»ŠµŃŠµ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Š£ŠŗŠ»Š¾Š½Šø ŠøŠ·Š°Š±ŃŠ°Š½Šø ŠµŠ»ŠµŠ¼ŠµŠ½Ń ŃŠ° ŠæŠ°Š»ŠµŃŠµ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_ŠŠ±ŃŠøŃŠø ŠæŠ°Š»ŠµŃŃ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Š£ŠŗŠ»Š°ŃŠ° ŠøŠ·Š°Š±ŃŠ°Š½Ń ŠæŠ°Š»ŠµŃŃ Š°Š»Š°ŃŠŗŠø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Š Š°Š·Š“Š²Š°ŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5735 +msgid "Best Fit" +msgstr "ŠŠ°ŃŠ±Š¾ŃŠµ ŃŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŠæŃŠµŠ¼Š° ŃŠøŃŠøŠ½Šø ŃŃŃŠ°Š½Šµ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°ŃŃŠµ Š²ŠøŃŠµŃŃŃŠ°Š½ŠøŃŠ½Šµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŃŠµŠ²Š°Š·ŠøŃŠø Š¾Š³ŃŠ°Š½ŠøŃŠµŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ŠŃŠµŠ²Š°Š·ŠøŠ»Š°Š·Šø Š¾Š³ŃŠ°Š½ŠøŃŠµŃŠ° ŠŗŠ¾ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ³ŃŠ°ŃŠµŠ½Š¾ ŃŠ°Š“ŃŠ¶Šø, ŠŗŠ°Š¾ ŃŃŠ¾ ŃŠµ Š·Š°Š±ŃŠ°Š½Š° " +"ŃŠ¼Š½Š¾Š¶Š°Š²Š°ŃŠ° ŠøŠ»Šø ŃŃŠ°Š¼ŠæŠµ " + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ŠŠ±ŃŠøŃŠø ŠæŃŠøŠ²ŃŠµŠ¼ŠµŠ½Ń Š“Š°ŃŠ¾ŃŠµŠŗŃ" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° ŃŠ° ŠæŠ¾Š“ŃŠ°Š²ŠŗŠ°Š¼Š° ŃŃŠ°Š¼ŠæŠµ" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ŠŠ½Š¾Š¼ ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ŠŠøŃŠµ ŃŃŠæŠµŠ»Š¾ ŃŃŠ°Š¼ŠæŠ°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠ¾Š½Š°ŃŠµŠ¼ ŃŃŠ°Š¼ŠæŠ°Ń ā%sā" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5450 +msgid "_Previous Page" +msgstr "_ŠŃŠµŃŃ Š¾Š“Š½Š° ŃŃŃŠ°Š½Š°" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5451 +msgid "Go to the previous page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠµŃŃ Š¾Š“Š½Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5453 +msgid "_Next Page" +msgstr "_Š”Š»ŠµŠ“ŠµŃŠ° ŃŃŃŠ°Š½Š°" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5454 +msgid "Go to the next page" +msgstr "ŠŠ“Šø Š½Š° ŃŠ»ŠµŠ“ŠµŃŃ ŃŃŃŠ°Š½Ń" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5437 +msgid "Enlarge the document" +msgstr "Š£Š²ŠµŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5440 +msgid "Shrink the document" +msgstr "Š£Š¼Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ŠØŃŠ°Š¼ŠæŠ°Ń" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5406 +msgid "Print this document" +msgstr "ŠŠ“ŃŃŠ°Š¼ŠæŠ°Ń Š¾Š²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5552 +msgid "_Best Fit" +msgstr "ŠŠ°Ń_Š±Š¾ŃŠµ ŃŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5553 +msgid "Make the current document fill the window" +msgstr "ŠŠµŠŗŠ° ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾ŠæŃŠ½Šø ŠæŃŠ¾Š·Š¾Ń" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5555 +msgid "Fit Page _Width" +msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŠæŃŠµŠ¼Š° _ŃŠøŃŠøŠ½Šø" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5556 +msgid "Make the current document fill the window width" +msgstr "ŠŠµŠŗŠ° ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾ŠæŃŠ½Šø ŃŠøŃŠøŠ½Ń ŠæŃŠ¾Š·Š¾ŃŠ°" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5657 +msgid "Page" +msgstr "Š”ŃŃŠ°Š½Š°" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5658 +msgid "Select Page" +msgstr "ŠŠ·Š°Š±ŠµŃŠø ŃŃŃŠ°Š½Ń" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŠ°ŃŠ»Š¾Š²:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŠµŃŃŠ¾:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š¢ŠµŠ¼Š°:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ŠŃŃŠ¾Ń:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŠŃŃŃŠ½Šµ ŃŠµŃŠø:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ŠŃŠ¾ŠøŠ·Š²Š¾ŃŠ°Ń:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Š¢Š²Š¾ŃŠ°Ń:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ŠŠ°ŠæŃŠ°Š²ŃŠµŠ½:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ŠŠ·Š¼ŠµŃŠµŠ½:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ŠŃŠ¾Ń ŃŃŃŠ°Š½ŠøŃŠ°:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ŠŠæŃŠøŠ¼ŠøŠ·Š¾Š²Š°Š½:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ŠŠ±Š»ŠøŠŗŃ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ŠŠ°ŃŃŠøŃŠ°:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ŠŠµŠ»ŠøŃŠøŠ½Š° ŠæŠ°ŠæŠøŃŠ°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ŠŠøŃŃŠ°" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f ŠøŠ½ŃŠ°" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Š£ŃŠæŃŠ°Š²Š½Š¾ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ŠŠ¾Š»Š¾Š¶ŠµŠ½Š¾ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Š¾Š“ %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr " Š¾Š“ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "Š£ŃŠøŃŠ°Š²Š°Š¼..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ŠŃŠøŠæŃŠµŠ¼Š°Š¼ Š·Š° ŃŃŠ°Š¼ŠæŃ..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ŠŠ°Š²ŃŃŠ°Š²Š°Š¼..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŠØŃŠ°Š¼ŠæŠ°Š¼ %d. ŃŃŃŠ°Š½ŠøŃŃ Š¾Š“ %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ŠØŃŠ°Š¼ŠæŠ°ŃŠµ Š½ŠøŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½Š¾ Š·Š° Š¾Š²Š°Ń ŃŃŠ°Š¼ŠæŠ°Ń." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ŠŠµŠøŃŠæŃŠ°Š²Š°Š½ Š¾ŠæŃŠµŠ³ ŃŃŃŠ°Š½ŠøŃŠ°" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Š£ŠæŠ¾Š·Š¾ŃŠµŃŠµ" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ŠŠ°Š“Š°ŃŠø Š¾ŠæŃŠµŠ³ Š·Š° ŃŃŠ°Š¼ŠæŃ Š½Šµ ŃŠ°Š“ŃŠ¶Šø Š½Šø ŃŠµŠ“Š½Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Š Š°Š·Š²ŃŃŠø ŃŃŃŠ°Š½ŠøŃŃ:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Š£Š¼Š°ŃŠø Š½Š° Š¾Š±Š»Š°ŃŃ Š·Š° ŃŃŠ°Š¼ŠæŃ" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Š£ŠŗŠ»Š¾ŠæŠø Ń Š¾Š±Š»Š°ŃŃ Š·Š° ŃŃŠ°Š¼ŠæŃ" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"Š Š°Š·Š²Š»Š°ŃŠø ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŃŠ°ŠŗŠ¾ Š“Š° ŃŠµ ŃŠŗŠ»Š¾ŠæŠµ Ń ŠøŠ·Š°Š±ŃŠ°Š½Ń ŃŃŃŠ°Š½ŠøŃŃ ŃŃŠ°Š¼ŠæŠ°ŃŠ°. " +"ŠŠ·Š°Š±ŠµŃŠøŃŠµ ŃŠµŠ“Š½Š¾ Š¾Š“ ŠæŃŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ :\n" +"\n" +"ā¢ āŠŠøŃŃŠ°ā: ŠŠµ ŃŠ°Š·Š²Š»Š°ŃŠø ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°.\n" +"\n" +"ā¢ āŠ£Š¼Š°ŃŠø Š½Š° Š¾Š±Š»Š°ŃŃ Š·Š° ŃŃŠ°Š¼ŠæŃā: Š£Š¼Š°ŃŃŃŠµ ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŠŗŠ¾ŃŠµ ŃŃ Š²ŠµŃŠµ Š¾Š“ " +"Š¾Š±Š»Š°ŃŃŠø Š·Š° ŃŃŠ°Š¼ŠæŃ ŃŠ°ŠŗŠ¾ Š“Š° ŃŠµ ŃŠŗŠ»Š¾ŠæŠµ Š½Š° ŠæŠ°ŠæŠøŃ ŃŃŠ°Š¼ŠæŠ°ŃŠ°.\n" +"\n" +"ā¢ āŠ£ŠŗŠ»Š¾ŠæŠø Ń Š¾Š±Š»Š°ŃŃ Š·Š° ŃŃŠ°Š¼ŠæŃā: Š”Š¼Š°ŃŃŃŠµ ŠøŠ»Šø ŠæŠ¾Š²ŠµŃŠ°Š²Š° ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ŃŠ°ŠŗŠ¾ " +"Š“Š° ŃŠµ ŃŠŗŠ»Š¾ŠæŠµ Š½Š° ŠæŠ°ŠæŠøŃ ŃŃŠ°Š¼ŠæŠ°ŃŠ°.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Š”Š°Š¼ ŃŠ¾ŃŠøŃŠ°Ń Šø ŃŠµŠ½ŃŃŠøŃŠ°Ń" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ŠŠŗŃŠµŃŠµ ŃŠ²Š°ŠŗŃ ŃŃŃŠ°Š½ŠøŃŃ ŃŃŠ°Š¼ŠæŠ°ŃŠ°, ŃŠ°ŠŗŠ¾ Š“Š° Š±ŃŠ“Šµ ŠøŃŃŠ° Š¾Š½Š¾Ń ŃŠ½ŃŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Šø " +"ŠæŠ¾ŃŃŠ°Š²ŃŠ° ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½Š° ŃŃŠµŠ“ŠøŠ½Ń ŠæŠ°ŠæŠøŃŠ° Š·Š° ŃŃŠ°Š¼ŠæŃ." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ŠŠ“ŃŠµŠ“Šø Š²ŠµŠ»ŠøŃŠøŠ½Ń ŃŃŃŠ°Š½ŠøŃŠµ Š½Š° Š¾ŃŠ½Š¾Š²Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ŠŠ¾ŃŃŠ°Š²ŃŠ° Š²ŠµŠ»ŠøŃŠøŠ½Ń ŃŠ²Š°ŠŗŠµ Š¾Š“ŃŃŠ°Š¼ŠæŠ°Š½Šµ ŃŃŃŠ°Š½ŠøŃŠµ Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Ń ŃŃŃŠ°Š½ŠøŃŠµ Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Š Š°Š“ ŃŠ° ŃŃŃŠ°Š½ŠøŃŠ°Š¼Š°" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Š½Šµ Š¼Š¾Š³Ń Š“Š° Š¾Š“ŃŃŠ°Š¼ŠæŠ°Š¼ ŃŃŃŠ°Š½ŠøŃŃ %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ŠŠ»ŠøŠ·Š°Ń ŠæŃŠµŠ¼Š° Š³Š¾ŃŠµ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ŠŠ»ŠøŠ·Š°Ń ŠæŃŠµŠ¼Š° Š“Š¾Š»Šµ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š°Š½ ŠµŠŗŃŠ°Š½ Š½Š°Š³Š¾ŃŠµ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š°Š½ ŠµŠŗŃŠ°Š½ Š½Š°Š“Š¾Š»Šµ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ŠŃŠµŠ³Š»ŠµŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "Š”ŠŗŠ¾ŃŠø Š“Š¾ ŃŃŃŠ°Š½Šµ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ŠŃŠ°Ń ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠµ. ŠŠ»ŠøŠŗŠ½ŠøŃŠµ Š·Š° ŠøŠ·Š»Š°Š·Š°Šŗ." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠ²Ń ŃŃŃŠ°Š½Ń" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠµŃŃ Š¾Š“Š½Ń ŃŃŃŠ°Š½Ń" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ŠŠ“Šø Š½Š° ŃŠ»ŠµŠ“ŠµŃŃ ŃŃŃŠ°Š½Ń" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ŠŠ“Šø Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“ŃŃ ŃŃŃŠ°Š½Ń" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Ń" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Š¢ŃŠ°Š¶Šø" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ŠŠ“Šø Š½Š° ŃŃŃŠ°Š½Ń %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŠ“Šø Š½Š° %s Š“Š°ŃŠ¾ŃŠµŠŗŠµ ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŠ“Šø Š½Š° Š“Š°ŃŠ¾ŃŠµŠŗŃ ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "ŠŠ¾ŠŗŃŠµŠ½Šø %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Š¢ŃŠ°Š¶Šø:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5423 +msgid "Find Pre_vious" +msgstr "Š¢ŃŠ°Š¶Šø ŠæŃŠµ_ŃŃ Š¾Š“Š½Š¾" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Š¢ŃŠ°Š¶Šø ŠæŃŠµŃŃ Š¾Š“Š°Š½ ŠøŠ·ŃŠ°Š· Ń Š½ŠøŠ·Ń Š·Š° ŠæŃŠµŃŃŠ°Š¶ŠøŠ²Š°ŃŠµ" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5421 +msgid "Find Ne_xt" +msgstr "ŠŃŠ¾Š½Š°ŃŠø _ŃŠ»ŠµŠ“ŠµŃŠµ" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Š¢ŃŠ°Š¶Šø ŃŠ»ŠµŠ“ŠµŃŠø ŠøŠ·ŃŠ°Š· Ń Š½ŠøŠ·Ń Š·Š° ŠæŃŠµŃŃŠ°Š¶ŠøŠ²Š°ŃŠµ" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Š_Š°Š²ŠøŃŠ½Š¾ Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "Š£ŠŗŃŃŃŃŃŠµ ŠæŃŠµŃŃŠ°Š³Ń Š¾ŃŠµŃŃŠøŠ²Ń Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Ń ŃŠ»Š¾Š²Š°" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ŠŠŗŠ¾Š½ŠøŃŠ°:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "ŠŠµŠ»ŠµŃŠŗŠ°" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "ŠŠ¾Š¼ŠµŠ½ŃŠ°Ń" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ŠŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "ŠŠ¾Š¼Š¾Ń" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ŠŠ¾Š²Šø ŠæŠ°ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ŠŠ°ŃŃŃ" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Š£Š¼ŠµŃŠ½Šø" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ŠŃŃŃŠøŃ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ŠŃŃŠ³" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "ŠŠµŠæŠ¾Š·Š½Š°ŃŠ¾" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "ŠŃŠ¾Š±ŠøŠ½Šµ Š·Š°Š±ŠµŠ»ŠµŃŠŗŠµ" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "ŠŠ¾ŃŠ°:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#| msgid "Title:" +msgid "Style:" +msgstr "Š”ŃŠøŠ»:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "ŠŃŠ¾Š²ŠøŠ“Š½Š¾" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "ŠŠµŠæŃŠ¾Š²ŠøŠ“Š½Š¾" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ŠŠ¾ŃŠµŃŠ½Š¾ ŃŃŠ°ŃŠµ ŠæŃŠ¾Š·Š¾ŃŠ°:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Openā¦" +msgid "Open" +msgstr "ŠŃŠ²Š¾ŃŠµŠ½" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ŠŠ°ŃŠ²Š¾ŃŠµŠ½" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ŠŠ¾ŠŗŃŠµŃŠ°ŃŠµ Ń ŃŠµŠ¶ŠøŠ¼Ń ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŠµ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ¾Š·ŠøŠ½ŠŗŠ° Š·Š° Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŠŃŠµŠ²Š¾Š“ŠøŠ¼ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ŠŃŠµŠ²ŠµŠ“ŠµŠ½Š¾ ŃŠµ %d Š¾Š“ %d Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ŠŃŠµŠ²Š¾Š“ŠøŠ¼ Š¼ŠµŃŠ°ŠæŠ¾Š“Š°ŃŠŗŠµ" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Š¤Š¾ŃŠ¼Š°Ń Š¼ŠµŃŠ°ŠæŠ¾Š“Š°ŃŠ°ŠŗŠ° ŠŗŠ¾ŃŠµ ŠŗŠ¾ŃŠøŃŃŠø ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° ŃŠµ ŠæŃŠ¾Š¼ŠµŃŠµŠ½. ŠŠ¾ŃŠ°ŃŠµ Š“Š° " +"ŃŠ°ŃŠµŠŗŠ°ŃŠµ Š½Š° ŠæŃŠµŠ²Š¾ŃŠµŃŠµ ŠæŠ¾Š“Š°ŃŠ°ŠŗŠ° Ń Š½Š¾Š²Šø ŃŠ¾ŃŠ¼Š°Ń ŠøŠ»Šø Š¾Š½Šø Š½ŠµŃŠµ Š±ŠøŃŠø ŃŠ°ŃŃŠ²Š°Š½Šø." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ŠŃŠ²Š¾ŃŠø ŃŠŗŠ¾ŃŠ¾ ŠŗŠ¾ŃŠøŃŃŠµŠ½Šø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ŠŠ²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠµ Š·Š°ŠŗŃŃŃŠ°Š½ Šø Š¼Š¾Š¶Šµ ŃŠµ ŠæŃŠ¾ŃŠøŃŠ°ŃŠø ŃŠµŠ“ŠøŠ½Š¾ ŃŠ· ŃŠ½Š¾Ń ŠøŃŠæŃŠ°Š²Š½Šµ " +"Š»Š¾Š·ŠøŠ½ŠŗŠµ." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_ŠŃŠŗŃŃŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Š£ŠŗŃŃŠ°ŃŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŃ" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ŠŠ¾Š·ŠøŠ½ŠŗŠ° ŃŠµ Š¾Š±Š°Š²ŠµŠ·Š½Š°" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā ŃŠµ Š·Š°ŠŗŃŃŃŠ°Š½ Šø Š½ŠµŠ¾ŠæŃ Š¾Š“Š½Š° ŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŠ° ŠæŃŠµ Š½ŠµŠ³Š¾ ŃŃŠ¾ ŃŠµ Š¼Š¾Š¶Šµ " +"Š¾ŃŠ²Š¾ŃŠøŃŠø." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ŠŠ¾Š·ŠøŠ½ŠŗŠ°:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_ŠŠ“Š¼Š°Ń Š·Š°Š±Š¾ŃŠ°Š²Šø Š»Š¾Š·ŠøŠ½ŠŗŃ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Š_Š°ŠæŠ°Š¼ŃŠø Š»Š¾Š·ŠøŠ½ŠŗŃ Š“Š¾ Š¾Š“ŃŠ°Š²Šµ" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_ŠŠ°ŠæŠ°Š¼ŃŠø ŃŃŠ°ŃŠ½Š¾" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ŠŃŠ¾Š±ŠøŠ½Šµ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ŠŠæŃŃŠµ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Š”Š»Š¾Š²Š½Šø Š»ŠøŠŗ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ŠŠøŃŠµŠ½ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Š¤Š¾Š½Ń" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Š”ŠŗŃŠæŃŠ°Š¼ ŠæŠ¾Š“Š°ŃŠŗŠµ Š¾ ŃŠ¾Š½ŃŃ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Š£ŃŠ»Š¾Š²Šø ŠŗŠ¾ŃŠøŃŃŠµŃŠ°" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Š¢ŠµŠŗŃŃ Š»ŠøŃŠµŠ½ŃŠµ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ŠŠ¾Ń ŠæŠ¾Š“Š°ŃŠ°ŠŗŠ°" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Š”ŠæŠøŃŠ°Šŗ" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#| msgid "Location:" +msgid "Annotations" +msgstr "ŠŠ°Š±ŠµŠ»ŠµŃŠŗŠµ" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "Š¢ŠµŠŗŃŃ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ŠŠ¾Š“Š°Ń Š·Š°Š±ŠµŠ»ŠµŃŠŗŃ" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ŠŠ¾Š“Š°Ń" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "The document contains no pages" +msgid "Document contains no annotations" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ ŃŠ°Š“ŃŠ¶Šø Š·Š°Š±ŠµŠ»ŠµŃŠŗŠµ" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ŠŃŠøŠ»Š¾Š·Šø" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Š”Š»Š¾ŃŠµŠ²Šø" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ŠØŃŠ°Š¼ŠæŠ°Ń..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ŠŠ¾ŠæŠøŃ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ŠŠ°Š»Šø ŠæŃŠøŠŗŠ°Š·Šø" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŃŠ°Š½ŠøŃŠ° %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ ŃŠ°Š“ŃŠ¶Šø ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ°Š“ŃŠ¶Šø ŃŠ°Š¼Š¾ ŠæŃŠ°Š·Š½Šµ ŃŃŃŠ°Š½ŠøŃŠµ" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "Š£ŃŠøŃŠ°Š²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŠ· ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŠŃŠµŃŠ·ŠøŠ¼Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŃŃŠøŃŠ°Š¼ ŃŠ“Š°ŃŠµŠ½Ń Š“Š°ŃŠ¾ŃŠµŠŗŃ." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "ŠŠ·Š½Š¾Š²Š° ŃŃŠøŃŠ°Š²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŠ· %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŠ¾Š½Š¾Š²Š¾ ŃŃŠøŃŠ°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ŠŃŠ²Š¾ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Š§ŃŠ²Š°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Ń %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Š§ŃŠ²Š°Š¼ ŠæŃŠøŠ»Š¾Š³ Ń %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Š§ŃŠ²Š°Š¼ ŃŠ»ŠøŠŗŃ Ń %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° Š½ŠøŃŠµ Š¼Š¾Š³Š»Š° Š±ŠøŃŠø ŃŠ°ŃŃŠ²Š°Š½Š° ŠŗŠ°Š¾ ā%sā." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ŠØŠ°ŃŠµŠ¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ŠØŠ°ŃŠµŠ¼ ŠæŃŠøŠ»Š¾Š³ (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ŠØŠ°ŃŠµŠ¼ ŃŠ»ŠøŠŗŃ (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Š”Š°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŃ" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Š·Š°Š“ŃŠ¶ŠµŃŠµ ŃŠµŠŗŠ° Ń Š·Š°ŠŗŠ°Š·Š°Š½ŠøŠ¼" +msgstr[1] "%d Š·Š°Š“ŃŠ¶ŠµŃŠ° ŃŠ°ŠŗŠ°ŃŃ Ń Š·Š°ŠŗŠ°Š·Š°Š½ŠøŠ¼" +msgstr[2] "%d Š·Š°Š“ŃŠ¶ŠµŃŠ° ŃŠµŠŗŠ°ŃŃ Ń Š·Š°ŠŗŠ°Š·Š°Š½ŠøŠ¼" +msgstr[3] "ŠŠ°Š“ŃŠ¶ŠµŃŠµ ŃŠµŠŗŠ° Ń Š·Š°ŠŗŠ°Š·Š°Š½ŠøŠ¼" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ŠØŃŠ°Š¼ŠæŠ°Š¼ Š·Š°Š“ŃŠ¶ŠµŃŠµ ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ°Š“ŃŠ¶Šø Š¾Š±ŃŠ°Š·Š°Ń ŃŠ° ŠæŠ¾ŃŠøŠ¼Š° ŠŗŠ¾ŃŠ° ŃŃ ŠæŠ¾ŠæŃŃŠµŠ½Š°. Š£ŠŗŠ¾Š»ŠøŠŗŠ¾ Š½Šµ ŃŠ°ŃŃŠ²Š°ŃŠµ " +"ŠŗŠ¾ŠæŠøŃŃ, ŠøŠ·Š¼ŠµŠ½Šµ ŃŠµ Š±ŠøŃŠø ŃŃŠ°ŃŠ½Š¾ ŠøŠ·Š³ŃŠ±ŃŠµŠ½Šµ." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠ°Š“ŃŠ¶Šø Š½Š¾Š²Šµ ŠøŠ»Šø ŠøŠ·Š¼ŠµŃŠµŠ½Šµ Š·Š°Š±ŠµŠ»ŠµŃŠŗŠµ. Š£ŠŗŠ¾Š»ŠøŠŗŠ¾ Š½Šµ ŃŠ°ŃŃŠ²Š°ŃŠµ ŠŗŠ¾ŠæŠøŃŃ, " +"ŠøŠ·Š¼ŠµŠ½Šµ ŃŠµ Š±ŠøŃŠø ŃŃŠ°ŃŠ½Š¾ ŠøŠ·Š³ŃŠ±ŃŠµŠ½Šµ." + +#: ../shell/ev-window.c:3413 +#, c-format +#| msgid "Wait until print job ā%sā finishes before closing?" +msgid "Save a copy of document ā%sā before closing?" +msgstr "ŠŠ° Š»Šø Š“Š° ŃŠ°ŃŃŠ²Š°Š¼ ŠŗŠ¾ŠæŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ā%sā?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ŠŠ°ŃŠ²Š¾ŃŠø _Š±ŠµŠ· ŃŃŠ²Š°ŃŠ°" + +#: ../shell/ev-window.c:3436 +#| msgid "Save a Copy" +msgid "Save a _Copy" +msgstr "_Š”Š°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŃ" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ŠŠ° Š»Šø Š“Š° ŃŠ°ŃŠµŠŗŠ°Š¼ Š“Š¾Šŗ ŃŠµ Š½Šµ Š¾Š“ŃŃŠ°Š¼ŠæŠ° Š·Š°Š“ŃŠ¶ŠµŃŠµ ā%sā?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ŠŠ¼Š° %d Š°ŠŗŃŠøŠ²Š½ŠøŃ Š·Š°Š“ŃŠ¶ŠµŃŠ° Š·Š° ŃŃŠ°Š¼ŠæŃ. ŠŠ° Š»Šø Š“Š° ŃŠ°ŃŠµŠŗŠ°Š¼ Š“Š¾Šŗ ŃŠµ Š½Šµ Š·Š°Š²ŃŃŠµ?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Š£ŠŗŠ¾Š»ŠøŠŗŠ¾ Š·Š°ŃŠ²Š¾ŃŠøŃŠµ ŠæŃŠ¾Š·Š¾Ń, Š·Š°Š“ŃŠ¶ŠµŃŠ° ŠŗŠ¾ŃŠ° ŃŠµŠŗŠ°ŃŃ Š½ŠµŃŠµ Š±ŠøŃŠø ŃŃŠ°Š¼ŠæŠ°Š½Š°." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "ŠŃŠµŠŗŠøŠ½Šø ŃŃŠ°Š¼ŠæŃ Šø _ŠøŠ·Š°ŃŠø" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ŠŠ·Š°ŃŠø _Š½Š°ŠŗŠ¾Š½ ŃŃŠ°Š¼ŠæŠµ" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Š£ŃŠµŃŠøŠ²Š°ŃŠµ ŠæŠ°Š»ŠµŃŠµ Š°Š»Š°ŃŠŗŠø" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ŠŃŠµŃŠŗŠ° Ń ŠæŃŠøŠŗŠ°Š·Ń ŠæŠ¾Š¼Š¾ŃŠø" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°.\n" +"ŠŠ¾ŃŠøŃŃŠø %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ŠŠ²ŠøŠ½Ń ŃŠµ ŃŠ»Š¾Š±Š¾Š“Š°Š½ ŃŠ¾ŃŃŠ²ŠµŃ; Š¼Š¾Š¶ŠµŃŠµ Š³Š° ŃŠøŃŠøŃŠø Šø/ŠøŠ»Šø Š¼ŠµŃŠ°ŃŠø ŠæŠ¾Š“ ŃŃŠ»Š¾Š²ŠøŠ¼Š° ŠŠ½Ń-" +"Š¾Š²Šµ ŠŠæŃŃŠµ ŠŠ°Š²Š½Šµ ŠŠøŃŠµŠ½ŃŠµ, ŠŗŠ°ŠŗŠ¾ ŃŠµ ŃŠ¾ Š¾Š±ŃŠ°Š²ŠøŠ»Š° ŠŠ°Š“ŃŠ¶Š±ŠøŠ½Š° Š”Š»Š¾Š±Š¾Š“Š½Š¾Š³ Š”Š¾ŃŃŠ²ŠµŃŠ°; " +"Š±ŠøŠ»Š¾ ŠæŠ¾Š“ Š²ŠµŃŠ·ŠøŃŠ¾Š¼ 2 Š»ŠøŃŠµŠ½ŃŠµ, ŠøŠ»Šø (ŠæŠ¾ ŠŠ°ŃŠµŠ¼ Š¼ŠøŃŃŠµŃŃ) Š½ŠµŠŗŠ¾Š¼ Š½Š°ŠŗŠ½Š°Š“Š½Š¾Š¼ " +"Š²ŠµŃŠ·ŠøŃŠ¾Š¼.\n" +".\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"ŠŠ²ŠøŠ½Ń ŃŠµ Š“ŠµŠ»Šø Ń Š½Š°Š¼ŠµŃŠø Š“Š° ŃŠµ Š±ŠøŃŠø ŠŗŠ¾ŃŠøŃŃŠ°Š½, Š°Š»Šø ŠŠŠ ŠŠŠŠŠŠ ŠŠŠ ŠŠŠ¦ŠŠŠ; ŃŠ°Šŗ ŃŠµ " +"Š½Šµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š° Š“Š° ŃŠµ ŠæŠ¾Š³Š¾Š“Š°Š½ Š·Š° Š¢Š ŠŠŠØŠŠ ŃŃŠµŃŃŠµ ŠøŠ»Šø Š“Š° ŠŠ ŠŠŠŠŠŠ ŠŠ ŠŠŠŠ£ " +"ŠŠŠŠŠ¢ŠŠŠ”Š¢. ŠŠ° Š²ŠøŃŠµ Š“ŠµŃŠ°ŃŠ° ŠæŃŠ¾ŃŠøŃŠ°ŃŃŠµ ŠŠæŃŃŃ ŠŠ°Š²Š½Ń ŠŠøŃŠµŠ½ŃŃ.\n" + +#: ../shell/ev-window.c:4571 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Š¢ŃŠµŠ±Š°Š»Šø ŃŃŠµ Š“Š° Š“Š¾Š±ŠøŃŠµŃŠµ ŃŠµŠ“Š°Š½ ŠæŃŠøŠ¼ŠµŃŠ°Šŗ ŠŠæŃŃŠµ ŠŠ°Š²Š½Šµ ŠŠøŃŠµŠ½ŃŠµ Š·Š°ŃŠµŠ“Š½Š¾ ŃŠ° Š¾Š²ŠøŠ¼ " +"ŠæŃŠ¾Š³ŃŠ°Š¼Š¾Š¼; Š°ŠŗŠ¾ ŃŠ¾ Š½ŠøŃŠµ ŃŠ»ŃŃŠ°Ń, ŠæŠøŃŠøŃŠµ Š½Š° Š°Š“ŃŠµŃŃ: Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1302, USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "ŠŠ²ŠøŠ½Ń" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2007 ŠŠ²ŠøŠ½ŃŠ¾Š²Šø Š°ŃŃŠ¾ŃŠø" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"ŠŠ°Š½ŠøŠ»Š¾ ŠØŠµŠ³Š°Š½ <danilo@gnome.org>\n" +"Š”Š»Š¾Š±Š¾Š“Š°Š½ Š. Š”ŃŠµŠ“Š¾ŃŠµŠ²ŠøŃ <slobo@akrep.be>\n" +"ŠŠ¾ŃŠ°Š½ Š Š°ŠŗŠøŃ <grakic@devbase.net>\n" +"ŠŠøŠ»Š¾Ń ŠŠ¾ŠæŠ¾Š²ŠøŃ <gpopac@gmail.com>\n" +"http://prevod.org ā ŠæŃŠµŠ²Š¾Š“ Š½Š° ŃŃŠæŃŠŗŠø ŃŠµŠ·ŠøŠŗ." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4868 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ŠæŠ¾Š³Š¾Š“Š°Šŗ Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" +msgstr[1] "%d ŠæŠ¾Š³Š¾ŃŠŗŠ° Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" +msgstr[2] "%d ŠæŠ¾Š³Š¾Š“Š°ŠŗŠ° Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" +msgstr[3] "%d ŠæŠ¾Š³Š¾Š“Š°Šŗ Š½Š° Š¾Š²Š¾Ń ŃŃŃŠ°Š½ŠøŃŠø" + +#: ../shell/ev-window.c:4876 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ŠŃŠµŠ¾ŃŃŠ°Š»Š¾ Š“Š° ŠæŃŠµŃŃŠ°Š¶Šø %3d%%" + +#: ../shell/ev-window.c:5389 +msgid "_File" +msgstr "_ŠŠ°ŃŠ¾ŃŠµŠŗŠ°" + +#: ../shell/ev-window.c:5390 +msgid "_Edit" +msgstr "_Š£ŃŠµŃŠøŠ²Š°ŃŠµ" + +#: ../shell/ev-window.c:5391 +msgid "_View" +msgstr "Š_ŃŠµŠ³Š»ŠµŠ“" + +#: ../shell/ev-window.c:5392 +msgid "_Go" +msgstr "_ŠŠ“Šø" + +#: ../shell/ev-window.c:5393 +msgid "_Help" +msgstr "_ŠŠ¾Š¼Š¾Ń" + +#. File menu +#: ../shell/ev-window.c:5396 ../shell/ev-window.c:5697 +msgid "_Openā¦" +msgstr "_ŠŃŠ²Š¾ŃŠø..." + +#: ../shell/ev-window.c:5397 ../shell/ev-window.c:5698 +msgid "Open an existing document" +msgstr "ŠŃŠ²Š¾ŃŠø ŠæŠ¾ŃŃŠ¾ŃŠµŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5399 +msgid "Op_en a Copy" +msgstr "ŠŃŠ²Š¾ŃŠø _ŠŗŠ¾ŠæŠøŃŃ" + +#: ../shell/ev-window.c:5400 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŠ²Š°ŃŠ° ŠŗŠ¾ŠæŠøŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Ń Š½Š¾Š²Š¾Š¼ ŠæŃŠ¾Š·Š¾ŃŃ" + +#: ../shell/ev-window.c:5402 +msgid "_Save a Copyā¦" +msgstr "_Š”Š°ŃŃŠ²Š°Ń ŠŗŠ¾ŠæŠøŃŃ..." + +#: ../shell/ev-window.c:5403 +msgid "Save a copy of the current document" +msgstr "Š§ŃŠ²Š° ŃŠµŠ“Š°Š½ ŠæŃŠøŠ¼ŠµŃŠ°Šŗ ŃŠµŠŗŃŃŠµŠ³ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#: ../shell/ev-window.c:5405 +msgid "_Printā¦" +msgstr "_ŠØŃŠ°Š¼ŠæŠ°Ń..." + +#: ../shell/ev-window.c:5408 +msgid "P_roperties" +msgstr "ŠŃŠ¾_Š±ŠøŠ½Šµ" + +#: ../shell/ev-window.c:5416 +msgid "Select _All" +msgstr "ŠŠ·Š°Š±ŠµŃŠø _ŃŠ²Šµ" + +#: ../shell/ev-window.c:5418 +msgid "_Findā¦" +msgstr ":Š¢ŃŠ°Š¶Šø..." + +#: ../shell/ev-window.c:5419 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ°ŃŠø ŃŠµŃ ŠøŠ»Šø ŠøŠ·ŃŠ°Š· Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/ev-window.c:5425 +msgid "T_oolbar" +msgstr "_ŠŠ»Š°ŃŠŗŠµ" + +#: ../shell/ev-window.c:5427 +msgid "Rotate _Left" +msgstr "Š Š¾ŃŠøŃŠ°Ń _Š»ŠµŠ²Š¾" + +#: ../shell/ev-window.c:5429 +msgid "Rotate _Right" +msgstr "Š Š¾ŃŠøŃŠ°Ń _Š“ŠµŃŠ½Š¾" + +#: ../shell/ev-window.c:5431 +msgid "Save Current Settings as _Default" +msgstr "Š”Š°ŃŃŠ²Š°Ń ŠæŠ¾Š“ŠµŃŠ°Š²Š°ŃŠ° ŠŗŠ°Š¾ ŠæŠ¾_Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š°" + +#: ../shell/ev-window.c:5442 +msgid "_Reload" +msgstr "_ŠŃŠ²ŠµŠ¶Šø" + +#: ../shell/ev-window.c:5443 +msgid "Reload the document" +msgstr "ŠŠ·Š½Š¾Š²Š° ŃŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5446 +msgid "Auto_scroll" +msgstr "ŠŠ¾Š¼ŠµŃŠ°Ń _ŠŗŠ»ŠøŠ·Š°Ń" + +#: ../shell/ev-window.c:5456 +msgid "_First Page" +msgstr "_ŠŃŠ²Š° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:5457 +msgid "Go to the first page" +msgstr "ŠŠ“Šø Š½Š° ŠæŃŠ²Ń ŃŃŃŠ°Š½Ń" + +#: ../shell/ev-window.c:5459 +msgid "_Last Page" +msgstr "_ŠŠ¾ŃŠ»ŠµŠ“ŃŠ° ŃŃŃŠ°Š½Š°" + +#: ../shell/ev-window.c:5460 +msgid "Go to the last page" +msgstr "ŠŠ“Šø Š½Š° ŠæŠ¾ŃŠ»ŠµŠ“ŃŃ ŃŃŃŠ°Š½Ń" + +#. Help menu +#: ../shell/ev-window.c:5464 +msgid "_Contents" +msgstr "_Š”Š°Š“ŃŠ¶Š°Ń" + +#: ../shell/ev-window.c:5467 +msgid "_About" +msgstr "_Š ŠæŃŠ¾Š³ŃŠ°Š¼Ń" + +#. Toolbar-only +#: ../shell/ev-window.c:5471 +msgid "Leave Fullscreen" +msgstr "ŠŠµ ŠæŃŠµŠŗŠ¾ ŃŠµŠ»Š¾Š³ ŠµŠŗŃŠ°Š½Š°" + +#: ../shell/ev-window.c:5472 +msgid "Leave fullscreen mode" +msgstr "ŠŠµ ŠæŃŠµŠŗŠ¾ ŃŠµŠ»Š¾Š³ ŠµŠŗŃŠ°Š½Š°" + +#: ../shell/ev-window.c:5474 +msgid "Start Presentation" +msgstr "ŠŃŃŃŠø ŠŗŠ°Š¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃ" + +#: ../shell/ev-window.c:5475 +msgid "Start a presentation" +msgstr "ŠŃŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠŗŠ°Š¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃ" + +#. View Menu +#: ../shell/ev-window.c:5534 +msgid "_Toolbar" +msgstr "ŠŠ»Š°_ŃŠŗŠµ" + +#: ../shell/ev-window.c:5535 +msgid "Show or hide the toolbar" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ ŠæŠ°Š»ŠµŃŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#: ../shell/ev-window.c:5537 +msgid "Side _Pane" +msgstr "ŠŠ¾ŃŠ½Š° _ŠæŠ¾Š²ŃŃ" + +#: ../shell/ev-window.c:5538 +msgid "Show or hide the side pane" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ Š±Š¾ŃŠ½Ń ŠæŠ¾Š²ŃŃ" + +#: ../shell/ev-window.c:5540 +msgid "_Continuous" +msgstr "_ŠŠµŠæŃŠµŠŗŠøŠ“Š½Š¾" + +#: ../shell/ev-window.c:5541 +msgid "Show the entire document" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŃŠøŃŠ°Š² Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5543 +msgid "_Dual" +msgstr "ŠŠ¾ _Š“Š²Šµ" + +#: ../shell/ev-window.c:5544 +msgid "Show two pages at once" +msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŃŠ²Šµ ŃŃŃŠ°Š½Šµ Š¾Š“ŃŠµŠ“Š½Š¾Š¼" + +#: ../shell/ev-window.c:5546 +msgid "_Fullscreen" +msgstr "_Š¦ŠµŠ¾ ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5547 +msgid "Expand the window to fill the screen" +msgstr "Š Š°ŃŠøŃŠø ŠæŃŠ¾Š·Š¾Ń Š“Š° ŠæŠ¾ŠæŃŠ½Šø ŃŠµŠ¾ ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5549 +msgid "Pre_sentation" +msgstr "ŠŃŠµ_Š·ŠµŠ½ŃŠ°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:5550 +msgid "Run document as a presentation" +msgstr "ŠŃŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠŗŠ°Š¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃ" + +#: ../shell/ev-window.c:5558 +msgid "_Inverted Colors" +msgstr "ŠŠ±ŃŠ½Šø _Š±Š¾ŃŠµ" + +#: ../shell/ev-window.c:5559 +msgid "Show page contents with the colors inverted" +msgstr "ŠŃŠøŠŗŠ°Š·ŃŃŠµ ŃŠ°Š“ŃŠ¶Š°Ń ŃŃŃŠ°Š½ŠøŃŠ° Ń ŃŃŠæŃŠ¾ŃŠ½ŠøŠ¼ Š±Š¾ŃŠ°Š¼Š°" + +#. Links +#: ../shell/ev-window.c:5567 +msgid "_Open Link" +msgstr "ŠŃŠ²Š¾_ŃŠø Š²ŠµŠ·Ń" + +#: ../shell/ev-window.c:5569 +msgid "_Go To" +msgstr "_ŠŠ“Šø Š½Š°" + +#: ../shell/ev-window.c:5571 +msgid "Open in New _Window" +msgstr "ŠŃŠ²Š¾ŃŠø Š½Š¾Š²Šø _ŠæŃŠ¾Š·Š¾Ń" + +#: ../shell/ev-window.c:5573 +msgid "_Copy Link Address" +msgstr "Š£Š¼Š½Š¾Š¶Šø Š°Š“ŃŠµŃ_Ń Š²ŠµŠ·Šµ" + +#: ../shell/ev-window.c:5575 +msgid "_Save Image Asā¦" +msgstr "Š”Š°ŃŃŠ²Š°Ń ŃŠ»ŠøŠŗŃ _ŠŗŠ°Š¾..." + +#: ../shell/ev-window.c:5577 +msgid "Copy _Image" +msgstr "Š£Š¼Š½Š¾Š¶Šø _ŃŠ»ŠøŠŗŃ" + +#: ../shell/ev-window.c:5579 +msgid "Annotation Propertiesā¦" +msgstr "ŠŃŠ¾Š±ŠøŠ½Šµ Š·Š°Š±ŠµŠ»ŠµŃŠŗŠµā¦" + +#: ../shell/ev-window.c:5584 +msgid "_Open Attachment" +msgstr "Š”Š°_ŃŃŠ²Š°Ń ŠæŃŠøŠ»Š¾Š³" + +#: ../shell/ev-window.c:5586 +msgid "_Save Attachment Asā¦" +msgstr "Š”_Š°ŃŃŠ²Š°Ń ŠæŃŠøŠ»Š¾Š³ ŠŗŠ°Š¾..." + +#: ../shell/ev-window.c:5671 +msgid "Zoom" +msgstr "Š£Š²ŠµŃŠ°Ń" + +#: ../shell/ev-window.c:5673 +msgid "Adjust the zoom level" +msgstr "ŠŃŠøŠ»Š°Š³Š¾Š“Šø Š½ŠøŠ²Š¾ ŃŠ²ŠµŃŠ°ŃŠ°" + +#: ../shell/ev-window.c:5683 +msgid "Navigation" +msgstr "ŠŠ°Š²ŠøŠ³Š°ŃŠøŃŠ°" + +#: ../shell/ev-window.c:5685 +msgid "Back" +msgstr "ŠŠ°Š·Š°Š“" + +#. translators: this is the history action +#: ../shell/ev-window.c:5688 +msgid "Move across visited pages" +msgstr "ŠŃŠµŃŠøŃŠµ ŠæŠ¾ ŠæŠ¾ŃŠµŃŠµŠ½ŠøŠ¼ ŃŃŃŠ°Š½Š°Š¼Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5718 +msgid "Previous" +msgstr "ŠŃŠµŃŃ Š¾Š“Š½Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5723 +msgid "Next" +msgstr "Š”Š»ŠµŠ“ŠµŃŠ°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5727 +msgid "Zoom In" +msgstr "Š£Š²ŠµŃŠ°Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5731 +msgid "Zoom Out" +msgstr "Š£Š¼Š°ŃŠø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5739 +msgid "Fit Width" +msgstr "Š£ŠŗŠ»Š¾ŠæŠø ŃŠøŃŠøŠ½Ń" + +#: ../shell/ev-window.c:5884 ../shell/ev-window.c:5901 +msgid "Unable to launch external application." +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŠ¾ŠŗŃŠµŠ½ŠµŠ¼ ŃŠæŠ¾ŃŠ½Šø ŠæŃŠ¾Š³ŃŠ°Š¼." + +#: ../shell/ev-window.c:5958 +msgid "Unable to open external link" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š¾ŃŠ²Š¾ŃŠøŃŠ¼ ŃŠæŠ¾ŃŠ½Ń Š²ŠµŠ·Ń" + +#: ../shell/ev-window.c:6125 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° ŠæŃŠ¾Š½Š°ŃŠµŠ¼ ŠæŃŠøŠ³Š¾Š“Š°Š½ ŃŠ¾ŃŠ¼Š°Ń Š·Š° ŃŃŠ²Š°ŃŠµ ŃŠ»ŠøŠŗŠµ" + +#: ../shell/ev-window.c:6167 +msgid "The image could not be saved." +msgstr "Š”Š»ŠøŠŗŠ° Š½ŠøŃŠµ Š¼Š¾Š³Š»Š° Š±ŠøŃŠø ŃŠ°ŃŃŠ²Š°Š½Š°." + +#: ../shell/ev-window.c:6199 +msgid "Save Image" +msgstr "Š”Š°ŃŃŠ²Š°Ń ŃŠ»ŠøŠŗŃ" + +#: ../shell/ev-window.c:6327 +msgid "Unable to open attachment" +msgstr "ŠŠøŃŠµ Š¼Š¾Š³ŃŃŠµ Š¾ŃŠ²Š¾ŃŠøŃŠø ŠæŃŠøŠ»Š¾Š³" + +#: ../shell/ev-window.c:6380 +msgid "The attachment could not be saved." +msgstr "ŠŃŠøŠ»Š¾Š³ Š½ŠøŃŠµ Š¼Š¾Š³ŃŃŠµ ŃŠ°ŃŃŠ²Š°ŃŠø." + +#: ../shell/ev-window.c:6425 +msgid "Save Attachment" +msgstr "Š”Š°ŃŃŠ²Š°Ń ŠæŃŠøŠ»Š¾Š³" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ŠæŠ¾ŃŃŠµŠ±Š½Š° ŃŠµ Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ŠŠ¾ ŠµŠŗŃŃŠµŠ½Š·ŠøŃŠø" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ŠŠ½Š¾Š¼ ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#: ../shell/main.c:77 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "ŠŠ°Š·ŠøŠ² ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š·." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "Š”Š¢Š ŠŠŠ" + +#: ../shell/main.c:78 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "ŠŃŠ¾Ń ŃŃŃŠ°Š½ŠøŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š·." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ŠŠ ŠŠ" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ŠŠ¾ŠŗŃŠµŠ½Šø ŠŠ²ŠøŠ½Ń ŠæŃŠµŠŗŠ¾ ŃŠµŠ»Š¾Š³ ŠµŠŗŃŠ°Š½Š°" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ŠŠ¾ŠŗŃŠµŠ½Šø ŠŠ²ŠøŠ½Ń Ń ŠŗŠ°Š¾ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŠøŃŃ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ŠŠ¾ŠŗŃŠµŠ½Šø ŠŠ²ŠøŠ½Ń ŠŗŠ°Š¾ ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Š ŠµŃ ŠøŠ»Šø ŠøŠ·ŃŠ°Š· Š·Š° ŠæŃŠµŃŃŠ°Š³Ń ŠæŠ¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ŠŠŠ”ŠŠ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ŠŠŠ¢ŠŠ¢ŠŠŠ...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŠ¾ŃŃŃŠæŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø ŃŃ ātrueā (ŃŠ°ŃŠ½Š¾) ŠŗŠ¾ŃŠ° ŃŠŗŃŃŃŃŃŠµ ŃŠ¼Š°ŃŠµŠ½Šø ŠæŃŠøŠŗŠ°Š· ŃŠ»ŠøŃŠøŃŠ° Šø " +"āfalseā (Š½ŠµŃŠ°ŃŠ½Š¾) ŠŗŠ¾ŃŠ° Š·Š°ŃŃŃŠ°Š²ŃŠ° ŠæŃŠ°Š²ŃŠµŃŠµ Š½Š¾Š²ŠøŃ ŃŠ»ŠøŃŠøŃŠ°" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Š£ŠŗŃŃŃŠø ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ°ŃŠµŠ“Š±Š° Š·Š° ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ŠŃŠæŃŠ°Š²Š½Š° Š½Š°ŃŠµŠ“Š±Š° ŃŠ· Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠµ Š·Š° ŠæŃŠ°Š²ŃŠµŃŠµ ŃŠ»ŠøŃŠøŃŠ° ŠŗŠ¾Š“ ŠŠŠ¤ Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°. " +"ŠŠ¾Š³Š»ŠµŠ“Š°ŃŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŠøŃŃ ŠŠ°ŃŃŠøŠ»ŃŃŠ¾Š²Š¾Š³ ŠæŃŠ¾Š³ŃŠ°Š¼Š° Š·Š° ŠøŠ·ŃŠ°Š“Ń ŃŠ¼Š°ŃŠµŠ½ŠøŃ ŠæŃŠøŠŗŠ°Š·Š°." + +#~| msgid "Page Set_up..." +#~ msgid "Page Set_upā¦" +#~ msgstr "ŠŠ¾_Š“ŠµŃŠ°Š²Š°ŃŠµ ŃŃŃŠ°Š½ŠøŃŠµ..." + +#~| msgid "Setup the page settings for printing" +#~ msgid "Set up the page settings for printing" +#~ msgstr "ŠŠ¾Š“ŠµŃŠ°Š²Š° ŠæŠ¾ŃŃŠ°Š²ŠŗŠµ ŃŃŃŠ°Š½ŠøŃŠ° Š·Š° ŃŃŠ°Š¼ŠæŃ" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVI Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠøŠ¼Š° Š½ŠµŠøŃŠæŃŠ°Š²Š°Š½ Š¾Š±Š»ŠøŠŗ" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ŠŠøŃŠµ ŃŃŠæŠµŠ»Š¾ ŠŗŃŠµŠøŃŠ°ŃŠµ Š“Š°ŃŠ¾ŃŠµŠŗŠµā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Š¢ŃŠ°Š¶Šø Š½ŠøŃŠŗŃ" + +# bug: since when do the strings have names? +#~ msgid "The name of the string to be found" +#~ msgstr "ŠŠ¼Šµ Š½ŠøŃŠŗŠµ ŠŗŠ¾ŃŃ ŃŃŠ°Š¶ŠøŃŠø" + +#~ msgid "Case sensitive" +#~ msgstr "ŠŠ°Š²ŠøŃŠ½Š¾ Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ŠŠ¾ŃŃŠ°Š²ŃŠµŠ½Š¾ Š·Š° ŠæŃŠµŃŃŠ°Š³Ń ŠŗŠ¾ŃŠ° Š·Š°Š²ŠøŃŠø Š¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ ŃŠ»Š¾Š²Š°" + +#~ msgid "Highlight color" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ°" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ° Š·Š° ŃŠ²Š° ŠæŠ¾ŠŗŠ»Š°ŠæŠ°ŃŠ°" + +#~ msgid "Current color" +#~ msgstr "Š¢ŠµŠŗŃŃŠ° Š±Š¾ŃŠ°" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ŠŠ¾ŃŠ° ŠøŃŃŠøŃŠ°ŃŠ° Š·Š° ŃŠµŠŗŃŃŠµ ŠæŠ¾ŠŗŠ»Š°ŠæŠ°ŃŠµ" + +#~| msgid "Reload the document" +#~ msgid "Recover previous documents?" +#~ msgstr "ŠŠ° ŠøŠ·Š½Š¾Š²Š° ŃŃŠøŃŠ°Š¼ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ŠŠ·Š³Š»ŠµŠ“Š° Š“Š° ŃŠµ ŠæŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° Š½ŠµŠ¾ŃŠµŠŗŠøŠ²Š°Š½Š¾ Š¾ŃŠŗŠ°Š·Š°Š¾ ŠæŃŠø ŠæŠ¾ŃŠ»ŠµŠ“ŃŠµŠ¼ " +#~ "ŠæŠ¾ŠŗŃŠµŃŠ°ŃŃ. ŠŠ¾Š¶ŠµŃŠµ Š²ŃŠ°ŃŠøŃŠø Š¾ŃŠ²Š¾ŃŠµŠ½Šµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ." + +#~ msgid "_Don't Recover" +#~ msgstr "_ŠŠµ Š²ŃŠ°ŃŠ°Ń" + +#~ msgid "_Recover" +#~ msgstr "_ŠŃŠ°ŃŠø" + +#~ msgid "Crash Recovery" +#~ msgstr "ŠŠæŠ¾ŃŠ°Š²Š°Šŗ ŠæŃŠø ŠæŠ°Š“Ń" + +#~ msgid "Print..." +#~ msgstr "ŠØŃŠ°Š¼ŠæŠ°ŃŠµ..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ŠŠøŃŠµ Š¼Š¾Š³ŃŃŠµ Š½Š°ŠæŃŠ°Š²ŠøŃŠø ŃŠøŠ¼Š±Š¾Š»ŠøŃŠ½Ń Š²ŠµŠ·Ń ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ŠŠøŃŠµ Š¼Š¾Š³ŃŃŠµ Š¾ŃŠ²Š¾ŃŠøŃŠø ŃŠ¼Š½Š¾Š¶Š°Šŗ." + +#~ msgid "_Save a Copy..." +#~ msgstr "_Š”Š°ŃŃŠ²Š°Ń ŃŠ¼Š½Š¾Š¶Š°Šŗ..." + +#~ msgid "_Print..." +#~ msgstr "_ŠØŃŠ°Š¼ŠæŠ°Ń..." + +#~ msgid "_Find..." +#~ msgstr "_Š¢ŃŠ°Š¶Šø..." + +#~ msgid "Co_nnect" +#~ msgstr "_ŠŠ¾Š²ŠµŠ¶Šø ŃŠµ" + +#~ msgid "Connect _anonymously" +#~ msgstr "ŠŠ¾Š²ŠµŠ¶Šø ŃŠµ _Š°Š½Š¾Š½ŠøŠ¼Š½Š¾" + +#~ msgid "Connect as u_ser:" +#~ msgstr "ŠŠ¾Š²ŠµŠ¶Šø ŃŠµ ŠŗŠ°Š¾ _ŠŗŠ¾ŃŠøŃŠ½ŠøŠŗ:" + +#~ msgid "_Username:" +#~ msgstr "_ŠŠ¾ŃŠøŃŠ½ŠøŃŠŗŠ¾ ŠøŠ¼Šµ:" + +#~ msgid "_Domain:" +#~ msgstr "_ŠŠ¾Š¼ŠµŠ½:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_ŠŠ“Š¼Š°Ń Š·Š°Š±Š¾ŃŠ°Š²Šø Š»Š¾Š·ŠøŠ½ŠŗŃ" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_ŠŠ°ŠæŠ°Š¼ŃŠø Š»Š¾Š·ŠøŠ½ŠŗŃ Š“Š¾ Š¾Š“ŃŠ°Š²ŃŠøŠ²Š°ŃŠ°" + +#~ msgid "_Remember forever" +#~ msgstr "_ŠŠ°ŠæŠ°Š¼ŃŠø ŃŃŠ°ŃŠ½Š¾" + +#~ msgid "File not available" +#~ msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠ° Š½ŠøŃŠµ Š“Š¾ŃŃŃŠæŠ½Š°" + +#~ msgid "Remote files aren't supported" +#~ msgstr "ŠŃŠµŠ¶Š½Šµ Š“Š°ŃŠ¾ŃŠµŠŗŠµ Š½ŠøŃŃ ŠæŠ¾Š“ŃŠ¶Š°Š½Šµ" + +#~ msgid "Password Entry" +#~ msgstr "Š£Š½Š¾Ń Š»Š¾Š·ŠøŠ½ŠŗŠµ" + +#~ msgid "Remember password for this session" +#~ msgstr "ŠŠ°ŠæŠ°Š¼ŃŠø Š»Š¾Š·ŠøŠ½ŠŗŃ Š·Š° Š¾Š²Ń ŃŠµŃŠøŃŃ" + +# note(slobo): ŃŠ°ŃŠ½Š¾ Š¾Š²Š¾ ŃŠµ ŃŠøŠ³ŃŃŠ°ŃŠøŠ²Š½Š¾...Š¼Š¾Š¶Šµ Š½Š°Š½ŠøŠ¶Šø Š»Š¾Š·ŠøŠ½ŠŗŃ Š½Š° ŠæŃŠøŠ²ŠµŠ·Š°Šŗ... +#~ msgid "Save password in keyring" +#~ msgstr "ŠŠ°ŠŗŠ°ŃŠø Š»Š¾Š·ŠøŠ½ŠŗŃ Š·Š° ŠæŃŠøŠ²ŠµŠ·Š°Šŗ Š·Š° ŠŗŃŃŃŠµŠ²Šµ" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "Š¢ŃŠ°Š¶Šø ŠæŃŠµŃŃ Š¾Š“Š½Š¾" + +#~ msgid "Find Next" +#~ msgstr "Š¢ŃŠ°Š¶Šø ŃŠ»ŠµŠ“ŠµŃŠµ" + +#~ msgid "Incorrect password" +#~ msgstr "ŠŠµŠøŃŠæŃŠ°Š²Š½Š° Š»Š¾Š·ŠøŠ½ŠŗŠ°" + +#~ msgid "Evince Document Viewer" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° ŠŠ²ŠøŠ½Ń" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "ŠŠøŃŠ¼Š¾" + +#~ msgid "Tabloid" +#~ msgstr "Š¢Š°Š±Š»Š¾ŠøŠ“" + +#~ msgid "Ledger" +#~ msgstr "ŠŃŠ°Š³" + +#~ msgid "Legal" +#~ msgstr "ŠŃŠ°Š²Š½Š¾" + +#~ msgid "Statement" +#~ msgstr "ŠŠ·ŃŠ°Š²Š°" + +#~ msgid "Executive" +#~ msgstr "ŠŠ·Š²ŃŃŠ½Šø" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Š¤Š¾Š»ŠøŃŠ°" + +#~ msgid "Quarto" +#~ msgstr "ŠŠ²Š°ŃŃŠ¾" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ŠŠøŃŠµ Š¼Š¾Š³ŃŃŠµ Š¾ŃŠ²Š¾ŃŠøŃŠø Š“Š°ŃŠ¾ŃŠµŠŗŃ ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "ŠŠµŃŃŠæŠµŃŠ½Š¾ ŃŃŠøŃŠ°Š²Š°ŃŠµ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° ā%sā. Ghostscript ŠæŃŠµŠ²Š¾Š“ŠøŠ»Š°Ń Š½ŠøŃŠµ ŃŠ½ŠµŃ Ń " +#~ "ŠæŃŃŠ°ŃŃ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Š£Š³ŃŠµŠ¶Š“ŠµŠ½Šø ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ" + +#~ msgid "PostScript" +#~ msgstr "ŠŠ¾ŃŃŠ”ŠŗŃŠøŠæŃ" + +#~ msgid "Interpreter failed." +#~ msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø Š¾Š±ŃŠ°Š“Šø." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ŠŠµŠæŠ¾Š“ŃŠ¶Š°Š½ MIME ŃŠøŠæ: ā%sā" + +#~ msgid "Images" +#~ msgstr "Š”Š»ŠøŠŗŠµ" + +#~ msgid "Open ā%sā" +#~ msgstr "ŠŃŠ²Š¾ŃŠø ā%sā" + +#~ msgid "Empty" +#~ msgstr "ŠŃŠæŃŠ°Š·Š½Šø" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "ŠŠ·ŃŠ°Š“Š° PDF-Š° Š½ŠøŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½Š°" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ŠŠ¾ŠŗŃŃŠ°Š»Šø ŃŃŠµ Š“Š° ŃŃŠ°Š¼ŠæŠ°ŃŠµ ŠŗŠ¾ŃŠøŃŃŠµŃŠø ŃŠæŃŠ°Š²ŃŠ°ŃŠŗŠø ŠæŃŠ¾Š³ŃŠ°Š¼ ā%sā. ŠŠ²Š°Ń ŠæŃŠ¾Š³ŃŠ°Š¼ " +#~ "Š·Š°Ń ŃŠµŠ²Š° PostScript ŃŠæŃŠ°Š²ŃŠ°ŃŠŗŠø ŠæŃŠ¾Š³ŃŠ°Š¼ Š·Š° ŃŃŠ°Š¼ŠæŠ°Ń." + +#~ msgid "Pages" +#~ msgstr "Š”ŃŃŠ°Š½ŠøŃŠµ" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "ŠŠµŠøŃŠæŃŠ°Š²Š°Š½ Š£Š Š: ā%sā" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½ŠøŃŠµ ŃŃŠøŃŠ°Š½." + +#~ msgid "Broken pipe." +#~ msgstr "ŠŃŠµŠŗŠøŠ½ŃŃŠ° Š²ŠµŠ·Š°." + +#~ msgid "Error while decompressing file %s:\n" +#~ msgstr "ŠŃŠµŃŠŗŠ° ŠæŃŠø Š¾ŃŠæŠ°ŠŗŠøŠ²Š°ŃŃ Š“Š°ŃŠ¾ŃŠµŠŗŠµ %s:\n" + +#~ msgid "File is not readable." +#~ msgstr "ŠŠ°ŃŠ¾ŃŠµŠŗŠµ Š½ŠøŃŠµ ŃŠøŃŃŠøŠ²Š°." + +#~ msgid "Document loaded." +#~ msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŃŠøŃŠ°Š½." + +#~ msgid "_Previous" +#~ msgstr "_ŠŃŠµŃŃ Š¾Š“Š½Šø" + +#~ msgid "_Next" +#~ msgstr "_Š”Š»ŠµŠ“ŠµŃŠø" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "ŠŠ¾Š³ŃŃŠ½Š¾ŃŃ ŠæŃŠµŃŃŠ°Š¶ŠøŠ²Š°ŃŠ° Š½ŠµŃŠµ ŃŠ°Š“ŠøŃŠø Š·Š° Š¾Š²Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Š¢ŃŠ°Š¶ŠµŃŠµ ŃŠµŠŗŃŃŠ° ŃŠµ ŠæŠ¾Š“ŃŠ¶Š°Š½Š¾ ŃŠ°Š¼Š¾ Š·Š° PDF Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠµ." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Not found" +#~ msgstr "ŠŠøŃŠµ Š½Š°ŃŠµŠ½Š¾" + +#~ msgid "Show statusbar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Show toolbar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "ŠŠøŠ½ŠøŃŠ° ŃŠ° ŃŃŠ°ŃŠµŠ¼ ŃŠµ ŃŠ¾Š±ŠøŃŠ°ŃŠµŠ½Š° ŃŃŠ°ŠŗŠ° Ń Š“Š½Ń ŠŗŠ¾ŃŠ° ŠæŃŠøŠŗŠ°Š·ŃŃŠµ Š“Š¾Š“Š°ŃŠ½Šµ ŠæŠ¾Š“Š°ŃŠŗŠµ " +#~ "Š¾ Š²ŠµŠ·Š°Š¼Š° Šø Š“ŃŃŠ³ŠøŠ¼ Š°ŠŗŃŠøŃŠ°Š¼Š°. ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ " +#~ "ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŠæŃŠøŠŗŠ°Š·ŃŃŠµ Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼ Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ " +#~ "ŃŠ°ŠŗŃŠøŠ²Š° Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "Š¢ŃŠ°ŠŗŠ° ŃŠ° Š°Š»Š°ŃŠ¾Š¼ ŃŠµ ŃŠ¾Š±ŠøŃŠ°ŃŠµŠ½Š° ŃŃŠ°ŠŗŠ° Ń Š²ŃŃ Ń ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠµ Š·Š° " +#~ "Š½Š°Š²ŠøŠ³Š°ŃŠøŃŃ Šø ŃŠ²ŠµŃŠ°ŃŠµ. ŠŠ²Šµ ŠøŃŃŠøŠ½ŠøŃŠ¾ŃŠ½Šµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø, ŠæŠ¾ŃŃŠ°Š²ŃŠ°ŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ " +#~ "ŠæŃŠøŠŗŠ°Š·ŃŃŠµ ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼ Š“Š¾Šŗ ŠøŃŠŗŃŃŃŠµŃŠµ ŠæŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š¾ ŃŠ°ŠŗŃŠøŠ²Š° ŃŃŠ°ŠŗŃ ŃŠ° " +#~ "Š°Š»Š°ŃŠ¾Š¼." + +#~ msgid "Unable to find glade file" +#~ msgstr "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŃŠµŠ¼ ŠŠ»ŠµŃŠ“ Š“Š°ŃŠ¾ŃŠµŠŗŃ" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "ŠŠµ Š¼Š¾Š³Ń Š“Š° Š½Š°ŃŠµŠ¼ ŠŠ»ŠµŃŠ“ Š“Š°ŃŠ¾ŃŠµŠŗŃ ā%sā. ŠŃŠ¾Š²ŠµŃŠøŃŠµ Š“Š° Š»Šø ŃŠµ Š²Š°ŃŠ° ŠøŠ½ŃŃŠ°Š»Š°ŃŠøŃŠ° " +#~ "ŠæŠ¾ŃŠæŃŠ½Š°." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ° ā Š»Š¾Š·ŠøŠ½ŠŗŠ° ŃŠµ Š¾Š±Š°Š²ŠµŠ·Š½Š°" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "Š”Š°ŃŃŠ²Š°Ń ŃŠµŠŗŃŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŠæŠ¾Š“ Š½Š¾Š²ŠøŠ¼ ŠøŠ¼ŠµŠ½Š¾Š¼" + +#~ msgid "View the properties of this document" +#~ msgstr "ŠŃŠµŠ³Š»ŠµŠ“Š°Ń Š¾ŃŠ¾Š±ŠøŠ½Šµ Š¾Š²Š¾Š³ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#~ msgid "Close this window" +#~ msgstr "ŠŠ°ŃŠ²Š¾ŃŠø Š¾Š²Š°Ń ŠæŃŠ¾Š·Š¾Ń" + +#~ msgid "Copy text from the document" +#~ msgstr "Š£Š¼Š½Š¾Š¶Šø ŃŠµŠŗŃŃ ŠøŠ· Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°" + +#~ msgid "Select the entire page" +#~ msgstr "ŠŠ·Š°Š±ŠµŃŠø ŃŠµŠ»Ń ŃŃŃŠ°Š½ŠøŃŃ" + +#~ msgid "Customize the toolbar" +#~ msgstr "ŠŃŠøŠ»Š°Š³Š¾Š“Šø ŃŃŠ°ŠŗŃ ŃŠ° Š°Š»Š°ŃŠ¾Š¼" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š°Š»ŠµŠ²Š¾" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Š Š¾ŃŠøŃŠ°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š½Š°Š“ŠµŃŠ½Š¾" + +#~ msgid "Display help for the viewer application" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠæŠ¾Š¼Š¾Ń Š·Š° ŠæŃŠ¾Š³ŃŠ°Š¼ ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ°" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø Š·Š°ŃŠ»ŃŠ³Šµ ŃŠ²Š¾ŃŠ°ŃŠ° ŠæŃŠµŠ³Š»ŠµŠ“Š°ŃŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½Š°ŃŠ°" + +#~ msgid "Scroll one page forward" +#~ msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š½Ń ŃŃŃŠ°Š½Ń ŃŠ½Š°ŠæŃŠµŠ“" + +#~ msgid "Scroll one page backward" +#~ msgstr "ŠŠ»ŠøŠ·Š°Ń ŃŠµŠ“Š½Ń ŃŃŃŠ°Š½Ń ŃŠ½Š°Š·Š°Š“" + +#~ msgid "Focus the page selector" +#~ msgstr "Š¤Š¾ŠŗŃŃŠøŃŠ°Ń ŠøŠ·Š±ŠøŃŠ°Ń ŃŃŃŠ°Š½ŠøŃŠµ" + +#~ msgid "Go ten pages backward" +#~ msgstr "ŠŠ“Šø 10 ŃŃŃŠ°Š½Š° ŃŠ½Š°Š·Š°Š“" + +#~ msgid "Go ten pages forward" +#~ msgstr "ŠŠ“Šø 10 ŃŃŃŠ°Š½Š° ŃŠ½Š°ŠæŃŠµŠ“" + +#~ msgid "_Statusbar" +#~ msgstr "ŠŠøŠ½ŠøŃŠ° ŃŠ° _ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "ŠŃŠøŠŗŠ°Š¶Šø ŠøŠ»Šø ŃŠ°ŠŗŃŠøŃ Š»ŠøŠ½ŠøŃŃ ŃŠ° ŃŃŠ°ŃŠµŠ¼" + +#~ msgid "Default sidebar size" +#~ msgstr "ŠŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Š° Š±Š¾ŃŠ½Šµ ŃŃŠ°ŠŗŠµ" + +#~ msgid "Show sidebar by default" +#~ msgstr "Š£Š¾Š±ŠøŃŠ°ŃŠµŠ½Š¾ ŠæŃŠøŠŗŠ°Š¶Šø Š±Š¾ŃŠ½Ń ŃŃŠ°ŠŗŃ" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "ŠŠ¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š±Š¾ŃŠ½Š° ŃŃŠ°Š²ŠŗŠ° ŠŗŠ¾ŃŠ° ŃŠ°Š“ŃŠ¶Šø ŠøŠ½Š“ŠµŠŗŃ Šø ŃŠæŠøŃŠ°Šŗ ŃŠ»ŠøŃŠøŃŠ° ŃŃŃŠ°Š½Š°. " +#~ "ŠŠ¾Š“ŃŠ°Š·ŃŠ¼ŠµŠ²Š°Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Š° ŠæŠ¾ŃŃŠ°Š²ŃŠ° ŃŠøŃŠøŠ½Ń Š±Š¾ŃŠ½Šµ ŃŃŠ°ŠŗŠµ Ń ŃŠ°ŃŠŗŠ°Š¼Š° Ń Š¾Š“Š½Š¾ŃŃ Š½Š° " +#~ "ŃŃŃŠ°Š½Ń ŠæŃŠ¾Š·Š¾ŃŠ°. ŠŃŠøŃ Š²Š°ŃŠ° ŃŠµ Š±ŠøŠ»Š¾ ŠŗŠ¾ŃŠø ŃŠµŠ¾ Š±ŃŠ¾Ń, Š° Š±Š¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° ŃŠµ Š½ŠøŠŗŠ°Š“ " +#~ "Š½ŠµŃŠµ ŃŠ¼Š°ŃŠøŃŠø ŠøŃŠæŠ¾Š“ Š²ŠµŠ»ŠøŃŠøŠ½Šµ Š½ŠµŠ¾ŠæŃ Š¾Š“Š½Šµ Š·Š° ŠæŃŠøŠŗŠ°Š· ŃŠ»ŠøŃŠøŃŠ° ŠøŠ»Šø ŠøŠ½Š“ŠµŠŗŃŠ°. " +#~ "ŠŠµŠ»ŠøŠŗŠµ Š²ŃŠµŠ“Š½Š¾ŃŃŠø ŃŠµ ŃŃŠøŠ½ŠøŃŠø Š“Š° Š±Š¾ŃŠ½Š° ŃŃŠ°ŠŗŠ° Š·Š°ŃŠ·Š¼Šµ ŃŃŠ¾ ŃŠµ Š¼Š¾Š³ŃŃŠµ Š²ŠøŃŠµ " +#~ "ŠæŃŠ¾ŃŃŠ¾ŃŠ° Š·Š° ŠæŃŠøŠŗŠ°Š· ŃŃŃŠ°Š½ŠøŃŠµ Ń Š¾Š“Š½Š¾ŃŃ Š½Š° Š²ŠµŠ»ŠøŃŠøŠ½Ń ŠæŃŠ¾Š·Š¾ŃŠ°." diff --git a/po/sr@latin.po b/po/sr@latin.po new file mode 100644 index 00000000..7b5e8521 --- /dev/null +++ b/po/sr@latin.po @@ -0,0 +1,2123 @@ +# Serbian translation of evince +# Courtesy of Prevod.org team (http://prevod.org/) -- 2005-2009. +# +# This file is distributed under the same license as the evince package. +# +# Maintainer: Danilo Å egan <danilo@gnome.org> +# Reviewed on 2005-09-03 by: Danilo Å egan <danilo@gnome.org> +# Translated on 2007-03-12 by: Igor NestoroviÄ <igor@prevod.org> +# MiloÅ” PopoviÄ <gpopac@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-08-02 18:58+0000\n" +"PO-Revision-Date: 2010-08-18 10:52+0200\n" +"Last-Translator: MiloÅ” PopoviÄ <gpopac@gmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "GreÅ”ka prilikom pokretanja naredbe ā%sā radi raspakovanja stripa: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Naredba ā%sā nije uspela da otpakuje strip." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Naredba %s nije izaÅ”la normalno." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Ovo nije MIME vrsta za strip: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Ne mogu da naÄem nardbu za raspakovanje ove vrste stripa" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Nepoznata MIME vrsta" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Datoteka je oÅ”teÄena" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Nema datoteka u arhivi" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Nijedna slika nije pronaÄena u arhivi %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Javila se greÅ”ka prilikom brisanja ā%sā." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "GreÅ”ka %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Stripovi" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu dokument ima neispravan oblik" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"Dokument je sastavljen iz nekoliko datoteka. Ne mogu da pristupim jednoj ili " +"viÅ”e ovih datoteka." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu dokumenti" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI dokument ima neispravan oblik" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI dokumenti" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Ovaj rad je u javnom domenu" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Da" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Ne" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "Nepoznata vrsta slovnog lika" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Bez imena" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Ugnježdeni podskup" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Ugnježden" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Nije ugnježden" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF dokumenti" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Neispravan dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Slajdovi programa āPrezentacijaā" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Nema greÅ”ke" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Nedovoljno memorije" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Nije pronaÄen ZIP potpis" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Nije ispravna ZIP datoteka" + +# Nije sigurno da li se misli na viÅ”e datoteka u zip arhivi, ili viÅ”e zip arhiva u prilogu. +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Nisu podržani dokumenti sa viÅ”e ZIP datoteka" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Ne mogu da otvorim datoteku" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Ne mogu da proÄitam podatke iz datoteke" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Ne mogu da pronaÄem datoteku u ZIP arhivi" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Nepoznata greÅ”ka" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Ne mogu da otvorim dokument ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Ne mogu da saÄuvam dokument ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Postskript dokumenti" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Ne mogu da saÄuvatm prilog ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Ne mogu da otvorim prilog ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Ne mogu da otvorim prilog ā%sā" + +# Nije sigurno da li se misli na viÅ”e datoteka u zip arhivi, ili viÅ”e zip arhiva u prilogu. +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Tip datoteke %s (%s) nije podržan" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Svi dokumenti" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Sve datoteke" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Ne mogu da napravim privremenu datoteku: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Ne mogu da napravim privremeni direktorijum: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ovo nije ispravna .desktop datoteka" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nije prepoznata desktop datoteka u izdanju ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "PokreÄem %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program ne prihvata dokumente iz komandne linije" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nepoznata opcija pri pokretanju: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ne mogu da prosledim adresu dokumenta u unos āType=Adresaā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nije izvrÅ”na stavka" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "OnemoguÄi vezi sa upravnikom sesije" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Izaberite datoteku sa saÄuvanim podeÅ”avanjima" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "DATOTEKA" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Odredite IB upravnika sesije" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "IB" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opcije upravnika sesije:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Prikaži opcije upravnika sesije" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Prikaži ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Premesti na paletu alatki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Premesti izabrani predmet na paletu alatki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Ukloni sa palete alatki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Ukloni izabrani element sa palete alatki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_ObriÅ”i paletu alatki" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Uklanja izabranu paletu alatki" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "RazdvajaÄ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5735 +msgid "Best Fit" +msgstr "Najbolje uklapanje" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Uklopi prema Å”irini strane" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#| msgid "100%" +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#| msgid "100%" +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#| msgid "200%" +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#| msgid "400%" +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "PregledaÄ dokumenata" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Pregledajte viÅ”estraniÄne dokumente" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "PrevaziÄi ograniÄenja dokumenta" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"Prevazilazi ograniÄenja koja dokument ugraÄeno sadrži, kao Å”to je zabrana " +"umnožavanja ili Å”tampe " + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ObriÅ”i privremenu datoteku" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Datoteka sa podtavkama Å”tampe" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Gnom pregledaÄ dokumenata" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Nije uspelo Å”tampanje dokumenta" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Ne mogu da pronaÄem Å”tampaÄ ā%sā" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5450 +msgid "_Previous Page" +msgstr "_Prethodna strana" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5451 +msgid "Go to the previous page" +msgstr "Idi na prethodnu stranicu" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5453 +msgid "_Next Page" +msgstr "_SledeÄa strana" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5454 +msgid "Go to the next page" +msgstr "Idi na sledeÄu stranu" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5437 +msgid "Enlarge the document" +msgstr "UveÄaj dokument" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5440 +msgid "Shrink the document" +msgstr "Umanji dokument" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Å tampaj" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5406 +msgid "Print this document" +msgstr "OdÅ”tampaj ovaj dokument" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5552 +msgid "_Best Fit" +msgstr "Naj_bolje uklapanje" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5553 +msgid "Make the current document fill the window" +msgstr "Neka tekuÄi dokument popuni prozor" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5555 +msgid "Fit Page _Width" +msgstr "Uklopi prema _Å”irini" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5556 +msgid "Make the current document fill the window width" +msgstr "Neka tekuÄi dokument popuni Å”irinu prozora" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5657 +msgid "Page" +msgstr "Strana" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5658 +msgid "Select Page" +msgstr "Izaberi stranu" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Naslov:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Mesto:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Tema:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Autor:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "KljuÄne reÄi:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ProizvoÄaÄ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Tvorac:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Napravljen:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Izmenjen:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Broj stranica:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimizovan:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Oblikc:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ZaÅ”tita:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "VeliÄina papira:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "NiÅ”ta" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f inÄa" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Uspravno (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Položeno (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d od %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr " od %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "UÄitavam..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Pripremam za Å”tampu..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ZavrÅ”avam..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Å tampam %d. stranicu od %d..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Å tampanje nije podržano za ovaj Å”tampaÄ." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Neispravan opseg stranica" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Upozorenje" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Zadati opseg za Å”tampu ne sadrži ni jednu stranicu" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Razvuci stranicu:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Umanji na oblast za Å”tampu" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Uklopi u oblast za Å”tampu" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"RazvlaÄi stranice dokumenta tako da se uklope u izabranu stranicu Å”tampaÄa. " +"Izaberite jedno od priloženih:\n" +"\n" +"ā¢ āNiÅ”taā: Ne razvlaÄi stranice dokumenta.\n" +"\n" +"ā¢ āUmanji na oblast za Å”tampuā: Umanjuje stranice dokumenta koje su veÄe od " +"oblasti za Å”tampu tako da se uklope na papir Å”tampaÄa.\n" +"\n" +"ā¢ āUklopi u oblast za Å”tampuā: Smanjuje ili poveÄava stranice dokumenta tako " +"da se uklope na papir Å”tampaÄa.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Sam rotiraj i centriraj" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"OkreÄe svaku stranicu Å”tampaÄa, tako da bude ista onoj unutar dokumenta i " +"postavlja stranice dokumenta na sredinu papira za Å”tampu." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "Odredi veliÄinu stranice na osnovu dokumenta" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"Postavlja veliÄinu svake odÅ”tampane stranice na veliÄinu stranice u dokumentu." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Rad sa stranicama" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ne mogu da odÅ”tampam stranicu %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Klizaj prema gore" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Klizaj prema dole" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Klizaj jedan ekran nagore" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Klizaj jedan ekran nadole" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Pregled dokumenta" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "SkoÄi do strane:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Kraj prezentacije. Kliknite za izlazak." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "Idi na prvu stranu" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "Idi na prethodnu stranu" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "Idi na sledeÄu stranu" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "Idi na poslednju stranu" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "Idi na stranu" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Traži" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "Idi na stranu %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Idi na %s datoteke ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "Idi na datoteku ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Pokreni %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Traži:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5423 +msgid "Find Pre_vious" +msgstr "Traži pre_thodno" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Traži prethodan izraz u nizu za pretraživanje" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5421 +msgid "Find Ne_xt" +msgstr "PronaÄi _sledeÄe" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Traži sledeÄi izraz u nizu za pretraživanje" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "Z_avisno od veliÄine slova" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "UkljuÄuje pretragu osetljivu na veliÄinu slova" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikonica:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#| msgid "None" +msgid "Note" +msgstr "BeleÅ”ka" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#| msgid "Document" +msgid "Comment" +msgstr "Komentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "KljuÄ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#| msgid "_Help" +msgid "Help" +msgstr "PomoÄ" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Novi pasus" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Pasus" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Umetni" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "KrstiÄ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Krug" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#| msgid "Unknown error" +msgid "Unknown" +msgstr "Nepoznato" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#| msgid "Properties" +msgid "Annotation Properties" +msgstr "Osobine zabeleÅ”ke" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "Boja:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#| msgid "Title:" +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Providno" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Neprovidno" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "PoÄetno stanje prozora:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#| msgid "_Openā¦" +msgid "Open" +msgstr "Otvoren" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "Zatvoren" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Pokretanje u režimu prezentacije" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Lozinka za dokument ā%sā" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Prevodim %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "Prevedeno je %d od %d dokumenata" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Prevodim metapodatke" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Format metapodataka koje koristi PregledaÄ dokumenata je promenjen. Morate da " +"saÄekate na prevoÄenje podataka u novi format ili oni neÄe biti saÄuvani." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Otvori skoro koriÅ”Äeni dokument" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ovaj dokument je zakljuÄan i može se proÄitati jedino uz unos ispravne " +"lozinke." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_OtkljuÄaj dokument" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Ukucajte lozinku" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Lozinka je obavezna" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"Dokument ā%sā je zakljuÄan i neophodna je lozinka pre nego Å”to se može " +"otvoriti." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Lozinka:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_Odmah zaboravi lozinku" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Z_apamti lozinku do odjave" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "_Zapamti trajno" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Osobine" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "OpÅ”te" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Slovni lik" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Licenca dokumenata" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Font" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Skupljam podatke o fontu... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "Uslovi koriÅ”Äenja" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Tekst licence" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "JoÅ” podataka" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Spisak" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#| msgid "Location:" +msgid "Annotations" +msgstr "ZabeleÅ”ke" + +#: ../shell/ev-sidebar-annotations.c:209 +#| msgid "Next" +msgid "Text" +msgstr "Tekst" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "Dodaj zabeleÅ”ku" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "Dodaj" + +#: ../shell/ev-sidebar-annotations.c:364 +#| msgid "The document contains no pages" +msgid "Document contains no annotations" +msgstr "Dokument ne sadrži zabeleÅ”ke" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +#| msgid "Page %s" +msgid "Page %d" +msgstr "Stranica %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Prilozi" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Slojevi" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Å tampaj..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Popis" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Mali prikazi" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Stranica %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Stranica %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Dokument ne sadrži stranice" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Dokument sadrži samo prazne stranice" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Ne mogu da otvorim dokument" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "UÄitavam dokument iz ā%sā" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Preuzimam dokument (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Ne mogu da uÄitam udaljenu datoteku." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "Iznova uÄitavam dokument iz %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Ne mogu da ponovo uÄitam dokument." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Otvori dokument" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Äuvam dokument u %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Äuvam prilog u %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Äuvam sliku u %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Datoteka nije mogla biti saÄuvana kao ā%sā." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Å aljem dokument (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Å aljem prilog (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Å aljem sliku (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "SaÄuvaj kopiju" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d zaduženje Äeka u zakazanim" +msgstr[1] "%d zaduženja Äakaju u zakazanim" +msgstr[2] "%d zaduženja Äekaju u zakazanim" +msgstr[3] "Zaduženje Äeka u zakazanim" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Å tampam zaduženje ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"Dokument sadrži obrazac sa poljima koja su popunjena. Ukoliko ne saÄuvate " +"kopiju, izmene Äe biti trajno izgubljene." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"Dokument sadrži nove ili izmenjene zabeleÅ”ke. Ukoliko ne saÄuvate kopiju, " +"izmene Äe biti trajno izgubljene." + +#: ../shell/ev-window.c:3413 +#, c-format +#| msgid "Wait until print job ā%sā finishes before closing?" +msgid "Save a copy of document ā%sā before closing?" +msgstr "Da li da saÄuvam kopiju dokumenta ā%sā?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "Zatvori _bez Äuvanja" + +#: ../shell/ev-window.c:3436 +#| msgid "Save a Copy" +msgid "Save a _Copy" +msgstr "_SaÄuvaj kopiju" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Da li da saÄekam dok se ne odÅ”tampa zaduženje ā%sā?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "Ima %d aktivnih zaduženja za Å”tampu. Da li da saÄekam dok se ne zavrÅ”e?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Ukoliko zatvorite prozor, zaduženja koja Äekaju neÄe biti Å”tampana." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Prekini Å”tampu i _izaÄi" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "IzaÄi _nakon Å”tampe" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "UreÄivanje palete alatki" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "GreÅ”ka u prikazu pomoÄi" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"PregledaÄ dokumenata.\n" +"Koristi %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evins je slobodan softver; možete ga Å”iriti i/ili menjati pod uslovima Gnu-" +"ove OpÅ”te Javne Licence, kako je to objavila Zadužbina Slobodnog Softvera; " +"bilo pod verzijom 2 licence, ili (po VaÅ”em miÅ”ljenju) nekom naknadnom " +"verzijom.\n" +".\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evins se deli u nameri da Äe biti koristan, ali BEZ IKAKVE GARANCIJE; Äak se " +"ne podrazumeva da je pogodan za TRŽIÅ NO uÄeÅ”Äe ili da PRIMENJIV ZA NEKU " +"DELATNOST. Za viÅ”e detalja proÄitajte OpÅ”tu Javnu Licencu.\n" + +#: ../shell/ev-window.c:4571 +#| msgid "" +#| "You should have received a copy of the GNU General Public License along " +#| "with Evince; if not, write to the Free Software Foundation, Inc., 59 " +#| "Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"Trebali ste da dobijete jedan primerak OpÅ”te Javne Licence zajedno sa ovim " +"programom; ako to nije sluÄaj, piÅ”ite na adresu: Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1302, USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evins" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2007 Evinsovi autori" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Danilo Å egan <danilo@gnome.org>\n" +"Slobodan D. SredojeviÄ <slobo@akrep.be>\n" +"Goran RakiÄ <grakic@devbase.net>\n" +"MiloÅ” PopoviÄ <gpopac@gmail.com>\n" +"http://prevod.org ā prevod na srpski jezik." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4868 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d pogodak na ovoj stranici" +msgstr[1] "%d pogotka na ovoj stranici" +msgstr[2] "%d pogodaka na ovoj stranici" +msgstr[3] "%d pogodak na ovoj stranici" + +#: ../shell/ev-window.c:4876 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Preostalo da pretraži %3d%%" + +#: ../shell/ev-window.c:5389 +msgid "_File" +msgstr "_Datoteka" + +#: ../shell/ev-window.c:5390 +msgid "_Edit" +msgstr "_UreÄivanje" + +#: ../shell/ev-window.c:5391 +msgid "_View" +msgstr "P_regled" + +#: ../shell/ev-window.c:5392 +msgid "_Go" +msgstr "_Idi" + +#: ../shell/ev-window.c:5393 +msgid "_Help" +msgstr "_PomoÄ" + +#. File menu +#: ../shell/ev-window.c:5396 ../shell/ev-window.c:5697 +msgid "_Openā¦" +msgstr "_Otvori..." + +#: ../shell/ev-window.c:5397 ../shell/ev-window.c:5698 +msgid "Open an existing document" +msgstr "Otvori postojeÄi dokument" + +#: ../shell/ev-window.c:5399 +msgid "Op_en a Copy" +msgstr "Otvori _kopiju" + +#: ../shell/ev-window.c:5400 +msgid "Open a copy of the current document in a new window" +msgstr "Otvara kopiju dokumenta u novom prozoru" + +#: ../shell/ev-window.c:5402 +msgid "_Save a Copyā¦" +msgstr "_SaÄuvaj kopiju..." + +#: ../shell/ev-window.c:5403 +msgid "Save a copy of the current document" +msgstr "Äuva jedan primerak tekuÄeg dokumenta" + +#: ../shell/ev-window.c:5405 +msgid "_Printā¦" +msgstr "_Å tampaj..." + +#: ../shell/ev-window.c:5408 +msgid "P_roperties" +msgstr "Oso_bine" + +#: ../shell/ev-window.c:5416 +msgid "Select _All" +msgstr "Izaberi _sve" + +#: ../shell/ev-window.c:5418 +msgid "_Findā¦" +msgstr ":Traži..." + +#: ../shell/ev-window.c:5419 +msgid "Find a word or phrase in the document" +msgstr "NaÄi reÄ ili izraz u dokumentu" + +#: ../shell/ev-window.c:5425 +msgid "T_oolbar" +msgstr "_Alatke" + +#: ../shell/ev-window.c:5427 +msgid "Rotate _Left" +msgstr "Rotiraj _levo" + +#: ../shell/ev-window.c:5429 +msgid "Rotate _Right" +msgstr "Rotiraj _desno" + +#: ../shell/ev-window.c:5431 +msgid "Save Current Settings as _Default" +msgstr "SaÄuvaj podeÅ”avanja kao po_drazumevana" + +#: ../shell/ev-window.c:5442 +msgid "_Reload" +msgstr "_Osveži" + +#: ../shell/ev-window.c:5443 +msgid "Reload the document" +msgstr "Iznova uÄitaj dokument" + +#: ../shell/ev-window.c:5446 +msgid "Auto_scroll" +msgstr "Pomeraj _klizaÄ" + +#: ../shell/ev-window.c:5456 +msgid "_First Page" +msgstr "_Prva strana" + +#: ../shell/ev-window.c:5457 +msgid "Go to the first page" +msgstr "Idi na prvu stranu" + +#: ../shell/ev-window.c:5459 +msgid "_Last Page" +msgstr "_Poslednja strana" + +#: ../shell/ev-window.c:5460 +msgid "Go to the last page" +msgstr "Idi na poslednju stranu" + +#. Help menu +#: ../shell/ev-window.c:5464 +msgid "_Contents" +msgstr "_Sadržaj" + +#: ../shell/ev-window.c:5467 +msgid "_About" +msgstr "_O programu" + +#. Toolbar-only +#: ../shell/ev-window.c:5471 +msgid "Leave Fullscreen" +msgstr "Ne preko celog ekrana" + +#: ../shell/ev-window.c:5472 +msgid "Leave fullscreen mode" +msgstr "Ne preko celog ekrana" + +#: ../shell/ev-window.c:5474 +msgid "Start Presentation" +msgstr "Pusti kao prezentaciju" + +#: ../shell/ev-window.c:5475 +msgid "Start a presentation" +msgstr "Pusti dokument kao prezentaciju" + +#. View Menu +#: ../shell/ev-window.c:5534 +msgid "_Toolbar" +msgstr "Ala_tke" + +#: ../shell/ev-window.c:5535 +msgid "Show or hide the toolbar" +msgstr "Prikaži ili sakrij paletu sa alatom" + +#: ../shell/ev-window.c:5537 +msgid "Side _Pane" +msgstr "BoÄna _povrÅ”" + +#: ../shell/ev-window.c:5538 +msgid "Show or hide the side pane" +msgstr "Prikaži ili sakrij boÄnu povrÅ”" + +#: ../shell/ev-window.c:5540 +msgid "_Continuous" +msgstr "_Neprekidno" + +#: ../shell/ev-window.c:5541 +msgid "Show the entire document" +msgstr "Prikaži Äitav dokument" + +#: ../shell/ev-window.c:5543 +msgid "_Dual" +msgstr "Po _dve" + +#: ../shell/ev-window.c:5544 +msgid "Show two pages at once" +msgstr "Prikaži sve strane odjednom" + +#: ../shell/ev-window.c:5546 +msgid "_Fullscreen" +msgstr "_Ceo ekran" + +#: ../shell/ev-window.c:5547 +msgid "Expand the window to fill the screen" +msgstr "RaÅ”iri prozor da popuni ceo ekran" + +#: ../shell/ev-window.c:5549 +msgid "Pre_sentation" +msgstr "Pre_zentacija" + +#: ../shell/ev-window.c:5550 +msgid "Run document as a presentation" +msgstr "Pusti dokument kao prezentaciju" + +#: ../shell/ev-window.c:5558 +msgid "_Inverted Colors" +msgstr "Obrni _boje" + +#: ../shell/ev-window.c:5559 +msgid "Show page contents with the colors inverted" +msgstr "Prikazuje sadržaj stranica u suprotnim bojama" + +#. Links +#: ../shell/ev-window.c:5567 +msgid "_Open Link" +msgstr "Otvo_ri vezu" + +#: ../shell/ev-window.c:5569 +msgid "_Go To" +msgstr "_Idi na" + +#: ../shell/ev-window.c:5571 +msgid "Open in New _Window" +msgstr "Otvori novi _prozor" + +#: ../shell/ev-window.c:5573 +msgid "_Copy Link Address" +msgstr "Umnoži adres_u veze" + +#: ../shell/ev-window.c:5575 +msgid "_Save Image Asā¦" +msgstr "SaÄuvaj sliku _kao..." + +#: ../shell/ev-window.c:5577 +msgid "Copy _Image" +msgstr "Umnoži _sliku" + +#: ../shell/ev-window.c:5579 +msgid "Annotation Propertiesā¦" +msgstr "Osobine zabeleÅ”keā¦" + +#: ../shell/ev-window.c:5584 +msgid "_Open Attachment" +msgstr "Sa_Äuvaj prilog" + +#: ../shell/ev-window.c:5586 +msgid "_Save Attachment Asā¦" +msgstr "S_aÄuvaj prilog kao..." + +#: ../shell/ev-window.c:5671 +msgid "Zoom" +msgstr "UveÄaj" + +#: ../shell/ev-window.c:5673 +msgid "Adjust the zoom level" +msgstr "Prilagodi nivo uveÄanja" + +#: ../shell/ev-window.c:5683 +msgid "Navigation" +msgstr "Navigacija" + +#: ../shell/ev-window.c:5685 +msgid "Back" +msgstr "Nazad" + +#. translators: this is the history action +#: ../shell/ev-window.c:5688 +msgid "Move across visited pages" +msgstr "PreÄite po poseÄenim stranama" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5718 +msgid "Previous" +msgstr "Prethodna" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5723 +msgid "Next" +msgstr "SledeÄa" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5727 +msgid "Zoom In" +msgstr "UveÄaj" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5731 +msgid "Zoom Out" +msgstr "Umanji" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5739 +msgid "Fit Width" +msgstr "Uklopi Å”irinu" + +#: ../shell/ev-window.c:5884 ../shell/ev-window.c:5901 +msgid "Unable to launch external application." +msgstr "Ne mogu da pokrenem spoljni program." + +#: ../shell/ev-window.c:5958 +msgid "Unable to open external link" +msgstr "Ne mogu da otvoritm spoljnu vezu" + +#: ../shell/ev-window.c:6125 +msgid "Couldn't find appropriate format to save image" +msgstr "Ne mogu da pronaÄem prigodan format za Äuvanje slike" + +#: ../shell/ev-window.c:6167 +msgid "The image could not be saved." +msgstr "Slika nije mogla biti saÄuvana." + +#: ../shell/ev-window.c:6199 +msgid "Save Image" +msgstr "SaÄuvaj sliku" + +#: ../shell/ev-window.c:6327 +msgid "Unable to open attachment" +msgstr "Nije moguÄe otvoriti prilog" + +#: ../shell/ev-window.c:6380 +msgid "The attachment could not be saved." +msgstr "Prilog nije moguÄe saÄuvati." + +#: ../shell/ev-window.c:6425 +msgid "Save Attachment" +msgstr "SaÄuvaj prilog" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā potrebna je lozinka" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Po ekstenziji" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Gnom pregledaÄ dokumenata" + +#: ../shell/main.c:77 +#| msgid "The page of the document to display." +msgid "The page label of the document to display." +msgstr "Naziv stranice dokumenta za prikaz." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "STRANA" + +#: ../shell/main.c:78 +#| msgid "The page of the document to display." +msgid "The page number of the document to display." +msgstr "Broj stranice dokumenta za prikaz." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "BROJ" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Pokreni Evins preko celog ekrana" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Pokreni Evins u kao prezentaciju" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Pokreni Evins kao pregledaÄ" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ReÄ ili izraz za pretragu po dokumentu" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "NISKA" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[DATOTEKA...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Dostupne vrednosti su ātrueā (taÄno) koja ukljuÄuje umanjeni prikaz sliÄica i " +"āfalseā (netaÄno) koja zaustavlja pravljenje novih sliÄica" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "UkljuÄi pravljenje sliÄica za PDF dokumente" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Naredba za pravljenje sliÄica za PDF dokumente" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"Ispravna naredba uz argumente za pravljenje sliÄica kod PDF dokumenata. " +"Pogledajte dokumentaciju Cajaovog programa za izradu umanjenih prikaza." + +#~| msgid "Page Set_up..." +#~ msgid "Page Set_upā¦" +#~ msgstr "Po_deÅ”avanje stranice..." + +#~| msgid "Setup the page settings for printing" +#~ msgid "Set up the page settings for printing" +#~ msgstr "PodeÅ”ava postavke stranica za Å”tampu" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVI dokument ima neispravan oblik" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Nije uspelo kreiranje datotekeā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "Traži nisku" + +# bug: since when do the strings have names? +#~ msgid "The name of the string to be found" +#~ msgstr "Ime niske koju tražiti" + +#~ msgid "Case sensitive" +#~ msgstr "Zavisno od veliÄine slova" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "Postavljeno za pretragu koja zavisi od veliÄine slova" + +#~ msgid "Highlight color" +#~ msgstr "Boja isticanja" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "Boja isticanja za sva poklapanja" + +#~ msgid "Current color" +#~ msgstr "TekuÄa boja" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "Boja isticanja za tekuÄe poklapanje" + +#~| msgid "Reload the document" +#~ msgid "Recover previous documents?" +#~ msgstr "Da iznova uÄitam dokumente?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Izgleda da je pregledaÄ dokumenta neoÄekivano otkazao pri poslednjem " +#~ "pokretanju. Možete vratiti otvorene dokumente." + +#~ msgid "_Don't Recover" +#~ msgstr "_Ne vraÄaj" + +#~ msgid "_Recover" +#~ msgstr "_Vrati" + +#~ msgid "Crash Recovery" +#~ msgstr "Oporavak pri padu" + +#~ msgid "Print..." +#~ msgstr "Å tampanje..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Nije moguÄe napraviti simboliÄnu vezu ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "Nije moguÄe otvoriti umnožak." + +#~ msgid "_Save a Copy..." +#~ msgstr "_SaÄuvaj umnožak..." + +#~ msgid "_Print..." +#~ msgstr "_Å tampaj..." + +#~ msgid "_Find..." +#~ msgstr "_Traži..." + +#~ msgid "Co_nnect" +#~ msgstr "_Poveži se" + +#~ msgid "Connect _anonymously" +#~ msgstr "Poveži se _anonimno" + +#~ msgid "Connect as u_ser:" +#~ msgstr "Poveži se kao _korisnik:" + +#~ msgid "_Username:" +#~ msgstr "_KorisniÄko ime:" + +#~ msgid "_Domain:" +#~ msgstr "_Domen:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_Odmah zaboravi lozinku" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_Zapamti lozinku do odjavljivanja" + +#~ msgid "_Remember forever" +#~ msgstr "_Zapamti trajno" + +#~ msgid "File not available" +#~ msgstr "Datoteka nije dostupna" + +#~ msgid "Remote files aren't supported" +#~ msgstr "Mrežne datoteke nisu podržane" + +#~ msgid "Password Entry" +#~ msgstr "Unos lozinke" + +#~ msgid "Remember password for this session" +#~ msgstr "Zapamti lozinku za ovu sesiju" + +# note(slobo): jasno ovo je figurativno...može naniži lozinku na privezak... +#~ msgid "Save password in keyring" +#~ msgstr "ZakaÄi lozinku za privezak za kljuÄeve" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f in" + +#~ msgid "Find Previous" +#~ msgstr "Traži prethodno" + +#~ msgid "Find Next" +#~ msgstr "Traži sledeÄe" + +#~ msgid "Incorrect password" +#~ msgstr "Neispravna lozinka" + +#~ msgid "Evince Document Viewer" +#~ msgstr "PregledaÄ dokumenata Evins" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Pismo" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Prag" + +#~ msgid "Legal" +#~ msgstr "Pravno" + +#~ msgid "Statement" +#~ msgstr "Izjava" + +#~ msgid "Executive" +#~ msgstr "IzvrÅ”ni" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folija" + +#~ msgid "Quarto" +#~ msgstr "Kvarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "Nije moguÄe otvoriti datoteku ā%sā." + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "NeuspeÅ”no uÄitavanje dokumenta ā%sā. Ghostscript prevodilac nije unet u " +#~ "putanju" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Ugnježdeni PostSkript" + +#~ msgid "PostScript" +#~ msgstr "PostSkript" + +#~ msgid "Interpreter failed." +#~ msgstr "GreÅ”ka pri obradi." + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "Nepodržan MIME tip: ā%sā" + +#~ msgid "Images" +#~ msgstr "Slike" + +#~ msgid "Open ā%sā" +#~ msgstr "Otvori ā%sā" + +#~ msgid "Empty" +#~ msgstr "Isprazni" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "Izrada PDF-a nije podržana" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "PokuÅ”ali ste da Å”tampate koristeÄi upravljaÄki program ā%sā. Ovaj program " +#~ "zahteva PostScript upravljaÄki program za Å”tampaÄ." + +#~ msgid "Pages" +#~ msgstr "Stranice" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "Neispravan URI: ā%sā" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "Dokument nije uÄitan." + +#~ msgid "Broken pipe." +#~ msgstr "Prekinuta veza." + +#~ msgid "Error while decompressing file %s:\n" +#~ msgstr "GreÅ”ka pri otpakivanju datoteke %s:\n" + +#~ msgid "File is not readable." +#~ msgstr "Datoteke nije Äitljiva." + +#~ msgid "Document loaded." +#~ msgstr "Dokument uÄitan." + +#~ msgid "_Previous" +#~ msgstr "_Prethodni" + +#~ msgid "_Next" +#~ msgstr "_SledeÄi" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "MoguÄnost pretraživanja neÄe raditi za ovaj dokument" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "Traženje teksta je podržano samo za PDF dokumente." + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Not found" +#~ msgstr "Nije naÄeno" + +#~ msgid "Show statusbar by default" +#~ msgstr "UobiÄajeno prikaži liniju sa stanjem" + +#~ msgid "Show toolbar by default" +#~ msgstr "UobiÄajeno prikaži traku sa alatom" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "Linija sa stanjem je uobiÄajena traka u dnu koja prikazuje dodatne podatke " +#~ "o vezama i drugim akcijama. Dve istinitosne vrednosti, postavljanje " +#~ "podrazumevano prikazuje liniju sa stanjem dok iskljuÄenje podrazumevano " +#~ "sakriva liniju sa stanjem." + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "Traka sa alatom je uobiÄajena traka u vrhu koja sadrži elemente za " +#~ "navigaciju i uveÄanje. Dve istinitosne vrednosti, postavljanje podrazumevano " +#~ "prikazuje traku sa alatom dok iskljuÄenje podrazumevano sakriva traku sa " +#~ "alatom." + +#~ msgid "Unable to find glade file" +#~ msgstr "Ne mogu da naÄem Glejd datoteku" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "" +#~ "Ne mogu da naÄem Glejd datoteku ā%sā. Proverite da li je vaÅ”a instalacija " +#~ "potpuna." + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "PregledaÄ dokumenata ā lozinka je obavezna" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "SaÄuvaj tekuÄi dokument pod novim imenom" + +#~ msgid "View the properties of this document" +#~ msgstr "Pregledaj osobine ovog dokumenta" + +#~ msgid "Close this window" +#~ msgstr "Zatvori ovaj prozor" + +#~ msgid "Copy text from the document" +#~ msgstr "Umnoži tekst iz dokumenta" + +#~ msgid "Select the entire page" +#~ msgstr "Izaberi celu stranicu" + +#~ msgid "Customize the toolbar" +#~ msgstr "Prilagodi traku sa alatom" + +#~ msgid "Rotate the document to the left" +#~ msgstr "Rotiraj dokument nalevo" + +#~ msgid "Rotate the document to the right" +#~ msgstr "Rotiraj dokument nadesno" + +#~ msgid "Display help for the viewer application" +#~ msgstr "Prikaži pomoÄ za program pregledaÄa" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "Prikaži zasluge tvoraca pregledaÄa dokumenata" + +#~ msgid "Scroll one page forward" +#~ msgstr "Klizaj jednu stranu unapred" + +#~ msgid "Scroll one page backward" +#~ msgstr "Klizaj jednu stranu unazad" + +#~ msgid "Focus the page selector" +#~ msgstr "Fokusiraj izbiraÄ stranice" + +#~ msgid "Go ten pages backward" +#~ msgstr "Idi 10 strana unazad" + +#~ msgid "Go ten pages forward" +#~ msgstr "Idi 10 strana unapred" + +#~ msgid "_Statusbar" +#~ msgstr "Linija sa _stanjem" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "Prikaži ili sakrij liniju sa stanjem" + +#~ msgid "Default sidebar size" +#~ msgstr "Podrazumevana veliÄina boÄne trake" + +#~ msgid "Show sidebar by default" +#~ msgstr "UobiÄajeno prikaži boÄnu traku" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "BoÄna traka je boÄna stavka koja sadrži indeks i spisak sliÄica strana. " +#~ "Podrazumevana veliÄina postavlja Å”irinu boÄne trake u taÄkama u odnosu na " +#~ "stranu prozora. Prihvata se bilo koji ceo broj, a boÄna traka se nikad " +#~ "neÄe smanjiti ispod veliÄine neophodne za prikaz sliÄica ili indeksa. " +#~ "Velike vrednosti Äe uÄiniti da boÄna traka zauzme Å”to je moguÄe viÅ”e " +#~ "prostora za prikaz stranice u odnosu na veliÄinu prozora." diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 00000000..69d62dc9 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,1755 @@ +# Swedish messages for evince. +# Copyright (C) 2004-2010 Free Software Foundation, Inc. +# Christian Rose <menthos@menthos.com>, 2004, 2005. +# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2008, 2009, 2010. +# +# "PostScript" bƶr enligt Datatermgruppen skrivas "Postscript" pĆ„ svenska. +# http://www.nada.kth.se/dataterm/fos-lista.html#f19 +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-09-07 07:42+0200\n" +"PO-Revision-Date: 2010-09-07 07:45+0100\n" +"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\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" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "Fel vid start av kommandot \"%s\" fƶr att kunna dekomprimera serietidningen: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Kommandot \"%s\" misslyckades med att dekomprimera serietidningen." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Kommandot \"%s\" avslutades inte normalt." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Inte en MIME-typ fƶr en serietidning: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Kan inte hitta ett lƤmpligt kommando fƶr att dekomprimera denna typ av serietidning" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "OkƤnd MIME-typ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "Filen Ƥr skadad" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "Inga filer i arkivet" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "Inga bilder hittades i arkivet %s" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "Det uppstod ett fel vid borttagning av \"%s\"." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "Fel %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Serietidningar" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu-dokumentet har ett felaktigt format" + +#: ../backend/djvu/djvu-document.c:250 +msgid "The document is composed of several files. One or more of these files cannot be accessed." +msgstr "Dokumentet bestĆ„r av flera filer. En eller flera av dessa filer gĆ„r inte komma Ć„t." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu-dokument" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI-dokumentet har felaktigt format" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI-dokument" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "Detta Ƥr ett publikt verk" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "Ja" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "Nej" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Typ 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Typ 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Typ 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "Truetype" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Typ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Typ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "Truetype (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "OkƤnd typsnittstyp" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "Inget namn" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "Inbyggd delmƤngd" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "Inbyggd" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "Inte inbyggd" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF-dokument" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "Ogiltigt dokument" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress-diabilder" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Inga fel" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Inte tillrƤckligt med minne" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "Kan inte hitta zip-signaturen" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "Ogiltig zip-fil" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "Multipla Zip-filer stƶds inte" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Kan inte ƶppna filen" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Kan inte lƤsa data frĆ„n fil" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "Kan inte hitta fil i zip-arkivet" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "OkƤnt fel" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Misslyckades med att lƤsa in dokumentet \"%s\"" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Misslyckades med att spara dokumentet \"%s\"" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "Postscript-dokument" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "Kunde inte spara bilagan \"%s\": %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "Kunde inte ƶppna bilagan \"%s\": %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "Kunde inte ƶppna bilagan \"%s\"" + +# Hmm, stƤmmer detta? FIXME +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Filtypen %s (%s) stƶds inte" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Alla dokument" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Alla filer" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "Misslyckades med att skapa en temporƤrfil: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "Misslyckades med att skapa en temporƤr katalog: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen Ƥr inte en giltig .desktop-fil." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "OkƤnd Version \"%s\" i skrivbordsfil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Startar %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet accepterar inte dokument via kommandoraden" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "OkƤnd startflagga: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan inte skicka dokument-URI:er till ett \"Type=Link\"-skrivbordsobjekt" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Inte ett startbart objekt" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Inaktivera anslutning till sessionshanterare" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Ange fil som innehĆ„ller sparad konfiguration" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +#: ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FIL" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Ange sessionshanterings-id" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Flaggor fƶr sessionshantering:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Visa flaggor fƶr sessionshantering" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "Visa \"_%s\"" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_Flytta pĆ„ verktygsrad" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "Flytta markerat objekt pĆ„ verktygsraden" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_Ta bort frĆ„n verktygsrad" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "Ta bort markerat objekt frĆ„n verktygsraden" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_Ta bort verktygsrad" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "Ta bort markerad verktygsrad" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "Avskiljare" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "BƤsta anpassning" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Anpassa till sidbredd" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 +#: ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "Dokumentvisare" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "Visa dokument med flera sidor" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "Ć sidosƤtt dokumentbegrƤnsningar" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Ć sidosƤtt dokumentbegrƤnsningar, som till exempel begrƤnsning i att kopiera eller att skriva ut." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "Ta bort temporƤra filen" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "Skriv ut instƤllningsfil" + +#: ../previewer/ev-previewer.c:144 +#: ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "Dokumentgranskare fƶr MATE" + +#: ../previewer/ev-previewer-window.c:91 +#: ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "Misslyckades med att skriva ut dokument" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "Den valda skrivaren \"%s\" kunde inte hittas" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 +#: ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "_FƶregĆ„ende sida" + +#: ../previewer/ev-previewer-window.c:285 +#: ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "GĆ„ till fƶregĆ„ende sida" + +#: ../previewer/ev-previewer-window.c:287 +#: ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "_NƤsta sida" + +#: ../previewer/ev-previewer-window.c:288 +#: ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "GĆ„ till nƤsta sida" + +#: ../previewer/ev-previewer-window.c:291 +#: ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "Fƶrstora dokumentet" + +#: ../previewer/ev-previewer-window.c:294 +#: ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "Krymp dokumentet" + +#: ../previewer/ev-previewer-window.c:297 +#: ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "Skriv ut" + +#: ../previewer/ev-previewer-window.c:298 +#: ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "Skriv ut detta dokument" + +#: ../previewer/ev-previewer-window.c:342 +#: ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "_BƤsta anpassning" + +#: ../previewer/ev-previewer-window.c:343 +#: ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "Gƶr sĆ„ att det aktuella dokumentet fyller fƶnstret" + +#: ../previewer/ev-previewer-window.c:345 +#: ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "Anpassa till sidb_redd" + +#: ../previewer/ev-previewer-window.c:346 +#: ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "Gƶr sĆ„ att det aktuella dokumentet fyller bredden pĆ„ fƶnstret" + +#: ../previewer/ev-previewer-window.c:558 +#: ../shell/ev-window.c:5663 +msgid "Page" +msgstr "Sida" + +#: ../previewer/ev-previewer-window.c:559 +#: ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "VƤlj sida" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Dokument" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "Titel:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "Plats:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Ćmne:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "Fƶrfattare:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Nyckelord:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "Producent:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Skapare:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Skapad:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "Ćndrad:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "Antal sidor:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "Optimerad:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Format:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "SƤkerhet:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Pappersstorlek:" + +#: ../properties/ev-properties-view.c:188 +#: ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Ingen" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f tum" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, StĆ„ende (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Liggande (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d av %d)" + +# Borde buggrapporteras. +# +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "av %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 +#: ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "LƤser in..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "Fƶrbereder utskrift..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "FƤrdigstƤller..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "Skriver ut sida %d av %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "Utskrift stƶds inte pĆ„ denna skrivare." + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "Ogiltigt sidval" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "Varning" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "Ditt val av utskriftsintervall inkluderar inte nĆ„gra sidor" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "Sidskalning:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "Fƶrminska till utskrivningsbart omrĆ„de" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "Anpassa till utskrivningsbart omrĆ„de" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as required to fit the printable area of the printer page.\n" +msgstr "" +"Skala dokumentsidor fƶr att passa den valda skrivarsidan. VƤlj frĆ„n en av fƶljande:\n" +"\n" +"ā¢ \"Ingen\": Ingen sidskalning genomfƶrs.\n" +"\n" +"ā¢ \"Fƶrminska till utskrivningsbart omrĆ„de\": Dokumentsidor stƶrre Ƥn det utskrivningsbara omrĆ„det minskas fƶr att passa det utskrivningsbara omrĆ„det fƶr skrivarsidan.\n" +"\n" +"ā¢ \"Anpassa till utskrivningsbart omrĆ„de\": Dokumentsidor fƶrstoras eller fƶrminskas enligt vad som krƤvs fƶr att passa det utskrivningsbara omrĆ„det fƶr skrivarsidan.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "Automatisk rotering och centrering" + +#: ../libview/ev-print-operation.c:1885 +msgid "Rotate printer page orientation of each page to match orientation of each document page. Document pages will be centered within the printer page." +msgstr "Rotera skrivarens sidorientering fƶr varje sida fƶr att matcha orienteringen fƶr varje dokumentsida. Dokumentsidor kommer att centreras inom skrivarsidan." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "VƤlj sidstorlek med sidstorlek fƶr dokument" + +#: ../libview/ev-print-operation.c:1892 +msgid "When enabled, each page will be printed on the same size paper as the document page." +msgstr "NƤr aktiverad kommer varje sida att skrivas ut med samma pappersstorlek som dokumentsidan." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "Sidhantering" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Misslyckades med att skriva ut sida %d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "Rulla upp" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "Rulla ned" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "Rulla vy upp" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "Rulla vy ned" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "Dokumentvy" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "GĆ„ till sidan:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "Slut pĆ„ presentationen. Klicka fƶr att avsluta." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "GĆ„ till fƶrsta sidan" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "GĆ„ till fƶregĆ„ende sida" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "GĆ„ till nƤsta sida" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "GĆ„ till sista sidan" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "GĆ„ till sidan" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "Sƶk" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "GĆ„ till sida %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "GĆ„ till %s i filen \"%s\"" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "GĆ„ till filen \"%s\"" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "Starta %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Sƶk:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "Sƶk _fƶregĆ„ende" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Sƶk fƶregĆ„ende fƶrekomst av sƶkstrƤngen" + +#: ../shell/eggfindbar.c:337 +#: ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "Sƶk _nƤsta" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Sƶk nƤsta fƶrekomst av sƶkstrƤngen" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "_Gƶr skillnad pĆ„ gemener/VERSALER" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "VƤxla skiftlƤgeskƤnslig sƶkning" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "Ikon:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "Notering" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "Kommentar" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "Nyckel" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "HjƤlp" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "Nytt stycke" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "Stycke" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "Infoga" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "Kors" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "Cirkel" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "OkƤnd" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "Kommentarsegenskaper" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "FƤrg:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "Stil:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opak" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "Initialt fƶnstertillstĆ„nd:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "Ćppna" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "StƤng" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "Kƶr i presentationslƤge" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Lƶsenord fƶr dokumentet %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "Konverterar %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d av %d dokument konverterade" + +#: ../shell/ev-convert-metadata.c:165 +#: ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "Konverterar metadata" + +#: ../shell/ev-convert-metadata.c:187 +msgid "The metadata format used by Evince has changed, and hence it needs to be migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Metadataformatet som anvƤnds av Evince har Ƥndrats och dƤrfƶr behƶver det migreras. Om migreringen avbrƶts sĆ„ kommer metadatalagringen inte att fungera." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Ćppna ett tidigare anvƤnt dokument" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "Detta dokument Ƥr lĆ„st och kan endast lƤsas om rƤtt lƶsenord anges." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_LĆ„s upp dokument" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "Ange lƶsenord" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "Lƶsenord krƤvs" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "Dokumentet \"%s\" Ƥr lĆ„st och krƤver ett lƶsenord innan det kan ƶppnas." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_Lƶsenord:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "Glƶm lƶsenordet _omedelbart" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "Kom ihĆ„g lƶsenordet tills du _loggar ut" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "Kom ihĆ„g fƶr _alltid" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "Egenskaper" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "AllmƤnt" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "Typsnitt" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "Dokumentlicens" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Typsnitt" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "Samlar in typsnittsinformation... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "AnvƤndningsvillkor" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "Textlicens" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "Ytterligare information" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "Lista" + +#: ../shell/ev-sidebar-annotations.c:203 +#: ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "Kommentarer" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "Text" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "LƤgg till textkommentar" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "LƤgg till" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "Dokumentet innehĆ„ller inga kommentarer" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "Sida %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Bilagor" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "Lager" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "Skriv ut..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "Index" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "Miniatyrbilder" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "Sida %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "Sida %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "Dokumentet innehĆ„ller inga sidor" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "Dokumentet innehĆ„ller endast tomma sidor" + +#: ../shell/ev-window.c:1627 +#: ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "Kan inte ƶppna dokument" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "LƤser in dokument frĆ„n \"%s\"" + +#: ../shell/ev-window.c:1906 +#: ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "HƤmtar dokument (%d %%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "Misslyckades med att lƤsa fjƤrrfil." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "LƤser om dokumentet frĆ„n %s" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "Misslyckades med att lƤsa om dokumentet." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "Ćppna dokument" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "Sparar dokument till %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "Sparar bilaga till %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "Sparar bild till %s" + +#: ../shell/ev-window.c:2664 +#: ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Filen kunde inte sparas som \"%s\"." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Skickar upp dokument (%d %%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Skickar upp bilaga (%d %%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Skickar upp bild (%d %%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "Spara en kopia" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d vƤntande jobb i kƶ" +msgstr[1] "%d vƤntande jobb i kƶ" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "Skriver ut jobbet \"%s\"" + +#: ../shell/ev-window.c:3402 +msgid "Document contains form fields that have been filled out. If you don't save a copy, changes will be permanently lost." +msgstr "Dokumentet innehĆ„ller formulƤrfƤlt som har fyllts i. Om du inte sparar en kopia sĆ„ kommer Ƥndringarna att gĆ„ fƶrlorade." + +#: ../shell/ev-window.c:3406 +msgid "Document contains new or modified annotations. If you don't save a copy, changes will be permanently lost." +msgstr "Dokumentet innehĆ„ller nya eller Ƥndrade kommentarer. Om du inte sparar en kopia sĆ„ kommer Ƥndringarna att gĆ„ fƶrlorade." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "Spara en kopia av dokumentet \"%s\" fƶre stƤngning?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "StƤng _utan att spara" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "Spara en _kopia" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "VƤnta med att stƤnga tills utskriftsjobbet \"%s\" Ƥr fƤrdigt?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "Det finns %d utskriftsjobb aktiva. VƤnta med att stƤnga tills utskriften Ƥr fƤrdig?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Om du stƤnger fƶnstret sĆ„ kommer vƤntande utskriftsjobb inte att skrivas ut." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "Avbryt _utskrift och stƤng" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "StƤng _efter utskrift" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "Verktygsradsredigerare" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "Det uppstod ett fel vid visning av hjƤlp" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"Dokumentvisare\n" +"AnvƤnder %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Evince Ƥr fri programvara. Du kan distribuera det och/eller modifiera det under villkoren i GNU General Public License, publicerad av Free Software Foundation, antingen version 2 eller (om du sĆ„ vill) nĆ„gon senare version.\n" + +#: ../shell/ev-window.c:4567 +msgid "Evince 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.\n" +msgstr "Evince distribueras i hopp om att det ska vara anvƤndbart, men UTAN NĆ GON SOM HELST GARANTI, Ƥven utan underfƶrstĆ„dd garanti om SĆLJBARHET eller LĆMPLIGHET FĆR NĆ GOT SPECIELLT ĆNDAMĆ L. Se GNU General Public License fƶr ytterligare information.\n" + +#: ../shell/ev-window.c:4571 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "Du bƶr ha fĆ„tt en kopia av GNU General Public License tillsammans med Evince. Om inte, skriv till Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Fƶrfattarna av Evince" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Daniel Nylander <po@danielnylander.se>\n" +"Christian Rose\n" +"\n" +"Skicka synpunkter pĆ„ ƶversƤttningen till\n" +"<tp-sv@listor.tp-sv.se>." + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d hittades pĆ„ denna sida" +msgstr[1] "%d hittades pĆ„ denna sida" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "Hittades inte" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Ć„terstĆ„r att sƶka igenom" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "_Arkiv" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "_Redigera" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "_Visa" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "_GĆ„" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "_HjƤlp" + +#. File menu +#: ../shell/ev-window.c:5402 +#: ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "_Ćppna..." + +#: ../shell/ev-window.c:5403 +#: ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "Ćppna ett befintligt dokument" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "Ćppna _en kopia" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "Ćppna en kopia av aktuellt dokument i ett nytt fƶnster" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "S_para en kopia..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "Spara en kopia av aktuellt dokument" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "Skriv _ut..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "_Egenskaper" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "Markera _allt" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "Sƶ_k..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "Sƶk ett ord eller en fras i dokumentet" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "_Verktygsrad" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "Rotera _vƤnster" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "Rotera _hƶger" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "Spara aktuella instƤllningar som s_tandard" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "_LƤs om" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "LƤs om dokumentet" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "Auto_rulla" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "F_ƶrsta sidan" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "GĆ„ till fƶrsta sidan" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "_Sista sidan" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "GĆ„ till sista sidan" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "_InnehĆ„ll" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "_Om" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "LƤmna helskƤrmslƤget" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "LƤmna helskƤrmslƤget" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "Starta presentation" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "Starta en presentation" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "_Verktygsrad" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "Visa eller dƶlj verktygsraden" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "Sido_panel" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "Visa eller dƶlj sidopanelen" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "_SammanhƤngande" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "Visa hela dokumentet" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "_Dubbel" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "Visa tvĆ„ sidor pĆ„ en gĆ„ng" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "_HelskƤrm" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "Expandera fƶnstret sĆ„ att det fyller skƤrmen" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "Pres_entation" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "Kƶr dokumentet som en presentation" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "_Inverterade fƤrger" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "Visa sidinnehĆ„ll med inverterade fƤrger" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "_Ćppna lƤnk" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "_GĆ„ till" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "Ćppna i nytt _fƶnster" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "_Kopiera lƤnkadress" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "_Spara bild som..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "Kopiera _bild" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "Egenskaper fƶr kommentarā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "_Ćppna bilaga" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "Spara bilaga so_m..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "Zooma" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "Justera zoomnivĆ„n" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "Navigering" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "BakĆ„t" + +# Denna mĆ„ste testas +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "Flytta mellan besƶkta sidor" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "FƶregĆ„ende" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "NƤsta" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "Zooma in" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "Zooma ut" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "Anpassa till bredd" + +#: ../shell/ev-window.c:5890 +#: ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "Kunde inte starta externt program." + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "Kunde inte ƶppna extern lƤnk" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "Kunde inte hitta lƤmpligt format att spara bilden i" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "Bilden kunde inte sparas." + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "Spara bild" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "Kunde inte ƶppna bilagan" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "Bilagan kunde inte sparas." + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "Spara bilaga" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā Lƶsenord krƤvs" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "Efter filƤndelse" + +#: ../shell/main.c:69 +#: ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "Dokumentvisare fƶr MATE" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "Sidetiketten i dokumentet att visa." + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "SIDA" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "Sidnumret i dokumentet att visa." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ANTAL" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "Kƶr evince i helskƤrmslƤge" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "Kƶr evince i presentationslƤge" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "Kƶr evince som en fƶrhandsgranskare" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Ordet eller frasen att leta efter i dokumentet" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRĆNG" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "Booleska alternativ tillgƤngliga: true aktiverar skapandet av miniatyrbilder och false inaktiverar skapandet av nya miniatyrbilder" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Aktivera miniatyrbilder fƶr PDF-dokument." + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Miniatyrbildskommando fƶr PDF-dokument" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information." +msgstr "Giltigt kommando plus argument fƶr att skapa miniatyrbilder fƶr PDF-dokument. Se Caja-dokumentationen fƶr miniatyrbildsskapare fƶr mer information." + +#~ msgid "Page Set_upā¦" +#~ msgstr "SidinstƤllnin_gar..." +#~ msgid "Set up the page settings for printing" +#~ msgstr "Konfigurera sidinstƤllningarna fƶr utskrift" +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU-dokumentet har felaktigt format" +#~ msgid "Print..." +#~ msgstr "Skriv ut..." +#~ msgid "_Save a Copy..." +#~ msgstr "_Spara en kopia..." +#~ msgid "_Print..." +#~ msgstr "Skriv _ut..." +#~ msgid "_Find..." +#~ msgstr "_Sƶk..." +#~ msgid "Search string" +#~ msgstr "SƶkstrƤng" +#~ msgid "The name of the string to be found" +#~ msgstr "Namnet pĆ„ strƤngen som ska hittas" +#~ msgid "Case sensitive" +#~ msgstr "Gƶr skillnad pĆ„ gemener/VERSALER" +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "SANT fƶr en skiftlƤgeskƤnslig sƶkning" +#~ msgid "Highlight color" +#~ msgstr "FƤrgmarkeringsfƤrg" +#~ msgid "Color of highlight for all matches" +#~ msgstr "FƤrg fƶr fƤrgmarkering av alla trƤffar" +#~ msgid "Current color" +#~ msgstr "Aktuell fƤrg" +#~ msgid "Color of highlight for the current match" +#~ msgstr "FƤrg fƶr fƤrgmarkering av den aktuella trƤffen" +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "Misslyckades med att skapa filen \"%s\": %s" +#~ msgid "Recover previous documents?" +#~ msgstr "Ć terskapa tidigare dokument?" +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince verkar ha avslutats ovƤntat vid senaste kƶrningen. Du kan " +#~ "Ć„terstƤlla de ƶppnade dokumenten." +#~ msgid "_Don't Recover" +#~ msgstr "Ć terskapa _inte" +#~ msgid "_Recover" +#~ msgstr "Ć t_erskapa" +#~ msgid "Crash Recovery" +#~ msgstr "KraschĆ„terstƤllning" +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "Kunde inte skapa symboliska lƤnken \"%s\": " +#~ msgid "Cannot open a copy." +#~ msgstr "Kan inte ƶppna en kopia." +#~ msgid "Loading document from %s" +#~ msgstr "LƤser in dokument frĆ„n %s" +#~ msgid "Co_nnect" +#~ msgstr "Ansl_ut" +#~ msgid "Connect _anonymously" +#~ msgstr "Anslut a_nonymt" +#~ msgid "Connect as u_ser:" +#~ msgstr "Anslut som anvƤnda_re:" +#~ msgid "_Username:" +#~ msgstr "_AnvƤndarnamn:" +#~ msgid "_Domain:" +#~ msgstr "_DomƤn:" +#~ msgid "_Forget password immediately" +#~ msgstr "_Glƶm lƶsenordet omedelbart" +#~ msgid "_Remember password until you logout" +#~ msgstr "_Kom ihĆ„g lƶsenordet tills du loggar ut" +#~ msgid "_Remember forever" +#~ msgstr "_Kom ihĆ„g fƶr alltid" +#~ msgid "File not available" +#~ msgstr "Filen Ƥr inte tillgƤnglig" + diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 00000000..9a3ff278 --- /dev/null +++ b/po/ta.po @@ -0,0 +1,1770 @@ +# translation of evince.master.ta.po to Tamil +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER. +# +# Felix <ifelix@redhat.com>, 2006. +# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2008, 2009, 2010. +# I. Felix <ifelix@redhat.com>, 2009. +# Dr.T.vasudevan <agnihot3@gmail.com>, 2009. +# Dr.T.Vaasudevan <agnihot3@gmail.com>, 2009. +# Dr,T,Vasudevan <agnihot3@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince.master.ta\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-03 17:47+0530\n" +"PO-Revision-Date: 2010-08-04 13:37+0530\n" +"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n" +"Language-Team: Tamil <<Ubuntu-l10n-tam@lists.ubuntu.com>>\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" +"\n" +"\n" +"X-Generator: Lokalize 1.0\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą®ą®¾ą®®ą®æą®ąÆ ą®ŖąÆą®¤ąÆą®¤ą®ą®¤ąÆą®¤ąÆ ą®Ŗą®æą®°ą®æą®ąÆą® ā%sā ą®ą®ąÆą®ą®³ąÆą®ÆąÆ ą®¤ąÆą®µą®ąÆą®ąÆą®µą®¤ą®æą®²ąÆ ą®Ŗą®æą®“ąÆ : %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą®ą®¾ą®®ą®æą®ąÆ ą®ŖąÆą®¤ąÆą®¤ą®ą®¤ąÆą®¤ąÆ ą®Ŗą®æą®°ą®æą®ąÆą® ā%sā ą®ą®ąÆą®ą®³ąÆ ą®¤ąÆą®²ąÆą®µą®æą®ÆąÆą®±ąÆą®±ą®¤ąÆ." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr " ā%sā ą®ą®ąÆą®ą®³ąÆ ą®ą®°ą®æą®Æą®¾ą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą®ą®°ąÆ ą®ą®¾ą®®ą®æą®ąÆ ą®ŖąÆą®¤ąÆą®¤ą® MIME ą®µą®ąÆ ą®ą®²ąÆą®²ąÆ: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą®ą®ØąÆą®¤ ą®µą®ąÆ ą®ą®¾ą®®ą®æą®ąÆ ą®ŖąÆą®¤ąÆą®¤ą®ą®¤ąÆą®¤ąÆ ą®Ŗą®æą®°ą®æą®ąÆą® ą®ą®°ą®æą®Æą®¾ą®© ą®ą®ąÆą®ą®³ąÆą®ÆąÆ ą®ą®¾ą®£ ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą®¤ąÆą®°ą®æą®Æą®¾ą®¤ MIME ą®µą®ąÆ" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ą®ąÆą®ŖąÆą®ŖąÆ ą®ą®æą®¤ąÆą®ØąÆą®¤ą®¤ąÆ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ą®ŖąÆą®ąÆą®ą®ą®¤ąÆą®¤ą®æą®²ąÆ ą®ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą®ą®¾ą®ŖąÆą®Ŗą®ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®°ąÆ ą®ą®°ąÆą®µąÆą®®ąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą® ą®ØąÆą®ąÆą®ąÆą®µą®¤ą®æą®²ąÆ ą®Ŗą®æą®“ąÆ." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ą®Ŗą®æą®“ąÆ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą®ą®¾ą®®ą®æą®ąÆ ą®ŖąÆą®¤ąÆą®¤ą®ą®ąÆą®ą®³ąÆ" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ą®ą®µą®£ą®®ąÆ ą®¤ą®µą®±ą®¾ą®© ą®®ąÆą®±ąÆą®ÆąÆ ą®ąÆą®£ąÆą®ąÆą®³ąÆą®³ą®¤ąÆ" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ą®ą®ØąÆą®¤ ą®ą®µą®£ą®®ąÆ ą®Ŗą®² ą®ąÆą®ŖąÆą®ŖąÆą®ąÆą®ą®³ą®¾ą®²ąÆ ą®ą®°ąÆą®µą®¾ą®©ą®¤ąÆ. ą® ą®¤ą®æą®²ąÆ ą®ą®©ąÆą®±ąÆ ą®Ŗą®²ą®µąÆ ą®ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą® ą®£ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "Djvu ą®ą®µą®£ą®ąÆą®ą®³ąÆ" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą®ą®µą®£ą®®ąÆ ą®¤ą®µą®±ą®¾ą®© ą®®ąÆą®±ąÆą®ÆąÆ ą®ąÆą®£ąÆą®ąÆą®³ąÆą®³ą®¤ąÆ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą®ą®µą®£ą®ąÆą®ą®³ąÆ" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "ą®ą®ØąÆą®¤ ą®Ŗą®£ą®æ ą®ŖąÆą®¤ąÆ ą®ą®°ą®æą®®ą®¤ąÆą®¤ą®æą®²ąÆą®³ąÆą®³ą®¤ąÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ą®ą®®ąÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "ą®ą®²ąÆą®²ąÆ" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "ą®µą®ąÆ 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "ą®µą®ąÆ 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "ą®µą®ąÆ 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "ą®®ąÆą®ÆąÆą®µą®ąÆ" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "ą®µą®ąÆ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "ą®µą®ąÆ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "ą®®ąÆą®ÆąÆą®µą®ąÆ (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ą®¤ąÆą®°ą®æą®Æą®¾ą®¤ ą®ą®“ąÆą®¤ąÆą®¤ąÆą®°ąÆ ą®µą®ąÆ" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ą®ŖąÆą®Æą®°ąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "ą®ą®ąÆą®ŖąÆą®¤ą®æą®Æą®ŖąÆą®Ŗą®ąÆą® ą®¤ąÆą®£ąÆ ą®ą®£ą®®ąÆ" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "ą®ą®ąÆą®ŖąÆą®¤ą®æą®Æą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ą®ą®ąÆą®ŖąÆą®¤ą®æą®Æą®ŖąÆą®Ŗą®ą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą®ą®µą®£ą®ąÆą®ą®³ąÆ" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą®ąÆą®²ąÆą®²ąÆą®Ŗą®ą®æą®Æą®¾ą®ą®¾ą®¤ ą®ą®µą®£ą®®ąÆ" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ą®Ŗą® ą®µą®æą®²ąÆą®²ąÆą®ÆąÆ ą®ŖąÆą®±ą®æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą®Ŗą®æą®“ąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą®Øą®æą®©ąÆą®µą®ą®®ąÆ ą®ŖąÆą®¤ą®¾ą®¤ąÆ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ą®ą®æą®ŖąÆ ą®ąÆą®ÆąÆą®ŖąÆą®Ŗą®¤ąÆą®¤ąÆ ą®ą®¾ą®£ą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ą®ąÆą®²ąÆą®²ąÆą®Ŗą®ą®æą®Æą®¾ą®ą®¾ą®¤ ą®ą®æą®ŖąÆ ą®ąÆą®ŖąÆą®ŖąÆ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ą®Ŗą®²ąÆ ą®ąÆą®ŖąÆą®ŖąÆ ą®ą®æą®ŖąÆ ą®ąÆą®ąÆ ą®ą®¤ą®°ą®µąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą®ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®±ą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą®ąÆą®ŖąÆą®Ŗą®æą®²ą®æą®°ąÆą®ØąÆą®¤ąÆ ą®¤ą®°ą®µąÆ ą®Ŗą®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ." + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ą®ąÆą®ŖąÆą®ŖąÆ ą®ą®æą®ŖąÆ ą®ą®¾ą®ŖąÆą®Ŗą®ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®£ąÆą®ąÆ ą®Ŗą®æą®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą®¤ąÆą®°ą®æą®Æą®¾ą®¤ ą®Ŗą®æą®“ąÆ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®±ąÆą®± ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ąÆą®®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą®Ŗą®æą®©ąÆą®©ąÆą®°ąÆ ą®ą®µą®£ą®ąÆą®ą®³ąÆ" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®ąÆą®®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®±ą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®±ą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą®ąÆą®ŖąÆą®ŖąÆ ą®µą®ąÆ %s (%s) ą®ąÆą®ąÆ ą®ą®¤ą®°ą®µąÆ ą®ą®²ąÆą®²ąÆ" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą® ą®©ąÆą®¤ąÆą®¤ąÆ ą®ą®µą®£ą®ąÆą®ą®³ąÆ" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą® ą®©ąÆą®¤ąÆą®¤ąÆ ą®ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą®¤ą®±ąÆą®ą®¾ą®²ą®æą® ą®ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®ą®°ąÆą®µą®¾ą®ąÆą®ąÆą®µą®¤ą®æą®²ąÆ ą®¤ąÆą®¾ą®±ąÆą®±ą®¤ąÆ: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą®¤ą®±ąÆą®ą®¾ą®²ą®æą® ą® ą®ąÆą®µąÆ ą®ą®°ąÆą®µą®¾ą®ąÆą®ąÆą®µą®¤ą®æą®²ąÆ ą®¤ąÆą®¾ą®±ąÆą®±ą®¤ąÆ: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą®ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®²ąÆą®²ąÆą®Ŗą®ą®æą®Æą®¾ą®ąÆą®®ąÆ .desktop ą®ąÆą®ŖąÆą®ŖąÆ ą® ą®²ąÆą®²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą®ąÆą®²ąÆą®²ąÆą®Ŗą®ą®æą®Æą®¾ą®ąÆą®®ąÆ ą®®ąÆą®²ąÆą®®ąÆą®ąÆ ą®ąÆą®ŖąÆą®ŖąÆ ą®Ŗą®¤ą®æą®ŖąÆą®ŖąÆ '%s' ą® ą®²ąÆą®²" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą® ą®¤ąÆą®µą®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą®Ŗą®Æą®©ąÆą®Ŗą®¾ą®ąÆ ą®ą®ąÆą®ą®³ąÆ ą®µą®°ą®æą®Æą®æą®²ąÆ ą®ą®µą®£ą®ąÆą®ą®³ąÆ ą®ą®ŖąÆą®ŖąÆą®ąÆą®ąÆą®³ąÆą®³ą®¾ą®¤ąÆ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą®ą®©ą®®ąÆ ą®ą®¾ą®£ą®¾ą®¤ ą®¤ąÆą®µą®ąÆą® ą®¤ąÆą®°ąÆą®µąÆ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ą®®ąÆą®²ąÆą®®ąÆą®ąÆ ą®ą®³ąÆą®³ąÆą®ąÆą®ąÆą®ąÆ ą®ą®µą®£ ą®ÆąÆą®ą®°ąÆą® ą® ą®ąÆą®ąÆą®ąÆą® ą®ą®Æą®²ą®¾ą®¤ąÆ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą®¤ąÆą®µą®ąÆą® ą®®ąÆą®ą®æą®Æą®¾ą®¤ ą®ą®°ąÆą®ŖąÆą®Ŗą®ą®æ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą® ą®®ą®°ąÆą®µąÆ ą®®ąÆą®²ą®¾ą®³ąÆą®°ąÆą®ąÆą®ąÆ ą®ą®£ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®Æą®²ąÆ ą®ØąÆą®ąÆą®ąÆ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą®ąÆą®®ą®æą®¤ąÆą®¤ ą®µą®ą®æą®µą®®ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®ą®æą®Æ ą®ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®±ą®æą®ŖąÆą®Ŗą®æą®ąÆą®" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą® ą®®ą®°ąÆą®µąÆ ą®®ąÆą®²ą®¾ą®£ąÆą®®ąÆ ą® ą®ąÆą®Æą®¾ą®³ą®¤ąÆą®¤ąÆ ą®ąÆą®±ą®æą®ŖąÆą®Ŗą®æą®ąÆą®" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ą®ą®ą®æ (ID)" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą® ą®®ą®°ąÆą®µąÆ ą®®ąÆą®²ą®¾ą®£ąÆą®®ąÆ ą®¤ąÆą®°ąÆą®µąÆą®ą®³ąÆ:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą® ą®®ą®°ąÆą®µąÆ ą®®ąÆą®²ą®¾ą®£ąÆą®®ąÆ ą®¤ąÆą®°ąÆą®µąÆą®ą®³ąÆ ą®ą®¾ą®ąÆą®ąÆ" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sāą®ą®¾ą®ąÆą®ąÆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ą®æą®ÆąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ąÆą®Æą®æą®²ąÆ ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą® ą®ą®°ąÆą®ŖąÆą®Ŗą®ą®æą®ÆąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ą®æą®Æą®æą®²ą®æą®°ąÆą®ØąÆą®¤ąÆ ą®ØąÆą®ąÆą®ąÆ(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ąÆą®Æą®æą®²ą®æą®°ąÆą®ØąÆą®¤ąÆ ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ ą®ØąÆą®ąÆą®ąÆ" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ą®æą®ÆąÆ ą® ą®“ą®æ (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą® ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ą®æą®ÆąÆ ą®ØąÆą®ąÆą®ąÆ" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ą®Ŗą®æą®°ą®æą®ŖąÆą®Ŗą®æ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5735 +msgid "Best Fit" +msgstr "ą®ą®°ą®æą®Æą®¾ą® ą®ŖąÆą®°ąÆą®ØąÆą®¤ąÆą®¤ą®²ąÆ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą®Ŗą®ąÆą® ą® ą®ą®²ą®¤ąÆą®¤ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ą®ą®µą®£ ą®ą®¾ą®ąÆą®ą®æ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ą®Ŗą®² ą®Ŗą®ąÆą® ą®ą®µą®£ą®ąÆą®ą®³ąÆ ą®Ŗą®¾ą®°ąÆą®µąÆą®Æą®æą®ąÆ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ą®®ąÆą®²ąÆą®“ąÆą®¤ąÆą®®ąÆ ą®ą®µą®£ ą®¤ą®ąÆą®ą®³ąÆ" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą®®ąÆą®²ąÆą®“ąÆą®¤ąÆą®®ąÆ ą®ą®µą®£ ą®¤ą®ąÆą®ą®³ąÆ, ą®Øą®ą®²ąÆą®ąÆą®ąÆą® ą® ą®²ąÆą®²ą®¤ąÆ ą® ą®ąÆą®ą®æą®ąÆą®µą®¤ą®±ąÆą®ą®¾ą®© ą®¤ą®ąÆ ą®ŖąÆą®²." + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ą®¤ą®±ąÆą®ą®¾ą®²ą®æą® ą®ąÆą®ŖąÆą®ŖąÆ ą®ØąÆą®ąÆą®ąÆ" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ą® ą®ąÆą®ąÆ ą® ą®®ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®ŖąÆą®ŖąÆ" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "ą®ąÆą®©ąÆą®®ąÆ ą®ą®µą®£ ą®®ąÆą®©ąÆ ą®Ŗą®¾ą®°ąÆą®µąÆ ą®ą®°ąÆą®µą®æ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą® ą®ąÆą®ą®æą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą® ą® ą®ąÆą®ąÆ ą®ą®Æą®ØąÆą®¤ą®æą®°ą®®ąÆ '%s' ą® ą®ą®£ąÆą®ąÆ ą®Ŗą®æą®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5450 +msgid "_Previous Page" +msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æ ą®Ŗą®ąÆą®ą®®ąÆ (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5451 +msgid "Go to the previous page" +msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5453 +msgid "_Next Page" +msgstr "ą® ą®ąÆą®¤ąÆą®¤ ą®Ŗą®ąÆą®ą®®ąÆ (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5454 +msgid "Go to the next page" +msgstr "ą® ą®ąÆą®¤ąÆą®¤ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5437 +msgid "Enlarge the document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ŖąÆą®°ą®æą®¤ą®¾ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5440 +msgid "Shrink the document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ąÆą®°ąÆą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą® ą®ąÆą®ą®æą®ąÆ" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5406 +msgid "Print this document" +msgstr "ą®ą®ØąÆą®¤ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą® ą®ąÆą®ą®æą®ą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5552 +msgid "_Best Fit" +msgstr "ą®ą®°ą®æą®Æą®¾ą®© ą®ŖąÆą®°ąÆą®ØąÆą®¤ąÆ (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5553 +msgid "Make the current document fill the window" +msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®¾ą®³ą®° ą®®ąÆą®“ąÆą®®ąÆą®ąÆą®ąÆą®®ąÆ ą®Øą®æą®°ą®ŖąÆą®Ŗą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5555 +msgid "Fit Page _Width" +msgstr "ą®Ŗą®ąÆą® ą® ą®ą®²ą®¤ąÆą®¤ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ąÆ (_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5556 +msgid "Make the current document fill the window width" +msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®¾ą®³ą®° ą® ą®ą®²ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®Øą®æą®°ą®ŖąÆą®Ŗą®µąÆą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5657 +msgid "Page" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5658 +msgid "Select Page" +msgstr "ą®Ŗą®ąÆą®ą®¤ąÆą®¤ąÆ ą®¤ąÆą®°ą®ØąÆą®¤ąÆą®ąÆ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą®ą®µą®£ą®®ąÆ" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą®¤ą®²ąÆą®ŖąÆą®ŖąÆ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą®ą®ą®®ąÆ" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą®ŖąÆą®°ąÆą®³ąÆ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ą®ą®ą®æą®°ą®æą®Æą®°ąÆ:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ą®®ąÆą®ąÆą®ą®æą®Æ ą®ąÆą®±ąÆą®ą®³ąÆ:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą®¤ą®Æą®¾ą®°ą®æą®ŖąÆą®Ŗą®¾ą®³ą®°ąÆ:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą®ą®°ąÆą®µą®¾ą®ąÆą®ą®æą®Æą®µą®°ąÆ:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą®ą®°ąÆą®µą®¾ą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą®®ą®¾ą®±ąÆą®±ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą®Ŗą®ąÆą®ą®ąÆą®ą®³ą®æą®©ąÆ ą®ą®£ąÆą®£ą®æą®ąÆą®ąÆ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą®ą®°ąÆą®ąÆą®ą®æą®£ąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą®µą®ą®æą®µą®®ąÆ:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą®Ŗą®¾ą®¤ąÆą®ą®¾ą®ŖąÆą®ŖąÆ:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą®ą®¾ą®ą®æą®¤ ą® ą®³ą®µąÆ:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ą®ą®²ąÆą®²ąÆ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "ą®®ąÆą®©ąÆą®©ą®æą®°ąÆą®ŖąÆą®ŖąÆ:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f ą®®ą®æą®®ą®æ" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f ą®ą®©ąÆą®ąÆ" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą®ØąÆą®³ą®µą®¾ą®ąÆą®ąÆ (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą® ą®ą®²ą®µą®¾ą®ąÆą®ąÆ (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d of %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "of %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ą®ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ą® ą®ąÆą®ą®ą®æą®ąÆą® ą®¤ą®Æą®¾ą®°ą®¾ą®ą®æą®±ą®¤ąÆ" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ą®®ąÆą®ą®æą®ąÆą®ą®æą®±ą®¤ąÆ." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ %d ą®ą®²ąÆ %dą® ą® ą®ąÆą®ą®æą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą®ą®ØąÆą®¤ ą® ą®ąÆą®ą®ą®æą®ŖąÆą®Ŗą®æą®Æą®æą®²ąÆ ą® ą®ąÆą®ą®æą®ąÆą®µą®¤ąÆ ą®¤ąÆą®£ąÆą®ŖąÆą®°ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą®ąÆą®²ąÆą®²ąÆą®Ŗą®ą®æą®Æą®¾ą®ą®¾ą®¤ ą®Ŗą®ąÆą® ą®¤ąÆą®°ąÆą®µąÆ" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą®ą®ąÆą®ą®°ą®æą®ąÆą®ąÆ" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ą®ą®ąÆą®ą®³ąÆ ą® ą®ąÆą®ąÆ ą®µąÆą®ąÆą®ąÆ ą®¤ąÆą®°ąÆą®µąÆ ą®ą®ØąÆą®¤ ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆą®ÆąÆą®®ąÆ ą®ą®³ąÆą®³ą®ą®ąÆą®ą®µą®æą®²ąÆą®²ąÆ" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ą®Ŗą®ąÆą® ą®®ą®±ąÆą® ą®³ą®µąÆą®ąÆ" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą®Ŗą®°ą®ŖąÆą®ŖąÆą®ąÆą®ąÆ ą®ąÆą®°ąÆą®ąÆą®ąÆ" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą®Ŗą®°ą®ŖąÆą®ŖąÆą®ąÆą®ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ąÆą®" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆą®¤ąÆą®¤ ą® ą®ąÆą®ąÆą®ŖąÆą®ŖąÆą®±ą®æą®ąÆą®ąÆ ą®ą®µą®£ ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ ą®®ą®±ąÆ ą® ą®³ą®µąÆą®ąÆ ą®ąÆą®ÆąÆą®. ą®ąÆą®“ąÆ ą®ą®£ąÆą®ą®µą®±ąÆą®±ą®æą®²ąÆ " +"ą®ą®¤ąÆą®©ąÆą®®ąÆ ą®ą®©ąÆą®±ąÆ ą®¤ąÆą®°ąÆą®µąÆ ą®ąÆą®ÆąÆą®:\n" +"\n" +"ā¢ \"ą®ą®¤ąÆą®®ą®æą®²ąÆą®²ąÆ\": ą®®ą®±ąÆ ą® ą®³ą®µąÆą®ąÆ ą®ą®²ąÆą®²ąÆ.\n" +"\n" +"ā¢ \"ą® ą®ąÆą®ąÆą®ŖąÆą®Ŗą®°ą®ŖąÆą®ŖąÆą®ąÆą®ąÆ ą®ąÆą®°ąÆą®ąÆą®ąÆ\": ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą® ą®³ą®µąÆą®ąÆą®ąÆ ą® ą®¤ą®æą®ą®®ą®¾ą® ą®ą®µą®£ ą® ą®³ą®µąÆ ą®ą®°ąÆą®ŖąÆą®Ŗą®æą®©ąÆ " +"ą® ą®ąÆą®ąÆą®ŖąÆą®ŖąÆą®±ą®æą®Æą®æą®©ąÆ ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą®Ŗą®ąÆą® ą® ą®³ą®µąÆą®ąÆą®ąÆ ą®®ą®±ąÆ ą® ą®³ą®µąÆ ą®ąÆą®ÆąÆą®Æą®ŖąÆą®Ŗą®ąÆą®®ąÆ..\n" +"\n" +"ā¢ \"ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą®Ŗą®°ą®ŖąÆą®ŖąÆą®ąÆą®ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ąÆą®\": ą® ą®ąÆą®ąÆą®ŖąÆą®ŖąÆą®±ą®æą®Æą®æą®©ąÆ ą® ą®ąÆą®ą®æą®ą®ąÆą®ąÆą®ą®æą®Æ ą®Ŗą®ąÆą® ą® ą®³ą®µąÆą®ąÆą®ąÆ " +"ą®ą®µą®£ ą®Ŗą®ąÆą®ą®®ąÆ ą®ąÆą®°ąÆą®ąÆą®ą®µąÆ ą®ØąÆą®ąÆą®ą®µąÆ ą®ąÆą®ÆąÆą®Æą®ŖąÆą®Ŗą®ąÆą®®ąÆ.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ą®¤ą®¾ą®©ą®æą®Æą®ąÆą®ą®æ ą®ąÆą®“ą®±ąÆą®ą®æ ą®®ą®±ąÆą®±ąÆą®®ąÆ ą®®ąÆą®Æą®ŖąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®²ąÆ" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ą®ą®µąÆą®µąÆą®°ąÆ ą®ą®µą®£ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®©ąÆ ą®¤ą®æą®ąÆą®ÆąÆą®ÆąÆą®®ąÆ ą®ą®¤ąÆą®¤ą®æą®ąÆą®Æ ą® ą®ąÆą®ąÆą®ŖąÆą®ŖąÆą®±ą®æ ą®Ŗą®ąÆą® ą®¤ą®æą® ą®ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ą®¤ąÆą®¤ąÆ ą®®ą®¾ą®±ąÆą®±ąÆą®. " +"ą®ą®µą®£ ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆ ą® ą®ąÆą®ąÆą®ŖąÆą®ŖąÆą®±ą®æ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®®ąÆą®Æą®ŖąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®ŖąÆą®Ŗą®ąÆą®®ąÆ." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ą®ą®µą®£ ą®Ŗą®ąÆą® ą® ą®³ą®µąÆ ą®Ŗą®Æą®©ąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®æ ą®Ŗą®ąÆą® ą® ą®³ą®µąÆ ą®¤ąÆą®°ąÆą®µąÆ ą®ąÆą®ÆąÆą®." + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ą®ą®Æą®²ąÆą®®ąÆ ą®ąÆą®ÆąÆą®Æą®æą®©ąÆ ą®ą®µąÆą®µąÆą®°ąÆ ą®Ŗą®ąÆą®ą®®ąÆą®®ąÆ ą®ą®µą®£ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®©ąÆ ą® ą®¤ąÆ ą® ą®³ą®µą®æą®²ąÆ ą® ą®ąÆą®ą®æą®ą®ŖąÆą®Ŗą®ąÆą®®ąÆ." + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ą®Ŗą®ąÆą® ą®ąÆą®Æą®¾ą®³ąÆą®®ąÆ" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą®Ŗą®ąÆą®ą®¤ąÆą®¤ąÆ ą® ą®ąÆą®ą®æą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ%d: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ą®®ąÆą®²ąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ą®ąÆą®“ąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ą®Ŗą®¾ą®°ąÆą®µąÆą®ÆąÆ ą®®ąÆą®²ąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ą®Ŗą®¾ą®°ąÆą®µąÆą®ÆąÆ ą®ąÆą®“ąÆ ą®Øą®ą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ą®ą®µą®£ą®ŖąÆą®Ŗą®¾ą®°ąÆą®µąÆ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆ:" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ą®®ąÆą®©ąÆ ą®µąÆą®ŖąÆą®ŖąÆ ą®®ąÆą®ą®æą®ØąÆą®¤ą®¤ąÆ. ą®µąÆą®³ą®æą®ÆąÆą®± ą®ąÆą®ąÆą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ą®®ąÆą®¤ą®²ąÆ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ą® ą®ąÆą®¤ąÆą®¤ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ą®ą®ąÆą®ą®æ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ą®¤ąÆą®ąÆ" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆ %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ā%sā ą®ąÆą®ŖąÆą®Ŗą®æą®²ąÆ %s ą®ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ā%sā ą®ąÆą®ŖąÆą®Ŗą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆ" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%są® ą®ąÆą®Æą®²ąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆ" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą®¤ąÆą®ąÆą®:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5423 +msgid "Find Pre_vious" +msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æą®¤ąÆ ą®¤ąÆą®ąÆ (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą®µą®¾ą®°ąÆą®¤ąÆą®¤ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®ąÆą®²ąÆ ą®¤ąÆą®ą®°ą®æą®©ąÆ ą®®ąÆą®ØąÆą®¤ąÆą®Æ ą®¤ąÆą®©ąÆą®±ą®²ąÆ ą®¤ąÆą®ąÆą®" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5421 +msgid "Find Ne_xt" +msgstr "ą® ą®ąÆą®¤ąÆą®¤ą®¤ąÆ ą®¤ąÆą®ąÆ (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą®ąÆą®¾ą®²ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®ąÆą®¾ą®±ąÆą®±ąÆą®¾ą®ą®°ą®æą®©ąÆ ą® ą®ąÆą®¤ąÆą®¤ ą®Øą®æą®ą®“ąÆą®µąÆ ą®¤ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®£ą®°ąÆą®µąÆ(_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®£ą®°ąÆą®µąÆ ą®¤ąÆą®ąÆą®¤ą®²ąÆ ą®®ą®¾ą®±ąÆą®±ąÆą®" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "ą®ą®æą®©ąÆą®©ą®®ąÆ:" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ą®ąÆą®±ą®æą®ŖąÆą®ŖąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "ą®µą®æą®®ą®°ąÆą®ą®©ą®®ąÆ " + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "ą®µą®æą®ąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ą®ą®¤ą®µą®æ" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ą®ŖąÆą®¤ą®æą®Æ ą®Ŗą®¤ąÆą®¤ą®æ" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ą®Ŗą®¤ąÆą®¤ą®æ" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ą®ąÆą®°ąÆą®ąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "ą®ŖąÆą®°ąÆą®ąÆą®ą®²ąÆ ą®ąÆą®±ą®æą®Æą®æą®ąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "ą®µą®ąÆą®ą®®ąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ą®¤ąÆą®°ą®æą®Æą®¾ą®¤" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ą®ąÆą®±ą®æą®ŖąÆą®ŖąÆ ą®Ŗą®£ąÆą®ŖąÆą®ą®³ąÆ" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "ą®Øą®æą®±ą®®ąÆ:" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ą®Ŗą®¾ą®£ą®æ:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "Transparent" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "Opaque" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "ą®¤ąÆą®µą®ąÆą® ą®ą®¾ą®³ą®° ą®Øą®æą®²ąÆ:" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ą®¤ą®æą®±" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "ą®®ąÆą®ąÆ" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ą®ą®¾ą®ąÆą®ą®æ ą® ą®³ą®æą®ŖąÆą®ŖąÆ ą®Ŗą®¾ą®ąÆą®ą®æą®²ąÆ ą®ą®Æą®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "%s ą® ą®®ą®¾ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d ą®ą®µą®¤ąÆ ą®ą®µą®£ą®®ąÆ %d ą®ą®µą®£ą®ąÆą®ą®³ą®æą®²ąÆ ą®®ą®¾ą®±ąÆą®±ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ą®®ąÆą®ą®¾ą®¤ą®°ą®µąÆ ą® ą®®ą®¾ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ą®ą®µą®æą®©ąÆą®øąÆ ą®Ŗą®Æą®©ąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆą®®ąÆ ą®®ąÆą®ą®¾ ą®¤ą®°ą®µąÆ ą®ą®“ąÆą®ąÆą®ąÆ ą®®ą®¾ą®±ą®æą®µą®æą®ąÆą®ą®¤ąÆ. ą®ą®ą®µąÆ ą® ą®¤ąÆ ą®µąÆą®±ą®æą®ą®®ąÆ ą®ąÆą®£ąÆą®ąÆ ą®ąÆą®²ąÆą®² " +"ą®µąÆą®£ąÆą®ąÆą®®ąÆ. ą®ą®¤ąÆ ą®®ą®±ąÆą®¤ąÆą®¤ą®¾ą®²ąÆ ą®®ąÆą®ą®¾ą®¤ą®°ą®µąÆ ą®ąÆą®®ą®æą®ŖąÆą®ŖąÆ ą®Øą®ą®µą®¾ą®¤ąÆ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą®ą®®ąÆą®Ŗą®¤ąÆą®¤ą®æą®²ąÆ ą®Ŗą®Æą®©ąÆ ą®Ŗą®ąÆą®¤ąÆą®¤ą®æą®Æ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®¤ą®æą®±ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"ą®ą®ØąÆą®¤ ą®ą®µą®£ą®®ąÆ ą®ŖąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ąÆą®³ąÆą®³ą®¤ąÆ ą®®ą®±ąÆą®±ąÆą®®ąÆ ą®ą®°ą®æą®Æą®¾ą®© ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆą®²ąÆ ą®ą®³ąÆą®³ą®æą®ąÆą®ą®¾ą®²ąÆ ą®¤ą®¾ą®©ąÆ ą®Ŗą®ą®æą®ąÆą® ą®®ąÆą®ą®æą®ÆąÆą®®ąÆ." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ŖąÆą®ąÆą®ąÆ ą®ØąÆą®ąÆą®ąÆ (_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆą®²ąÆ ą®ą®³ąÆą®³ą®æą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ ą®¤ąÆą®µąÆą®ŖąÆą®Ŗą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą®ą®µą®£ą®®ąÆ ā%sā ą®ŖąÆą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ąÆą®³ąÆą®³ą®¤ąÆ ą®®ą®±ąÆą®±ąÆą®®ąÆ ą® ą®¤ą®©ąÆ ą®¤ą®æą®±ą®ŖąÆą®Ŗą®¤ą®±ąÆą®ąÆ ą®®ąÆą®©ąÆ ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ ą®¤ąÆą®µąÆą®ŖąÆą®Ŗą®ąÆą®ą®æą®±ą®¤ąÆ." + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ: (_P) " + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą®ą®ą®©ąÆ ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ ą®®ą®±ą®ØąÆą®¤ą®¤ąÆ (_i)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "ą®µąÆą®³ą®æą®ÆąÆą®±ąÆą®®ąÆ ą®µą®°ąÆ ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆą®²ąÆ ą®Øą®æą®©ąÆą®µąÆ ą®µąÆ (_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą®ą®ŖąÆą®ŖąÆą®¤ąÆą®®ąÆ ą®Øą®æą®©ąÆą®µąÆ ą®µąÆ (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą®Ŗą®£ąÆą®ŖąÆą®ą®³ąÆ" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą®ŖąÆą®¤ąÆ" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®°ąÆą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ą®ą®µą®£ ą®ą®°ą®æą®®ą®®ąÆ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®°ąÆ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®°ąÆ ą®µą®æą®µą®°ą®ąÆą®ą®³ąÆ ą®ąÆą®ą®°ą®æą®ąÆą®ą®æą®±ą®¤ąÆ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ą®Ŗą®Æą®©ąÆą®Ŗą®¾ą®ąÆ ą®µą®æą®¤ą®æą®ą®³ąÆ" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ą®ą®°ąÆ ą®ą®°ą®æą®®ą®®ąÆ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ą®®ąÆą®²ąÆą®®ąÆ ą®µą®æą®µą®°ą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ą®Ŗą®ąÆą®ą®æą®Æą®²ąÆ" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ą®µą®æą®Æą®¾ą®ąÆą®ą®æą®Æą®¾ą®©ą®®ąÆ" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ą®ą®°ąÆ" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ą®ą®°ąÆ ą®µą®æą®Æą®¾ą®ąÆą®ą®æą®Æą®¾ą®©ą®¤ąÆą®¤ąÆ ą®ąÆą®°ąÆ " + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ą®ąÆą®°ąÆą®ąÆą®" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®µą®æą®Æą®¾ą®ąÆą®ą®æą®Æą®¾ą®©ą®®ąÆ ą®ą®¤ąÆą®®ąÆ ą®ą®²ąÆą®²ąÆ " + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ %d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą®ą®£ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą® ą®ąÆą®ąÆą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ą® ą®ąÆą®ą®æą®ąÆ" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą® ą®ą®°ą®µą®°ą®æą®ąÆ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ą®ą®æą®±ąÆą®Ŗą®ą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆ ą®ą®¤ąÆą®®ąÆ ą®ą®²ąÆą®²ąÆ " + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®³ąÆą®³ą®¤ąÆ ą®µąÆą®±ąÆą®±ąÆ ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®¤ą®æą®±ą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā ą®ą®²ą®æą®°ąÆą®ØąÆą®¤ąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®Ŗą®¤ą®æą®µą®æą®±ą®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "ą®¤ąÆą®²ąÆ ą®ąÆą®ŖąÆą®ŖąÆ ą®ą®±ąÆą®± ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "%są®ą®²ą®æą®°ąÆą®ØąÆą®¤ąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®®ąÆą®£ąÆą®ąÆą®®ąÆ ą®ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®®ąÆą®³ąÆą®±ąÆą®± ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®¤ą®æą®±" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "%są®ąÆą®ąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ąÆą®®ą®æą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "%są®ąÆą®ąÆ ą®ą®£ąÆą®ŖąÆą®ŖąÆ ą®ąÆą®®ą®æą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "%są®ąÆą®ąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ąÆą®®ą®æą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ā%sā ą®ą® ą®ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®ąÆą®®ą®æą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ." + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą®ą®£ąÆą®ŖąÆą®ŖąÆ ą®Ŗą®¤ą®æą®µąÆą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą®Ŗą®ą®¤ąÆą®¤ąÆ ą®Ŗą®¤ą®æą®µąÆą®±ąÆą®±ąÆą®ą®æą®±ą®¤ąÆ (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ą®Øą®ą®²ą®¾ą® ą®ąÆą®®ą®æ" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ą®®ąÆą®¤ą®®ąÆą®³ąÆą®³ ą®Ŗą®£ą®æ ą®µą®°ą®æą®ąÆą®Æą®æą®²ąÆ ą®ą®³ąÆą®³ą®¤ąÆ" +msgstr[1] "%d ą®®ąÆą®¤ą®®ąÆą®³ąÆą®³ ą®Ŗą®£ą®æą®ą®³ąÆ ą®µą®°ą®æą®ąÆą®Æą®æą®²ąÆ ą®ą®³ąÆą®³ą®©" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą® ą®ąÆą®ą®æą®ąÆą®®ąÆ ą®Ŗą®£ą®æ ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "" +"ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®Øą®æą®°ą®ŖąÆą®Ŗą®ŖąÆą®Ŗą®ąÆą® ą®Ŗą®ą®æą®µą®ŖąÆą®²ą®ąÆą®ą®³ąÆ ą®ą®³ąÆą®³ą®©. ą®ØąÆą®ąÆą®ą®³ąÆ ą®ą®°ąÆ ą®Ŗą®æą®°ą®¤ą®æą®ÆąÆ ą®ąÆą®®ą®æą®ąÆą®ą®¾ą®µą®æą®ąÆą®ą®¾ą®²ąÆ ą®®ą®¾ą®±ąÆą®±ą®ąÆą®ą®³ąÆ " +"ą®Øą®æą®°ą®ØąÆą®¤ą®°ą®®ą®¾ą® ą®ą®“ą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®®ąÆ." + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "" +"ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®ŖąÆą®¤ą®æą®Æ ą® ą®²ąÆą®²ą®¤ąÆ ą®®ą®¾ą®±ąÆą®±ą®ŖąÆą®Ŗą®ąÆą® ą®µą®æą®Æą®¾ą®ąÆą®ą®æą®Æą®¾ą®©ą®ąÆą®ą®³ąÆ ą®ą®³ąÆą®³ą®©. ą®ØąÆą®ąÆą®ą®³ąÆ ą®ą®°ąÆ ą®Ŗą®æą®°ą®¤ą®æą®ÆąÆ " +"ą®ąÆą®®ą®æą®ąÆą®ą®¾ą®µą®æą®ąÆą®ą®¾ą®²ąÆ ą®®ą®¾ą®±ąÆą®±ą®ąÆą®ą®³ąÆ ą®Øą®æą®°ą®ØąÆą®¤ą®°ą®®ą®¾ą® ą®ą®“ą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®®ąÆ." + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ā%sā ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ąÆą®®ą®æą®ąÆą®ą®µą®¾?" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ą®ąÆą®®ą®æą®ąÆą®ą®¾ą®®ą®²ąÆ ą®®ąÆą®ąÆ (_w)" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "_C ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ąÆą®®ą®æ" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą® ą®ąÆą®ąÆ ą®Ŗą®£ą®æ ā%sā ą®®ąÆą®ą®æą®ÆąÆą®®ąÆ ą®µą®°ąÆ ą®ą®¾ą®¤ąÆą®¤ą®æą®°ąÆą®ąÆą® ą®µąÆą®£ąÆą®ąÆą®®ą®¾?" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d ą® ą®ąÆą®ąÆ ą®Ŗą®£ą®æą®ą®³ąÆ ą®ąÆą®Æą®²ą®æą®²ąÆą®³ąÆą®³ą®¤ąÆ. ą® ą®ąÆą®ą®æą®ąÆą®®ąÆ ą®µą®°ąÆ ą®ą®¾ą®¤ąÆą®¤ą®æą®°ąÆą®ąÆą®ą®µąÆą®®ąÆ?" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą®ą®¾ą®³ą®°ą®¤ąÆą®¤ąÆ ą®®ąÆą®ą®æą®©ą®¾ą®²ąÆ, ą®®ąÆą®¤ą®®ąÆą®³ąÆą®³ ą® ą®ąÆą®ąÆ ą®Ŗą®£ą®æą®ą®³ąÆ ą® ą®ąÆą®ą®æą®ą®ŖąÆą®Ŗą®ą®¾ą®¤ąÆ." + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "ą® ą®ąÆą®ą®æą®ąÆą®¤ą®²ąÆ ą®°ą®¤ąÆą®¤ąÆ ą®ąÆą®ÆąÆą®¤ąÆ ą®®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ (_p)" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ą® ą®ąÆą®ą®æą®ąÆą® ą®Ŗą®æą®©ąÆ ą®®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ (_a)" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ą®æ ą®¤ąÆą®ąÆą®ŖąÆą®Ŗą®æ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ą®ą®¤ą®µą®æą®ÆąÆ ą®ą®¾ą®ąÆą®ąÆą®µą®¤ą®æą®²ąÆ ą®Ŗą®æą®“ąÆ" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą®ą®µą®£ ą®ą®¾ą®ąÆą®ą®æ.\n" +" %s ą® ą®Ŗą®Æą®©ąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆą®ą®æą®±ą®¤ąÆ (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"ą®ą®µą®æą®©ąÆą®øąÆ ą®ą®°ąÆ ą®ą®²ą®µą® ą®®ąÆą®©ąÆą®ŖąÆą®°ąÆą®³ą®¾ą®ąÆą®®ąÆ ą®ØąÆą®ąÆą®ą®³ąÆ ą®ą®¤ą®©ąÆ ą®µąÆą®±ąÆ ą®Øą®Ŗą®°ąÆą®ąÆą®ąÆ ą®ąÆą®ąÆą®ąÆą®ą®²ą®¾ą®®ąÆą®®ą®±ąÆą®±ąÆą®®ąÆ Free " +"Software Foundation ą®ą®²ąÆ ą®µąÆą®³ą®æą®Æą®æą®ą®ŖąÆą®Ŗą®ąÆą® GNU General Public License ą®©ąÆą®µą®æą®¤ą®æą®®ąÆą®±ąÆą®Æą®æą®©ąÆ " +"ą® ą®ą®æą®ŖąÆą®Ŗą®ąÆą®Æą®æą®²ąÆ ą® ą®ąÆą®ąÆą®ą®¾ą®°ą®¤ąÆą®¤ą®æą®©ąÆ ą®Ŗą®¤ą®æą®ŖąÆą®ŖąÆ 2 ą® ą®²ąÆą®²ą®¤ąÆ(ą®ą®ąÆą®ą®³ąÆ ą®µą®æą®°ąÆą®ŖąÆą®Ŗą®ŖąÆą®Ŗą®ą®æ) ą® ą®¤ą®±ąÆą®ą®ąÆą®¤ąÆą®¤ ą®Ŗą®¤ą®æą®ŖąÆą®ŖąÆą®ą®³ą®æą®²ąÆ " +"ą®®ą®¾ą®±ąÆą®±ą®²ą®¾ą®®ąÆ.\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"ą®ą®µą®æą®©ąÆą®øąÆ, ą®Ŗą®Æą®©ąÆą®³ąÆą®³ą®¤ą®¾ą® ą®ą®°ąÆą®ąÆą®ąÆą®®ąÆ ą®ą®©ąÆą®± ą®Øą®®ąÆą®Ŗą®æą®ąÆą®ąÆą®Æą®æą®²ąÆ ą®µąÆą®³ą®æą®Æą®æą®ą®ŖąÆą®Ŗą®ąÆą®ąÆą®³ąÆą®³ą®¤ąÆą®ą®©ą®¾ą®²ąÆ ą®ą®ØąÆą®¤ ą®ą®¤ąÆą®¤ą®°ą®µą®¾ą®¤ą®®ąÆą®®ąÆ " +"ą®ą®æą®ąÆą®Æą®¾ą®¤ąÆ; ą®ąÆą®±ą®æą®ŖąÆą®Ŗą®æą®ąÆą® ą®ą®¾ą®°ą®£ą®ąÆą®ą®³ąÆą®ąÆą®ą®¾ą® ą®µą®£ą®æą®ą®ą®¤ąÆą®¤ą®°ą®µą®¾ą®¤ą®®ąÆ ą®ąÆą® ą®ąÆą®Æą®²ąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®ŖąÆą®Ŗą®ą®µą®æą®²ąÆą®²ąÆ. ą®®ąÆą®²ąÆą®®ąÆ " +"ą®µą®æą®µą®°ą®ąÆą®ą®³ąÆą®ąÆą®ąÆGNU General Public License ą® ą®Ŗą®¾ą®°ąÆą®ąÆą®ą®µąÆą®®ąÆ.\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ą®ØąÆą®ąÆą®ą®³ąÆ GNU General Public Licenseą®©ąÆ ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ą®µą®æą®©ąÆą®øąÆą®ą®©ąÆ ą®ŖąÆą®±ąÆą®±ą®æą®°ąÆą®ąÆą® ą®µąÆą®£ąÆą®ąÆą®®ąÆ. ą® ą®µąÆą®µą®¾ą®±ąÆ " +"ą®ŖąÆą®±ą®¾ą®µą®æą®ąÆą®ą®¾ą®²ąÆ, Free Software Foundation, Inc.,51 Franklin " +"Street, Fifth Floor, Boston, MA 02111-1301 USA ą®ą®©ąÆą®Ŗą®¤ą®±ąÆą®ąÆ ą®ą®“ąÆą®¤ą®µąÆą®®ąÆ\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "ą®ą®µą®æą®©ąÆą®øąÆ" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 The Evince authors" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "I. Felix <ifelix@redhat.com> Dr. T. Vasudevan <agnihot3@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4868 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d ą®ą®ØąÆą®¤ą®ŖąÆ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®£ąÆą®ąÆą®Ŗą®æą®ą®æą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ" +msgstr[1] "%d ą®ą®ØąÆą®¤ą®ŖąÆ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®£ąÆą®ąÆą®Ŗą®æą®ą®æą®ąÆą®ą®ŖąÆą®Ŗą®ąÆą®ą®¤ąÆ" + +#: ../shell/ev-window.c:4876 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% ą®®ąÆą®¤ą®æ ą®¤ąÆą® ą®µąÆą®£ąÆą®ą®æą®Æą®µąÆ" + +#: ../shell/ev-window.c:5389 +msgid "_File" +msgstr "ą®ąÆą®ŖąÆą®ŖąÆ (_F)" + +#: ../shell/ev-window.c:5390 +msgid "_Edit" +msgstr "ą®¤ąÆą®ąÆ (_E)" + +#: ../shell/ev-window.c:5391 +msgid "_View" +msgstr "ą®Ŗą®¾ą®°ąÆą®µąÆ (_V)" + +#: ../shell/ev-window.c:5392 +msgid "_Go" +msgstr "ą®ąÆą®²ąÆ (_G)" + +#: ../shell/ev-window.c:5393 +msgid "_Help" +msgstr "ą®ą®¤ą®µą®æ (_H)" + +#. File menu +#: ../shell/ev-window.c:5396 ../shell/ev-window.c:5697 +msgid "_Openā¦" +msgstr "(_O) ą®¤ą®æą®±" + +#: ../shell/ev-window.c:5397 ../shell/ev-window.c:5698 +msgid "Open an existing document" +msgstr "ą®ą®±ąÆą®ą®©ą®µąÆ ą®ą®³ąÆą®³ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®¤ą®æą®±ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5399 +msgid "Op_en a Copy" +msgstr "ą®Øą®ą®²ąÆ ą®¤ą®æą®±ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5400 +msgid "Open a copy of the current document in a new window" +msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ŖąÆą®¤ą®æą®Æ ą®ą®¾ą®³ą®°ą®¤ąÆą®¤ą®æą®²ąÆ ą®¤ą®æą®±ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5402 +msgid "_Save a Copyā¦" +msgstr "ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ąÆą®®ą®æ... (_S)" + +#: ../shell/ev-window.c:5403 +msgid "Save a copy of the current document" +msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®ą®°ąÆ ą®Øą®ą®²ąÆ ą®ąÆą®®ą®æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5405 +msgid "_Printā¦" +msgstr "_P ą® ą®ąÆą®ą®æą®ąÆ." + +#: ../shell/ev-window.c:5408 +msgid "P_roperties" +msgstr "ą®Ŗą®£ąÆą®ŖąÆą®ą®³ąÆ (_R)" + +#: ../shell/ev-window.c:5416 +msgid "Select _All" +msgstr "ą® ą®©ąÆą®¤ąÆą®¤ąÆą®ÆąÆą®®ąÆ ą®¤ąÆą®°ąÆą®ØąÆą®¤ąÆą®ąÆ (_A)" + +#: ../shell/ev-window.c:5418 +msgid "_Findā¦" +msgstr "(_F) ą®¤ąÆą®ąÆą®..." + +#: ../shell/ev-window.c:5419 +msgid "Find a word or phrase in the document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®ą®°ąÆ ą®ąÆą®²ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®ąÆą®±ąÆą®±ąÆą®ą®°ąÆ ą®¤ąÆą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../shell/ev-window.c:5425 +msgid "T_oolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ąÆ (_o)" + +#: ../shell/ev-window.c:5427 +msgid "Rotate _Left" +msgstr "ą®ą®ą®ŖąÆą®Ŗą®ąÆą®ą®®ąÆ ą®ąÆą®“ą®±ąÆą®±ąÆ (_L)" + +#: ../shell/ev-window.c:5429 +msgid "Rotate _Right" +msgstr "ą®µą®²ą®ŖąÆą®Ŗą®ąÆą®ą®®ąÆ ą®ąÆą®“ą®±ąÆą®±ąÆ (_R) " + +#: ../shell/ev-window.c:5431 +msgid "Save Current Settings as _Default" +msgstr "_D ą®¤ą®±ąÆą®ŖąÆą®¤ąÆą®Æ ą® ą®®ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą®®ąÆą®©ąÆą®©ą®æą®°ąÆą®ŖąÆą®Ŗą®¾ą® ą®µąÆą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5442 +msgid "_Reload" +msgstr "ą®®ąÆą®£ąÆą®ąÆą®®ąÆ ą®ą®±ąÆą®±ąÆ (_R)" + +#: ../shell/ev-window.c:5443 +msgid "Reload the document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®®ąÆą®£ąÆą®ąÆą®®ąÆ ą®ą®±ąÆą®±ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5446 +msgid "Auto_scroll" +msgstr "ą®¤ą®¾ą®©ą®æą®Æą®ąÆą®ą®æ ą®ą®°ąÆą®³ą®²ąÆ (_s)" + +#: ../shell/ev-window.c:5456 +msgid "_First Page" +msgstr "ą®®ąÆą®¤ą®²ąÆ ą®Ŗą®ąÆą®ą®®ąÆ (_F)" + +#: ../shell/ev-window.c:5457 +msgid "Go to the first page" +msgstr "ą®®ąÆą®¤ą®²ąÆ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5459 +msgid "_Last Page" +msgstr "ą®ą®ąÆą®ą®æ ą®Ŗą®ąÆą®ą®®ąÆ (_L)" + +#: ../shell/ev-window.c:5460 +msgid "Go to the last page" +msgstr "ą®ą®ąÆą®ą®æ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ą®æą®±ąÆą®ąÆ ą®ąÆą®²ąÆą®²ą®µąÆą®®ąÆ" + +#. Help menu +#: ../shell/ev-window.c:5464 +msgid "_Contents" +msgstr "ą®ą®³ąÆą®³ą®ą®ąÆą®ą®ąÆą®ą®³ąÆ (_C)" + +#: ../shell/ev-window.c:5467 +msgid "_About" +msgstr "ą®ą®¤ą®©ąÆ ą®Ŗą®±ąÆą®±ą®æ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5471 +msgid "Leave Fullscreen" +msgstr "ą®®ąÆą®“ąÆą®¤ąÆą®¤ą®æą®°ąÆą®Æą®¾ą® ą®µą®æą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5472 +msgid "Leave fullscreen mode" +msgstr "ą®®ąÆą®“ąÆą®¤ąÆą®¤ą®æą®°ąÆ ą®®ąÆą®±ąÆą®Æą®æą®²ąÆ ą®µą®æą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5474 +msgid "Start Presentation" +msgstr "ą®ą®¾ą®ąÆą®ą®æą®ÆąÆ ą®ą®°ą®®ąÆą®Ŗą®æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5475 +msgid "Start a presentation" +msgstr "ą®®ąÆą®©ąÆ ą®µąÆą®ŖąÆą®ŖąÆ ą®ą®¾ą®ąÆą®ą®æą®Æą®¾ą® ą®¤ąÆą®µą®ąÆą®ą®µąÆą®®ąÆ" + +#. View Menu +#: ../shell/ev-window.c:5534 +msgid "_Toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ąÆ (_T)" + +#: ../shell/ev-window.c:5535 +msgid "Show or hide the toolbar" +msgstr "ą®ą®°ąÆą®µą®æą®ŖąÆą®Ŗą®ąÆą®ąÆą®ÆąÆ ą®ą®¾ą®ąÆą®ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®®ą®±ąÆ" + +#: ../shell/ev-window.c:5537 +msgid "Side _Pane" +msgstr "ą®Ŗą®ąÆą® ą®Ŗą®²ą®ą®®ąÆ (_P)" + +#: ../shell/ev-window.c:5538 +msgid "Show or hide the side pane" +msgstr "ą®Ŗą®ąÆą® ą®Ŗą®²ą®ą®¤ąÆą®¤ąÆ ą®ą®¾ą®ąÆą®ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®®ą®±ąÆ" + +#: ../shell/ev-window.c:5540 +msgid "_Continuous" +msgstr "ą®¤ąÆą®ą®°ąÆą®ąÆą®ą®æ (_C)" + +#: ../shell/ev-window.c:5541 +msgid "Show the entire document" +msgstr "ą®®ąÆą®“ąÆ ą®ą®µą®£ą®¤ąÆą®¤ąÆą®ÆąÆą®®ąÆ ą®ą®¾ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5543 +msgid "_Dual" +msgstr "ą®ą®°ą®ąÆą®ąÆ (_D)" + +#: ../shell/ev-window.c:5544 +msgid "Show two pages at once" +msgstr "ą®ą®°ąÆ ą®®ąÆą®±ąÆ ą®ą®°ąÆ ą®Ŗą®ąÆą®ą®¤ąÆą®¤ąÆą®ÆąÆą®®ąÆ ą®ą®¾ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5546 +msgid "_Fullscreen" +msgstr "ą®®ąÆą®“ąÆą®¤ąÆą®¤ą®æą®°ąÆ (_F)" + +#: ../shell/ev-window.c:5547 +msgid "Expand the window to fill the screen" +msgstr "ą®¤ą®æą®°ąÆą®ÆąÆ ą®Øą®æą®°ą®ŖąÆą®Ŗ ą®ą®¾ą®³ą®°ą®¤ąÆą®¤ąÆ ą®Øą®æą®°ą®ŖąÆą®Ŗą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5549 +msgid "Pre_sentation" +msgstr "(_s) ą®ą®¾ą®ąÆą®ą®æ ą®®ąÆą®©ąÆą®µąÆą®ŖąÆą®ŖąÆ" + +#: ../shell/ev-window.c:5550 +msgid "Run document as a presentation" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®¾ą®ąÆą®ą®æą®Æą®¾ą® ą®ą®Æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5558 +msgid "_Inverted Colors" +msgstr "_I ą®¤ą®²ąÆą®ąÆą®“ąÆ ą®®ą®¾ą®±ąÆą®±ą®æą®Æ ą®Øą®æą®±ą®ąÆą®ą®³ąÆ" + +#: ../shell/ev-window.c:5559 +msgid "Show page contents with the colors inverted" +msgstr "ą®Ŗą®ąÆą® ą®ą®³ąÆą®³ą®ą®ą®¤ąÆą®¤ąÆ ą®¤ą®²ąÆą®ąÆą®“ąÆ ą®®ą®¾ą®±ąÆą®±ą®æą®Æ ą®Øą®æą®±ą®ąÆą®ą®³ąÆą®ą®©ąÆ ą®ą®¾ą®ąÆą®ąÆą®" + +#. Links +#: ../shell/ev-window.c:5567 +msgid "_Open Link" +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®± (_O)" + +#: ../shell/ev-window.c:5569 +msgid "_Go To" +msgstr "ą®ąÆą®²ąÆ (_G)" + +#: ../shell/ev-window.c:5571 +msgid "Open in New _Window" +msgstr "ą®ŖąÆą®¤ąÆ _ą®ą®¾ą®³ą®°ą®¤ąÆą®¤ą®æą®²ąÆ ą®¤ą®æą®±ą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5573 +msgid "_Copy Link Address" +msgstr "ą®ą®£ąÆą®ŖąÆą®ŖąÆ ą®®ąÆą®ą®µą®°ą®æą®ÆąÆ ą®Øą®ą®²ąÆą®ąÆ (_C)" + +#: ../shell/ev-window.c:5575 +msgid "_Save Image Asā¦" +msgstr "(_S) ą®Ŗą®æą®®ąÆą®Ŗą®¤ąÆą®¤ąÆ ą®ą®ŖąÆą®Ŗą®ą®æą®ąÆ ą®ąÆą®®ą®æ" + +#: ../shell/ev-window.c:5577 +msgid "Copy _Image" +msgstr "_ą®Ŗ ą®Ŗą®æą®®ąÆą®Ŗą®¤ąÆą®¤ąÆ ą®Ŗą®æą®°ą®¤ą®æ ą®ą®ąÆą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/ev-window.c:5579 +msgid "Annotation Propertiesā¦" +msgstr "ą®µą®æą®Æą®¾ą®ąÆą®ą®æą®Æą®¾ą®© ą®Ŗą®£ąÆą®ŖąÆą®ą®³ąÆ..." + +#: ../shell/ev-window.c:5584 +msgid "_Open Attachment" +msgstr "_O ą®ą®£ąÆą®ŖąÆą®ŖąÆ ą®¤ą®æą®±" + +#: ../shell/ev-window.c:5586 +msgid "_Save Attachment Asā¦" +msgstr "_S ą®ą®£ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą®ą®ŖąÆą®Ŗą®ą®æą®ąÆ ą®ąÆą®®ą®æ" + +#: ../shell/ev-window.c:5671 +msgid "Zoom" +msgstr "ą®ŖąÆą®°ą®æą®¤ą®¾ą®ąÆą®ąÆ" + +#: ../shell/ev-window.c:5673 +msgid "Adjust the zoom level" +msgstr "ą®ŖąÆą®°ą®æą®¤ą®¾ą®ąÆą®ąÆą®®ąÆ ą®Øą®æą®²ąÆą®ÆąÆ ą®®ą®¾ą®±ąÆą®±ąÆ" + +#: ../shell/ev-window.c:5683 +msgid "Navigation" +msgstr "ą®ą®²ą®¾ą®µą®²ąÆ" + +#: ../shell/ev-window.c:5685 +msgid "Back" +msgstr "ą®Ŗą®æą®©ąÆ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5688 +msgid "Move across visited pages" +msgstr "ą®®ąÆą®©ąÆą®ŖąÆ ą®ąÆą®©ąÆą®± ą®Ŗą®ąÆą®ą®ąÆą®ą®³ąÆ ą®ą®ą®¾ą® ą®ą®²ą®¾ą®µąÆą®" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5718 +msgid "Previous" +msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5723 +msgid "Next" +msgstr "ą® ą®ąÆą®¤ąÆą®¤ąÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5727 +msgid "Zoom In" +msgstr "ą®ą®æą®±ą®æą®¤ą®¾ą®ąÆą®ąÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5731 +msgid "Zoom Out" +msgstr "ą®ŖąÆą®°ą®æą®¤ą®¾ą®ąÆą®ąÆ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5739 +msgid "Fit Width" +msgstr "ą® ą®ą®²ą®¤ąÆą®¤ąÆ ą®ŖąÆą®°ąÆą®¤ąÆą®¤ąÆ" + +#: ../shell/ev-window.c:5884 ../shell/ev-window.c:5901 +msgid "Unable to launch external application." +msgstr "ą®ŖąÆą®± ą®Ŗą®Æą®©ąÆą®Ŗą®¾ą®ąÆą®ąÆ ą®¤ą®æą®±ą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ" + +#: ../shell/ev-window.c:5958 +msgid "Unable to open external link" +msgstr "ą®ŖąÆą®± ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®±ą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ" + +#: ../shell/ev-window.c:6125 +msgid "Couldn't find appropriate format to save image" +msgstr "ą®ąÆą®®ą®æą®ąÆą® ą®ŖąÆą®°ąÆą®¤ąÆą®¤ą®®ą®¾ą®© ą®ą®“ąÆą®ąÆą®ąÆ ą®ą®¾ą®£ ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#: ../shell/ev-window.c:6167 +msgid "The image could not be saved." +msgstr "ą®Ŗą®æą®®ąÆą®Ŗą®¤ąÆą®¤ąÆ ą®ąÆą®®ą®æą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ." + +#: ../shell/ev-window.c:6199 +msgid "Save Image" +msgstr "ą®Ŗą®æą®®ąÆą®Ŗą®¤ąÆą®¤ąÆ ą®ąÆą®®ą®æ" + +#: ../shell/ev-window.c:6327 +msgid "Unable to open attachment" +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®¤ą®æą®±ą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ" + +#: ../shell/ev-window.c:6380 +msgid "The attachment could not be saved." +msgstr "ą®ą®£ąÆą®ŖąÆą®Ŗą®æą®©ąÆ ą®ąÆą®®ą®æą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ." + +#: ../shell/ev-window.c:6425 +msgid "Save Attachment" +msgstr "ą®ą®£ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą®ąÆą®®ą®æ" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ą®ą®ą®µąÆą®ąÆą®ąÆą®²ąÆ ą®¤ąÆą®µąÆ" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ą®ØąÆą®ąÆą®ą®æą®Æą®¾ą®²ąÆ" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ą®ą®µą®£ ą®ą®¾ą®ąÆą®ą®æ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "ą®ą®¾ą®ąÆą® ą®µąÆą®©ąÆą®ą®æą®Æ ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®ąÆą®±ą®æą®ŖąÆą®ŖąÆ ą®Ŗą®ąÆą®ą®®ąÆ" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "ą®Ŗą®ąÆą®ą®®ąÆ" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "ą®ą®¾ą®ąÆą® ą®µąÆą®©ąÆą®ą®æą®Æ ą®ą®µą®£ą®¤ąÆą®¤ą®æą®©ąÆ ą®Ŗą®ąÆą® ą®ą®£ąÆ." + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ą®ą®µą®æą®©ąÆą®øąÆ ą® ą®®ąÆą®“ąÆą®¤ąÆą®¤ą®æą®°ąÆ ą®®ąÆą®±ąÆą®Æą®æą®²ąÆ ą®ą®Æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ą®ą®µą®æą®©ąÆą®øąÆ ą® ą®®ąÆą®“ąÆą®¤ąÆą®¤ą®æą®°ąÆ ą®®ąÆą®©ąÆ ą®µąÆą®ŖąÆą®ŖąÆ ą®®ąÆą®±ąÆą®Æą®æą®²ąÆ ą®ą®Æą®ąÆą®ą®µąÆą®®ąÆ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ą®ą®µą®æą®©ąÆą®øąÆ ą® ą®®ąÆą®©ąÆą®ą®¾ą®ąÆą®ą®æą®Æą®¾ą® ą®ą®Æą®ąÆą®ą®µąÆą®®ąÆ." + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ą®ą®µą®£ą®¤ąÆą®¤ą®æą®²ąÆ ą®¤ąÆą® ą®ą®°ąÆ ą®ąÆą®²ąÆ ą® ą®²ąÆą®²ą®¤ąÆ ą®ąÆą®±ąÆą®±ąÆą®ą®°ąÆ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[FILE...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą®ŖąÆą®²ą®æą®Æą®©ąÆ ą®µą®æą®°ąÆą®ŖąÆą®Ŗą®ąÆą®ą®³ąÆ ą®ą®³ąÆą®³ą®©: ą®ą®°ą®æ ą®ą®æą®±ąÆą®Ŗą®ą®¤ąÆą®¤ąÆ ą®ąÆą®Æą®²ąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆą®ą®æą®±ą®¤ąÆ ą®®ą®±ąÆą®±ąÆą®®ąÆ ą®¤ą®µą®±ąÆ ą®ŖąÆą®¤ą®æą®Æ " +"ą®ą®æą®±ąÆą®Ŗą®ą®ąÆą®ą®³ąÆą®ą®°ąÆą®µą®¾ą®ąÆą®ą®¤ąÆą®¤ąÆ ą®ąÆą®Æą®²ąÆą®ØąÆą®ąÆą®ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą®ą®µą®£ą®ąÆą®ą®³ąÆą®ąÆą®ąÆ ą®ą®æą®±ąÆą®Ŗą®ą®¤ąÆą®¤ąÆ ą®ąÆą®Æą®²ąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆą®ą®æą®±ą®¤ąÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą®ą®µą®£ą®ąÆą®ą®³ąÆą®ąÆą®ą®¾ą®© ą®ą®æą®±ąÆą®Ŗą® ą®ą®ąÆą®ą®³ąÆą®ą®³ąÆ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą®ą®µą®£ ą®ą®æą®±ąÆ ą®Ŗą®ą®ąÆą®ą®³ąÆą®ąÆą®ąÆ ą®ą®°ą®æą®Æą®¾ą®© ą®ą®ąÆą®ą®³ąÆ ą®®ą®±ąÆą®±ąÆą®®ąÆ ą®®ą®¤ą®æą®ŖąÆą®ŖąÆą®ą®³ąÆ ą®ą®³ąÆą®³ą®©. ą®®ąÆą®²ąÆą®®ąÆ ą®¤ą®ą®µą®²ąÆą®ą®³ąÆą®ąÆą®ąÆ " +"caja ą®ą®æą®±ąÆą®Ŗą® ą®ą®µą®£ą®®ą®¾ą®ąÆą®ą®¤ąÆą®¤ąÆ ą®Ŗą®¾ą®°ąÆą®ąÆą®ą®µąÆą®®ąÆ." + +#~ msgid "Page Set_upā¦" +#~ msgstr "(_u) ą®Ŗą®ąÆą® ą® ą®®ąÆą®ŖąÆą®ŖąÆ" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "ą® ą®ąÆą®ą®æą®ąÆą®µą®¤ą®±ąÆą®ą®¾ą®© ą®Ŗą®ąÆą® ą® ą®®ąÆą®ŖąÆą®ŖąÆą®ą®³ąÆ ą® ą®®ąÆą®ąÆą®ą®µąÆą®®ąÆ" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą®ą®µą®£ą®®ąÆ ą®¤ą®µą®±ą®¾ą®© ą®®ąÆą®±ąÆą®ÆąÆ ą®ąÆą®£ąÆą®ąÆą®³ąÆą®³ą®¤ąÆ" + +#~ msgid "Print..." +#~ msgstr "ą® ą®ąÆą®ą®æą®ąÆ..." + +#~ msgid "_Save a Copy..." +#~ msgstr "ą®ą®°ąÆ ą®Øą®ą®²ą®¾ą® ą®ąÆą®®ą®æ... (_S)" + +#~ msgid "_Print..." +#~ msgstr "ą® ą®ąÆą®ą®æą®ąÆ... (_P)" + +#~ msgid "_Find..." +#~ msgstr "ą®¤ąÆą®ąÆ... (_F)" + +#~ msgid "Search string" +#~ msgstr "ą®ą®°ą®¤ąÆą®¤ąÆ ą®¤ąÆą®ąÆ" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą®ą®°ą®¤ąÆą®¤ą®æą®©ąÆ ą®ŖąÆą®Æą®°ąÆ ą®ą®¾ą®£ ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ" + +#~ msgid "Case sensitive" +#~ msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®£ą®°ąÆą®µąÆ" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą®ą®“ąÆą®¤ąÆą®¤ąÆą®£ą®°ąÆą®µąÆ ą®¤ąÆą®ąÆą®¤ą®²ąÆ ą®ą®°ą®æ ą®ą®ąÆą®®ąÆ" + +#~ msgid "Highlight color" +#~ msgstr "ą®®ąÆą®©ąÆą®©ą®æą®²ąÆą®ŖąÆą®Ŗą®ąÆą®¤ąÆą®¤ąÆą®®ąÆ ą®Øą®æą®±ą®®ąÆ" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą® ą®©ąÆą®¤ąÆą®¤ąÆ ą®ą®ŖąÆą®ŖąÆą®ąÆą®ą®³ą®æą®©ąÆ ą®®ąÆą®©ąÆą®©ą®æą®²ąÆą®ŖąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®ŖąÆą®Ŗą®ąÆą®®ąÆ ą®Øą®æą®±ą®®ąÆ" + +#~ msgid "Current color" +#~ msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®Øą®æą®±ą®®ąÆ" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą®Øą®ą®ŖąÆą®ŖąÆ ą®ą®ŖąÆą®ŖąÆą®ąÆą®ą®æą®©ąÆ ą®®ąÆą®©ąÆą®©ą®æą®²ąÆą®ŖąÆą®Ŗą®ąÆą®¤ąÆą®¤ą®ŖąÆą®Ŗą®ąÆą®®ąÆ ą®Øą®æą®±ą®®ąÆ" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sā ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®ą®°ąÆą®µą®¾ą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ:%s" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą®®ąÆą®ØąÆą®¤ąÆą®Æ ą®ą®µą®£ą®¤ąÆą®¤ąÆ ą®®ąÆą®ąÆą®ą®µą®¾?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ą®ą®ąÆą®ą®æą®Æą®¾ą® ą®ą®Æą®ąÆą®ą®æą®Æą®ŖąÆą®¤ąÆ ą®ą®µą®æą®©ąÆą®øąÆ ą®ą®¤ą®æą®°ąÆą®Ŗą®¾ą®°ą®¾ą®¤ ą®µą®æą®¤ą®®ą®¾ą® ą®µąÆą®³ą®æą®ÆąÆą®±ą®æą®Æą®¤ąÆ ą®ŖąÆą®²ąÆ ą®ą®³ąÆą®³ą®¤ąÆ. ą®ØąÆą®ąÆą®ą®³ąÆ " +#~ "ą®¤ą®æą®±ą®ØąÆą®¤ ą®ą®µą®£ą®ąÆą®ą®³ąÆ ą®®ąÆą®ąÆą® ą®ą®Æą®²ąÆą®®ąÆ." + +#~ msgid "_Don't Recover" +#~ msgstr "_D ą®®ąÆą®ąÆą®ą®¾ą®¤ąÆ" + +#~ msgid "_Recover" +#~ msgstr "_R ą®®ąÆą®³ąÆ" + +#~ msgid "Crash Recovery" +#~ msgstr "ą®ą®æą®¤ąÆą®µąÆ ą®®ąÆą®ąÆą®ŖąÆ" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ą®ą®æą®®ąÆą®²ą®æą®©ąÆą®ąÆ ā%sā ą® ą®ą®°ąÆą®µą®¾ą®ąÆą® ą®®ąÆą®ą®æą®Æą®µą®æą®²ąÆą®²ąÆ " + +#~ msgid "Cannot open a copy." +#~ msgstr "ą®ą®°ąÆ ą®Ŗą®æą®°ą®¤ą®æą®ÆąÆ ą®¤ą®æą®±ą®ąÆą® ą®ą®Æą®²ą®µą®æą®²ąÆą®²ąÆ" diff --git a/po/te.po b/po/te.po new file mode 100644 index 00000000..f3789484 --- /dev/null +++ b/po/te.po @@ -0,0 +1,1790 @@ +# translation of te.po to Telugu +# Telugu translation of evince. +# Copyright (C) 2007 Swecha Telugu Localisation Team +# This file is distributed under the same license as the evince package. +# +# Bharat Kumar <jonnalagaddabharat@gmail.com>, 2007. +# Krishna Babu K <kkrothap@redhat.com>, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: te\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-07-27 21:01+0000\n" +"PO-Revision-Date: 2010-07-21 17:50+0530\n" +"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n" +"Language-Team: Telugu <en@li.org>\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" +"\n" +"\n" +"\n" +"\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą°ą°¦ą±ą°¶ą°®ą± ā%sā ą°ą°°ą°ą°ą°æą°ą°ą±ą°ą°²ą± ą°¦ą±ą°·ą°®ą±, ą°ą°¾ą°®ą°æą°ą± ą°Ŗą±ą°øą±ą°¤ą°ą°ą°Øą± ą°”ą°æą°ą°ą°Ŗą±ą°°ą±ą°øą± ą°ą±ą°Æą±ą°ą°ą±: %s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ą°ą°¾ą°®ą°æą°ą± ą°Ŗą±ą°øą±ą°¤ą°ą° ą°”ą°æą°ą°ą°Ŗą±ą°°ą±ą°øą± ą°µą°¦ą±ą°¦ ą°ą°¦ą±ą°¶ą°®ą± ā%sā ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ." + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ą°ą°¦ą±ą°¶ą°®ą± ā%sā ą°øą°¾ą°§ą°¾ą°°ą°£ą°ą°ą°¾ ą°®ą±ą°ą°æą°Æą°²ą±ą°¦ą±." + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą°ą°¾ą°®ą°æą°ą± ą°Ŗą±ą°øą±ą°¤ą°ą° MIME ą°°ą°ą°®ą± ą°ą°¾ą°¦ą±: %s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą° ą°°ą°ą°®ą±ą°Ø ą°ą°¾ą°®ą°æą°ą± ą°Ŗą±ą°øą±ą°¤ą°ą°®ą±ą°Øą± ą°”ą°æą°ą°ą°Ŗą±ą°°ą±ą°øą± ą°ą±ą°Æą±ą°ą°ą± ą°øą°°ą±ą°Ø ą°ą°¦ą±ą°¶ą°®ą±ą°Øą± ą°ą°Øą±ą°ą±ą°Øą°²ą±ą° ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ą° ą°Ŗą°°ą°æą°ą°æą°¤ MIME ą°°ą°ą°" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ą°¦ą°øą±ą°¤ą±ą°°ą°®ą± ą°Ŗą°¾ą°”ą±ą°Øą°¦ą°æ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "ą°ą°°ą±ą°ą°æą°µą±āą°Øą°ą°¦ą± ą°Æą± ą°¦ą°øą±ą°¤ą±ą°°ą°®ą±ą°²ą±ą°²ą±ą°µą±" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "%s ą°øą°ą°ą±ą°°ą°¹ą°ą°²ą± ą°Ŗą±ą°°ą°¤ą°æą°®ą°²ą± ą°ą°Øą°¬ą°”ą°²ą±ą°¦ą±" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā ą°¤ą±ą°²ą°ą°æą°ą°ą±ą°ą°²ą± ą°µą±ą° ą°¦ą±ą°·ą°®ą±ą°µą±ą°ą°¦ą°æ." + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "ą°¦ą±ą°·ą°®ą± %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ą°ą°¾ą°®ą°æą°ą± ą°Ŗą±ą°øą±ą°¤ą°ą°¾ą°²ą±" + +#: ../backend/djvu/djvu-document.c:173 +#, fuzzy +msgid "DjVu document has incorrect format" +msgstr "DVI ą°Ŗą°¤ą±ą°°ą° ą°øą°°ą°æą°Æą±ą°Ø ą°°ą±ą°Ŗą°²ą°¾ą°µą°Øą±ą°Æą°ą°²ą± ą°²ą±ą°¦ą±" + +#: ../backend/djvu/djvu-document.c:250 +#, fuzzy +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ą°ą±ą°Øą±ą°Øą°æ ą°¦ą°øą±ą°¤ą±ą°°ą°¾ą°²ą°ą± ą° ą°Ŗą°¤ą±ą°°ą° ą°ą°°ą±ą°Ŗą°”ą°æą°Øą°¦ą°æ. ą° ą°ą±ą°ą°æ ą°ą°°ą±ą°Ŗą°”ą°æą°Ø ą°ą°ą°ą°æ ą°²ą±ą°¦ą°¾ ą°ą±ą°Øą±ą°Øą°æ ą°¦ą°øą±ą°¤ą±ą°°ą°¾ą°²ą°ą± ą°Æą°¾ą°ą±ą°øą°æą°øą± ą°²ą±ą°¦ą±." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +#, fuzzy +msgid "DjVu Documents" +msgstr "Djvu ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ą°Ŗą°¤ą±ą°°ą° ą°øą°°ą°æą°Æą±ą°Ø ą°°ą±ą°Ŗą°²ą°¾ą°µą°Øą±ą°Æą°ą°²ą± ą°²ą±ą°¦ą±" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../backend/pdf/ev-poppler.cc:521 +msgid "This work is in the Public Domain" +msgstr "" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:774 +msgid "Yes" +msgstr "ą° ą°µą±ą°Øą±" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:777 +msgid "No" +msgstr "ą°ą°¾ą°¦ą±" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1" +msgstr "ą°°ą°ą° 1" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 1C" +msgstr "ą°°ą°ą° 1C" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "Type 3" +msgstr "ą°°ą°ą° ą±©" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "TrueType" +msgstr "ą°Øą°æą°ą°®ą±ą°Ø ą°°ą°ą°" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1 (CID)" +msgstr "ą°°ą°ą° 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "Type 1C (CID)" +msgstr "ą°°ą°ą° 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "TrueType (CID)" +msgstr "ą°Øą°æą°ą°®ą±ą°Ø ą°°ą°ą° (CID)" + +#: ../backend/pdf/ev-poppler.cc:919 +msgid "Unknown font type" +msgstr "ą° ą°Ŗą°°ą°æą°ą°æą°¤ ą° ą°ą±ą°·ą°°ą°¶ą±ą°²ą°æ" + +#: ../backend/pdf/ev-poppler.cc:945 +msgid "No name" +msgstr "ą°Ŗą±ą°°ą± ą°²ą±ą°¦ą±" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded subset" +msgstr "ą°ą°ą°¬ą±ą°”ą±ą°”ą± ą°µą±ą°Ŗą°øą°®ą°æą°¤ą°æ" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Embedded" +msgstr "ą°ą°ą°¬ą±ą°”ą±ą°”ą±" + +#: ../backend/pdf/ev-poppler.cc:957 +msgid "Not embedded" +msgstr "ą°ą°ą°¬ą±ą°”ą±ą°”ą± ą°ą°¾ą°²ą±ą°¦ą±" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą°Øą°æą°øą±ą°øą°¾ą°°ą°®ą±ą°Ø ą°Ŗą°¤ą±ą°°ą°®ą±" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress ą°øą±ą°²ą±ą°”ą±ą°²ą±" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą°¦ą±ą°·ą°®ą± ą°²ą±ą°¦ą±" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ą°ą°¾ą°µą°²ą°øą°æą°Øą°ą°¤ ą°ą±ą°ą°¾ą°Ŗą°ą°¶ą°ą±ą°¤ą°æ ą°²ą±ą°¦ą±" + +#: ../backend/impress/zip.c:59 +#, fuzzy +msgid "Cannot find ZIP signature" +msgstr "ą°ą°æą°Ŗą± ą°øą°ą°¤ą°ą° ą°ą°Øą°¬ą°”ą°²ą±ą°¦ą±" + +#: ../backend/impress/zip.c:62 +#, fuzzy +msgid "Invalid ZIP file" +msgstr "ą°Øą°æą°øą±ą°øą°¾ą°°ą°®ą±ą°Ø ą°ą°æą°Ŗą± ą°¦ą°øą±ą°¤ą±ą°°ą°" + +#: ../backend/impress/zip.c:65 +#, fuzzy +msgid "Multi file ZIPs are not supported" +msgstr "ą°ą°ą±ą°ą±ą°µ ą°ą°æą°Ŗą± ą°¦ą°øą±ą°¤ą±ą°°ą°¾ą°²ą°ą± ą°øą°¹ą°ą°¾ą°°ą° ą°²ą±ą°¦ą±" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą°¦ą°øą±ą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą°µą°²ą±ą°®ą±" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą°¦ą°øą±ą°¤ą±ą°°ą°®ą± ą°Øą±ą°ą°”ą°æ ą°¦ą°¤ą±ą°¤ą°¾ą°ą°¶ą°¾ą°Øą±ą°Øą°æ ą°ą°¦ą±ą°µą°²ą±ą°®ą±" + +#: ../backend/impress/zip.c:74 +#, fuzzy +msgid "Cannot find file in the ZIP archive" +msgstr "ą°ą°æą°Ŗą± ą°øą°ą°ą±ą°°ą°¹ą°ą°²ą± ą°¦ą°øą±ą°¤ą±ą°°ą° ą°ą°Øą°¬ą°”ą±ą°ą°²ą±ą°¦ą±" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ą° ą°Ŗą°°ą°æą°ą°æą°¤ ą°¦ą±ą°·ą°" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ā%sā ą°²ą±ą°”ą°µą±ą°µą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ā%sā ą°¦ą°¾ą°Æą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą°Ŗą±ą°øą±ą°ą±ą°øą±ą°°ą±ą°ą°æą°Ŗą±ą°ą± ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¦ą°¾ą°Æą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą°µą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą°µą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą°¦ą°øą±ą°¤ą±ą°°ą°®ą± ą°°ą°ą°®ą± %s (%s) ą°®ą°¦ą±ą°¦ą°¤ą±ą°Æą°¬ą°”ą±ą° ą°²ą±ą°¦ą±" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą° ą°Øą±ą°Øą°æ ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą° ą°Øą±ą°Øą°æ ą°¦ą°øą±ą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../libdocument/ev-file-helpers.c:146 +#, fuzzy, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ą°¤ą°¾ą°¤ą±ą°ą°¾ą°²ą°æą° ą°”ą±ą°°ą±ą°ą±ą°ą°°ą±ą°Øą± ą°øą±ą°·ą±ą°ą°æą°ą°ą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ." + +#: ../libdocument/ev-file-helpers.c:308 +#, fuzzy, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ą°¤ą°¾ą°¤ą±ą°ą°¾ą°²ą°æą° ą°”ą±ą°°ą±ą°ą±ą°ą°°ą±ą°Øą± ą°øą±ą°·ą±ą°ą°æą°ą°ą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą°«ą±ą°²ą± ą°ą±ą°²ą±ą°²ą±ą°Øą°ą±ą°µą°ą°ą°æ .desktop ą°«ą±ą°²ą± ą°ą°¾ą°¦ą±" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą°ą±ą°°ą±ą°¤ą°æą°ą°ą°¬ą°”ą°Øą°æ ą°”ą±ą°øą±ą°ą±ą°ą°¾ą°Ŗą± ą°«ą±ą°²ą± ą°µą°°ą±ą°·ą°Øą± '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s ą°Ŗą±ą°°ą°¾ą°°ą°ą°ą°æą°øą±ą°¤ą±ą°ą°¦ą°æ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą°ą°¦ą±ą°¶ą°µą°°ą±ą°ø ą°Øą°ą°¦ą± ą° ą°Øą±ą°µą°°ą±ą°¤ą°Øą°®ą±ą°²ą± ą°Ŗą°¤ą±ą°°ą°®ą±ą°²ą°Øą± ą°ą°ą°ą±ą°ą°°ą°æą°ą°ą°µą±" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą°ą±ą°°ą±ą°¤ą°æą°ą°ą°¬ą°”ą°Øą°æ ą°Ŗą±ą°°ą°¾ą°°ą°ą° ą°ą°ą±ą°ą°æą°ą°®ą±: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± URIą°²ą°Øą± Type=Link' desktop entry ą°ą± ą°Ŗą°ą°Ŗą°²ą±ą°¦ą±." + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą°¦ą°æą°ą°ą°¦ą°ą°æą°Ø ą° ą°ą°¶ą°®ą± ą°ą°¾ą°¦ą±" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ą°øą±ą°·ą°Øą± ą°Øą°æą°°ą±ą°µą°¾ą°¹ą°æą°ą°ą± ą° ą°Øą±ą°øą°ą°§ą°¾ą°Øą°®ą±ą°Øą± ą° ą°ą±ą°¤ą°Øą°®ą± ą°ą±ą°Æą±ą°®ą±" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ą°¦ą°¾ą°ą°æą°µą±ą°Øą±ą°Ø ą°ą°ą±ą°¤ą±ą°ą°°ą°£ą°Øą± ą°ą°²ą°æą°ą°æą°µą±ą°Øą±ą°Ø ą°«ą±ą°²ą± ą°¤ą±ą°²ą±ą°Ŗą±ą°®ą±" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ą°øą±ą°·ą°Øą± ą°Øą°æą°°ą±ą°µą°¹ą°£ą°¾ IDą°Øą± ą°¤ą±ą°²ą±ą°Ŗą±ą°®ą±" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ą°ą°”ą°æ" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ą°øą±ą°·ą°Øą± ą°Øą°æą°°ą±ą°µą°¹ą°£ą°¾ ą°ą°ą±ą°ą°æą°ą°®ą±ą°²ą±:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą°øą±ą°·ą°Øą± ą°Øą°æą°°ą±ą°µą°¹ą°£ą°¾ ą°ą°ą±ą°ą°æą°ą°®ą±ą°²ą°Øą± ą°ą±ą°Ŗą±ą°®ą±" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ā_%sā ą°Øą°æ ą°ą±ą°Ŗą±ą°®ą±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°®ą±ą°¦ ą°ą°æ ą°ą°¦ą°²ą°æą°ą°ą± (_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ą°ą°ą°Ŗą°æą°ą°ą±ą°øą±ą°ą±ą°Øą±ą°Øą°¦ą°¾ą°Øą°æą°Øą°æ ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°®ą±ą°¦ ą°ą°æ ą°ą°¦ą°²ą°æą°ą°ą±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°Øą±ą°ą°”ą°æ ą°¤ą±ą°²ą°ą°æą°ą°ą± (_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ą°ą°ą°Ŗą°æą°ą°ą±ą°øą±ą°ą±ą°Øą±ą°Øą°¦ą°¾ą°Øą°æą°Øą°æ ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°Øą±ą°ą°”ą°æ ą°¤ą±ą°²ą°ą°æą°ą°ą±" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°Øą°æ ą°¤ą±ą°²ą°ą°æą°ą°ą± (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ą°ą°ą°ą±ą°ą±ą°Øą±ą°Ø ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ ą°Øą°æ ą°¤ą±ą°øą°æą°µą±ą°Æą± " + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ą°µą±ą°°ą±ą°ą±ą°Æą±ą°Øą°¦ą°æ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5625 +msgid "Best Fit" +msgstr "ą°øą°°ą°æ ą°¤ą°ą°æą°Ø" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą°Ŗą±ą° ą°µą±ą°”ą±ą°²ą°Ŗą± ą°¤ą°ą°æą°Ø" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +#, fuzzy +msgid "800%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +#, fuzzy +msgid "1600%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +#, fuzzy +msgid "3200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +#, fuzzy +msgid "6400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4434 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ą°Ŗą°¤ą±ą°° ą°¦ą°°ą±ą°¶ą°æą°Øą°æ" + +#: ../data/evince.desktop.in.in.h:2 +#, fuzzy +msgid "View multi-page documents" +msgstr "ą° ą°§ą°æą°ą°Ŗą±ą° ą°Ŗą°¤ą±ą°°ą°¾ą°²ą°Øą± ą°¦ą°°ą±ą°¶ą°æą°ą°ą±" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°Øą°æą°ą°ą°¦ą°Øą°²ą°Øą± ą°¤ą°æą°°ą°æą°ą°æą°µą±ą°°ą°¾ą°Æą±ą°®ą±" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ą°Øą°ą°²ą±ą°¤ą±ą°Æą°æ ą°²ą±ą°¦ą°¾ ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą± ą°Øą°æą°ą°ą°¦ą°Øą°µą°ą°ą°æ, ą°Ŗą°¤ą±ą°°ą°®ą± ą°Øą°æą°ą°ą°¦ą°Øą°²ą°Øą± ą°¤ą°æą°°ą°æą°ą°æą°µą±ą°°ą°¾ą°Æą±ą°®ą±" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "ą°¤ą°¾ą°¤ą±ą°ą°¾ą°²ą°æą° ą°¦ą°øą±ą°¤ą±ą°°ą°®ą±ą°Øą± ą°¤ą±ą°²ą°ą°æą°ą°ą±ą°®ą±" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ą° ą°®ą°°ą°æą°ą°² ą°¦ą°øą±ą°¤ą±ą°°ą°®ą±ą°Øą± ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±ą°®ą±" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ą°”ą°¾ą°ą±ą°Æą±ą°®ą±ą°ą°ą± ą°Ŗą±ą°°ą°æą°µą±ą°Æą±ą°Æą°°ą±" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ą°Ŗą°¤ą±ą°° ą°®ą±ą°¦ą±ą°°ą°£ ą°µą°æą°«ą°²ą°®ą±ą°Øą°¦ą°æ" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą°ą°ą°Ŗą°æą°ą°ą°¾ą°¬ą°”ą°æą°Ø ą°®ą±ą°¦ą±ą°°ą°£ą°¾ą°Æą°ą°¤ą±ą°°ą°®ą± '%s' ą°ą°Øą±ą°ą±ą°Øą°¬ą°”ą°²ą±ą° ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5340 +msgid "_Previous Page" +msgstr "ą°Ŗą±ą°°ą±ą°µą°Ŗą± ą°Ŗą±ą° (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5341 +msgid "Go to the previous page" +msgstr "ą°Ŗą±ą°°ą±ą°µą°Ŗą± ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±ą°®ą±" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5343 +msgid "_Next Page" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤ą°æ ą°Ŗą±ą° (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5344 +msgid "Go to the next page" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±ą°®ą±" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5327 +msgid "Enlarge the document" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°Ŗą±ą°ą°ą±" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5330 +msgid "Shrink the document" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą°ą±ą°ą°æą°ą°ą±" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ą°®ą±ą°¦ą±ą°°ą°£" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5296 +msgid "Print this document" +msgstr "ą° ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5442 +msgid "_Best Fit" +msgstr "ą°øą°°ą°æ ą°¤ą°ą°æą°Ø (_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5443 +msgid "Make the current document fill the window" +msgstr " ą°Ŗą±ą°°ą°øą±ą°„ą±ą°¤ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°ą°µą°¾ą°ą±ą°·ą°ą± ą°øą°°ą°æą°Ŗą°”ą± ą°µą°æą°§ą°ą°ą°¾ ą°¤ą°Æą°¾ą°°ą±ą°ą±ą°Æą±" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5445 +msgid "Fit Page _Width" +msgstr "ą°Ŗą±ą°ą°µą±ą°”ą°²ą±ą°Ŗą±ą°ą± ą°¤ą°ą°æą°Ø (_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5446 +msgid "Make the current document fill the window width" +msgstr "ą°ą°µą°¾ą°ą±ą°· ą°µą±ą°”ą°²ą±ą°Ŗą±ą°ą± ą°øą°°ą°æą°Ŗą°” ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą°Æą°¾ą°°ą±ą°ą±ą°Æą±" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5547 +msgid "Page" +msgstr "ą°Ŗą±ą°" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5548 +msgid "Select Page" +msgstr "ą°Ŗą±ą°ą°Øą± ą°ą°ą°ą±ą°ą±ą°Øą±ą°®ą±" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ą°¶ą±ą°°ą±ą°·ą°æą°:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ą°øą±ą°„ą°¾ą°Øą°®ą±:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ą°øą°ą°ą°¤ą°æ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ą°®ą±ą°²ą°ą°°ą±ą°¤:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "Keywords:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ą°ą°¤ą±ą°Ŗą°¾ą°¦ą°ą±ą°”ą±:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ą°øą±ą°·ą±ą°ą°æą°ą°°ą±ą°¤:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ą°Øą°æą°°ą±ą°®ą°æą°ą°ą°¬ą°”ą°æą°Øą°¦ą°æ:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ą°®ą°¾ą°°ą±ą°ą°¬ą°”ą°æą°Øą°¦ą°æ:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ą°Ŗą±ą°ą°² ą°øą°ą°ą±ą°Æ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ą°ą°Ŗą±ą°ą°æą°®ą±ą°ą±ą°”ą±:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ą°°ą±ą°Ŗą°²ą°¾ą°µą°£ą±ą°Æą°:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ą°°ą°ą±ą°·ą°£:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ą°ą°¾ą°ą°æą°¤ ą°Ŗą°°ą°æą°®ą°¾ą°£ą°®ą±:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "Eą°¦ą°æą°ą°¾ą°¦ą±" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "ą° ą°Ŗą±ą°°ą°®ą±ą°Æą°:mm" + +#: ../properties/ev-properties-view.c:261 +#, fuzzy, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:265 +#, fuzzy, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą°ą°æą°¤ą±ą°°ą°Ŗą°ą°(%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą°Ŗą±ą°°ą°ą±ą°¤ą°æ ą°¦ą±ą°¶ą±ą°Æą° (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ą°Æą±ą°ą±ą° %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "%d ą°Æą±ą°ą±ą°" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +#, fuzzy +msgid "Loadingā¦" +msgstr "ą°²ą±ą°”ą°µą±ą°¤ą±ą°Øą±ą°Øą°¦ą°æ..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +#, fuzzy +msgid "Preparing to printā¦" +msgstr "ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±ą°ą°ą± ą°øą°æą°¦ą±ą°¦ą°®ą±ą°¤ą±ą°ą°¦ą°æ ..." + +#: ../libview/ev-print-operation.c:336 +#, fuzzy +msgid "Finishingā¦" +msgstr "ą°®ą±ą°ą°æą°ą°ą±ą°¤ą±ą°ą°¦ą°æ..." + +#: ../libview/ev-print-operation.c:338 +#, fuzzy, c-format +msgid "Printing page %d of %dā¦" +msgstr "%2$d ą°²ą± %1$d ą°Ŗą±ą° ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±ą°ą±ą°Øą±ą°Øą°¦ą°æ..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą° ą°®ą±ą°¦ą±ą°°ą°£ą°¾ ą°Æą°ą°¤ą±ą°°ą°¾ą°Øą°æą°ą°æ ą°®ą±ą°¦ą±ą°°ą°£ ą°øą°¹ą°ą°¾ą°°ą°ą°²ą±ą°¦ą±" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ą°ą±ą°²ą±ą°²ą°Øą°æ ą°Ŗą±ą°ą± ą°Æą±ą°ą°Ŗą°æą°" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ą°¹ą±ą°ą±ą°ą°°ą°æą°ą°ą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../libview/ev-print-operation.c:1229 +#, fuzzy +msgid "Your print range selection does not include any pages" +msgstr "ą°®ą± ą°®ą±ą°¦ą±ą°°ą°£ ą°µą°æą°øą±ą°¤ą±ą°¤ą°æ ą°Æą±ą°ą°Ŗą°æą° ą° ą°Ŗą±ą°ą±ą°Øą± ą°ą±ą°°ą±ą°ą°²ą±ą°¦ą±" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ą°Ŗą±ą°ą± ą°øą±ą°ą±ą°²ą°æą°ą°ą±:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°¦ą°ą± ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą°ą±ą°ą°æą°ą°Ŗą±ą°®ą±" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą° ą°®ą°°ą±ą°ą±ą°®ą±" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ą°ą°ą°Ŗą°æą°ą°ą±ą°øą°æą°Ø ą°®ą±ą°¦ą±ą°°ą°£ ą°Ŗą±ą°ą±ą°Øą°ą± ą° ą°®ą°°ą±ą°Øą°ą±ą°²ą± ą°Ŗą°¤ą±ą°°ą°®ą± ą°Ŗą±ą°ą±ą°²ą°Øą± ą°øą°°ą°æą°¦ą°æą°¦ą±ą°¦ą±ą°®ą±. ą°ą°æą°ą°¦ą°æ ą°µą°¾ą°ą°æą°²ą± " +"ą°µą±ą°ą°¦ą°¾ą°Øą°æą°Øą±ą°ą°”ą°æą°Æą±ą°ą°Ŗą°æą°ą°ą±ą°Æą±ą°®ą±:\n" +"\n" +"ā¢ \"ą°ą°¦ą±ą°ą°¾ą°¦ą±\": ą°ą°ą±ą°µą°ą°ą°æ ą°Ŗą±ą°ą± ą°øą±ą°ą±ą°²ą°æą°ą°ą± ą°ą°°ą±ą°Ŗą°¬ą°”ą°¦ą±.\n" +"\n" +"ā¢ \"ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą°ą±ą°ą°æą°ą°Ŗą±ą°®ą±\": ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°¤ą°®ą±ą°Øą°ą°Øą±ą°Øą°¾ ą°Ŗą±ą°¦ą±ą°¦ą°µą±ą°Ø ą°Ŗą°¤ą±ą°°ą°®ą± ą°Ŗą±ą°ą±ą°²ą± ą°®ą±ą°¦ą±ą°°ą°£ " +"ą°Ŗą±ą°ą± ą°Æą±ą°ą±ą° ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą° ą°®ą°°ą±ą°Øą°ą±ą°²ą± ą°¤ą°ą±ą°ą°æą°ą°ą°¬ą°”ą±ą°Øą±.\n" +"\n" +"ā¢ \"ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą° ą°®ą°°ą±ą°ą±ą°®ą±\": ą°®ą±ą°¦ą±ą°°ą°£ ą°Ŗą±ą°ą± ą°Æą±ą°ą±ą° ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°ą°² ą°Ŗą±ą°°ą°¾ą°ą°¤ą°®ą±ą°Øą°ą± ą° ą°®ą°°ą±ą°Øą°ą±ą°²ą± " +"ą°Ŗą°¤ą±ą°°ą°®ą± ą°Ŗą±ą°ą±ą°²ą± ą°Ŗą±ą°¦ą±ą°¦ą°µą°æą°ą±ą°Æą°¬ą°”ą±ą°Øą± ą°²ą±ą°¦ą°¾ ą°¤ą°ą±ą°ą°æą°ą°ą°¬ą°”ą±ą°Øą±.\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ą°øą±ą°µą°Æą°ą°ą°¾ą°²ą°Øą°ą°ą°¾ ą°¤ą°æą°Ŗą±ą°Ŗą±ą°®ą± ą°®ą°°ą°æą°Æą± ą°®ą°§ą±ą°Æą°Øą°µą±ą°ą°ą±ą°®ą±" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ą°Ŗą°¤ą±ą°°ą°®ą± ą°Æą±ą°ą±ą° ą°Ŗą±ą°°ą°¤ą°æ ą°Ŗą±ą°ą±ą°¤ą± ą°øą°°ą°æą°Ŗą±ą°²ą±ą°Øą°ą±ą°²ą± ą°Ŗą±ą°°ą°¤ą°æ ą°®ą±ą°¦ą±ą°°ą°£ ą°Ŗą±ą°ą± ą°Æą±ą°ą±ą° ą°øą°°ą±ą°¦ą±ą°¬ą°¾ą°ą±ą°Øą± ą°¤ą°æą°Ŗą±ą°Ŗą±ą°®ą±. ą°Ŗą°¤ą±ą°°ą°®ą± ą°Ŗą±ą°ą±ą°²ą± " +"ą°®ą±ą°¦ą±ą°°ą°£ ą°Ŗą±ą°ą± ą°²ą±ą°Ŗą°² ą°®ą°§ą±ą°Æą°Ø ą°µą±ą°ą°ą°¬ą°”ą±ą°¤ą°¾ą°Æą°æ." + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ą°Ŗą±ą°ą± ą°øą°ą°ą°¾ą°²ą°Ø" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą°Ŗą±ą°ą± %d ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ: %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "ą°Ŗą±ą°ą°æ ą°ą°°ą±ą°Ŗą±" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "ą°ą°æą°ą°¦ą°ą°æ ą°ą°°ą±ą°Ŗą±" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "ą°Ŗą±ą°Ø ą°ą±ą°”ą±ą°ą°ą± ą°ą°°ą±ą°ą±" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "ą°ą°æą°ą°¦ ą°ą±ą°”ą±ą°ą°ą± ą°ą°°ą±ą°ą±" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ą°Ŗą°¤ą±ą°° ą°¦ą°°ą±ą°¶ą°Øą°" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "ą°Ŗą±ą°ą°ą± ą°ą°ą±ą°°ą±ą°®ą±" + +#: ../libview/ev-view-presentation.c:968 +#, fuzzy +msgid "End of presentation. Click to exit." +msgstr "ą°øą°®ą°°ą±ą°Ŗą°£ ą°®ą±ą°ą°æą°øą°æą°Øą°¦ą°æ." + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ą°®ą±ą°¦ą°ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ą°Ŗą±ą°°ą±ą°µą°Ŗą± ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ą°ą°æą°µą°°ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ą°ą°Øą°æą°Ŗą±ą°ą±ą°ą±" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "%s ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "%s ą°¦ą°øą±ą°¤ą±ą°°ą°®ą±ą°Ŗą± %są°ą°æ ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "%s ą°¦ą°øą±ą°¤ą±ą°°ą°®ą±ą°ą°æ ą°µą±ą°³ą±ą°²ą±" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "%s ą°Øą°æ ą°Ŗą±ą°°ą°Æą±ą°ą°æą°ą°ą±" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ą°ą°Øą±ą°ą±ą°Øą±ą°®ą±" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5313 +msgid "Find Pre_vious" +msgstr "ą°Ŗą±ą°°ą±ą°µą°Ŗą±ą°¦ą°¾ą°Øą°æą°Øą°æ ą°ą°Øą±ą°ą±ą°Øą±ą°®ą± (_v)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ą°µą±ą°¤ą±ą°ą±ą°®ą°¾ą° ą°Æą±ą°ą±ą° ą°Ŗą±ą°°ą±ą°µą°øą°ą°ą°µą°¾ą°Øą±ą°Øą°æ ą°ą°Øą±ą°ą±ą°Øą±ą°®ą±" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5311 +msgid "Find Ne_xt" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤ą°¦ą°¾ą°Øą°æą°Øą°æ ą°ą°Øą±ą°ą±ą°Øą±ą°®ą± (_x)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ą°µą±ą°¤ą±ą°ą±ą°®ą°¾ą° ą°Æą±ą°ą±ą° ą°¤ą°¦ą±ą°Ŗą°°ą°æą°øą°ą°ą°µą°¾ą°Øą±ą°Øą°æ ą°ą°Øą±ą°ą±ą°Øą±ą°®ą±" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ą°øą°ą°¦ą°°ą±ą° ą°øą±ą°Ŗą°ą°¦ą°Ø (_a)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ą°øą°ą°¦ą°°ą±ą° ą°øą±ą°Ŗą°ą°¦ą°Øą°Øą± ą°®ą°¾ą°°ą±ą°ą°æ ą°µą±ą°¤ą±ą°ą±" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:104 +#, fuzzy +msgid "Note" +msgstr "Eą°¦ą°æą°ą°¾ą°¦ą±" + +#: ../shell/ev-annotation-properties-dialog.c:105 +#, fuzzy +msgid "Comment" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:107 +#, fuzzy +msgid "Help" +msgstr "ą°øą°¹ą°¾ą°Æą° (_H)" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:113 +#, fuzzy +msgid "Unknown" +msgstr "ą° ą°Ŗą°°ą°æą°ą°æą°¤ ą°¦ą±ą°·ą°" + +#: ../shell/ev-annotation-properties-dialog.c:139 +#, fuzzy +msgid "Annotation Properties" +msgstr "ą°²ą°ą±ą°·ą°£ą°¾ą°²ą±" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:185 +#, fuzzy +msgid "Style:" +msgstr "ą°¶ą±ą°°ą±ą°·ą°æą°:" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "" + +#: ../shell/ev-annotation-properties-dialog.c:226 +#, fuzzy +msgid "Open" +msgstr "ą°¤ą±ą°°ą°ą°æą°Ø... (_O)" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "ą°øą°®ą°°ą±ą°Ŗą°£ ą°øą°ą°µą°æą°§ą°¾ą°Øą°ą°²ą± ą°Øą°”ą±ą°øą±ą°¤ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s ą°Ŗą°¤ą±ą°°ą°®ą±ą°ą± ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą°®ą±" + +#: ../shell/ev-convert-metadata.c:88 +#, fuzzy, c-format +msgid "Converting %s" +msgstr "%s ą°Ŗą±ą°°ą°¾ą°°ą°ą°ą°æą°øą±ą°¤ą±ą°ą°¦ą°æ" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą°ą°ą±ą°µą°² ą°µą±ą°Ŗą°Æą±ą°ą°æą°ą°ą°æą°Ø ą°Ŗą°¤ą±ą°°ą°®ą±ą°Øą± ą°¤ą±ą°°ą±ą°µą±ą°®ą±" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą° ą°Ŗą°¤ą±ą°°ą°®ą± ą°®ą±ą°øą°æą°µą±ą°Øą±ą°Øą°¦ą°æ ą°ą°¾ą°µą±ą°Ø ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą° ą°¦ą±ą°µą°¾ą°°ą°¾ą°Øą± ą°¦ą±ą°Øą±ą°Øą°æ ą°ą°¦ą°µą°ą°²ą°®ą±" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°µą°æą°Ŗą±ą°Ŗą± (_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą°¾ą°Øą±ą°Øą°æ ą°°ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą°®ą± ą° ą°µą°øą°°ą°®ą±ą°Øą°¦ą°æ" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "%s ą°Ŗą°¤ą±ą°°ą°®ą± ą°®ą±ą°øą°æą°µą±ą°Øą±ą°Øą°¦ą°æ ą°ą°¾ą°µą±ą°Ø ą°¤ą±ą°°ą±ą°ą±ą°ą°ą± ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą° ą° ą°µą°øą°°ą°" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą°®ą± (_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ą°øą°ą°ą±ą°¤ą°Ŗą°¦ą°®ą±ą°Øą± ą°¤ą°ą±ą°·ą°£ą°®ą± ą°®ą°°ą±ą°ą°æą°Ŗą± (_i)" + +#: ../shell/ev-password-view.c:380 +#, fuzzy +msgid "Remember password until you _log out" +msgstr "ą°®ą±ą°°ą± ą°²ą°¾ą°ą±ą° ą°µą±ą°ą± ą° ą°Æą±ą°Æą±ą°µą°°ą°ą± ą°øą°ą°ą±ą°¤ą°Ŗą°¦ą°®ą±ą°Øą± ą°ą±ą°°ą±ą°¤ą±ą°ą°ą±ą°ą±ą°Øą±ą°®ą± (_l)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ą°ą°Ŗą±ą°Ŗą°ą°æą°ą°æ ą°ą±ą°°ą±ą°¤ą±ą°ą°ą±ą°ą±ą°Øą±ą°®ą± (_f)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ą°²ą°ą±ą°·ą°£ą°¾ą°²ą±" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ą°øą°°ą±ą°µą°øą°¾ą°®ą°Øą±ą°Æą°®ą±ą°Ø" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą° ą°ą±ą°·ą°°ą°¶ą±ą°²ą°æą°²ą±" + +#: ../shell/ev-properties-dialog.c:118 +#, fuzzy +msgid "Document License" +msgstr "ą°Ŗą°¤ą±ą°° ą°¦ą°°ą±ą°¶ą°æą°Øą°æ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą° ą°ą±ą°·ą°°ą°¶ą±ą°²ą°æ" + +#: ../shell/ev-properties-fonts.c:162 +#, fuzzy, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ą° ą°ą±ą°·ą°°ą°¶ą±ą°²ą°æ ą°Æą±ą°ą±ą° ą°øą°®ą°¾ą°ą°¾ą°°ą° ą°øą±ą°ą°°ą°æą°øą±ą°¤ą±ą°Øą±ą°Øą°¦ą°æ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +#, fuzzy +msgid "Annotations" +msgstr "ą°øą±ą°„ą°¾ą°Øą°®ą±:" + +#: ../shell/ev-sidebar-annotations.c:209 +#, fuzzy +msgid "Text" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "" + +#: ../shell/ev-sidebar-annotations.c:364 +#, fuzzy +msgid "Document contains no annotations" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°Æą±ą°ą±ą°µą°ą°ą°æ ą°Ŗą±ą°ą°²ą°Øą± ą°ą°²ą°æą°ą°æą°²ą±ą°¦ą±" + +#: ../shell/ev-sidebar-annotations.c:396 +#, fuzzy, c-format +msgid "Page %d" +msgstr "%s ą°Ŗą±ą°" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ą°Ŗą±ą°°ą°²ą±" + +#: ../shell/ev-sidebar-links.c:335 +#, fuzzy +msgid "Printā¦" +msgstr "ą°®ą±ą°¦ą±ą°°ą°£" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ą°øą±ą°ą°æ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ą°ą°æą°°ą±ą°ą°æą°¤ą±ą°°ą°¾ą°²ą±" + +#: ../shell/ev-window.c:867 +#, fuzzy, c-format +msgid "Page %s ā %s" +msgstr "%s ą°Ŗą±ą° -%s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "%s ą°Ŗą±ą°" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°Æą±ą°ą±ą°µą°ą°ą°æ ą°Ŗą±ą°ą°²ą°Øą± ą°ą°²ą°æą°ą°æą°²ą±ą°¦ą±" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°ą°¾ą°³ą± ą°Ŗą±ą°ą±ą°²ą°Øą± ą°®ą°¾ą°¤ą±ą°°ą°®ą± ą°ą°²ą°æą°ą°æą°µą±ą°ą°¦ą°æ" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą°µą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±ą°Øą± ā%sā ą°Øą±ą°ą°”ą°æ ą°²ą±ą°”ą±ą°ą±ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± (%d%%) ą°”ą±ą°Øą±ą°²ą±ą°”ą±ą°ą±ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:1939 +#, fuzzy +msgid "Failed to load remote file." +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°¤ą°æą°°ą°æą°ą°æą°²ą±ą°”ą± ą°ą±ą°Æą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ." + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "%są°Øą±ą°ą°”ą°æ ą°Ŗą°¤ą±ą°°ą°®ą±ą°Øą± ą°¤ą°æą°°ą°æą°ą°æą°²ą±ą°”ą±ą°ą±ą°Æą± ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± ą°¤ą°æą°°ą°æą°ą°æą°²ą±ą°”ą± ą°ą±ą°Æą±ą°ą°ą± ą°µą°æą°«ą°²ą°®ą±ą°ą°¦ą°æ." + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą±ą°µą±" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ %są°ą± ą°¦ą°¾ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ą° ą°Øą±ą°ą°ą°¦ą°¾ą°Øą±ą°Øą°æ %są°ą± ą°¦ą°¾ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°¬ą°æą°ą°¬ą°®ą±ą°Øą± %są°ą± ą°¦ą°¾ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą° ą°¦ą°øą±ą°¤ą±ą°°ą° ā%sā ą°ą°¾ ą°¦ą°¾ą°ą±ą° ą°øą°¾ą°§ą±ą°Æą°®ą±ą°ą°¾ą°¦ą±" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą± (%d%%)ą°Øą± ą° ą°Ŗą±āą°²ą±ą°”ą± ą°ą±ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ą° ą°Øą±ą°ą°ą°¦ą°®ą± (%d%%) ą° ą°Ŗą±āą°²ą±ą°”ą± ą°ą±ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°¬ą°æą°ą°¬ą°®ą± (%d%%) ą° ą°Ŗą±āą°²ą±ą°”ą± ą°ą±ą°Æą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "ą°ą° ą°Øą°ą°²ą±ą°Øą± ą°¦ą°¾ą°Æą±" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ą°ą±ą°Æą±ą°²ą± %d ą°µą°¾ą°Æą°æą°¦ą°¾ ą°µą±ą°¦ą±ą°Æą±ą°ą°ą°µą±ą°ą°¦ą°æ" +msgstr[1] "ą°ą±ą°Æą±ą°²ą± %d ą°µą°¾ą°Æą°æą°¦ą°¾ ą°µą±ą°¦ą±ą°Æą±ą°ą°®ą±ą°²ą± ą°µą±ą°Øą±ą°Øą°µą°æ" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ą°ą°¾ą°¬ą± ā%sā ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą±ą°ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:3438 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ą°®ą±ą°Æą±ą°ą°ą± ą°®ą±ą°ą°¦ą±ą°ą°¾ ą°®ą±ą°¦ą±ą°°ą°£ ą°ą°¾ą°¬ą± ā%sā ą°®ą±ą°ą°æą°Æą±ą°Øą°ą°¤ ą°µą°°ą°ą± ą°µą±ą°ą°æą°µą±ą°ą°”ą°¾ą°²ą°¾?" + +#: ../shell/ev-window.c:3441 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"ą° ą°ą±ą°ą°” %d ą°®ą±ą°¦ą±ą°°ą°£ ą°ą°¾ą°¬ą±ą°øą± ą°ą±ą°°ą°æą°Æą°¾ą°¶ą±ą°²ą°®ą±ą°ą°¾ ą°µą±ą°Øą±ą°Øą°¾ą°Æą°æ. ą°®ą±ą°Æą±ą°ą°ą± ą°®ą±ą°ą°¦ą±ą°ą°¾ ą°®ą±ą°¦ą±ą°°ą°£ ą°Ŗą±ą°°ą±ą°¤ą°ą±ą°Øą°ą°¤ ą°µą°°ą°ą± " +"ą°µą±ą°ą°æą°µą±ą°ą°”ą°¾ą°²ą°¾?" + +#: ../shell/ev-window.c:3453 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ą°®ą±ą°°ą± ą°µą°æą°ą°”ą± ą°®ą±ą°øą°æą°µą±ą°øą°æą°Øą°ą±ą°²ą±ą°¤ą±, ą°µą°¾ą°Æą°æą°¦ą°¾ą°²ą± ą°µą±ą°Øą±ą°Ø ą°®ą±ą°¦ą±ą°°ą°£ ą°ą°¾ą°¬ą±ą°øą± ą°®ą±ą°¦ą±ą°°ą°æą°ą°ą°¬ą°”ą°µą±." + +#: ../shell/ev-window.c:3457 +msgid "Cancel _print and Close" +msgstr "ą°®ą±ą°¦ą±ą°°ą°£ą°Øą± ą°°ą°¦ą±ą°¦ą±ą°ą±ą°Æą°æ ą°®ą°°ą°æą°Æą± ą°®ą±ą°øą°æą°µą±ą°Æą°æ (_p)" + +#: ../shell/ev-window.c:3461 +msgid "Close _after Printing" +msgstr "ą°®ą±ą°¦ą±ą°°ą°£ ą°¤ą°°ą±ą°µą°¾ą°¤ ą°®ą±ą°øą°æą°µą±ą°Æą°æ (_a)" + +#: ../shell/ev-window.c:4051 +msgid "Toolbar Editor" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°²ą°Ŗą°ą±ą°ą°¾ ą°øą°ą°Ŗą°¾ą°¦ą°ą±ą°”ą±" + +#: ../shell/ev-window.c:4218 +msgid "There was an error displaying help" +msgstr "ą° ą°ą±ą°ą°” ą°µą±ą° ą°¦ą±ą°·ą°®ą± ą°øą°¹ą°¾ą°Æą°®ą±ą°Øą± ą°Ŗą±ą°°ą°¦ą°°ą±ą°¶ą°æą°ą°ą±ą°¤ą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:4430 +#, fuzzy, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą°Ŗą°¤ą±ą°°ą°®ą± ą°¦ą°°ą±ą°¶ą°æą°Øą°æ.\n" +"poppler %s (%s) ą°µą±ą°Ŗą°Æą±ą°ą°æą°øą±ą°¤ą±ą°ą°¦ą°æ" + +#: ../shell/ev-window.c:4461 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ą°øą±ą°µą°¤ą°ą°¤ą±ą°° ą°øą°¾ą°«ą±ą°ą±ą°µą±ą°°ą±; ą°Øą±ą°µą± ą°¦ą°¾ą°Øą°æą°Øą°æ ą°®ą°°ą°²ą°Ŗą°ą°ą°µą°ą±ą°ą± ą°øą±ą°µą°¤ą°ą°¤ą±ą°° ą°øą°¾ą°«ą±ą°ą±ą°µą±ą°°ą± ą°øą°ą°øą±ą°„ ą°µą±ą°²ą±ą°µą°°ą°æą°ą°æą°Ø GNU " +"ą°øą°°ą±ą°µą°øą°¾ą°®ą°Øą±ą°Æą°®ą±ą°Ø ą°Ŗą±ą°°ą°ą°¾ ą°²ą±ą°øą±ą°Øą±ą°øą± ą°µą°æą°µą°°ą°£ą° 2 ą°²ą±ą°øą±ą°Øą±ą°øą± ą°²ą±ą°¦ą°¾ ą°µą±ą°°ą± (ą°®ą± ą°ą°ą±ą°ą°æą°ą° ą°µą°¦ą±ą°¦) ą°µą°æą°µą°°ą°£ą°² ą°Ŗą±ą°°ą°ą°¾ą°°ą° ą°®ą°¾ą°°ą±ą°ą°µą°ą±ą°ą±.\n" + +#: ../shell/ev-window.c:4465 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ą°ą°Ŗą°Æą±ą°ą°Ŗą°”ą±ą°¤ą±ą°ą°¦ą°Øą± ą°Øą°®ą±ą°®ą°ą°ą°¤ą± ą°Ŗą°ą°Ŗą°æą°£ą±ą°ą±ą°Æą°¬ą°”ą±ą°¤ą±ą°ą°¦ą°æ, ą° ą°Æą°æą°¤ą± ą° ą°¹ą°¾ą°®ą± ą°²ą±ą°ą±ą°ą°”ą°¾; ą°µą±ą°Æą°¾ą°Ŗą°¾ą°°ą°øą°ą°¬ą°ą°¦ą°ą°ą°¾ ą°ą°¾ą°Øą°æ ą°²ą±ą°¦ą°¾ " +"ą°ą° ą°Øą°æą°°ą±ą°¦ą°æą°·ą±ą° ą° ą°µą°øą°°ą°¾ą°Øą°æą°ą°æą°ą±ą°ą°¦ą°æą°Øą°¦ą°Øą°æ ą°ą°¾ą°Øą°æ ą°¹ą°¾ą°®ą± ą°²ą±ą°¦ą±. ą°ą°ą±ą°ą±ą°µ ą°øą°®ą°¾ą°ą°¾ą°°ą° ą°ą±ą°°ą°ą± GNU ą°ą°Øą°°ą°²ą± ą°Ŗą°¬ą±ą°²ą°æą°ą± ą°²ą±ą°øą±ą°Øą±ą°øą± ą°Øą± " +"ą°ą±ą°”ą°ą°”ą°æ. ą°®ą±ą°°ą± ą° ą°Ŗą±ą°°ą±ą°ą±ą°°ą°¾ą°®ą± ą°Øą°ą°²ą± ą°¤ą±ą°ą°æ ą°ą° GNU ą°ą°Øą°°ą°²ą± ą°Ŗą°¬ą±ą°²ą°æą°ą± ą°²ą±ą°øą±ą°Øą±ą°øą± ą°Øą°ą°²ą±ą°ą±ą°”ą°¾ ą°Ŗą±ą°ą°¦ą°æą°ą°ą°ą°¾ą°°ą±; ą°Ŗą±ą°ą°¦ą° ą°Ŗą±ą°¤ą±, " +"Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA " +"02110-1301, USAą°ą± ą°µą±ą°°ą°¾ą°Æą°ą°”ą°æ.\n" + +#: ../shell/ev-window.c:4469 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ą°®ą±ą°°ą± Evince ą°Øą°ą°²ą± ą°¤ą±ą°ą°æ ą°ą° GNU ą°ą°Øą°°ą°²ą± ą°Ŗą°¬ą±ą°²ą°æą°ą± ą°²ą±ą°øą±ą°Øą±ą°øą± ą°Øą°ą°²ą±ą°ą±ą°”ą°¾ ą°Ŗą±ą°ą°¦ą°æą°ą°ą°ą°¾ą°°ą±; ą°Ŗą±ą°ą°¦ą° ą°Ŗą±ą°¤ą±, Free " +"Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-" +"1307 USAą°ą± ą°µą±ą°°ą°¾ą°Æą°ą°”ą°æ.\n" + +#: ../shell/ev-window.c:4494 +msgid "Evince" +msgstr "ą°ą°µą°æą°Øą±ą°øą±" + +#: ../shell/ev-window.c:4497 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince ą°®ą±ą°²ą°ą°°ą±ą°¤ą°²ą±" + +#: ../shell/ev-window.c:4503 +msgid "translator-credits" +msgstr "Bharat Kumar <jonnalagaddabharat@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4766 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ą° ą°Ŗą±ą°ą°²ą± %d ą°ą°Øą±ą°ą±ą°Øą°¬ą°”ą°æą°Øą°¦ą°æ" +msgstr[1] "ą° ą°Ŗą±ą°ą°²ą± %d ą°ą°Øą±ą°ą±ą°Øą°¬ą°”ą°æą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:4774 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ą°µą±ą°¤ą±ą°ą±ą°ą°ą± %3d%% ą°®ą°æą°ą°æą°²ą°æą°µą±ą°Øą±ą°Øą°¦ą°æ" + +#: ../shell/ev-window.c:5279 +msgid "_File" +msgstr "ą°¦ą°øą±ą°¤ą±ą°°ą°®ą± (_F)" + +#: ../shell/ev-window.c:5280 +msgid "_Edit" +msgstr "ą°øą°°ą°æą°ą±ą°Æą± (_E)" + +#: ../shell/ev-window.c:5281 +msgid "_View" +msgstr "ą°¦ą°°ą±ą°¶ą°Øą° (_V)" + +#: ../shell/ev-window.c:5282 +msgid "_Go" +msgstr "ą°µą±ą°³ą±ą°²ą± (_G)" + +#: ../shell/ev-window.c:5283 +msgid "_Help" +msgstr "ą°øą°¹ą°¾ą°Æą° (_H)" + +#. File menu +#: ../shell/ev-window.c:5286 ../shell/ev-window.c:5587 +#, fuzzy +msgid "_Openā¦" +msgstr "ą°¤ą±ą°°ą°ą°æą°Ø... (_O)" + +#: ../shell/ev-window.c:5287 ../shell/ev-window.c:5588 +msgid "Open an existing document" +msgstr "ą°ą°Øą±ą°Ø ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą±ą°µą±ą°®ą±" + +#: ../shell/ev-window.c:5289 +msgid "Op_en a Copy" +msgstr "ą°ą° ą°Øą°ą°²ą±ą°Øą± ą°¤ą±ą°°ą±ą°µą±ą°®ą± (_e)" + +#: ../shell/ev-window.c:5290 +msgid "Open a copy of the current document in a new window" +msgstr "ą°Ŗą±ą°°ą°øą±ą°„ą±ą°¤ ą°Ŗą°¤ą±ą°°ą°®ą± ą°Æą±ą°ą±ą° ą°Øą°ą°²ą±ą°Øą± ą°ą±ą°¤ą±ą°¤ ą°ą°µą°¾ą°ą±ą°·ą°®ą±ą°²ą± ą°¤ą±ą°°ą±ą°µą±ą°®ą±" + +#: ../shell/ev-window.c:5292 +#, fuzzy +msgid "_Save a Copyā¦" +msgstr "ą°ą° ą°Øą°ą°²ą±ą°Øą± ą°¦ą°¾ą°Æą±" + +#: ../shell/ev-window.c:5293 +msgid "Save a copy of the current document" +msgstr "ą°Ŗą±ą°°ą°øą±ą°„ą±ą°¤ ą°Ŗą°¤ą±ą°°ą°®ą± ą°Æą±ą°ą±ą° ą°Øą°ą°²ą±ą°Øą± ą°¦ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-window.c:5295 +#, fuzzy +msgid "_Printā¦" +msgstr "ą°®ą±ą°¦ą±ą°°ą°£" + +#: ../shell/ev-window.c:5298 +msgid "P_roperties" +msgstr "ą°²ą°ą±ą°·ą°£ą°¾ą°²ą± (_r)" + +#: ../shell/ev-window.c:5306 +msgid "Select _All" +msgstr "ą° ą°Øą±ą°Øą°æą°ą°ą°æą°Øą°æ ą°ą°ą°Ŗą°æą°ą°ą±ą°Æą± (_A)" + +#: ../shell/ev-window.c:5308 +#, fuzzy +msgid "_Findā¦" +msgstr "ą°ą°Øą°æą°Ŗą±ą°ą±ą°ą±" + +#: ../shell/ev-window.c:5309 +msgid "Find a word or phrase in the document" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±ą°²ą± ą°Ŗą°¦ą°¾ą°Øą±ą°Øą°æ ą°ą°Øą±ą°ą±ą°Øą±ą°®ą±" + +#: ../shell/ev-window.c:5315 +msgid "T_oolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ (_o)" + +#: ../shell/ev-window.c:5317 +msgid "Rotate _Left" +msgstr "ą°ą°”ą°®ą°µą±ą°Ŗą± ą°¤ą°æą°Ŗą±ą°Ŗą± (_L)" + +#: ../shell/ev-window.c:5319 +msgid "Rotate _Right" +msgstr "ą°ą±ą°”ą°æą°µą±ą°Ŗą± ą°¤ą°æą°Ŗą±ą°Ŗą± (_R)" + +#: ../shell/ev-window.c:5321 +msgid "Save Current Settings as _Default" +msgstr "" + +#: ../shell/ev-window.c:5332 +msgid "_Reload" +msgstr "ą°¤ą°æą°°ą°æą°ą°æą°²ą±ą°”ą±ą°ą±ą°Æą°æ (_R)" + +#: ../shell/ev-window.c:5333 +msgid "Reload the document" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±ą°Øą± ą°¤ą°æą°°ą°æą°ą°æą°²ą±ą°”ą±ą°ą±ą°Æą±ą°®ą±" + +#: ../shell/ev-window.c:5336 +msgid "Auto_scroll" +msgstr "ą°øą±ą°µą°Æą°ą°ą°¾ą°²ą° ą°øą±ą°ą±ą°°ą°¾ą°²ą± (_s)" + +#: ../shell/ev-window.c:5346 +msgid "_First Page" +msgstr "ą°®ą±ą°¦ą°ą°æ ą°Ŗą±ą° (_F)" + +#: ../shell/ev-window.c:5347 +msgid "Go to the first page" +msgstr "ą°®ą±ą°¦ą°ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±ą°®ą±" + +#: ../shell/ev-window.c:5349 +msgid "_Last Page" +msgstr "ą°ą°æą°µą°°ą°æ ą°Ŗą±ą° (_L)" + +#: ../shell/ev-window.c:5350 +msgid "Go to the last page" +msgstr "ą°ą°æą°µą°°ą°æ ą°Ŗą±ą°ą°ą± ą°µą±ą°³ą±ą°²ą±ą°®ą±" + +#. Help menu +#: ../shell/ev-window.c:5354 +msgid "_Contents" +msgstr "ą°øą°¾ą°°ą°¾ą°ą°¶ą°®ą±ą°²ą± (_C)" + +#: ../shell/ev-window.c:5357 +msgid "_About" +msgstr "ą°ą±ą°°ą°æą°ą°ą°æ (_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5361 +msgid "Leave Fullscreen" +msgstr "ą°Øą°æą°ą°”ą±ą°¤ą±ą°°ą°Øą± ą°µą°æą°”ą°æą°ą°æą°Ŗą±ą°ą±ą°ą±" + +#: ../shell/ev-window.c:5362 +msgid "Leave fullscreen mode" +msgstr "ą°Øą°æą°ą°”ą±ą°¤ą±ą°° ą°øą°ą°µą°æą°§ą°¾ą°Øą°®ą± ą°µą°æą°”ą°æą°ą°æą°Ŗą±ą°ą±ą°ą±" + +#: ../shell/ev-window.c:5364 +msgid "Start Presentation" +msgstr "ą°øą°®ą°°ą±ą°Ŗą°£ą°®ą±ą°Øą± ą°®ą±ą°¦ą°²ą±ą°Ŗą±ą°ą±ą°ą±" + +#: ../shell/ev-window.c:5365 +msgid "Start a presentation" +msgstr "ą°ą° ą°øą°®ą°°ą±ą°Ŗą°£ą°®ą±ą°Øą± ą°®ą±ą°¦ą°²ą±ą°Ŗą±ą°ą±ą°ą±" + +#. View Menu +#: ../shell/ev-window.c:5424 +msgid "_Toolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ (_T)" + +#: ../shell/ev-window.c:5425 +msgid "Show or hide the toolbar" +msgstr "ą°Ŗą°Øą°æą°®ą±ą°ą±ą°² ą°Ŗą°ą±ą°ą°¾ą°Øą± ą°ą±ą°Ŗą±ą°®ą± ą°²ą±ą°¦ą°¾ ą°¦ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-window.c:5427 +msgid "Side _Pane" +msgstr "ą°Ŗą°ą±ą°ą°Ø ą°Ŗą°²ą° (_P)" + +#: ../shell/ev-window.c:5428 +msgid "Show or hide the side pane" +msgstr "ą°Ŗą±ą°°ą°ą±ą° ą°Ŗą°²ą°ą°Øą± ą°ą±ą°Ŗą±ą°®ą± ą°²ą±ą°¦ą°¾ ą°®ą°°ą±ą°ą±ą°Øą°µą±ą°ą°ą±ą°®ą±" + +#: ../shell/ev-window.c:5430 +msgid "_Continuous" +msgstr "ą°ą°”ą°¤ą±ą°ą°Øą°æ (_C)" + +#: ../shell/ev-window.c:5431 +msgid "Show the entire document" +msgstr "ą°Ŗą±ą°°ą±ą°¤ą°æ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°ą±ą°Ŗą±ą°®ą±" + +#: ../shell/ev-window.c:5433 +msgid "_Dual" +msgstr "ą°¦ą±ą°µą°Æą°®ą± (_D)" + +#: ../shell/ev-window.c:5434 +msgid "Show two pages at once" +msgstr "ą°°ą±ą°ą°”ą± ą°Ŗą±ą°ą°²ą°Øą± ą°ą°ą±ą°øą°¾ą°°ą°æ ą°ą±ą°Ŗą±ą°®ą±" + +#: ../shell/ev-window.c:5436 +msgid "_Fullscreen" +msgstr "ą°Øą°æą°ą°”ą±ą°¤ą±ą°° (_F)" + +#: ../shell/ev-window.c:5437 +msgid "Expand the window to fill the screen" +msgstr "ą°ą°µą°¾ą°ą±ą°·ą°¾ą°Øą±ą°Øą°æ ą°Øą°æą°ą°”ą±ą°¤ą±ą°°ą°ą°¾ ą°µą°æą°øą±ą°¤ą°°ą°æą°ą°ą±ą°®ą±" + +#: ../shell/ev-window.c:5439 +msgid "Pre_sentation" +msgstr "ą°øą°®ą°°ą±ą°Ŗą°£ą° (_s)" + +#: ../shell/ev-window.c:5440 +msgid "Run document as a presentation" +msgstr "ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°øą°®ą°°ą±ą°Ŗą°£ą°ą°ą°¾ ą°Øą°”ą±ą°Ŗą±ą°®ą±" + +#: ../shell/ev-window.c:5448 +msgid "_Inverted Colors" +msgstr "" + +#: ../shell/ev-window.c:5449 +msgid "Show page contents with the colors inverted" +msgstr "" + +#. Links +#: ../shell/ev-window.c:5457 +msgid "_Open Link" +msgstr "ą°ą±ą°”ą°æą°ą°Øą± ą°¤ą±ą°°ą±ą°µą±ą°®ą± (_O)" + +#: ../shell/ev-window.c:5459 +msgid "_Go To" +msgstr "ą°ą°ą°ą°ą± ą°µą±ą°³ą±ą°³ą± (_G)" + +#: ../shell/ev-window.c:5461 +msgid "Open in New _Window" +msgstr "ą°ą±ą°¤ą±ą°¤ ą°ą°µą°¾ą°ą±ą°·ą°ą°²ą± ą°¤ą±ą°°ą±ą°µą±ą°®ą± (_W)" + +#: ../shell/ev-window.c:5463 +msgid "_Copy Link Address" +msgstr "ą°ą±ą°”ą°æą° ą°ą°æą°°ą±ą°Øą°¾ą°®ą° ą°Æą±ą°ą±ą° ą°Øą°ą°²ą± (_C)" + +#: ../shell/ev-window.c:5465 +#, fuzzy +msgid "_Save Image Asā¦" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°°ą±ą°Ŗą°¾ą°Øą±ą°Øą°æ ą°ą°²ą°¾ ą°¦ą°¾ą°Æą±ą°®ą± (_S)" + +#: ../shell/ev-window.c:5467 +msgid "Copy _Image" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°°ą±ą°Ŗą° ą°Æą±ą°ą±ą° ą°Øą°ą°²ą± (_I)" + +#: ../shell/ev-window.c:5469 +msgid "Annotation Propertiesā¦" +msgstr "" + +#: ../shell/ev-window.c:5474 +#, fuzzy +msgid "_Open Attachment" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¦ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-window.c:5476 +#, fuzzy +msgid "_Save Attachment Asā¦" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¦ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-window.c:5561 +msgid "Zoom" +msgstr "ą°ą±ą°®ą±" + +#: ../shell/ev-window.c:5563 +msgid "Adjust the zoom level" +msgstr "ą°ą±ą°®ą± ą°øą±ą°„ą°¾ą°Æą°æą°Øą°æ ą°øą°°ą°æą°ą±ą°Æą±" + +#: ../shell/ev-window.c:5573 +msgid "Navigation" +msgstr "ą°µą°æą°¹ą°°ą°æą°ą°ą±ą°" + +#: ../shell/ev-window.c:5575 +msgid "Back" +msgstr "ą°µą±ą°Øą±ą°ą°ą°æ" + +#. translators: this is the history action +#: ../shell/ev-window.c:5578 +msgid "Move across visited pages" +msgstr "ą°øą°ą°¦ą°°ą±ą°¶ą°æą°ą°ą°æą°Ø ą°Ŗą±ą°ą°²ą°µą±ą°Ŗą± ą°ą°¦ą±ą°²ą±" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5608 +msgid "Previous" +msgstr "ą°Ŗą±ą°°ą±ą°µą°Ŗą±" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5613 +msgid "Next" +msgstr "ą°¤ą°°ą±ą°µą°¾ą°¤" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5617 +msgid "Zoom In" +msgstr "ą°ą±ą°®ą± ą°²ą±ą°Ŗą°²ą°æą°ą°æ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5621 +msgid "Zoom Out" +msgstr "ą°ą±ą°®ą± ą°µą±ą°²ą±ą°Ŗą°²ą°ą°æ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5629 +msgid "Fit Width" +msgstr "ą°¤ą°ą°æą°Ø ą°µą±ą°”ą±ą°²ą±ą°Ŗą±" + +#: ../shell/ev-window.c:5774 ../shell/ev-window.c:5791 +msgid "Unable to launch external application." +msgstr "ą°¬ą°¹ą°æą°°ą±ą°ą°¤ ą° ą°Øą±ą°µą°°ą±ą°¤ą°Øą°®ą±ą°Øą± ą°ą°°ą°ą°ą°æą°ą°ą°²ą±ą° ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:5848 +msgid "Unable to open external link" +msgstr "ą°¬ą°¾ą°¹ą±ą°Æą°ą±ą°”ą°æą° ą°¤ą±ą°°ą±ą°µą±ą° ą°µą°æą°«ą°²ą°" + +#: ../shell/ev-window.c:6015 +msgid "Couldn't find appropriate format to save image" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°¬ą°æą°ą°¬ą°®ą±ą°Øą± ą°¦ą°¾ą°Æą±ą°ą°ą± ą°øą°°ą°æą°Ŗą±ą°µą± ą°«ą°¾ą°°ą±ą°®ą°¾ą°ą±āą°Øą± ą°ą°Øą±ą°ą±ą°Øą°²ą±ą° ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:6057 +msgid "The image could not be saved." +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°°ą±ą°Ŗą°®ą±ą°Øą± ą°¦ą°¾ą°Æą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:6089 +msgid "Save Image" +msgstr "ą°Ŗą±ą°°ą°¤ą°æą°°ą±ą°Ŗą°®ą±ą°Øą± ą°¦ą°¾ą°Æą±" + +#: ../shell/ev-window.c:6217 +msgid "Unable to open attachment" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¤ą±ą°°ą°µą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:6270 +msgid "The attachment could not be saved." +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¦ą°¾ą°Æą°²ą±ą°ą°Ŗą±ą°Æą°æą°ą°¦ą°æ" + +#: ../shell/ev-window.c:6315 +msgid "Save Attachment" +msgstr "ą° ą°Øą±ą°¬ą°ą°§ ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°¦ą°¾ą°Æą±ą°®ą±" + +#: ../shell/ev-window-title.c:162 +#, fuzzy, c-format +msgid "%s ā Password Required" +msgstr "%s - ą°°ą°¹ą°øą±ą°Æą°Ŗą°¦ą° ą° ą°µą°øą°°ą°" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ą°Ŗą±ą°”ą°æą°ą°æą°ą°Ŗą± ą°¦ą±ą°µą°¾ą°°ą°¾" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "ą°ą±ą°Øą±ą°®ą± ą°Ŗą°¤ą±ą°°ą°¦ą°°ą±ą°¶ą°Øą°æ" + +#: ../shell/main.c:77 +#, fuzzy +msgid "The page label of the document to display." +msgstr "ą°Ŗą°¤ą±ą°°ą° ą°²ą±ą°Øą°æ ą°Ŗą±ą°ą°Øą± ą°Ŗą±ą°°ą°¦ą°°ą±ą°¶ą°æą°ą°ą±" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "ą°Ŗą±ą°" + +#: ../shell/main.c:78 +#, fuzzy +msgid "The page number of the document to display." +msgstr "ą°Ŗą°¤ą±ą°°ą° ą°²ą±ą°Øą°æ ą°Ŗą±ą°ą°Øą± ą°Ŗą±ą°°ą°¦ą°°ą±ą°¶ą°æą°ą°ą±" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ą°Ŗą±ą°°ą±ą°¤ą°æą°¤ą±ą°° ą°øą°ą°µą°æą°§ą°¾ą°Øą°ą°²ą± ą°ą°µą°æą°Øą±ą°øą± ą°Øą± ą°Øą°”ą±ą°Ŗą±ą°®ą±" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ą°øą°®ą°°ą±ą°Ŗą°£ ą°øą°ą°µą°æą°§ą°¾ą°Øą°ą°²ą± ą°ą°µą°æą°Øą±ą°øą± ą°Øą± ą°Øą°”ą±ą°Ŗą±ą°®ą±" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ą°ą°Ŗą°¦ą°°ą±ą°¶ą°Øą°æą°ą°¾ ą°ą°µą°æą°Øą±ą°øą± ą°Øą± ą°Øą°”ą±ą°Ŗą±" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ą°Ŗą°¤ą±ą°°ą°®ą±ą°²ą± ą°ą°Øą±ą°ą±ą°Øą±ą°ą°ą± ą°Ŗą°¦ą°®ą± ą°²ą±ą°¦ą°¾ ą°Ŗą°¦ą°¬ą°ą°¦ą°®ą±" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "ą°Ŗą°¦ą°¬ą°ą°§ą°" + +#: ../shell/main.c:86 +#, fuzzy +msgid "[FILEā¦]" +msgstr "[ą°¦ą°øą±ą°¤ą±ą°°ą°...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +#, fuzzy +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ą°¬ą±ą°²ą°æą°Æą°Øą± ą°ą°ą±ą°ą°æą°ą°¾ą°²ą± ą° ą°ą°¦ą±ą°¬ą°¾ą°ą±ą°²ą± ą°µą±ą°Øą±ą°Øą°Æą°æ, true ą° ą°Øą±ą°Øą°¦ą°æ ą°„ą°ą°¬ą±āą°Øą±ą°Æą°æą°²ą°æą°ą°ą± ą°ą±ą°¤ą°Øą°Ŗą°°ą±ą°øą±ą°¤ą±ą°ą°¦ą°æ ą°®ą°°ą°æą°Æą± false ą°ą±ą°¤ą±ą°¤ " +"ą°„ą°ą°¬ą±āą°Øą±ą°Æą°æą°²ą± ą°øą±ą°·ą±ą°ą±ą°ą°°ą°£ą°æą°Øą°æ ą° ą°ą±ą°¤ą°Øą°®ą± ą°ą±ą°øą±ą°¤ą±ą°ą°¦ą°æ" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF ą°Ŗą°¤ą±ą°°ą°¾ą°²ą°Øą± ą°ą°æą°°ą±ą°ą°æą°¤ą±ą°°ą°¾ą°²ą±ą°ą°¾ ą°ą±ą°°ą°æą°Æą°¾ą°¶ą±ą°²ą±ą°ą°°ą°æą°ą°ą±" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ą°Ŗą°¤ą±ą°°ą°¾ą°²ą°ą± ą°ą°æą°°ą±ą°ą°æą°¤ą±ą°° ą°ą°¦ą±ą°¶ą°" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +#, fuzzy +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ą°Ŗą°¤ą±ą°° ą°ą°æą°°ą±ą°ą°æą°¤ą±ą°°ą°¾ą°Øą°æą°ą°æ ą°µą°°ą±ą°¤ą°æą°ą°ą°¦ą°ą°æą°Ø ą°ą°¦ą±ą°¶ą°¾ą°²ą±. ą°ą°ą±ą°ą±ą°µ ą°øą°®ą°¾ą°ą°¾ą°°ą° ą°ą±ą°øą° ą°Øą°¾ą°ą°æą°²ą°øą± ą°ą°æą°°ą±ą°ą°æą°¤ą±ą°° ą°Ŗą°¤ą±ą°°ą°¾ą°Øą±ą°Øą°æ ą°ą±ą°”ą°ą°”ą°æ" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ą°Ŗą°¤ą±ą°°ą°®ą± ą°øą°°ą°æą°ą°¾ą°Øą°æ ą°°ą±ą°Ŗą°®ą±ą°Øą± ą°ą°²ą°æą°ą°æą°µą±ą°ą°¦ą°æ" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ā%sāą°¦ą°øą±ą°¤ą±ą°°ą°®ą± ą°øą±ą°·ą±ą°ą°æą°ą°ą±ą° ą°µą°æą°«ą°²ą°®ą±ą°Øą°¦ą°æ: %s" + +#~ msgid "Search string" +#~ msgstr "ą°µą±ą°¤ą±ą°ą±ą°®ą°¾ą°" + +#~ msgid "The name of the string to be found" +#~ msgstr "ą°Ŗą°¦ą°¬ą°ą°§ą° ą°Æą±ą°ą±ą° ą°Ŗą±ą°°ą± ą°ą°Øą±ą°ą±ą°Øą°¬ą°”ą°¾ą°²ą°æ" + +#~ msgid "Case sensitive" +#~ msgstr "ą°øą°ą°¦ą°°ą±ą° ą°øą±ą°Ŗą°ą°¦ą°Ø" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą°ą±ą°øą± ą°øą±ą°Øą±ą°Øą°æą°¤ą°¤ą±ą°µ ą°¶ą±ą°§ą°Øą°ą± TRUE" + +#~ msgid "Highlight color" +#~ msgstr "ą°µą°°ą±ą°£ą°®ą±ą°Øą± ą°ą°¦ą±ą°¦ą±ą°Ŗą°æą°ą°ą±" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ą° ą°Øą±ą°Øą°æ ą°Ŗą±ą°²ą°æą°ą°²ą°ą± ą°ą°¦ą±ą°¦ą±ą°Ŗą°Øą° ą°µą°°ą±ą°£ą°®ą±" + +#~ msgid "Current color" +#~ msgstr "ą°Ŗą±ą°°ą°øą±ą°„ą±ą°¤ ą°µą°°ą±ą°£ą°®ą±" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ą°Ŗą±ą°°ą°øą±ą°¤ą±ą°¤ ą°øą°°ą°æą°Ŗą±ą°²ą°æą°ą°ą± ą°ą°¦ą±ą°¦ą±ą°Ŗą°Øą° ą°µą°°ą±ą°£ą°®ą±" + +#~ msgid "Recover previous documents?" +#~ msgstr "ą°®ą±ą°ą°¦ą°°ą°æ ą°Ŗą°¤ą±ą°°ą°®ą±ą°²ą°Øą± ą°¤ą°æą°°ą°æą°ą°æą°Ŗą±ą°ą°¦ą°¾ą°²ą°¾?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "Evince ą°ą°æą°µą°°ą°æą°øą°¾ą°°ą°æ ą° ą°¦ą°æ ą°Øą°”ą±ą°Ŗą°¬ą°”ą°æą°Øą°Ŗą±ą°Ŗą±ą°”ą± ą° ą°Øą±ą°ą±ą°ą±ą°ą°”ą°¾ ą°Øą°æą°·ą±ą°ą±ą°°ą°®ą°æą°ą°ą°æą°Øą°ą±ą°²ą± ą° ą°Øą°æą°Ŗą°æą°øą±ą°¤ą±ą°ą°¦ą°æ. ą°¤ą±ą°°ą°æą°ą°æą°Ø ą°Ŗą°¤ą±ą°°ą°®ą±ą°²ą°Øą± " +#~ "ą°®ą±ą°°ą± ą°¤ą°æą°°ą°æą°ą°æą°Ŗą±ą°ą°¦ą°ą°²ą°°ą±." + +#~ msgid "_Don't Recover" +#~ msgstr "ą°¤ą°æą°°ą°æą°ą°æą°Ŗą±ą°ą°¦ą°µą°¦ą±ą°¦ą± (_D)" + +#~ msgid "_Recover" +#~ msgstr "ą°¤ą°æą°°ą°æą°ą°æą°¤ą±ą°®ą±ą°®ą± (_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ą°ą±ą°°ą°¾ą°·ą± ą°°ą°æą°ą°µą°°ą°æ" + +#~ msgid "Print..." +#~ msgstr "ą°®ą±ą°¦ą±ą°°ą°£..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ą°øą°æą°®ą±āą°²ą°æą°ą°ą± ā%sā ą°Øą± ą°øą±ą°·ą±ą°ą°æą°ą°ą°²ą±ą° ą°Ŗą±ą°Æą°æą°ą°¦ą°æ: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ą°Øą°ą°²ą± ą°¤ą±ą°°ą±ą°ą±ą° ą°øą°¾ą°§ą±ą°Æą°®ą±ą°ą°¾ą°¦ą±" + +#~ msgid "The document doesn't support search" +#~ msgstr "ą°¶ą±ą°§ą°æą°ą°ą±ą°ą°Øą± ą°Æą± ą°Ŗą°¤ą±ą°°ą°®ą± ą°®ą°¦ą±ą°¦ą°¤ą°æą°ą°ą°¦ą±" + +#~ msgid "_Save a Copy..." +#~ msgstr "ą°Øą°ą°²ą±ą°Øą± ą°¦ą°¾ą°Æą±ą°®ą±... (_S)" + +#~ msgid "Page Set_up..." +#~ msgstr "ą°Ŗą±ą°ą± ą° ą°®ą°°ą°æą°... (_u)" + +#~ msgid "Setup the page settings for printing" +#~ msgstr "ą°Ŗą±ą° ą° ą°®ą°°ą°æą°ą°²ą°Øą± ą°®ą±ą°¦ą±ą°°ą°£ą°ą±ą°øą° ą° ą°®ą°°ą±ą°ą°ą°”ą°æ" + +#~ msgid "_Print..." +#~ msgstr "ą°®ą±ą°¦ą±ą°°ą°£... (_P)" + +#~ msgid "_Find..." +#~ msgstr "ą°ą°Øą°æą°Ŗą±ą°ą±ą°ą±... (_F)" diff --git a/po/th.po b/po/th.po new file mode 100644 index 00000000..057cc49c --- /dev/null +++ b/po/th.po @@ -0,0 +1,2196 @@ +# Thai translation for evince +# Copyright (C) 2005-2010 Free Software Foundation, Inc. +# This file is distributed under the same licence as the evince package. +# Isriya Paireepairit <markpeak@gmail.com>, 2005. +# Theppitak Karoonboonyanan <thep@linux.thai.net>, 2005-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-06-02 12:15+0000\n" +"PO-Revision-Date: 2010-06-04 21:27+0700\n" +"Last-Translator: Sira Nokyoongtong <gumaraa@gmail.com>\n" +"Language-Team: Thai <thai-l10n@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ą¹ąø£ąøµąø¢ąøąøąø³ąøŖąø±ą¹ąø ā%sā ą¹ąøąø·ą¹ąøą¹ąøąøąøą¹ąøąø”ąø¹ąø„ąø«ąøąø±ąøąøŖąø·ąøąøąø²ąø£ą¹ąøąø¹ąø: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ąøąø³ąøŖąø±ą¹ąø ā%sā ą¹ąøąøąøą¹ąøąø”ąø¹ąø„ąø«ąøąø±ąøąøŖąø·ąøąøąø²ąø£ą¹ąøąø¹ąøą¹ąø”ą¹ąøŖąø³ą¹ąø£ą¹ąø" + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ąøąø³ąøŖąø±ą¹ąø ā%sā ą¹ąø”ą¹ą¹ąøą¹ąøąøą¹ąøąøąøąøąøąø“" + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "ą¹ąø”ą¹ą¹ąøą¹ąøąøąø“ąø MIME ąøąøąøąø«ąøąø±ąøąøŖąø·ąøąøąø²ąø£ą¹ąøąø¹ąø: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąø«ąø²ąøąø³ąøŖąø±ą¹ąøąøąøµą¹ą¹ąø«ąø”ąø²ąø°ąøŖąø”ąøŖąø³ąø«ąø£ąø±ąøą¹ąøąøąøą¹ąøąø”ąø¹ąø„ąø«ąøąø±ąøąøŖąø·ąøąøąø²ąø£ą¹ąøąø¹ąøąøąøąø“ąøąøąøµą¹" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ąøąøąø“ąø MIME ą¹ąø”ą¹ąø£ąø¹ą¹ąøąø±ąø" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "ą¹ąøą¹ąø”ą¹ąøŖąøµąø¢ąø«ąø²ąø¢" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "ą¹ąø”ą¹ąø”ąøµą¹ąøą¹ąø”ą¹ąøą¹ąøą¹ąø”ąøąø±ąøą¹ąøą¹ąø" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "ą¹ąø”ą¹ąøąøąø£ąø¹ąøąø ąø²ąøą¹ąøą¹ąøą¹ąø”ąøąø±ąøą¹ąøą¹ąø %s" + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ąø„ąø ā%sā" + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ąøąø“ąøąøąø„ąø²ąø: %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ąø«ąøąø±ąøąøŖąø·ąøąøąø²ąø£ą¹ąøąø¹ąø" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ą¹ąøąøąøŖąø²ąø£ DjVu ąø”ąøµąø£ąø¹ąøą¹ąøąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ą¹ąøąøąøŖąø²ąø£ąøąøµą¹ąøąø£ąø°ąøąøąøąøą¹ąø§ąø¢ą¹ąøą¹ąø”ąø«ąø„ąø²ąø¢ą¹ąøą¹ąø” ą¹ąøą¹ąø”ąøµąøąø²ąøą¹ąøą¹ąø”ąøąøµą¹ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøą¹ąø²ą¹ąøą¹ą¹ąøą¹" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ą¹ąøąøąøŖąø²ąø£ DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ą¹ąøąøąøŖąø²ąø£ DVI ąø”ąøµąø£ąø¹ąøą¹ąøąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ą¹ąøąøąøŖąø²ąø£ DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "ąøąø²ąøąøąøµą¹ą¹ąøą¹ąøąøŖąø²ąøąø²ąø£ąøąøŖąø”ąøąø±ąøąø“ (Public Domain)" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "ąø”ąøµ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ą¹ąø”ą¹ąø”ąøµ" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "ą¹ąøąøą¹ 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "ą¹ąøąøą¹ 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "ą¹ąøąøą¹ 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "ąøąø£ąø¹ą¹ąøąøą¹" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "ą¹ąøąøą¹ 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "ą¹ąøąøą¹ 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "ąøąø£ąø¹ą¹ąøąøą¹ (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ą¹ąøąøąøąø±ąøąø©ąø£ą¹ąø”ą¹ąøąø£ąø²ąøąøąøąø“ąø" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ą¹ąø”ą¹ąø”ąøµąøąø·ą¹ąø" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ąøŖą¹ąø§ąøąø¢ą¹ąøąø¢ ąøąø±ąøąøąø±ąø§" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ąøąø±ąøąøąø±ąø§" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ą¹ąø”ą¹ą¹ąøą¹ąøąø±ąøąøąø±ąø§" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ą¹ąøąøąøŖąø²ąø£ PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ą¹ąøąøąøŖąø²ąø£ą¹ąøą¹ąøąø²ąø£ą¹ąø”ą¹ą¹ąøą¹" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "ąøŖą¹ąø„ąøą¹ Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ą¹ąø”ą¹ąø”ąøµąøą¹ąøąøąø“ąøąøąø„ąø²ąø" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ąø«ąøą¹ąø§ąø¢ąøąø§ąø²ąø”ąøąø³ą¹ąø”ą¹ą¹ąøąøµąø¢ąøąøąø" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ąø«ąø²ąø„ąø²ąø¢ą¹ąøą¹ąøąøąøąø ZIP ą¹ąø”ą¹ąøąø" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ą¹ąøą¹ąø” ZIP ą¹ąøą¹ąøąø²ąø£ą¹ąø”ą¹ą¹ąøą¹" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøą¹ąøą¹ąø” ZIP ą¹ąøąøąø«ąø„ąø²ąø¢ą¹ąøą¹ąø”" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø”ą¹ąøą¹" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøąøą¹ąøąø”ąø¹ąø„ąøąø²ąøą¹ąøą¹ąø”ą¹ąøą¹" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ąø«ąø²ą¹ąøą¹ąø”ą¹ąøą¹ąøą¹ąø”ąøąø±ąøą¹ąøą¹ąøą¹ąøąø ZIP ą¹ąø”ą¹ąøąø" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ąøą¹ąøąøąø“ąøąøąø„ąø²ąøą¹ąø”ą¹ąøąø£ąø²ąøąøŖąø²ą¹ąø«ąøąøø" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£ ā%sā ą¹ąøą¹" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ąøąøąø¶ąøą¹ąøąøąøŖąø²ąø£ ā%sā ą¹ąøą¹" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ą¹ąøąøąøŖąø²ąø£ PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ą¹ąøąø ā%sā: %s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø”ą¹ąøąø ā%sā: %s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø”ą¹ąøąø ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøą¹ąøą¹ąø”ąøąøąø“ąø %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ą¹ąøąøąøŖąø²ąø£ąøąø±ą¹ąøąø«ąø”ąø" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ą¹ąøą¹ąø”ąøąø±ą¹ąøąø«ąø”ąø" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ąøŖąø£ą¹ąø²ąøą¹ąøą¹ąø”ąøąø±ą¹ąø§ąøąø£ąø²ąø§ą¹ąø”ą¹ąøŖąø³ą¹ąø£ą¹ąø: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ąøŖąø£ą¹ąø²ąøą¹ąøą¹ąø£ąøąøąøąø£ąøµąøąø±ą¹ąø§ąøąø£ąø²ąø§ą¹ąø”ą¹ąøŖąø³ą¹ąø£ą¹ąø: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ą¹ąøą¹ąø”ąøąøµą¹ą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø” .desktop ąøąøµą¹ą¹ąøą¹ą¹ąøą¹" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ą¹ąø”ą¹ąø£ąø¹ą¹ąøąø±ąøą¹ąøą¹ąø”ą¹ąøąøŖąøą¹ąøą¹ąøąøąø£ąøøą¹ąø '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ąøąø³ąø„ąø±ąøą¹ąø£ąø“ą¹ąø” %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ą¹ąøąø£ą¹ąøąø£ąø”ą¹ąø”ą¹ąø£ąø±ąøą¹ąøąøąøŖąø²ąø£ą¹ąøąøąø£ąø£ąøąø±ąøąøąø³ąøŖąø±ą¹ąø" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ą¹ąø”ą¹ąø£ąø¹ą¹ąøąø±ąøąøąø±ąø§ą¹ąø„ąø·ąøąøąøąøąøąøąø²ąø£ą¹ąø£ąøµąø¢ąøą¹ąøąø£ą¹ąøąø£ąø”: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøŖą¹ąø URI ąøąøąøą¹ąøąøąøŖąø²ąø£ą¹ąøąø¢ąø±ąøąø£ąø²ąø¢ąøąø²ąø£ą¹ąøąøŖąøą¹ąøą¹ąøąøąøąøµą¹ąø”ąøµ 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ą¹ąø”ą¹ą¹ąøą¹ąø£ąø²ąø¢ąøąø²ąø£ąøąøµą¹ą¹ąø£ąøµąø¢ąøąøąø³ąøąø²ąøą¹ąøą¹" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ąøąø“ąøą¹ąøą¹ąøąø²ąø£ą¹ąøąø·ą¹ąøąø”ąøą¹ąøą¹ąøąø¢ąø±ąøą¹ąøąø£ą¹ąøąø£ąø”ąøąø±ąøąøąø²ąø£ąø§ąø²ąø£ąø°" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ąø£ąø°ąøąøøą¹ąøą¹ąø”ąøąøµą¹ąøąø±ąøąøąø¶ąøąøą¹ąø²ąøąø±ą¹ąøą¹ąø§ą¹" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "FILE" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ąø£ąø°ąøąøøąø«ąø”ąø²ąø¢ą¹ąø„ąøąøąø²ąø£ąøąø±ąøąøąø²ąø£ąø§ąø²ąø£ąø°" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ąøąø±ąø§ą¹ąø„ąø·ąøąøą¹ąøąøµą¹ąø¢ąø§ąøąø±ąøąøąø²ąø£ąøąø±ąøąøąø²ąø£ąø§ąø²ąø£ąø°:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ą¹ąøŖąøąøąøąø±ąø§ą¹ąø„ąø·ąøąøą¹ąøąøµą¹ąø¢ąø§ąøąø±ąøąøąø²ąø£ąøąø±ąøąøąø²ąø£ąø§ąø²ąø£ąø°" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ą¹ąøŖąøąøą¹ąøąø ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "_ąø¢ą¹ąø²ąø¢ąøąøµą¹ą¹ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "ąø¢ą¹ąø²ąø¢ąø£ąø²ąø¢ąøąø²ąø£ąøąøµą¹ą¹ąø„ąø·ąøąøą¹ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "_ąø„ąøąøąøąøąøąø²ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ąø„ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąøąøąøµą¹ą¹ąø„ąø·ąøąø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "_ąø„ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ąø„ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąøąøąøµą¹ą¹ąø„ąø·ąøąø" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "ą¹ąøŖą¹ąøą¹ąøą¹ąø" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:101 +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:176 +msgid "Running in presentation mode" +msgstr "ąøąø³ąø„ąø±ąøąøąø³ąøąø²ąøą¹ąøą¹ąøąøąøąø³ą¹ąøŖąøąø" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5403 +msgid "Best Fit" +msgstr "ąøąøąøąøµąø«ąøą¹ąø²" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ą¹ąøą¹ąø²ąøąø§ąø²ąø”ąøąø§ą¹ąø²ąø" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4254 +#: ../shell/ev-window-title.c:149 ../shell/main.c:313 +#, c-format +msgid "Document Viewer" +msgstr "ą¹ąøąø£ą¹ąøąø£ąø”ąøąø¹ą¹ąøąøąøŖąø²ąø£" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ąøąø¹ą¹ąøąøąøŖąø²ąø£ą¹ąøąøąø«ąø„ąø²ąø¢ąø«ąøą¹ąø²" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "ąø„ąø°ą¹ąø„ąø¢ąøą¹ąøąø«ą¹ąø²ąø”ąøąøąøą¹ąøąøąøŖąø²ąø£" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "ąø„ąø°ą¹ąø„ąø¢ąøą¹ąøąø«ą¹ąø²ąø”ąøąøąøą¹ąøąøąøŖąø²ąø£ ą¹ąøą¹ąø ąøąø²ąø£ąø«ą¹ąø²ąø”ąøąø³ąøŖąø³ą¹ąøąø²ąø«ąø£ąø·ąøąø«ą¹ąø²ąø”ąøąø±ąøąøąø“ąø”ąøą¹" + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ąø„ąøą¹ąøą¹ąø”ąøąø±ą¹ąø§ąøąø£ąø²ąø§" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ą¹ąøą¹ąø”ąøą¹ąø²ąøąø±ą¹ąøąøąø²ąø£ąøąø“ąø”ąøą¹" + +#: ../previewer/ev-previewer.c:147 ../previewer/ev-previewer.c:181 +msgid "MATE Document Previewer" +msgstr "ą¹ąøąø£ą¹ąøąø£ąø”ą¹ąøŖąøąøąø ąø²ąøąøąø±ąø§ąøąø¢ą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ąøąøąø MATE" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3017 +msgid "Failed to print document" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø“ąø”ąøą¹ą¹ąøąøąøŖąø²ąø£ą¹ąøą¹" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ą¹ąø”ą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ '%s' ąøąøµą¹ą¹ąø„ąø·ąøąø" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5152 +msgid "_Previous Page" +msgstr "ąø«ąøą¹ąø²_ąøą¹ąøąø" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5153 +msgid "Go to the previous page" +msgstr "ą¹ąøąø«ąøą¹ąø²ąøą¹ąøąø" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5155 +msgid "_Next Page" +msgstr "ąø«ąøą¹ąø²ąøąø±_ąøą¹ąø" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5156 +msgid "Go to the next page" +msgstr "ą¹ąøąø«ąøą¹ąø²ąøąø±ąøą¹ąø" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5139 +msgid "Enlarge the document" +msgstr "ąøąø¢ąø²ąø¢ą¹ąøąøąøŖąø²ąø£" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5142 +msgid "Shrink the document" +msgstr "ąø¢ą¹ąøą¹ąøąøąøŖąø²ąø£" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ąøąø“ąø”ąøą¹" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5110 +msgid "Print this document" +msgstr "ąøąø“ąø”ąøą¹ą¹ąøąøąøŖąø²ąø£ąøąøµą¹" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5254 +msgid "_Best Fit" +msgstr "_ąøąøąøąøµąø«ąøą¹ąø²" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5255 +msgid "Make the current document fill the window" +msgstr "ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£ąøąø±ą¹ąøąø«ąøą¹ąø²ą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąø«ąøą¹ąø²ąøą¹ąø²ąø" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5257 +msgid "Fit Page _Width" +msgstr "ą¹_ąøą¹ąø²ąøąø§ąø²ąø”ąøąø§ą¹ąø²ąø" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5258 +msgid "Make the current document fill the window width" +msgstr "ą¹ąøŖąøąøąøąø§ąø²ąø”ąøąø§ą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąøąø§ąø²ąø”ąøąø§ą¹ąø²ąøąø«ąøą¹ąø²ąøą¹ąø²ąø" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5325 +msgid "Page" +msgstr "ąø«ąøą¹ąø²" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5326 +msgid "Select Page" +msgstr "ą¹ąø„ąø·ąøąøąø«ąøą¹ąø²" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ą¹ąøąøąøŖąø²ąø£" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ąøąø·ą¹ąøą¹ąø£ąø·ą¹ąøąø:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ąøąø³ą¹ąø«ąøą¹ąø:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "ąø«ąø±ąø§ąøą¹ąø:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ąøąø¹ą¹ą¹ąøąøµąø¢ąø:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ąøąø³ąø«ąø„ąø±ąø:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ąøŖąø£ą¹ąø²ąøąøą¹ąø§ąø¢ą¹ąøąø£ą¹ąøąø£ąø”:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "ąøŖąø£ą¹ąø²ąøą¹ąøąø¢:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "ąø§ąø±ąøąøąøµą¹ąøŖąø£ą¹ąø²ąø:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ąø§ąø±ąøąøąøµą¹ą¹ąøą¹ą¹ąø:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ąøąø³ąøąø§ąøąø«ąøą¹ąø²:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ąøąøąøąøąø“ą¹ąø”ąøą¹:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ąøąøąø£ą¹ą¹ąø”ąø:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ąøąø²ąø£ąø£ąø±ąøąø©ąø²ąøąø§ąø²ąø”ąøąø„ąøąøąø ąø±ąø¢:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ąøąøąø²ąøąøąø£ąø°ąøąø²ąø©:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ą¹ąø”ą¹ąø”ąøµ" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f ąø”ąø”." + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f ąøąø“ą¹ąø§" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ą¹ąøąø§ąøąø±ą¹ąø (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ą¹ąøąø§ąøąøąø (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d ąøąø²ąø %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "ąøąø²ąø %d" + +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ąøąø³ąø„ąø±ąøąøą¹ąø²ąøā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ąøąø³ąø„ąø±ąøą¹ąøąø£ąøµąø¢ąø”ąøąø±ąøąøąø“ąø”ąøą¹ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ąøąø³ąø„ąø±ąøąøąøā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ąøąø³ąø„ąø±ąøąøąø“ąø”ąøą¹ąø«ąøą¹ąø² %d ąøąø²ąø %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøąøąø²ąø£ąøąø“ąø”ąøą¹ąøŖąø³ąø«ąø£ąø±ąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ąøąøµą¹" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ąøąø²ąø£ą¹ąø„ąø·ąøąøąø«ąøą¹ąø²ąøąø“ąøąøąø„ąø²ąø" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "ąøąø³ą¹ąøąø·ąøąø" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ąøą¹ąø§ąøąøąø²ąø£ąøąø“ąø”ąøą¹ąøąøµą¹ąøąøøąøą¹ąø„ąø·ąøąøą¹ąø”ą¹ąøąø£ąøąøąøąø„ąøøąø”ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ą¹ąøą¹ąø„ąø¢ąøŖąø±ąøąø«ąøą¹ąø²" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "ąøąø²ąø£ąø¢ą¹ąø-ąøąø¢ąø²ąø¢ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£:" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ąø¢ą¹ąøąø„ąøą¹ąøą¹ąø²ąøąø·ą¹ąøąøąøµą¹ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ąøąø£ąø±ąøą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ąø¢ą¹ąø-ąøąø¢ąø²ąø¢ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ą¹ąø«ą¹ąøąø“ąø”ąøą¹ąø„ąøą¹ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąøąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ą¹ąøą¹ ą¹ąøąø¢ą¹ąø„ąø·ąøąøąøąø²ąøąøąø±ąø§ą¹ąø„ąø·ąøąøąøą¹ąøą¹ąøąøąøµą¹:\n" +"\n" +"ā¢ \"ą¹ąø”ą¹ąø”ąøµ\": ą¹ąø”ą¹ąøą¹ąøąøąø¢ą¹ąø-ąøąø¢ąø²ąø¢ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£\n" +"\n" +"ā¢ \"ąø¢ą¹ąøąø„ąøą¹ąøą¹ąø²ąøąø·ą¹ąøąøąøµą¹ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹\": " +"ąø¢ą¹ąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ąøąøµą¹ą¹ąø«ąøą¹ąøąø§ą¹ąø²ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹ąø„ąøą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ą¹ąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹\n" +"\n" +"ā¢ \"ąøąø£ąø±ąøą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹\": ąø¢ą¹ąøąø«ąø£ąø·ąøąøąø¢ąø²ąø¢ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ą¹ąø«ą¹ąøąøąøąøµąøąø±ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ą¹ąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "ąø«ąø”ąøøąøą¹ąø„ąø°ąø§ąø²ąøąøąø¶ą¹ąøąøąø„ąø²ąøą¹ąøąø¢ąøąø±ąøą¹ąøąø”ąø±ąøąø“" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ąø«ąø”ąøøąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹ąøąøąøą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ą¹ąøą¹ąø„ąø°ąø«ąøą¹ąø²ą¹ąø«ą¹ąøąø£ąøąøąø±ąøą¹ąøąø§ąø§ąø²ąøąøąøąøą¹ąøą¹ąø„ąø°ąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ " +"ąøąø£ą¹ąøąø”ąøąø±ą¹ąøąøąø±ąøąø§ąø²ąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ą¹ąø«ą¹ąøąø¢ąø¹ą¹ąøąø¶ą¹ąøąøąø„ąø²ąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø“ąø”ąøą¹ąøąøąøąøµ" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ą¹ąø„ąø·ąøąøąøąøąø²ąøąøąø£ąø°ąøąø²ąø©ąøąø²ąø”ąøąøąø²ąøąøąøąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ą¹ąø”ąø·ą¹ąøą¹ąøąø“ąøą¹ąøą¹ ą¹ąøąøąøŖąø²ąø£ą¹ąøą¹ąø„ąø°ąø«ąøą¹ąø²ąøąø°ąøąø¹ąøąøąø“ąø”ąøą¹ąø„ąøą¹ąøąøąø£ąø°ąøąø²ąø©ąøąøąø²ąøą¹ąøąøµąø¢ąø§ąøąø±ąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ąøąø±ą¹ąøą¹" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "ąøąø²ąø£ąøąø±ąøąøąø²ąø£ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©" + +#: ../libview/ev-jobs.c:1438 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø“ąø”ąøą¹ąø«ąøą¹ąø² %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ą¹ąø„ąø·ą¹ąøąøąøąø¶ą¹ąø" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ą¹ąø„ąø·ą¹ąøąøąø„ąø" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ą¹ąø„ąø·ą¹ąøąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøąø¶ą¹ąø" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ą¹ąø„ąø·ą¹ąøąøąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąø„ąø" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ąøą¹ąøąøąø”ąøąøą¹ąøąøąøŖąø²ąø£" + +#: ../libview/ev-view-presentation.c:673 +msgid "Jump to page:" +msgstr "ą¹ąøąøąøµą¹ąø«ąøą¹ąø²:" + +#: ../libview/ev-view-presentation.c:969 +msgid "End of presentation. Click to exit." +msgstr "ąøąøąøąø²ąøąøąø³ą¹ąøŖąøąø ąøąø£ąøøąøąø²ąøąø„ąø“ąøą¹ąøąø·ą¹ąøąøąø“ąø" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ą¹ąø£ąø" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ąøą¹ąøąøąø«ąøą¹ąø²ąøąøµą¹" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ąøąø±ąøą¹ąø" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ąøŖąøøąøąøą¹ąø²ąø¢" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ąøąøµą¹ąøąø³ąø«ąøąø" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ąø«ąø²" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø² %s" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ą¹ąøąø¢ąø±ąø %s ą¹ąøą¹ąøą¹ąø” ā%sā" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "ą¹ąøąø¢ąø±ąøą¹ąøą¹ąø” ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "ą¹ąø£ąøµąø¢ąø %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ąø«ąø²:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5127 +msgid "Find Pre_vious" +msgstr "ąø«ąø²_ąøą¹ąøąøąø«ąøą¹ąø²" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ąø«ąø²ąøą¹ąøąøąø§ąø²ąø”ą¹ąøąø“ąø”ąøąøąø¢ąø«ąø„ąø±ąø" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5125 +msgid "Find Ne_xt" +msgstr "ąøą¹ąøąø«ąø²_ąøą¹ąøą¹ąø" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ąø«ąø²ąøą¹ąøąøąø§ąø²ąø”ą¹ąøąø“ąø”ąøą¹ąøą¹ąø" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ąøąø±ąø§ąøąø“ąø”ąøą¹ą¹ąø«ąøą¹-ą¹_ąø„ą¹ąøąøąø£ąøąøąø±ąø" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ąøŖąø„ąø±ąøąøąø²ąø£ąøą¹ąøąø«ąø²ą¹ąøąø¢ąøąø±ąø§ąøąø“ąø”ąøą¹ą¹ąø«ąøą¹-ą¹ąø„ą¹ąøąøąø£ąøąøąø±ąø" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ąø£ąø«ąø±ąøŖąøą¹ąø²ąøąøŖąø³ąø«ąø£ąø±ąøą¹ąøąøąøŖąø²ąø£ %s" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ąøąø³ąø„ąø±ąøą¹ąøąø„ąø %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ą¹ąøąø„ąøą¹ąøąøąøŖąø²ąø£ą¹ąø„ą¹ąø§ %d ąøąøąø±ąøąøąø²ąø %d ąøąøąø±ąø" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ąøąø³ąø„ąø±ąøą¹ąøąø„ąøąøą¹ąøąø”ąø¹ąø„ąøąø³ąøąø±ąø" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"ąøąøąø£ą¹ą¹ąø”ąøąøąøąøąøą¹ąøąø”ąø¹ąø„ąøąø³ąøąø±ąøąøąøµą¹ Evince ą¹ąøą¹ąø”ąøµąøąø²ąø£ą¹ąøąø„ąøµą¹ąø¢ąøą¹ąøąø„ąø ąøąø¶ąøąøą¹ąøąøąø”ąøµąøąø²ąø£ą¹ąøąø„ąøą¹ąøąø·ą¹ąøąø¢ą¹ąø²ąø¢ąø£ąø°ąøąø " +"ąøą¹ąø²ąøąø²ąø£ąø¢ą¹ąø²ąø¢ąø£ąø°ąøąøąøąø¹ąøąø¢ąøą¹ąø„ąø“ąø ąøą¹ąøąø”ąø¹ąø„ąøąø³ąøąø±ąøąøąø°ą¹ąøą¹ąøąø²ąø£ą¹ąø”ą¹ą¹ąøą¹" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£ąø„ą¹ąø²ąøŖąøøąø" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ą¹ąøąøąøŖąø²ąø£ąøąøµą¹ąøąø¹ąøąø„ą¹ąøąøą¹ąø§ą¹ ą¹ąø„ąø°ąøąø°ąøą¹ąø²ąøą¹ąøą¹ą¹ąø”ąø·ą¹ąøą¹ąøŖą¹ąø£ąø«ąø±ąøŖąøą¹ąø²ąøąøąøµą¹ąøąø¹ąøąøą¹ąøąø" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "_ą¹ąø„ąø“ąøąø„ą¹ąøąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "ąøą¹ąøąøąø£ąø«ąø±ąøŖąøą¹ąø²ąø" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "ąøą¹ąøąøąøąø²ąø£ąø£ąø«ąø±ąøŖąøą¹ąø²ąø" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ą¹ąøąøąøŖąø²ąø£ ā%sā ąøąø¹ąøąø„ą¹ąøąøą¹ąø„ąø°ąøą¹ąøąøą¹ąøą¹ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąøąøąø²ąø£ą¹ąøąø“ąø" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "_ąø£ąø«ąø±ąøŖąøą¹ąø²ąø:" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "_ąøąø“ą¹ąøąø£ąø«ąø±ąøŖąøą¹ąø²ąøąøąø±ąøąøąøµ" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "_ąøąø³ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø§ą¹ą¹ąøą¹ąøąøąøąø§ą¹ąø²ąøąø°ąøąøąøąøąø²ąøąø£ąø°ąøąø" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ąøąø³ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø§ą¹ąø_ąø„ąøąøą¹ąø" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "ąøąøøąøąøŖąø”ąøąø±ąøąø“" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "ąøąø±ą¹ąø§ą¹ąø" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "ą¹ąøąøąøąø±ąøąø©ąø£" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ąøŖąø±ąøąøąø²ąøąøąøøąøąø²ąøąøąøąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ą¹ąøąøąøąø±ąøąø©ąø£" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ąøąø³ąø„ąø±ąøąøą¹ąø²ąøąøą¹ąøąø”ąø¹ąø„ą¹ąøąøąøąø±ąøąø©ąø£ā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ą¹ąøąø·ą¹ąøąøą¹ąøąøąø²ąø£ą¹ąøą¹ąøąø²ąø" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ą¹ąøąø·ą¹ąøąø«ąø²ąøŖąø±ąøąøąø²ąøąøąøøąøąø²ąø" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ąøą¹ąøąø”ąø¹ąø„ą¹ąøąø“ą¹ąø”ą¹ąøąø“ąø”" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ą¹ąøą¹ąø”ą¹ąøąø" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ąøąø±ą¹ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ąøąø“ąø”ąøą¹ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ąøąø±ąøąøąøµ" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ąø ąø²ąøąø¢ą¹ąø" + +#: ../shell/ev-window.c:835 +#, c-format +msgid "Page %s ā %s" +msgstr "ąø«ąøą¹ąø² %s ā %s" + +#: ../shell/ev-window.c:837 +#, c-format +msgid "Page %s" +msgstr "ąø«ąøą¹ąø² %s" + +#: ../shell/ev-window.c:1297 +msgid "The document contains no pages" +msgstr "ą¹ąøąøąøŖąø²ąø£ą¹ąø”ą¹ąø”ąøµą¹ąøąø·ą¹ąøąø«ąø²ąøŖąø±ąøąø«ąøą¹ąø²" + +#: ../shell/ev-window.c:1300 +msgid "The document contains only empty pages" +msgstr "ą¹ąøąøąøŖąø²ąø£ąø”ąøµą¹ąøą¹ąø«ąøą¹ąø²ą¹ąøąø„ą¹ąø²" + +#: ../shell/ev-window.c:1494 ../shell/ev-window.c:1660 +msgid "Unable to open document" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£ą¹ąøą¹" + +#: ../shell/ev-window.c:1631 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ąøąø³ąø„ąø±ąøą¹ąø«ąø„ąøą¹ąøąøąøŖąø²ąø£ąøąø²ąø ā%sā" + +#: ../shell/ev-window.c:1773 ../shell/ev-window.c:2051 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ąøąø³ąø„ąø±ąøąøąø²ąø§ąøą¹ą¹ąø«ąø„ąøą¹ąøąøąøŖąø²ąø£ (%d%%)" + +#: ../shell/ev-window.c:1806 +msgid "Failed to load remote file." +msgstr "ąøą¹ąø²ąøą¹ąøą¹ąø”ą¹ąøą¹ąøąø£ąø·ąøąøą¹ąø²ąø¢ą¹ąø”ą¹ąøŖąø³ą¹ąø£ą¹ąø" + +#: ../shell/ev-window.c:1995 +#, c-format +msgid "Reloading document from %s" +msgstr "ąøąø³ąø„ąø±ąøąøą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ą¹ąø«ąø”ą¹ąøąø²ąø %s" + +#: ../shell/ev-window.c:2027 +msgid "Failed to reload document." +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ą¹ąø«ąø”ą¹" + +#: ../shell/ev-window.c:2182 +msgid "Open Document" +msgstr "ą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-window.c:2480 +#, c-format +msgid "Saving document to %s" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøąøąø¶ąøą¹ąøąøąøŖąø²ąø£ąø„ąøąøąøµą¹ %s" + +#: ../shell/ev-window.c:2483 +#, c-format +msgid "Saving attachment to %s" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ą¹ąøąøąø„ąøąøąøµą¹ %s" + +#: ../shell/ev-window.c:2486 +#, c-format +msgid "Saving image to %s" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøąøąø¶ąøąø ąø²ąøąø„ąøąøąøµą¹ %s" + +#: ../shell/ev-window.c:2530 ../shell/ev-window.c:2630 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ąøąøµą¹ą¹ąøą¹ąø ā%sā ą¹ąøą¹" + +#: ../shell/ev-window.c:2561 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøą¹ąø«ąø„ąøą¹ąøąøąøŖąø²ąø£ (%d%%)" + +#: ../shell/ev-window.c:2565 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøą¹ąø«ąø„ąøą¹ąøą¹ąø”ą¹ąøąø (%d%%)" + +#: ../shell/ev-window.c:2569 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ąøąø³ąø„ąø±ąøąøąø±ąøą¹ąø«ąø„ąøąø ąø²ąø (%d%%)" + +#: ../shell/ev-window.c:2693 +msgid "Save a Copy" +msgstr "ąøąø±ąøąøąø¶ąøąøŖąø³ą¹ąøąø²" + +#: ../shell/ev-window.c:2961 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d ąøąø²ąøąøą¹ąø²ąøąøąø¢ąø¹ą¹ą¹ąøąøąø“ąø§" + +#: ../shell/ev-window.c:3074 +#, c-format +msgid "Printing job ā%sā" +msgstr "ąøąø³ąø„ąø±ąøąøąø“ąø”ąøą¹ąøąø²ąø ā%sā" + +#: ../shell/ev-window.c:3286 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ąøąø°ąø£ąøąøąøąøąø£ąø°ąøąø±ą¹ąøąøąø“ąø”ąøą¹ąøąø²ąø ā%sā ą¹ąøŖąø£ą¹ąøą¹ąø„ą¹ąø§ąøąø¶ąøąøąø“ąøąø«ąø£ąø·ąøą¹ąø”ą¹?" + +#: ../shell/ev-window.c:3289 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "ąø”ąøµąøąø²ąøąøąø“ąø”ąøą¹ %d ąøąø²ąøąøąøµą¹ąøąø³ąø„ąø±ąøąøąø³ąøąø¢ąø¹ą¹ ąøąø°ąø£ąøąøąøąøąø£ąø°ąøąø±ą¹ąøąøąø“ąø”ąøą¹ą¹ąøŖąø£ą¹ąøą¹ąø„ą¹ąø§ąøąø¶ąøąøąø“ąøąø«ąø£ąø·ąøą¹ąø”ą¹?" + +#: ../shell/ev-window.c:3301 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "ąøą¹ąø²ąøąøøąøąøąø“ąøąø«ąøą¹ąø²ąøą¹ąø²ąø ąøą¹ąøąø°ą¹ąø”ą¹ąøąø“ąø”ąøą¹ąøąø²ąøąøąø“ąø”ąøą¹ąøąøµą¹ąøą¹ąø²ąøąøąø¢ąø¹ą¹" + +#: ../shell/ev-window.c:3305 +msgid "Cancel _print and Close" +msgstr "ąø¢ąøą¹ąø„ąø“_ąøąøąø²ąøąøąø“ąø”ąøą¹ą¹ąø„ą¹ąø§ąøąø“ąø" + +#: ../shell/ev-window.c:3309 +msgid "Close _after Printing" +msgstr "_ąøąø“ąø”ąøą¹ą¹ąøŖąø£ą¹ąøą¹ąø„ą¹ąø§ąøąø¶ąøąøąø“ąø" + +#: ../shell/ev-window.c:3899 +msgid "Toolbar Editor" +msgstr "ą¹ąøą¹ą¹ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../shell/ev-window.c:4038 +msgid "There was an error displaying help" +msgstr "ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£ąø§ąø“ąøąøµą¹ąøą¹" + +#: ../shell/ev-window.c:4250 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ą¹ąøąø£ą¹ąøąø£ąø”ąøąø¹ą¹ąøąøąøŖąø²ąø£\n" +"ąøąø²ąøØąø±ąø¢ %s (%s)" + +#: ../shell/ev-window.c:4281 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ą¹ąøą¹ąøąøąøąøąøą¹ą¹ąø§ąø£ą¹ą¹ąøŖąø£ąøµ ąøąøøąøąøŖąø²ąø”ąø²ąø£ąøą¹ąøąøąøą¹ąø²ąø¢ąøą¹ąø ą¹ąø„ąø°/ąø«ąø£ąø·ąø ą¹ąøą¹ą¹ąøą¹ąøąø£ą¹ąøąø£ąø”ą¹ąøą¹ ąø ąø²ąø¢ą¹ąøą¹ą¹ąøąø·ą¹ąøąøą¹ąøąøąøąø " +"GNU General Public License ąøąøµą¹ą¹ąøąø¢ą¹ąøąø£ą¹ą¹ąøąø¢ąø”ąø¹ąø„ąøąø“ąøąø“ąøąøąøąøą¹ą¹ąø§ąø£ą¹ą¹ąøŖąø£ąøµ ą¹ąø”ą¹ąø§ą¹ąø²ąøąø°ą¹ąøą¹ąøąøŖąø±ąøąøąø²ąøąøąøøąøąø²ąøąø£ąøøą¹ąøąøąøµą¹ 2 " +"ąø«ąø£ąø·ąøąø£ąøøą¹ąøąøąø±ąøąø”ąø² (ąøąø²ąø”ą¹ąøą¹ąøąøøąøąøąø°ą¹ąø„ąø·ąøąø)\n" + +#: ../shell/ev-window.c:4285 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ą¹ąøąø¢ą¹ąøąø£ą¹ąøą¹ąø§ąø¢ąøąø§ąø²ąø”ąø«ąø§ąø±ąøąø§ą¹ąø²ą¹ąøąø£ą¹ąøąø£ąø”ąøąø°ąø”ąøµąøąø£ąø°ą¹ąø¢ąøąøą¹ ą¹ąøą¹ _ą¹ąø”ą¹ąø”ąøµąøąø²ąø£ąø£ąø±ąøąøąø£ąø°ąøąø±ąøą¹ąøą¹_ " +"ą¹ąø”ą¹ąø”ąøµą¹ąø”ą¹ąøąø²ąø£ąø£ąø±ąøąøąø£ąø°ąøąø±ąø _ąøąø£ąø£ąøąøąø£ąø°ą¹ąø¢ąøąøą¹ą¹ąøąø“ąøąøąø²ąøąø“ąøąø¢ą¹_ ąø«ąø£ąø·ąø " +"_ąøąø§ąø²ąø”ą¹ąø«ąø”ąø²ąø°ąøŖąø”ąøŖąø³ąø«ąø£ąø±ąøąø§ąø±ąøąøąøøąøąø£ąø°ąøŖąøąøą¹ą¹ąøąøąø²ąø°ąøąø“ąøą¹ąøą¹_ ąøąø£ąøøąøąø²ąøą¹ąø²ąø GNU General Public License " +"ą¹ąøąø·ą¹ąøąøąø¹ąø£ąø²ąø¢ąø„ąø°ą¹ąøąøµąø¢ąøą¹ąøąø“ą¹ąø”ą¹ąøąø“ąø”\n" + +#: ../shell/ev-window.c:4289 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ąøąøøąøąøąø§ąø£ąøąø°ą¹ąøą¹ąø£ąø±ąøąøŖąø³ą¹ąøąø²ąøąøąø GNU General Public License ąø”ąø²ąøąø£ą¹ąøąø”ąøąø±ąø Evince ąøą¹ąø²ąøąøøąøą¹ąø”ą¹ą¹ąøą¹ąø£ąø±ąø " +"ąøąø£ąøøąøąø²ąøąø“ąøąøą¹ąøą¹ąøąøąøµą¹ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " +"Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4314 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4317 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 ąøąø¹ą¹ąøąø±ąøąøąø³ Evince" + +#: ../shell/ev-window.c:4323 +msgid "translator-credits" +msgstr "" +"Isriya Paireepairit <markpeak@gmail.com>\n" +"Theppitak Karoonboonyanan <thep@linux.thai.net>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4597 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ąøąø %d ą¹ąø«ą¹ąøą¹ąøąø«ąøą¹ąø²ąøąøµą¹" + +#: ../shell/ev-window.c:4605 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ąø¢ąø±ąøą¹ąø«ąø„ąø·ąøąøąøµąø %3d%% ą¹ąøąøąø²ąø£ąøą¹ąøąø«ąø²" + +#: ../shell/ev-window.c:5093 +msgid "_File" +msgstr "ą¹_ąøą¹ąø”" + +#: ../shell/ev-window.c:5094 +msgid "_Edit" +msgstr "ą¹_ąøą¹ą¹ąø" + +#: ../shell/ev-window.c:5095 +msgid "_View" +msgstr "_ąø”ąøøąø”ąø”ąøąø" + +#: ../shell/ev-window.c:5096 +msgid "_Go" +msgstr "_ą¹ąø" + +#: ../shell/ev-window.c:5097 +msgid "_Help" +msgstr "_ąø§ąø“ąøąøµą¹ąøą¹" + +#. File menu +#: ../shell/ev-window.c:5100 ../shell/ev-window.c:5365 +msgid "_Openā¦" +msgstr "_ą¹ąøąø“ąøā¦" + +#: ../shell/ev-window.c:5101 ../shell/ev-window.c:5366 +msgid "Open an existing document" +msgstr "ą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-window.c:5103 +msgid "Op_en a Copy" +msgstr "ą¹ąøąø“ąø_ąøŖąø³ą¹ąøąø²" + +#: ../shell/ev-window.c:5104 +msgid "Open a copy of the current document in a new window" +msgstr "ą¹ąøąø“ąøąøŖąø³ą¹ąøąø²ąøąøąøą¹ąøąøąøŖąø²ąø£ąøąø±ąøąøąøøąøąø±ąøą¹ąøąø«ąøą¹ąø²ąøą¹ąø²ąøą¹ąø«ąø”ą¹" + +#: ../shell/ev-window.c:5106 +msgid "_Save a Copyā¦" +msgstr "_ąøąø±ąøąøąø¶ąøąøŖąø³ą¹ąøąø²ā¦" + +#: ../shell/ev-window.c:5107 +msgid "Save a copy of the current document" +msgstr "ąøąø±ąøąøąø¶ąøąøŖąø³ą¹ąøąø²ąøąøąøą¹ąøąøąøŖąø²ąø£ąøąø±ąøąøąøøąøąø±ąø" + +#: ../shell/ev-window.c:5109 +msgid "_Printā¦" +msgstr "_ąøąø“ąø”ąøą¹ā¦" + +#: ../shell/ev-window.c:5112 +msgid "P_roperties" +msgstr "ąøąøøąø_ąøŖąø”ąøąø±ąøąø“" + +#: ../shell/ev-window.c:5120 +msgid "Select _All" +msgstr "ą¹ąø„ąø·ąøąøąøąø±ą¹ąø_ąø«ąø”ąø" + +#: ../shell/ev-window.c:5122 +msgid "_Findā¦" +msgstr "_ąø«ąø²ā¦" + +#: ../shell/ev-window.c:5123 +msgid "Find a word or phrase in the document" +msgstr "ąøą¹ąøąø«ąø²ąøąø³ąø«ąø£ąø·ąøąø§ąø„ąøµą¹ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-window.c:5129 +msgid "T_oolbar" +msgstr "ą¹ąøąøą¹_ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../shell/ev-window.c:5131 +msgid "Rotate _Left" +msgstr "ąø«ąø”ąøøąø_ąøą¹ąø²ąø¢" + +#: ../shell/ev-window.c:5133 +msgid "Rotate _Right" +msgstr "ąø«ąø”ąøøąø_ąøąø§ąø²" + +#: ../shell/ev-window.c:5144 +msgid "_Reload" +msgstr "_ąøą¹ąø²ąøą¹ąø«ąø”ą¹" + +#: ../shell/ev-window.c:5145 +msgid "Reload the document" +msgstr "ąøą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ą¹ąø«ąø”ą¹" + +#: ../shell/ev-window.c:5148 +msgid "Auto_scroll" +msgstr "ą¹_ąø„ąø·ą¹ąøąøąøąøąøąø±ąøą¹ąøąø”ąø±ąøąø“" + +#: ../shell/ev-window.c:5158 +msgid "_First Page" +msgstr "ąø«ąøą¹ąø²ą¹_ąø£ąø" + +#: ../shell/ev-window.c:5159 +msgid "Go to the first page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ą¹ąø£ąø" + +#: ../shell/ev-window.c:5161 +msgid "_Last Page" +msgstr "ąø«ąøą¹ąø²ąøŖąøøąø_ąøą¹ąø²ąø¢" + +#: ../shell/ev-window.c:5162 +msgid "Go to the last page" +msgstr "ą¹ąøąø¢ąø±ąøąø«ąøą¹ąø²ąøŖąøøąøąøą¹ąø²ąø¢" + +#. Help menu +#: ../shell/ev-window.c:5166 +msgid "_Contents" +msgstr "ą¹_ąøąø·ą¹ąøąø«ąø²" + +#: ../shell/ev-window.c:5169 +msgid "_About" +msgstr "ą¹_ąøąøµą¹ąø¢ąø§ąøąø±ąø" + +#. Toolbar-only +#: ../shell/ev-window.c:5173 +msgid "Leave Fullscreen" +msgstr "ą¹ąø„ąø“ąøą¹ąøŖąøąøą¹ąøą¹ąø”ąøąø" + +#: ../shell/ev-window.c:5174 +msgid "Leave fullscreen mode" +msgstr "ąøąøąøąøąø²ąøąøąø²ąø£ą¹ąøŖąøąøąøąø„ą¹ąøą¹ąø”ąøąø" + +#: ../shell/ev-window.c:5176 +msgid "Start Presentation" +msgstr "ą¹ąø£ąø“ą¹ąø”ąøąø³ą¹ąøŖąøąø" + +#: ../shell/ev-window.c:5177 +msgid "Start a presentation" +msgstr "ą¹ąø£ąø“ą¹ąø”ąøąø³ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£" + +#. View Menu +#: ../shell/ev-window.c:5236 +msgid "_Toolbar" +msgstr "ą¹ąøąøą¹_ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../shell/ev-window.c:5237 +msgid "Show or hide the toolbar" +msgstr "ą¹ąøŖąøąøąø«ąø£ąø·ąøąøą¹ąøąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#: ../shell/ev-window.c:5239 +msgid "Side _Pane" +msgstr "ą¹ąøąø_ąøą¹ąø²ąø" + +#: ../shell/ev-window.c:5240 +msgid "Show or hide the side pane" +msgstr "ą¹ąøŖąøąøąø«ąø£ąø·ąøąøą¹ąøąøą¹ąøąøąøą¹ąø²ąø" + +#: ../shell/ev-window.c:5242 +msgid "_Continuous" +msgstr "ą¹ąøŖąøąø_ąø«ąøą¹ąø²ąøą¹ąøąøąø±ąø" + +#: ../shell/ev-window.c:5243 +msgid "Show the entire document" +msgstr "ą¹ąøŖąøąøąøąø±ą¹ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/ev-window.c:5245 +msgid "_Dual" +msgstr "_ąø«ąøą¹ąø²ąøąø¹ą¹" + +#: ../shell/ev-window.c:5246 +msgid "Show two pages at once" +msgstr "ą¹ąøŖąøąøąøąø£ąø±ą¹ąøąø„ąø°ąøŖąøąøąø«ąøą¹ąø²" + +#: ../shell/ev-window.c:5248 +msgid "_Fullscreen" +msgstr "ą¹ąøą¹_ąø”ąøąø" + +#: ../shell/ev-window.c:5249 +msgid "Expand the window to fill the screen" +msgstr "ąøąø¢ąø²ąø¢ąøąøąø²ąøąø«ąøą¹ąø²ąøą¹ąø²ąøą¹ąø«ą¹ą¹ąøą¹ąø”ąø«ąøą¹ąø²ąøąø" + +#: ../shell/ev-window.c:5251 +msgid "Pre_sentation" +msgstr "ąøąø³ą¹_ąøŖąøąø" + +#: ../shell/ev-window.c:5252 +msgid "Run document as a presentation" +msgstr "ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£ą¹ąøąøąøąø³ą¹ąøŖąøąø" + +#: ../shell/ev-window.c:5260 +msgid "_Inverted Colors" +msgstr "_ąøąø„ąø±ąøąøŖąøµ" + +#: ../shell/ev-window.c:5261 +msgid "Show page contents with the colors inverted" +msgstr "ą¹ąøŖąøąøą¹ąøąø·ą¹ąøąø«ąø²ąøąøąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ą¹ąøąø¢ąøąø„ąø±ąøąøŖąøµ" + +#. Links +#: ../shell/ev-window.c:5269 +msgid "_Open Link" +msgstr "_ą¹ąøąø“ąøąø„ąø“ąøąøą¹" + +#: ../shell/ev-window.c:5271 +msgid "_Go To" +msgstr "_ą¹ąø" + +#: ../shell/ev-window.c:5273 +msgid "Open in New _Window" +msgstr "ą¹ąøąø“ąøą¹ąøąø«ąøą¹ąø²_ąøą¹ąø²ąøą¹ąø«ąø”ą¹" + +#: ../shell/ev-window.c:5275 +msgid "_Copy Link Address" +msgstr "_ąøąø±ąøąø„ąøąøąøąøµą¹ąøąø¢ąø¹ą¹ąø„ąø“ąøąøą¹" + +#: ../shell/ev-window.c:5277 +msgid "_Save Image Asā¦" +msgstr "_ąøąø±ąøąøąø¶ąøąø ąø²ąøą¹ąøą¹ąøā¦" + +#: ../shell/ev-window.c:5279 +msgid "Copy _Image" +msgstr "ąøąø±ąøąø„ąøąø_ąø ąø²ąø" + +#: ../shell/ev-window.c:5284 +msgid "_Open Attachment" +msgstr "_ą¹ąøąø“ąøą¹ąøą¹ąø”ą¹ąøąø" + +#: ../shell/ev-window.c:5286 +msgid "_Save Attachment Asā¦" +msgstr "_ąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ą¹ąøąøą¹ąøą¹ąøā¦" + +#: ../shell/ev-window.c:5339 +msgid "Zoom" +msgstr "ąø¢ą¹ąø-ąøąø¢ąø²ąø¢" + +#: ../shell/ev-window.c:5341 +msgid "Adjust the zoom level" +msgstr "ąøąø£ąø±ąøąøąø±ąøąø£ąø²ąøŖą¹ąø§ąøąø¢ą¹ąø-ąøąø¢ąø²ąø¢" + +#: ../shell/ev-window.c:5351 +msgid "Navigation" +msgstr "ą¹ąøŖą¹ąøąøąø²ąøąøąø²ąø£ąøą¹ąø²ąø" + +#: ../shell/ev-window.c:5353 +msgid "Back" +msgstr "ąø¢ą¹ąøąøąøąø„ąø±ąø" + +#. translators: this is the history action +#: ../shell/ev-window.c:5356 +msgid "Move across visited pages" +msgstr "ą¹ąøąø„ąøµą¹ąø¢ąøą¹ąøąø”ąø²ą¹ąøąø«ąøą¹ąø²ąøąøµą¹ąøą¹ąø²ąøąø”ąø²ą¹ąø„ą¹ąø§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5386 +msgid "Previous" +msgstr "ąøąøąø¢" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5391 +msgid "Next" +msgstr "ą¹ąøąø“ąøąø«ąøą¹ąø²" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5395 +msgid "Zoom In" +msgstr "ąøąø¢ąø²ąø¢" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5399 +msgid "Zoom Out" +msgstr "ąø¢ą¹ąø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5407 +msgid "Fit Width" +msgstr "ą¹ąøą¹ąø²ąøąø§ąø²ąø”ąøąø§ą¹ąø²ąø" + +#: ../shell/ev-window.c:5568 ../shell/ev-window.c:5585 +msgid "Unable to launch external application." +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąø£ąøµąø¢ąøą¹ąøąø£ą¹ąøąø£ąø”ąø ąø²ąø¢ąøąøąø" + +#: ../shell/ev-window.c:5642 +msgid "Unable to open external link" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøąø„ąø“ąøąøą¹ąø ąø²ąø¢ąøąøąø" + +#: ../shell/ev-window.c:5809 +msgid "Couldn't find appropriate format to save image" +msgstr "ąø«ąø²ąø£ąø¹ąøą¹ąøąøąøąøµą¹ą¹ąø«ąø”ąø²ąø°ąøŖąø”ąøŖąø³ąø«ąø£ąø±ąøąøąø±ąøąøąø¶ąøąø£ąø¹ąøąø ąø²ąøą¹ąø”ą¹ą¹ąøą¹" + +#: ../shell/ev-window.c:5851 +msgid "The image could not be saved." +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ąøąøąø¶ąøąø ąø²ąø" + +#: ../shell/ev-window.c:5883 +msgid "Save Image" +msgstr "ąøąø±ąøąøąø¶ąøąø ąø²ąø" + +#: ../shell/ev-window.c:5950 +msgid "Unable to open attachment" +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø”ą¹ąøąø" + +#: ../shell/ev-window.c:6003 +msgid "The attachment could not be saved." +msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ą¹ąøąø" + +#: ../shell/ev-window.c:6048 +msgid "Save Attachment" +msgstr "ąøąø±ąøąøąø¶ąøą¹ąøą¹ąø”ą¹ąøąø" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā ąøą¹ąøąøąøąø²ąø£ąø£ąø«ąø±ąøŖąøą¹ąø²ąø" + +#: ../shell/ev-utils.c:317 +msgid "By extension" +msgstr "ąøąø²ąø”ąøąø²ąø”ąøŖąøąøøąø„" + +#: ../shell/main.c:72 ../shell/main.c:277 +msgid "MATE Document Viewer" +msgstr "ą¹ąøąø£ą¹ąøąø£ąø”ąøąø¹ą¹ąøąøąøŖąø²ąø£ąøąøąø MATE" + +#: ../shell/main.c:80 +msgid "The page label of the document to display." +msgstr "ąøą¹ąø²ąø¢ąøąø·ą¹ąøąøąøąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ąøąøµą¹ąøąø°ą¹ąøŖąøąø" + +#: ../shell/main.c:80 +msgid "PAGE" +msgstr "PAGE" + +#: ../shell/main.c:81 +msgid "The page number of the document to display." +msgstr "ą¹ąø„ąøąø«ąøą¹ąø²ą¹ąøąøąøŖąø²ąø£ąøąøµą¹ąøąø°ą¹ąøŖąøąø" + +#: ../shell/main.c:81 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "ą¹ąø£ąøµąø¢ąø evince ą¹ąøą¹ąøąøą¹ąøą¹ąø”ąøąø" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "ą¹ąø£ąøµąø¢ąø evince ą¹ąøą¹ąøąøąøąø³ą¹ąøŖąøąø" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "ą¹ąø£ąøµąø¢ąø evince ąøŖąø³ąø«ąø£ąø±ąøą¹ąøŖąøąøąøąø±ąø§ąøąø¢ą¹ąø²ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "ąøąø³ąø«ąø£ąø·ąøąø§ąø„ąøµąøąøµą¹ąøąø°ąøą¹ąøąø«ąø²ą¹ąøą¹ąøąøąøŖąø²ąø£" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "STRING" + +#: ../shell/main.c:89 +msgid "[FILEā¦]" +msgstr "[FILEā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "ąøą¹ąø²ąøąø¹ąø„ąøµąø ąøą¹ąø²ąøąø£ąø“ąøąø«ąø”ąø²ąø¢ąøąø¶ąøą¹ąøąø“ąøą¹ąøą¹ąøąø²ąø£ą¹ąøŖąøąøąø ąø²ąøąø¢ą¹ąø ą¹ąø„ąø°ąøą¹ąø²ą¹ąøą¹ąøąø«ąø”ąø²ąø¢ąøąø¶ąøąøąø“ąøąøąø²ąø£ą¹ąøŖąøąøąø ąø²ąøąø¢ą¹ąøąø ąø²ąøą¹ąø«ąø”ą¹" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "ą¹ąøąø“ąøą¹ąøą¹ąøąø²ąø£ą¹ąøŖąøąøąø ąø²ąøąø¢ą¹ąøąøąøąøą¹ąøąøąøŖąø²ąø£ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ąøąø³ąøŖąø±ą¹ąøąø¢ą¹ąøąø ąø²ąøąøŖąø³ąø«ąø£ąø±ąøą¹ąøąøąøŖąø²ąø£ PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ąøąø³ąøŖąø±ą¹ąøąøąø£ą¹ąøąø”ąøąø²ąø£ą¹ąøąø“ąø§ą¹ąø”ąøąøą¹ąøŖąø³ąø«ąø£ąø±ąøąøąø²ąø£ą¹ąøŖąøąøąø ąø²ąøąø¢ą¹ąøąøąøąøą¹ąøąøąøŖąø²ąø£ PDF " +"ąøą¹ąø²ąøąøą¹ąøąø”ąø¹ąø„ą¹ąøąø“ą¹ąø”ą¹ąøąø“ąø”ą¹ąøą¹ąøąø²ąøą¹ąøąøąøŖąø²ąø£ąøąø±ąø§ą¹ąøŖąøąøąø ąø²ąøąø¢ą¹ąøąøąøąø Caja" + +#~ msgid "Page Set_upā¦" +#~ msgstr "_ąøąø±ą¹ąøąøą¹ąø²ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "ąøąø±ą¹ąøąøą¹ąø²ąø«ąøą¹ąø²ąøąø£ąø°ąøąø²ąø©ąøŖąø³ąø«ąø£ąø±ąøąøąø²ąø£ąøąø“ąø”ąøą¹" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "ą¹ąøąøąøŖąø²ąø£ DJVU ąø”ąøµąø£ąø¹ąøą¹ąøąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø" + +#~ msgid "Print..." +#~ msgstr "ąøąø“ąø”ąøą¹..." + +#~ msgid "_Save a Copy..." +#~ msgstr "_ąøąø±ąøąøąø¶ąøąøŖąø³ą¹ąøąø²..." + +#~ msgid "_Print..." +#~ msgstr "_ąøąø“ąø”ąøą¹..." + +#~ msgid "_Find..." +#~ msgstr "_ąø«ąø²..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøŖąø£ą¹ąø²ąøą¹ąøą¹ąø” ā%sā: %s" + +#~ msgid "Search string" +#~ msgstr "ąøą¹ąøąøąø§ąø²ąø”ąøąøµą¹ąøą¹ąøąø«ąø²" + +#~ msgid "The name of the string to be found" +#~ msgstr "ąøąø·ą¹ąøąøąøąøąøą¹ąøąøąø§ąø²ąø”ąøąøµą¹ąøąø°ąø«ąø²" + +#~ msgid "Case sensitive" +#~ msgstr "ąøąø±ąø§ąøąø“ąø”ąøą¹ą¹ąø«ąøą¹-ą¹ąø„ą¹ąøąøąø£ąøąøąø±ąø" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "ą¹ąø„ąø·ąøąøąøąø£ąø“ąø ąøŖąø³ąø«ąø£ąø±ąøąøąø²ąø£ąøą¹ąøąø«ąø²ą¹ąøąø¢ąøąø±ąø§ąøąø“ąø”ąøą¹ą¹ąø«ąøą¹-ą¹ąø„ą¹ąøąøąø£ąøąøąø±ąø" + +#~ msgid "Highlight color" +#~ msgstr "ąøŖąøµą¹ąøąøąø²ąø£ą¹ąøą¹ąøąøąø³" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ąøŖąøµąøąøµą¹ą¹ąøą¹ą¹ąøą¹ąøąøąø³ąøąøµą¹ą¹ąøąøąøąø±ą¹ąøąø«ąø”ąø" + +#~ msgid "Current color" +#~ msgstr "ąøŖąøµąøąø±ąøąøąøøąøąø±ąø" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ąøŖąøµąøąøµą¹ą¹ąøą¹ą¹ąøą¹ąøąøąø³ąøąøµą¹ą¹ąøąøą¹ąø„ąø°ąøąø³ąø„ąø±ąøą¹ąø„ąø·ąøąø" + +#~ msgid "Recover previous documents?" +#~ msgstr "ąøąø°ą¹ąø£ąøµąø¢ąøą¹ąøąøąøŖąø²ąø£ą¹ąøąø“ąø”ąøąø·ąøąø”ąø²ąø«ąø£ąø·ąøą¹ąø”ą¹?" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "" +#~ "ąøąø¹ą¹ąø«ąø”ąø·ąøąø Evince ąøąø°ąøąøąøąø²ąø£ąøąø³ąøąø²ąøąøąø„ąø²ąøąøąø±ąøą¹ąøąøąø£ąø±ą¹ąøąøą¹ąøąøąøąøµą¹ą¹ąø£ąøµąø¢ąø " +#~ "ąøąøøąøąøŖąø²ąø”ąø²ąø£ąøą¹ąø£ąøµąø¢ąøą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£ą¹ąøąø“ąø”ąøąøµą¹ą¹ąøąø“ąøą¹ąø§ą¹ą¹ąøą¹" + +#~ msgid "_Don't Recover" +#~ msgstr "ą¹_ąø”ą¹ąøą¹ąøąøą¹ąø£ąøµąø¢ąøąøąø·ąø" + +#~ msgid "_Recover" +#~ msgstr "ą¹_ąø£ąøµąø¢ąøąøąø·ąø" + +#~ msgid "Crash Recovery" +#~ msgstr "ąøąø²ąø£ą¹ąø£ąøµąø¢ąøąøąø·ąøąøąø²ąøąøąø²ąø£ąøąø±ąø" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøŖąø£ą¹ąø²ąøąø„ąø“ąøąøą¹ąøŖąø±ąøąø„ąø±ąøąø©ąøą¹ ā%sā: " + +#~ msgid "Cannot open a copy." +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøąøŖąø³ą¹ąøąø²" + +#~ msgid "Co_nnect" +#~ msgstr "ą¹_ąøąø·ą¹ąøąø”ąøą¹ąø" + +#~ msgid "Connect _anonymously" +#~ msgstr "ą¹ąøąø·ą¹ąøąø”ąøą¹ąøą¹ąøąø_ąøąø“ąø£ąøąø²ąø”" + +#~ msgid "Connect as u_ser:" +#~ msgstr "ą¹ąøąø·ą¹ąøąø”ąøą¹ąøą¹ąøąøąø²_ąø”ąøąø¹ą¹ą¹ąøą¹:" + +#~ msgid "_Username:" +#~ msgstr "_ąøąø·ą¹ąøąøąø¹ą¹ą¹ąøą¹:" + +#~ msgid "_Domain:" +#~ msgstr "ą¹_ąøą¹ąø”ąø:" + +#~ msgid "_Forget password immediately" +#~ msgstr "_ąøąø“ą¹ąøąø£ąø«ąø±ąøŖąøą¹ąø²ąøąøąø±ąøąøąøµ" + +#~ msgid "_Remember password until you logout" +#~ msgstr "_ąøąø³ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø§ą¹ą¹ąøą¹ąøąøąøąø§ą¹ąø²ąøąø°ąøąøąøąøąø²ąøąø£ąø°ąøąø" + +#~ msgid "_Remember forever" +#~ msgstr "ąøąø³ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø§ą¹ąø_ąø„ąøąøą¹ąø" + +#~ msgid "File not available" +#~ msgstr "ą¹ąø”ąø”ąøµą¹ąøą¹ąø”ąøąøµą¹ąøąø¢ąø¹ą¹" + +#~ msgid "Remote files aren't supported" +#~ msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøą¹ąøą¹ąø”ą¹ąøą¹ąøąø£ąø·ąøąøą¹ąø²ąø¢" + +#~ msgid "Password Entry" +#~ msgstr "ąøą¹ąøąøąøą¹ąøąøąø£ąø«ąø±ąøŖąøą¹ąø²ąø" + +#~ msgid "Remember password for this session" +#~ msgstr "ąøąø³ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø§ą¹ą¹ąøą¹ą¹ąøąø§ąø²ąø£ąø°ąøąøµą¹" + +#~ msgid "Save password in keyring" +#~ msgstr "ąøąø±ąøąøąø¶ąøąø£ąø«ąø±ąøŖąøą¹ąø²ąøąø„ąøą¹ąøąøąø§ąøąøąøøąøą¹ąø" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f ąøąø“ą¹ąø§" + +#~ msgid "Find Previous" +#~ msgstr "ąø«ąø²ąøą¹ąøąøąø«ąøą¹ąø²" + +#~ msgid "Find Next" +#~ msgstr "ąø«ąø²ąøą¹ąø" + +#~ msgid "Incorrect password" +#~ msgstr "ąø£ąø«ąø±ąøŖąøą¹ąø²ąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince: ą¹ąøąø£ą¹ąøąø£ąø”ąøąø¹ą¹ąøąøąøŖąø²ąø£" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "Statement" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø” ā%sā" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "" +#~ "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøąøąøŖąø²ąø£ ā%sā ą¹ąøą¹ ą¹ąøąø·ą¹ąøąøąøąø²ąøą¹ąø”ą¹ąøąøą¹ąøąø£ą¹ąøąø£ąø”ą¹ąøąø„ąøąø³ąøŖąø±ą¹ąø Ghostscript " +#~ "ą¹ąøąøąø²ąøą¹ąøąø£ą¹ąøąø£ąø”" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "ą¹ąøąøŖąøą¹ąøŖąøąø£ąø“ąøąøą¹ą¹ąøą¹ąø²ą¹ąøąøąøąø¹ąø„" + +#~ msgid "PostScript" +#~ msgstr "ą¹ąøąøŖąøą¹ąøŖąøąø£ąø“ąøąøą¹" + +#~ msgid "Interpreter failed." +#~ msgstr "ąøąø±ąø§ąøąøµąøąø§ąø²ąø”ąø„ą¹ąø”ą¹ąø«ąø„ąø§" + +#~ msgid "Failed to get info for document" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøąøąøąø“ąøą¹ąøąøąøŖąø²ąø£ą¹ąøą¹" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ąøąøąø“ąø MIME ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąø: ā%sā" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøąøąø²ąø£ąøŖąø£ą¹ąø²ąø PDF" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ąøąøøąøą¹ąøą¹ąøąø¢ąø²ąø¢ąø²ąø”ąøąø“ąø”ąøą¹ą¹ąøąø¢ą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ąøąøµą¹ą¹ąøą¹ą¹ąøąø£ą¹ąø§ąøąø£ą¹ ā%sā ą¹ąøąø£ą¹ąøąø£ąø”ąøąøµą¹ąøą¹ąøąøąøąø²ąø£ą¹ąøąø£ą¹ąø§ąøąø£ą¹ą¹ąøąø£ąø·ą¹ąøąøąøąø“ąø”ąøą¹ą¹ąøąø " +#~ "PostScript" + +#~ msgid "Pages" +#~ msgstr "ąø«ąøą¹ąø²" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "URI ą¹ąøą¹ąøąø²ąø£ą¹ąø”ą¹ą¹ąøą¹: ā%sā" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąø URI: ā%sā" + +#~ msgid "Error: dvipdfm exited with non-zero status." +#~ msgstr "ąøąø“ąøąøąø„ąø²ąø: dvipdfm ąøąøąøąø²ąø£ąøąø³ąøąø²ąøąøą¹ąø§ąø¢ąøą¹ąø²ąøąøµą¹ą¹ąø”ą¹ą¹ąøą¹ąøØąø¹ąøąø¢ą¹" + +#~ msgid "Images" +#~ msgstr "ąø£ąø¹ąøąø ąø²ąø" + +#~ msgid "Open ā%sā" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąø ā%sā" + +#~ msgid "Empty" +#~ msgstr "ą¹ąø”ą¹ąø”ąøµ" + +#~ msgid "No document loaded." +#~ msgstr "ą¹ąøąøąøŖąø²ąø£ą¹ąø”ą¹ąøąø¹ąøąøą¹ąø²ąø" + +#~ msgid "File is not readable." +#~ msgstr "ą¹ąøą¹ąø”ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøą¹ąøą¹" + +#~ msgid "Document loaded." +#~ msgstr "ąøą¹ąø²ąøą¹ąø£ąøµąø¢ąøą¹ąøąøąøŖąø²ąø£ą¹ąø£ąøµąø¢ąøąø£ą¹ąøąø¢" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "Broken pipe." +#~ msgstr "ą¹ąøąøą¹ąøąø±ąø" + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ąøąø¢ąø²ąø¢ąøąø²ąø£ąøąøµąøąøąø±ąøą¹ąøą¹ąø” ā%sā:\n" + +#~ msgid "unexpected EOF\n" +#~ msgstr "ąøąø EOF ąøąø„ąø²ąøąøąø±ąø\n" + +#~ msgid "could not load font `%s'\n" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøą¹ąøąøąøąø±ąøąø©ąø£ `%s'\n" + +#~ msgid "could not reload `%s'\n" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąø£ąøµąø¢ąø `%s' ą¹ąø«ąø”ą¹\n" + +#~ msgid "%s: unsupported DVI format (version %u)\n" +#~ msgstr "%s: ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøąøąøąø£ą¹ą¹ąø”ąø DVI (ąø£ąøøą¹ąø %u)\n" + +#~ msgid "no pages selected\n" +#~ msgstr "ą¹ąø”ą¹ą¹ąøą¹ą¹ąø„ąø·ąøąøąø«ąøą¹ąø²ą¹ąøą¹ąø§ą¹\n" + +#~ msgid "%s: File corrupted, or not a DVI file\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąø”ąøµąøąø±ąøąø«ąø² ąø«ąø£ąø·ąøą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø”ą¹ąøąø DVI\n" + +#~ msgid "%s: vf macro had errors\n" +#~ msgstr "%s: vf macro ąøąø“ąøąøąø„ąø²ąø\n" + +#~ msgid "%s: stack not empty after vf macro\n" +#~ msgstr "%s: ąøŖą¹ąøą¹ąøąø”ąøµąøą¹ąøąø”ąø¹ąø„ąøą¹ąø²ąøąø«ąø„ąø±ąøąøąø vf macro\n" + +#~ msgid "%s: could not reopen file (%s)\n" +#~ msgstr "%s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø“ąøą¹ąøą¹ąø” (%s) ą¹ąø«ąø”ą¹ą¹ąøą¹\n" + +#~ msgid "%s: page %d out of range\n" +#~ msgstr "%s: ąø«ąøą¹ąø² %d ąøąøąøąøąøąøąøą¹ąø§ąø\n" + +#~ msgid "%s: bad offset at page %d\n" +#~ msgstr "%s: ąøąøąøą¹ąøą¹ąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąøąøąøµą¹ąø«ąøą¹ąø² %d\n" + +#~ msgid "stack not empty at end of page\n" +#~ msgstr "ąøŖą¹ąøą¹ąøąø”ąøµąøą¹ąøąø”ąø¹ąø„ąøą¹ąø²ąøąø«ąø„ąø±ąøąøąøąø«ąøą¹ąø²\n" + +#~ msgid "no default font set yet\n" +#~ msgstr "ą¹ąø”ą¹ą¹ąøą¹ąøąø±ą¹ąøą¹ąøąøąøąø±ąøąø©ąø£ąøąø£ąø“ąø¢ąø²ąø¢ą¹ąø§ą¹\n" + +#~ msgid "requested character %d does not exist in `%s'\n" +#~ msgstr "ąøąø±ąø§ąøąø±ąøąø©ąø£ %d ąøąøµą¹ąøą¹ąøąøąøąø²ąø£ ą¹ąø”ą¹ąøąø£ąø²ąøąøą¹ąø `%s'\n" + +#~ msgid "enlarging stack\n" +#~ msgstr "ąøąø³ąø„ąø±ąøąøąø¢ąø²ąø¢ąøąøąø²ąøąøŖą¹ąøą¹ąø\n" + +#~ msgid "stack underflow\n" +#~ msgstr "ąøŖą¹ąøą¹ąøą¹ąø”ą¹ąø”ąøµąøą¹ąøąø”ąø¹ąø„ą¹ąø«ą¹ąøą¹ąø²ąø\n" + +#~ msgid "font %d is not defined\n" +#~ msgstr "ą¹ąø”ą¹ą¹ąøą¹ąøąø³ąø«ąøąøą¹ąøąøąøąø±ąøąø©ąø£ %d\n" + +#~ msgid "font %d is not defined in postamble\n" +#~ msgstr "ą¹ąø”ą¹ą¹ąøą¹ąøąø³ąø«ąøąøąøąøąøąøą¹ %d ą¹ąø postamble\n" + +#~ msgid "unexpected opcode %d\n" +#~ msgstr "opcode %d ąøąø“ąøąøąø³ą¹ąø«ąøą¹ąø\n" + +#~ msgid "undefined opcode %d\n" +#~ msgstr "opcode %d ą¹ąø”ą¹ąø£ąø¹ą¹ąøąø±ąø\n" + +#~ msgid "%s: no fonts defined\n" +#~ msgstr "%s: ą¹ąø”ą¹ą¹ąøą¹ąøąø³ąø«ąøąøą¹ąøąøąøąø±ąøąø©ąø£ą¹ąø§ą¹\n" + +#~ msgid "%s: %d: [%s] requested encoding `%s' does not match vector `%s'\n" +#~ msgstr "%s: %d: [%s] ąø£ąø«ąø±ąøŖąøąø±ąøąøąø£ąø° `%s' ąøąøµą¹ąø£ą¹ąøąøąøąø ą¹ąø”ą¹ąøąø£ąøąøąø±ąøą¹ąø§ąøą¹ąøąøąø£ą¹ `%s'\n" + +#~ msgid "%s: could not load fontmap\n" +#~ msgstr "%s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąø fontmap\n" + +#~ msgid "%s: could not set as default encoding\n" +#~ msgstr "%s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ą¹ąøą¹ąøą¹ąøąø£ąø«ąø±ąøŖąøąø±ąøąøąø£ąø°ąøąø£ąø“ąø¢ąø²ąø¢\n" + +#~ msgid "encoding vector `%s' is in use\n" +#~ msgstr "ą¹ąø§ąøą¹ąøąøąø£ą¹ąø£ąø«ąø±ąøŖąøąø±ąøąøąø£ąø° `%s' ąøąø³ąø„ąø±ąøą¹ąøą¹ąøąø²ąøąøąø¢ąø¹ą¹\n" + +#~ msgid "GF: invalid opcode %d in character %d\n" +#~ msgstr "GF: opcode %d ą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąøą¹ąøąøąø±ąøąøąø£ąø° %d\n" + +#~ msgid "(gf) Character %d: invalid opcode %d\n" +#~ msgstr "(gf) ąøąø±ąøąøąø£ąø° %d: opcode %d ą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø\n" + +#~ msgid "(gf) character %d has an incorrect bounding box\n" +#~ msgstr "(gf) ąøąø±ąøąøąø£ąø° %d ąø”ąøµąøąø£ąøąøąø§ąø²ąøą¹ąø”ą¹ąøąø¹ąøąøą¹ąøąø\n" + +#~ msgid "%s: bad checksum (expected %u, found %u)\n" +#~ msgstr "%s: checksum ąøąø“ąøąøąø„ąø²ąø (ąøą¹ąøąøąøąø²ąø£ %u ą¹ąøą¹ąøąø %u)\n" + +#~ msgid "%s: junk in postamble\n" +#~ msgstr "%s: ąø”ąøµąøąø¢ąø°ą¹ąø postamble\n" + +#~ msgid "%s: File corrupted, or not a GF file\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąø”ąøµąøąø±ąøąø«ąø² ąø«ąø£ąø·ąøą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø”ą¹ąøąø GF\n" + +#~ msgid "garbage after DVI page specification ignored\n" +#~ msgstr "ąøąø°ąø„ąø°ą¹ąø„ąø¢ąøąø¢ąø°ąø«ąø„ąø±ąøąøą¹ąøąøąø³ąø«ąøąøąø«ąøą¹ąø²ąøąøąø DVI\n" + +#~ msgid "more than 10 counters in page specification\n" +#~ msgstr "more than 10 counters in page specification\n" + +#~ msgid "garbage after TeX page specification ignored\n" +#~ msgstr "ąøąø°ąø„ąø°ą¹ąø„ąø¢ąøąø¢ąø°ąø«ąø„ąø±ąøąøą¹ąøąøąø³ąø«ąøąøąø«ąøą¹ąø²ąøąøąø TeX\n" + +#~ msgid "custom" +#~ msgstr "ąøąø³ąø«ąøąøą¹ąøąø" + +#~ msgid "Bad PK file: More bits than required\n" +#~ msgstr "ą¹ąøą¹ąø” PK ąøąø“ąøąøąø„ąø²ąø: ąø”ąøµąøąø³ąøąø§ąøąøąø“ąøąø”ąø²ąøąøąø§ą¹ąø²ąøąøµą¹ąøą¹ąøąøąøąø²ąø£\n" + +#~ msgid "%s: checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s: checksum ą¹ąø”ą¹ąøąø£ąø (ąøą¹ąøąøąøąø²ąø£ %u ą¹ąøą¹ą¹ąøą¹ %u)\n" + +#~ msgid "%s: unexpected preamble\n" +#~ msgstr "%s: ąøąø postamble ąøąøµą¹ą¹ąø”ą¹ąøą¹ąøąøąøąø²ąø£\n" + +#~ msgid "%s: unexpected end of file (no postamble)\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąøąøąøąø„ąø²ąøąøąø±ąø (ą¹ąø”ą¹ąø”ąøµ postamble)\n" + +#~ msgid "invalid PK file! (junk in postamble)\n" +#~ msgstr "ą¹ąøą¹ąø” PK ąøąø“ąøąøąø„ąø²ąø! (ąø”ąøµąøąø¢ąø°ą¹ąø postamble)\n" + +#~ msgid "%s: File corrupted, or not a PK file\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąø”ąøµąøąø±ąøąø«ąø² ąø«ąø£ąø·ąøą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø”ą¹ąøąø PK\n" + +#~ msgid "%s: malformed value for key `%s'\n" +#~ msgstr "%s: ąø£ąø¹ąøą¹ąøąøąøąø“ąøąøąø„ąø²ąøą¹ąøąøąøµąø¢ą¹ `%s'\n" + +#~ msgid "%s: unknown key `%s' ignored\n" +#~ msgstr "%s: ąøąø°ąø„ąø°ą¹ąø„ąø¢ąøąøµąø¢ą¹ `%s' ąøąø¶ą¹ąøą¹ąø”ą¹ąø£ąø¹ą¹ąøąø±ąø\n" + +#~ msgid "%s: no argument for key `%s', using defaults\n" +#~ msgstr "%s: ą¹ąø”ą¹ąø”ąøµąøąø²ąø£ą¹ąøąø“ąø§ą¹ąø”ąøąøą¹ąøŖąø³ąø«ąø£ąø±ąøąøąøµąø¢ą¹ `%s' ąøąø°ą¹ąøą¹ąøą¹ąø²ąøąø£ąø“ąø¢ąø²ąø¢\n" + +#~ msgid "%s: argument `%s' ignored for key `%s'\n" +#~ msgstr "%s: ąøąø°ąø„ąø°ą¹ąø„ąø¢ąøąø²ąø£ą¹ąøąø“ąø§ą¹ąø”ąøąøą¹ `%s' ąøŖąø³ąø«ąø£ąø±ąøąøąøµąø¢ą¹ `%s'\n" + +#~ msgid "%s: tried to pop top level layer\n" +#~ msgstr "%s: ąøąø¢ąø²ąø¢ąø²ąø”ąøąø° pop ą¹ąø„ą¹ąø¢ąøąø£ą¹ąøąøąøŖąøøąø\n" + +#~ msgid "(t1) failed to reset device resolution\n" +#~ msgstr "(t1) ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø±ą¹ąøąøą¹ąø²ąøąø§ąø²ąø”ąø„ąø°ą¹ąøąøµąø¢ąøąøąøąøąøąøøąøąøąø£ąøą¹ą¹ąø«ąø”ą¹ą¹ąøą¹\n" + +#~ msgid "%s: could not encode font\n" +#~ msgstr "%s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąø„ąøąø£ąø«ąø±ąøŖąøąø±ąøąøąø£ąø°ą¹ąøąøąøąø±ąøąø©ąø£\n" + +#~ msgid "(t1) unsupported bitmap pad size %d\n" +#~ msgstr "(t1) ą¹ąø”ą¹ąø£ąøąøąø£ąø±ąøąøąøąø²ąøą¹ąøąø“ąø”ą¹ąøą¹ąø”ąøąø“ąøą¹ąø”ąø %d\n" + +#~ msgid "%s: Checksum mismatch (got %u, expected %u)\n" +#~ msgstr "%s: checksum ą¹ąø”ą¹ąøąø£ąø (ą¹ąøą¹ %u ą¹ąøą¹ąøą¹ąøąøąøąø²ąø£ %u)\n" + +#~ msgid "%s: Error reading AFM data\n" +#~ msgstr "%s: ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ąøą¹ąø²ąøą¹ąøą¹ąø” AFM\n" + +#~ msgid "Warning: TFM file `%s' has suspicious size\n" +#~ msgstr "ąøąø³ą¹ąøąø·ąøąø: ą¹ąøą¹ąø” TFM `%s' ąø”ąøµąøąøąø²ąøąøąø“ąøąøąøąøąø“\n" + +#~ msgid "%s: font coding scheme truncated to 40 bytes\n" +#~ msgstr "%s: ą¹ąøąø§ąøąø²ąø£ąø„ąøąø£ąø«ąø±ąøŖą¹ąøąøąøąø±ąøąø©ąø£ąøąø°ąøąø¹ąøąøąø±ąøąøąøąøąø„ąøą¹ąø«ąø„ąø·ąø 40 ą¹ąøąøą¹\n" + +#~ msgid "%s: File corrupted, or not a TFM file\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąø”ąøµąøąø±ąøąø«ąø² ąø«ąø£ąø·ąøą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø”ą¹ąøąø TFM\n" + +#~ msgid "(tt) %s: could not load face: %s\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąø face: %s\n" + +#~ msgid "(tt) %s: could not create face: %s\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøŖąø£ą¹ąø²ąø face: %s\n" + +#~ msgid "(tt) %s: could not create glyph: %s\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøŖąø£ą¹ąø²ąø glyph %s\n" + +#~ msgid "(tt) %s: no acceptable map found, using #0\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøąø map ąøąøµą¹ą¹ąøą¹ą¹ąøą¹ ąøąø°ą¹ąøą¹ #0\n" + +#~ msgid "(tt) %s: could not set resolution: %s\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø³ąø«ąøąøąøąø§ąø²ąø”ąø„ąø°ą¹ąøąøµąø¢ąø: %s\n" + +#~ msgid "(tt) %s: could not set point size: %s\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąø³ąø«ąøąøąøąøąø²ąøąøąøąø¢ąøąøą¹: %s\n" + +#~ msgid "(tt) %s: could not load PS name table\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøąøąø²ąø£ąø²ąøąøąø·ą¹ąø PS\n" + +#~ msgid "%s: no encoding vector found, expect bad output\n" +#~ msgstr "%s: ą¹ąø”ą¹ąøąøą¹ąø§ąøą¹ąøąøąø£ą¹ąø£ąø«ąø±ąøŖąøąø±ąøąøąø£ąø° ąøąø²ąøą¹ąøą¹ąøąø„ąø„ąø±ąøąøą¹ąøąø“ąøąøąø„ąø²ąø\n" + +#~ msgid "(tt) %s: no font metric data\n" +#~ msgstr "(tt) %s: ą¹ąø”ą¹ąøąøąøą¹ąøąø”ąø¹ąø„ąøąø²ąø£ąøąø³ąø«ąøąøąøąøąø²ąøąøą¹ąø²ąøą¹ ą¹ąøą¹ąøąøąøąø±ąøąø©ąø£\n" + +#~ msgid "Crashing" +#~ msgstr "ąøąø±ąø" + +#~ msgid "%s: Error: " +#~ msgstr "%s: ąøąø“ąøąøąø„ąø²ąø: " + +#~ msgid "%s: Warning: " +#~ msgstr "%s: ąøąø³ą¹ąøąø·ąøąø: " + +#~ msgid "%s: Fatal: " +#~ msgstr "%s: ąøąø“ąøąøąø„ąø²ąøąø£ą¹ąø²ąø¢ą¹ąø£ąø: " + +#~ msgid "Fatal" +#~ msgstr "ąøąø“ąøąøąø„ąø²ąøąø£ą¹ąø²ąø¢ą¹ąø£ąø" + +#~ msgid "out of memory allocating %u bytes\n" +#~ msgstr "ąø«ąøą¹ąø§ąø¢ąøąø§ąø²ąø”ąøąø³ą¹ąø”ą¹ąøąøąøŖąø³ąø«ąø£ąø±ąøąøąø²ąø£ąøąøąøą¹ąøąø·ą¹ąøąøąøµą¹ %u ą¹ąøąøą¹\n" + +#~ msgid "attempted to reallocate with zero size\n" +#~ msgstr "ąøąø¢ąø²ąø¢ąø²ąø”ą¹ąøąø„ąøµą¹ąø¢ąøą¹ąøąø·ą¹ąøąøąøµą¹ąøąøąøąøą¹ąø§ąø¢ąøąøąø²ąøąøØąø¹ąøąø¢ą¹\n" + +#~ msgid "failed to reallocate %u bytes\n" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąøąø„ąøµą¹ąø¢ąøą¹ąøąø·ą¹ąøąøąøµą¹ąøąøąøą¹ąøą¹ąø %u ą¹ąøąøą¹\n" + +#~ msgid "attempted to callocate 0 members\n" +#~ msgstr "ąøąø¢ąø²ąø¢ąø²ąø”ąøąø°ąøąøąøąøŖąø”ąø²ąøąø“ąø 0 ąø£ąø²ąø¢ąøąø²ąø£\n" + +#~ msgid "attempted to callocate %u members with size 0\n" +#~ msgstr "ąøąø¢ąø²ąø¢ąø²ąø”ąøąø°ąøąøąøą¹ąøąø·ą¹ąøąøąøµą¹ąøŖąø°ąøąø²ąø (calloc) ą¹ąø«ą¹ąøąø±ąøąøŖąø”ąø²ąøąø“ąø %u ąø£ąø²ąø¢ąøąø²ąø£ ąøą¹ąø§ąø¢ąøąøąø²ąø 0\n" + +#~ msgid "failed to allocate %ux%u bytes\n" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøąøąøą¹ąøąø·ą¹ąøąøąøµą¹ %ux%u ą¹ąøąøą¹\n" + +#~ msgid "attempted to free NULL pointer\n" +#~ msgstr "ąøąø¢ąø²ąø¢ąø²ąø”ąøąø°ąøąø·ąøą¹ąøąø·ą¹ąøąøąøµą¹ąøą¹ąø§ąø¢ąøąøąø¢ąøą¹ą¹ąøąøąø£ą¹ NULL\n" + +#~ msgid "%s: Checksum mismatch (expected %u, got %u)\n" +#~ msgstr "%s: checksum ą¹ąø”ą¹ąøąø£ąø (ąøą¹ąøąøąøąø²ąø£ %u ą¹ąøą¹ą¹ąøą¹ %u)\n" + +#~ msgid "(vf) %s: could not load font `%s'\n" +#~ msgstr "(vf) %s: ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąø²ąøą¹ąøąøąøąø±ąøąø©ąø£ `%s'\n" + +#~ msgid "(vf) %s: character %d redefined\n" +#~ msgstr "(vf) %s: ąøąø±ąøąøąø£ąø° %d ąøąø¹ąøąøąø³ąø«ąøąøąøą¹ąø³\n" + +#~ msgid "(vf) %s: no postamble\n" +#~ msgstr "(vf) %s: ą¹ąø”ą¹ąø”ąøµ postamble\n" + +#~ msgid "%s: File corrupted, or not a VF file.\n" +#~ msgstr "%s: ą¹ąøą¹ąø”ąø”ąøµąøąø±ąøąø«ąø² ąø«ąø£ąø·ąøą¹ąø”ą¹ą¹ąøą¹ą¹ąøą¹ąø”ą¹ąøąø VF\n" + +#~ msgid "_Previous" +#~ msgstr "_ąø¢ą¹ąøąøąøąø„ąø±ąø" + +#~ msgid "_Next" +#~ msgstr "_ąøąø±ąøą¹ąø" + +#~ msgid "Open '%s'" +#~ msgstr "ą¹ąøąø“ąø '%s'" + +#~ msgid "Not found" +#~ msgstr "ą¹ąø”ą¹ąøąø" + +#~ msgid "The \"Find\" feature will not work with this document" +#~ msgstr "ąøąø§ąø²ąø”ąøŖąø²ąø”ąø²ąø£ąø \"ąøą¹ąøąø«ąø²\" ą¹ąøą¹ąøąø±ąøą¹ąøąøąøŖąø²ąø£ąøąøµą¹ą¹ąø”ą¹ą¹ąøą¹" + +#~ msgid "Searching for text is only supported for PDF documents." +#~ msgstr "ąøąø²ąø£ąøą¹ąøąø«ąø²ąøą¹ąøąøąø§ąø²ąø”ą¹ąøą¹ą¹ąøą¹ąøąø±ąøą¹ąøąøąøŖąø²ąø£ą¹ąøąø PDF ą¹ąøą¹ąø²ąøąø±ą¹ąø" + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Show toolbar by default" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąøą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢" + +#~ msgid "" +#~ "Toolbar is the top bar that contains navigation and zoom controls. Two " +#~ "boolean options, true makes toolbar visible by default while false makes " +#~ "toolbar not visible by default." +#~ msgstr "" +#~ "ą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąøą¹ąøą¹ąøą¹ąøąøąøąøµą¹ąøąø¢ąø¹ą¹ąøą¹ąø²ąøąøąø " +#~ "ą¹ąøŖąøąøąøąøøą¹ąø”ą¹ąøąøąø²ąø£ą¹ąø„ąø·ą¹ąøąøą¹ąø„ąø°ąøąø²ąø£ąø¢ą¹ąøąøąø¢ąø²ąø¢ą¹ąøąøąøŖąø²ąø£ąøą¹ąø²ąøąøµą¹ą¹ąøŖą¹ąøąø°ąøąø³ąø«ąøąøąøą¹ąø²ąøąø£ąø“ąø¢ąø²ąø¢ąøąøąøąøąø²ąø£ą¹ąøŖąøąøą¹ąøąøąøŖąøąø²ąøąø° " +#~ "ąøą¹ąø²ąøąø£ąø“ąøąø«ąø”ąø²ąø¢ąøąø¶ąøą¹ąøŖąøąøą¹ąøąøąøą¹ąø²ąøą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢ ąøŖą¹ąø§ąøąøą¹ąø²ą¹ąøą¹ąøąøąø·ąøą¹ąø”ą¹ą¹ąøŖąøąø" + +#~ msgid "Default sidebar size" +#~ msgstr "ąøąøąø²ąøąøąø£ąø“ąø¢ąø²ąø¢ąøąøąøą¹ąøąøąøą¹ąø²ąø" + +#~ msgid "Show sidebar by default" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąøąøą¹ąø²ąøą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢" + +#~ msgid "Show statusbar by default" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąøąøŖąøąø²ąøąø°ą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. The " +#~ "default size sets the sidebar's width in pixels based from the side of " +#~ "the window. Any integer will be accepted. The sidebar will never shrink " +#~ "smaller than the size of the text required to display Thumbnails or " +#~ "Index. Large values will cause the sidebar to take up as much of the page " +#~ "display area as possible relative to the window's size." +#~ msgstr "" +#~ "ą¹ąøąøąøą¹ąø²ąøąø”ąøµąø«ąøą¹ąø²ąøąøµą¹ą¹ąøŖąøąøąø£ąø²ąø¢ąøąø²ąø£ąøąø±ąøąøąøµą¹ąø„ąø°ąø ąø²ąøąøąøąø²ąøąø¢ą¹ąøąøąøąøą¹ąøą¹ąø„ąø°ąø«ąøą¹ąø²ąøąøąø²ąøąøąø£ąø“ąø¢ąø²ąø¢ąøąøąøą¹ąøąøąøą¹ąø²ąøąøąø±ąøą¹ąøą¹ąøąøąø“ąøą¹ąøąø„ąøąø²ąøąøąøąøąø«ąøą¹ąø²ąøą¹ąø²ąøą¹ąøąø¢ą¹ąøŖą¹ą¹ąøą¹ąøą¹ąø„ąøąøąø³ąøąø§ąøą¹ąøą¹ąø” " +#~ "ą¹ąøąøąøą¹ąø²ąøą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøą¹ąø«ą¹ąø¢ą¹ąøą¹ąø„ą¹ąøąøąø§ą¹ąø²ąøąøąø²ąøąøąøąøąøąø±ąø§ąøąø±ąøąø©ąø£ąøąøµą¹ą¹ąøą¹ą¹ąøąøąø²ąø£ą¹ąøŖąøąøąø ąø²ąøąøąøąø²ąøąø¢ą¹ąøąø«ąø£ąø·ąøąøąø±ąøąøąøµąøą¹ąø²ą¹ąøŖą¹ąøą¹ąø²ąøąøµą¹ąø”ąø²ąøą¹ąøąø“ąøą¹ąøąøąø°ąøąø³ą¹ąø«ą¹ą¹ąøąøąøą¹ąø²ąøąøąø“ąøą¹ąøąø·ą¹ąøąøąøµą¹ą¹ąøŖąøąøąøąø„ą¹ąøąøąøŖąø²ąø£ " +#~ "ąøąø¶ą¹ąøąøąø¶ą¹ąøąøąø±ąøąøąøąø²ąøąøąøąøąø«ąøą¹ąø²ąøą¹ąø²ąøąøą¹ąø§ąø¢" + +#~ msgid "" +#~ "Sidebar is the side item that contains the Index and Thumbnail lists. Two " +#~ "boolean options, true makes sidebar visible by default while false makes " +#~ "sidebar not visible by default" +#~ msgstr "" +#~ "ą¹ąøąøąøą¹ąø²ąøąø”ąøµąø«ąøą¹ąø²ąøąøµą¹ą¹ąøŖąøąøąø£ąø²ąø¢ąøąø²ąø£ąøąø±ąøąøąøµą¹ąø„ąø°ąø ąø²ąøąøąøąø²ąøąø¢ą¹ąøąøąøąøą¹ąøą¹ąø„ąø°ąø«ąøą¹ąø²ąøą¹ąø²ąøąøµą¹ą¹ąøŖą¹ąøąø°ąøąø³ąø«ąøąøąøą¹ąø²ąøąø£ąø“ąø¢ąø²ąø¢ąøąøąøąøąø²ąø£ą¹ąøŖąøąøą¹ąøąøąøą¹ąø²ąø " +#~ "ąøą¹ąø²ąøąø£ąø“ąøąø«ąø”ąø²ąø¢ąøąø¶ąøą¹ąøŖąøąøą¹ąøąøąøą¹ąø²ąøą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢ ąøŖą¹ąø§ąøąøą¹ąø²ą¹ąøą¹ąøąøąø·ąøą¹ąø”ą¹ą¹ąøŖąøąø" + +#~ msgid "" +#~ "Statusbar is the standard bottom bar that display additional information " +#~ "about links and other actions. Two boolean options, true makes the " +#~ "statusbar visible by default while false makes sidebar not visible by " +#~ "default." +#~ msgstr "" +#~ "ą¹ąøąøąøŖąøąø²ąøąø°ą¹ąøą¹ąøą¹ąøąøąøąøµą¹ąøąø¢ąø¹ą¹ąøąøąøąø„ą¹ąø²ąøąøąøąøąø«ąøą¹ąø²ąøą¹ąø²ąø " +#~ "ąøąø³ąø«ąøą¹ąø²ąøąøµą¹ą¹ąøŖąøąøąøą¹ąøąø”ąø¹ąø„ą¹ąøąø“ą¹ąø”ą¹ąøąø“ąø”ąøąø·ą¹ąøą¹ąøą¹ąø²ąøąøµą¹ą¹ąøŖą¹ąøąø°ąøąø³ąø«ąøąøąøą¹ąø²ąøąø£ąø“ąø¢ąø²ąø¢ąøąøąøąøąø²ąø£ą¹ąøŖąøąøą¹ąøąøąøŖąøąø²ąøąø° " +#~ "ąøą¹ąø²ąøąø£ąø“ąøąø«ąø”ąø²ąø¢ąøąø¶ąøą¹ąøŖąøąøą¹ąøąøąøą¹ąø²ąøą¹ąøąø¢ąøąø£ąø“ąø¢ąø²ąø¢ ąøŖą¹ąø§ąøąøą¹ąø²ą¹ąøą¹ąøąøąø·ąøą¹ąø”ą¹ą¹ąøŖąøąø" + +#~ msgid "Unable to find glade file" +#~ msgstr "ą¹ąø”ą¹ąøŖąø²ąø”ąø²ąø£ąøąøą¹ąøąø«ąø²ą¹ąøą¹ąø” glade" + +#~ msgid "" +#~ "The glade file, %s, cannot be found. Please check that your installation " +#~ "is complete." +#~ msgstr "ą¹ąø”ą¹ąøąøą¹ąøą¹ąø”ąøąøąø glade, %s ąøąø£ąøøąøąø²ąøąø£ąø§ąøąøŖąøąøąøąø²ąø£ąøąø“ąøąøąø±ą¹ąøą¹ąøąø£ą¹ąøąø£ąø”ąø§ą¹ąø²ąøŖąø”ąøąø¹ąø£ąøą¹ąø«ąø£ąø·ąøą¹ąø”ą¹" + +#~ msgid "Document Viewer - Password Required" +#~ msgstr "ąøąø±ąø§ąøą¹ąø²ąøą¹ąøąøąøŖąø²ąø£ - ąøą¹ąøąøąøąø²ąø£ąø£ąø«ąø±ąøŖąøą¹ąø²ąø" + +#~ msgid "Save the current document with a new filename" +#~ msgstr "ąøąø±ąøąøąø¶ąøą¹ąøąøąøŖąø²ąø£ąøąø±ąøąøąøøąøąø±ąøą¹ąøą¹ąøą¹ąøą¹ąø”ą¹ąø«ąø”ą¹" + +#~ msgid "View the properties of this document" +#~ msgstr "ą¹ąøŖąøąøąøą¹ąøąø”ąø¹ąø„ąøąøøąøąøŖąø”ąøąø±ąøąø“ąøąøąøą¹ąøąøąøŖąø²ąø£ąøąøµą¹" + +#~ msgid "Close this window" +#~ msgstr "ąøąø“ąøąø«ąøą¹ąø²ąøą¹ąø²ąøąøąøµą¹" + +#~ msgid "Copy text from the document" +#~ msgstr "ąøąø±ąøąø„ąøąøąøą¹ąøąøąø§ąø²ąø”ąøąø²ąøą¹ąøąøąøŖąø²ąø£" + +#~ msgid "Select the entire page" +#~ msgstr "ą¹ąø„ąø·ąøąøąøąø±ą¹ąøąø«ąøą¹ąø²" + +#~ msgid "Customize the toolbar" +#~ msgstr "ąøąø£ąø±ąøą¹ąøą¹ąøą¹ąøąøą¹ąøąø£ąø·ą¹ąøąøąø”ąø·ąø" + +#~ msgid "Rotate the document to the left" +#~ msgstr "ąø«ąø”ąøøąøą¹ąøąøąøŖąø²ąø£ą¹ąøąøąø²ąøąøą¹ąø²ąø¢" + +#~ msgid "Rotate the document to the right" +#~ msgstr "ąø«ąø”ąøøąøą¹ąøąøąøŖąø²ąø£ą¹ąøąøąø²ąøąøąø§ąø²" + +#~ msgid "Display help for the viewer application" +#~ msgstr "ą¹ąøŖąøąøąø§ąø“ąøąøµą¹ąøą¹ąøąøąøąøąø±ąø§ąøąø¹ą¹ąøąøąøŖąø²ąø£" + +#~ msgid "Display credits for the document viewer creators" +#~ msgstr "ą¹ąøŖąøąøąø£ąø²ąø¢ąøąø·ą¹ąøąøąø¹ą¹ąøąø±ąøąøąø³ą¹ąøąø£ą¹ąøąø£ąø”" + +#~ msgid "Scroll one page forward" +#~ msgstr "ą¹ąø„ąø·ą¹ąøąøąø«ąøą¹ąø²ą¹ąøąøą¹ąø²ąøąø«ąøą¹ąø²ąø«ąøąø¶ą¹ąøąø«ąøą¹ąø²" + +#~ msgid "Scroll one page backward" +#~ msgstr "ą¹ąø„ąø·ą¹ąøąøąø«ąøą¹ąø²ąøąøąø¢ąø«ąø„ąø±ąøąø«ąøąø¶ą¹ąøąø«ąøą¹ąø²" + +#~ msgid "Go ten pages backward" +#~ msgstr "ąøąøąø¢ą¹ąøąøŖąø“ąøąø«ąøą¹ąø²" + +#~ msgid "Go ten pages forward" +#~ msgstr "ą¹ąøąø“ąøąø«ąøą¹ąø²ą¹ąøąøŖąø“ąøąø«ąøą¹ąø²" + +#~ msgid "_Statusbar" +#~ msgstr "ą¹ąøąøąøŖ_ąøąø²ąøąø°" + +#~ msgid "Show or hide the statusbar" +#~ msgstr "ą¹ąøŖąøąøąø«ąø£ąø·ąøąøą¹ąøąøą¹ąøąøąøŖąøąø²ąøąø°" + +#~ msgid "<span size=\"smaller\"> </span>" +#~ msgstr "<span size=\"smaller\"> </span>" + +#~ msgid "Error while scanning file %s\n" +#~ msgstr "ą¹ąøąø“ąøąøą¹ąøąøąø“ąøąøąø„ąø²ąøąøąøąø°ąøą¹ąø²ąøą¹ąøą¹ąø” %s\n" + +#~ msgid "The file is not a PostScript document." +#~ msgstr "ą¹ąøą¹ąø”ąøąøµą¹ą¹ąø”ą¹ą¹ąøą¹ą¹ąøąøąøŖąø²ąø£ą¹ąøąø PostScript" + +#~ msgid "Reset the zoom level to the default value" +#~ msgstr "ąøąø£ąø±ąøąø£ąø°ąøąø±ąøąøąø²ąø£ąøąø¢ąø²ąø¢ąøąø„ąø±ąøąø”ąø²ąøąøµą¹ąøą¹ąø²ąøąøąøąø“" + +#~ msgid "Single" +#~ msgstr "ąø«ąøą¹ąø²ą¹ąøąøµąø¢ąø§" + +#~ msgid "Show the document one page at a time" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£ąøąø£ąø±ą¹ąøąø„ąø°ąø«ąøą¹ąø²" + +#~ msgid "Multi" +#~ msgstr "ąø«ąø„ąø²ąø¢ąø«ąøą¹ąø²" + +#~ msgid "Show the full document at once" +#~ msgstr "ą¹ąøŖąøąøą¹ąøąøąøŖąø²ąø£ąøąø±ą¹ąøąø«ąø”ąø" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 00000000..f7ed30e3 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,1477 @@ +# Turkish translation for evince +# Copyright (C) 2005 The Mate Foundation +# This file is distributed under the same licence as the evince package. +# +# BĆ¼lent ÅENER <bsener@inonu.edu.tr>, 2005. +# Baris Cicek <baris@teamforce.name.tr>, 2005, 2006. +# Serdar CICEK <serdar@nerd.com.tr>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-09 22:29+0300\n" +"PO-Revision-Date: 2009-09-09 22:28+0300\n" +"Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n" +"Language-Team: Turkish <mate-turk@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:155 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "" +"Ćizgi romanın sıkıÅtırmasını aƧmak iƧin ā%sā komutu baÅlatılırken hata: %s" + +#: ../backend/comics/comics-document.c:169 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "Ćizgi roman sıkıÅtırması aƧmak iƧin ā%sā komutu baÅarısız oldu." + +#: ../backend/comics/comics-document.c:178 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "Komut ā%sā normal olarak bitirilemedi." + +#: ../backend/comics/comics-document.c:225 +#, c-format +msgid "Failed to create a temporary directory." +msgstr "GeƧici dizin oluÅturmak baÅarısız oldu." + +#: ../backend/comics/comics-document.c:347 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Bir Ƨizgi roman MIME tĆ¼rĆ¼ deÄil: %s" + +#: ../backend/comics/comics-document.c:354 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "Bu tĆ¼r Ƨizgi roman sıkıÅtırması aƧmak iƧin uygun komut bulunamıyor" + +#: ../backend/comics/comics-document.c:385 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "Bilinmeyen MIME TĆ¼rĆ¼" + +#: ../backend/comics/comics-document.c:412 +msgid "File corrupted" +msgstr "Dosya bozulmuÅ" + +#: ../backend/comics/comics-document.c:424 +msgid "No files in archive" +msgstr "ArÅivde hiƧbir dosya yok" + +#: ../backend/comics/comics-document.c:465 +#, c-format +msgid "No images found in archive %s" +msgstr "%s arÅivinde hiƧbir resim bulunamadı" + +#: ../backend/comics/comics-document.c:704 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ā%sā silerken hata oldu." + +#: ../backend/comics/comics-document.c:854 +#, c-format +msgid "Error %s" +msgstr "Hata %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Ćizgi Romanlar" + +#: ../backend/djvu/djvu-document.c:174 +msgid "DJVU document has incorrect format" +msgstr "DJVU belgesi geƧersiz biƧime sahip" + +#: ../backend/djvu/djvu-document.c:251 +msgid "" +"The document is composed of several files. One or more of such files cannot " +"be accessed." +msgstr "" +"Belge birkaƧ dosyadan oluÅmuÅ. Bir ya da daha fazla dosyaya eriÅilemiyor." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "Djvu Belgeleri" + +#: ../backend/dvi/dvi-document.c:108 +msgid "DVI document has incorrect format" +msgstr "DVI belgesi geƧersiz biƧime sahip" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI Belgeleri" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:826 +msgid "Yes" +msgstr "Evet" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:829 +msgid "No" +msgstr "Hayır" + +#: ../backend/pdf/ev-poppler.cc:903 +msgid "Type 1" +msgstr "TĆ¼r 1" + +#: ../backend/pdf/ev-poppler.cc:905 +msgid "Type 1C" +msgstr "TĆ¼r 1C" + +#: ../backend/pdf/ev-poppler.cc:907 +msgid "Type 3" +msgstr "TĆ¼r 3" + +#: ../backend/pdf/ev-poppler.cc:909 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:911 +msgid "Type 1 (CID)" +msgstr "TĆ¼r 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:913 +msgid "Type 1C (CID)" +msgstr "TĆ¼r 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:915 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:917 +msgid "Unknown font type" +msgstr "Bilinmeyen yazıtipi tĆ¼rĆ¼" + +#: ../backend/pdf/ev-poppler.cc:943 +msgid "No name" +msgstr "Ä°simsiz" + +#: ../backend/pdf/ev-poppler.cc:951 +msgid "Embedded subset" +msgstr "GƶmĆ¼lĆ¼ alt kĆ¼me" + +#: ../backend/pdf/ev-poppler.cc:953 +msgid "Embedded" +msgstr "GƶmĆ¼lĆ¼" + +#: ../backend/pdf/ev-poppler.cc:955 +msgid "Not embedded" +msgstr "GƶmĆ¼lĆ¼ deÄil" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF Belgeleri" + +#: ../backend/impress/impress-document.c:303 +#: ../backend/tiff/tiff-document.c:114 +msgid "Invalid document" +msgstr "GeƧersiz dƶkĆ¼man" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress Slaytları" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "Hata yok" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "Yeterli hafıza yok" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "Zip imzası bulunamadı" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "GeƧersiz zip dosyası" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "Ćoklu dosyalı zipler desteklenmiyor" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "Dosya aƧılamıyor" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "Dosyadan bilgiler okunamadı" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "Dosya zip arÅivinde bulunamadı" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Bilinmeyen hata" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "\"%s\" belgesi yĆ¼klenirken baÅarısız olundu" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "\"%s\" belgesi yĆ¼klenirken baÅarısız olundu" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript Belgeleri" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "\"%s\" eki kaydedilemedi: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "\"%s\" eki aƧılamadı: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "\"%s\" eki aƧılamadı" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Dosya tĆ¼rĆ¼ %s (%s) desteklenmiyor" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "TĆ¼m Belgeler" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "TĆ¼m Dosyalar" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Dosya geƧerli bir .desktop dosyası deÄil" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Algılanamayan masaĆ¼stĆ¼ dosyası SĆ¼rĆ¼m '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s baÅlatılıyor" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Uygulama komut satırında belgeleri kabul etmiyor" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Algılanamayan baÅlama seƧeneÄi: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Belge URI'leri bir 'TĆ¼r=BaÄ' masaĆ¼stĆ¼ giriÅine geƧilemiyor" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "BaÅlatılabilir bir ƶÄe deÄil" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Oturum yƶneticisine baÄlantıyı kapat" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Kayıtlı yapılandırmayı iƧeren dosyayı belirtin" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:46 +#: ../previewer/ev-previewer.c:47 +msgid "FILE" +msgstr "DOSYA" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Oturum yƶnetim ID'sini belirtin" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Oturum yƶnetim seƧenekleri:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Oturum yƶnetim seƧeneklerini gƶster" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "\"_%s\" Gƶster" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_AraƧ ĆubuÄunda TaÅı" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "SeƧili ƶÄeyi araƧ ƧubuÄu Ć¼zerinde taÅı" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "_AraƧ ĆubuÄundan Kaldır" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "SeƧili ƶÄeyi araƧ ƧubuÄundan kaldır" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "_AraƧ ĆubuÄunu Sil" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "SeƧili araƧ ƧubuÄunu kaldır" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "AyıraƧ" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:117 +msgid "Running in presentation mode" +msgstr "Sunum kipinde ƧalıÅıyor" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5227 +msgid "Best Fit" +msgstr "En Uygun GƶrĆ¼nĆ¼m" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Sayfayı Enine SıÄdır" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "%50" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "%70" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "%85" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "%100" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "%125" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "%150" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "%175" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "%200" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "%300" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "%400" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4149 +#: ../shell/ev-window-title.c:150 ../shell/main.c:484 +#, c-format +msgid "Document Viewer" +msgstr "Belge GƶrĆ¼ntĆ¼leyici" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Ćok sayfalı belgeleri gƶster" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Belge sınırlamalarını deÄiÅtir" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Kopyalama ya da yazdırma gibi belge sınırlarlamalarını deÄiÅtir." + +#: ../previewer/ev-previewer.c:45 +msgid "Delete the temporary file" +msgstr "GeƧici dosyayı sil" + +#: ../previewer/ev-previewer.c:46 +msgid "Print settings file" +msgstr "Ayar dosyasını yazdır" + +#: ../previewer/ev-previewer.c:141 ../previewer/ev-previewer.c:175 +msgid "MATE Document Previewer" +msgstr "MATE Belge Ćnizleyici" + +#: ../previewer/ev-previewer-window.c:122 ../shell/ev-window.c:2891 +msgid "Failed to print document" +msgstr "Belge yazdırılırken baÅarısız olundu." + +#: ../previewer/ev-previewer-window.c:242 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "SeƧilen yazıcı '%s' bulunamadı" + +#. Go menu +#: ../previewer/ev-previewer-window.c:286 ../shell/ev-window.c:4986 +msgid "_Previous Page" +msgstr "_Ćnceki Sayfa" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:4987 +msgid "Go to the previous page" +msgstr "Ćnceki sayfaya git" + +#: ../previewer/ev-previewer-window.c:289 ../shell/ev-window.c:4989 +msgid "_Next Page" +msgstr "S_onraki Sayfa" + +#: ../previewer/ev-previewer-window.c:290 ../shell/ev-window.c:4990 +msgid "Go to the next page" +msgstr "Sonraki sayfaya git" + +#: ../previewer/ev-previewer-window.c:293 ../shell/ev-window.c:4973 +msgid "Enlarge the document" +msgstr "Belgeyi geniÅlet" + +#: ../previewer/ev-previewer-window.c:296 ../shell/ev-window.c:4976 +msgid "Shrink the document" +msgstr "Belgeyi daralt" + +#: ../previewer/ev-previewer-window.c:299 ../shell/ev-print-operation.c:1294 +msgid "Print" +msgstr "Yazdır" + +#: ../previewer/ev-previewer-window.c:300 ../shell/ev-window.c:4945 +msgid "Print this document" +msgstr "Bu belgeyi yazdır" + +#: ../previewer/ev-previewer-window.c:306 ../shell/ev-window.c:5084 +msgid "_Best Fit" +msgstr "_En Uygun GƶrĆ¼nĆ¼m" + +#: ../previewer/ev-previewer-window.c:307 ../shell/ev-window.c:5085 +msgid "Make the current document fill the window" +msgstr "GeƧerli belge pencereyi doldursun" + +#: ../previewer/ev-previewer-window.c:309 ../shell/ev-window.c:5087 +msgid "Fit Page _Width" +msgstr "Sayfayı _Enine SıÄdır" + +#: ../previewer/ev-previewer-window.c:310 ../shell/ev-window.c:5088 +msgid "Make the current document fill the window width" +msgstr "GeƧerli belge geniÅliÄi pencereyi doldursun" + +#: ../previewer/ev-previewer-window.c:441 ../shell/ev-window.c:5151 +msgid "Page" +msgstr "Sayfa" + +#: ../previewer/ev-previewer-window.c:442 ../shell/ev-window.c:5152 +msgid "Select Page" +msgstr "Sayfa SeƧ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "Belge" + +#: ../properties/ev-properties-view.c:59 +msgid "Title:" +msgstr "BaÅlık:" + +#: ../properties/ev-properties-view.c:60 +msgid "Location:" +msgstr "Konum:" + +#: ../properties/ev-properties-view.c:61 +msgid "Subject:" +msgstr "Konu:" + +#: ../properties/ev-properties-view.c:62 +msgid "Author:" +msgstr "Yazan:" + +#: ../properties/ev-properties-view.c:63 +msgid "Keywords:" +msgstr "Anahtar Kelimeler:" + +#: ../properties/ev-properties-view.c:64 +msgid "Producer:" +msgstr "Ćretici:" + +#: ../properties/ev-properties-view.c:65 +msgid "Creator:" +msgstr "OluÅturucu:" + +#: ../properties/ev-properties-view.c:66 +msgid "Created:" +msgstr "OluÅturulma:" + +#: ../properties/ev-properties-view.c:67 +msgid "Modified:" +msgstr "DeÄiÅtirilme:" + +#: ../properties/ev-properties-view.c:68 +msgid "Number of Pages:" +msgstr "Sayfa Sayısı:" + +#: ../properties/ev-properties-view.c:69 +msgid "Optimized:" +msgstr "Optimize:" + +#: ../properties/ev-properties-view.c:70 +msgid "Format:" +msgstr "BiƧim:" + +#: ../properties/ev-properties-view.c:71 +msgid "Security:" +msgstr "GĆ¼venlik:" + +#: ../properties/ev-properties-view.c:72 +msgid "Paper Size:" +msgstr "KaÄıt Boyutu:" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "HiƧbiri" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "varsayılan:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inc" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, DĆ¼Åey (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Yatay (%s)" + +#: ../libmisc/ev-page-action.c:72 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +#: ../libmisc/ev-page-action.c:74 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#: ../libview/ev-jobs.c:958 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "ā%sā: %s belgesi yĆ¼klenirken baÅarısız olundu" + +#: ../libview/ev-jobs.c:1435 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "Sayfa %d yazdırırken baÅarısız oldu: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Yukarı Kaydır" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "AÅaÄı Kaydır" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "GƶrĆ¼nĆ¼mĆ¼ Yukarı Kaydır" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "GƶrĆ¼nĆ¼mĆ¼ AÅaÄı Kaydır" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Belge GƶrĆ¼nĆ¼mĆ¼" + +#: ../libview/ev-view.c:1466 +msgid "Go to first page" +msgstr "Ä°lk sayfaya git" + +#: ../libview/ev-view.c:1468 +msgid "Go to previous page" +msgstr "Ćnceki sayfaya git" + +#: ../libview/ev-view.c:1470 +msgid "Go to next page" +msgstr "Sonraki sayfaya git" + +#: ../libview/ev-view.c:1472 +msgid "Go to last page" +msgstr "Son sayfaya git" + +#: ../libview/ev-view.c:1474 +msgid "Go to page" +msgstr "Sayfaya git" + +#: ../libview/ev-view.c:1476 +msgid "Find" +msgstr "Bul" + +#: ../libview/ev-view.c:1504 +#, c-format +msgid "Go to page %s" +msgstr "%s sayfasına git" + +#: ../libview/ev-view.c:1510 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "\"%2$s\" dosyasındaki %1$s konumuna git" + +#: ../libview/ev-view.c:1513 +#, c-format +msgid "Go to file ā%sā" +msgstr "\"%s\" dosyasına git" + +#: ../libview/ev-view.c:1521 +#, c-format +msgid "Launch %s" +msgstr "%s baÅlat" + +#: ../libview/ev-view.c:2783 +msgid "End of presentation. Press Escape to exit." +msgstr "Sunumun sonu. ĆıkıŠiƧin Esc'ye basın." + +#: ../libview/ev-view.c:3722 +msgid "Jump to page:" +msgstr "Sayfaya git:" + +#: ../libview/ev-view.c:4004 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "YĆ¼kleniyor..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Arama dizgisi" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "Bulunması gereken dizginin ismi" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "BĆ¼yĆ¼k/kĆ¼Ć§Ć¼k harf duyarlı" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "BĆ¼yĆ¼k/kĆ¼Ć§Ć¼k harfe duyarlı aramak iƧin TRUE" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "Ä°Åaretleme rengi" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "TĆ¼m eÅlemeker iƧin iÅaretleme rengi" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "GeƧerli renk" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "GeƧerli eÅleÅme iƧin iÅaretleme rengi" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "Bul:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:4962 +msgid "Find Pre_vious" +msgstr "Ć_ncekini Bul" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "Arama dizgisinin bulunduÄu bir ƶnceki yeri bul" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:4960 +msgid "Find Ne_xt" +msgstr "Sonrakini B_ul" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "Arama dizgisinin bulunduÄu bir sonraki yeri bul" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "BĆ¼_yĆ¼k/KĆ¼Ć§Ć¼k Harf Duyarlı" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "BĆ¼yĆ¼k/kĆ¼Ć§Ć¼k harfe duyarlı arama seƧimi" + +#: ../shell/ev-application.c:309 +msgid "Recover previous documents?" +msgstr "Ćnceki belge kurtarılsın mı?" + +#: ../shell/ev-application.c:312 +msgid "" +"Evince appears to have exited unexpectedly the last time it was run. You can " +"recover the opened documents." +msgstr "" +"Evince son ƧalıÅtırıldıÄı zaman beklenmeyen bir Åekilde ƧıkmıŠgibi " +"gƶrĆ¼nĆ¼yor. AƧılan belgeleri kurtarabilirsiniz." + +#: ../shell/ev-application.c:316 +msgid "_Don't Recover" +msgstr "_Kurtarma" + +#: ../shell/ev-application.c:319 +msgid "_Recover" +msgstr "_Kurtar" + +#: ../shell/ev-application.c:322 +msgid "Crash Recovery" +msgstr "Ćakma Kurtarması" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "%s belgesi iƧin parola" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Mevcut bir belgeyi aƧ" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "Bu belge kilitli ve sadece doÄru parola girilerek okunabilir." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "Belge _Kilidini Kaldır" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Parola girin" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "Parola gerekli" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "\"%s\" belgesi kilitli ve aƧılabilmesi iƧin ƶnce paralo gerekiyor." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Parola:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "_Parolayı hemen unut" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _logout" +msgstr "ĆıkıŠyapana kadar _parolayı hatırla" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "_Her zaman hatırla" + +#. Initial state +#: ../shell/ev-print-operation.c:316 +msgid "Preparing to print ..." +msgstr "Yazdırmaya hazırlanıyor..." + +#: ../shell/ev-print-operation.c:318 +msgid "Finishing..." +msgstr "Tamamlanıyor..." + +#: ../shell/ev-print-operation.c:320 +#, c-format +msgid "Printing page %d of %d..." +msgstr "Yazdırılan sayfa %d / %d..." + +#: ../shell/ev-print-operation.c:1143 +msgid "Printing is not supported on this printer." +msgstr "Bu yazıcıda yazdırmayı desteklenmiyor." + +#: ../shell/ev-print-operation.c:1208 +msgid "Invalid page selection" +msgstr "GeƧersiz sayfa seƧimi" + +#: ../shell/ev-print-operation.c:1209 +msgid "Warning" +msgstr "Uyarı" + +#: ../shell/ev-print-operation.c:1211 +msgid "Your print range selection does not include any page" +msgstr "Yazdırma aralıÄı seƧiminiz hiƧbir sayfa iƧermiyor" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "Ćzellikler" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "Genel" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "Yazıtipleri" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "Yazıtipi" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Yazıtipi bilgisi alınıyor... %%%3d" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "Ekler" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "Katmanlar" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "Yazdır..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "İƧindekiler" + +#: ../shell/ev-sidebar-thumbnails.c:756 +msgid "Thumbnails" +msgstr "KĆ¼Ć§Ć¼k Resimler" + +#: ../shell/ev-window.c:829 +#, c-format +msgid "Page %s - %s" +msgstr "Sayfa %s - %s" + +#: ../shell/ev-window.c:831 +#, c-format +msgid "Page %s" +msgstr "Sayfa %s" + +#: ../shell/ev-window.c:1256 +msgid "The document contains no pages" +msgstr "Belge hiƧbir sayfa iƧermiyor" + +#: ../shell/ev-window.c:1259 +msgid "The document contains only empty pages" +msgstr "Belge sadece boÅ sayfaları iƧeriyor" + +#: ../shell/ev-window.c:1488 ../shell/ev-window.c:1647 +msgid "Unable to open document" +msgstr "Belge aƧılamadı" + +#: ../shell/ev-window.c:1618 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ā%sā konumundan belge yĆ¼kleniyor" + +#: ../shell/ev-window.c:1756 ../shell/ev-window.c:1939 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Belge indiriliyor (%%%d)" + +#: ../shell/ev-window.c:1886 +#, c-format +msgid "Reloading document from %s" +msgstr "Belge %s konumundan yeniden yĆ¼kleniyor" + +#: ../shell/ev-window.c:1918 +msgid "Failed to reload document." +msgstr "Belge yeniden yĆ¼klenirken baÅarısız oldu." + +#: ../shell/ev-window.c:2071 +msgid "Open Document" +msgstr "Belge AƧ" + +#: ../shell/ev-window.c:2150 +#, c-format +msgid "Couldn't create symlink ā%sā: " +msgstr "ā%sā sembolik baÄı oluÅturulamadı: " + +#: ../shell/ev-window.c:2177 +msgid "Cannot open a copy." +msgstr "Bir kopya aƧılamıyor." + +#: ../shell/ev-window.c:2413 +#, c-format +msgid "Saving document to %s" +msgstr "Belge %s konumuna kaydediliyor" + +#: ../shell/ev-window.c:2416 +#, c-format +msgid "Saving attachment to %s" +msgstr "Ek %s konumuna kaydediliyor" + +#: ../shell/ev-window.c:2419 +#, c-format +msgid "Saving image to %s" +msgstr "Resim %s konumuna kaydediliyor" + +#: ../shell/ev-window.c:2463 ../shell/ev-window.c:2560 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "Dosya ā%sā olarak kaydedilemedi." + +#: ../shell/ev-window.c:2491 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Belge gƶnderiliyor (%%%d)" + +#: ../shell/ev-window.c:2495 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Ek gƶnderiliyor (%%%d)" + +#: ../shell/ev-window.c:2499 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Resim gƶnderiliyor (%%%d)" + +#: ../shell/ev-window.c:2621 +msgid "Save a Copy" +msgstr "Bir Kopya Kaydet" + +#: ../shell/ev-window.c:2835 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d sırada bekleyen gƶrev" + +#: ../shell/ev-window.c:2948 +#, c-format +msgid "Printing job ā%sā" +msgstr "Printing job ā%sā" + +#: ../shell/ev-window.c:3155 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Kapatmadan ƶnce yazdırma gƶrevi ā%sā tamamlanması beklensin mi?" + +#: ../shell/ev-window.c:3158 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"Etkin %d yazdırma gƶrevi var. Kapatmadan ƶnce yazdırmaların bitmesi " +"beklensin mi?" + +#: ../shell/ev-window.c:3170 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"EÄer pencereyi kapatırsanız bekleyen yazdırma gƶrevleri yazdırılmayacak." + +#: ../shell/ev-window.c:3174 +msgid "Cancel _print and Close" +msgstr "_Yazdırmayı Ä°ptal Et ve Kapat" + +#: ../shell/ev-window.c:3178 +msgid "Close _after Printing" +msgstr "Yazdırdıktan _sonra Kapat" + +#: ../shell/ev-window.c:3784 +msgid "Toolbar Editor" +msgstr "AraƧ ĆubuÄu DĆ¼zenleyicisi" + +#: ../shell/ev-window.c:3915 +msgid "There was an error displaying help" +msgstr "Yardım gƶsterilirken bir hata oluÅtu" + +#: ../shell/ev-window.c:4145 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"DƶkĆ¼man GƶrĆ¼ntĆ¼leyicisi.\n" +"Kullanılan poppler %s (%s) " + +#: ../shell/ev-window.c:4174 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ƶzgĆ¼r yazılımdır; onu ĆzgĆ¼r Yazılım Vakfı tarafındanyayınlanan GNU " +"Genel Kamul Lisansı 2. sĆ¼rĆ¼mĆ¼ ya da (tercihen) daha sonraki sĆ¼rĆ¼mleri " +"koÅullarında yeniden daÄıtabilir ya dadeÄistirebilirsiniz.\n" + +#: ../shell/ev-window.c:4178 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince kullanıÅlı olması umuduyla daÄıtılmaktadır,ama herhangi bir GARANTÄ° " +"iƧermez, SATILABÄ°LÄ°RLÄ°Kya da HERHANGÄ° BÄ°R AMACA UYGUNLUK iƧin GARANTÄ° ima " +"etmez.Ayrıntılı bilgi iƧin GNU Genel Kamu Lisansını inceleyin.\n" + +#: ../shell/ev-window.c:4182 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Evince ile GNU Genel Kamul Lisansının bir kopyası almıŠolmalısınız.EÄer " +"yoksa bu adrese bir yazı ile bildirin: Free Software Foundation, Inc.,59 " +"Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4206 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4209 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince geliÅtiricileri" + +#: ../shell/ev-window.c:4215 +msgid "translator-credits" +msgstr "Serdar ĆiƧek <serdar@nerd.com.tr>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4433 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "Bu sayfada %d bulundu" + +#: ../shell/ev-window.c:4441 +#, c-format +msgid "%3d%% remaining to search" +msgstr "Arama iƧin %%%2d kaldı" + +#: ../shell/ev-window.c:4925 +msgid "_File" +msgstr "_Dosya" + +#: ../shell/ev-window.c:4926 +msgid "_Edit" +msgstr "DĆ¼_zen" + +#: ../shell/ev-window.c:4927 +msgid "_View" +msgstr "_GƶrĆ¼nĆ¼m" + +#: ../shell/ev-window.c:4928 +msgid "_Go" +msgstr "_Git" + +#: ../shell/ev-window.c:4929 +msgid "_Help" +msgstr "_Yardım" + +#. File menu +#: ../shell/ev-window.c:4932 ../shell/ev-window.c:5110 +#: ../shell/ev-window.c:5189 +msgid "_Open..." +msgstr "_AƧ..." + +#: ../shell/ev-window.c:4933 ../shell/ev-window.c:5190 +msgid "Open an existing document" +msgstr "Mevcut bir belgeyi aƧ" + +#: ../shell/ev-window.c:4935 +msgid "Op_en a Copy" +msgstr "B_ir Kopya AƧ" + +#: ../shell/ev-window.c:4936 +msgid "Open a copy of the current document in a new window" +msgstr "Mevcut belgenin bir kopyasını yeni bir pencerede aƧ" + +#: ../shell/ev-window.c:4938 ../shell/ev-window.c:5112 +msgid "_Save a Copy..." +msgstr "_Bir Kopya Kaydet..." + +#: ../shell/ev-window.c:4939 +msgid "Save a copy of the current document" +msgstr "Mevcut belgenin bir kopyasını kaydet" + +#: ../shell/ev-window.c:4941 +msgid "Page Set_up..." +msgstr "Sayfa _Ayarı..." + +#: ../shell/ev-window.c:4942 +msgid "Setup the page settings for printing" +msgstr "Yazdırma iƧin sayfa ayarlarını dĆ¼zenle" + +#: ../shell/ev-window.c:4944 +msgid "_Print..." +msgstr "_Yazdır..." + +#: ../shell/ev-window.c:4947 +msgid "P_roperties" +msgstr "Ć_zellikler" + +#: ../shell/ev-window.c:4955 +msgid "Select _All" +msgstr "TĆ¼_mĆ¼nĆ¼ SeƧ" + +#: ../shell/ev-window.c:4957 +msgid "_Find..." +msgstr "_Bul..." + +#: ../shell/ev-window.c:4958 +msgid "Find a word or phrase in the document" +msgstr "Bir sƶzcĆ¼ÄĆ¼ ya da tamlamayı belgede ara" + +#: ../shell/ev-window.c:4964 +msgid "T_oolbar" +msgstr "_AraƧ ĆubuÄu" + +#: ../shell/ev-window.c:4966 +msgid "Rotate _Left" +msgstr "_Sola Ćevir" + +#: ../shell/ev-window.c:4968 +msgid "Rotate _Right" +msgstr "S_aÄa Ćevir" + +#: ../shell/ev-window.c:4978 +msgid "_Reload" +msgstr "_Yeniden YĆ¼kle" + +#: ../shell/ev-window.c:4979 +msgid "Reload the document" +msgstr "Belgeyi yeniden yĆ¼kle" + +#: ../shell/ev-window.c:4982 +msgid "Auto_scroll" +msgstr "Otomatik k_aydır" + +#: ../shell/ev-window.c:4992 +msgid "_First Page" +msgstr "_Ä°lk Sayfa" + +#: ../shell/ev-window.c:4993 +msgid "Go to the first page" +msgstr "Ä°lk sayfaya git" + +#: ../shell/ev-window.c:4995 +msgid "_Last Page" +msgstr "_Son Sayfa" + +#: ../shell/ev-window.c:4996 +msgid "Go to the last page" +msgstr "Son sayfaya git" + +#. Help menu +#: ../shell/ev-window.c:5000 +msgid "_Contents" +msgstr "_İƧindekiler" + +#: ../shell/ev-window.c:5003 +msgid "_About" +msgstr "_Hakkında" + +#. Toolbar-only +#: ../shell/ev-window.c:5007 +msgid "Leave Fullscreen" +msgstr "Tam Ekranı Terket" + +#: ../shell/ev-window.c:5008 +msgid "Leave fullscreen mode" +msgstr "Tam ekran kipini terket" + +#: ../shell/ev-window.c:5010 +msgid "Start Presentation" +msgstr "Sunum BaÅlat" + +#: ../shell/ev-window.c:5011 +msgid "Start a presentation" +msgstr "Bir sunum baÅlat" + +#. View Menu +#: ../shell/ev-window.c:5066 +msgid "_Toolbar" +msgstr "_AraƧ ĆubuÄu" + +#: ../shell/ev-window.c:5067 +msgid "Show or hide the toolbar" +msgstr "AraƧ ƧubuÄunu gizle ya da gƶster" + +#: ../shell/ev-window.c:5069 +msgid "Side _Pane" +msgstr "Yan _Panel" + +#: ../shell/ev-window.c:5070 +msgid "Show or hide the side pane" +msgstr "Yan paneli gƶster ya da gizle" + +#: ../shell/ev-window.c:5072 +msgid "_Continuous" +msgstr "_Ardarda" + +#: ../shell/ev-window.c:5073 +msgid "Show the entire document" +msgstr "TĆ¼m belgeyi gƶster" + +#: ../shell/ev-window.c:5075 +msgid "_Dual" +msgstr "_Ä°kili" + +#: ../shell/ev-window.c:5076 +msgid "Show two pages at once" +msgstr "Bir defada iki sayfa gƶster" + +#: ../shell/ev-window.c:5078 +msgid "_Fullscreen" +msgstr "_Tam ekran" + +#: ../shell/ev-window.c:5079 +msgid "Expand the window to fill the screen" +msgstr "Pencereyi, ekranı dolduracak kadar geniÅlet" + +#: ../shell/ev-window.c:5081 +msgid "Pre_sentation" +msgstr "_Sunum" + +#: ../shell/ev-window.c:5082 +msgid "Run document as a presentation" +msgstr "Belgeyi sunum olarak ƧalıÅtır" + +#. Links +#: ../shell/ev-window.c:5095 +msgid "_Open Link" +msgstr "_BaÄ AƧ" + +#: ../shell/ev-window.c:5097 +msgid "_Go To" +msgstr "_Git" + +#: ../shell/ev-window.c:5099 +msgid "Open in New _Window" +msgstr "Yeni _Pencerede AƧ" + +#: ../shell/ev-window.c:5101 +msgid "_Copy Link Address" +msgstr "_BaÄ Adresini Kopyala" + +#: ../shell/ev-window.c:5103 +msgid "_Save Image As..." +msgstr "_Resmi Farklı Kaydet..." + +#: ../shell/ev-window.c:5105 +msgid "Copy _Image" +msgstr "Resmi K_opyala" + +#: ../shell/ev-window.c:5163 +msgid "Zoom" +msgstr "Yakınlık" + +#: ../shell/ev-window.c:5165 +msgid "Adjust the zoom level" +msgstr "Yakınlık seviyesini ayarla" + +#: ../shell/ev-window.c:5175 +msgid "Navigation" +msgstr "DolaÅma" + +#: ../shell/ev-window.c:5177 +msgid "Back" +msgstr "Geri" + +#. translators: this is the history action +#: ../shell/ev-window.c:5180 +msgid "Move across visited pages" +msgstr "Gezilen sayfalara taÅı" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5210 +msgid "Previous" +msgstr "Ćnceki" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5215 +msgid "Next" +msgstr "Sonraki" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5219 +msgid "Zoom In" +msgstr "YakınlaÅtır" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5223 +msgid "Zoom Out" +msgstr "UzaklaÅtır" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5231 +msgid "Fit Width" +msgstr "Enine GeniÅlet" + +#: ../shell/ev-window.c:5398 ../shell/ev-window.c:5414 +msgid "Unable to launch external application." +msgstr "Harici uygulama baÅlatılamadı." + +#: ../shell/ev-window.c:5453 +msgid "Unable to open external link" +msgstr "Harici baÄ aƧılamadı" + +#: ../shell/ev-window.c:5609 +msgid "Couldn't find appropriate format to save image" +msgstr "Resmi kaydetmek iƧin uygun biƧim bulunamadı" + +#: ../shell/ev-window.c:5648 +msgid "The image could not be saved." +msgstr "GƶrĆ¼ntĆ¼ kaydedilemedi." + +#: ../shell/ev-window.c:5680 +msgid "Save Image" +msgstr "GƶrĆ¼ntĆ¼yĆ¼ Kaydet" + +#: ../shell/ev-window.c:5747 +msgid "Unable to open attachment" +msgstr "Ek aƧılamadı" + +#: ../shell/ev-window.c:5798 +msgid "The attachment could not be saved." +msgstr "Ek kaydedilemedi." + +#: ../shell/ev-window.c:5843 +msgid "Save Attachment" +msgstr "Ekleri Kaydet" + +#: ../shell/ev-window-title.c:163 +#, c-format +msgid "%s - Password Required" +msgstr "%s - Parola Gerekli" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Uzantı ile" + +#: ../shell/main.c:73 ../shell/main.c:436 +msgid "MATE Document Viewer" +msgstr "MATE Belge GƶrĆ¼ntĆ¼leyici" + +#: ../shell/main.c:81 +msgid "The page of the document to display." +msgstr "Gƶsterilecek belge sayfası." + +#: ../shell/main.c:81 +msgid "PAGE" +msgstr "SAYFA" + +#: ../shell/main.c:82 +msgid "Run evince in fullscreen mode" +msgstr "Evince'i tam ekran kipinde ƧalıÅtır" + +#: ../shell/main.c:83 +msgid "Run evince in presentation mode" +msgstr "Evince'i sunum kipinde ƧalıÅtır" + +#: ../shell/main.c:84 +msgid "Run evince as a previewer" +msgstr "Evince'i ƶn izleyici olarak ƧalıÅtır" + +#: ../shell/main.c:85 +msgid "The word or phrase to find in the document" +msgstr "Bir sƶzcĆ¼ÄĆ¼ ya da tamlamayı belgede ara" + +#: ../shell/main.c:85 +msgid "STRING" +msgstr "DÄ°ZGÄ°" + +#: ../shell/main.c:89 +msgid "[FILE...]" +msgstr "[DOSYA...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available, true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"Mantıksal deÄerler geƧerlidir, seƧili ise kĆ¼Ć§Ć¼k resimler etkindir ve eÄer " +"seƧili deÄilse kĆ¼Ć§Ć¼k resim oluÅturma devre dıÅı olur" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "PDF Belgelerin kĆ¼Ć§Ć¼k resimlerinin etkinliÄi" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF Belgeleri iƧin kĆ¼Ć§Ć¼k resim komutu" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF Belge kĆ¼Ć§Ć¼k resimleyicisi iƧin geƧerli komut artı parametreleri. Daha " +"fazla bilgi iƧin caja kĆ¼Ć§Ć¼k resimleyici belgesine bakın." diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 00000000..f3c7bcc6 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,1546 @@ +# Ukrainian translation of evince. +# Copyright (C) 2005 Free Software Foundation ,Inc +# This file is distributed under the same license as the evince package. +# Maxim Dziumanenko <dziumanenko@gmail.com>, 2005-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-26 14:08+0200\n" +"PO-Revision-Date: 2010-03-26 23:28+0200\n" +"Last-Translator: Maxim Dziumanenko <dziumanenko@gmail.com>\n" +"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../backend/comics/comics-document.c:160 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŃŠ“ ŃŠ°Ń Š·Š°ŠæŃŃŠŗŃ ŠŗŠ¾Š¼Š°Š½Š“Šø ā%sā Š“Š»Ń ŃŠ¾Š·ŃŠøŃŠŗŠ°Š½Š½Ń ŠŗŠ¾Š¼ŃŠŗŃŃ: %s" + +#: ../backend/comics/comics-document.c:174 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŃŠø Š²ŠøŠŗŠ¾Š½Š°Š½Š½Ń ŠŗŠ¾Š¼Š°Š½Š“Šø ā%sā ŠæŃŠ“ ŃŠ°Ń ŃŠ¾Š·ŃŠøŃŠŗŠ°Š½Š½Ń ŠŗŠ¾Š¼ŃŠŗŃŃ." + +#: ../backend/comics/comics-document.c:183 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° ā%sā Š½Šµ Š·Š°Š²ŠµŃŃŠøŠ»Š°ŃŃ Š½Š°Š»ŠµŠ¶Š½ŠøŠ¼ ŃŠøŠ½Š¾Š¼." + +#: ../backend/comics/comics-document.c:350 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "Š¢ŠøŠæ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ MIME Š½Šµ Š²ŃŠ“Š½Š¾ŃŠøŃŃŃŃ Š“Š¾ ŠŗŠ¾Š¼ŃŠŗŃŃŠ²: %s" + +#: ../backend/comics/comics-document.c:357 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "" +"ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š½Š°Š¹ŃŠø Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Ń ŠŗŠ¾Š¼Š°Š½Š“Ń Š“Š»Ń ŃŠ¾Š·ŃŠøŃŠŗŠ°Š½Š½Ń ŃŃŠ¾Š³Š¾ ŃŠøŠæŃ sŠŗŠ¾Š¼ŃŠŗŃŃŠ²" + +#: ../backend/comics/comics-document.c:395 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ŠŠµŠ²ŃŠ“Š¾Š¼ŠøŠ¹ ŃŠøŠæ MIME" + +#: ../backend/comics/comics-document.c:422 +msgid "File corrupted" +msgstr "Š¤Š°Š¹Š» ŠæŠ¾ŃŠŗŠ¾Š“Š¶ŠµŠ½ŠøŠ¹" + +#: ../backend/comics/comics-document.c:435 +msgid "No files in archive" +msgstr "Š£ Š°ŃŃ ŃŠ²Ń Š½Šµ Š·Š½Š°Š¹Š“ŠµŠ½Š¾ ŃŠ°Š¹Š»ŃŠ²" + +#: ../backend/comics/comics-document.c:474 +#, c-format +msgid "No images found in archive %s" +msgstr "Š£ Š°ŃŃ ŃŠ²Ń %s Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Ń Š½Šµ Š·Š½Š°Š¹Š“ŠµŠ½Š¾." + +#: ../backend/comics/comics-document.c:718 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŃŠø Š²ŠøŠ“Š°Š»ŠµŠ½Š½Ń ā%sā." + +#: ../backend/comics/comics-document.c:850 +#, c-format +msgid "Error %s" +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ŠŠ½ŠøŠ³Šø ŠŗŠ¾Š¼ŃŠŗŃŃŠ²" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń DjVu Š¼Š°Ń Š½ŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠŗŠ»Š°Š“Š°ŃŃŃŃŃ Š· ŠŗŃŠ»ŃŠŗŠ¾Ń ŃŠ°Š¹Š»ŃŠ². ŠŠµ Š¼Š°Ń Š“Š¾ŃŃŃŠæŃ Š“Š¾ Š¾Š“Š½Š¾Š³Š¾ Š°Š±Š¾ ŠŗŃŠ»ŃŠŗŠ¾Ń " +"Š· ŃŠøŃ ŃŠ°Š¹Š»ŃŠ²." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø DjVu" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń DVI Š¼Š°Ń Š½ŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ ŃŠ¾ŃŠ¼Š°Ń" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø DVI" + +#: ../backend/pdf/ev-poppler.cc:571 +msgid "This work is in the Public Domain" +msgstr "Š¦Ń ŃŠ¾Š±Š¾ŃŠ° Ń Public Domain" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Yes" +msgstr "Š¢Š°Šŗ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:827 +msgid "No" +msgstr "ŠŃ" + +#: ../backend/pdf/ev-poppler.cc:948 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:952 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:954 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:956 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Unknown font type" +msgstr "ŠØŃŠøŃŃ Š½ŠµŠ²ŃŠ“Š¾Š¼Š¾Š³Š¾ ŃŠøŠæŃ" + +#: ../backend/pdf/ev-poppler.cc:988 +msgid "No name" +msgstr "ŠŠµŠ· Š½Š°Š·Š²Šø" + +#: ../backend/pdf/ev-poppler.cc:996 +msgid "Embedded subset" +msgstr "ŠŠ±ŃŠ“Š¾Š²Š°Š½ŠøŠ¹ Š½Š°Š±ŃŃ" + +#: ../backend/pdf/ev-poppler.cc:998 +msgid "Embedded" +msgstr "ŠŠ±ŃŠ“Š¾Š²Š°Š½ŠøŠ¹" + +#: ../backend/pdf/ev-poppler.cc:1000 +msgid "Not embedded" +msgstr "ŠŠµ Š²Š±ŃŠ“Š¾Š²Š°Š½ŠøŠ¹" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø PDF" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ŠŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Š”Š»Š°Š¹Š“Šø Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ŠŠµŠ¼Š°Ń ŠæŠ¾Š¼ŠøŠ»ŠŗŠø" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ŠŠµŠ“Š¾ŃŃŠ°ŃŠ½ŃŠ¾ ŠæŠ°Š¼'ŃŃŃ" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š½Š°Š¹ŃŠø Š¾Š·Š½Š°ŠŗŃ ZIP-ŃŠ°Š¹Š»Ń" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ŠŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ ŃŠ°Š¹Š» ŃŠ¾ŃŠ¼Š°ŃŃ ZIP" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "ŠŠ°Š³Š°ŃŠ¾ŃŠ°Š¹Š»Š¾Š²Ń Š°ŃŃ ŃŠ²Šø ZIP Š½Šµ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø ŃŠ°Š¹Š»" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ ŠæŃŠ¾ŃŠøŃŠ°ŃŠø Š“Š°Š½Ń Š· ŃŠ°Š¹Š»Ń" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š½Š°Š¹ŃŠø ŃŠ°Š¹Š» Ń Š°ŃŃ ŃŠ²Ń ZIP" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ŠŠµŠ²ŃŠ“Š¾Š¼Š° ŠæŠ¾Š¼ŠøŠ»ŠŗŠ°" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š±ŠµŃŠµŠ³ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø PostScript" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š±ŠµŃŠµŠ³ŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń ā%sā: %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń ā%sā: %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "Š¤Š°Š¹Š» ŃŠøŠæŃ %s (%s) Š½Šµ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "Š£ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "Š£ŃŃ ŃŠ°Š¹Š»Šø" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŃŠø ŃŃŠ²Š¾ŃŠµŠ½Š½Ń ŃŠøŠ¼ŃŠ°ŃŠ¾Š²Š¾Š³Š¾ ŃŠ°Š¹Š»Ń: %s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ŠŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŃŠø ŃŃŠ²Š¾ŃŠµŠ½Š½Ń ŃŠøŠ¼ŃŠ°ŃŠ¾Š²Š¾Š³Š¾ ŠŗŠ°ŃŠ°Š»Š¾Š³Ń: %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ŠŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ .desktop-ŃŠ°Š¹Š»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ŠŠµŃŠ¾Š·ŠæŃŠ·Š½Š°Š½ŠøŠ¹ desktop-ŃŠ°Š¹Š» Š²ŠµŃŃŃŃ '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ŠŠ°ŠæŃŃŠŗŠ°ŃŃŃŃŃ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š° Š½Šµ ŠæŃŠøŠ¹Š¼Š°Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠø Ń ŠŗŠ¾Š¼Š°Š½Š“Š½Š¾Š¼Ń ŃŃŠ“ŠŗŃ" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ŠŠµŃŠ¾Š·ŠæŃŠ·Š½Š°Š½ŠøŠ¹ ŠæŠ°ŃŠ°Š¼ŠµŃŃ Š·Š°ŠæŃŃŠŗŃ: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ŠŠµŠ¼Š¾Š¶Š»ŠøŠ²Š¾ ŠæŠµŃŠµŠ“Š°ŃŠø URI Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Š“Š¾ desktop-ŠµŠ»ŠµŠ¼ŠµŠ½ŃŃ 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "ŠŠµ Ń ŠµŠ»ŠµŠ¼ŠµŠ½ŃŠ¾Š¼, ŃŠ¾ Š·Š°ŠæŃŃŠŗŠ°ŃŃŃŃŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ŠŠøŠ¼ŠŗŠ½ŃŃŠø Š·'ŃŠ“Š½Š°Š½Š½Ń Š· Š¼ŠµŠ½ŠµŠ“Š¶ŠµŃŠ¾Š¼ ŃŠµŠ°Š½ŃŃŠ²" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ŠŠŗŠ°Š¶ŃŃŃ ŃŠ°Š¹Š», ŃŠ¾ Š¼ŃŃŃŠøŃŃ Š·Š±ŠµŃŠµŠ¶ŠµŠ½Ń ŠŗŠ¾Š½ŃŃŠ³ŃŃŠ°ŃŃŃ" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:48 +#: ../previewer/ev-previewer.c:49 +msgid "FILE" +msgstr "Š¤ŠŠŠ" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ŠŠŗŠ°Š¶ŃŃŃ ŃŠ“ŠµŠ½ŃŠøŃŃŠŗŠ°ŃŠ¾Ń ŠŗŠµŃŃŠ²Š°Š½Š½Ń ŃŠµŠ°Š½ŃŠ¾Š¼" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ŠŠ°ŃŠ°Š¼ŠµŃŃŠø ŠŗŠµŃŃŠ²Š°Š½Š½Ń ŃŠµŠ°Š½ŃŠ¾Š¼:" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŠø ŠæŠ°ŃŠ°Š¼ŠµŃŃŠø ŠŗŠµŃŃŠ²Š°Š½Š½Ń ŃŠµŠ°Š½ŃŠ¾Š¼" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:934 +#, c-format +msgid "Show ā_%sā" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŠø ā_%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1397 +msgid "_Move on Toolbar" +msgstr "_ŠŠµŃŠµŠ¼ŃŃŃŠøŃŠø Š½Š° ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1398 +msgid "Move the selected item on the toolbar" +msgstr "ŠŠµŃŠµŠ¼ŃŃŃŠøŃŠø Š²ŠøŠ“ŃŠ»ŠµŠ½ŠøŠ¹ ŠµŠ»ŠµŠ¼ŠµŠ½Ń Š½Š° ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1399 +msgid "_Remove from Toolbar" +msgstr "ŠŠø_Š“Š°Š»ŠøŃŠø Š· ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1400 +msgid "Remove the selected item from the toolbar" +msgstr "ŠŠøŠ“Š°Š»ŠøŃŠø Š²ŠøŠ“ŃŠ»ŠµŠ½ŠøŠ¹ ŠµŠ»ŠµŠ¼ŠµŠ½Ń Š· ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1401 +msgid "_Delete Toolbar" +msgstr "Š_ŠøŠ“Š°Š»ŠøŃŠø ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1402 +msgid "Remove the selected toolbar" +msgstr "Š_ŠøŠ“Š°Š»ŠøŃŠø ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Š Š¾Š·Š“ŃŠ»ŃŠ²Š°Ń" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:115 +msgid "Running in presentation mode" +msgstr "ŠŠ°ŠæŃŃŠµŠ½ŠøŠ¹ ŃŠµŠ¶ŠøŠ¼ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5341 +msgid "Best Fit" +msgstr "Š£Š¼ŃŃŃŠøŃŠø Ń Š²ŃŠŗŠ½Ń" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ŠŠ¾ ŃŠøŃŠøŠ½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4205 +#: ../shell/ev-window-title.c:149 ../shell/main.c:282 +#, c-format +msgid "Document Viewer" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ Š±Š°Š³Š°ŃŠ¾ŃŃŠ¾ŃŃŠ½ŠŗŠ¾Š²ŠøŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "ŠŠ³Š½Š¾ŃŃŠ²Š°ŃŠø Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "" +"ŠŠ³Š½Š¾ŃŃŠ²Š°ŃŠø Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ, Š½Š°ŠæŃŠøŠŗŠ»Š°Š“ Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń Š½Š° Š“ŃŃŠŗ ŃŠø ŠŗŠ¾ŠæŃŃŠ²Š°Š½Š½Ń." + +#: ../previewer/ev-previewer.c:47 +msgid "Delete the temporary file" +msgstr "ŠŠøŠ“Š°Š»ŠøŃŠø ŃŠøŠ¼ŃŠ°ŃŠ¾Š²ŠøŠ¹ ŃŠ°Š¹Š»" + +#: ../previewer/ev-previewer.c:48 +msgid "Print settings file" +msgstr "ŠŠøŠ²ŠµŃŃŠø ŃŠ°Š¹Š» Š· ŠæŠ°ŃŠ°Š¼ŠµŃŃŠ°Š¼Šø" + +#: ../previewer/ev-previewer.c:143 ../previewer/ev-previewer.c:177 +msgid "MATE Document Previewer" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Ń MATE" + +#: ../previewer/ev-previewer-window.c:90 ../shell/ev-window.c:3005 +msgid "Failed to print document" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š½Š°Š“ŃŃŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:204 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ŠŠµ Š·Š½Š°Š¹Š“ŠµŠ½Š¾ Š¾Š±ŃŠ°Š½ŠøŠ¹ ŠæŃŠøŠ½ŃŠµŃ '%s'" + +#. Go menu +#: ../previewer/ev-previewer-window.c:248 ../shell/ev-window.c:5090 +msgid "_Previous Page" +msgstr "_ŠŠ°Š·Š°Š“" + +#: ../previewer/ev-previewer-window.c:249 ../shell/ev-window.c:5091 +msgid "Go to the previous page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../previewer/ev-previewer-window.c:251 ../shell/ev-window.c:5093 +msgid "_Next Page" +msgstr "_ŠŠæŠµŃŠµŠ“" + +#: ../previewer/ev-previewer-window.c:252 ../shell/ev-window.c:5094 +msgid "Go to the next page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ Š½Š°ŃŃŃŠæŠ½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../previewer/ev-previewer-window.c:255 ../shell/ev-window.c:5077 +msgid "Enlarge the document" +msgstr "ŠŠ±ŃŠ»ŃŃŠøŃŠø ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../previewer/ev-previewer-window.c:258 ../shell/ev-window.c:5080 +msgid "Shrink the document" +msgstr "ŠŠ¼ŠµŠ½ŃŠøŃŠø ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../previewer/ev-previewer-window.c:261 ../libview/ev-print-operation.c:1315 +msgid "Print" +msgstr "ŠŃŃŠŗ" + +#: ../previewer/ev-previewer-window.c:262 ../shell/ev-window.c:5048 +msgid "Print this document" +msgstr "ŠŠ°Š“ŃŃŠŗŃŠ²Š°ŃŠø ŃŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../previewer/ev-previewer-window.c:268 ../shell/ev-window.c:5192 +msgid "_Best Fit" +msgstr "_Š£Š¼ŃŃŃŠøŃŠø Ń Š²ŃŠŗŠ½Ń" + +#: ../previewer/ev-previewer-window.c:269 ../shell/ev-window.c:5193 +msgid "Make the current document fill the window" +msgstr "ŠŠ°ŃŃŃŠ°Š±ŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š»Ń Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Š¾ŃŃŃ Š²ŃŠŗŠ½Ń" + +#: ../previewer/ev-previewer-window.c:271 ../shell/ev-window.c:5195 +msgid "Fit Page _Width" +msgstr "ŠŠ¾ _ŃŠøŃŠøŠ½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../previewer/ev-previewer-window.c:272 ../shell/ev-window.c:5196 +msgid "Make the current document fill the window width" +msgstr "ŠŠ°ŃŃŃŠ°Š±ŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š“Š»Ń Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Š¾ŃŃŃ ŃŠøŃŠøŠ½Ń ŠµŠŗŃŠ°Š½Ń" + +#: ../previewer/ev-previewer-window.c:455 ../shell/ev-window.c:5263 +msgid "Page" +msgstr "Š”ŃŠ¾ŃŃŠ½ŠŗŠ°" + +#: ../previewer/ev-previewer-window.c:456 ../shell/ev-window.c:5264 +msgid "Select Page" +msgstr "ŠŠøŠ±ŃŠ°ŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŃ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½ŃŠø" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ŠŠ°Š³Š¾Š»Š¾Š²Š¾Šŗ:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ŠŠ“ŃŠµŃŠ°:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "Š¢ŠµŠ¼Š°:" + +#: ../properties/ev-properties-view.c:63 +msgid "Author:" +msgstr "ŠŠ²ŃŠ¾Ń:" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ŠŠ»ŃŃŠ¾Š²Ń ŃŠ»Š¾Š²Š°:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "ŠŃŠ¾Š³ŃŠ°Š¼Š°:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "Š£ŠŗŠ»Š°Š“Š°Ń:" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "Š”ŃŠ²Š¾ŃŠµŠ½Š¾:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "ŠŠ¼ŃŠ½ŠµŠ½Š¾:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "ŠŃŠ»ŃŠŗŃŃŃŃ ŃŃŠ¾ŃŃŠ½Š¾Šŗ:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ŠŠæŃŠøŠ¼ŃŠ·Š¾Š²Š°Š½Š¾:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "Š¤Š¾ŃŠ¼Š°Ń:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "ŠŠ°Ń ŠøŃŠµŠ½ŠøŠ¹:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "Š Š¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø:" + +#: ../properties/ev-properties-view.c:211 ../libview/ev-print-operation.c:1896 +msgid "None" +msgstr "ŠŠµŠ¼Š°Ń" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:240 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:284 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f Š¼Š¼" + +#: ../properties/ev-properties-view.c:288 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f Š“ŃŠ¹Š¼ŃŠ²" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:312 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ŠŗŠ½ŠøŠ¶ŠŗŠ¾Š²Š° (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:319 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Š°Š»ŃŠ±Š¾Š¼Š½Š° (%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d Š· %d)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "Š· %d" + +#. Initial state +#: ../libview/ev-print-operation.c:341 +msgid "Preparing to printā¦" +msgstr "ŠŃŠ“Š³Š¾ŃŠ¾Š²ŠŗŠ° Š“Š¾ Š“ŃŃŠŗŃā¦" + +#: ../libview/ev-print-operation.c:343 +msgid "Finishingā¦" +msgstr "ŠŠ°Š²ŠµŃŃŠµŠ½Š½Ńā¦" + +#: ../libview/ev-print-operation.c:345 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ŠŃŃŠŗ ŃŃŠ¾ŃŃŠ½ŠŗŠø %d Š· %dā¦" + +#: ../libview/ev-print-operation.c:1169 +msgid "Printing is not supported on this printer." +msgstr "ŠŃŃŠŗ Š½Š° ŃŃŠ¾Š¼Ń ŠæŃŠøŠ½ŃŠµŃŃ Š½Šµ ŠæŃŠ“ŃŃŠøŠ¼ŃŃŃŃŃŃ." + +#: ../libview/ev-print-operation.c:1234 +msgid "Invalid page selection" +msgstr "ŠŠµŠŗŠ¾ŃŠµŠŗŃŠ½ŠøŠ¹ ŃŠ°Š¹Š» ŃŠ¾ŃŠ¼Š°ŃŃ zip" + +#: ../libview/ev-print-operation.c:1235 +msgid "Warning" +msgstr "ŠŠ°ŃŃŠµŃŠµŠ¶ŠµŠ½Š½Ń" + +#: ../libview/ev-print-operation.c:1237 +msgid "Your print range selection does not include any pages" +msgstr "ŠŠ±ŃŠ°Š½ŠøŠ¹ Š“ŃŠ°ŠæŠ°Š·Š¾Š½ ŃŃŠ¾ŃŃŠ½Š¾Šŗ Š½Šµ Š¼ŃŃŃŠøŃŃ ŃŃŠ¾ŃŃŠ½Š¾Šŗ" + +#: ../libview/ev-print-operation.c:1891 +msgid "Page Scaling:" +msgstr "ŠŠ°ŃŃŃŠ°Š± ŃŃŠ¾ŃŃŠ½ŠŗŠø:" + +#: ../libview/ev-print-operation.c:1897 +msgid "Shrink to Printable Area" +msgstr "Š”ŠŗŠ¾ŃŠ¾ŃŠøŃŠø Š“Š¾ Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ" + +#: ../libview/ev-print-operation.c:1898 +msgid "Fit to Printable Area" +msgstr "Š£Š¼ŃŃŃŠøŃŠø Ń Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ" + +#: ../libview/ev-print-operation.c:1901 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ŠŠ¼ŃŠ½ŃŠ²Š°ŃŠø Š¼Š°ŃŃŃŠ°Š± ŃŃŠ¾ŃŃŠ½Š¾Šŗ ŃŠ¾Š± ŃŠ¼ŃŃŃŠøŃŠø ŃŃ Š½Š° ŃŃŠ¾ŃŃŠ½ŃŃ ŠæŃŠøŠ½ŃŠµŃŠ°. ŠŠøŠ±ŠµŃŃŃŃ:\n" +"\n" +"ā¢ \"ŠŃ\": ŠŠµ Š·Š¼ŃŠ½ŃŠ²Š°ŃŠø Š¼Š°ŃŃŃŠ°Š±.\n" +"\n" +"ā¢ \"Š”ŠŗŠ¾ŃŠ¾ŃŠøŃŠø Š“Š¾ Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ\": Š”ŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ, ŃŠŗŃ Š±ŃŠ»ŃŃŃ Š·Š° Š¾Š±Š»Š°ŃŃŃ " +"Š“ŃŃŠŗŃ Š·Š¼ŠµŠ½ŃŃŃŃŃŃŃ Š“Š¾ ŃŠ¾Š·Š¼ŃŃŃŠ² Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ ŠæŃŠøŠ½ŃŠµŃŠ°.\n" +"\n" +"ā¢ \"Š£Š¼ŃŃŃŠøŃŠø Ń Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ\": Š”ŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š·Š±ŃŠ»ŃŃŃŃŃŃ ŃŠø Š·Š¼ŠµŠ½ŃŃŃŃŃŃŃ " +"ŠæŃŠø ŠæŠ¾ŃŃŠµŠ±Ń, ŃŠ¾Š± ŃŠ¼ŃŃŃŠøŃŠøŃŃ Ń Š¾Š±Š»Š°ŃŃŃ Š“ŃŃŠŗŃ ŠæŃŠøŠ½ŃŠµŃŠ°.\n" + +#: ../libview/ev-print-operation.c:1913 +msgid "Auto Rotate and Center" +msgstr "ŠŠ²ŃŠ¾Š¼Š°ŃŠøŃŠ½ŠøŠ¹ ŠæŠ¾Š²Š¾ŃŠ¾Ń ŃŠ° ŃŠµŠ½ŃŃŃŠ²Š°Š½Š½Ń" + +#: ../libview/ev-print-operation.c:1916 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ŠŠ¼ŃŠ½ŃŠ²Š°ŃŠø Š¾ŃŃŃŠ½ŃŠ°ŃŃŃ ŠŗŠ¾Š¶Š½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø ŠæŃŠøŠ½ŃŠµŃŠ°, Š“Š»Ń Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Š¾ŃŃŃ Š¾ŃŃŃŠ½ŃŠ°ŃŃŃ " +"ŠŗŠ¾Š¶Š½ŃŠ¹ ŃŃŠ¾ŃŃŠ½ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°. Š”ŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š±ŃŠ“ŃŃŃ ŃŠµŠ½ŃŃŠ¾Š²Š°Š½Ń Ń ŃŃŠ¾ŃŃŠ½ŃŃ " +"ŠæŃŠøŠ½ŃŠµŃŠ°." + +#: ../libview/ev-print-operation.c:1921 +msgid "Select page size using document page size" +msgstr "ŠŠøŠ±ŠµŃŃŃŃ ŃŠ¾Š·Š¼ŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø, ŠŗŠ¾ŃŠøŃŃŃŃŃŠøŃŃ ŃŠ¾Š·Š¼ŃŃŠ¾Š¼ ŃŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../libview/ev-print-operation.c:1923 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "" +"ŠŠ¾Š»Šø ŃŠ²ŃŠ¼ŠŗŠ½ŠµŠ½Š¾, ŠŗŠ¾Š¶Š½Š° ŃŃŠ¾ŃŃŠ½ŠŗŠ° Š±ŃŠ“Šµ Š½Š°Š“ŃŃŠŗŠ¾Š²Š°Š½Š° Š½Š° ŠæŠ°ŠæŠµŃŃ ŃŠ¾Š³Š¾ Š¶ ŃŠ¾Š·Š¼ŃŃŃ, ŃŠ¾ " +"Š¹ ŃŃŠ¾ŃŃŠ½ŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../libview/ev-print-operation.c:2005 +msgid "Page Handling" +msgstr "ŠŠ±ŃŠ¾Š±ŠŗŠ° ŃŃŠ¾ŃŃŠ½Š¾Šŗ" + +#: ../libview/ev-jobs.c:1434 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š½Š°Š“ŃŃŠŗŃŠ²Š°ŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŃ %d: %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š²Š²ŠµŃŃ " + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š²Š½ŠøŠ·" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š²Š²ŠµŃŃ " + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "ŠŃŠ¾ŠŗŃŃŃŠŗŠ° Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š²Š½ŠøŠ·" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "ŠŃŠ“Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../libview/ev-view-presentation.c:668 +msgid "Jump to page:" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŃŃŠ¾ŃŃŠ½ŠŗŠø:" + +#: ../libview/ev-view-presentation.c:970 +msgid "End of presentation. Click to exit." +msgstr "ŠŃŠ½ŠµŃŃ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ. ŠŠ»Š°ŃŠ½ŃŃŃ Š“Š»Ń Š²ŠøŃ Š¾Š“Ń." + +#: ../libview/ev-view.c:1724 +msgid "Go to first page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠµŃŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../libview/ev-view.c:1726 +msgid "Go to previous page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../libview/ev-view.c:1728 +msgid "Go to next page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ Š½Š°ŃŃŃŠæŠ½Š¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../libview/ev-view.c:1730 +msgid "Go to last page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ Š¾ŃŃŠ°Š½Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../libview/ev-view.c:1732 +msgid "Go to page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../libview/ev-view.c:1734 +msgid "Find" +msgstr "ŠŠ½Š°Š¹ŃŠø" + +#: ../libview/ev-view.c:1762 +#, c-format +msgid "Go to page %s" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŃŃŠ¾ŃŃŠ½ŠŗŠø %s" + +#: ../libview/ev-view.c:1768 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ %s Ń ŃŠ°Š¹Š»Ń %s" + +#: ../libview/ev-view.c:1771 +#, c-format +msgid "Go to file ā%sā" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŃŠ°Š¹Š»Ń %s" + +#: ../libview/ev-view.c:1779 +#, c-format +msgid "Launch %s" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø %s" + +#: ../libview/ev-view.c:3923 ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ŠŠ°Š²Š°Š½ŃŠ°Š¶ŠµŠ½Š½Ńā¦" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ŠŠ½Š°Š¹ŃŠø:" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5065 +msgid "Find Pre_vious" +msgstr "ŠŠ½Š°Š¹ŃŠø _ŠæŠ¾ŠæŠµŃŠµŠ“Š½Ń" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ŠŠ½Š°Š¹ŃŠø ŠæŠ¾ŠæŠµŃŠµŠ“Š½Ń Š¼ŃŃŃŠµ Š·ŃŃŃŃŃŃŃ ŃŃŠ“ŠŗŠ°" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5063 +msgid "Find Ne_xt" +msgstr "ŠŠ½Š°_Š¹ŃŠø Š“Š°Š»Ń" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ŠŠ½Š°Š¹ŃŠø Š½Š°ŃŃŃŠæŠ½Šµ Š¼ŃŃŃŠµ Š·ŃŃŃŃŃŃŃ ŃŃŠ“ŠŗŠ°" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "ŠŠ±ŃŠ³Š°ŃŃŃŃŃ _ŃŠµŠ³ŃŃŃŃ" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "ŠŠ¼ŃŠ½ŠøŃŠø ŃŃŃŠ»ŠøŠ²ŃŃŃŃ ŠæŠ¾ŃŃŠŗŃ Š“Š¾ ŃŠµŠ³ŃŃŃŃŃ" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ŠŠ°ŃŠ¾Š»Ń Š“Š»Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ \"%s\"" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ŠŠµŃŠµŃŠ²Š¾ŃŠµŠ½Š½Ń %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "ŠŠµŃŠµŃŠ²Š¾ŃŠµŠ½Š¾ %d Š· %d Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../shell/ev-convert-metadata.c:164 ../shell/ev-convert-metadata.c:179 +msgid "Converting metadata" +msgstr "ŠŠµŃŠµŃŠ²Š¾ŃŠµŠ½Š½Ń Š¼ŠµŃŠ°Š“Š°Š½ŠøŃ " + +#: ../shell/ev-convert-metadata.c:185 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Š¤Š¾ŃŠ¼Š°Ń Š¼ŠµŃŠ°Š“Š°Š½ŠøŃ Evince Š±ŃŠ»Š¾ Š·Š¼ŃŠ½ŠµŠ½Š¾, Ń ŃŠ¾Š¼Ń ŠæŠ¾ŃŃŃŠ±Š½Š° Š¼ŃŠ³ŃŠ°ŃŃŃ. ŠÆŠŗŃŠ¾ " +"Š¼ŃŠ³ŃŠ°ŃŃŃ Š±ŃŠ“Šµ ŃŠŗŠ°ŃŠ¾Š²Š°Š½Š¾, ŃŃ Š¾Š²ŠøŃŠµ Š¼ŠµŃŠ°Š“Š°Š½ŠøŃ Š½Šµ ŠæŃŠ°ŃŃŠ²Š°ŃŠøŠ¼Šµ." + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ŠŃŠ“ŃŠøŃŠø Š½ŠµŠ“Š°Š²Š½Š¾ Š²ŃŠ“ŠŗŃŠøŃŠøŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Š¦ŠµŠ¹ Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń Š·Š°Š±Š»Š¾ŠŗŠ¾Š²Š°Š½ŠøŠ¹, Š“Š¾ŃŃŃŠæ Š“Š¾ Š½ŃŠ¾Š³Š¾ Š¼Š¾Š¶Š»ŠøŠ²ŠøŠ¹ Š»ŠøŃŠµ ŠæŃŃŠ»Ń Š²Š²Š¾Š“Ń ŠæŠ°ŃŠ¾Š»Ń." + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Š Š¾Š·Š±Š»Š¾ŠŗŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "ŠŠ²ŠµŠ“ŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "ŠŠøŠ¼Š°Š³Š°ŃŃŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "" +"ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń ā%sā - Š·Š°Š±Š»Š¾ŠŗŠ¾Š²Š°Š½ŠøŠ¹, ŃŃŠµŠ±Š° Š²ŠŗŠ°Š·Š°ŃŠø ŠæŠ°ŃŠ¾Š»Ń ŠæŠµŃŃ Š½ŃŠ¶ Š¹Š¾Š³Š¾ Š¼Š¾Š¶Š½Š° " +"Š²ŃŠ“ŠŗŃŠøŃŠø." + +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_ŠŠ°ŃŠ¾Š»Ń:" + +#: ../shell/ev-password-view.c:365 +msgid "Forget password _immediately" +msgstr "ŠŠ°Š±ŃŃŠø ŠæŠ°ŃŠ¾Š»Ń Š½_ŠµŠ³Š°Š¹Š½Š¾" + +#: ../shell/ev-password-view.c:377 +msgid "Remember password until you _log out" +msgstr "ŠŠ°ŠæŠ°Š¼'ŃŃŠ°ŃŠø ŠæŠ°ŃŠ¾Š»Ń Š“Š»Ń ŃŃŠ¾Š³Š¾ _ŃŠµŠ°Š½ŃŃ" + +#: ../shell/ev-password-view.c:389 +msgid "Remember _forever" +msgstr "ŠŠ°ŠæŠ°Š¼'ŃŃŠ°ŃŠø Š½Š°Š·Š°Š²_Š¶Š“Šø" + +#: ../shell/ev-properties-dialog.c:58 +msgid "Properties" +msgstr "ŠŠ»Š°ŃŃŠøŠ²Š¾ŃŃŃ" + +#: ../shell/ev-properties-dialog.c:92 +msgid "General" +msgstr "ŠŠ°Š³Š°Š»ŃŠ½Šµ" + +#: ../shell/ev-properties-dialog.c:102 +msgid "Fonts" +msgstr "ŠØŃŠøŃŃŠø" + +#: ../shell/ev-properties-dialog.c:115 +msgid "Document License" +msgstr "ŠŃŃŠµŠ½Š·ŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "ŠØŃŠøŃŃ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ŠŃŃŠøŠ¼Š°Š½Š½Ń ŃŠ½ŃŠ¾ŃŠ¼Š°ŃŃŃ ŠæŃŠ¾ ŃŃŠøŃŃā¦ %3d%%" + +#: ../shell/ev-properties-license.c:138 +msgid "Usage terms" +msgstr "Š£Š¼Š¾Š²Šø Š²ŠøŠŗŠ¾ŃŠøŃŃŠ°Š½Š½Ń" + +#: ../shell/ev-properties-license.c:144 +msgid "Text License" +msgstr "Š¢ŠµŠŗŃŃ Š»ŃŃŠµŠ½Š·ŃŃ" + +#: ../shell/ev-properties-license.c:150 +msgid "Further Information" +msgstr "ŠŠ¾Š“Š°Š»ŃŃŠ° ŃŠ½ŃŠ¾ŃŠ¼Š°ŃŃŃ" + +#: ../shell/ev-sidebar-attachments.c:712 +msgid "Attachments" +msgstr "ŠŠŗŠ»Š°Š“ŠŗŠø" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "ŠØŠ°ŃŠø" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ŠŃŃŠŗā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ŠŠ½Š“ŠµŠŗŃ" + +#: ../shell/ev-sidebar-thumbnails.c:956 +msgid "Thumbnails" +msgstr "ŠŃŠ½ŃŠ°ŃŃŃŠø" + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s ā %s" +msgstr "Š”ŃŠ¾ŃŃŠ½ŠŗŠ° %s ā %s" + +#: ../shell/ev-window.c:841 +#, c-format +msgid "Page %s" +msgstr "Š”ŃŠ¾ŃŃŠ½ŠŗŠ° %s" + +#: ../shell/ev-window.c:1285 +msgid "The document contains no pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½Šµ Š¼ŃŃŃŠøŃŃ ŃŃŠ¾ŃŃŠ½Š¾Šŗ" + +#: ../shell/ev-window.c:1288 +msgid "The document contains only empty pages" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š¼ŃŃŃŠøŃŃ Š»ŠøŃŠµ ŠæŠ¾ŃŠ¾Š¶Š½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../shell/ev-window.c:1482 ../shell/ev-window.c:1648 +msgid "Unable to open document" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:1619 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š·Š°Š²Š°Š½ŃŠ°Š¶ŃŃŃŃŃŃ Š· ā%sā" + +#: ../shell/ev-window.c:1761 ../shell/ev-window.c:2038 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ŠŠ°Š²Š°Š½ŃŠ°Š¶ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ (%d%%)" + +#: ../shell/ev-window.c:1794 +msgid "Failed to load remote file." +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š°Š²Š°Š½ŃŠ°Š¶ŠøŃŠø Š²ŃŠ“Š“Š°Š»ŠµŠ½ŠøŠ¹ ŃŠ°Š¹Š»." + +#: ../shell/ev-window.c:1982 +#, c-format +msgid "Reloading document from %s" +msgstr "ŠŠ½Š¾Š²Š»ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š· %s" + +#: ../shell/ev-window.c:2014 +msgid "Failed to reload document." +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š¾Š½Š¾Š²ŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń." + +#: ../shell/ev-window.c:2169 +msgid "Open Document" +msgstr "ŠŃŠ“ŠŗŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:2433 +#, c-format +msgid "Saving document to %s" +msgstr "ŠŠ±ŠµŃŠµŠ¶ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Š² %s" + +#: ../shell/ev-window.c:2436 +#, c-format +msgid "Saving attachment to %s" +msgstr "ŠŠ±ŠµŃŠµŠ¶ŠµŠ½Š½Ń Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń Ń %s" + +#: ../shell/ev-window.c:2439 +#, c-format +msgid "Saving image to %s" +msgstr "ŠŠ±ŠµŃŠµŠ¶ŠµŠ½Š½Ń Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń Ń %s" + +#: ../shell/ev-window.c:2483 ../shell/ev-window.c:2583 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ŠŠ¾ŠŗŃŠ¼ŠµŠ½Ń Š½ŠµŠ¼Š¾Š¶Š»ŠøŠ²Š¾ Š·Š±ŠµŃŠµŠ³ŃŠø Ń ŃŠ°Š¹Š»Ń ā%sā." + +#: ../shell/ev-window.c:2514 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ŠŃŠ“Š²Š°Š½ŃŠ°Š¶ŠµŠ½Š½Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° (%d%%)" + +#: ../shell/ev-window.c:2518 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ŠŃŠ“Š²Š°Š½ŃŠ°Š¶ŠµŠ½Š½Ń Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń (%d%%)" + +#: ../shell/ev-window.c:2522 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ŠŃŠ“Š²Š°Š½ŃŠ°Š¶ŠµŠ½Š½Ń Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń (%d%%)" + +#: ../shell/ev-window.c:2644 +msgid "Save a Copy" +msgstr "ŠŠ±ŠµŃŠµŠ³ŃŠø ŠŗŠ¾ŠæŃŃ" + +#: ../shell/ev-window.c:2949 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d Š·Š°Š²Š“Š°Š½Š½Ń Š¾ŃŃŠŗŃŃ Ń ŃŠµŃŠ·Ń" +msgstr[1] "%d Š·Š°Š²Š“Š°Š½Š½Ń Š¾ŃŃŠŗŃŃŃŃ Ń ŃŠµŃŠ·Ń" +msgstr[2] "%d Š·Š°Š²Š“Š°Š½Ń Š¾ŃŃŠŗŃŃŃŃ Ń ŃŠµŃŠ·Ń" + +#: ../shell/ev-window.c:3062 +#, c-format +msgid "Printing job ā%sā" +msgstr "ŠŃŃŠŗ Š·Š°Š²Š“Š°Š½Š½Ń Ā«%sĀ»" + +#: ../shell/ev-window.c:3274 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "ŠŃŃŠŗŃŠ²Š°ŃŠø Š·Š°Š²ŠµŃŃŠµŠ½Š½Ń Š·Š°Š²Š“Š°Š½Š½Ń Š½Š° Š“ŃŃŠŗ Ā«%sĀ» ŠæŠµŃŠµŠ“ Š·Š°ŠŗŃŠøŃŃŃŠ¼?" + +#: ../shell/ev-window.c:3277 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "" +"%d Š·Š°Š²Š“Š°Š½Ń Š“ŃŃŠŗŃ ŃŠµ Š½Šµ Š·Š°Š²ŠµŃŃŠµŠ½Ń. ŠŃŃŠŗŃŠ²Š°ŃŠø ŃŃ Š·Š°Š²ŠµŃŃŠµŠ½Š½Ń ŠæŠµŃŠµŠ“ Š·Š°ŠŗŃŠøŃŃŃŠ¼ " +"Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°?" + +#: ../shell/ev-window.c:3289 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "" +"ŠÆŠŗŃŠ¾ Š²Šø Š·Š°ŠŗŃŠøŃŃŠµ Š²ŃŠŗŠ½Š¾, Š·Š°Š²Š“Š°Š½Š½Ń Š½Š° Š“ŃŃŠŗ, Š²ŃŃŠ°Š²Š»ŠµŠ½Ń Ń ŃŠµŃŠ³Ń, Š½Šµ Š±ŃŠ“ŃŃŃ " +"Š²ŠøŠŗŠ¾Š½Š°Š½Ń." + +#: ../shell/ev-window.c:3293 +msgid "Cancel _print and Close" +msgstr "Š”ŠŗŠ°ŃŃŠ²Š°ŃŠø _Š“ŃŃŠŗ ŃŠ° Š·Š°ŠŗŃŠøŃŠø" + +#: ../shell/ev-window.c:3297 +msgid "Close _after Printing" +msgstr "ŠŠ°ŠŗŃŠøŃŠø Šæ_ŃŃŠ»Ń Š“ŃŃŠŗŃ" + +#: ../shell/ev-window.c:3858 +msgid "Toolbar Editor" +msgstr "Š ŠµŠ“Š°ŠŗŃŠ¾Ń ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../shell/ev-window.c:3990 +msgid "There was an error displaying help" +msgstr "ŠŠøŠ½ŠøŠŗŠ»Š° ŠæŠ¾Š¼ŠøŠ»ŠŗŠ° ŠæŠ¾ŠŗŠ°Š·Ń Š“Š¾Š²ŃŠŗŠø" + +#: ../shell/ev-window.c:4201 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ŠŠµŃŠµŠ³Š»ŃŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ².\n" +"ŠŠøŠŗŠ¾ŃŠøŃŃŠ¾Š²ŃŃ %s (%s)" + +#: ../shell/ev-window.c:4232 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince - Š²ŃŠ»ŃŠ½Šµ ŠæŃŠ¾Š³ŃŠ°Š¼Š½Šµ Š·Š°Š±ŠµŠ·ŠæŠµŃŠµŠ½Š½Ń; Š²Šø Š¼Š¾Š¶ŠµŃŠµ Š²ŃŠ»ŃŠ½Š¾ ŃŠ¾Š·ŠæŠ¾Š²ŃŃŠ“Š¶ŃŠ²Š°ŃŠø Š°Š±Š¾ " +"Š·Š¼ŃŠ½ŃŠ²Š°ŃŠø Š¹Š¾Š³Š¾ ŠæŃŠø Š½Š° ŃŠ¼Š¾Š²Š°Ń Š²ŃŠ»ŃŠ½Š¾Ń Š»ŃŃŠµŠ½Š·ŃŃ GNU General Public License ŃŠŗŠ° " +"Š¾ŠæŃŠ±Š»ŃŠŗŠ¾Š²Š°Š½Š° Free Software Foundation; Š°Š±Š¾ Š²ŠµŃŃŃŃ 2 ŃŃŃŃ Š»ŃŃŠµŠ½Š·ŃŃ, Š°Š±Š¾ (Š½Š° " +"Š²Š°Ń ŃŠ¾Š·ŃŃŠ“) Š±ŃŠ“Ń-ŃŠŗŃŠ¹ ŃŃŠ°ŃŃŃŠ¹ Š²ŠµŃŃŃŃ.\n" + +#: ../shell/ev-window.c:4236 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince ŃŠ¾Š·ŠæŠ¾Š²ŃŃŠ“Š¶ŃŃŃŃŃŃ Š·Ń ŃŠæŠ¾Š“ŃŠ²Š°Š½Š½ŃŠ¼, ŃŠ¾ ŠæŃŠ¾Š³ŃŠ°Š¼Š° Š±ŃŠ“Šµ ŠŗŠ¾ŃŠøŃŠ½Š¾Ń, Š°Š»Šµ Š±ŠµŠ· " +"ŠŠ£ŠŠ¬-ŠÆŠŠŠ„ ŠŠŠ ŠŠŠ¢ŠŠ; Š½Š°Š²ŃŃŃ Š½Šµ Š³Š°ŃŠ°Š½ŃŃŃŃŃŃŃ ŠŠ ŠŠŠŠ¢ŠŠŠ”Š¢Š¬ ŃŠ° ŠŠŠŠŠŠŠŠŠŠŠ”Š¢Š¬ ŠŠ£ŠŠ¬-" +"ŠÆŠŠŠ ŠŠŠŠŠŠŠ. ŠŠ¾ŠŗŠ»Š°Š“Š½ŃŃŠµ ŠæŃŠ¾ ŃŠµ Š“ŠøŠ²ŃŃŃŃŃ GNU General Public License.\n" + +#: ../shell/ev-window.c:4240 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 59 Temple " +"Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"ŠŠø Š¼Š°ŃŃŠµ Š¾ŃŃŠøŠ¼Š°ŃŠø ŠŗŠ¾ŠæŃŃ GNU General Public License ŃŠ°Š·Š¾Š¼ Š· Evince; ŠÆŠŗŃŠ¾ ŃŠµ " +"Š½Šµ ŃŠ°Šŗ, Š½Š°ŠæŠøŃŃŃŃ Ń Software Foundation, Inc., 59 Temple Place, Suite 330, " +"Boston, MA 02111-1307 USA\n" + +#: ../shell/ev-window.c:4265 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4268 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 ŠŠ²ŃŠ¾ŃŠø Evince" + +#: ../shell/ev-window.c:4274 +msgid "translator-credits" +msgstr "ŠŠ°ŠŗŃŠøŠ¼ ŠŠ·ŃŠ¼Š°Š½ŠµŠ½ŠŗŠ¾ <dziumanenko@gmail.com>" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4543 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½ŃŃŃŃ" +msgstr[1] "%d Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Š¾ŃŃŃ" +msgstr[2] "%d Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½Š¾ŃŃŠµŠ¹" + +#: ../shell/ev-window.c:4551 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% Š·Š°Š»ŠøŃŠ°ŃŃŃŃŃ Š“Š»Ń ŠæŠ¾ŃŃŠŗŃ" + +#: ../shell/ev-window.c:5028 +msgid "_File" +msgstr "_Š¤Š°Š¹Š»" + +#: ../shell/ev-window.c:5029 +msgid "_Edit" +msgstr "_ŠŃŠ°Š²ŠŗŠ°" + +#: ../shell/ev-window.c:5030 +msgid "_View" +msgstr "_ŠŠøŠ³Š»ŃŠ“" + +#: ../shell/ev-window.c:5031 +msgid "_Go" +msgstr "ŠŠµŃŠµ_Š¹ŃŠø" + +#: ../shell/ev-window.c:5032 +msgid "_Help" +msgstr "_ŠŠ¾Š²ŃŠ“ŠŗŠ°" + +#. File menu +#: ../shell/ev-window.c:5035 ../shell/ev-window.c:5303 +msgid "_Openā¦" +msgstr "_ŠŃŠ“ŠŗŃŠøŃŠøā¦" + +#: ../shell/ev-window.c:5036 ../shell/ev-window.c:5304 +msgid "Open an existing document" +msgstr "ŠŃŠ“ŃŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5038 +msgid "Op_en a Copy" +msgstr "ŠŃŠ“ŠŗŃŠøŃŠø _ŠŗŠ¾ŠæŃŃ" + +#: ../shell/ev-window.c:5039 +msgid "Open a copy of the current document in a new window" +msgstr "ŠŃŠ“ŠŗŃŠøŃŠø ŠŗŠ¾ŠæŃŃ ŠæŠ¾ŃŠ¾ŃŠ½Š¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ Ń Š½Š¾Š²Š¾Š¼Ń Š²ŃŠŗŠ½Ń" + +#: ../shell/ev-window.c:5041 +msgid "_Save a Copyā¦" +msgstr "Š_Š±ŠµŃŠµŠ³ŃŠø ŠŗŠ¾ŠæŃŃā¦" + +#: ../shell/ev-window.c:5042 +msgid "Save a copy of the current document" +msgstr "ŠŠ±ŠµŃŠµŠ³ŃŠø ŠŗŠ¾ŠæŃŃ ŠæŠ¾ŃŠ¾ŃŠ½Š¾Š³Š¾ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/ev-window.c:5044 +msgid "Page Set_upā¦" +msgstr "ŠŠ°ŃŠ°_Š¼ŠµŃŃŠø ŃŃŠ¾ŃŃŠ½ŠŗŠøā¦" + +#: ../shell/ev-window.c:5045 +msgid "Set up the page settings for printing" +msgstr "ŠŠ°Š»Š°ŃŃŠ¾Š²ŃŠ²Š°Š½Š½Ń ŠæŠ°ŃŠ°Š¼ŠµŃŃŃŠ² ŃŃŠ¾ŃŃŠ½ŠŗŠø Š“Š»Ń Š“ŃŃŠŗŃ" + +#: ../shell/ev-window.c:5047 +msgid "_Printā¦" +msgstr "Š_ŃŃŠŗā¦" + +#: ../shell/ev-window.c:5050 +msgid "P_roperties" +msgstr "Š_Š»Š°ŃŃŠøŠ²Š¾ŃŃŃ" + +#: ../shell/ev-window.c:5058 +msgid "Select _All" +msgstr "ŠŠøŠ“Ń_Š»ŠøŃŠø Š²ŃŠµ" + +#: ../shell/ev-window.c:5060 +msgid "_Findā¦" +msgstr "Š_Š½Š°Š¹ŃŠøā¦" + +#: ../shell/ev-window.c:5061 +msgid "Find a word or phrase in the document" +msgstr "ŠŠ½Š°Š¹ŃŠø ŃŠ»Š¾Š²Š¾ ŃŠø ŃŃŠ°Š·Ń Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/ev-window.c:5067 +msgid "T_oolbar" +msgstr "Š_Š°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../shell/ev-window.c:5069 +msgid "Rotate _Left" +msgstr "ŠŠ¾Š²ŠµŃŠ½ŃŃŠø Š»_ŃŠ²Š¾ŃŃŃ" + +#: ../shell/ev-window.c:5071 +msgid "Rotate _Right" +msgstr "ŠŠ¾Š²ŠµŃŠ½ŃŃŠø Šæ_ŃŠ°Š²Š¾ŃŃŃ" + +#: ../shell/ev-window.c:5082 +msgid "_Reload" +msgstr "_ŠŠ½Š¾Š²ŠøŃŠø" + +#: ../shell/ev-window.c:5083 +msgid "Reload the document" +msgstr "ŠŠ½Š¾Š²ŠøŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń" + +#: ../shell/ev-window.c:5086 +msgid "Auto_scroll" +msgstr "ŠŠ²ŃŠ¾_ŠæŃŠ¾ŠŗŃŃŃŃŠ²Š°Š½Š½Ń" + +#: ../shell/ev-window.c:5096 +msgid "_First Page" +msgstr "_ŠŠ¾ŃŠ°ŃŠ¾Šŗ" + +#: ../shell/ev-window.c:5097 +msgid "Go to the first page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŠæŠµŃŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../shell/ev-window.c:5099 +msgid "_Last Page" +msgstr "_ŠŃŠ½ŠµŃŃ" + +#: ../shell/ev-window.c:5100 +msgid "Go to the last page" +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ Š¾ŃŃŠ°Š½Š½ŃŠ¾Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#. Help menu +#: ../shell/ev-window.c:5104 +msgid "_Contents" +msgstr "_ŠŠ¼ŃŃŃ" + +#: ../shell/ev-window.c:5107 +msgid "_About" +msgstr "_ŠŃŠ¾ ŠæŃŠ¾Š³ŃŠ°Š¼Ń" + +#. Toolbar-only +#: ../shell/ev-window.c:5111 +msgid "Leave Fullscreen" +msgstr "ŠŠøŠ¹ŃŠø Š· ŠæŠ¾Š²Š½Š¾ŠµŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Ń" + +#: ../shell/ev-window.c:5112 +msgid "Leave fullscreen mode" +msgstr "ŠŠøŠ¹ŃŠø Š· ŠæŠ¾Š²Š½Š¾ŠµŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Ń" + +#: ../shell/ev-window.c:5114 +msgid "Start Presentation" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:5115 +msgid "Start a presentation" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#. View Menu +#: ../shell/ev-window.c:5174 +msgid "_Toolbar" +msgstr "Š_Š°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../shell/ev-window.c:5175 +msgid "Show or hide the toolbar" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŠø ŃŠø ŃŃ Š¾Š²Š°ŃŠø ŠæŠ°Š½ŠµŠ»Ń ŃŠ½ŃŃŃŃŠ¼ŠµŠ½ŃŃŠ²" + +#: ../shell/ev-window.c:5177 +msgid "Side _Pane" +msgstr "ŠŃ_ŃŠ½Š° ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5178 +msgid "Show or hide the side pane" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŠø ŃŠø ŃŃ Š¾Š²Š°ŃŠø Š±ŃŃŠ½Ń ŠæŠ°Š½ŠµŠ»Ń" + +#: ../shell/ev-window.c:5180 +msgid "_Continuous" +msgstr "Š_ŠµŠ·ŠæŠµŃŠµŃŠ²Š½Š¾" + +#: ../shell/ev-window.c:5181 +msgid "Show the entire document" +msgstr "ŠŠ¾ŠŗŠ°Š·ŃŠ²Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŃŠ»ŠŗŠ¾Š¼" + +#: ../shell/ev-window.c:5183 +msgid "_Dual" +msgstr "_ŠŠ²Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../shell/ev-window.c:5184 +msgid "Show two pages at once" +msgstr "ŠŠ¾ŠŗŠ°Š·ŃŠ²Š°ŃŠø ŠæŠ¾ Š“Š²Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../shell/ev-window.c:5186 +msgid "_Fullscreen" +msgstr "_ŠŠ° ŠæŠ¾Š²Š½ŠøŠ¹ ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5187 +msgid "Expand the window to fill the screen" +msgstr "Š Š¾Š·ŃŠøŃŠøŃŠø Š²ŃŠŗŠ½Š¾ Š½Š° ŠæŠ¾Š²Š½ŠøŠ¹ ŠµŠŗŃŠ°Š½" + +#: ../shell/ev-window.c:5189 +msgid "Pre_sentation" +msgstr "_ŠŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:5190 +msgid "Run document as a presentation" +msgstr "ŠŃŠ“Š¾Š±ŃŠ°Š¶Š°ŃŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½Ń ŃŠŗ ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#: ../shell/ev-window.c:5198 +msgid "_Inverted Colors" +msgstr "_ŠŠ½Š²ŠµŃŃŠ¾Š²Š°Š½Ń ŠŗŠ¾Š»ŃŠ¾ŃŠø" + +#: ../shell/ev-window.c:5199 +msgid "Show page contents with the colors inverted" +msgstr "ŠŠ¾ŠŗŠ°Š·Š°ŃŠø Š·Š¼ŃŃŃ ŃŃŠ¾ŃŃŠ½ŠŗŠø Ń ŃŠ½Š²ŠµŃŃŠ½ŠøŃ ŠŗŠ¾Š»ŃŠ¾ŃŠ°Ń " + +#. Links +#: ../shell/ev-window.c:5207 +msgid "_Open Link" +msgstr "_ŠŃŠ“ŠŗŃŠøŃŠø ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń" + +#: ../shell/ev-window.c:5209 +msgid "_Go To" +msgstr "ŠŠµŃŠµ_Š¹ŃŠø" + +#: ../shell/ev-window.c:5211 +msgid "Open in New _Window" +msgstr "ŠŃŠ“ŠŗŃŠøŃŠø Ń Š½Š¾Š²Š¾Š¼Ń _Š²ŃŠŗŠ½Ń" + +#: ../shell/ev-window.c:5213 +msgid "_Copy Link Address" +msgstr "_ŠŠ¾ŠæŃŃŠ²Š°ŃŠø Š°Š“ŃŠµŃŃ ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń" + +#: ../shell/ev-window.c:5215 +msgid "_Save Image Asā¦" +msgstr "ŠŠ±ŠµŃŠµŠ³ŃŠø Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń _ŃŠŗā¦" + +#: ../shell/ev-window.c:5217 +msgid "Copy _Image" +msgstr "ŠŠ¾ŠæŃŃŠ²Š°ŃŠø _Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5222 +msgid "_Open Attachment" +msgstr "_ŠŃŠ“ŠŗŃŠøŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5224 +msgid "_Save Attachment Asā¦" +msgstr "Š_Š±ŠµŃŠµŠ³ŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń ŃŠŗā¦" + +#: ../shell/ev-window.c:5277 +msgid "Zoom" +msgstr "ŠŠ°ŃŃŃŠ°Š±" + +#: ../shell/ev-window.c:5279 +msgid "Adjust the zoom level" +msgstr "ŠŠ¼ŃŠ½ŠøŃŠø Š¼Š°ŃŃŃŠ°Š±" + +#: ../shell/ev-window.c:5289 +msgid "Navigation" +msgstr "ŠŠµŃŠµŠ¼ŃŃŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5291 +msgid "Back" +msgstr "ŠŠ°Š·Š°Š“" + +#. translators: this is the history action +#: ../shell/ev-window.c:5294 +msgid "Move across visited pages" +msgstr "ŠŠµŃŠµŠ¼ŃŃŠµŠ½Š½Ń ŠæŠ¾ Š²ŃŠ“Š²ŃŠ“Š°Š½ŠøŠ¼ ŃŃŠ¾ŃŃŠ½ŠŗŠ°Š¼" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5324 +msgid "Previous" +msgstr "ŠŠ¾ŠæŠµŃŠµŠ“Š½Ń" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5329 +msgid "Next" +msgstr "ŠŠ°ŃŃŃŠæŠ½Š°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5333 +msgid "Zoom In" +msgstr "ŠŠ±ŃŠ»ŃŃŠøŃŠø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5337 +msgid "Zoom Out" +msgstr "ŠŠ¼ŠµŠ½ŃŠøŃŠø" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5345 +msgid "Fit Width" +msgstr "ŠŠ¾ ŃŠøŃŠøŠ½Ń ŃŃŠ¾ŃŃŠ½ŠŗŠø" + +#: ../shell/ev-window.c:5506 ../shell/ev-window.c:5523 +msgid "Unable to launch external application." +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š·Š¾Š²Š½ŃŃŠ½Ń ŠæŃŠ¾Š³ŃŠ°Š¼Ń." + +#: ../shell/ev-window.c:5580 +msgid "Unable to open external link" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š·Š¾Š²Š½ŃŃŠ½Ń ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń" + +#: ../shell/ev-window.c:5747 +msgid "Couldn't find appropriate format to save image" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š½Š°Š¹ŃŠø Š²ŃŠ“ŠæŠ¾Š²ŃŠ“Š½ŠøŠ¹ ŃŠ¾ŃŠ¼Š°Ń Š“Š»Ń Š·Š±ŠµŃŠµŠ¶ŠµŠ½Š½Ń Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5789 +msgid "The image could not be saved." +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š·Š±ŠµŃŠµŠ³ŃŠø Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń." + +#: ../shell/ev-window.c:5821 +msgid "Save Image" +msgstr "ŠŠ±ŠµŃŠµŠ³ŃŠø Š·Š¾Š±ŃŠ°Š¶ŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5888 +msgid "Unable to open attachment" +msgstr "ŠŠµ Š²Š“Š°ŃŃŃŃŃ Š²ŃŠ“ŠŗŃŠøŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń" + +#: ../shell/ev-window.c:5941 +msgid "The attachment could not be saved." +msgstr "ŠŠŗŠ»Š°Š“ŠµŠ½Š½Ń Š·Š±ŠµŃŠµŠ³ŃŠø Š½ŠµŠ¼Š¾Š¶Š»ŠøŠ²Š¾." + +#: ../shell/ev-window.c:5986 +msgid "Save Attachment" +msgstr "ŠŠ±ŠµŃŠµŠ³ŃŠø Š²ŠŗŠ»Š°Š“ŠµŠ½Š½Ń" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s - Š²ŠøŠ¼Š°Š³Š°ŃŃŃŃŃ ŠæŠ°ŃŠ¾Š»Ń" + +#: ../shell/ev-utils.c:315 +msgid "By extension" +msgstr "ŠŠ° ŃŠ¾Š·ŃŠøŃŠµŠ½Š½ŃŠ¼" + +#: ../shell/main.c:70 ../shell/main.c:246 +msgid "MATE Document Viewer" +msgstr "ŠŠµŃŠµŠ³Š»ŃŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² Ń MATE" + +#: ../shell/main.c:78 +msgid "The page of the document to display." +msgstr "ŠŠµŃŠµŠ¹ŃŠø Š“Š¾ ŃŃŠ¾ŃŃŠ½ŠŗŠø Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°." + +#: ../shell/main.c:78 +msgid "PAGE" +msgstr "Š”ŃŠ¾ŃŃŠ½ŠŗŠ°" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø evince Ń ŠæŠ¾Š²Š½Š¾ŠµŠŗŃŠ°Š½Š½Š¾Š³Š¾ ŃŠµŠ¶ŠøŠ¼Ń" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø evince Ń ŃŠµŠ¶ŠøŠ¼Ń ŠæŃŠµŠ·ŠµŠ½ŃŠ°ŃŃŃ" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "ŠŠ°ŠæŃŃŃŠøŃŠø evince Ń ŃŠµŠ¶ŠøŠ¼Ń ŠæŠ¾ŠæŠµŃŠµŠ“Š½ŃŠ¾Š³Š¾ ŠæŠµŃŠµŠ³Š»ŃŠ“Ń" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "Š”Š»Š¾Š²Š¾ ŃŠø ŃŃŠ°Š·Š°, ŃŠ¾ ŃŃŠŗŠ°ŃŃŃŃŃ Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "Š ŠÆŠŠŠ" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[Š¤ŠŠŠā¦]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "" +"ŠŠ¾Š¶Š»ŠøŠ²Šµ Š»Š¾Š³ŃŃŠ½Šµ Š·Š½Š°ŃŠµŠ½Š½Ń: true Š²Š¼ŠøŠŗŠ°Ń ŃŃŠ²Š¾ŃŠµŠ½Š½Ń Š¼ŃŠ½ŃŠ°ŃŃŃ, Š° false Š²ŠøŠ¼ŠøŠŗŠ°Ń" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Š£Š²ŃŠ¼ŠŗŠ½ŃŃŠø ŠæŠµŃŠµŠ³Š»ŃŠ“ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "ŠŠ¾Š¼Š°Š½Š“Š° ŃŃŠ²Š¾ŃŠµŠ½Š½Ń Š¼ŃŠ½ŃŠ°ŃŃŃ Š“Š»Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŃŠ² PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ŠŠ¾Š¼Š°Š½Š“Š° ŃŠ° Š°ŃŠ³ŃŠ¼ŠµŠ½ŃŠø Š“Š»Ń Š·Š°ŠæŃŃŠŗŃ ŠæŃŠ¾Š³ŃŠ°Š¼Šø ŃŃŠ²Š¾ŃŠµŠ½Š½Ń Š¼ŃŠ½ŃŠ°ŃŃŃ Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ° PDF. " +"ŠŠ¾Š“Š°ŃŠŗŠ¾Š²Ń ŃŠ½ŃŠ¾ŃŠ¼Š°ŃŃŃ Š“ŠøŠ²ŃŃŃŃŃ Ń Š“Š¾ŠŗŃŠ¼ŠµŠ½ŃŠ°ŃŃŃ Š· caja." diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 00000000..07595e49 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,1424 @@ +# Vietnamese translation for Evince. +# Copyright Ā© 2009 MATE i18n Project for Vietnamese. +# Clytie Siddall <clytie@riverland.net.au>, 2005-2009. +# Nguyį» n ThĆ”i Ngį»c Duy <pclouds@gmail.com>, 2008. +# Nguyį» n ÄƬnh Trung <nguyendinhtrung141@gmail.com>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: evince MATE TRUNK\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?product=evince&component=general\n" +"POT-Creation-Date: 2009-02-01 11:33+0000\n" +"PO-Revision-Date: 2009-02-07 16:05+0930\n" +"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#: ../backend/comics/comics-document.c:162 +#, c-format +msgid "File corrupted." +msgstr "Tįŗp tin bį» hį»ng." + +#: ../backend/comics/comics-document.c:196 +#, c-format +msgid "No images found in archive %s" +msgstr "KhĆ“ng tƬm thįŗ„y įŗ£nh trong kho %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Truyį»n tranh vui" + +#: ../backend/djvu/djvu-document.c:247 +#, c-format +msgid "The document is composed by several files. One or more of such files cannot be accessed." +msgstr "TĆ i liį»u ÄĘ°į»£c tįŗ”o thĆ nh tį»« nhiį»u tįŗp tin. Mį»t trong sį» ÄĆ³ khĆ“ng thį» truy cįŗp ÄĘ°į»£c." + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "Djvu Documents" +msgstr "TĆ i liį»u Djvu" + +#: ../backend/dvi/dvi-document.c:96 +#, c-format +msgid "File not available" +msgstr "Tįŗp tin khĆ“ng sįŗµn sĆ ng." + +#: ../backend/dvi/dvi-document.c:112 +#, c-format +msgid "DVI document has incorrect format" +msgstr "TĆ i liį»u DVI cĆ³ Äį»nh dįŗ”ng khĆ“ng ÄĆŗng" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "TĆ i liį»u DVI" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:699 +msgid "Yes" +msgstr "CĆ³" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:702 +msgid "No" +msgstr "KhĆ“ng" + +#: ../backend/pdf/ev-poppler.cc:776 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:778 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:780 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:782 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:784 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:786 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:788 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:790 +msgid "Unknown font type" +msgstr "Kiį»u phĆ“ng chį»Æ lįŗ”" + +#: ../backend/pdf/ev-poppler.cc:816 +msgid "No name" +msgstr "KhĆ“ng tĆŖn" + +#: ../backend/pdf/ev-poppler.cc:824 +msgid "Embedded subset" +msgstr "Tįŗp con nhĆŗng" + +#: ../backend/pdf/ev-poppler.cc:826 +msgid "Embedded" +msgstr "NhĆŗng" + +#: ../backend/pdf/ev-poppler.cc:828 +msgid "Not embedded" +msgstr "KhĆ“ng nhĆŗng" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "TĆ i liį»u PDF" + +#: ../backend/impress/impress-document.c:297 +#, c-format +msgid "Remote files aren't supported" +msgstr "Tįŗp tin tį»« xa khĆ“ng ÄĘ°į»£c hį» trį»£" + +#: ../backend/impress/impress-document.c:308 +#, c-format +msgid "Invalid document" +msgstr "TĆ i liį»u khĆ“ng hį»£p lį»" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "įŗ¢nh chiį»u Impress" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "KhĆ“ng lį»i" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "KhĆ“ng Äį»§ bį» nhį»" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find zip signature" +msgstr "KhĆ“ng tƬm thįŗ„y chį»Æ kĆ zip" + +#: ../backend/impress/zip.c:62 +msgid "Invalid zip file" +msgstr "Tįŗp tin zip khĆ“ng hį»£p lį»" + +#: ../backend/impress/zip.c:65 +msgid "Multi file zips are not supported" +msgstr "KhĆ“ng hį» trį»£ kho nĆ©n zip Äa tįŗp tin" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "KhĆ“ng thį» mį» tįŗp tin" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "KhĆ“ng thį» Äį»c dį»Æ liį»u tį»« tįŗp tin" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the zip archive" +msgstr "KhĆ“ng tƬm thįŗ„y tįŗp tin trong kho nĆ©n zip" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "Lį»i khĆ“ng xĆ”c Äį»nh" + +#: ../backend/ps/ev-spectre.c:113 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "Lį»i khi tįŗ£i tĆ i liį»u '%s'" + +#: ../backend/ps/ev-spectre.c:146 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "Lį»i khi lĘ°u tĆ i liį»u '%s'" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "TĆ i liį»u Postscript" + +#: ../libdocument/ev-attachment.c:304 +#: ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "KhĆ“ng thį» lĘ°u phįŗ§n ÄĆnh kĆØm '%s': %s" + +#: ../libdocument/ev-attachment.c:373 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "KhĆ“ng thį» mį» phįŗ§n ÄĆnh kĆØm '%s': %s" + +#: ../libdocument/ev-attachment.c:408 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "KhĆ“ng thį» mį» Äį» phįŗ§n ÄĆnh kĆØm '%s'" + +#: ../libdocument/ev-document-factory.c:127 +#: ../libdocument/ev-document-factory.c:248 +#, c-format +msgid "Unknown MIME Type" +msgstr "KhĆ“ng biįŗæt kiį»u MIME" + +#: ../libdocument/ev-document-factory.c:147 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "KhĆ“ng hį» trį»£ dįŗ”ng tįŗp tin %s (%s)" + +#: ../libdocument/ev-document-factory.c:303 +msgid "All Documents" +msgstr "Mį»i tĆ i liį»u" + +#: ../libdocument/ev-document-factory.c:335 +msgid "All Files" +msgstr "Mį»i tįŗp tin" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:439 +msgid "Co_nnect" +msgstr "Kįŗæt _nį»i" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:483 +msgid "Connect _anonymously" +msgstr "Kįŗæt nį»i nįŗ·c d_anh" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:492 +msgid "Connect as u_ser:" +msgstr "Kįŗæt nį»i dĘ°į»i n_gĘ°į»i dĆ¹ng:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:529 +msgid "_Username:" +msgstr "TĆŖn ngĘ°į»i _dĆ¹ng:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:533 +msgid "_Domain:" +msgstr "_TĆŖn miį»n:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:538 +#: ../shell/ev-password-view.c:332 +msgid "_Password:" +msgstr "_Mįŗt khįŗ©u:" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:553 +msgid "_Forget password immediately" +msgstr "_KhĆ“ng lĘ°u mįŗt mįŗt khįŗ©u" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:561 +msgid "_Remember password until you logout" +msgstr "_Nhį» mįŗt khįŗ©u Äįŗæn khi bįŗ”n ÄÄng xuįŗ„t" + +#: ../cut-n-paste/evmountoperation/ev-mount-operation.c:569 +msgid "_Remember forever" +msgstr "_LuĆ“n lĘ°u mįŗt khįŗ©u" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Tįŗp tin khĆ“ng phįŗ£i lĆ tįŗp tin .desktop hį»£p lį»" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "KhĆ“ng nhįŗn dįŗ”ng ÄĘ°į»£c phiĆŖn bįŗ£n tįŗp tin desktop '%s'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Äang chįŗ”y %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "į»Øng dį»„ng khĆ“ng chįŗ„p nhįŗn tĆ i liį»u tį»« dĆ²ng lį»nh" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "KhĆ“ng nhįŗn dįŗ”ng ÄĘ°į»£c tuį»³ chį»n chįŗ”y: %d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "KhĆ“ng thį» chuyį»n URI cį»§a tĆ i liį»u cho mį»„c desktop 'Type=Link'" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Mį»„c khĆ“ng thį» chįŗ”y" + +#: ../cut-n-paste/smclient/eggsmclient.c:224 +msgid "Disable connection to session manager" +msgstr "TįŗÆt kįŗæt nį»i Äįŗæn bį» quįŗ£n lĆ½ phiĆŖn lĆ m viį»c" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "Specify file containing saved configuration" +msgstr "XĆ”c Äį»nh tįŗp tin chį»©a cįŗ„u hƬnh ÄĆ£ lĘ°u" + +#: ../cut-n-paste/smclient/eggsmclient.c:227 +msgid "FILE" +msgstr "Tįŗ¬P TIN" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "Specify session management ID" +msgstr "XĆ”c Äį»nh ID quįŗ£n lĆ½ phiĆŖn lĆ m viį»c" + +#: ../cut-n-paste/smclient/eggsmclient.c:230 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:244 +#| msgid "Session Management Options" +msgid "Session management options:" +msgstr "CĆ”c tuį»³ chį»n quįŗ£n lĆ½ buį»i hį»£p:" + +#: ../cut-n-paste/smclient/eggsmclient.c:245 +#| msgid "Show Session Management options" +msgid "Show session management options" +msgstr "Hiį»n thį» cĆ”c tuį»³ chį»n quįŗ£n lĆ½ buį»i hį»£p" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:918 +#, c-format +msgid "Show ā_%sā" +msgstr "Hiį»n '_%s'" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1381 +msgid "_Move on Toolbar" +msgstr "_Di chuyį»n trĆŖn thanh cĆ“ng cį»„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1382 +msgid "Move the selected item on the toolbar" +msgstr "Di chuyį»n mį»„c ÄĆ£ chį»n trĆŖn thanh cĆ“ng cį»„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1383 +msgid "_Remove from Toolbar" +msgstr "_Gį»” khį»i thanh cĆ“ng cį»„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1384 +msgid "Remove the selected item from the toolbar" +msgstr "Gį»” mį»„c ÄĆ£ chį»n khį»i thanh cĆ“ng cį»„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1385 +msgid "_Delete Toolbar" +msgstr "_XoĆ” thanh cĆ“ng cį»„" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1386 +msgid "Remove the selected toolbar" +msgstr "XoĆ” thanh cĆ“ng cį»„ ÄĆ£ chį»n" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:485 +msgid "Separator" +msgstr "Thanh phĆ¢n cĆ”ch" + +#: ../cut-n-paste/totem-screensaver/totem-scrsaver.c:111 +msgid "Running in presentation mode" +msgstr "Äang chįŗ”y trong chįŗæ Äį» trƬnh diį» n" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 +#: ../shell/ev-window.c:5276 +msgid "Best Fit" +msgstr "Vį»«a khĆt" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "Vį»«a Äį» rį»ng trang" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../data/evince.desktop.in.in.h:1 +#: ../shell/ev-window.c:4254 +#: ../shell/ev-window-title.c:149 +#, c-format +msgid "Document Viewer" +msgstr "Bį» xem tĆ i liį»u" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multipage documents" +msgstr "Xem tĆ i liį»u nhiį»u trang" + +#: ../data/evince.schemas.in.h:1 +msgid "Override document restrictions" +msgstr "Bį» hįŗ”n chįŗæ tĆ i liį»u" + +#: ../data/evince.schemas.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "Bį» qua nhį»Æng hįŗ”n chįŗæ cį»§a tĆ i liį»u, nhĘ° hįŗ”n chįŗæ sao chĆ©p hay in." + +#: ../properties/ev-properties-main.c:113 +msgid "Document" +msgstr "TĆ i liį»u" + +#: ../properties/ev-properties-view.c:59 +#| msgid "_File" +msgid "Title" +msgstr "Tį»±a Äį»" + +#: ../properties/ev-properties-view.c:60 +msgid "Location" +msgstr "Vį» trĆ" + +#: ../properties/ev-properties-view.c:61 +#| msgid "<b>Subject:</b>" +msgid "Subject" +msgstr "Chį»§ Äį»" + +#: ../properties/ev-properties-view.c:62 +#| msgid "<b>Author:</b>" +msgid "Author" +msgstr "TĆ”c giįŗ£" + +#: ../properties/ev-properties-view.c:63 +#| msgid "<b>Keywords:</b>" +msgid "Keywords" +msgstr "Tį»« khoĆ”" + +#: ../properties/ev-properties-view.c:64 +#| msgid "<b>Producer:</b>" +msgid "Producer" +msgstr "Chį»§ nhiį»m" + +#: ../properties/ev-properties-view.c:65 +#| msgid "<b>Creator:</b>" +msgid "Creator" +msgstr "NgĘ°į»i tįŗ”o" + +#: ../properties/ev-properties-view.c:66 +#| msgid "<b>Created:</b>" +msgid "Created" +msgstr "NgĆ y tįŗ”o" + +#: ../properties/ev-properties-view.c:67 +#| msgid "<b>Modified:</b>" +msgid "Modified" +msgstr "NgĆ y sį»a" + +#: ../properties/ev-properties-view.c:68 +#| msgid "<b>Number of Pages:</b>" +msgid "Number of Pages" +msgstr "Sį» trang" + +#: ../properties/ev-properties-view.c:69 +#| msgid "<b>Optimized:</b>" +msgid "Optimized" +msgstr "Tį»i Ę°u" + +#: ../properties/ev-properties-view.c:70 +#| msgid "<b>Format:</b>" +msgid "Format" +msgstr "Äį»nh dįŗ”ng" + +#: ../properties/ev-properties-view.c:71 +#| msgid "<b>Security:</b>" +msgid "Security" +msgstr "Bįŗ£o mįŗt" + +#: ../properties/ev-properties-view.c:72 +#| msgid "<b>Paper Size:</b>" +msgid "Paper Size" +msgstr "KĆch cį»” tį» giįŗ„y" + +#: ../properties/ev-properties-view.c:202 +msgid "None" +msgstr "KhĆ“ng cĆ³" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:227 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:271 +#, c-format +msgid "%.0f x %.0f mm" +msgstr "%.0f x %.0f mm" + +#: ../properties/ev-properties-view.c:275 +#, c-format +msgid "%.2f x %.2f inch" +msgstr "%.2f x %.2f inch" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:299 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, Dį»c (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:306 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, Ngang (%s)" + +#: ../libview/ev-jobs.c:949 +#, c-format +msgid "Failed to create file ā%sā: %s" +msgstr "Lį»i khi tįŗ”o tįŗp tin '%s': %s" + +#: ../libview/ev-view-accessible.c:41 +msgid "Scroll Up" +msgstr "Cuį»n lĆŖn" + +#: ../libview/ev-view-accessible.c:42 +msgid "Scroll Down" +msgstr "Cuį»n xuį»ng" + +#: ../libview/ev-view-accessible.c:48 +msgid "Scroll View Up" +msgstr "Cuį»n khung xem lĆŖn" + +#: ../libview/ev-view-accessible.c:49 +msgid "Scroll View Down" +msgstr "Cuį»n khung xem xuį»ng" + +#: ../libview/ev-view-accessible.c:533 +msgid "Document View" +msgstr "Khung xem tĆ i liį»u" + +#: ../libview/ev-view.c:1417 +msgid "Go to first page" +msgstr "Vį» trang Äįŗ§u" + +#: ../libview/ev-view.c:1419 +msgid "Go to previous page" +msgstr "Vį» trang trĘ°į»c" + +#: ../libview/ev-view.c:1421 +msgid "Go to next page" +msgstr "Tį»i trang tiįŗæp theo" + +#: ../libview/ev-view.c:1423 +msgid "Go to last page" +msgstr "Tį»i trang cuį»i cĆ¹ng" + +#: ../libview/ev-view.c:1425 +msgid "Go to page" +msgstr "Tį»i trang" + +#: ../libview/ev-view.c:1427 +msgid "Find" +msgstr "TƬm" + +#: ../libview/ev-view.c:1455 +#, c-format +msgid "Go to page %s" +msgstr "Äi tį»i trang %s" + +#: ../libview/ev-view.c:1461 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "Tį»i %s trĆŖn tįŗp tin '%s'" + +#: ../libview/ev-view.c:1464 +#, c-format +msgid "Go to file ā%sā" +msgstr "Tį»i tįŗp tin '%s'" + +#: ../libview/ev-view.c:1472 +#, c-format +msgid "Launch %s" +msgstr "Khį»i chįŗ”y %s" + +#: ../libview/ev-view.c:2387 +msgid "End of presentation. Press Escape to exit." +msgstr "HoĆ n tįŗ„t trƬnh diį» n. Bįŗ„m phĆm Esc Äį» thoĆ”t." + +#: ../libview/ev-view.c:3278 +msgid "Jump to page:" +msgstr "Tį»i trang:" + +#: ../libview/ev-view.c:3541 +#: ../shell/ev-sidebar-layers.c:125 +#: ../shell/ev-sidebar-links.c:267 +msgid "Loading..." +msgstr "Äang nįŗ”p..." + +#: ../shell/eggfindbar.c:146 +msgid "Search string" +msgstr "Chuį»i tƬm kiįŗæm" + +#: ../shell/eggfindbar.c:147 +msgid "The name of the string to be found" +msgstr "Chuį»i cįŗ§n tƬm" + +#: ../shell/eggfindbar.c:160 +msgid "Case sensitive" +msgstr "PhĆ¢n biį»t chį»Æ hoa/thĘ°į»ng" + +#: ../shell/eggfindbar.c:161 +msgid "TRUE for a case sensitive search" +msgstr "ÄĆNG khi tƬm kiįŗæm phĆ¢n biį»t chį»Æ hoa/thĘ°į»ng" + +#: ../shell/eggfindbar.c:168 +msgid "Highlight color" +msgstr "MĆ u nį»i bįŗt" + +#: ../shell/eggfindbar.c:169 +msgid "Color of highlight for all matches" +msgstr "MĆ u tĆ“ sĆ”ng cho mį»i mį»„c khį»p" + +#: ../shell/eggfindbar.c:175 +msgid "Current color" +msgstr "MĆ u hiį»n thį»i" + +#: ../shell/eggfindbar.c:176 +msgid "Color of highlight for the current match" +msgstr "MĆ u tĆ“ sĆ”ng cho mį»„c khį»p hiį»n cĆ³" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "TƬm:" + +#: ../shell/eggfindbar.c:329 +#: ../shell/ev-window.c:5010 +msgid "Find Pre_vious" +msgstr "TƬm _ngĘ°į»£c" + +#: ../shell/eggfindbar.c:332 +msgid "Find previous occurrence of the search string" +msgstr "TƬm tiįŗæp theo chiį»u tį»« dĘ°į»i lĆŖn" + +#: ../shell/eggfindbar.c:336 +#: ../shell/ev-window.c:5008 +msgid "Find Ne_xt" +msgstr "TƬm _xuĆ“i" + +#: ../shell/eggfindbar.c:339 +msgid "Find next occurrence of the search string" +msgstr "TƬm tiįŗæp theo chiį»u tį»« trĆŖn xuį»ng" + +#: ../shell/eggfindbar.c:346 +msgid "C_ase Sensitive" +msgstr "_PhĆ¢n biį»t hoa/thĘ°į»ng" + +#: ../shell/eggfindbar.c:349 +msgid "Toggle case sensitive search" +msgstr "Bįŗt/tįŗÆt tƬm kiįŗæm phĆ¢n biį»t hoa/thĘ°į»ng" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "Mįŗt khįŗ©u cho tĆ i liį»u %s" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "Mį» mį»t tĆ i liį»u vį»«a xem" + +#: ../shell/ev-page-action.c:76 +#, c-format +msgid "(%d of %d)" +msgstr "(%d trĆŖn %d)" + +#: ../shell/ev-page-action.c:78 +#, c-format +msgid "of %d" +msgstr "trĆŖn %d" + +#: ../shell/ev-password-view.c:144 +msgid "This document is locked and can only be read by entering the correct password." +msgstr "TĆ i liį»u nĆ y bį» khoĆ” vĆ phįŗ£i nhįŗp mįŗt khįŗ©u ÄĆŗng Äį» Äį»c." + +#: ../shell/ev-password-view.c:153 +#: ../shell/ev-password-view.c:269 +msgid "_Unlock Document" +msgstr "_Mį» khĆ³a tĆ i liį»u" + +#: ../shell/ev-password-view.c:261 +msgid "Enter password" +msgstr "Nhįŗp mįŗt khįŗ©u" + +#: ../shell/ev-password-view.c:301 +msgid "Password required" +msgstr "YĆŖu cįŗ§u nhįŗp mįŗt khįŗ©u" + +#: ../shell/ev-password-view.c:302 +#, c-format +msgid "The document ā%sā is locked and requires a password before it can be opened." +msgstr "TĆ i liį»u '%s' bį» khoĆ” vĆ bįŗ”n cįŗ§n nhįŗp mįŗt khįŗ©u Äį» mį»." + +#: ../shell/ev-password-view.c:365 +#| msgid "_Forget password immediately" +msgid "Forget password _immediately" +msgstr "_QuĆŖn ngay mįŗt khįŗ©u" + +#: ../shell/ev-password-view.c:377 +#| msgid "_Remember password until you logout" +msgid "Remember password until you _logout" +msgstr "Nhį» mįŗt khįŗ©u Äįŗæn khi bįŗ”n ÄÄng _xuįŗ„t" + +#: ../shell/ev-password-view.c:389 +#| msgid "_Remember forever" +msgid "Remember _forever" +msgstr "Nhį» _hįŗ³n" + +#. Initial state +#: ../shell/ev-print-operation.c:318 +msgid "Preparing to print ..." +msgstr "Äang chuįŗ©n bį» in ..." + +#: ../shell/ev-print-operation.c:320 +#| msgid "_Find..." +msgid "Finishing..." +msgstr "Äang kįŗæt thĆŗc..." + +#: ../shell/ev-print-operation.c:322 +#, c-format +msgid "Printing page %d of %d..." +msgstr "Äang in trang %d trĆŖn %d..." + +#: ../shell/ev-print-operation.c:1010 +msgid "Printing is not supported on this printer." +msgstr "KhĆ“ng hį» trį»£ viį»c in trĆŖn mĆ”y in nĆ y." + +#: ../shell/ev-print-operation.c:1136 +#: ../shell/ev-window.c:5061 +msgid "Print" +msgstr "In" + +#: ../shell/ev-properties-dialog.c:57 +msgid "Properties" +msgstr "ThĆ“ng tin" + +#: ../shell/ev-properties-dialog.c:91 +msgid "General" +msgstr "Chung" + +#: ../shell/ev-properties-dialog.c:101 +msgid "Fonts" +msgstr "PhĆ“ng chį»Æ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "PhĆ“ng chį»Æ" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font information... %3d%%" +msgstr "Äang tįŗp hį»£p thĆ“ng tin phĆ“ng chį»Æ... %3d%%" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "ÄĆnh kĆØm" + +#: ../shell/ev-sidebar-layers.c:395 +msgid "Layers" +msgstr "Lį»p" + +#: ../shell/ev-sidebar-links.c:340 +msgid "Print..." +msgstr "In..." + +#: ../shell/ev-sidebar-links.c:720 +msgid "Index" +msgstr "Chį» mį»„c" + +#: ../shell/ev-sidebar-thumbnails.c:751 +msgid "Thumbnails" +msgstr "HƬnh thu nhį»" + +#: ../shell/ev-window.c:837 +#, c-format +msgid "Page %s - %s" +msgstr "Trang %s - %s" + +#: ../shell/ev-window.c:839 +#, c-format +msgid "Page %s" +msgstr "Trang %s" + +#: ../shell/ev-window.c:1261 +msgid "The document contains no pages" +msgstr "TĆ i liį»u khĆ“ng cĆ³ trang nĆ o" + +#: ../shell/ev-window.c:1484 +#: ../shell/ev-window.c:1629 +msgid "Unable to open document" +msgstr "KhĆ“ng mį» ÄĘ°į»£c tĆ i liį»u" + +#: ../shell/ev-window.c:1603 +#, c-format +msgid "Loading document from %s" +msgstr "Äang nįŗ”p tĆ i liį»u tį»« %s" + +#: ../shell/ev-window.c:1741 +#: ../shell/ev-window.c:1934 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "Äang tįŗ£i vį» tĆ i liį»u (%d%%)" + +#: ../shell/ev-window.c:1880 +#, c-format +#| msgid "Reload the document" +msgid "Reloading document from %s" +msgstr "Äang nįŗ”p lįŗ”i tĆ i liį»u tį»« %s" + +#: ../shell/ev-window.c:1913 +#| msgid "Failed to print document" +msgid "Failed to reload document." +msgstr "Lį»i nįŗ”p lįŗ”i tĆ i liį»u." + +#: ../shell/ev-window.c:2052 +msgid "Open Document" +msgstr "Mį» tĆ i liį»u" + +#: ../shell/ev-window.c:2113 +#, c-format +msgid "Couldn't create symlink ā%sā: %s" +msgstr "KhĆ“ng thį» tįŗ”o liĆŖn kįŗæt tĘ°į»£ng trĘ°ng '%s': %s" + +#: ../shell/ev-window.c:2142 +msgid "Cannot open a copy." +msgstr "KhĆ“ng thį» mį» bįŗ£n sao." + +#: ../shell/ev-window.c:2382 +#, c-format +#| msgid "Shrink the document" +msgid "Saving document to %s" +msgstr "Äang lĘ°u tĆ i liį»u vĆ o %s" + +#: ../shell/ev-window.c:2385 +#, c-format +#| msgid "Save Attachment" +msgid "Saving attachment to %s" +msgstr "Äang lĘ°u tįŗp tin ÄĆnh kĆØm vĆ o %s" + +#: ../shell/ev-window.c:2388 +#, c-format +msgid "Saving image to %s" +msgstr "Äang lĘ°u įŗ£nh vĆ o %s" + +#: ../shell/ev-window.c:2433 +#: ../shell/ev-window.c:2530 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "KhĆ“ng thį» lĘ°u tįŗp tin nĆ y thĆ nh '%s'." + +#: ../shell/ev-window.c:2461 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "Äang tįŗ£i lĆŖn tĆ i liį»u (%d%%)" + +#: ../shell/ev-window.c:2465 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "Äang tįŗ£i lĆŖn tįŗp tin ÄĆnh kĆØm (%d%%)" + +#: ../shell/ev-window.c:2469 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "Äang tįŗ£i lĆŖn įŗ£nh (%d%%)" + +#: ../shell/ev-window.c:2576 +msgid "Save a Copy" +msgstr "LĘ°u mį»t bįŗ£n sao" + +#: ../shell/ev-window.c:2779 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "%d cĆ“ng viį»c bį» hoĆ£n trong hĆ ng Äį»£i" + +#: ../shell/ev-window.c:2835 +#: ../shell/ev-window.c:3945 +msgid "Failed to print document" +msgstr "Lį»i khi in tĆ i liį»u" + +#: ../shell/ev-window.c:2892 +#, c-format +msgid "Printing job ā%sā" +msgstr "Äang in cĆ“ng viį»c \"%s\"" + +#: ../shell/ev-window.c:3089 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "Äį»£i Äįŗæn khi hoĆ n tįŗ„t cĆ“ng viį»c in \"%s\" trĘ°į»c khi ÄĆ³ng ?" + +#: ../shell/ev-window.c:3092 +#, c-format +msgid "There are %d print jobs active. Wait until print finishes before closing?" +msgstr "CĆ³ %d cĆ“ng viį»c in vįŗ«n hoįŗ”t Äį»ng. Äį»£i Äįŗæn khi hoĆ n tįŗ„t tiįŗæn trƬnh in trĘ°į»c khi in ?" + +#: ../shell/ev-window.c:3104 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "Nįŗæu bįŗ”n ÄĆ³ng cį»a sį» nĆ y thƬ cĆ“ng viį»c in nĆ o bį» hoĆ£n sįŗ½ khĆ“ng ÄĘ°į»£c in." + +#: ../shell/ev-window.c:3108 +msgid "Cancel _print and Close" +msgstr "ThĆ“_i in vĆ ÄĆ³ng" + +#: ../shell/ev-window.c:3112 +msgid "Close _after Printing" +msgstr "ÄĆ³ng s_au khi In" + +#: ../shell/ev-window.c:3715 +msgid "Toolbar Editor" +msgstr "Bį» sį»a Äį»i thanh cĆ“ng cį»„" + +#: ../shell/ev-window.c:3847 +msgid "There was an error displaying help" +msgstr "Gįŗ·p lį»i khi hiį»n thį» trį»£ giĆŗp" + +#: ../shell/ev-window.c:4250 +#, c-format +msgid "" +"Document Viewer.\n" +"Using poppler %s (%s)" +msgstr "" +"Bį» xem tĆ i liį»u.\n" +"DĆ¹ng poppler %s (%s)" + +#: ../shell/ev-window.c:4278 +msgid "Evince 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 2 of the License, or (at your option) any later version.\n" +msgstr "Evince lĆ phįŗ§n mį»m tį»± do; bįŗ”n cĆ³ thį» phĆ”t hĆ nh lįŗ”i nĆ³ vĆ /hoįŗ·c sį»a Äį»i nĆ³ theo cĆ”c Äiį»u khoįŗ£n cį»§a Giįŗ„y phĆ©p CĆ“ng cį»ng GNU nhĘ° ÄĘ°į»£c xuįŗ„t bįŗ£n bį»i Tį» chį»©c Phįŗ§n mį»m Tį»± do; hoįŗ·c phiĆŖn bįŗ£n 2 cį»§a Giįŗ„y phĆ©p nĆ y, hoįŗ·c bįŗ„t kƬ phiĆŖn bįŗ£n sau nĆ o (tuį»³ Ć½).\n" + +#: ../shell/ev-window.c:4282 +msgid "Evince 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.\n" +msgstr "Evince ÄĘ°į»£c phĆ¢n phį»i vį»i mong muį»n nĆ³ sįŗ½ lĆ mį»t phįŗ§n mį»m cĆ³ Ćch, nhĘ°ng KHĆNG PHįŗ¢I CHį»U Bįŗ¤T KĆ TRĆCH NHIį»M NĆO. Xem Giįŗ„y phĆ©p CĆ“ng cį»ng GNU Äį» biįŗæt thĆŖm chi tiįŗæt.\n" + +#: ../shell/ev-window.c:4286 +msgid "You should have received a copy of the GNU General Public License along with Evince; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Bįŗ”n ÄĆ£ nhįŗn mį»t bįŗ£n sao cį»§a Giįŗ„y phĆ©p CĆ“ng cį»ng GNU cĆ¹ng vį»i chĘ°Ę”ng trƬnh nĆ y; nįŗæu khĆ“ng, hĆ£y liĆŖn hį» Tį» chį»©c Phįŗ§n mį»m Tį»± do,\n" +"Free Software Foundation, Inc.,\n" +" 51 Franklin Street, Fifth Floor,\n" +"Boston, MA 02110-1301, USA\n" + +#: ../shell/ev-window.c:4310 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4313 +msgid "Ā© 1996-2007 The Evince authors" +msgstr "Ā© nÄm 1996-2007 cį»§a cĆ”c tĆ”c giįŗ£ Evince" + +#: ../shell/ev-window.c:4319 +msgid "translator-credits" +msgstr "" +"NhĆ³m Viį»t hoĆ” Mate <matevi-list@lists.sourceforge.net>\n" +"\n" +"Launchpad Contributions:\n" +" Clytie Siddall https://launchpad.net/~clytie\n" +" LĆŖ Quį»c ThĆ”i https://launchpad.net/~lquocthai" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4537 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "TƬm thįŗ„y %d trĆŖn trang nĆ y." + +#: ../shell/ev-window.c:4545 +#, c-format +msgid "%3d%% remaining to search" +msgstr "%3d%% cĆ²n lįŗ”i cįŗ§n tƬm kiįŗæm." + +#: ../shell/ev-window.c:4973 +msgid "_File" +msgstr "_Tįŗp tin" + +#: ../shell/ev-window.c:4974 +msgid "_Edit" +msgstr "_Hiį»u chį»nh" + +#: ../shell/ev-window.c:4975 +msgid "_View" +msgstr "_Xem" + +#: ../shell/ev-window.c:4976 +msgid "_Go" +msgstr "_Di chuyį»n" + +#: ../shell/ev-window.c:4977 +msgid "_Help" +msgstr "Trį»£ _giĆŗp" + +#. File menu +#: ../shell/ev-window.c:4980 +#: ../shell/ev-window.c:5159 +#: ../shell/ev-window.c:5238 +msgid "_Open..." +msgstr "_Mį»..." + +#: ../shell/ev-window.c:4981 +#: ../shell/ev-window.c:5239 +msgid "Open an existing document" +msgstr "Mį» tĆ i liį»u" + +#: ../shell/ev-window.c:4983 +msgid "Op_en a Copy" +msgstr "Mį» _bįŗ£n sao" + +#: ../shell/ev-window.c:4984 +msgid "Open a copy of the current document in a new window" +msgstr "Mį» mį»t bįŗ£n sao cį»§a tĆ i liį»u hiį»n thį»i trong cį»a sį» mį»i" + +#: ../shell/ev-window.c:4986 +#: ../shell/ev-window.c:5161 +msgid "_Save a Copy..." +msgstr "LĘ°u mį»t bįŗ£n _sao..." + +#: ../shell/ev-window.c:4987 +msgid "Save a copy of the current document" +msgstr "LĘ°u mį»t bįŗ£n sao cį»§a tĆ i liį»u hiį»n cĆ³" + +#: ../shell/ev-window.c:4989 +msgid "Print Set_up..." +msgstr "Thiįŗæt lįŗ_p in įŗ„n..." + +#: ../shell/ev-window.c:4990 +msgid "Setup the page settings for printing" +msgstr "Thiįŗæt lįŗp trang Äį» in" + +#: ../shell/ev-window.c:4992 +msgid "_Print..." +msgstr "_In..." + +#: ../shell/ev-window.c:4993 +#: ../shell/ev-window.c:5062 +msgid "Print this document" +msgstr "In tĆ i liį»u nĆ y" + +#: ../shell/ev-window.c:4995 +msgid "P_roperties" +msgstr "_ThĆ“ng tin" + +#: ../shell/ev-window.c:5003 +msgid "Select _All" +msgstr "Chį»n _hįŗæt" + +#: ../shell/ev-window.c:5005 +msgid "_Find..." +msgstr "_TƬm..." + +#: ../shell/ev-window.c:5006 +msgid "Find a word or phrase in the document" +msgstr "TƬm mį»t tį»« hay cį»„m tį»« trong tĆ i liį»u" + +#: ../shell/ev-window.c:5012 +msgid "T_oolbar" +msgstr "Thanh _cĆ“ng cį»„" + +#: ../shell/ev-window.c:5014 +msgid "Rotate _Left" +msgstr "Xoay _trĆ”i" + +#: ../shell/ev-window.c:5016 +msgid "Rotate _Right" +msgstr "Xoay _phįŗ£i" + +#: ../shell/ev-window.c:5021 +msgid "Enlarge the document" +msgstr "PhĆ³ng to tĆ i liį»u" + +#: ../shell/ev-window.c:5024 +msgid "Shrink the document" +msgstr "Thu nhį» tĆ i liį»u" + +#: ../shell/ev-window.c:5026 +msgid "_Reload" +msgstr "Nįŗ”p _lįŗ”i" + +#: ../shell/ev-window.c:5027 +msgid "Reload the document" +msgstr "Cįŗp nhįŗt nį»i dung tĆ i liį»u" + +#: ../shell/ev-window.c:5030 +msgid "Auto_scroll" +msgstr "Tį»± Äį»ng _cuį»n" + +#. Go menu +#: ../shell/ev-window.c:5034 +msgid "_Previous Page" +msgstr "Trang _trĘ°į»c" + +#: ../shell/ev-window.c:5035 +msgid "Go to the previous page" +msgstr "Vį» trang trĘ°į»c" + +#: ../shell/ev-window.c:5037 +msgid "_Next Page" +msgstr "Trang _sau" + +#: ../shell/ev-window.c:5038 +msgid "Go to the next page" +msgstr "Äi tį»i trang kįŗæ tiįŗæp" + +#: ../shell/ev-window.c:5040 +msgid "_First Page" +msgstr "Trang Äįŗ§_u" + +#: ../shell/ev-window.c:5041 +msgid "Go to the first page" +msgstr "Trį» vį» trang Äįŗ§u tiĆŖn" + +#: ../shell/ev-window.c:5043 +msgid "_Last Page" +msgstr "Trang _cuį»i" + +#: ../shell/ev-window.c:5044 +msgid "Go to the last page" +msgstr "Tį»i trang cuį»i" + +#. Help menu +#: ../shell/ev-window.c:5048 +msgid "_Contents" +msgstr "_Nį»i dung" + +#: ../shell/ev-window.c:5051 +msgid "_About" +msgstr "_Giį»i thiį»u" + +#. Toolbar-only +#: ../shell/ev-window.c:5055 +msgid "Leave Fullscreen" +msgstr "Bį» chįŗæ Äį» toĆ n mĆ n hƬnh" + +#: ../shell/ev-window.c:5056 +msgid "Leave fullscreen mode" +msgstr "Rį»i chįŗæ Äį» toĆ n mĆ n hƬnh" + +#: ../shell/ev-window.c:5058 +msgid "Start Presentation" +msgstr "Chįŗ”y trƬnh diį» n" + +#: ../shell/ev-window.c:5059 +msgid "Start a presentation" +msgstr "Khį»i chįŗ”y mį»t trƬnh diį» n" + +#. View Menu +#: ../shell/ev-window.c:5115 +msgid "_Toolbar" +msgstr "Thanh _cĆ“ng cį»„" + +#: ../shell/ev-window.c:5116 +msgid "Show or hide the toolbar" +msgstr "Hiį»n thį» hay įŗ©n thanh cĆ“ng cį»„" + +#: ../shell/ev-window.c:5118 +msgid "Side _Pane" +msgstr "Khun_g lį»" + +#: ../shell/ev-window.c:5119 +msgid "Show or hide the side pane" +msgstr "Hiį»n thį» hay įŗ©n khung lį»" + +#: ../shell/ev-window.c:5121 +msgid "_Continuous" +msgstr "Tiįŗæp tį»„c _suį»t" + +#: ../shell/ev-window.c:5122 +msgid "Show the entire document" +msgstr "Hiį»n thį» toĆ n tĆ i liį»u" + +#: ../shell/ev-window.c:5124 +msgid "_Dual" +msgstr "_PhĆ¢n ÄĆ“i" + +#: ../shell/ev-window.c:5125 +msgid "Show two pages at once" +msgstr "Hiį»n thį» Äį»ng thį»i hai trang" + +#: ../shell/ev-window.c:5127 +msgid "_Fullscreen" +msgstr "ToĆ n _mĆ n hƬnh" + +#: ../shell/ev-window.c:5128 +msgid "Expand the window to fill the screen" +msgstr "Mį» rį»ng cį»a sį» vį»«a mĆ n hƬnh" + +#: ../shell/ev-window.c:5130 +msgid "Pre_sentation" +msgstr "TrƬnh _diį» n" + +#: ../shell/ev-window.c:5131 +msgid "Run document as a presentation" +msgstr "Chįŗ”y tĆ i liį»u lĆ trƬnh diį» n" + +#: ../shell/ev-window.c:5133 +msgid "_Best Fit" +msgstr "_Vį»«a khĆt" + +#: ../shell/ev-window.c:5134 +msgid "Make the current document fill the window" +msgstr "Hiį»n thį» toĆ n bį» trang trong cį»a sį»" + +#: ../shell/ev-window.c:5136 +msgid "Fit Page _Width" +msgstr "Vį»«a Äį» _rį»ng trang" + +#: ../shell/ev-window.c:5137 +msgid "Make the current document fill the window width" +msgstr "Hiį»n thį» trang bįŗ±ng bį» rį»ng cį»a sį»" + +#. Links +#: ../shell/ev-window.c:5144 +msgid "_Open Link" +msgstr "_Mį» liĆŖn kįŗæt" + +#: ../shell/ev-window.c:5146 +msgid "_Go To" +msgstr "_Äi tį»i" + +#: ../shell/ev-window.c:5148 +msgid "Open in New _Window" +msgstr "Mį» trong cį»a _sį» mį»i" + +#: ../shell/ev-window.c:5150 +msgid "_Copy Link Address" +msgstr "_ChĆ©p Äį»a chį» liĆŖn kįŗæt" + +#: ../shell/ev-window.c:5152 +msgid "_Save Image As..." +msgstr "_LĘ°u įŗ£nh dįŗ”ng..." + +#: ../shell/ev-window.c:5154 +msgid "Copy _Image" +msgstr "_ChĆ©p įŗ£nh" + +#: ../shell/ev-window.c:5200 +msgid "Page" +msgstr "Trang" + +#: ../shell/ev-window.c:5201 +msgid "Select Page" +msgstr "Chį»n trang" + +#: ../shell/ev-window.c:5212 +msgid "Zoom" +msgstr "Thu/PhĆ³ng" + +#: ../shell/ev-window.c:5214 +msgid "Adjust the zoom level" +msgstr "Chį»nh cįŗ„p phĆ³ng" + +#: ../shell/ev-window.c:5224 +msgid "Navigation" +msgstr "Duyį»t qua" + +#: ../shell/ev-window.c:5226 +msgid "Back" +msgstr "LĆ¹i" + +#. translators: this is the history action +#: ../shell/ev-window.c:5229 +msgid "Move across visited pages" +msgstr "Duyį»t qua cĆ”c trang ÄĆ£ thÄm" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5259 +msgid "Previous" +msgstr "TrĘ°į»c" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5264 +msgid "Next" +msgstr "Sau" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5268 +msgid "Zoom In" +msgstr "PhĆ³ng to" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5272 +msgid "Zoom Out" +msgstr "Thu nhį»" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5280 +msgid "Fit Width" +msgstr "Vį»«a Äį» rį»ng" + +#: ../shell/ev-window.c:5447 +#: ../shell/ev-window.c:5465 +#| msgid "Unable to open external link" +msgid "Unable to launch external application." +msgstr "KhĆ“ng thį» khį»i chįŗ”y į»©ng dį»„ng bĆŖn ngoĆ i." + +#: ../shell/ev-window.c:5508 +msgid "Unable to open external link" +msgstr "KhĆ“ng thį» mį» liĆŖn kįŗæt bĆŖn ngoĆ i" + +#: ../shell/ev-window.c:5664 +msgid "Couldn't find appropriate format to save image" +msgstr "KhĆ“ng thį» tƬm thįŗ„y dįŗ”ng thį»©c phĆ¹ hį»£p Äį» lĘ°u įŗ£nh" + +#: ../shell/ev-window.c:5703 +msgid "The image could not be saved." +msgstr "KhĆ“ng thį» lĘ°u įŗ£nh." + +#: ../shell/ev-window.c:5735 +msgid "Save Image" +msgstr "LĘ°u įŗ£nh" + +#: ../shell/ev-window.c:5797 +msgid "Unable to open attachment" +msgstr "KhĆ“ng thį» mį» phįŗ§n ÄĆnh kĆØm" + +#: ../shell/ev-window.c:5848 +msgid "The attachment could not be saved." +msgstr "KhĆ“ng thį» lĘ°u phįŗ§n ÄĆnh kĆØm." + +#: ../shell/ev-window.c:5893 +msgid "Save Attachment" +msgstr "LĘ°u phįŗ§n ÄĆnh kĆØm" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s - Password Required" +msgstr "%s ā YĆŖu cįŗ§u mįŗt khįŗ©u" + +#: ../shell/ev-utils.c:330 +msgid "By extension" +msgstr "Theo phįŗ§n mį» rį»ng" + +#: ../shell/main.c:57 +#: ../shell/main.c:345 +msgid "MATE Document Viewer" +msgstr "Bį» xem tĆ i liį»u MATE" + +#: ../shell/main.c:65 +msgid "The page of the document to display." +msgstr "Trang cį»§a tĆ i liį»u cįŗ§n hiį»n thį»." + +#: ../shell/main.c:65 +msgid "PAGE" +msgstr "TRANG" + +#: ../shell/main.c:66 +msgid "Run evince in fullscreen mode" +msgstr "Chįŗ”y Evince į» chįŗæ Äį» toĆ n mĆ n hƬnh" + +#: ../shell/main.c:67 +msgid "Run evince in presentation mode" +msgstr "Chįŗ”y Evince į» chįŗæ Äį» trƬnh diį» n" + +#: ../shell/main.c:68 +msgid "Run evince as a previewer" +msgstr "Chįŗ”y Evince į» chįŗæ Äį» xem thį»" + +#: ../shell/main.c:69 +msgid "The word or phrase to find in the document" +msgstr "Chuį»i cįŗ§n tƬm trong tĆ i liį»u" + +#: ../shell/main.c:69 +msgid "STRING" +msgstr "CHUį»I" + +#: ../shell/main.c:73 +msgid "[FILE...]" +msgstr "[Tįŗ¬P TIN...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "Boolean options available, true enables thumbnailing and false disables the creation of new thumbnails" +msgstr "GiĆ” trį» logic: 'ÄĆŗng' hiį»n thį» hƬnh thu nhį» vĆ 'sai' įŗ©n hƬnh thu nhį»" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "Hiį»n thį» hƬnh thu nhį» cį»§a tĆ i liį»u PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "Lį»nh tįŗ”o hƬnh thu nhį» cho tĆ i liį»u PDF" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "Valid command plus arguments for the PDF Document thumbnailer. See caja thumbnailer documentation for more information." +msgstr "Lį»nh hį»£p lį» cį»ng vį»i Äį»i sį» cho bį» tįŗ”o hƬnh thu nhį» tĆ i liį»u PDF. Xem tĆ i liį»u hĘ°į»ng dįŗ«n Caja vį» hƬnh thu nhį» Äį» biįŗæt thĆŖm thĆ“ng tin." + diff --git a/po/wa.po b/po/wa.po new file mode 100644 index 00000000..9176338e --- /dev/null +++ b/po/wa.po @@ -0,0 +1,682 @@ +# SOME DESCRIPTIVE TITLE. +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Pablo Saratxaga <pablo@walon.org>, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: evince\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-04-01 02:52+0200\n" +"PO-Revision-Date: 2005-04-01 09:05+0200\n" +"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n" +"Language-Team: Walloon <linux-wa@walon.org>\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" + +#: data/evince-password.glade.h:1 +msgid "*" +msgstr "*" + +#: data/evince-password.glade.h:2 +msgid "<span size=\"smaller\"> </span>" +msgstr "<span size=\"smaller\"> </span>" + +#: data/evince-password.glade.h:3 +msgid "_Password:" +msgstr "_Sicret:" + +#: data/evince.desktop.in.h:1 shell/ev-window.c:470 +msgid "Document Viewer" +msgstr "HĆ„yneu di documints" + +#: data/evince.desktop.in.h:2 shell/main.c:87 +msgid "Evince Document Viewer" +msgstr "HĆ„yneu di documints Evince" + +#: data/evince.desktop.in.h:3 +msgid "View multipage documents" +msgstr "Vey des documints multi-pĆ„dje" + +#: data/evince.schemas.in.h:1 +msgid "Default sidebar size" +msgstr "PrĆ©metowe grandeu del bĆ„r di costĆ©" + +#: data/evince.schemas.in.h:2 +msgid "Show sidebar by default" +msgstr "Mostrer l' bĆ„r di costĆ©" + +#: data/evince.schemas.in.h:3 +msgid "Show sidebar by default." +msgstr "Mostrer l' bĆ„r di costĆ© come prĆ©metowe dujhance." + +#: data/evince.schemas.in.h:4 +msgid "Show statusbar by default" +msgstr "Mostrer l' bĆ„r Ć„s messaedjes" + +#: data/evince.schemas.in.h:5 +msgid "Show statusbar by default." +msgstr "Mostrer l' bĆ„r Ć„s messaedjes come prĆ©metowe dujhance." + +#: data/evince.schemas.in.h:6 +msgid "Show toolbar by default" +msgstr "Mostrer l' bĆ„r Ć„s usteyes" + +#: data/evince.schemas.in.h:7 +msgid "Show toolbar by default." +msgstr "Mostrer l' bĆ„r Ć„s usteyes come prĆ©metowe dujhance." + +#: data/evince.schemas.in.h:8 +msgid "The default sidebar size." +msgstr "Li prĆ©metowe grandeu del bĆ„r di costĆ©." + +#: ps/gsdefaults.c:30 +msgid "BBox" +msgstr "BBox" + +#: ps/gsdefaults.c:31 +msgid "Letter" +msgstr "US Letter" + +#: ps/gsdefaults.c:32 +msgid "Tabloid" +msgstr "Tabloyide" + +#: ps/gsdefaults.c:33 +msgid "Ledger" +msgstr "Ledger" + +#: ps/gsdefaults.c:34 +msgid "Legal" +msgstr "US Legal" + +#: ps/gsdefaults.c:35 +msgid "Statement" +msgstr "US Statement" + +#: ps/gsdefaults.c:36 +msgid "Executive" +msgstr "US Executive" + +#: ps/gsdefaults.c:37 +msgid "A0" +msgstr "A0" + +#: ps/gsdefaults.c:38 +msgid "A1" +msgstr "A1" + +#: ps/gsdefaults.c:39 +msgid "A2" +msgstr "A2" + +#: ps/gsdefaults.c:40 +msgid "A3" +msgstr "A3" + +#: ps/gsdefaults.c:41 +msgid "A4" +msgstr "A4" + +#: ps/gsdefaults.c:42 +msgid "A5" +msgstr "A5" + +#: ps/gsdefaults.c:43 +msgid "B4" +msgstr "B4" + +#: ps/gsdefaults.c:44 +msgid "B5" +msgstr "B5" + +#: ps/gsdefaults.c:45 +msgid "Folio" +msgstr "Folio" + +#: ps/gsdefaults.c:46 +msgid "Quarto" +msgstr "Quarto" + +#: ps/gsdefaults.c:47 +msgid "10x14" +msgstr "10x14" + +#: ps/ps-document.c:142 +msgid "No document loaded." +msgstr "Nou documint d' tcherdjĆ®." + +#: ps/ps-document.c:538 +msgid "Broken pipe." +msgstr "Li buzea a stĆ® sketĆ©." + +#: ps/ps-document.c:722 +msgid "Interpreter failed." +msgstr "L' eterpreteua fwait berwete." + +#. report error +#: ps/ps-document.c:844 +#, c-format +msgid "Error while decompressing file %s:\n" +msgstr "Ć k n' a nĆ©n stĆ® tot distrindant l' fitchĆ® %s:\n" + +#: ps/ps-document.c:1037 +#, c-format +msgid "Cannot open file %s.\n" +msgstr "Dji n' a savou drovi l' fitchĆ® %s.\n" + +#: ps/ps-document.c:1039 +msgid "File is not readable." +msgstr "Li fitchĆ® n' est nĆ©n lijhĆ„ve." + +#: ps/ps-document.c:1059 +#, c-format +msgid "Error while scanning file %s\n" +msgstr "Ć k n' a nĆ©n stĆ® tot lijhant l' fitchĆ® %s\n" + +#: ps/ps-document.c:1062 +msgid "The file is not a PostScript document." +msgstr "Li fitchĆ® n' est nĆ©n on documint PostScript." + +#: ps/ps-document.c:1075 +msgid "Document loaded." +msgstr "Documint tcherdjĆ®." + +#: shell/eggfindbar.c:141 +msgid "Search string" +msgstr "Tchinne a cweri" + +#: shell/eggfindbar.c:142 +msgid "The name of the string to be found" +msgstr "Li no del tchinne a cweri aprĆØs" + +#: shell/eggfindbar.c:155 +msgid "Case sensitive" +msgstr "Diferince po ptites et grandĆØs letes" + +#: shell/eggfindbar.c:156 +msgid "TRUE for a case sensitive search" +msgstr "" +"VRAIY po on cweraedje ki fwait l' diferince inte les ptites et les grandĆØs " +"letes" + +#: shell/eggfindbar.c:163 +msgid "Highlight color" +msgstr "Coleur po mete e valeur" + +#: shell/eggfindbar.c:164 +msgid "Color of highlight for all matches" +msgstr "Li coleur po mete e valeur totes les corespondinces" + +#: shell/eggfindbar.c:170 +msgid "Current color" +msgstr "Coleur do moumint" + +#: shell/eggfindbar.c:171 +msgid "Color of highlight for the current match" +msgstr "Li coleur po mete e valeur li corespondince do moumint" + +#: shell/eggfindbar.c:288 +msgid "F_ind:" +msgstr "_Trover:" + +#: shell/eggfindbar.c:301 +msgid "_Previous" +msgstr "Di _dvant" + +#: shell/eggfindbar.c:302 +msgid "_Next" +msgstr "_Shuvant" + +#: shell/eggfindbar.c:314 +msgid "C_ase Sensitive" +msgstr "Diferince pititĆØs/grandĆØs _letes" + +#: shell/ev-application.c:120 +msgid "Open document" +msgstr "Drovi documint" + +#: shell/ev-application.c:130 +msgid "PostScript and PDF Documents" +msgstr "Documints PostScriptet PDF" + +#: shell/ev-application.c:138 +msgid "PostScript Documents" +msgstr "Documints PostScript" + +#: shell/ev-application.c:145 shell/ev-window.c:890 +msgid "PDF Documents" +msgstr "Documints PDF" + +#: shell/ev-application.c:150 +msgid "Images" +msgstr "ImĆ„djes" + +#: shell/ev-application.c:155 shell/ev-window.c:895 +msgid "All Files" +msgstr "Tos les fitchĆ®s" + +#: shell/ev-page-action.c:71 +#, c-format +msgid "of %d" +msgstr "di %d" + +#: shell/ev-password-view.c:111 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "" +"Ci documint chal est serĆ© eyet i n' pĆ“rĆØ esse lĆ©jhou ki si vos dnez li bon " +"scret." + +#: shell/ev-password-view.c:120 +msgid "_Unlock Document" +msgstr "_Disserer l' documint" + +#: shell/ev-password.c:88 +msgid "Unable to find glade file" +msgstr "Dji n' a savou trover l' fitchĆ® glade" + +#: shell/ev-password.c:90 +#, c-format +msgid "" +"The glade file, %s, cannot be found. Please check that your installation is " +"complete." +msgstr "" +"Li fitchĆ® glade, %s, n' a nĆ©n stĆ® trovĆ©. Acertinez vs ki l' astalaedje do " +"programe a bĆ©n stĆ® fwait comifĆ„t s' i vs plait." + +#: shell/ev-password.c:104 +msgid "Password required" +msgstr "I gn a mezĆ„jhe do scret" + +#: shell/ev-password.c:105 +#, c-format +msgid "" +"The document <i>%s</i> is locked and requires a password before it can be " +"opened." +msgstr "" +"Li documint <i>%s</i> est serĆ© eyet i gn a mezĆ„jhe di si scret pol poleur " +"drovi." + +#: shell/ev-password.c:142 +msgid "Incorrect password" +msgstr "MĆ„va scret" + +#: shell/ev-sidebar-links.c:133 +msgid "Loading..." +msgstr "Dji tchedje..." + +#: shell/ev-view.c:719 +#, c-format +msgid "Go to page %s" +msgstr "PotchĆ® al pĆ„dje %s" + +#. g_mutex_unlock (EV_DOC_MUTEX); +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: shell/ev-view.c:1155 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "%d trovĆ© e cisse pĆ„dje ci" +msgstr[1] "%d trovĆ©s e cisse pĆ„dje ci" + +#: shell/ev-view.c:1167 +msgid "Not found" +msgstr "NĆ©n trovĆ©" + +#: shell/ev-view.c:1169 +#, c-format +msgid "%3d%% remaining to search" +msgstr "i dmeure %3d%% po cweri" + +#: shell/ev-window.c:378 +msgid "Unable to open document" +msgstr "Dji n' a savou drovi l' documint" + +#: shell/ev-window.c:464 +msgid "Document Viewer - Password Required" +msgstr "HĆ„yneu d' documints - I gn a mezĆ„jhe d' on scret" + +#: shell/ev-window.c:466 +#, c-format +msgid "%s - Password Required" +msgstr "%s - I gn a mezĆ„jhe d' on scret" + +#: shell/ev-window.c:757 +#, c-format +msgid "Unhandled MIME type: '%s'" +msgstr "SĆ“re MIME nĆ©n sopoirtĆŖye: Ā«%sĀ»" + +#: shell/ev-window.c:861 +#, c-format +msgid "The file could not be saved as \"%s\"." +msgstr "Li fitchĆ® ĆØn pout nĆ©n esse schapĆ© come Ā«%sĀ»." + +#: shell/ev-window.c:882 +msgid "Save a Copy" +msgstr "Schaper ene copeye" + +#: shell/ev-window.c:964 +msgid "Print" +msgstr "Imprimer" + +#: shell/ev-window.c:987 +msgid "Printing is not supported on this printer." +msgstr "L' imprimaedje n' est nĆ©n sopoirtĆ© so cisse sicrirece ci." + +#: shell/ev-window.c:990 +#, c-format +msgid "" +"You were trying to print to a printer using the \"%s\" driver. This program " +"requires a PostScript printer driver." +msgstr "" +"Vos sayĆ®z d' rexhe so ene sicrirece avou l' mineu Ā«%sĀ». Ci programe ci a " +"mezĆ„jhe d' on mineu po scrirece PostScript." + +#: shell/ev-window.c:1042 +msgid "The \"Find\" feature will not work with this document" +msgstr "Li fonccionĆ„litĆ© Ā«TroverĀ» ĆØn va nĆ©n avou Ƨ' documint ci" + +#: shell/ev-window.c:1044 +msgid "Searching for text is only supported for PDF documents." +msgstr "Li cweraedje di tecse est sopoirtĆ© seulmint dins les documints PDF." + +#. Toolbar-only +#: shell/ev-window.c:1260 shell/ev-window.c:2039 +msgid "Leave Fullscreen" +msgstr "Cwiter forrimplixhaedje" + +#: shell/ev-window.c:1645 +msgid "Many..." +msgstr "BrĆ„mint..." + +#: shell/ev-window.c:1650 +msgid "Not so many..." +msgstr "NĆ©n tĆ©lmint..." + +#: shell/ev-window.c:1655 +msgid "" +"Evince is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +msgstr "" +"Evince, c' est on libe programe; vos l' poloz bĆ©n spĆ„de et vos l' poloz\n" +"bĆ©n candjĆ® tot shuvant li Licince Publike DjenerĆ„le (GPL) di GNU eplaideye\n" +"pal Free Software Foundation; Ƨa pout esse li 2e modĆŖye del licince ou\n" +"(si vos inmez mĆ®) ene pus nouve.\n" + +#: shell/ev-window.c:1659 +msgid "" +"Evince is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +msgstr "" +"Li programe est spĆ„rdou avou l' espwer k' i serĆØ ahessĆ„ve,\n" +"mins SINS NOLE WAERANTEYE; dji n' waeranti nĆ©n minme ki vos VINDRĆZ\n" +"bĆ©n li programe ou ki vos vs Ć SIEVRĆZ BĆN PO ENE SĆRE OU L' ĆTE.\n" +"WaitĆ®z li Licince Publike DjenerĆ„le (GPL) di GNU po vey les pondants\n" +"eyet les djondants.\n" + +#: shell/ev-window.c:1663 +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with Evince; if not, write to the Free Software Foundation, Inc.,\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" +"Avou ci programe ci, vos dvrĆ®z aveur rƧuvou ene copeye del Licince Publike\n" +"DjenerĆ„le (GPL) di GNU; si vos n' l' avoz nĆ©n avou, sicrijhoz al\n" +" Free SoftWare Foundation, Inc.,\n" +" 59 Temple Place - Suite 330,\n" +" Boston, MA 02111-1307, USA.\n" + +#: shell/ev-window.c:1685 shell/main.c:82 +msgid "Evince" +msgstr "Evince" + +#: shell/ev-window.c:1688 +msgid "Ā© 1996-2004 The Evince authors" +msgstr "Ā© 1996-2004 les oteurs d' Evince" + +#: shell/ev-window.c:1691 +msgid "PostScript and PDF File Viewer." +msgstr "HĆ„yneu di documints PostScript et PDF." + +#: shell/ev-window.c:1694 +msgid "translator-credits" +msgstr "Pablo Saratxaga <pablo@mandrakesoft.com>" + +#: shell/ev-window.c:1970 +msgid "_File" +msgstr "_FitchĆ®" + +#: shell/ev-window.c:1971 +msgid "_Edit" +msgstr "_CandjĆ®" + +#: shell/ev-window.c:1972 +msgid "_View" +msgstr "_Vey" + +#: shell/ev-window.c:1973 +msgid "_Go" +msgstr "_PotchĆ®" + +#: shell/ev-window.c:1974 +msgid "_Help" +msgstr "_Aidance" + +#: shell/ev-window.c:1978 +msgid "Open an existing document" +msgstr "Drovi on documint k' i gn a" + +#: shell/ev-window.c:1980 +msgid "_Save a Copy..." +msgstr "_Schaper ene copeye..." + +#: shell/ev-window.c:1981 +msgid "Save the current document with a new filename" +msgstr "Schaper l' documint do moumint dins on novea fitchĆ®" + +#: shell/ev-window.c:1983 +msgid "Print..." +msgstr "Imprimer..." + +#: shell/ev-window.c:1984 +msgid "Print this document" +msgstr "Imprimer Ƨ' documintci" + +#: shell/ev-window.c:1987 +msgid "Close this window" +msgstr "ClĆ“re ci purnea chal" + +#: shell/ev-window.c:1992 +msgid "Copy text from the document" +msgstr "CopyĆ® do tecse foĆ» do documint" + +#: shell/ev-window.c:1994 +msgid "Select _All" +msgstr "Tchoezi _totafwait" + +#: shell/ev-window.c:1995 +msgid "Select the entire page" +msgstr "Tchoezi li pĆ„dje en etir" + +#: shell/ev-window.c:1998 +msgid "Find a word or phrase in the document" +msgstr "Trover on mot ou ene frĆ„ze e documint" + +#: shell/ev-window.c:2003 +msgid "Enlarge the document" +msgstr "Ragrandi l' documint" + +#: shell/ev-window.c:2006 +msgid "Shrink the document" +msgstr "Raptiti l' documint" + +#: shell/ev-window.c:2009 +msgid "Reset the zoom level to the default value" +msgstr "Rimete li livea d' zoumaedje a ci prĆ©metowe valixhance" + +#: shell/ev-window.c:2011 +msgid "_Reload" +msgstr "_RitcherdjĆ®" + +#: shell/ev-window.c:2012 +msgid "Reload the document" +msgstr "RitcherdjĆ® l' documint" + +#. Go menu +#: shell/ev-window.c:2016 +msgid "_Previous Page" +msgstr "PĆ„dje di _dvant" + +#: shell/ev-window.c:2017 +msgid "Go to the previous page" +msgstr "PotchĆ® al pĆ„dje di dvant" + +#: shell/ev-window.c:2019 +msgid "_Next Page" +msgstr "PĆ„dje _shuvante" + +#: shell/ev-window.c:2020 +msgid "Go to the next page" +msgstr "PotchĆ® al pĆ„dje shuvante" + +#: shell/ev-window.c:2022 +msgid "_First Page" +msgstr "_Prumire pĆ„dje" + +#: shell/ev-window.c:2023 +msgid "Go to the first page" +msgstr "PotchĆ® al prumire pĆ„dje" + +#: shell/ev-window.c:2025 +msgid "_Last Page" +msgstr "Dieri_nne pĆ„dje" + +#: shell/ev-window.c:2026 +msgid "Go to the last page" +msgstr "PotchĆ® al dierinne pĆ„dje" + +#. Help menu +#: shell/ev-window.c:2030 +msgid "_Contents" +msgstr "Ć d_vins" + +#: shell/ev-window.c:2031 +msgid "Display help for the viewer application" +msgstr "Mostere l' aidance pol programe hĆ„yneu di documints" + +#: shell/ev-window.c:2034 +msgid "_About" +msgstr "Ć _d fwait" + +#: shell/ev-window.c:2035 +msgid "Display credits for the document viewer creators" +msgstr "Mostere les contribouweus eyet oteurs do programe" + +#: shell/ev-window.c:2040 +msgid "Leave fullscreen mode" +msgstr "Cwiter l' mĆ“de forrimplixhaedje del waitroĆ»le" + +#. View Menu +#: shell/ev-window.c:2047 +msgid "_Toolbar" +msgstr "BĆ„r Ć„s _usteyes" + +#: shell/ev-window.c:2048 +msgid "Show or hide the toolbar" +msgstr "Mostrer ou catchĆ® l' bĆ„r Ć„s usteyes" + +#: shell/ev-window.c:2050 +msgid "_Statusbar" +msgstr "BĆ„r Ć„s _messaedjes" + +#: shell/ev-window.c:2051 +msgid "Show or hide the statusbar" +msgstr "Mostrer ou catchĆ® l' bĆ„r Ć„s messaedjes" + +#: shell/ev-window.c:2053 +msgid "Side _pane" +msgstr "_Panea d' costĆ©" + +#: shell/ev-window.c:2054 +msgid "Show or hide the side pane" +msgstr "Mostrer ou catchĆ® l' panea d' costĆ©" + +#: shell/ev-window.c:2056 +msgid "_Fullscreen" +msgstr "_Forrimpli l' waitroĆ»le" + +#: shell/ev-window.c:2057 +msgid "Expand the window to fill the screen" +msgstr "Ragrandi l' purnea disk' a forrimpli l' waitroĆ»le" + +#: shell/ev-window.c:2059 +msgid "_Best Fit" +msgstr "_Meyeu" + +#: shell/ev-window.c:2060 +msgid "Make the current document fill the window" +msgstr "FĆ© ki l' documint rimplixhe Ć„ mĆ® l' purnea" + +#: shell/ev-window.c:2062 +msgid "Fit Page _Width" +msgstr "Rimpli l' _lĆ„rdjeu del pĆ„dje" + +#: shell/ev-window.c:2063 +msgid "Make the current document fill the window width" +msgstr "FĆ© ki l' documint rimplixhe tote li lĆ„rdjeu do purnea" + +#: shell/ev-window.c:2068 +msgid "Single" +msgstr "Simpe" + +#: shell/ev-window.c:2069 +msgid "Show the document one page at a time" +msgstr "Mostrer l' documint ene pĆ„dje Ć„ cĆ“p" + +#: shell/ev-window.c:2071 +msgid "Multi" +msgstr "Multi" + +#: shell/ev-window.c:2072 +msgid "Show the full document at once" +msgstr "Mostrer l' documint en etir (pus d' ene pĆ„dje Ć„ cĆ“p)" + +#: shell/ev-window.c:2108 +msgid "Page" +msgstr "PĆ„dje" + +#: shell/ev-window.c:2109 +msgid "Select Page" +msgstr "Tchoezi pĆ„dje" + +#. translators: this is the label for toolbar button +#: shell/ev-window.c:2124 +msgid "Previous" +msgstr "Di dvant" + +#: shell/ev-window.c:2129 +msgid "Next" +msgstr "Shuvant" + +#. translators: this is the label for toolbar button +#: shell/ev-window.c:2132 +msgid "Fit Width" +msgstr "LĆ„rdjeu" + +#: shell/ev-window.c:2325 +msgid "Index" +msgstr "Indecse" + +#: shell/ev-window.c:2332 +msgid "Thumbnails" +msgstr "ImĆ„djetes" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 00000000..e581f957 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,1853 @@ +# Simplified Chinese translation to evince +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Funda Wang <fundawang@linux.net.cn>, 2004, 2005. +# ēé²(Gan Lu) <rhythm.gan@gmail.com>, 2009. +# Deng Xiyue <manphiz@gmail.com>, 2009. +# Aron Xu <happyaron.xu@gmail.com>, 2009. +# ęØę ę±(Fan Qijiang) <fqj1994@gmail.com>, 2009. +# ęØē« <zyangmath@gmail.com>, 2010. +# ę±ę¶ <bill_zt@sina.com>, 2010. +# Tao Wang <dancefire@gmail.com>, 2010. +# Xhacker Liu <liu.dongyuan@gmail.com>, 2010. +# +# Note: "Comic Book" is a file type, refer to http://en.wikipedia.org/wiki/Comic_Book_Archive_file +msgid "" +msgstr "" +"Project-Id-Version: evince master\n" +"Report-Msgid-Bugs-To: http://bugzilla.mate.org/enter_bug.cgi?" +"product=evince&component=general\n" +"POT-Creation-Date: 2010-08-22 13:20+0000\n" +"PO-Revision-Date: 2010-08-23 09:11+0800\n" +"Last-Translator: ę±ę¶ <bill_zt@sina.com>\n" +"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "å č½½å½ä»¤ā%sāę„č§£å Comic Book ęę”£ę¶åŗéļ¼%s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "åØč§£åčæäøŖ Comic Book ęę”£ę¶ä½æēØå½ä»¤ā%sāå¤±č“„ć" + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "å½ä»¤ā%sāę²”ęę£åøøē»ęć" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "äøęÆ Comic Book ęę”£ē MIME ē±»åļ¼%s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ę ę³ę¾å°åéēå½ä»¤ę„č§£åčæē§ē±»åē Comic Book ęę”£" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ęŖē„ē MIME ē±»å" + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ę件ęå" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "åę”£äøę²”ęę件" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "åę”£ %s äøęŖę¾å°å¾å" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "å é¤ā%sāę¶åŗéć" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "éčÆÆ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "Comic Book ęę”£" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ęę”£ēę ¼å¼äøåƹ" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ę¤ęę”£ē±å¤äøŖę件ē»ęļ¼ččæäŗę件äøēäøäøŖęå¤äøŖę ę³č¢«č®æé®ć" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ęę”£" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ęę”£ēę ¼å¼äøåƹ" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ęę”£" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "čæ锹巄ä½ęÆåØå ¬å ±é¢å" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ęÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "å¦" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ęŖē„åä½ē±»å" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ę åē§°" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "åµå „åé" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "åµå „" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ęŖåµå „" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ęę”£" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ę ęēęę”£" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress å¹»ēÆē" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ę éčÆÆ" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ę²”ęč¶³å¤ēå å" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ę ę³ę¾å° ZIP ē¾å" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ę ęē ZIP ę件" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "äøęÆęå¤ę件 ZIP" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ę ę³ęå¼ę件" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ę ę³ä»ę件čÆ»åę°ę®" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ę ę³åØ ZIP åē¼©å äøę¾å°ę件" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "ęŖē„éčÆÆ" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "č½½å „ęę”£ā%sāå¤±č“„" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "äæåęę”£ā%sāå¤±č“„" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ęę”£" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ę ę³äæåé件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ę ę³ęå¼é件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ę ę³ęå¼é件ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "äøęÆęę件ē±»å %s (%s)" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "å ØéØęę”£" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "å ØéØę件" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "åå»ŗäø“ę¶ę件 %s å¤±č“„ć" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "åå»ŗäø“ę¶ē®å½ %s å¤±č“„ć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ę件äøęÆęęē .desktop ę件" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ę ę³čÆå«ēę”é¢ę件ēę¬ā%sā" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ę£åØåÆåØ %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "åŗēØēØåŗåØå½ä»¤č”äøę„åęę”£" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ę ę³čÆå«ēåÆåØé锹ļ¼%d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ę ę³å°ęę”£ URL ä¼ éē»āType=Linkāēę”é¢é”¹" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "äøęÆåÆč°ēØ锹" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "ē¦ēØå°ä¼čÆē®”ēåØēčæę„" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ęå®å å«å·²äæåé ē½®ēę件" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ę件" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ęå®ä¼čÆē®”ē ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ä¼čÆē®”ēé锹ļ¼" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "ę¾ē¤ŗä¼čÆē®”ēé锹" + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "ę¾ē¤ŗā%sā" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "åØå·„å ·ę äøē§»åØ(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "åØå·„å ·ę äøē§»åØéäø锹" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "ä»å·„å ·ę äøå é¤(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "ä»å·„å ·ę äøå é¤éäø锹" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "å é¤å·„å ·ę (_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "å é¤éäøēå·„å ·ę " + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "åéē¬¦" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "éå锵éæ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "éå锵宽" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ęę”£ę„ēåØ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "ę„ēå¤é”µęę”£" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "åæ½ē„ęę”£éå¶" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "åæ½ē„ęę”£éå¶ļ¼ęÆå¦éå¶å¤å¶ęęå°ć" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "å é¤äø“ę¶ę件" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ęå°č®¾ē½®ę件" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ęę”£é¢č§åØ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ęå°ęę”£å¤±č“„" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "éę©ēęå°ęŗā%sāę²”ęę¾å°" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "äøäø锵(_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "č½¬å°äøäø锵" + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "äøäø锵(_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "č½¬å°äøäø锵" + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ę¾å¤§ęę”£" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ē¼©å°ęę”£" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ęå°" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "ęå°ę¤ęę”£" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "éå锵éæ(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "让å½åęę”£éåēŖå£" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "éå锵宽(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "让å½åęę”£éåēŖå£å®½åŗ¦" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "锵é¢" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "éę©é”µé¢" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ęę”£" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ę é¢ļ¼" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ä½ē½®ļ¼" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "äø»é¢ļ¼" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ä½č ļ¼" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "å ³é®čÆļ¼" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "å¶ä½č ļ¼" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "åå»ŗč ļ¼" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "åå»ŗäŗļ¼" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "äæ®ę¹äŗļ¼" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "锵ę°ļ¼" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ä¼åļ¼" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ę ¼å¼ļ¼" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "å®å Øę§ļ¼" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ēŗøå¼ å¤§å°ļ¼" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ę " + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "é»č®¤ļ¼ęÆ«ē±³" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f x %.0f ęÆ«ē±³" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f x %.2f č±åÆø" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%sļ¼ēŗµå(%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%sļ¼ęØŖå(%s)" + +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(ē¬¬ %d 锵ļ¼å ± %d 锵)" + +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "å ± %d 锵" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "ę£åØč½½å „..." + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ę£åØåå¤ęå°..." + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "å®ęäø..." + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ę£åØęå°ē¬¬ %1$d 锵ļ¼å ± %2$d 锵..." + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "ę¤ęå°ęŗäøęÆęęå°ć" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ę ęē锵é¢éę©" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "č¦å" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ęØéę©ēęå°čå“äøå ę¬ä»»ä½é”µé¢" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "锵é¢ē¼©ę¾ļ¼" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ē¼©å°č³åÆęå°åŗå" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "éåäŗęå°åŗå" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"ē¼©ę¾ęę”£é”µé¢ä»„éåäŗéå®ēęå°ęŗ锵é¢ćä»äøåäøéå®äøäøŖļ¼\n" +"\n" +"ā¢ āå¦āļ¼äøę§č”锵é¢ē¼©ę¾\n" +"\n" +"ā¢ āē¼©å°č³ęå°åŗåāļ¼ē¼©å°å¤§äŗåÆęå°åŗåēęę”£é”µé¢ä»„éåęå°ęŗ锵é¢ēåÆęå°åŗ" +"åć\n" +"\n" +"ā¢ āéåäŗęå°åŗåāļ¼ęč¦ę±ē¼©å°ęę¾å¤§ęę”£é”µé¢ä»„éåęå°ęŗ锵é¢ēåÆęå°åŗåć\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "čŖåØęč½¬å¹¶å± äø" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ęč½¬ęÆäøŖ锵é¢ēęå°ęŗ锵é¢ę¹å仄å¹é ęÆäøŖęę”£é”µé¢ēę¹åćęę”£é”µé¢å°åØęå°ęŗ锵é¢" +"å å± äøć" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ä½æēØęę”£é”µé¢å¤§å°éå®é”µé¢å¤§å°" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "å½åÆēØę¶ļ¼ęÆ锵å°ęå°äŗč·ęę”£é”µé¢åę ·å¤§å°ēēŗøå¼ äøć" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "锵é¢å¤ē" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ęå°é”µé¢ %d å¤±č“„ļ¼ %s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "åäøę»åØ" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "åäøę»åØ" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "åäøę»åØč§å¾" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "åäøę»åØč§å¾" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ęę”£č§å¾" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "č½¬å°ęå®é”µļ¼" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ę¼ē¤ŗęēØæē»ęćåå»éåŗć" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "č½¬å°ē¬¬äø锵" + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "č½¬å°äøäø锵" + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "č½¬å°äøäø锵" + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "č½¬å°ęåäø锵" + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "č½¬å°ęå®é”µ" + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "ę„ę¾" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "č½¬å°ē¬¬ %s 锵" + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "č½¬å°ę件ā%2$sāē %1$s" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "č½¬å°ę件ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "č°ēØ %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "ę„ę¾ļ¼" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ę„ę¾äøäøäøŖ(_V)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "ę„ę¾č¢«ęē“¢åē¬¦äø²ēäøꬔåŗē°" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ę„ę¾äøäøäøŖ(_X)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "ę„ę¾č¢«ęē“¢åē¬¦äø²ēäøꬔåŗē°" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "åŗå大å°å(_A)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "åę¢åŗå大å°åęē“¢" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "å¾ę ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "ē¬č®°" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "čÆč®ŗ" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "å ³é®" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "åø®å©" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ę°ę®µč½" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ꮵč½" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ęå „" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "äŗ¤å" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "åå" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "ęŖē„" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "ę³Øéå±ę§" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "é¢č²ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ę ·å¼ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "éęē" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "äøéęē" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "åå§ēŖå£ē¶ęļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "ęå¼" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "å ³é" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "仄ę¾ę ęØ”å¼čæč”" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ęę”£ %s ēåÆē " + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ę£åØč½¬ę¢ %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "å·²č½¬ę¢ %d äøŖęę”£ļ¼å ± %d äøŖęę”£" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ę£åØč½¬ę¢å ę°ę®" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"č¢« Evince ä½æēØēå ę°ę®å·²ē»ę¹åļ¼å ę¤å®éč¦č¢«čæē§»ćå¦ęčæē§»ęä½č¢«åę¶ļ¼å ę°ę®" +"åę¾å¤å°äøä¼å·„ä½ć" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "ęå¼ęčæä½æēØēęę”£" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "ęę”£å·²č¢«éå®ļ¼åŖč½åØč¾å „ę£ē”®ēåÆē ä¹åęč½čÆ»åć" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "åę¶ęę”£éå®(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "č¾å „åÆē " + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "éč¦åÆē " + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ęę”£ā%sāå·²č½½å „ļ¼ä½åØęå¼ä¹åéč¦åÆē ć" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "åÆē (_P)ļ¼" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ē«å³åæč®°åÆē (_I)" + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "č®°ä½åÆē ē“å°ę³Øé(_L)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ę°øčæč®°ä½(_F)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "å±ę§" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "åøøč§" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "åä½" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ęę”£č®øåÆčÆ" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "åä½" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ę£åØęéåä½äæ”ęÆ... %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ä½æēØę”ę¬¾" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ęę¬č®øåÆčÆ" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ę“å¤äæ”ęÆ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "åč”Ø" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "ę³Øé" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ęę¬" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "ę·»å ęę¬ę³Øé" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "ę·»å " + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ę¤ęę”£äøå å«ä»»ä½ę³Øé" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ē¬¬ %d 锵" + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "é件" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "å±" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ęå°..." + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ē“¢å¼" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ē¼©ē„å¾" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "ē¬¬ %s 锵 - %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "ē¬¬ %s 锵" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ę¤ęę”£äøå å«ä»»ä½é”µé¢" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "čæäøŖęę”£åŖå å«ē©ŗ锵é¢" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ę ę³ęå¼ęę”£" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ä»ā%sāč½½å „ęę”£" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ę£åØäøč½½ęę”£ (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "č½½å „čæēØęę”£å¤±č“„ć" + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "ę£åØä» %s éę°č½½å „ęę”£" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "éę°č½½å „ęę”£å¤±č“„ć" + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "ęå¼ęę”£" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ę£åØäæåęę”£å° %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ę£åØäæåéä»¶å° %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ę£åØäæåå¾ēå° %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ę件ę ę³å¦åäøŗā%sāć" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ę£åØäøä¼ ęę”£ (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ę£åØäøä¼ é件 (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "äøč½½äøä¼ å¾ē (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "äæååÆę¬" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "éåäøę %d äøŖēå¾ ę§č”ēä»»å”" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ę£åØęå°ä»»å”ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "ęę”£å å«äŗå·²ē»å”«åēč”Øåćå¦ęęØäøäæååÆę¬ļ¼äæ®ę¹å°ä¼ę°øä¹ äø¢å¤±ć" + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "ęę”£å å«äŗę°ēęäæ®ę¹čæēę³Øéćå¦ęęØäøäæååÆę¬ļ¼äæ®ę¹å°ä¼ę°øä¹ äø¢å¤±ć" + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "å ³éåäæåęę”£ā%sāēåÆę¬åļ¼" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "å ³éäøäøäæå(_W)" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "äæååÆę¬(_C)" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "å ³éåå ēå¾ č³ęå°ä»»å”ā%sāå®ęåļ¼" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "%d ęå°ä»»å”ęæę“»äøćå ³éåå ēå¾ č³ęå°ä»»å”å®ęåļ¼" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "å¦ęä½ å ³éčÆ„ēŖå£ļ¼ę£åØēå¾ ę§č”ēęå°ä»»å”å°äøä¼č¢«ęå°ć" + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "åę¶ęå°å¹¶å ³é(_P)" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ęå°åå ³é(_A)" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "å·„å ·ę ē¼č¾åØ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "ę¾ē¤ŗåø®å©ę¶åŗē°äøäøŖéčÆÆ" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ęę”£ę„ēåØ\n" +"ä½æēØ %s (%s)" + +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ęÆčŖē±č½Æ件ļ¼ęØåÆ仄ęē §čŖē±č½Æ件åŗéä¼ęååøē GNU GPL č®øåÆåÆ¹å ¶ååę¾å/" +"ęäæ®ę¹å®ļ¼č³äŗ GPL ēēę¬ļ¼ęØåÆ仄ä½æēØē¬¬äŗēęä»»ä½ę“ę°ēēę¬ć\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"ååø Evince ēē®ēęÆåøęå®č½å¤åØäøå®ēØåŗ¦äøåø®å°ęØćä½ę们并äøäøŗ\n" +"å®ęä¾ä»»ä½å½¢å¼ēę äæļ¼ä¹ę ę³äæčÆå®åÆ仄åØē¹å®ēØéäøå¾å°ęØåøęē\n" +"ē»ęćčÆ·åē GNU GPL č®øåÆäøēę“å¤ē»čć\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ęØåŗčÆ„ę¶å°å Evince äøčµ·ē GNU GPL åč®®åÆę¬ļ¼å¦ęę²”ęę¶å°čÆ„åč®®\n" +"ēčÆļ¼ęØåÆ仄åäæ”ē»čŖē±č½Æ件åŗéä¼ļ¼å°åęÆļ¼\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996ā2009 Evince ä½č " + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"Aron Xu <happyaron.xu@gmail.com>\n" +"ęØę ę±(Fan Qijiang) <fqj1994@gmail.com>\n" +"ēé²(Gan Lu) <rhythm.gan@gmail.com>\n" +"Deng Xiyue <manphiz@gmail.com>, 2009\n" +"Aron Xu <happyaron.xu@gmail.com>, 2009\n" +"ęØę ę±(Fan Qijiang) <fqj1994@gmail.com>, 2009\n" +"ęØē« <zyangmath@gmail.com>, 2010\n" +"ę±ę¶ <bill_zt@sina.com>, 2010\n" +"Tao Wang <dancefire@gmail.com>, 2010\n" +"Xhacker Liu <liu.dongyuan@gmail.com>, 2010\n" +"\n" +"Launchpad Contributions:\n" +" Chen Ming https://launchpad.net/~chenming\n" +" DBLobster https://launchpad.net/~db.lobster\n" +" Deng Xiyue https://launchpad.net/~manphiz\n" +" Funda Wang https://launchpad.net/~fundawang\n" +" Funda Wang https://launchpad.net/~fundawang-gmail\n" +" Tao Wei https://launchpad.net/~weitao1979\n" +" ZhangCheng https://launchpad.net/~xxzc\n" +" rainofchaos https://launchpad.net/~rainofchaos\n" +" zhangmiao https://launchpad.net/~mymzhang\n" +" ēé² (Lu Gan) https://launchpad.net/~rhythm-gan" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ę¬é”µäøę¾å° %d ꬔ" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ęŖę¾å°" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "ęē“¢čæå© %3d%%" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "ę件(_F)" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "ē¼č¾(_E)" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "ę„ē(_V)" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "č½¬å°(_G)" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "åø®å©(_H)" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "ęå¼(_O)..." + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "ęå¼å·²ęęę”£" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "ęå¼åÆę¬(_E)" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "åØę°ēŖå£äøęå¼å½åęę”£ēåÆę¬" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "äæååÆę¬(_S)..." + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "äæåå½åęę”£ēåÆę¬" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "ęå°(_P)..." + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "å±ę§(_R)" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "å Øé(_A)" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "ę„ę¾(_F)..." + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "åØęę”£äøę„ę¾åčÆęēčÆ" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "å·„å ·ę (_O)" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "åå·¦ęč½¬(_L)" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "åå³ęč½¬(_R)" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "å°å½åč®¾ē½®č®¾äøŗé»č®¤å¼(_D)" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "éę°č½½å „(_R)" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "éę°č½½å „ęę”£" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "čŖåØę»å±(_S)" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "ē¬¬äø锵(_F)" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "č½¬å°ē¬¬äø锵" + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "ęåäø锵(_L)" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "č½¬å°ęåäø锵" + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "ē®å½(_C)" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "å ³äŗ(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "ē¦»å¼å Øå±" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "ē¦»å¼å Øå±ęØ”å¼" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "å¼å§ę¼ē¤ŗ" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "å¼å§ę¼ē¤ŗ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "å·„å ·ę (_T)" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "ę¾ē¤ŗęéčå·„å ·ę " + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "ä¾§č¾¹ę (_P)" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "ę¾ē¤ŗęéčä¾§č¾¹ę " + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "čæē»(_C)" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "ę¾ē¤ŗę“ēÆęę”£" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "å锵(_D)" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "äøꬔę¾ē¤ŗäø¤é”µ" + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "å Øå±(_F)" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "å°ēŖå£å±å¼äøŗå Øå±å¹" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "ę¾ę (_S)" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "å°ęę”£ä»„ę¼ē¤ŗęēØæę¾ę " + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "åč²(_I)" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "ä½æēØåč²ę„ę¾ē¤ŗ锵é¢å 容" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "ęå¼é¾ę„(_O)" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "č½¬å°(_G)" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "åØę°ēŖå£äøęå¼(_W)" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "å¤å¶é¾ę„å°å(_C)" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "å¾åå¦åäøŗ(_S)..." + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "å¤å¶å¾å(_I)" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "ę³Øéå±ę§..." + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "ęå¼é件(_O)" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "äæåé件äøŗ(_S)..." + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ē¼©ę¾" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "č°ę“ē¼©ę¾ēŗ§å«" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "åƼčŖ" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "åé" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "åØå·²ęµč§ē锵é¢äøē§»åØ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "äøäø锵" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "äøäø锵" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ę¾å¤§" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ē¼©å°" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "éå宽åŗ¦" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ę ę³åÆåØå¤éØēØåŗć" + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ę ę³ęå¼å¤éØé¾ę„" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ę ę³ę¾å°ę°å½ēę ¼å¼ä»„äæåå¾å" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "ę ę³äæåå¾åć" + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "äæåå¾å" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ę ę³ęå¼é件" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "ę ę³äæåé件ć" + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "äæåé件" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s - éč¦åÆē " + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ęę©å±å" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ęę”£ę„ēåØ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "č¦ę¾ē¤ŗēęę”£ē锵ę ē¾ć" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "锵é¢" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "č¦ę¾ē¤ŗēęę”£ē锵ē¼å·ć" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "锵å·" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "仄å Øå±ęØ”å¼čæč” evince" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "仄ę¾ę ęØ”å¼čæč” evince" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "仄é¢č§ēØåŗęØ”å¼čæč” evince" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "ęę”£äøå¾ ę„ę¾ēåčÆęēčÆ" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "åē¬¦äø²" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ę件...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "åÆéåøå°å¼é锹ļ¼true 代č”Øå č®øē¼©ē„å¾č false 代č”Øē¦ę¢åå»ŗę°ē¼©ē„å¾" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "åÆēØ PDF ęę”£ēē¼©ē„å¾" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ęę”£ēē¼©ē„å¾å½ä»¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"PDF ęę”£ē¼©ē„å¾ēęåØēęęå½ä»¤ååę°ćę“å¤äæ”ęÆčÆ·åē Caja ēē¼©ē„å¾ēęåØ" +"ęę”£ć" + +#~ msgid "Page Set_upā¦" +#~ msgstr "锵é¢č®¾ē½®(_U)..." + +#~ msgid "Set up the page settings for printing" +#~ msgstr "äøŗęå°č®¾å®é”µé¢č®¾ē½®" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "Djvu ęę”£ēę ¼å¼äøę£ē”®" + +#~ msgid "Print..." +#~ msgstr "ęå°..." + +#~ msgid "_Save a Copy..." +#~ msgstr "äæååÆę¬(_S)..." + +#~ msgid "_Print..." +#~ msgstr "ęå°(_P)..." + +#~ msgid "_Find..." +#~ msgstr "ę„ę¾(_F)..." + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "åå»ŗę件ā%sāå¤±č“„ļ¼%s" + +#~ msgid "Search string" +#~ msgstr "ęē“¢åē¬¦äø²" + +#~ msgid "The name of the string to be found" +#~ msgstr "č¦ę„ę¾ēåē¬¦äø²åē§°" + +#~ msgid "Case sensitive" +#~ msgstr "åŗå大å°å" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE 代č”Øčæč”åŗå大å°åēęē“¢" + +#~ msgid "Highlight color" +#~ msgstr "é«äŗ®é¢č²" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "å ØéØå¹é ēé«äŗ®é¢č²" + +#~ msgid "Current color" +#~ msgstr "å½åé¢č²" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "å½åå¹é ēé«äŗ®é¢č²" + +#~ msgid "Recover previous documents?" +#~ msgstr "ę¢å¤äøäøäøŖęę”£ļ¼" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "Evince ēčµ·ę„åØäøꬔčæč”ēę²”ęę£åøøēéåŗć ęØåÆ仄č¦ēęå¼ēęę”£ć" + +#~ msgid "_Don't Recover" +#~ msgstr "äøå¤å(_D)" + +#~ msgid "_Recover" +#~ msgstr "å¤å(_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "å“©ęŗå¤å" + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "äøč½åå»ŗē³»ē»é¾ę„ ā%sāļ¼ " + +#~ msgid "Cannot open a copy." +#~ msgstr "ę ę³ęå¼åÆę¬" + +#~ msgid "_Remember forever" +#~ msgstr "ę°øčæč®°ä½(_R)" + +#~ msgid "_Remember password until you logout" +#~ msgstr "ę¤ä¼čÆč®°ä½åÆē (_R)" + +#~ msgid "_Forget password immediately" +#~ msgstr "ē«å³åæč®°åÆē (_F)" + +#~ msgid "_Domain:" +#~ msgstr "å(_D)ļ¼" + +#~ msgid "_Username:" +#~ msgstr "ēØę·å(_U)ļ¼" + +#~ msgid "Connect as u_ser:" +#~ msgstr "čæę„äøŗēØę·(_S)ļ¼" + +#~ msgid "Connect _anonymously" +#~ msgstr "åæåčæę„(_A)" + +#~ msgid "Co_nnect" +#~ msgstr "čæę„(_N)" + +#~ msgid "Couldn't create symlink ā%sā: %s" +#~ msgstr "ę ę³åå»ŗē¬¦å·é¾ę„ā%sāļ¼%s" + +#~ msgid "File corrupted." +#~ msgstr "ę件已ęåć" + +#~ msgid "Ā© 1996-2007 The Evince authors" +#~ msgstr "(C) 1996-2007 Evince ä½č " + +#~ msgid "Print Set_up..." +#~ msgstr "ęå°č®¾ē½®(_U)..." + +#~ msgid "Loading document from %s" +#~ msgstr "ę£åØä» %s č½½å „ęę”£" + +#~ msgid "No files in archive." +#~ msgstr "ę”£ę”äøę²”ęę件ć" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ęØę£åØå°čÆä½æēØā%sā驱åØēØåŗęå°å°ęå°ęŗćę¤ēØåŗéč¦ PostScript ęå°ęŗ驱åØēØ" +#~ "åŗć" + +#~ msgid "Invalid URI: ā%sā" +#~ msgstr "ę ęē URIļ¼ā%sā" + +#~ msgid "Unsupported URI: ā%sā" +#~ msgstr "äøęÆęē URIļ¼ā%sā" + +#~ msgid "Error: %s" +#~ msgstr "éčÆÆļ¼%s" + +#~ msgid "Error: dvipdfm exited with non-zero status." +#~ msgstr "éčÆÆļ¼dvipdfm 仄éé¶ē¶ęéåŗć" + +#~ msgid "Open ā%sā" +#~ msgstr "ęå¼ā%sā" + +#~ msgid "Empty" +#~ msgstr "ē©ŗ" diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 00000000..0d0a84b2 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,1926 @@ +# Chinese (Hong Kong) Translation for evince. +# Copyright (C) 2004-07 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Funda Wang <fundawang@linux.net.cn>, 2004 +# Abel Cheung <maddog@linuxhall.org>, 2005 +# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005 +# Woodman Tuen <wmtuen@gmail.com>, 2006-07 +# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2008, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince 2.31.90\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-21 20:05+0800\n" +"PO-Revision-Date: 2010-08-21 20:06+0800\n" +"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n" +"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Virtaal 0.5.1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "å·č”ę令ć%sć仄å°ę¼«ē«ęøč§£å£ēø®ęē¼ēéÆčŖ¤ļ¼%s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "å°ę¼«ē«ęøč§£å£ēø®ęę令ć%sć失ęć" + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ę令ć%sćę²ęę£åøøēēµęć" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "äø¦éę¼«ē«ęø MIME é”åļ¼%s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ę¾äøå°åé©ēę令åÆå°éåé”åēę¼«ē«ęøč§£å£ēø®" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ęŖē„ē MIME åę " + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ęŖę”å·²ęęÆ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "å£ēø®ęŖäøę²ęęŖę”" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "åØę件 %s äøę¾äøå°åē" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "åŖé¤ć%sćęē¼ēéÆčŖ¤ć" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "éÆčŖ¤ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ę¼«ē«ęø" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ę件ęäøę£ē¢ŗēę ¼å¼" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ę¤ę件ē±å¤åęŖę”ēµęćå ¶äøäøåęę“å¤ēęŖę”ē”ę³ååć" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ę件" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ę件ęäøę£ē¢ŗēę ¼å¼" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ę件" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "éåä½åęÆ屬ę¼å ¬ęé å" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ęÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "å¦" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ååäøę" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ę²ęåēر" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "åµå „åé«" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "å §åµē" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ę²ęåµå „" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ę件" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ē”ęēę件" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress å¹»ēē" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ę²ęéÆčŖ¤" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ę²ęč¶³å¤ ēčØę¶é«" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ę¾äøå° ZIP ē°½ē½²" + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ē”ęē ZIP ęŖ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "äøęÆę“åå²å¼ ZIP ęŖ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ē”ę³éåęŖę”" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ē”ę³å¾ęŖę”č®åč³čØ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ē”ę³åØ ZIP å£ēø®ęŖäøę¾å°ęŖę”" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "äøęēéÆčŖ¤" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "č¼å „ę件ā%sā失ę" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "å²åę件ā%sā失ę" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ę件" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ē”ę³å²åé件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ē”ę³éåé件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ē”ę³éåé件ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ęŖę”é”å %s (%s) äøęÆę“" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ęęę件" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ęęęŖę”" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ē”ę³å»ŗē«ę«åęŖę”ļ¼%s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ē”ę³å»ŗē«ę«åē®éļ¼%s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ęŖę”äøęÆęęē .desktop ęŖę”" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ē”ę³č¾Øčēę”é¢ęŖę”ēę¬ć%sć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ęŗååå %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ęēØēØå¼äøę„å仄å½ä»¤åéåę件" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ē”ę³č¾Øčēååéøé ļ¼%d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "äøč½å³éę件 URI č³ćType=Linkćę”é¢é ē®" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "äøęÆåÆ仄ååēé ē®" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "åēØå°ä½ę„éꮵē®”ēēØå¼ēé£ē·" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ęå®å«ęå·²å²åēµę ēęŖę”" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ęŖę”" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ęå®ä½ę„éꮵē®”ē ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ä½ę„éꮵē®”ēéøé :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "é”Æē¤ŗä½ę„éꮵē®”ēéøé " + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "é”Æē¤ŗć%sć" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ē§»č³å·„å ·å(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "å°éøåēé ē®ē§»č³å·„å ·å" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "å¾å·„å ·åē§»é¤(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "å¾å·„å ·åē§»é¤éøåēé ē®" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "åŖé¤å·„å ·å(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ē§»é¤éøåēå·„å ·å" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "åéē·" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "ęé©å¤§å°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ē¬¦åé åƬ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ę件ęŖ¢č¦åØ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "é”Æē¤ŗå¤é ę件" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "äøēęę件ēéå¶" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "äøēęę件ēéå¶ļ¼ä¾å¦äøåč¤č£½ęęå°" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "åŖé¤ę«åęŖę”" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "ęå°čØå®å¼ęŖę”" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ę件é č¦½åØ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ē”ę³ęå°ę件" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ę¾äøå°éøåēęå°ę©ć%sć" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "äøäøé (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "åå°äøäøé " + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "äøäøé (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "åå¾äøäøé " + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ę¾å¤§ę件" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ēø®å°ę件" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "ęå°" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "ęå°é份ę件" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "ęé©å¤§å°(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "令č¦ēŖåÆ仄é”Æē¤ŗę“é é é¢" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "ē¬¦åé åƬ(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "ä½æē®åę件ē¬¦åč¦ēŖéåŗ¦" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "é ꬔ" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "éøęé ꬔ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ę件" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ęØé”:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ä½ē½®:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "äø»ęØ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ä½č :" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ééµå:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "č£½ä½ēØå¼:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "č£½ä½č :" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "å»ŗē«ęå»:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "äæ®ę¹ęå»:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "é ęø:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ęä½³å:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ę ¼å¼:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "å®å Øę§:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ē“張大å°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ę²ę" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f ęÆ«ē±³" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f å" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ē“å (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ę©«å (%s)" + +# (Abel) éč£”ęÆé ęø (%d of %d) +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +# (Abel) éč£”ęÆé ęø (%d of %d) +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "č¼å „äøā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ę£åØęŗåęå°ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ę£åØēµęā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ę£åØęå°é é¢ %d / %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "éå°ęå°ę©äøęÆę“ęå°ć" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ē”ęēé é¢éøęåå" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "č¦å" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ä½ éøęēęå°ēÆåäø¦ęŖå å«ä»»ä½é é¢" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "é é¢ēø®ę¾ļ¼" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ēø®ęøč³åÆęå°åå" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ē¬¦ååÆęå°åå" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"å°ę件ēø®ę¾č³åÆęå°ååćåÆéøę仄äøéøé ļ¼\n" +"\n" +"ā¢ \"ę²ę\"ļ¼äøé²č”é é¢ēēø®ę¾ć\n" +"\n" +"ā¢ \"ē¬¦ååÆęå°åå\"ļ¼ę件é é¢č¶ éåÆęå°ååęęč¢«ēø®å°ä»„ē¬¦åęå°ę©ēåÆęå°ååć\n" +"\n" +"ā¢ \"ēø®ęøč³åÆęå°åå\"ļ¼ę件é é¢ęč¢«ę¾å¤§ęēø®å°ä»„ē¬¦åęå°ę©ēåÆęå°ååć\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "čŖåęč½äø¦ē½®äø" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "ęč½ęÆäøé ēęå°ę©é é¢ę¹å仄ē¬¦åę件é é¢ēę¹åćę件ēé é¢ęåØęå°ę©ēé é¢č£ē½®äøć" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ä½æēØę件é é¢å¤§å°ä¾éøęé é¢å¤§å°" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ē¶åēØęļ¼ęÆäøé é½ęęē §ę件äøēé é¢å¤§å°ęå°ć" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "é é¢čēę¹å¼" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ē”ę³ęå°é é¢ %dļ¼%s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "åäøę²å" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "åäøę²å" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "åäøęŖ¢č¦" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "åäøęŖ¢č¦" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ę件ęŖ¢č¦åØ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "åå¾é ļ¼" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ē°”å ±å·²å®ēµćč«é»äøäøé¢éć" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "åå°ē¬¬äøé " + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "åå°äøäøé " + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "åå¾äøäøé " + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "åå¾ęå¾äøé " + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "åå¾é " + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "å°ę¾" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "åå¾ē¬¬ %s é " + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "åå¾ęŖę”ā%sāäøē %s" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "åå¾ęŖę”ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "å·č” %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "å°ę¾ļ¼" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ę¾äøäøå(_V)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "å°ę¾äøäøååŗē¾ęå°åäø²ēå°ę¹" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ę¾äøäøå(_X)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "å°ę¾äøäøååŗē¾ęå°åäø²ēå°ę¹" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "åå大å°åÆ«(_A)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "éøåå¾åØęå°ęå°åå大å°åÆ«" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "åē¤ŗļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "åčØ»" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "č©č«" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "čØå®éµ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ę±å©" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ę°å¢ę®µč½" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ꮵč½" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ęå „" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "åå" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "åå½¢" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "äøę" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "čØ»č§£å±¬ę§" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "é”č²ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ęØ£å¼ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "éę" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "äøéę" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "åå§åč¦ēŖēę ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "éå" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "éé" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "仄ē°”å ±ęØ”å¼å·č”" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ēØę¼ %s ēåÆē¢¼" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ę£åØč½ę %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d / %d 份ę件已č½ę" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ę£åØč½ęäøē¹¼č³ę" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "Evince ęä½æēØēäøē¹¼č³ęå·²ē¶ę¹č®ļ¼å ę¤éč¦åč½ē§»ćå¦ęč½ē§»ēåä½č¢«åę¶ļ¼äøē¹¼č³ęēå²åå°±ē”ę³éä½ć" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "éåęčæä½æēØēę件" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "é份ęä»¶å·²č¢«éäøļ¼åŖęåØč¼øå „ę£ē¢ŗåÆē¢¼ä¹å¾ęč½é±č®ć" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ęä»¶č§£é(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "č¼øå „åÆē¢¼" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "éč¦åÆē¢¼" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ę件 %s å·²č¢«éäøļ¼éč¦åÆē¢¼ęč½éåć" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "åÆē¢¼(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ē«å»åæčØåÆē¢¼(_I) " + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "åØä½ ē»åŗåčØä½åÆē¢¼(_L)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ę°øé čØä½åÆē¢¼(_F)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "屬ę§" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "äøč¬" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "åå" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ę件ęę¬" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "åå" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ę£åØęéååč³ęā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ä½æēØę¢ę¬¾" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ęåęę¬" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ę“å¤č³čØ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ęø å®" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "čØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ęå" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "å å „ęåčØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "å å „" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ę件äøå å«ä»»ä½čØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ē¬¬ %d é " + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "éå ęŖę”" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "å層" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "ęå°ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ē“¢å¼" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ēø®å" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "é %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "é %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ę¤ę件äøå å«ä»»ä½é é¢" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ę件åŖå å«ē©ŗē½é é¢" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ē”ę³éåę件" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ę£åØå¾ć%sćč¼å „ę件" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ę£åØäøč¼ę件 (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "č¼å „é ē«ÆēęŖę”失ęć" + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "å¾ %s éę°č¼å „ę件" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "éę°č¼å „ę件失ęć" + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "éåę件" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ę£å²åęä»¶å° %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ę£å²åéå ęŖę”å° %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ę£å²ååēå° %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ęŖę”ē”ę³å²åēŗā%sāć" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ę£åØäøå³ę件 (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ę£åØäøå³éå ęŖę” (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ę£åØäøå³åē (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "å²ååÆę¬" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ä½åäø %d é é å®ēå·„ä½" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ę£åØęå°å·„ä½ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "ę件å å«å°ęŖ唫åÆ«ēč”Øå®ę¬ä½ćå¦ęä½ äøå²åč¤ę¬ļ¼éäŗę“ę¹å°±ęę°øé ę¶å¤±ć" + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "ę件å å«ę°ēęäæ®ę¹éēčØ»č§£ćå¦ęä½ äøå²åč¤ę¬ļ¼éäŗę“ę¹å°±ęę°øé ę¶å¤±ć" + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ééåč¦å²åę件ć%sćēč¤ę¬åļ¼" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ééä½äøå²å(_W)" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "å²ååÆę¬(_C)" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "åØééåęÆå¦č¦ēå¾ ęå°å·„ä½ā%sāēµęļ¼" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "éę %d é ęå°å·„ä½åØä½æēØäøćåØééåęÆå¦č¦ēå¾ ęå°ēµęļ¼" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "å¦ęä½ ééč¦ēŖļ¼é å®ēęå°å·„ä½å°äøęęå°ć" + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "åę¶ęå°äø¦éé(_P)" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ę¼ęå°å®ęå¾éé(_A)" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "å·„å ·åē·Øč¼ÆåØ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "é”Æē¤ŗčŖŖęę件ęē¼ēéÆčŖ¤" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ę件ęŖ¢č¦åØ\n" +"ä½æēØ %s (%s)" + +# (Abel) 大č“äøåč slat.org ēå»ŗč° +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "Evince ēŗčŖē±č»ä»¶ļ¼ä½ åÆę ¹ęęčŖē±č»ä»¶åŗéęęē¼č”Øē GNU éēØå ¬å ±ęę¬ę¢ę¬¾č¦å®ļ¼å°±ę¬ēØå¼åēŗę£ä½čļ¼ęäæ®ę¹ļ¼ē”č«ä½ ę ¹ęęēęÆę¬ęę¬ēē¬¬äŗēęļ¼ä½ čŖč”éøęēļ¼ä»»äøę„å¾ē¼č”ēēę¬ć\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "Evince äæåŗę¼ä½æēØē®ēčå 仄ę£ä½ļ¼ē¶čäøč² ä»»ä½ęäæč²¬ä»»ļ¼äŗ¦ē”å°é©å®ę§ęē¹å®ē®ēé©ēØę§ęēŗēé»ē¤ŗę§ęäæćč©³ę č«åē § GNU éēØå ¬å ±ęę¬ć\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "ä½ ęč©²å·²ē¶å Evince ēØå¼äøčµ·ę¶å°äø份 GNU éēØå ¬å ±čرåÆčēåÆę¬ćå¦ęéę²ęļ¼åÆ«äæ”ēµ¦ļ¼ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince ä½č ē¾£" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"å¦å°ēæ»čÆęä»»ä½ęč¦ļ¼č«éäøå°é»åéµä»¶ēµ¦\n" +"仄äøå°åļ¼MATE ēæ»čÆéä¼ęååæ«åč¦ä½ ļ¼\n" +"zh-l10n@lists.linux.org.tw\n" +"\n" +"Woodman Tuen <wmtuen@gmail.com>, 2006-07\n" +"č¶ęå« <chaoweilun@pcmail.com.tw>, 2005\n" +"Abel Cheung <maddog@linuxhall.org>, 2005\n" +"Funda Wang <fundawang@linux.net.cn>, 2004" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ę¬é ę¾å° %d č" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ę¾äøå°" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "éę %3d%% å°å¾ ęå°" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "ęŖę”(_F)" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "ē·Øč¼Æ(_E)" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "ęŖ¢č¦(_V)" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "åå¾(_G)" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "ę±å©(_H)" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "éå(_O)ā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "éåē¾åę件" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "éååÆę¬(_E)" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "åØę°ēč¦ēŖéåē®åę件ēåÆę¬" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "å²ååÆę¬(_S)ā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "å²åäøåē®åę件ēåÆę¬" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "ęå°(_P)ā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "屬ę§(_R)" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "å ØéØéøå(_A)" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "å°ę¾(_F)ā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "åØę件äøå°ę¾åč©" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "å·„å ·å(_O)" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "åå·¦ęč½(_L)" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "åå³ęč½(_R)" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "å°ē®åēčØå®å¼å²åēŗé čØå¼(_D)" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "éę°č¼å „(_R)" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "éę°č¼å „ę件" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "čŖåę²å(_S)" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "ē¬¬äøé (_F)" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "åå°ē¬¬äøé " + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "ęå¾äøé (_L)" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "åå¾ęå¾äøé " + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "å §å®¹(_C)" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "éę¼(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "é¢éå Øč¢å¹" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "é¢éå Øč¢å¹ęØ”å¼" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "éå§ē°”å ±" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ē°”å ±å¼é”Æē¤ŗ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "å·„å ·å(_T)" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "é”Æē¤ŗęé±čå·„å ·å" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "å“éēŖę ¼(_P)" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "é”Æē¤ŗęé±čå“é¢ēŖę ¼" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "é£ēŗ(_C)" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "é”Æē¤ŗę“份ę件" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "å ©é (_D)" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "äøꬔé”Æē¤ŗå ©é " + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "å Øč¢å¹(_F)" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "å°č¦ēŖå±éēŗå Øč¢å¹" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "ē°”å ±(_S)" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "å¦åē°”å ±č¬å·č”ę件" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "åč½é”č²(_I)" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "仄é”č²åč½ēę¹å¼é”Æē¤ŗé é¢å §å®¹" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "éåé£ēµ(_O)" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "ē§»č³(_G)" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "åØę°ēč¦ēŖäøéå(_W)" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "č¤č£½é£ēµä½å(_C)" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "å¦ååē(_S)ā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "č¤č£½åē(_I)" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "čØ»č§£å±¬ę§ā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "éåé件(_O)" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "å¦åé件ēŗ(_S)ā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ēø®ę¾" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "čŖæę“ēø®ę¾ēē“" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "å°čŖ" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "å¾é" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "åØå·²é±č®ēé é¢éē§»å" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "äøäøé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "äøäøé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ęčæ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ęé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "ē¬¦åé åƬ" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ē”ę³ååå¤éØęēØēØå¼ć" + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ē”ę³éåå¤éØé£ēµ" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ę¾äøå°åé©ēę ¼å¼ä¾å²ååē" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "åēē”ę³å²åć" + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "å²ååē" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ē”ę³éåé件" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "é件ē”ę³å²åć" + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "å²åé件" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā éč¦åÆē¢¼" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ę ¹ę延ä¼øęŖå" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ę件ęŖ¢č¦åØ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "č¦é”Æē¤ŗēę件é é¢ęØē±¤ć" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "é ꬔ" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "č¦é”Æē¤ŗēę件é ē¢¼ć" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ē·Øč" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "仄å Øč¢å¹ęØ”å¼å·č” evince" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "仄ē°”å ±ęØ”å¼å·č” evince" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "仄 evince ä½ēŗé č¦½ēØå¼" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "č¦åØę件äøå°ę¾ēåęč©" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "åäø²" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ęŖę”...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "åÆēØēéč¼Æéøé ļ¼ātrueāęéåēø®ååč½ļ¼čāfalseāęåę¢å»ŗē«ę°ēēø®å" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "åå PDF ę件ēēø®ååč½" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ę件ēēø®åå½ä»¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "ę£ē¢ŗēę令å äø代č”Ø PDF ę件ēø®åēå¼ęøćč«åč¦ Caja ēø®åę件仄å¾å°ę“å¤č³čØć" + +#~ msgid "Page Set_upā¦" +#~ msgstr "é é¢čØå®(_U)ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "čØå®åå°ēØēé é¢čØå®" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ę件ęäøę£ē¢ŗēę ¼å¼" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ē”ę³å»ŗē«ęŖę”ā%sāļ¼%s" + +#~ msgid "Search string" +#~ msgstr "ęå°åäø²" + +#~ msgid "The name of the string to be found" +#~ msgstr "ę¬²ęå°ēåäø²åēر" + +#~ msgid "Case sensitive" +#~ msgstr "åå大å°åÆ«" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE 代č”Øåå大å°åÆ«ēęå°" + +#~ msgid "Highlight color" +#~ msgstr "ęØē¤ŗé”č²" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ēØä¾ęØē¤ŗęęē¬¦ååäø²ēé”č²" + +#~ msgid "Current color" +#~ msgstr "ē®åēé”č²" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ēØä¾ęØē¤ŗē®åē¬¦ååäø²ēé”č²" + +#~ msgid "Recover previous documents?" +#~ msgstr "ęÆå¦å¾©ååäø份ę件ļ¼" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "Evince åØäøꬔå·č”ęä¼¼ä¹ēŖē¶ééäŗćęØåÆ仄復åå·²éåēę件ć" + +#~ msgid "_Don't Recover" +#~ msgstr "äøč¦å¾©å(_D)" + +#~ msgid "_Recover" +#~ msgstr "復å(_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ē¶ę©å¾å¾©å" + +#~ msgid "Print..." +#~ msgstr "åå°..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ē”ę³å»ŗē«ē¬¦čé£ēµć%sćļ¼" + +#~ msgid "Cannot open a copy." +#~ msgstr "ē”ę³éååÆę¬ć" + +#~ msgid "_Save a Copy..." +#~ msgstr "å²ååÆę¬(_S)..." + +#~ msgid "_Print..." +#~ msgstr "åå°(_P)..." + +#~ msgid "_Find..." +#~ msgstr "å°ę¾(_F)..." + +#~ msgid "Co_nnect" +#~ msgstr "é£ē·(_N)" + +#~ msgid "Connect _anonymously" +#~ msgstr "åæåé£ē·(_A)" + +#~ msgid "Connect as u_ser:" +#~ msgstr "仄ä½æēØč é£ē·(_S):" + +#~ msgid "_Username:" +#~ msgstr "ä½æēØč åēر(_U):" + +#~ msgid "_Domain:" +#~ msgstr "ē¶²å(_D):" + +#~ msgid "_Forget password immediately" +#~ msgstr "ē«å»åæęåÆē¢¼(_F) " + +#~ msgid "_Remember password until you logout" +#~ msgstr "åØęØē»åŗåčØä½åÆē¢¼(_R)" + +#~ msgid "_Remember forever" +#~ msgstr "ę°øé čØä½(_R)" + +#~ msgid "File not available" +#~ msgstr "ęŖę”äøååØ" + +#~ msgid "Remote files aren't supported" +#~ msgstr "äøęÆę“é ē«ÆęŖę”" + +#~ msgid "Find Previous" +#~ msgstr "ę¾äøäøå" + +#~ msgid "Find Next" +#~ msgstr "ę¾äøäøå" + +#~ msgid "Password Entry" +#~ msgstr "åÆē¢¼č¼øå „ę¬" + +#~ msgid "Remember password for this session" +#~ msgstr "åØę¤ä½ę„éꮵäøčØä½åÆē¢¼" + +#~ msgid "Save password in keyring" +#~ msgstr "å²ååÆē¢¼ę¼é°ååēØå¼äø" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>ęØé”ļ¼</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f åÆø" + +#~ msgid "Incorrect password" +#~ msgstr "åÆē¢¼äøę£ē¢ŗ" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince ę件ęŖ¢č¦åØ" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "é³čæ°" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ē”ę³éåęŖę”ā%sāć" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "ē”ę³č¼å „ęŖę”ā%sāćåØč·Æå¾äøę¾äøå° Ghostscript č§£čÆåØ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Encapsulated PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "č§£čÆēØå¼å¤±čŖ¤ć" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ē”ę³čēē MIME é”åļ¼ā%sā" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "äøęÆę“ē¢ē PDF ę件" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ęØåå試čå©ēØā%sāå°č”Øę©é© åēØå¼ļ¼åÆęÆę¬ēØå¼éč¦ PostScript å°č”Øę©é© åēØ" +#~ "å¼ć" + +#~ msgid "Pages" +#~ msgstr "é ęø" + +#~ msgid "Images" +#~ msgstr "åē" + +#~ msgid "Open ā%sā" +#~ msgstr "éåā%sā" + +#~ msgid "Empty" +#~ msgstr "ē©ŗē" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "ę²ęč¼å „ä»»ä½ę件ć" + +#~ msgid "Broken pipe." +#~ msgstr "ē®”ē·ä½ę„äøę·" + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ęŖę”ā%sāč§£å£ēø®ęē¢ēéÆčŖ¤ļ¼\n" + +#~ msgid "File is not readable." +#~ msgstr "ęŖę”ēŗäøåÆč®ć" + +#~ msgid "Document loaded." +#~ msgstr "ę件已č¼å „ć" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 00000000..f3ddb6d8 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,1941 @@ +# Chinese (Taiwan) Translation for evince. +# Copyright (C) 2004-07 Free Software Foundation, Inc. +# This file is distributed under the same license as the evince package. +# Funda Wang <fundawang@linux.net.cn>, 2004 +# Abel Cheung <maddog@linuxhall.org>, 2005 +# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005 +# Woodman Tuen <wmtuen@gmail.com>, 2006-07 +# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2008, 2010. +msgid "" +msgstr "" +"Project-Id-Version: evince 2.31.90\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-21 20:05+0800\n" +"PO-Revision-Date: 2010-08-20 08:37+0800\n" +"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n" +"Language-Team: Chinese (traditional)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Virtaal 0.5.1\n" + +#: ../backend/comics/comics-document.c:217 +#, c-format +msgid "" +"Error launching the command ā%sā in order to decompress the comic book: %s" +msgstr "å·č”ę令ć%sć仄å°ę¼«ē«ęøč§£å£ēø®ęē¼ēéÆčŖ¤ļ¼%s" + +#: ../backend/comics/comics-document.c:231 +#, c-format +msgid "The command ā%sā failed at decompressing the comic book." +msgstr "å°ę¼«ē«ęøč§£å£ēø®ęę令ć%sć失ęć" + +#: ../backend/comics/comics-document.c:240 +#, c-format +msgid "The command ā%sā did not end normally." +msgstr "ę令ć%sćę²ęę£åøøēēµęć" + +#: ../backend/comics/comics-document.c:420 +#, c-format +msgid "Not a comic book MIME type: %s" +msgstr "äø¦éę¼«ē«ęø MIME é”åļ¼%s" + +#: ../backend/comics/comics-document.c:427 +msgid "Can't find an appropriate command to decompress this type of comic book" +msgstr "ę¾äøå°åé©ēę令åÆå°éåé”åēę¼«ē«ęøč§£å£ēø®" + +#: ../backend/comics/comics-document.c:465 +#: ../libdocument/ev-document-factory.c:143 +#: ../libdocument/ev-document-factory.c:286 +msgid "Unknown MIME Type" +msgstr "ęŖē„ē MIME åę " + +#: ../backend/comics/comics-document.c:492 +msgid "File corrupted" +msgstr "ęŖę”å·²ęęÆ" + +#: ../backend/comics/comics-document.c:505 +msgid "No files in archive" +msgstr "å£ēø®ęŖäøę²ęęŖę”" + +#: ../backend/comics/comics-document.c:544 +#, c-format +msgid "No images found in archive %s" +msgstr "åØę件 %s äøę¾äøå°åē" + +#: ../backend/comics/comics-document.c:788 +#, c-format +msgid "There was an error deleting ā%sā." +msgstr "åŖé¤ć%sćęē¼ēéÆčŖ¤ć" + +#: ../backend/comics/comics-document.c:927 +#, c-format +msgid "Error %s" +msgstr "éÆčŖ¤ %s" + +#: ../backend/comics/comicsdocument.evince-backend.in.h:1 +msgid "Comic Books" +msgstr "ę¼«ē«ęø" + +#: ../backend/djvu/djvu-document.c:173 +msgid "DjVu document has incorrect format" +msgstr "DjVu ę件ęäøę£ē¢ŗēę ¼å¼" + +#: ../backend/djvu/djvu-document.c:250 +msgid "" +"The document is composed of several files. One or more of these files cannot " +"be accessed." +msgstr "ę¤ę件ē±å¤åęŖę”ēµęćå ¶äøäøåęę“å¤ēęŖę”ē”ę³ååć" + +#: ../backend/djvu/djvudocument.evince-backend.in.h:1 +msgid "DjVu Documents" +msgstr "DjVu ę件" + +#: ../backend/dvi/dvi-document.c:113 +msgid "DVI document has incorrect format" +msgstr "DVI ę件ęäøę£ē¢ŗēę ¼å¼" + +#: ../backend/dvi/dvidocument.evince-backend.in.h:1 +msgid "DVI Documents" +msgstr "DVI ę件" + +#: ../backend/pdf/ev-poppler.cc:526 +msgid "This work is in the Public Domain" +msgstr "éåä½åęÆ屬ę¼å ¬ęé å" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:779 +msgid "Yes" +msgstr "ęÆ" + +#. translators: this is the document security state +#: ../backend/pdf/ev-poppler.cc:782 +msgid "No" +msgstr "å¦" + +#: ../backend/pdf/ev-poppler.cc:910 +msgid "Type 1" +msgstr "Type 1" + +#: ../backend/pdf/ev-poppler.cc:912 +msgid "Type 1C" +msgstr "Type 1C" + +#: ../backend/pdf/ev-poppler.cc:914 +msgid "Type 3" +msgstr "Type 3" + +#: ../backend/pdf/ev-poppler.cc:916 +msgid "TrueType" +msgstr "TrueType" + +#: ../backend/pdf/ev-poppler.cc:918 +msgid "Type 1 (CID)" +msgstr "Type 1 (CID)" + +#: ../backend/pdf/ev-poppler.cc:920 +msgid "Type 1C (CID)" +msgstr "Type 1C (CID)" + +#: ../backend/pdf/ev-poppler.cc:922 +msgid "TrueType (CID)" +msgstr "TrueType (CID)" + +#: ../backend/pdf/ev-poppler.cc:924 +msgid "Unknown font type" +msgstr "ååäøę" + +#: ../backend/pdf/ev-poppler.cc:950 +msgid "No name" +msgstr "ę²ęåēر" + +#: ../backend/pdf/ev-poppler.cc:958 +msgid "Embedded subset" +msgstr "åµå „åé«" + +#: ../backend/pdf/ev-poppler.cc:960 +msgid "Embedded" +msgstr "å §åµē" + +#: ../backend/pdf/ev-poppler.cc:962 +msgid "Not embedded" +msgstr "ę²ęåµå „" + +#: ../backend/pdf/pdfdocument.evince-backend.in.h:1 +msgid "PDF Documents" +msgstr "PDF ę件" + +#: ../backend/impress/impress-document.c:302 +#: ../backend/tiff/tiff-document.c:113 +msgid "Invalid document" +msgstr "ē”ęēę件" + +#. +#. * vim: sw=2 ts=8 cindent noai bs=2 +#. +#: ../backend/impress/impressdocument.evince-backend.in.h:1 +msgid "Impress Slides" +msgstr "Impress å¹»ēē" + +#: ../backend/impress/zip.c:53 +msgid "No error" +msgstr "ę²ęéÆčŖ¤" + +#: ../backend/impress/zip.c:56 +msgid "Not enough memory" +msgstr "ę²ęč¶³å¤ ēčØę¶é«" + +#: ../backend/impress/zip.c:59 +msgid "Cannot find ZIP signature" +msgstr "ę¾äøå° ZIP ē°½ē« " + +#: ../backend/impress/zip.c:62 +msgid "Invalid ZIP file" +msgstr "ē”ęē ZIP ęŖ" + +#: ../backend/impress/zip.c:65 +msgid "Multi file ZIPs are not supported" +msgstr "äøęÆę“åå²å¼ ZIP ęŖ" + +#: ../backend/impress/zip.c:68 +msgid "Cannot open the file" +msgstr "ē”ę³éåęŖę”" + +#: ../backend/impress/zip.c:71 +msgid "Cannot read data from file" +msgstr "ē”ę³å¾ęŖę”č®åč³čØ" + +#: ../backend/impress/zip.c:74 +msgid "Cannot find file in the ZIP archive" +msgstr "ē”ę³åØ ZIP å£ēø®ęŖäøę¾å°ęŖę”" + +#: ../backend/impress/zip.c:77 +msgid "Unknown error" +msgstr "äøęēéÆčŖ¤" + +#: ../backend/ps/ev-spectre.c:102 +#, c-format +msgid "Failed to load document ā%sā" +msgstr "č¼å „ę件ā%sā失ę" + +#: ../backend/ps/ev-spectre.c:135 +#, c-format +msgid "Failed to save document ā%sā" +msgstr "å²åę件ā%sā失ę" + +#: ../backend/ps/psdocument.evince-backend.in.h:1 +msgid "PostScript Documents" +msgstr "PostScript ę件" + +#: ../libdocument/ev-attachment.c:304 ../libdocument/ev-attachment.c:325 +#, c-format +msgid "Couldn't save attachment ā%sā: %s" +msgstr "ē”ę³å²åé件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:372 +#, c-format +msgid "Couldn't open attachment ā%sā: %s" +msgstr "ē”ę³éåé件ā%sāļ¼%s" + +#: ../libdocument/ev-attachment.c:407 +#, c-format +msgid "Couldn't open attachment ā%sā" +msgstr "ē”ę³éåé件ā%sā" + +#: ../libdocument/ev-document-factory.c:168 +#, c-format +msgid "File type %s (%s) is not supported" +msgstr "ęŖę”é”å %s (%s) äøęÆę“" + +#: ../libdocument/ev-document-factory.c:359 +msgid "All Documents" +msgstr "ęęę件" + +#: ../libdocument/ev-document-factory.c:391 +msgid "All Files" +msgstr "ęęęŖę”" + +#: ../libdocument/ev-file-helpers.c:146 +#, c-format +msgid "Failed to create a temporary file: %s" +msgstr "ē”ę³å»ŗē«ę«åęŖę”ļ¼%s" + +#: ../libdocument/ev-file-helpers.c:308 +#, c-format +msgid "Failed to create a temporary directory: %s" +msgstr "ē”ę³å»ŗē«ę«åē®éļ¼%s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ęŖę”äøęÆęęē .desktop ęŖę”" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ē”ę³č¾Øčēę”é¢ęŖę”ēę¬ć%sć" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "ęŗååå %s" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ęēØēØå¼äøę„å仄å½ä»¤åéåę件" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ē”ę³č¾Øčēååéøé ļ¼%d" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "äøč½å³éę件 URI č³ćType=Linkćę”é¢é ē®" + +#: ../cut-n-paste/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "äøęÆåÆ仄ååēé ē®" + +#: ../cut-n-paste/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "åēØå°ä½ę„éꮵē®”ēēØå¼ēé£ē·" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "ęå®å«ęå·²å²åēµę ēęŖę”" + +#: ../cut-n-paste/smclient/eggsmclient.c:228 ../previewer/ev-previewer.c:45 +#: ../previewer/ev-previewer.c:46 +msgid "FILE" +msgstr "ęŖę”" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "ęå®ä½ę„éꮵē®”ē ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../cut-n-paste/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "ä½ę„éꮵē®”ēéøé :" + +#: ../cut-n-paste/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "é”Æē¤ŗä½ę„éꮵē®”ēéøé " + +#. Translaters: This string is for a toggle to display a toolbar. +#. * The name of the toolbar is automatically computed from the widgets +#. * on the toolbar, and is placed at the %s. Note the _ before the %s +#. * which is used to add mnemonics. We know that this is likely to +#. * produce duplicates, but don't worry about it. If your language +#. * normally has a mnemonic at the start, please use the _. If not, +#. * please remove. +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:946 +#, c-format +msgid "Show ā_%sā" +msgstr "é”Æē¤ŗć%sć" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1414 +msgid "_Move on Toolbar" +msgstr "ē§»č³å·„å ·å(_M)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1415 +msgid "Move the selected item on the toolbar" +msgstr "å°éøåēé ē®ē§»č³å·„å ·å" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1416 +msgid "_Remove from Toolbar" +msgstr "å¾å·„å ·åē§»é¤(_R)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1417 +msgid "Remove the selected item from the toolbar" +msgstr "å¾å·„å ·åē§»é¤éøåēé ē®" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1418 +msgid "_Delete Toolbar" +msgstr "åŖé¤å·„å ·å(_D)" + +#: ../cut-n-paste/toolbar-editor/egg-editable-toolbar.c:1419 +msgid "Remove the selected toolbar" +msgstr "ē§»é¤éøåēå·„å ·å" + +#: ../cut-n-paste/toolbar-editor/egg-toolbar-editor.c:486 +msgid "Separator" +msgstr "åéē·" + +#. translators: this is the label for toolbar button +#: ../cut-n-paste/zoom-control/ephy-zoom.h:48 ../shell/ev-window.c:5741 +msgid "Best Fit" +msgstr "ęé©å¤§å°" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:49 +msgid "Fit Page Width" +msgstr "ē¬¦åé åƬ" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:51 +msgid "50%" +msgstr "50%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:52 +msgid "70%" +msgstr "70%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:53 +msgid "85%" +msgstr "85%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:54 +msgid "100%" +msgstr "100%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:55 +msgid "125%" +msgstr "125%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:56 +msgid "150%" +msgstr "150%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:57 +msgid "175%" +msgstr "175%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:58 +msgid "200%" +msgstr "200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:59 +msgid "300%" +msgstr "300%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:60 +msgid "400%" +msgstr "400%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:61 +msgid "800%" +msgstr "800%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:62 +msgid "1600%" +msgstr "1600%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:63 +msgid "3200%" +msgstr "3200%" + +#: ../cut-n-paste/zoom-control/ephy-zoom.h:64 +msgid "6400%" +msgstr "6400%" + +#. Manually set name and icon +#: ../data/evince.desktop.in.in.h:1 ../shell/ev-window.c:4536 +#: ../shell/ev-window-title.c:149 ../shell/main.c:310 +#, c-format +msgid "Document Viewer" +msgstr "ę件ęŖ¢č¦åØ" + +#: ../data/evince.desktop.in.in.h:2 +msgid "View multi-page documents" +msgstr "é”Æē¤ŗå¤é ę件" + +#: ../data/org.mate.Evince.gschema.xml.in.h:1 +msgid "Override document restrictions" +msgstr "äøēęę件ēéå¶" + +#: ../data/org.mate.Evince.gschema.xml.in.h:2 +msgid "Override document restrictions, like restriction to copy or to print." +msgstr "äøēęę件ēéå¶ļ¼ä¾å¦äøåč¤č£½ęåå°" + +#: ../previewer/ev-previewer.c:44 +msgid "Delete the temporary file" +msgstr "åŖé¤ę«åęŖę”" + +#: ../previewer/ev-previewer.c:45 +msgid "Print settings file" +msgstr "åå°čØå®å¼ęŖę”" + +#: ../previewer/ev-previewer.c:144 ../previewer/ev-previewer.c:178 +msgid "MATE Document Previewer" +msgstr "MATE ę件é č¦½åØ" + +#: ../previewer/ev-previewer-window.c:91 ../shell/ev-window.c:3168 +msgid "Failed to print document" +msgstr "ē”ę³åå°ę件" + +#: ../previewer/ev-previewer-window.c:237 +#, c-format +msgid "The selected printer '%s' could not be found" +msgstr "ę¾äøå°éøåēå°č”Øę©ć%sć" + +#. Go menu +#: ../previewer/ev-previewer-window.c:284 ../shell/ev-window.c:5456 +msgid "_Previous Page" +msgstr "äøäøé (_P)" + +#: ../previewer/ev-previewer-window.c:285 ../shell/ev-window.c:5457 +msgid "Go to the previous page" +msgstr "åå°äøäøé " + +#: ../previewer/ev-previewer-window.c:287 ../shell/ev-window.c:5459 +msgid "_Next Page" +msgstr "äøäøé (_N)" + +#: ../previewer/ev-previewer-window.c:288 ../shell/ev-window.c:5460 +msgid "Go to the next page" +msgstr "åå¾äøäøé " + +#: ../previewer/ev-previewer-window.c:291 ../shell/ev-window.c:5443 +msgid "Enlarge the document" +msgstr "ę¾å¤§ę件" + +#: ../previewer/ev-previewer-window.c:294 ../shell/ev-window.c:5446 +msgid "Shrink the document" +msgstr "ēø®å°ę件" + +#: ../previewer/ev-previewer-window.c:297 ../libview/ev-print-operation.c:1307 +msgid "Print" +msgstr "åå°" + +#: ../previewer/ev-previewer-window.c:298 ../shell/ev-window.c:5412 +msgid "Print this document" +msgstr "åå°é份ę件" + +#: ../previewer/ev-previewer-window.c:342 ../shell/ev-window.c:5558 +msgid "_Best Fit" +msgstr "ęé©å¤§å°(_B)" + +#: ../previewer/ev-previewer-window.c:343 ../shell/ev-window.c:5559 +msgid "Make the current document fill the window" +msgstr "令č¦ēŖåÆ仄é”Æē¤ŗę“é é é¢" + +#: ../previewer/ev-previewer-window.c:345 ../shell/ev-window.c:5561 +msgid "Fit Page _Width" +msgstr "ē¬¦åé åƬ(_W)" + +#: ../previewer/ev-previewer-window.c:346 ../shell/ev-window.c:5562 +msgid "Make the current document fill the window width" +msgstr "ä½æē®åę件ē¬¦åč¦ēŖåƬåŗ¦" + +#: ../previewer/ev-previewer-window.c:558 ../shell/ev-window.c:5663 +msgid "Page" +msgstr "é ꬔ" + +#: ../previewer/ev-previewer-window.c:559 ../shell/ev-window.c:5664 +msgid "Select Page" +msgstr "éøęé ꬔ" + +#: ../properties/ev-properties-main.c:116 +msgid "Document" +msgstr "ę件" + +#: ../properties/ev-properties-view.c:60 +msgid "Title:" +msgstr "ęØé”:" + +#: ../properties/ev-properties-view.c:61 +msgid "Location:" +msgstr "ä½ē½®:" + +#: ../properties/ev-properties-view.c:62 +msgid "Subject:" +msgstr "äø»ęØ:" + +#: ../properties/ev-properties-view.c:63 +#: ../shell/ev-annotation-properties-dialog.c:160 +msgid "Author:" +msgstr "ä½č :" + +#: ../properties/ev-properties-view.c:64 +msgid "Keywords:" +msgstr "ééµå:" + +#: ../properties/ev-properties-view.c:65 +msgid "Producer:" +msgstr "č£½ä½ēØå¼:" + +#: ../properties/ev-properties-view.c:66 +msgid "Creator:" +msgstr "č£½ä½č :" + +#: ../properties/ev-properties-view.c:67 +msgid "Created:" +msgstr "å»ŗē«ęå»:" + +#: ../properties/ev-properties-view.c:68 +msgid "Modified:" +msgstr "äæ®ę¹ęå»:" + +#: ../properties/ev-properties-view.c:69 +msgid "Number of Pages:" +msgstr "é ęø:" + +#: ../properties/ev-properties-view.c:70 +msgid "Optimized:" +msgstr "ęä½³å:" + +#: ../properties/ev-properties-view.c:71 +msgid "Format:" +msgstr "ę ¼å¼:" + +#: ../properties/ev-properties-view.c:72 +msgid "Security:" +msgstr "å®å Øę§:" + +#: ../properties/ev-properties-view.c:73 +msgid "Paper Size:" +msgstr "ē“張大å°:" + +#: ../properties/ev-properties-view.c:188 ../libview/ev-print-operation.c:1865 +msgid "None" +msgstr "ę²ę" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: ../properties/ev-properties-view.c:217 +msgid "default:mm" +msgstr "default:mm" + +#: ../properties/ev-properties-view.c:261 +#, c-format +msgid "%.0f Ć %.0f mm" +msgstr "%.0f Ć %.0f ęÆ«ē±³" + +#: ../properties/ev-properties-view.c:265 +#, c-format +msgid "%.2f Ć %.2f inch" +msgstr "%.2f Ć %.2f å" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:289 +#, c-format +msgid "%s, Portrait (%s)" +msgstr "%s, ē“å (%s)" + +#. Note to translators: first placeholder is the paper name (eg. +#. * A4), second placeholder is the paper size (eg. 297x210 mm) +#: ../properties/ev-properties-view.c:296 +#, c-format +msgid "%s, Landscape (%s)" +msgstr "%s, ę©«å (%s)" + +# (Abel) éč£”ęÆé ęø (%d of %d) +#: ../libmisc/ev-page-action-widget.c:68 +#, c-format +msgid "(%d of %d)" +msgstr "(%d / %d)" + +# (Abel) éč£”ęÆé ęø (%d of %d) +#: ../libmisc/ev-page-action-widget.c:70 +#, c-format +msgid "of %d" +msgstr "/ %d" + +#. Create tree view +#: ../libview/ev-loading-window.c:76 ../shell/ev-sidebar-annotations.c:133 +#: ../shell/ev-sidebar-layers.c:125 ../shell/ev-sidebar-links.c:262 +msgid "Loadingā¦" +msgstr "č¼å „äøā¦" + +#. Initial state +#: ../libview/ev-print-operation.c:334 +msgid "Preparing to printā¦" +msgstr "ę£åØęŗååå°ā¦" + +#: ../libview/ev-print-operation.c:336 +msgid "Finishingā¦" +msgstr "ę£åØēµęā¦" + +#: ../libview/ev-print-operation.c:338 +#, c-format +msgid "Printing page %d of %dā¦" +msgstr "ę£åØåå°é é¢ %d / %dā¦" + +#: ../libview/ev-print-operation.c:1161 +msgid "Printing is not supported on this printer." +msgstr "éå°å°č”Øę©äøęÆę“åå°ć" + +#: ../libview/ev-print-operation.c:1226 +msgid "Invalid page selection" +msgstr "ē”ęēé é¢éøęåå" + +#: ../libview/ev-print-operation.c:1227 +msgid "Warning" +msgstr "č¦å" + +#: ../libview/ev-print-operation.c:1229 +msgid "Your print range selection does not include any pages" +msgstr "ęØéøęēåå°ēÆåäø¦ęŖå å«ä»»ä½é é¢" + +#: ../libview/ev-print-operation.c:1860 +msgid "Page Scaling:" +msgstr "é é¢ēø®ę¾ļ¼" + +#: ../libview/ev-print-operation.c:1866 +msgid "Shrink to Printable Area" +msgstr "ēø®ęøč³åÆåå°åå" + +#: ../libview/ev-print-operation.c:1867 +msgid "Fit to Printable Area" +msgstr "ē¬¦ååÆåå°åå" + +#: ../libview/ev-print-operation.c:1870 +msgid "" +"Scale document pages to fit the selected printer page. Select from one of " +"the following:\n" +"\n" +"ā¢ \"None\": No page scaling is performed.\n" +"\n" +"ā¢ \"Shrink to Printable Area\": Document pages larger than the printable " +"area are reduced to fit the printable area of the printer page.\n" +"\n" +"ā¢ \"Fit to Printable Area\": Document pages are enlarged or reduced as " +"required to fit the printable area of the printer page.\n" +msgstr "" +"å°ę件ēø®ę¾č³åÆåå°ååćåÆéøę仄äøéøé ļ¼\n" +"\n" +"ā¢ \"ę²ę\"ļ¼äøé²č”é é¢ēēø®ę¾ć\n" +"\n" +"ā¢ \"ē¬¦ååÆåå°åå\"ļ¼ę件é é¢č¶ éåÆåå°ååęęč¢«ēø®å°ä»„ē¬¦åå°č”Øę©ēåÆåå°å" +"åć\n" +"\n" +"ā¢ \"ēø®ęøč³åÆåå°åå\"ļ¼ę件é é¢ęč¢«ę¾å¤§ęēø®å°ä»„ē¬¦åå°č”Øę©ēåÆåå°ååć\n" + +#: ../libview/ev-print-operation.c:1882 +msgid "Auto Rotate and Center" +msgstr "čŖåęč½äø¦ē½®äø" + +#: ../libview/ev-print-operation.c:1885 +msgid "" +"Rotate printer page orientation of each page to match orientation of each " +"document page. Document pages will be centered within the printer page." +msgstr "" +"ęč½ęÆäøé ēå°č”Øę©é é¢ę¹å仄ē¬¦åę件é é¢ēę¹åćę件ēé é¢ęåØå°č”Øę©ēé é¢č£”" +"ē½®äøć" + +#: ../libview/ev-print-operation.c:1890 +msgid "Select page size using document page size" +msgstr "ä½æēØę件é é¢å¤§å°ä¾éøęé é¢å¤§å°" + +#: ../libview/ev-print-operation.c:1892 +msgid "" +"When enabled, each page will be printed on the same size paper as the " +"document page." +msgstr "ē¶åēØęļ¼ęÆäøé é½ęęē §ę件äøēé é¢å¤§å°åå°ć" + +#: ../libview/ev-print-operation.c:1974 +msgid "Page Handling" +msgstr "é é¢čēę¹å¼" + +#: ../libview/ev-jobs.c:1529 +#, c-format +msgid "Failed to print page %d: %s" +msgstr "ē”ę³åå°é é¢ %dļ¼%s" + +#: ../libview/ev-view-accessible.c:46 +msgid "Scroll Up" +msgstr "åäøę²å" + +#: ../libview/ev-view-accessible.c:47 +msgid "Scroll Down" +msgstr "åäøę²å" + +#: ../libview/ev-view-accessible.c:53 +msgid "Scroll View Up" +msgstr "åäøęŖ¢č¦" + +#: ../libview/ev-view-accessible.c:54 +msgid "Scroll View Down" +msgstr "åäøęŖ¢č¦" + +#: ../libview/ev-view-accessible.c:882 +msgid "Document View" +msgstr "ę件ęŖ¢č¦åØ" + +#: ../libview/ev-view-presentation.c:672 +msgid "Jump to page:" +msgstr "åå¾é ļ¼" + +#: ../libview/ev-view-presentation.c:968 +msgid "End of presentation. Click to exit." +msgstr "ē°”å ±å·²å®ēµćč«é»äøäøé¢éć" + +#: ../libview/ev-view.c:1756 +msgid "Go to first page" +msgstr "åå°ē¬¬äøé " + +#: ../libview/ev-view.c:1758 +msgid "Go to previous page" +msgstr "åå°äøäøé " + +#: ../libview/ev-view.c:1760 +msgid "Go to next page" +msgstr "åå¾äøäøé " + +#: ../libview/ev-view.c:1762 +msgid "Go to last page" +msgstr "åå¾ęå¾äøé " + +#: ../libview/ev-view.c:1764 +msgid "Go to page" +msgstr "åå¾é " + +#: ../libview/ev-view.c:1766 +msgid "Find" +msgstr "å°ę¾" + +#: ../libview/ev-view.c:1794 +#, c-format +msgid "Go to page %s" +msgstr "åå¾ē¬¬ %s é " + +#: ../libview/ev-view.c:1800 +#, c-format +msgid "Go to %s on file ā%sā" +msgstr "åå¾ęŖę”ā%sāäøē %s" + +#: ../libview/ev-view.c:1803 +#, c-format +msgid "Go to file ā%sā" +msgstr "åå¾ęŖę”ā%sā" + +#: ../libview/ev-view.c:1811 +#, c-format +msgid "Launch %s" +msgstr "å·č” %s" + +#: ../shell/eggfindbar.c:320 +msgid "Find:" +msgstr "å°ę¾ļ¼" + +#: ../shell/eggfindbar.c:329 ../shell/ev-window.c:5429 +msgid "Find Pre_vious" +msgstr "ę¾äøäøå(_V)" + +#: ../shell/eggfindbar.c:333 +msgid "Find previous occurrence of the search string" +msgstr "å°ę¾äøäøååŗē¾ęå°åäø²ēå°ę¹" + +#: ../shell/eggfindbar.c:337 ../shell/ev-window.c:5427 +msgid "Find Ne_xt" +msgstr "ę¾äøäøå(_X)" + +#: ../shell/eggfindbar.c:341 +msgid "Find next occurrence of the search string" +msgstr "å°ę¾äøäøååŗē¾ęå°åäø²ēå°ę¹" + +#: ../shell/eggfindbar.c:348 +msgid "C_ase Sensitive" +msgstr "åå大å°åÆ«(_A)" + +#: ../shell/eggfindbar.c:351 +msgid "Toggle case sensitive search" +msgstr "éøåå¾åØęå°ęå°åå大å°åÆ«" + +#: ../shell/ev-annotation-properties-dialog.c:97 +msgid "Icon:" +msgstr "åē¤ŗļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:104 +msgid "Note" +msgstr "åčØ»" + +#: ../shell/ev-annotation-properties-dialog.c:105 +msgid "Comment" +msgstr "č©č«" + +#: ../shell/ev-annotation-properties-dialog.c:106 +msgid "Key" +msgstr "čØå®éµ" + +#: ../shell/ev-annotation-properties-dialog.c:107 +msgid "Help" +msgstr "ę±å©" + +#: ../shell/ev-annotation-properties-dialog.c:108 +msgid "New Paragraph" +msgstr "ę°å¢ę®µč½" + +#: ../shell/ev-annotation-properties-dialog.c:109 +msgid "Paragraph" +msgstr "ꮵč½" + +#: ../shell/ev-annotation-properties-dialog.c:110 +msgid "Insert" +msgstr "ęå „" + +#: ../shell/ev-annotation-properties-dialog.c:111 +msgid "Cross" +msgstr "åå" + +#: ../shell/ev-annotation-properties-dialog.c:112 +msgid "Circle" +msgstr "åå½¢" + +#: ../shell/ev-annotation-properties-dialog.c:113 +msgid "Unknown" +msgstr "äøę" + +#: ../shell/ev-annotation-properties-dialog.c:139 +msgid "Annotation Properties" +msgstr "čØ»č§£å±¬ę§" + +#: ../shell/ev-annotation-properties-dialog.c:173 +msgid "Color:" +msgstr "é”č²ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:185 +msgid "Style:" +msgstr "ęØ£å¼ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:201 +msgid "Transparent" +msgstr "éę" + +#: ../shell/ev-annotation-properties-dialog.c:208 +msgid "Opaque" +msgstr "äøéę" + +#: ../shell/ev-annotation-properties-dialog.c:219 +msgid "Initial window state:" +msgstr "åå§åč¦ēŖēę ļ¼" + +#: ../shell/ev-annotation-properties-dialog.c:226 +msgid "Open" +msgstr "éå" + +#: ../shell/ev-annotation-properties-dialog.c:227 +msgid "Close" +msgstr "éé" + +#: ../shell/ev-application.c:1022 +msgid "Running in presentation mode" +msgstr "仄ē°”å ±ęØ”å¼å·č”" + +#: ../shell/ev-keyring.c:102 +#, c-format +msgid "Password for document %s" +msgstr "ēØę¼ %s ēåÆē¢¼" + +#: ../shell/ev-convert-metadata.c:88 +#, c-format +msgid "Converting %s" +msgstr "ę£åØč½ę %s" + +#: ../shell/ev-convert-metadata.c:92 +#, c-format +msgid "%d of %d documents converted" +msgstr "%d / %d 份ę件已č½ę" + +#: ../shell/ev-convert-metadata.c:165 ../shell/ev-convert-metadata.c:181 +msgid "Converting metadata" +msgstr "ę£åØč½ęäøē¹¼č³ę" + +#: ../shell/ev-convert-metadata.c:187 +msgid "" +"The metadata format used by Evince has changed, and hence it needs to be " +"migrated. If the migration is cancelled the metadata storage will not work." +msgstr "" +"Evince ęä½æēØēäøē¹¼č³ęå·²ē¶ę¹č®ļ¼å ę¤éč¦åč½ē§»ćå¦ęč½ē§»ēåä½č¢«åę¶ļ¼äøē¹¼č³" +"ęēå²åå°±ē”ę³éä½ć" + +#: ../shell/ev-open-recent-action.c:72 +msgid "Open a recently used document" +msgstr "éåęčæä½æēØēę件" + +#: ../shell/ev-password-view.c:144 +msgid "" +"This document is locked and can only be read by entering the correct " +"password." +msgstr "é份ęä»¶å·²č¢«éäøļ¼åŖęåØč¼øå „ę£ē¢ŗåÆē¢¼ä¹å¾ęč½é±č®ć" + +#: ../shell/ev-password-view.c:153 ../shell/ev-password-view.c:272 +msgid "_Unlock Document" +msgstr "ęä»¶č§£é(_U)" + +#: ../shell/ev-password-view.c:264 +msgid "Enter password" +msgstr "č¼øå „åÆē¢¼" + +#: ../shell/ev-password-view.c:304 +msgid "Password required" +msgstr "éč¦åÆē¢¼" + +#: ../shell/ev-password-view.c:305 +#, c-format +msgid "" +"The document ā%sā is locked and requires a password before it can be opened." +msgstr "ę件 %s å·²č¢«éäøļ¼éč¦åÆē¢¼ęč½éåć" + +#: ../shell/ev-password-view.c:335 +msgid "_Password:" +msgstr "åÆē¢¼(_P):" + +#: ../shell/ev-password-view.c:368 +msgid "Forget password _immediately" +msgstr "ē«å»åæčØåÆē¢¼(_I) " + +#: ../shell/ev-password-view.c:380 +msgid "Remember password until you _log out" +msgstr "åØęØē»åŗåčØä½åÆē¢¼(_L)" + +#: ../shell/ev-password-view.c:392 +msgid "Remember _forever" +msgstr "ę°øé čØä½åÆē¢¼(_F)" + +#: ../shell/ev-properties-dialog.c:62 +msgid "Properties" +msgstr "屬ę§" + +#: ../shell/ev-properties-dialog.c:95 +msgid "General" +msgstr "äøč¬" + +#: ../shell/ev-properties-dialog.c:105 +msgid "Fonts" +msgstr "åå" + +#: ../shell/ev-properties-dialog.c:118 +msgid "Document License" +msgstr "ę件ęę¬" + +#: ../shell/ev-properties-fonts.c:135 +msgid "Font" +msgstr "åå" + +#: ../shell/ev-properties-fonts.c:162 +#, c-format +msgid "Gathering font informationā¦ %3d%%" +msgstr "ę£åØęéååč³ęā¦ %3d%%" + +#: ../shell/ev-properties-license.c:137 +msgid "Usage terms" +msgstr "ä½æēØę¢ę¬¾" + +#: ../shell/ev-properties-license.c:143 +msgid "Text License" +msgstr "ęåęę¬" + +#: ../shell/ev-properties-license.c:149 +msgid "Further Information" +msgstr "ę“å¤č³čØ" + +#: ../shell/ev-sidebar-annotations.c:161 +msgid "List" +msgstr "ęø å®" + +#: ../shell/ev-sidebar-annotations.c:203 ../shell/ev-sidebar-annotations.c:533 +msgid "Annotations" +msgstr "čØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:209 +msgid "Text" +msgstr "ęå" + +#: ../shell/ev-sidebar-annotations.c:210 +msgid "Add text annotation" +msgstr "å å „ęåčØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:221 +msgid "Add" +msgstr "å å „" + +#: ../shell/ev-sidebar-annotations.c:364 +msgid "Document contains no annotations" +msgstr "ę件äøå å«ä»»ä½čØ»č§£" + +#: ../shell/ev-sidebar-annotations.c:396 +#, c-format +msgid "Page %d" +msgstr "ē¬¬ %d é " + +#: ../shell/ev-sidebar-attachments.c:697 +msgid "Attachments" +msgstr "éå ęŖę”" + +#: ../shell/ev-sidebar-layers.c:401 +msgid "Layers" +msgstr "å層" + +#: ../shell/ev-sidebar-links.c:335 +msgid "Printā¦" +msgstr "åå°ā¦" + +#: ../shell/ev-sidebar-links.c:750 +msgid "Index" +msgstr "ē“¢å¼" + +#: ../shell/ev-sidebar-thumbnails.c:965 +msgid "Thumbnails" +msgstr "ēø®å" + +#: ../shell/ev-window.c:867 +#, c-format +msgid "Page %s ā %s" +msgstr "é %s ā %s" + +#: ../shell/ev-window.c:869 +#, c-format +msgid "Page %s" +msgstr "é %s" + +#: ../shell/ev-window.c:1422 +msgid "The document contains no pages" +msgstr "ę¤ę件äøå å«ä»»ä½é é¢" + +#: ../shell/ev-window.c:1425 +msgid "The document contains only empty pages" +msgstr "ę件åŖå å«ē©ŗē½é é¢" + +#: ../shell/ev-window.c:1627 ../shell/ev-window.c:1793 +msgid "Unable to open document" +msgstr "ē”ę³éåę件" + +#: ../shell/ev-window.c:1764 +#, c-format +msgid "Loading document from ā%sā" +msgstr "ę£åØå¾ć%sćč¼å „ę件" + +#: ../shell/ev-window.c:1906 ../shell/ev-window.c:2185 +#, c-format +msgid "Downloading document (%d%%)" +msgstr "ę£åØäøč¼ę件 (%d%%)" + +#: ../shell/ev-window.c:1939 +msgid "Failed to load remote file." +msgstr "č¼å „é ē«ÆēęŖę”失ęć" + +#: ../shell/ev-window.c:2129 +#, c-format +msgid "Reloading document from %s" +msgstr "å¾ %s éę°č¼å „ę件" + +#: ../shell/ev-window.c:2161 +msgid "Failed to reload document." +msgstr "éę°č¼å „ę件失ęć" + +#: ../shell/ev-window.c:2316 +msgid "Open Document" +msgstr "éåę件" + +#: ../shell/ev-window.c:2614 +#, c-format +msgid "Saving document to %s" +msgstr "ę£å²åęä»¶å° %s" + +#: ../shell/ev-window.c:2617 +#, c-format +msgid "Saving attachment to %s" +msgstr "ę£å²åéå ęŖę”å° %s" + +#: ../shell/ev-window.c:2620 +#, c-format +msgid "Saving image to %s" +msgstr "ę£å²ååēå° %s" + +#: ../shell/ev-window.c:2664 ../shell/ev-window.c:2764 +#, c-format +msgid "The file could not be saved as ā%sā." +msgstr "ęŖę”ē”ę³å²åēŗā%sāć" + +#: ../shell/ev-window.c:2695 +#, c-format +msgid "Uploading document (%d%%)" +msgstr "ę£åØäøå³ę件 (%d%%)" + +#: ../shell/ev-window.c:2699 +#, c-format +msgid "Uploading attachment (%d%%)" +msgstr "ę£åØäøå³éå ęŖę” (%d%%)" + +#: ../shell/ev-window.c:2703 +#, c-format +msgid "Uploading image (%d%%)" +msgstr "ę£åØäøå³åē (%d%%)" + +#: ../shell/ev-window.c:2827 +msgid "Save a Copy" +msgstr "å²ååÆę¬" + +#: ../shell/ev-window.c:3112 +#, c-format +msgid "%d pending job in queue" +msgid_plural "%d pending jobs in queue" +msgstr[0] "ä½åäø %d é é å®ēå·„ä½" + +#: ../shell/ev-window.c:3225 +#, c-format +msgid "Printing job ā%sā" +msgstr "ę£åØåå°å·„ä½ā%sā" + +#: ../shell/ev-window.c:3402 +msgid "" +"Document contains form fields that have been filled out. If you don't save a " +"copy, changes will be permanently lost." +msgstr "ę件å å«å°ęŖ唫åÆ«ēč”Øå®ę¬ä½ćå¦ęęØäøå²åč¤ę¬ļ¼éäŗč®ę“å°±ęę°øé ę¶å¤±ć" + +#: ../shell/ev-window.c:3406 +msgid "" +"Document contains new or modified annotations. If you don't save a copy, " +"changes will be permanently lost." +msgstr "ę件å å«ę°ēęäæ®ę¹éēčØ»č§£ćå¦ęęØäøå²åč¤ę¬ļ¼éäŗč®ę“å°±ęę°øé ę¶å¤±ć" + +#: ../shell/ev-window.c:3413 +#, c-format +msgid "Save a copy of document ā%sā before closing?" +msgstr "ééåč¦å²åę件ć%sćēč¤ę¬åļ¼" + +#: ../shell/ev-window.c:3432 +msgid "Close _without Saving" +msgstr "ééä½äøå²å(_W)" + +#: ../shell/ev-window.c:3436 +msgid "Save a _Copy" +msgstr "å²ååÆę¬(_C)" + +#: ../shell/ev-window.c:3510 +#, c-format +msgid "Wait until print job ā%sā finishes before closing?" +msgstr "åØééåęÆå¦č¦ēå¾ åå°å·„ä½ā%sāēµęļ¼" + +#: ../shell/ev-window.c:3513 +#, c-format +msgid "" +"There are %d print jobs active. Wait until print finishes before closing?" +msgstr "éę %d é åå°å·„ä½åØä½æēØäøćåØééåęÆå¦č¦ēå¾ åå°ēµęļ¼" + +#: ../shell/ev-window.c:3525 +msgid "If you close the window, pending print jobs will not be printed." +msgstr "å¦ęęØééč¦ēŖļ¼é å®ēåå°å·„ä½å°äøęåå°ć" + +#: ../shell/ev-window.c:3529 +msgid "Cancel _print and Close" +msgstr "åę¶åå°äø¦éé(_P)" + +#: ../shell/ev-window.c:3533 +msgid "Close _after Printing" +msgstr "ę¼åå°å®ęå¾éé(_A)" + +#: ../shell/ev-window.c:4153 +msgid "Toolbar Editor" +msgstr "å·„å ·åē·Øč¼ÆåØ" + +#: ../shell/ev-window.c:4320 +msgid "There was an error displaying help" +msgstr "é”Æē¤ŗčŖŖęę件ęē¼ēéÆčŖ¤" + +#: ../shell/ev-window.c:4532 +#, c-format +msgid "" +"Document Viewer\n" +"Using %s (%s)" +msgstr "" +"ę件ęŖ¢č¦åØ\n" +"ä½æēØ %s (%s)" + +# (Abel) 大č“äøåč slat.org ēå»ŗč° +#: ../shell/ev-window.c:4563 +msgid "" +"Evince 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 2 of the License, or (at your option) any later " +"version.\n" +msgstr "" +"Evince ēŗčŖē±č»é«ļ¼ęØåÆä¾ęčŖē±č»é«åŗéęęē¼č”Øē GNU éēØå ¬å ±ęę¬ę¢ę¬¾č¦å®ļ¼" +"å°±ę¬ēØå¼åēŗę£ä½čļ¼ęäæ®ę¹ļ¼ē”č«ęØä¾ęēęÆę¬ęę¬ēē¬¬äŗēęļ¼ęØčŖč”éøęēļ¼ä»»" +"äøę„å¾ē¼č”ēēę¬ć\n" + +#: ../shell/ev-window.c:4567 +msgid "" +"Evince 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.\n" +msgstr "" +"Evince äæåŗę¼ä½æēØē®ēčå 仄ę£ä½ļ¼ē¶čäøč² ä»»ä½ęäæč²¬ä»»ļ¼äŗ¦ē”å°é©å®ę§ęē¹å®ē®ē" +"é©ēØę§ęēŗēé»ē¤ŗę§ęäæćč©³ę č«åē § GNU éēØå ¬å ±ęę¬ć\n" + +#: ../shell/ev-window.c:4571 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"Evince; if not, write to the Free Software Foundation, Inc., 51 Franklin " +"Street, Fifth Floor, Boston, MA 02110-1301 USA\n" +msgstr "" +"ęØęč©²å·²ē¶å Evince ēØå¼äøčµ·ę¶å°äø份 GNU éēØå ¬å ±čرåÆčēåÆę¬ćå¦ęéę²ęļ¼åÆ«" +"äæ”ēµ¦ļ¼ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " +"Boston, MA 02110-1301 USA\n" + +#: ../shell/ev-window.c:4596 +msgid "Evince" +msgstr "Evince" + +#: ../shell/ev-window.c:4599 +msgid "Ā© 1996ā2009 The Evince authors" +msgstr "Ā© 1996-2009 Evince ä½č ē¾¤" + +#: ../shell/ev-window.c:4605 +msgid "translator-credits" +msgstr "" +"å¦å°ēæ»čÆęä»»ä½ęč¦ļ¼č«éäøå°é»åéµä»¶ēµ¦\n" +"仄äøå°åļ¼MATE ēæ»čÆåéęååæ«åč¦ęØļ¼\n" +"zh-l10n@lists.linux.org.tw\n" +"\n" +"Woodman Tuen <wmtuen@gmail.com>, 2006-07\n" +"č¶ęå« <chaoweilun@pcmail.com.tw>, 2005\n" +"Abel Cheung <maddog@linuxhall.org>, 2005\n" +"Funda Wang <fundawang@linux.net.cn>, 2004" + +#. TRANS: Sometimes this could be better translated as +#. "%d hit(s) on this page". Therefore this string +#. contains plural cases. +#: ../shell/ev-window.c:4871 +#, c-format +msgid "%d found on this page" +msgid_plural "%d found on this page" +msgstr[0] "ę¬é ę¾å° %d č" + +#: ../shell/ev-window.c:4876 +msgid "Not found" +msgstr "ę¾äøå°" + +#: ../shell/ev-window.c:4882 +#, c-format +msgid "%3d%% remaining to search" +msgstr "éę %3d%% å°å¾ ęå°" + +#: ../shell/ev-window.c:5395 +msgid "_File" +msgstr "ęŖę”(_F)" + +#: ../shell/ev-window.c:5396 +msgid "_Edit" +msgstr "ē·Øč¼Æ(_E)" + +#: ../shell/ev-window.c:5397 +msgid "_View" +msgstr "ęŖ¢č¦(_V)" + +#: ../shell/ev-window.c:5398 +msgid "_Go" +msgstr "åå¾(_G)" + +#: ../shell/ev-window.c:5399 +msgid "_Help" +msgstr "ę±å©(_H)" + +#. File menu +#: ../shell/ev-window.c:5402 ../shell/ev-window.c:5703 +msgid "_Openā¦" +msgstr "éå(_O)ā¦" + +#: ../shell/ev-window.c:5403 ../shell/ev-window.c:5704 +msgid "Open an existing document" +msgstr "éåē¾åę件" + +#: ../shell/ev-window.c:5405 +msgid "Op_en a Copy" +msgstr "éååÆę¬(_E)" + +#: ../shell/ev-window.c:5406 +msgid "Open a copy of the current document in a new window" +msgstr "åØę°ēč¦ēŖéåē®åę件ēåÆę¬" + +#: ../shell/ev-window.c:5408 +msgid "_Save a Copyā¦" +msgstr "å²ååÆę¬(_S)ā¦" + +#: ../shell/ev-window.c:5409 +msgid "Save a copy of the current document" +msgstr "å²åäøåē®åę件ēåÆę¬" + +#: ../shell/ev-window.c:5411 +msgid "_Printā¦" +msgstr "åå°(_P)ā¦" + +#: ../shell/ev-window.c:5414 +msgid "P_roperties" +msgstr "屬ę§(_R)" + +#: ../shell/ev-window.c:5422 +msgid "Select _All" +msgstr "å ØéØéøå(_A)" + +#: ../shell/ev-window.c:5424 +msgid "_Findā¦" +msgstr "å°ę¾(_F)ā¦" + +#: ../shell/ev-window.c:5425 +msgid "Find a word or phrase in the document" +msgstr "åØę件äøå°ę¾åč©" + +#: ../shell/ev-window.c:5431 +msgid "T_oolbar" +msgstr "å·„å ·å(_O)" + +#: ../shell/ev-window.c:5433 +msgid "Rotate _Left" +msgstr "åå·¦ęč½(_L)" + +#: ../shell/ev-window.c:5435 +msgid "Rotate _Right" +msgstr "åå³ęč½(_R)" + +#: ../shell/ev-window.c:5437 +msgid "Save Current Settings as _Default" +msgstr "å°ē®åēčØå®å¼å²åēŗé čØå¼(_D)" + +#: ../shell/ev-window.c:5448 +msgid "_Reload" +msgstr "éę°č¼å „(_R)" + +#: ../shell/ev-window.c:5449 +msgid "Reload the document" +msgstr "éę°č¼å „ę件" + +#: ../shell/ev-window.c:5452 +msgid "Auto_scroll" +msgstr "čŖåę²å(_S)" + +#: ../shell/ev-window.c:5462 +msgid "_First Page" +msgstr "ē¬¬äøé (_F)" + +#: ../shell/ev-window.c:5463 +msgid "Go to the first page" +msgstr "åå°ē¬¬äøé " + +#: ../shell/ev-window.c:5465 +msgid "_Last Page" +msgstr "ęå¾äøé (_L)" + +#: ../shell/ev-window.c:5466 +msgid "Go to the last page" +msgstr "åå¾ęå¾äøé " + +#. Help menu +#: ../shell/ev-window.c:5470 +msgid "_Contents" +msgstr "å §å®¹(_C)" + +#: ../shell/ev-window.c:5473 +msgid "_About" +msgstr "éę¼(_A)" + +#. Toolbar-only +#: ../shell/ev-window.c:5477 +msgid "Leave Fullscreen" +msgstr "é¢éå Øč¢å¹" + +#: ../shell/ev-window.c:5478 +msgid "Leave fullscreen mode" +msgstr "é¢éå Øč¢å¹ęØ”å¼" + +#: ../shell/ev-window.c:5480 +msgid "Start Presentation" +msgstr "éå§ē°”å ±" + +#: ../shell/ev-window.c:5481 +msgid "Start a presentation" +msgstr "ē°”å ±å¼é”Æē¤ŗ" + +#. View Menu +#: ../shell/ev-window.c:5540 +msgid "_Toolbar" +msgstr "å·„å ·å(_T)" + +#: ../shell/ev-window.c:5541 +msgid "Show or hide the toolbar" +msgstr "é”Æē¤ŗęé±čå·„å ·å" + +#: ../shell/ev-window.c:5543 +msgid "Side _Pane" +msgstr "å“éēŖę ¼(_P)" + +#: ../shell/ev-window.c:5544 +msgid "Show or hide the side pane" +msgstr "é”Æē¤ŗęé±čå“é¢ēŖę ¼" + +#: ../shell/ev-window.c:5546 +msgid "_Continuous" +msgstr "é£ēŗ(_C)" + +#: ../shell/ev-window.c:5547 +msgid "Show the entire document" +msgstr "é”Æē¤ŗę“份ę件" + +#: ../shell/ev-window.c:5549 +msgid "_Dual" +msgstr "å ©é (_D)" + +#: ../shell/ev-window.c:5550 +msgid "Show two pages at once" +msgstr "äøꬔé”Æē¤ŗå ©é " + +#: ../shell/ev-window.c:5552 +msgid "_Fullscreen" +msgstr "å Øč¢å¹(_F)" + +#: ../shell/ev-window.c:5553 +msgid "Expand the window to fill the screen" +msgstr "å°č¦ēŖå±éēŗå Øč¢å¹" + +#: ../shell/ev-window.c:5555 +msgid "Pre_sentation" +msgstr "ē°”å ±(_S)" + +#: ../shell/ev-window.c:5556 +msgid "Run document as a presentation" +msgstr "å¦åē°”å ±č¬å·č”ę件" + +#: ../shell/ev-window.c:5564 +msgid "_Inverted Colors" +msgstr "åč½é”č²(_I)" + +#: ../shell/ev-window.c:5565 +msgid "Show page contents with the colors inverted" +msgstr "仄é”č²åč½ēę¹å¼é”Æē¤ŗé é¢å §å®¹" + +#. Links +#: ../shell/ev-window.c:5573 +msgid "_Open Link" +msgstr "éåé£ēµ(_O)" + +#: ../shell/ev-window.c:5575 +msgid "_Go To" +msgstr "ē§»č³(_G)" + +#: ../shell/ev-window.c:5577 +msgid "Open in New _Window" +msgstr "åØę°ēč¦ēŖäøéå(_W)" + +#: ../shell/ev-window.c:5579 +msgid "_Copy Link Address" +msgstr "č¤č£½é£ēµä½å(_C)" + +#: ../shell/ev-window.c:5581 +msgid "_Save Image Asā¦" +msgstr "å¦ååē(_S)ā¦" + +#: ../shell/ev-window.c:5583 +msgid "Copy _Image" +msgstr "č¤č£½åē(_I)" + +#: ../shell/ev-window.c:5585 +msgid "Annotation Propertiesā¦" +msgstr "čØ»č§£å±¬ę§ā¦" + +#: ../shell/ev-window.c:5590 +msgid "_Open Attachment" +msgstr "éåé件(_O)" + +#: ../shell/ev-window.c:5592 +msgid "_Save Attachment Asā¦" +msgstr "å¦åé件ēŗ(_S)ā¦" + +#: ../shell/ev-window.c:5677 +msgid "Zoom" +msgstr "ēø®ę¾" + +#: ../shell/ev-window.c:5679 +msgid "Adjust the zoom level" +msgstr "čŖæę“ēø®ę¾ēē“" + +#: ../shell/ev-window.c:5689 +msgid "Navigation" +msgstr "å°čŖ" + +#: ../shell/ev-window.c:5691 +msgid "Back" +msgstr "å¾é" + +#. translators: this is the history action +#: ../shell/ev-window.c:5694 +msgid "Move across visited pages" +msgstr "åØå·²é±č®ēé é¢éē§»å" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5724 +msgid "Previous" +msgstr "äøäøé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5729 +msgid "Next" +msgstr "äøäøé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5733 +msgid "Zoom In" +msgstr "ęčæ" + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5737 +msgid "Zoom Out" +msgstr "ęé " + +#. translators: this is the label for toolbar button +#: ../shell/ev-window.c:5745 +msgid "Fit Width" +msgstr "ē¬¦åé åƬ" + +#: ../shell/ev-window.c:5890 ../shell/ev-window.c:5907 +msgid "Unable to launch external application." +msgstr "ē”ę³ååå¤éØęēØēØå¼ć" + +#: ../shell/ev-window.c:5964 +msgid "Unable to open external link" +msgstr "ē”ę³éåå¤éØé£ēµ" + +#: ../shell/ev-window.c:6131 +msgid "Couldn't find appropriate format to save image" +msgstr "ę¾äøå°åé©ēę ¼å¼ä¾å²ååē" + +#: ../shell/ev-window.c:6173 +msgid "The image could not be saved." +msgstr "åēē”ę³å²åć" + +#: ../shell/ev-window.c:6205 +msgid "Save Image" +msgstr "å²ååē" + +#: ../shell/ev-window.c:6333 +msgid "Unable to open attachment" +msgstr "ē”ę³éåé件" + +#: ../shell/ev-window.c:6386 +msgid "The attachment could not be saved." +msgstr "é件ē”ę³å²åć" + +#: ../shell/ev-window.c:6431 +msgid "Save Attachment" +msgstr "å²åé件" + +#: ../shell/ev-window-title.c:162 +#, c-format +msgid "%s ā Password Required" +msgstr "%s ā éč¦åÆē¢¼" + +#: ../shell/ev-utils.c:318 +msgid "By extension" +msgstr "ä¾å»¶ä¼øęŖå" + +#: ../shell/main.c:69 ../shell/main.c:274 +msgid "MATE Document Viewer" +msgstr "MATE ę件ęŖ¢č¦åØ" + +#: ../shell/main.c:77 +msgid "The page label of the document to display." +msgstr "č¦é”Æē¤ŗēę件é é¢ęØē±¤ć" + +#: ../shell/main.c:77 +msgid "PAGE" +msgstr "é ꬔ" + +#: ../shell/main.c:78 +msgid "The page number of the document to display." +msgstr "č¦é”Æē¤ŗēę件é ē¢¼ć" + +#: ../shell/main.c:78 +msgid "NUMBER" +msgstr "ē·Øč" + +#: ../shell/main.c:79 +msgid "Run evince in fullscreen mode" +msgstr "仄å Øč¢å¹ęØ”å¼å·č” evince" + +#: ../shell/main.c:80 +msgid "Run evince in presentation mode" +msgstr "仄ē°”å ±ęØ”å¼å·č” evince" + +#: ../shell/main.c:81 +msgid "Run evince as a previewer" +msgstr "仄 evince ä½ēŗé č¦½ēØå¼" + +#: ../shell/main.c:82 +msgid "The word or phrase to find in the document" +msgstr "č¦åØę件äøå°ę¾ēåęč©" + +#: ../shell/main.c:82 +msgid "STRING" +msgstr "åäø²" + +#: ../shell/main.c:86 +msgid "[FILEā¦]" +msgstr "[ęŖę”...]" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:1 +msgid "" +"Boolean options available: true enables thumbnailing and false disables the " +"creation of new thumbnails" +msgstr "åÆēØēåøęéøé ļ¼ātrueāęéåēø®ååč½ļ¼čāfalseāęåę¢å»ŗē«ę°ēēø®å" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:2 +msgid "Enable thumbnailing of PDF Documents" +msgstr "åå PDF ę件ēēø®ååč½" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:3 +msgid "Thumbnail command for PDF Documents" +msgstr "PDF ę件ēēø®åå½ä»¤" + +#: ../thumbnailer/evince-thumbnailer.schemas.in.h:4 +msgid "" +"Valid command plus arguments for the PDF Document thumbnailer. See Caja " +"thumbnailer documentation for more information." +msgstr "" +"ę£ē¢ŗēę令å äø代č”Ø PDF ę件ēø®åēå¼ęøćč«åč¦ Caja ēø®åę件仄å¾å°ę“å¤č³" +"čØć" + +#~ msgid "Page Set_upā¦" +#~ msgstr "é é¢čØå®(_U)ā¦" + +#~ msgid "Set up the page settings for printing" +#~ msgstr "čØå®åå°ēØēé é¢čØå®" + +#~ msgid "DJVU document has incorrect format" +#~ msgstr "DJVU ę件ęäøę£ē¢ŗēę ¼å¼" + +#~ msgid "Failed to create file ā%sā: %s" +#~ msgstr "ē”ę³å»ŗē«ęŖę”ā%sāļ¼%s" + +#~ msgid "Search string" +#~ msgstr "ęå°åäø²" + +#~ msgid "The name of the string to be found" +#~ msgstr "ę¬²ęå°ēåäø²åēر" + +#~ msgid "Case sensitive" +#~ msgstr "åå大å°åÆ«" + +#~ msgid "TRUE for a case sensitive search" +#~ msgstr "TRUE 代č”Øåå大å°åÆ«ēęå°" + +#~ msgid "Highlight color" +#~ msgstr "ęØē¤ŗé”č²" + +#~ msgid "Color of highlight for all matches" +#~ msgstr "ēØä¾ęØē¤ŗęęē¬¦ååäø²ēé”č²" + +#~ msgid "Current color" +#~ msgstr "ē®åēé”č²" + +#~ msgid "Color of highlight for the current match" +#~ msgstr "ēØä¾ęØē¤ŗē®åē¬¦ååäø²ēé”č²" + +#~ msgid "Recover previous documents?" +#~ msgstr "ęÆå¦å¾©ååäø份ę件ļ¼" + +#~ msgid "" +#~ "Evince appears to have exited unexpectedly the last time it was run. You " +#~ "can recover the opened documents." +#~ msgstr "Evince åØäøꬔå·č”ęä¼¼ä¹ēŖē¶ééäŗćęØåÆ仄復åå·²éåēę件ć" + +#~ msgid "_Don't Recover" +#~ msgstr "äøč¦å¾©å(_D)" + +#~ msgid "_Recover" +#~ msgstr "復å(_R)" + +#~ msgid "Crash Recovery" +#~ msgstr "ē¶ę©å¾å¾©å" + +#~ msgid "Print..." +#~ msgstr "åå°..." + +#~ msgid "Couldn't create symlink ā%sā: " +#~ msgstr "ē”ę³å»ŗē«ē¬¦čé£ēµć%sćļ¼" + +#~ msgid "Cannot open a copy." +#~ msgstr "ē”ę³éååÆę¬ć" + +#~ msgid "_Save a Copy..." +#~ msgstr "å²ååÆę¬(_S)..." + +#~ msgid "_Print..." +#~ msgstr "åå°(_P)..." + +#~ msgid "_Find..." +#~ msgstr "å°ę¾(_F)..." + +#~ msgid "Co_nnect" +#~ msgstr "é£ē·(_N)" + +#~ msgid "Connect _anonymously" +#~ msgstr "åæåé£ē·(_A)" + +#~ msgid "Connect as u_ser:" +#~ msgstr "仄ä½æēØč é£ē·(_S):" + +#~ msgid "_Username:" +#~ msgstr "ä½æēØč åēر(_U):" + +#~ msgid "_Domain:" +#~ msgstr "ē¶²å(_D):" + +#~ msgid "_Forget password immediately" +#~ msgstr "ē«å»åæęåÆē¢¼(_F) " + +#~ msgid "_Remember password until you logout" +#~ msgstr "åØęØē»åŗåčØä½åÆē¢¼(_R)" + +#~ msgid "_Remember forever" +#~ msgstr "ę°øé čØä½(_R)" + +#~ msgid "File not available" +#~ msgstr "ęŖę”äøååØ" + +#~ msgid "Remote files aren't supported" +#~ msgstr "äøęÆę“é ē«ÆęŖę”" + +#~ msgid "Find Previous" +#~ msgstr "ę¾äøäøå" + +#~ msgid "Find Next" +#~ msgstr "ę¾äøäøå" + +#~ msgid "Password Entry" +#~ msgstr "åÆē¢¼č¼øå „ę¬" + +#~ msgid "Remember password for this session" +#~ msgstr "åØę¤ä½ę„éꮵäøčØä½åÆē¢¼" + +#~ msgid "Save password in keyring" +#~ msgstr "å²ååÆē¢¼ę¼é°ååēØå¼äø" + +#~ msgid "<b>Title:</b>" +#~ msgstr "<b>ęØé”ļ¼</b>" + +#~ msgid "%.2f x %.2f in" +#~ msgstr "%.2f x %.2f åÆø" + +#~ msgid "Incorrect password" +#~ msgstr "åÆē¢¼äøę£ē¢ŗ" + +#~ msgid "Evince Document Viewer" +#~ msgstr "Evince ę件ęŖ¢č¦åØ" + +#~ msgid "BBox" +#~ msgstr "BBox" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Tabloid" +#~ msgstr "Tabloid" + +#~ msgid "Ledger" +#~ msgstr "Ledger" + +#~ msgid "Legal" +#~ msgstr "Legal" + +#~ msgid "Statement" +#~ msgstr "é³čæ°" + +#~ msgid "Executive" +#~ msgstr "Executive" + +#~ msgid "A0" +#~ msgstr "A0" + +#~ msgid "A1" +#~ msgstr "A1" + +#~ msgid "A2" +#~ msgstr "A2" + +#~ msgid "A3" +#~ msgstr "A3" + +#~ msgid "A4" +#~ msgstr "A4" + +#~ msgid "A5" +#~ msgstr "A5" + +#~ msgid "B4" +#~ msgstr "B4" + +#~ msgid "B5" +#~ msgstr "B5" + +#~ msgid "Folio" +#~ msgstr "Folio" + +#~ msgid "Quarto" +#~ msgstr "Quarto" + +#~ msgid "10x14" +#~ msgstr "10x14" + +#~ msgid "Cannot open file ā%sā." +#~ msgstr "ē”ę³éåęŖę”ā%sāć" + +#~ msgid "" +#~ "Failed to load document ā%sā. Ghostscript interpreter was not found in " +#~ "path" +#~ msgstr "ē”ę³č¼å „ęŖę”ā%sāćåØč·Æå¾äøę¾äøå° Ghostscript č§£čÆåØ" + +#~ msgid "Encapsulated PostScript" +#~ msgstr "Encapsulated PostScript" + +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgid "Interpreter failed." +#~ msgstr "č§£čÆēØå¼å¤±čŖ¤ć" + +#~ msgid "Unhandled MIME type: ā%sā" +#~ msgstr "ē”ę³čēē MIME é”åļ¼ā%sā" + +#~ msgid "Generating PDF is not supported" +#~ msgstr "äøęÆę“ē¢ē PDF ę件" + +#~ msgid "" +#~ "You were trying to print to a printer using the ā%sā driver. This program " +#~ "requires a PostScript printer driver." +#~ msgstr "" +#~ "ęØåå試čå©ēØā%sāå°č”Øę©é© åēØå¼ļ¼åÆęÆę¬ēØå¼éč¦ PostScript å°č”Øę©é© åēØ" +#~ "å¼ć" + +#~ msgid "Pages" +#~ msgstr "é ęø" + +#~ msgid "Images" +#~ msgstr "åē" + +#~ msgid "Open ā%sā" +#~ msgstr "éåā%sā" + +#~ msgid "Empty" +#~ msgstr "ē©ŗē" + +#~ msgid "75%" +#~ msgstr "75%" + +#~ msgid "No document loaded." +#~ msgstr "ę²ęč¼å „ä»»ä½ę件ć" + +#~ msgid "Broken pipe." +#~ msgstr "ē®”ē·ä½ę„äøę·" + +#~ msgid "Error while decompressing file ā%sā:\n" +#~ msgstr "ęŖę”ā%sāč§£å£ēø®ęē¢ēéÆčŖ¤ļ¼\n" + +#~ msgid "File is not readable." +#~ msgstr "ęŖę”ēŗäøåÆč®ć" + +#~ msgid "Document loaded." +#~ msgstr "ę件已č¼å „ć" diff --git a/previewer/Makefile.am b/previewer/Makefile.am new file mode 100644 index 00000000..ab8f95d7 --- /dev/null +++ b/previewer/Makefile.am @@ -0,0 +1,37 @@ + +bin_PROGRAMS = evince-previewer + +evince_previewer_SOURCES = \ + ev-previewer.c \ + ev-previewer-window.h \ + ev-previewer-window.c + +evince_previewer_CPPFLAGS = \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/libdocument \ + -I$(top_srcdir)/libview \ + -I$(top_srcdir)/libmisc \ + $(AM_CPPFLAGS) + +evince_previewer_CFLAGS = \ + $(PREVIEWER_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(AM_CFLAGS) + +evince_previewer_LDFLAGS = $(AM_LDFLAGS) + +if PLATFORM_WIN32 +evince_previewer_LDFLAGS += -mwindows +endif + +evince_previewer_LDADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(top_builddir)/libview/libevview.la \ + $(top_builddir)/libmisc/libevmisc.la \ + $(PREVIEWER_LIBS) + + +-include $(top_srcdir)/git.mk diff --git a/previewer/ev-previewer-window.c b/previewer/ev-previewer-window.c new file mode 100644 index 00000000..bfef10dc --- /dev/null +++ b/previewer/ev-previewer-window.c @@ -0,0 +1,723 @@ +/* ev-previewer-window.c: + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#if GTKUNIXPRINT_ENABLED +#include <gtk/gtkunixprint.h> +#endif +#include <glib/gi18n.h> +#include <evince-view.h> +#include "ev-page-action.h" + +#include "ev-previewer-window.h" + +struct _EvPreviewerWindow { + GtkWindow base_instance; + + EvDocumentModel *model; + EvDocument *document; + + GtkActionGroup *action_group; + GtkActionGroup *accels_group; + GtkUIManager *ui_manager; + + GtkWidget *swindow; + EvView *view; + gdouble dpi; + + /* Printing */ + GtkPrintSettings *print_settings; + GtkPageSetup *print_page_setup; +#if GTKUNIXPRINT_ENABLED + GtkPrinter *printer; +#endif + gchar *print_job_title; + gchar *source_file; +}; + +struct _EvPreviewerWindowClass { + GtkWindowClass base_class; +}; + +enum { + PROP_0, + PROP_MODEL +}; + +#define MIN_SCALE 0.05409 +#define MAX_SCALE 4.0 + +G_DEFINE_TYPE (EvPreviewerWindow, ev_previewer_window, GTK_TYPE_WINDOW) + +static gdouble +get_screen_dpi (EvPreviewerWindow *window) +{ + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + return ev_document_misc_get_screen_dpi (screen); +} + +#if GTKUNIXPRINT_ENABLED +static void +ev_previewer_window_error_dialog_run (EvPreviewerWindow *window, + GError *error) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (GTK_WINDOW (window), + GTK_DIALOG_MODAL | + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", _("Failed to print document")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", error->message); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); +} +#endif + +static void +ev_previewer_window_close (GtkAction *action, + EvPreviewerWindow *window) +{ + gtk_widget_destroy (GTK_WIDGET (window)); +} + +static void +ev_previewer_window_previous_page (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_view_previous_page (window->view); +} + +static void +ev_previewer_window_next_page (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_view_next_page (window->view); +} + +static void +ev_previewer_window_zoom_in (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_document_model_set_sizing_mode (window->model, EV_SIZING_FREE); + ev_view_zoom_in (window->view); +} + +static void +ev_previewer_window_zoom_out (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_document_model_set_sizing_mode (window->model, EV_SIZING_FREE); + ev_view_zoom_out (window->view); +} + +static void +ev_previewer_window_zoom_best_fit (GtkToggleAction *action, + EvPreviewerWindow *window) +{ + ev_document_model_set_sizing_mode (window->model, + gtk_toggle_action_get_active (action) ? + EV_SIZING_BEST_FIT : EV_SIZING_FREE); +} + +static void +ev_previewer_window_zoom_page_width (GtkToggleAction *action, + EvPreviewerWindow *window) +{ + ev_document_model_set_sizing_mode (window->model, + gtk_toggle_action_get_active (action) ? + EV_SIZING_FIT_WIDTH : EV_SIZING_FREE); +} + +static void +ev_previewer_window_action_page_activated (GtkAction *action, + EvLink *link, + EvPreviewerWindow *window) +{ + ev_view_handle_link (window->view, link); + gtk_widget_grab_focus (GTK_WIDGET (window->view)); +} + +static void +ev_previewer_window_focus_page_selector (GtkAction *action, + EvPreviewerWindow *window) +{ + GtkAction *page_action; + + page_action = gtk_action_group_get_action (window->action_group, + "PageSelector"); + ev_page_action_grab_focus (EV_PAGE_ACTION (page_action)); +} + +static void +ev_previewer_window_scroll_forward (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_view_scroll (window->view, GTK_SCROLL_PAGE_FORWARD, FALSE); +} + +static void +ev_previewer_window_scroll_backward (GtkAction *action, + EvPreviewerWindow *window) +{ + ev_view_scroll (window->view, GTK_SCROLL_PAGE_BACKWARD, FALSE); +} + +#if GTKUNIXPRINT_ENABLED +static void +ev_previewer_window_print_finished (GtkPrintJob *print_job, + EvPreviewerWindow *window, + GError *error) +{ + if (error) { + ev_previewer_window_error_dialog_run (window, error); + } + + g_object_unref (print_job); + gtk_widget_destroy (GTK_WIDGET (window)); +} + +static void +ev_previewer_window_do_print (EvPreviewerWindow *window) +{ + GtkPrintJob *job; + GError *error = NULL; + + job = gtk_print_job_new (window->print_job_title ? + window->print_job_title : + window->source_file, + window->printer, + window->print_settings, + window->print_page_setup); + if (gtk_print_job_set_source_file (job, window->source_file, &error)) { + gtk_print_job_send (job, + (GtkPrintJobCompleteFunc)ev_previewer_window_print_finished, + window, NULL); + } else { + ev_previewer_window_error_dialog_run (window, error); + g_error_free (error); + } + + gtk_widget_hide (GTK_WIDGET (window)); +} + +static void +ev_previewer_window_enumerate_finished (EvPreviewerWindow *window) +{ + if (window->printer) { + ev_previewer_window_do_print (window); + } else { + GError *error = NULL; + + g_set_error (&error, + GTK_PRINT_ERROR, + GTK_PRINT_ERROR_GENERAL, + _("The selected printer '%s' could not be found"), + gtk_print_settings_get_printer (window->print_settings)); + + ev_previewer_window_error_dialog_run (window, error); + g_error_free (error); + } +} + +static gboolean +ev_previewer_window_enumerate_printers (GtkPrinter *printer, + EvPreviewerWindow *window) +{ + const gchar *printer_name; + + printer_name = gtk_print_settings_get_printer (window->print_settings); + if ((printer_name + && strcmp (printer_name, gtk_printer_get_name (printer)) == 0) || + (!printer_name && gtk_printer_is_default (printer))) { + if (window->printer) + g_object_unref (window->printer); + window->printer = g_object_ref (printer); + + return TRUE; /* we're done */ + } + + return FALSE; /* continue the enumeration */ +} + +static void +ev_previewer_window_print (GtkAction *action, + EvPreviewerWindow *window) +{ + if (!window->print_settings) + window->print_settings = gtk_print_settings_new (); + if (!window->print_page_setup) + window->print_page_setup = gtk_page_setup_new (); + gtk_enumerate_printers ((GtkPrinterFunc)ev_previewer_window_enumerate_printers, + window, + (GDestroyNotify)ev_previewer_window_enumerate_finished, + FALSE); +} +#endif + +static const GtkActionEntry action_entries[] = { + { "FileCloseWindow", GTK_STOCK_CLOSE, NULL, "<control>W", + NULL, + G_CALLBACK (ev_previewer_window_close) }, + { "GoPreviousPage", GTK_STOCK_GO_UP, N_("_Previous Page"), "<control>Page_Up", + N_("Go to the previous page"), + G_CALLBACK (ev_previewer_window_previous_page) }, + { "GoNextPage", GTK_STOCK_GO_DOWN, N_("_Next Page"), "<control>Page_Down", + N_("Go to the next page"), + G_CALLBACK (ev_previewer_window_next_page) }, + { "ViewZoomIn", GTK_STOCK_ZOOM_IN, NULL, "<control>plus", + N_("Enlarge the document"), + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "ViewZoomOut", GTK_STOCK_ZOOM_OUT, NULL, "<control>minus", + N_("Shrink the document"), + G_CALLBACK (ev_previewer_window_zoom_out) }, +#if GTKUNIXPRINT_ENABLED + { "PreviewPrint", GTK_STOCK_PRINT, N_("Print"), NULL, + N_("Print this document"), + G_CALLBACK (ev_previewer_window_print) } +#endif +}; + +static const GtkActionEntry accel_entries[] = { + { "Space", NULL, "", "space", NULL, + G_CALLBACK (ev_previewer_window_scroll_forward) }, + { "ShiftSpace", NULL, "", "<shift>space", NULL, + G_CALLBACK (ev_previewer_window_scroll_backward) }, + { "BackSpace", NULL, "", "BackSpace", NULL, + G_CALLBACK (ev_previewer_window_scroll_backward) }, + { "ShiftBackSpace", NULL, "", "<shift>BackSpace", NULL, + G_CALLBACK (ev_previewer_window_scroll_forward) }, + { "Return", NULL, "", "Return", NULL, + G_CALLBACK (ev_previewer_window_scroll_forward) }, + { "ShiftReturn", NULL, "", "<shift>Return", NULL, + G_CALLBACK (ev_previewer_window_scroll_backward) }, + { "p", GTK_STOCK_GO_UP, "", "p", NULL, + G_CALLBACK (ev_previewer_window_previous_page) }, + { "n", GTK_STOCK_GO_DOWN, "", "n", NULL, + G_CALLBACK (ev_previewer_window_next_page) }, + { "Plus", GTK_STOCK_ZOOM_IN, NULL, "plus", NULL, + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "CtrlEqual", GTK_STOCK_ZOOM_IN, NULL, "<control>equal", NULL, + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "Equal", GTK_STOCK_ZOOM_IN, NULL, "equal", NULL, + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "Minus", GTK_STOCK_ZOOM_OUT, NULL, "minus", NULL, + G_CALLBACK (ev_previewer_window_zoom_out) }, + { "KpPlus", GTK_STOCK_ZOOM_IN, NULL, "KP_Add", NULL, + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "KpMinus", GTK_STOCK_ZOOM_OUT, NULL, "KP_Subtract", NULL, + G_CALLBACK (ev_previewer_window_zoom_out) }, + { "CtrlKpPlus", GTK_STOCK_ZOOM_IN, NULL, "<control>KP_Add", NULL, + G_CALLBACK (ev_previewer_window_zoom_in) }, + { "CtrlKpMinus", GTK_STOCK_ZOOM_OUT, NULL, "<control>KP_Subtract", NULL, + G_CALLBACK (ev_previewer_window_zoom_out) }, + { "FocusPageSelector", NULL, "", "<control>l", NULL, + G_CALLBACK (ev_previewer_window_focus_page_selector) } + +}; + +static const GtkToggleActionEntry toggle_action_entries[] = { + { "ViewBestFit", EV_STOCK_ZOOM_PAGE, N_("_Best Fit"), NULL, + N_("Make the current document fill the window"), + G_CALLBACK (ev_previewer_window_zoom_best_fit) }, + { "ViewPageWidth", EV_STOCK_ZOOM_WIDTH, N_("Fit Page _Width"), NULL, + N_("Make the current document fill the window width"), + G_CALLBACK (ev_previewer_window_zoom_page_width) } +}; + +static gboolean +view_focus_changed (GtkWidget *widget, + GdkEventFocus *event, + EvPreviewerWindow *window) +{ + if (window->accels_group) + gtk_action_group_set_sensitive (window->accels_group, event->in); + + return FALSE; +} + +static void +view_sizing_mode_changed (EvDocumentModel *model, + GParamSpec *pspec, + EvPreviewerWindow *window) +{ + EvSizingMode sizing_mode = ev_document_model_get_sizing_mode (model); + GtkAction *action; + + action = gtk_action_group_get_action (window->action_group, "ViewBestFit"); + g_signal_handlers_block_by_func (action, + G_CALLBACK (ev_previewer_window_zoom_best_fit), + window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + sizing_mode == EV_SIZING_BEST_FIT); + g_signal_handlers_unblock_by_func (action, + G_CALLBACK (ev_previewer_window_zoom_best_fit), + window); + + action = gtk_action_group_get_action (window->action_group, "ViewPageWidth"); + g_signal_handlers_block_by_func (action, + G_CALLBACK (ev_previewer_window_zoom_page_width), + window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + sizing_mode == EV_SIZING_FIT_WIDTH); + g_signal_handlers_unblock_by_func (action, + G_CALLBACK (ev_previewer_window_zoom_page_width), + window); +} + +static void +ev_previewer_window_set_document (EvPreviewerWindow *window, + GParamSpec *pspec, + EvDocumentModel *model) +{ + EvDocument *document = ev_document_model_get_document (model); + + window->document = g_object_ref (document); + + g_signal_connect (model, "notify::sizing-mode", + G_CALLBACK (view_sizing_mode_changed), + window); + ev_view_set_loading (window->view, FALSE); + gtk_action_group_set_sensitive (window->action_group, TRUE); + gtk_action_group_set_sensitive (window->accels_group, TRUE); +} + +static void +ev_previewer_window_connect_action_accelerators (EvPreviewerWindow *window) +{ + GList *actions; + + gtk_ui_manager_ensure_update (window->ui_manager); + + actions = gtk_action_group_list_actions (window->action_group); + g_list_foreach (actions, (GFunc)gtk_action_connect_accelerator, NULL); + g_list_free (actions); +} + +static void +ev_previewer_window_dispose (GObject *object) +{ + EvPreviewerWindow *window = EV_PREVIEWER_WINDOW (object); + + if (window->model) { + g_object_unref (window->model); + window->model = NULL; + } + + if (window->document) { + g_object_unref (window->document); + window->document = NULL; + } + + if (window->action_group) { + g_object_unref (window->action_group); + window->action_group = NULL; + } + + if (window->accels_group) { + g_object_unref (window->accels_group); + window->accels_group = NULL; + } + + if (window->ui_manager) { + g_object_unref (window->ui_manager); + window->ui_manager = NULL; + } + + if (window->print_settings) { + g_object_unref (window->print_settings); + window->print_settings = NULL; + } + + if (window->print_page_setup) { + g_object_unref (window->print_page_setup); + window->print_page_setup = NULL; + } + +#if GTKUNIXPRINT_ENABLED + if (window->printer) { + g_object_unref (window->printer); + window->printer = NULL; + } +#endif + + if (window->print_job_title) { + g_free (window->print_job_title); + window->print_job_title = NULL; + } + + if (window->source_file) { + g_free (window->source_file); + window->source_file = NULL; + } + + G_OBJECT_CLASS (ev_previewer_window_parent_class)->dispose (object); +} + +static gchar* +data_dir (void) +{ + gchar *datadir; +#ifdef G_OS_WIN32 + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + datadir = g_build_filename (dir, "share", "evince", NULL); + g_free (dir); +#else + datadir = g_strdup (EVINCEDATADIR); +#endif + + return datadir; +} + +static void +ev_previewer_window_init (EvPreviewerWindow *window) +{ + gtk_window_set_default_size (GTK_WINDOW (window), 600, 600); +} + +static void +ev_previewer_window_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvPreviewerWindow *window = EV_PREVIEWER_WINDOW (object); + + switch (prop_id) { + case PROP_MODEL: + window->model = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static GObject * +ev_previewer_window_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_params) +{ + GObject *object; + EvPreviewerWindow *window; + GtkWidget *vbox; + GtkWidget *toolbar; + GtkAction *action; + GError *error = NULL; + gchar *datadir, *ui_path; + gdouble dpi; + + object = G_OBJECT_CLASS (ev_previewer_window_parent_class)->constructor (type, + n_construct_properties, + construct_params); + window = EV_PREVIEWER_WINDOW (object); + + dpi = get_screen_dpi (window); + ev_document_model_set_min_scale (window->model, MIN_SCALE * dpi / 72.0); + ev_document_model_set_max_scale (window->model, MAX_SCALE * dpi / 72.0); + ev_document_model_set_sizing_mode (window->model, EV_SIZING_FIT_WIDTH); + g_signal_connect_swapped (window->model, "notify::document", + G_CALLBACK (ev_previewer_window_set_document), + window); + + window->action_group = gtk_action_group_new ("PreviewerActions"); + gtk_action_group_set_translation_domain (window->action_group, NULL); + gtk_action_group_add_actions (window->action_group, action_entries, + G_N_ELEMENTS (action_entries), + window); + gtk_action_group_add_toggle_actions (window->action_group, toggle_action_entries, + G_N_ELEMENTS (toggle_action_entries), + window); + gtk_action_group_set_sensitive (window->action_group, FALSE); + + action = g_object_new (EV_TYPE_PAGE_ACTION, + "name", "PageSelector", + "label", _("Page"), + "tooltip", _("Select Page"), + "icon_name", "text-x-generic", + "visible_overflown", FALSE, + NULL); + ev_page_action_set_model (EV_PAGE_ACTION (action), window->model); + g_signal_connect (action, "activate_link", + G_CALLBACK (ev_previewer_window_action_page_activated), + window); + gtk_action_group_add_action (window->action_group, action); + g_object_unref (action); + + window->accels_group = gtk_action_group_new ("PreviewerAccelerators"); + gtk_action_group_add_actions (window->accels_group, accel_entries, + G_N_ELEMENTS (accel_entries), + window); + gtk_action_group_set_sensitive (window->accels_group, FALSE); + + window->ui_manager = gtk_ui_manager_new (); + gtk_ui_manager_insert_action_group (window->ui_manager, + window->action_group, 0); + gtk_ui_manager_insert_action_group (window->ui_manager, + window->accels_group, 1); + gtk_window_add_accel_group (GTK_WINDOW (window), + gtk_ui_manager_get_accel_group (window->ui_manager)); + datadir = data_dir (); + ui_path = g_build_filename (datadir, "evince-previewer-ui.xml", NULL); + if (!gtk_ui_manager_add_ui_from_file (window->ui_manager, ui_path, &error)) { + g_warning ("Failed to load ui from evince-previewer-ui.xml: %s", error->message); + g_error_free (error); + } + g_free (ui_path); + g_free (datadir); + + /* GTKUIManager connects actions accels only for menu items, + * but not for tool items. See bug #612972. + */ + ev_previewer_window_connect_action_accelerators (window); + + view_sizing_mode_changed (window->model, NULL, window); + + vbox = gtk_vbox_new (FALSE, 0); + + toolbar = gtk_ui_manager_get_widget (window->ui_manager, "/PreviewToolbar"); + gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0); + gtk_widget_show (toolbar); + + window->swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->swindow), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + + window->view = EV_VIEW (ev_view_new ()); + g_signal_connect_object (window->view, "focus_in_event", + G_CALLBACK (view_focus_changed), + window, 0); + g_signal_connect_object (window->view, "focus_out_event", + G_CALLBACK (view_focus_changed), + window, 0); + ev_view_set_model (window->view, window->model); + ev_document_model_set_continuous (window->model, FALSE); + ev_view_set_loading (window->view, TRUE); + + gtk_container_add (GTK_CONTAINER (window->swindow), GTK_WIDGET (window->view)); + gtk_widget_show (GTK_WIDGET (window->view)); + + gtk_box_pack_start (GTK_BOX (vbox), window->swindow, TRUE, TRUE, 0); + gtk_widget_show (window->swindow); + + gtk_container_add (GTK_CONTAINER (window), vbox); + gtk_widget_show (vbox); + + return object; +} + + +static void +ev_previewer_window_class_init (EvPreviewerWindowClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->constructor = ev_previewer_window_constructor; + gobject_class->set_property = ev_previewer_window_set_property; + gobject_class->dispose = ev_previewer_window_dispose; + + g_object_class_install_property (gobject_class, + PROP_MODEL, + g_param_spec_object ("model", + "Model", + "The document model", + EV_TYPE_DOCUMENT_MODEL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); +} + +/* Public methods */ +GtkWidget * +ev_previewer_window_new (EvDocumentModel *model) +{ + return GTK_WIDGET (g_object_new (EV_TYPE_PREVIEWER_WINDOW, "model", model, NULL)); +} + +void +ev_previewer_window_set_print_settings (EvPreviewerWindow *window, + const gchar *print_settings) +{ + if (window->print_settings) + g_object_unref (window->print_settings); + if (window->print_page_setup) + g_object_unref (window->print_page_setup); + if (window->print_job_title) + g_free (window->print_job_title); + + if (print_settings && g_file_test (print_settings, G_FILE_TEST_IS_REGULAR)) { + GKeyFile *key_file; + GError *error = NULL; + + key_file = g_key_file_new (); + g_key_file_load_from_file (key_file, + print_settings, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, + &error); + if (!error) { + GtkPrintSettings *psettings; + GtkPageSetup *psetup; + gchar *job_name; + + psettings = gtk_print_settings_new_from_key_file (key_file, + "Print Settings", + NULL); + window->print_settings = psettings ? psettings : gtk_print_settings_new (); + + psetup = gtk_page_setup_new_from_key_file (key_file, + "Page Setup", + NULL); + window->print_page_setup = psetup ? psetup : gtk_page_setup_new (); + + job_name = g_key_file_get_string (key_file, + "Print Job", "title", + NULL); + if (job_name) { + window->print_job_title = job_name; + gtk_window_set_title (GTK_WINDOW (window), job_name); + } + } else { + window->print_settings = gtk_print_settings_new (); + window->print_page_setup = gtk_page_setup_new (); + g_error_free (error); + } + + g_key_file_free (key_file); + } else { + window->print_settings = gtk_print_settings_new (); + window->print_page_setup = gtk_page_setup_new (); + } +} + +void +ev_previewer_window_set_source_file (EvPreviewerWindow *window, + const gchar *source_file) +{ + if (window->source_file) + g_free (window->source_file); + window->source_file = g_strdup (source_file); +} diff --git a/previewer/ev-previewer-window.h b/previewer/ev-previewer-window.h new file mode 100644 index 00000000..483d0245 --- /dev/null +++ b/previewer/ev-previewer-window.h @@ -0,0 +1,51 @@ +/* ev-previewer-window.h: + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_PREVIEWER_WINDOW_H +#define EV_PREVIEWER_WINDOW_H + +#include <gtk/gtk.h> + +#include <evince-document.h> +#include <evince-view.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PREVIEWER_WINDOW (ev_previewer_window_get_type()) +#define EV_PREVIEWER_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PREVIEWER_WINDOW, EvPreviewerWindow)) +#define EV_PREVIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PREVIEWER_WINDOW, EvPreviewerWindowClass)) +#define EV_IS_PREVIEWER_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PREVIEWER_WINDOW)) +#define EV_IS_PREVIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PREVIEWER_WINDOW)) +#define EV_PREVIEWER_WINDOW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PREVIEWER_WINDOW, EvPreviewerWindowClass)) + +typedef struct _EvPreviewerWindow EvPreviewerWindow; +typedef struct _EvPreviewerWindowClass EvPreviewerWindowClass; + +GType ev_previewer_window_get_type (void) G_GNUC_CONST; +GtkWidget *ev_previewer_window_new (EvDocumentModel *model); + +void ev_previewer_window_set_print_settings (EvPreviewerWindow *window, + const gchar *print_settings); +void ev_previewer_window_set_source_file (EvPreviewerWindow *window, + const gchar *source_file); + +G_END_DECLS + +#endif /* EV_PREVIEWER_WINDOW_H */ diff --git a/previewer/ev-previewer.c b/previewer/ev-previewer.c new file mode 100644 index 00000000..a836cf39 --- /dev/null +++ b/previewer/ev-previewer.c @@ -0,0 +1,205 @@ +/* ev-previewer.c: + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <gtk/gtk.h> +#include <glib/gi18n.h> +#include <evince-document.h> +#include <evince-view.h> + +#include "ev-previewer-window.h" + +#ifdef G_OS_WIN32 +#include <io.h> +#include <conio.h> +#if !(_WIN32_WINNT >= 0x0500) +#error "_WIN32_WINNT must be defined >= 0x0500" +#endif +#include <windows.h> +#endif + +static gboolean unlink_temp_file = FALSE; +static const gchar *print_settings; +static const gchar **filenames; + +static const GOptionEntry goption_options[] = { + { "unlink-tempfile", 'u', 0, G_OPTION_ARG_NONE, &unlink_temp_file, N_("Delete the temporary file"), NULL }, + { "print-settings", 'p', 0, G_OPTION_ARG_FILENAME, &print_settings, N_("Print settings file"), N_("FILE") }, + { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &filenames, NULL, N_("FILE") }, + { NULL } +}; + +static void +ev_previewer_unlink_tempfile (const gchar *filename) +{ + GFile *file, *tempdir; + + file = g_file_new_for_path (filename); + tempdir = g_file_new_for_path (g_get_tmp_dir ()); + + if (g_file_has_prefix (file, tempdir)) { + g_file_delete (file, NULL, NULL); + } + + g_object_unref (file); + g_object_unref (tempdir); +} + +static void +ev_previewer_load_job_finished (EvJob *job, + EvDocumentModel *model) +{ + if (ev_job_is_failed (job)) { + g_warning ("%s", job->error->message); + g_object_unref (job); + + return; + } + ev_document_model_set_document (model, job->document); + g_object_unref (job); +} + +static void +ev_previewer_load_document (const gchar *filename, + EvDocumentModel *model) +{ + EvJob *job; + gchar *uri; + GFile *file; + + file = g_file_new_for_commandline_arg (filename); + uri = g_file_get_uri (file); + g_object_unref (file); + + job = ev_job_load_new (uri); + g_signal_connect (job, "finished", + G_CALLBACK (ev_previewer_load_job_finished), + model); + ev_job_scheduler_push_job (job, EV_JOB_PRIORITY_NONE); + g_free (uri); +} + +gint +main (gint argc, gchar **argv) +{ + GtkWidget *window; + GOptionContext *context; + const gchar *filename; + EvDocumentModel *model; + GError *error = NULL; + +#ifdef G_OS_WIN32 + if (fileno (stdout) != -1 && + _get_osfhandle (fileno (stdout)) != -1) + { + /* stdout is fine, presumably redirected to a file or pipe */ + } + else + { + typedef BOOL (* WINAPI AttachConsole_t) (DWORD); + + AttachConsole_t p_AttachConsole = + (AttachConsole_t) GetProcAddress (GetModuleHandle ("kernel32.dll"), "AttachConsole"); + + if (p_AttachConsole != NULL && p_AttachConsole (ATTACH_PARENT_PROCESS)) + { + freopen ("CONOUT$", "w", stdout); + dup2 (fileno (stdout), 1); + freopen ("CONOUT$", "w", stderr); + dup2 (fileno (stderr), 2); + + } + } +#endif + + /* Init glib threads asap */ + if (!g_thread_supported ()) + g_thread_init (NULL); + +#ifdef ENABLE_NLS + /* Initialize the i18n stuff */ + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir()); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + context = g_option_context_new (_("MATE Document Previewer")); + g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); + g_option_context_add_main_entries (context, goption_options, GETTEXT_PACKAGE); + + g_option_context_add_group (context, gtk_get_option_group (TRUE)); + + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_warning ("Error parsing command line arguments: %s", error->message); + g_error_free (error); + g_option_context_free (context); + + return 1; + } + g_option_context_free (context); + + if (!filenames) { + g_warning ("File argument is required"); + + return 1; + } + + filename = filenames[0]; + + if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR)) { + g_warning ("Filename \"%s\" does not exist or is not a regular file", filename); + + return 1; + } + + if (!ev_init ()) + return 1; + + ev_stock_icons_init (); + + g_set_application_name (_("MATE Document Previewer")); + gtk_window_set_default_icon_name ("evince"); + + model = ev_document_model_new (); + window = ev_previewer_window_new (model); + ev_previewer_window_set_source_file (EV_PREVIEWER_WINDOW (window), filename); + ev_previewer_window_set_print_settings (EV_PREVIEWER_WINDOW (window), print_settings); + g_signal_connect (window, "delete-event", + G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_main_quit), NULL); + gtk_widget_show (window); + + ev_previewer_load_document (filename, model); + + gtk_main (); + + if (unlink_temp_file) + ev_previewer_unlink_tempfile (filename); + if (print_settings) + ev_previewer_unlink_tempfile (print_settings); + + ev_shutdown (); + ev_stock_icons_shutdown (); + g_object_unref (model); + + return 0; +} diff --git a/properties/Makefile.am b/properties/Makefile.am new file mode 100644 index 00000000..3ef1b82c --- /dev/null +++ b/properties/Makefile.am @@ -0,0 +1,35 @@ +INCLUDES= \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + $(FRONTEND_CFLAGS) \ + $(CAJA_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(WARN_CFLAGS) + +noinst_LTLIBRARIES = libevproperties.la + +libevproperties_la_SOURCES= \ + ev-properties-view.c \ + ev-properties-view.h + +if ENABLE_CAJA + +cajaextension_LTLIBRARIES = libevince-properties-page.la + +libevince_properties_page_la_CFLAGS = -I$(top_srcdir) +libevince_properties_page_la_SOURCES = \ + ev-properties-main.c + +libevince_properties_page_la_LIBADD = \ + libevproperties.la \ + $(top_builddir)/libdocument/libevdocument.la \ + $(FRONTEND_LIBS) \ + $(CAJA_LIBS) + +libevince_properties_page_la_LDFLAGS = -module -avoid-version -no-undefined + +endif # ENABLE_CAJA + +-include $(top_srcdir)/git.mk diff --git a/properties/ev-properties-main.c b/properties/ev-properties-main.c new file mode 100644 index 00000000..b78396c3 --- /dev/null +++ b/properties/ev-properties-main.c @@ -0,0 +1,159 @@ +/* + * Copyright (C) 2000, 2001 Eazel Inc. + * Copyright (C) 2003 Andrew Sobala <aes@gnome.org> + * Copyright (C) 2005 Bastien Nocera <hadess@hadess.net> + * + * This library 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 2 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Ev project hereby grant permission for non-gpl compatible GStreamer + * plugins to be used and distributed together with GStreamer and Ev. This + * permission are above and beyond the permissions granted by the GPL license + * Ev is covered by. + * + * Monday 7th February 2005: Christian Schaller: Add excemption clause. + * See license_change file for details. + * + */ + +#include <config.h> + +#include <string.h> + +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> + +#include <libcaja-extension/caja-extension-types.h> +#include <libcaja-extension/caja-property-page-provider.h> + +#include <evince-document.h> +#include "ev-properties-view.h" + +static GType epp_type = 0; +static void property_page_provider_iface_init + (CajaPropertyPageProviderIface *iface); +static GList *ev_properties_get_pages + (CajaPropertyPageProvider *provider, GList *files); + +static void +ev_properties_plugin_register_type (GTypeModule *module) +{ + const GTypeInfo info = { + sizeof (GObjectClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) NULL, + NULL, + NULL, + sizeof (GObject), + 0, + (GInstanceInitFunc) NULL + }; + const GInterfaceInfo property_page_provider_iface_info = { + (GInterfaceInitFunc)property_page_provider_iface_init, + NULL, + NULL + }; + + epp_type = g_type_module_register_type (module, G_TYPE_OBJECT, + "EvPropertiesPlugin", + &info, 0); + g_type_module_add_interface (module, + epp_type, + CAJA_TYPE_PROPERTY_PAGE_PROVIDER, + &property_page_provider_iface_info); +} + +static void +property_page_provider_iface_init (CajaPropertyPageProviderIface *iface) +{ + iface->get_pages = ev_properties_get_pages; +} + +static GList * +ev_properties_get_pages (CajaPropertyPageProvider *provider, + GList *files) +{ + GError *error = NULL; + EvDocument *document; + GList *pages = NULL; + CajaFileInfo *file; + gchar *uri = NULL; + gchar *mime_type = NULL; + GtkWidget *page, *label; + CajaPropertyPage *property_page; + + /* only add properties page if a single file is selected */ + if (files == NULL || files->next != NULL) + goto end; + file = files->data; + + /* okay, make the page */ + uri = caja_file_info_get_uri (file); + mime_type = caja_file_info_get_mime_type (file); + + document = ev_backends_manager_get_document (mime_type); + if (!document) + goto end; + + ev_document_load (document, uri, &error); + if (error) { + g_error_free (error); + goto end; + } + + label = gtk_label_new (_("Document")); + page = ev_properties_view_new (uri); + ev_properties_view_set_info (EV_PROPERTIES_VIEW (page), + ev_document_get_info (document)); + gtk_widget_show (page); + property_page = caja_property_page_new ("document-properties", + label, page); + g_object_unref (document); + + pages = g_list_prepend (pages, property_page); + +end: + g_free (uri); + g_free (mime_type); + + return pages; +} + +/* --- extension interface --- */ +void +caja_module_initialize (GTypeModule *module) +{ + ev_properties_plugin_register_type (module); + ev_properties_view_register_type (module); + + ev_init (); +} + +void +caja_module_shutdown (void) +{ + ev_shutdown (); +} + +void +caja_module_list_types (const GType **types, + int *num_types) +{ + static GType type_list[1]; + + type_list[0] = epp_type; + *types = type_list; + *num_types = G_N_ELEMENTS (type_list); +} diff --git a/properties/ev-properties-view.c b/properties/ev-properties-view.c new file mode 100644 index 00000000..38a75641 --- /dev/null +++ b/properties/ev-properties-view.c @@ -0,0 +1,399 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> +#include <sys/time.h> +#include <time.h> + +#ifdef HAVE__NL_MEASUREMENT_MEASUREMENT +#include <langinfo.h> +#endif + +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> + +#include "ev-properties-view.h" + +typedef enum { + TITLE_PROPERTY, + URI_PROPERTY, + SUBJECT_PROPERTY, + AUTHOR_PROPERTY, + KEYWORDS_PROPERTY, + PRODUCER_PROPERTY, + CREATOR_PROPERTY, + CREATION_DATE_PROPERTY, + MOD_DATE_PROPERTY, + N_PAGES_PROPERTY, + LINEARIZED_PROPERTY, + FORMAT_PROPERTY, + SECURITY_PROPERTY, + PAPER_SIZE_PROPERTY, + N_PROPERTIES +} Property; + +typedef struct { + Property property; + const char *label; +} PropertyInfo; + +static const PropertyInfo properties_info[] = { + { TITLE_PROPERTY, N_("Title:") }, + { URI_PROPERTY, N_("Location:") }, + { SUBJECT_PROPERTY, N_("Subject:") }, + { AUTHOR_PROPERTY, N_("Author:") }, + { KEYWORDS_PROPERTY, N_("Keywords:") }, + { PRODUCER_PROPERTY, N_("Producer:") }, + { CREATOR_PROPERTY, N_("Creator:") }, + { CREATION_DATE_PROPERTY, N_("Created:") }, + { MOD_DATE_PROPERTY, N_("Modified:") }, + { N_PAGES_PROPERTY, N_("Number of Pages:") }, + { LINEARIZED_PROPERTY, N_("Optimized:") }, + { FORMAT_PROPERTY, N_("Format:") }, + { SECURITY_PROPERTY, N_("Security:") }, + { PAPER_SIZE_PROPERTY, N_("Paper Size:") } +}; + +struct _EvPropertiesView { + GtkVBox base_instance; + + GtkWidget *table; + GtkWidget *labels[N_PROPERTIES]; + gchar *uri; +}; + +struct _EvPropertiesViewClass { + GtkVBoxClass base_class; +}; + +G_DEFINE_TYPE (EvPropertiesView, ev_properties_view, GTK_TYPE_VBOX) + +static void +ev_properties_view_dispose (GObject *object) +{ + EvPropertiesView *properties = EV_PROPERTIES_VIEW (object); + + if (properties->uri) { + g_free (properties->uri); + properties->uri = NULL; + } + + G_OBJECT_CLASS (ev_properties_view_parent_class)->dispose (object); +} + +static void +ev_properties_view_class_init (EvPropertiesViewClass *properties_class) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (properties_class); + + g_object_class->dispose = ev_properties_view_dispose; +} + +/* This is cut out of gconvert.c from glib (and mildly modified). Not all + backends give valid UTF-8 for properties, so we make sure that is. + */ +static gchar * +make_valid_utf8 (const gchar *name) +{ + GString *string; + const gchar *remainder, *invalid; + gint remaining_bytes, valid_bytes; + + string = NULL; + remainder = name; + remaining_bytes = strlen (name); + + while (remaining_bytes != 0) + { + if (g_utf8_validate (remainder, remaining_bytes, &invalid)) + break; + valid_bytes = invalid - remainder; + + if (string == NULL) + string = g_string_sized_new (remaining_bytes); + + g_string_append_len (string, remainder, valid_bytes); + g_string_append_c (string, '?'); + + remaining_bytes -= valid_bytes + 1; + remainder = invalid + 1; + } + + if (string == NULL) + return g_strdup (name); + + g_string_append (string, remainder); + + g_assert (g_utf8_validate (string->str, -1, NULL)); + + return g_string_free (string, FALSE); +} + +static void +set_property (EvPropertiesView *properties, + GtkTable *table, + Property property, + const gchar *text, + gint *row) +{ + GtkWidget *label; + gchar *markup; + gchar *valid_text; + + if (!properties->labels[property]) { + label = gtk_label_new (NULL); + g_object_set (G_OBJECT (label), "xalign", 0.0, NULL); + markup = g_strdup_printf ("<b>%s</b>", _(properties_info[property].label)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + + gtk_table_attach (table, label, 0, 1, *row, *row + 1, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + } + + if (!properties->labels[property]) { + label = gtk_label_new (NULL); + + g_object_set (G_OBJECT (label), + "xalign", 0.0, + "width_chars", 25, + "selectable", TRUE, + "ellipsize", PANGO_ELLIPSIZE_END, + NULL); + } else { + label = properties->labels[property]; + } + + if (text == NULL || text[0] == '\000') { + markup = g_markup_printf_escaped ("<i>%s</i>", _("None")); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else { + valid_text = make_valid_utf8 (text ? text : ""); + gtk_label_set_text (GTK_LABEL (label), valid_text); + g_free (valid_text); + } + + if (!properties->labels[property]) { + gtk_table_attach (table, label, 1, 2, *row, *row + 1, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + properties->labels[property] = label; + } + + gtk_widget_show (label); + + *row += 1; +} + +static GtkUnit +get_default_user_units (void) +{ + /* Translate to the default units to use for presenting + * lengths to the user. Translate to default:inch if you + * want inches, otherwise translate to default:mm. + * Do *not* translate it to "predefinito:mm", if it + * it isn't default:mm or default:inch it will not work + */ + gchar *e = _("default:mm"); + +#ifdef HAVE__NL_MEASUREMENT_MEASUREMENT + gchar *imperial = NULL; + + imperial = nl_langinfo (_NL_MEASUREMENT_MEASUREMENT); + if (imperial && imperial[0] == 2) + return GTK_UNIT_INCH; /* imperial */ + if (imperial && imperial[0] == 1) + return GTK_UNIT_MM; /* metric */ +#endif + + if (strcmp (e, "default:mm") == 0) + return GTK_UNIT_MM; + if (strcmp (e, "default:inch") == 0) + return GTK_UNIT_INCH; + + g_warning ("Whoever translated default:mm did so wrongly.\n"); + + return GTK_UNIT_MM; +} + +static gdouble +get_tolerance (gdouble size) +{ + if (size < 150.0f) + return 1.5f; + else if (size >= 150.0f && size <= 600.0f) + return 2.0f; + else + return 3.0f; +} + +static char * +ev_regular_paper_size (const EvDocumentInfo *info) +{ + GList *paper_sizes, *l; + gchar *exact_size; + gchar *str = NULL; + GtkUnit units; + + units = get_default_user_units (); + + if (units == GTK_UNIT_MM) { + exact_size = g_strdup_printf(_("%.0f Ć %.0f mm"), + info->paper_width, + info->paper_height); + } else { + exact_size = g_strdup_printf (_("%.2f Ć %.2f inch"), + info->paper_width / 25.4f, + info->paper_height / 25.4f); + } + + paper_sizes = gtk_paper_size_get_paper_sizes (FALSE); + + for (l = paper_sizes; l && l->data; l = g_list_next (l)) { + GtkPaperSize *size = (GtkPaperSize *) l->data; + gdouble paper_width; + gdouble paper_height; + gdouble width_tolerance; + gdouble height_tolerance; + + paper_width = gtk_paper_size_get_width (size, GTK_UNIT_MM); + paper_height = gtk_paper_size_get_height (size, GTK_UNIT_MM); + + width_tolerance = get_tolerance (paper_width); + height_tolerance = get_tolerance (paper_height); + + if (ABS (info->paper_height - paper_height) <= height_tolerance && + ABS (info->paper_width - paper_width) <= width_tolerance) { + /* Note to translators: first placeholder is the paper name (eg. + * A4), second placeholder is the paper size (eg. 297x210 mm) */ + str = g_strdup_printf (_("%s, Portrait (%s)"), + gtk_paper_size_get_display_name (size), + exact_size); + } else if (ABS (info->paper_width - paper_height) <= height_tolerance && + ABS (info->paper_height - paper_width) <= width_tolerance) { + /* Note to translators: first placeholder is the paper name (eg. + * A4), second placeholder is the paper size (eg. 297x210 mm) */ + str = g_strdup_printf ( _("%s, Landscape (%s)"), + gtk_paper_size_get_display_name (size), + exact_size); + } + } + + g_list_foreach (paper_sizes, (GFunc) gtk_paper_size_free, NULL); + g_list_free (paper_sizes); + + if (str != NULL) { + g_free (exact_size); + return str; + } + + return exact_size; +} + +void +ev_properties_view_set_info (EvPropertiesView *properties, const EvDocumentInfo *info) +{ + GtkWidget *table; + gchar *text; + gint row = 0; + + table = properties->table; + + if (info->fields_mask & EV_DOCUMENT_INFO_TITLE) { + set_property (properties, GTK_TABLE (table), TITLE_PROPERTY, info->title, &row); + } + set_property (properties, GTK_TABLE (table), URI_PROPERTY, properties->uri, &row); + if (info->fields_mask & EV_DOCUMENT_INFO_SUBJECT) { + set_property (properties, GTK_TABLE (table), SUBJECT_PROPERTY, info->subject, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_AUTHOR) { + set_property (properties, GTK_TABLE (table), AUTHOR_PROPERTY, info->author, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_KEYWORDS) { + set_property (properties, GTK_TABLE (table), KEYWORDS_PROPERTY, info->keywords, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_PRODUCER) { + set_property (properties, GTK_TABLE (table), PRODUCER_PROPERTY, info->producer, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_CREATOR) { + set_property (properties, GTK_TABLE (table), CREATOR_PROPERTY, info->creator, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_CREATION_DATE) { + text = ev_document_misc_format_date (info->creation_date); + set_property (properties, GTK_TABLE (table), CREATION_DATE_PROPERTY, text, &row); + g_free (text); + } + if (info->fields_mask & EV_DOCUMENT_INFO_MOD_DATE) { + text = ev_document_misc_format_date (info->modified_date); + set_property (properties, GTK_TABLE (table), MOD_DATE_PROPERTY, text, &row); + g_free (text); + } + if (info->fields_mask & EV_DOCUMENT_INFO_FORMAT) { + set_property (properties, GTK_TABLE (table), FORMAT_PROPERTY, info->format, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_N_PAGES) { + text = g_strdup_printf ("%d", info->n_pages); + set_property (properties, GTK_TABLE (table), N_PAGES_PROPERTY, text, &row); + g_free (text); + } + if (info->fields_mask & EV_DOCUMENT_INFO_LINEARIZED) { + set_property (properties, GTK_TABLE (table), LINEARIZED_PROPERTY, info->linearized, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_SECURITY) { + set_property (properties, GTK_TABLE (table), SECURITY_PROPERTY, info->security, &row); + } + if (info->fields_mask & EV_DOCUMENT_INFO_PAPER_SIZE) { + text = ev_regular_paper_size (info); + set_property (properties, GTK_TABLE (table), PAPER_SIZE_PROPERTY, text, &row); + g_free (text); + } +} + +static void +ev_properties_view_init (EvPropertiesView *properties) +{ + properties->table = gtk_table_new (13, 2, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (properties->table), 12); + gtk_table_set_row_spacings (GTK_TABLE (properties->table), 6); + gtk_container_set_border_width (GTK_CONTAINER (properties->table), 12); + gtk_box_pack_start (GTK_BOX (properties), properties->table, + TRUE, TRUE, 0); + gtk_widget_show (properties->table); +} + +void +ev_properties_view_register_type (GTypeModule *module) +{ + ev_properties_view_get_type (); +} + +GtkWidget * +ev_properties_view_new (const gchar *uri) +{ + EvPropertiesView *properties; + + properties = g_object_new (EV_TYPE_PROPERTIES, NULL); + properties->uri = g_strdup (uri); + + return GTK_WIDGET (properties); +} diff --git a/properties/ev-properties-view.h b/properties/ev-properties-view.h new file mode 100644 index 00000000..e8e02649 --- /dev/null +++ b/properties/ev-properties-view.h @@ -0,0 +1,50 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_PROPERTIES_VIEW_H__ +#define __EV_PROPERTIES_VIEW_H__ + +#include <gtk/gtk.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +typedef struct _EvPropertiesView EvPropertiesView; +typedef struct _EvPropertiesViewClass EvPropertiesViewClass; +typedef struct _EvPropertiesViewPrivate EvPropertiesViewPrivate; + +#define EV_TYPE_PROPERTIES (ev_properties_view_get_type()) +#define EV_PROPERTIES_VIEW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PROPERTIES, EvPropertiesView)) +#define EV_PROPERTIES_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PROPERTIES, EvPropertiesViewClass)) +#define EV_IS_PROPERTIES_VIEW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PROPERTIES)) +#define EV_IS_PROPERTIES_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES)) +#define EV_PROPERTIES_VIEW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES, EvPropertiesViewClass)) + +GType ev_properties_view_get_type (void); +void ev_properties_view_register_type (GTypeModule *module); + +GtkWidget *ev_properties_view_new (const gchar *uri); +void ev_properties_view_set_info (EvPropertiesView *properties, + const EvDocumentInfo *info); + +G_END_DECLS + +#endif /* __EV_PROPERTIES_VIEW_H__ */ diff --git a/shell/Makefile.am b/shell/Makefile.am new file mode 100644 index 00000000..e80c9986 --- /dev/null +++ b/shell/Makefile.am @@ -0,0 +1,160 @@ +INCLUDES= \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATEDATADIR=\"$(datadir)\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -I$(top_srcdir)/cut-n-paste/zoom-control/ \ + -I$(top_srcdir)/cut-n-paste/toolbar-editor/ \ + -I$(top_srcdir)/cut-n-paste/totem-screensaver/ \ + -I$(top_srcdir)/cut-n-paste/gimpcellrenderertoggle/ \ + -I$(top_srcdir)/cut-n-paste/smclient/ \ + -I$(top_srcdir)/libdocument \ + -I$(top_builddir)/libdocument \ + -I$(top_srcdir)/libview \ + -I$(top_builddir)/libview \ + -I$(top_srcdir)/libmisc \ + -I$(top_srcdir)/properties \ + -DMATEICONDIR=\""$(datadir)/pixmaps"\" \ + -DBINDIR=\""$(bindir)"\" \ + -DLIBEXECDIR=\""$(libexecdir)"\" \ + -DEVINCE_COMPILATION \ + $(SHELL_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +bin_PROGRAMS=evince + +libexec_PROGRAMS=evince-convert-metadata +if ENABLE_DBUS +libexec_PROGRAMS += evinced +endif + +evince_SOURCES= \ + eggfindbar.c \ + eggfindbar.h \ + ev-annotation-properties-dialog.h \ + ev-annotation-properties-dialog.c \ + ev-application.c \ + ev-application.h \ + ev-file-monitor.h \ + ev-file-monitor.c \ + ev-history.c \ + ev-history.h \ + ev-keyring.h \ + ev-keyring.c \ + ev-marshal.c \ + ev-marshal.h \ + ev-message-area.c \ + ev-message-area.h \ + ev-metadata.c \ + ev-metadata.h \ + ev-navigation-action.c \ + ev-navigation-action.h \ + ev-navigation-action-widget.c \ + ev-navigation-action-widget.h \ + ev-password-view.h \ + ev-password-view.c \ + ev-progress-message-area.h \ + ev-progress-message-area.c \ + ev-properties-dialog.c \ + ev-properties-dialog.h \ + ev-properties-fonts.c \ + ev-properties-fonts.h \ + ev-properties-license.c \ + ev-properties-license.h \ + ev-open-recent-action.c \ + ev-open-recent-action.h \ + ev-utils.c \ + ev-utils.h \ + ev-window.c \ + ev-window.h \ + ev-window-title.c \ + ev-window-title.h \ + ev-sidebar.c \ + ev-sidebar.h \ + ev-sidebar-annotations.c \ + ev-sidebar-annotations.h \ + ev-sidebar-attachments.c \ + ev-sidebar-attachments.h \ + ev-sidebar-layers.c \ + ev-sidebar-layers.h \ + ev-sidebar-links.c \ + ev-sidebar-links.h \ + ev-sidebar-page.c \ + ev-sidebar-page.h \ + ev-sidebar-thumbnails.c \ + ev-sidebar-thumbnails.h \ + main.c + +if ENABLE_DBUS +evince_SOURCES += \ + ev-media-player-keys.c \ + ev-media-player-keys.h +endif + + +evince_LDFLAGS = $(AM_LDFLAGS) + +if PLATFORM_WIN32 +evince_LDFLAGS += -mwindows +endif + +evince_LDADD= \ + $(top_builddir)/cut-n-paste/zoom-control/libephyzoom.la \ + $(top_builddir)/cut-n-paste/toolbar-editor/libtoolbareditor.la \ + $(top_builddir)/cut-n-paste/totem-screensaver/libtotemscrsaver.la \ + $(top_builddir)/cut-n-paste/gimpcellrenderertoggle/libgimpcellrenderertoggle.la \ + $(top_builddir)/cut-n-paste/smclient/libsmclient.la \ + $(top_builddir)/properties/libevproperties.la \ + $(top_builddir)/libdocument/libevdocument.la \ + $(top_builddir)/libview/libevview.la \ + $(top_builddir)/libmisc/libevmisc.la \ + $(SHELL_LIBS) + +if PLATFORM_WIN32 +evince_LDADD += evince-icon.o + +evince-icon.o: $(srcdir)/evince-icon.rc $(top_srcdir)/data/evince.ico + $(WINDRES) $(srcdir)/evince-icon.rc -I $(top_srcdir)/data evince-icon.o +endif + +BUILT_SOURCES = ev-marshal.h ev-marshal.c + +evince_convert_metadata_SOURCES= \ + ev-convert-metadata.c + +evince_convert_metadata_LDADD= \ + $(SHELL_LIBS) + +if ENABLE_DBUS +evinced_SOURCES= \ + ev-daemon.c + +evinced_CFLAGS= \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -DMATEDATADIR=\"$(datadir)\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DLIBEXECDIR=\""$(libexecdir)"\" \ + -DEVINCE_COMPILATION \ + $(EV_DAEMON_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +evinced_LDADD= \ + $(EV_DAEMON_LIBS) +endif + +EXTRA_DIST = ev-marshal.list \ + evince-icon.rc + +ev-marshal.h: $(srcdir)/ev-marshal.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=ev_marshal $(srcdir)/ev-marshal.list --header > ev-marshal.h + +ev-marshal.c: $(srcdir)/ev-marshal.list + echo '#include "ev-marshal.h"' > ev-marshal.c + $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=ev_marshal $(srcdir)/ev-marshal.list --body >> ev-marshal.c + +DISTCLEANFILES = + +-include $(top_srcdir)/git.mk diff --git a/shell/eggfindbar.c b/shell/eggfindbar.c new file mode 100644 index 00000000..a00e74ed --- /dev/null +++ b/shell/eggfindbar.c @@ -0,0 +1,740 @@ +/* Copyright (C) 2004 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the Mate Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> + +#include "eggfindbar.h" + +struct _EggFindBarPrivate +{ + gchar *search_string; + + GtkToolItem *next_button; + GtkToolItem *previous_button; + GtkToolItem *status_separator; + GtkToolItem *status_item; + GtkToolItem *case_button; + + GtkWidget *find_entry; + GtkWidget *status_label; + + gulong set_focus_handler; + guint case_sensitive : 1; +}; + +#define EGG_FIND_BAR_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EGG_TYPE_FIND_BAR, EggFindBarPrivate)) + +enum { + PROP_0, + PROP_SEARCH_STRING, + PROP_CASE_SENSITIVE +}; + +static void egg_find_bar_finalize (GObject *object); +static void egg_find_bar_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void egg_find_bar_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void egg_find_bar_show (GtkWidget *widget); +static void egg_find_bar_hide (GtkWidget *widget); +static void egg_find_bar_grab_focus (GtkWidget *widget); + +G_DEFINE_TYPE (EggFindBar, egg_find_bar, GTK_TYPE_TOOLBAR); + +enum + { + NEXT, + PREVIOUS, + CLOSE, + SCROLL, + LAST_SIGNAL + }; + +static guint find_bar_signals[LAST_SIGNAL] = { 0 }; + +static void +egg_find_bar_class_init (EggFindBarClass *klass) +{ + GObjectClass *object_class; + GtkWidgetClass *widget_class; + GtkBindingSet *binding_set; + + egg_find_bar_parent_class = g_type_class_peek_parent (klass); + + object_class = (GObjectClass *)klass; + widget_class = (GtkWidgetClass *)klass; + + object_class->set_property = egg_find_bar_set_property; + object_class->get_property = egg_find_bar_get_property; + + object_class->finalize = egg_find_bar_finalize; + + widget_class->show = egg_find_bar_show; + widget_class->hide = egg_find_bar_hide; + + widget_class->grab_focus = egg_find_bar_grab_focus; + + find_bar_signals[NEXT] = + g_signal_new ("next", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EggFindBarClass, next), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + find_bar_signals[PREVIOUS] = + g_signal_new ("previous", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EggFindBarClass, previous), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + find_bar_signals[CLOSE] = + g_signal_new ("close", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EggFindBarClass, close), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + find_bar_signals[SCROLL] = + g_signal_new ("scroll", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EggFindBarClass, scroll), + NULL, NULL, + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + GTK_TYPE_SCROLL_TYPE); + + /** + * EggFindBar:search_string: + * + * The current string to search for. NULL or empty string + * both mean no current string. + * + */ + g_object_class_install_property (object_class, + PROP_SEARCH_STRING, + g_param_spec_string ("search_string", + "Search string", + "The name of the string to be found", + NULL, + G_PARAM_READWRITE)); + + /** + * EggFindBar:case_sensitive: + * + * TRUE for a case sensitive search. + * + */ + g_object_class_install_property (object_class, + PROP_CASE_SENSITIVE, + g_param_spec_boolean ("case_sensitive", + "Case sensitive", + "TRUE for a case sensitive search", + FALSE, + G_PARAM_READWRITE)); + + /* Style properties */ + gtk_widget_class_install_style_property (widget_class, + g_param_spec_boxed ("all_matches_color", + "Highlight color", + "Color of highlight for all matches", + GDK_TYPE_COLOR, + G_PARAM_READABLE)); + + gtk_widget_class_install_style_property (widget_class, + g_param_spec_boxed ("current_match_color", + "Current color", + "Color of highlight for the current match", + GDK_TYPE_COLOR, + G_PARAM_READABLE)); + + g_type_class_add_private (object_class, sizeof (EggFindBarPrivate)); + + binding_set = gtk_binding_set_by_class (klass); + + gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, + "close", 0); + + gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_KP_Page_Up, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); + gtk_binding_entry_add_signal (binding_set, GDK_KP_Page_Down, 0, + "scroll", 1, + GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); +} + +static void +egg_find_bar_emit_next (EggFindBar *find_bar) +{ + g_signal_emit (find_bar, find_bar_signals[NEXT], 0); +} + +static void +egg_find_bar_emit_previous (EggFindBar *find_bar) +{ + g_signal_emit (find_bar, find_bar_signals[PREVIOUS], 0); +} + +static void +next_clicked_callback (GtkButton *button, + void *data) +{ + EggFindBar *find_bar = EGG_FIND_BAR (data); + + egg_find_bar_emit_next (find_bar); +} + +static void +previous_clicked_callback (GtkButton *button, + void *data) +{ + EggFindBar *find_bar = EGG_FIND_BAR (data); + + egg_find_bar_emit_previous (find_bar); +} + +static void +case_sensitive_toggled_callback (GtkCheckButton *button, + void *data) +{ + EggFindBar *find_bar = EGG_FIND_BAR (data); + + egg_find_bar_set_case_sensitive (find_bar, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))); +} + +static void +entry_activate_callback (GtkEntry *entry, + void *data) +{ + EggFindBar *find_bar = EGG_FIND_BAR (data); + + if (find_bar->priv->search_string != NULL) + egg_find_bar_emit_next (find_bar); +} + +static void +entry_changed_callback (GtkEntry *entry, + void *data) +{ + EggFindBar *find_bar = EGG_FIND_BAR (data); + char *text; + + /* paranoid strdup because set_search_string() sets + * the entry text + */ + text = g_strdup (gtk_entry_get_text (entry)); + + egg_find_bar_set_search_string (find_bar, text); + + g_free (text); +} + +static void +set_focus_cb (GtkWidget *window, + GtkWidget *widget, + EggFindBar *bar) +{ + GtkWidget *wbar = GTK_WIDGET (bar); + + while (widget != NULL && widget != wbar) + { + widget = gtk_widget_get_parent (widget); + } + + /* if widget == bar, the new focus widget is in the bar, so we + * don't deactivate. + */ + if (widget != wbar) + { + g_signal_emit (bar, find_bar_signals[CLOSE], 0); + } +} + +static void +egg_find_bar_init (EggFindBar *find_bar) +{ + EggFindBarPrivate *priv; + GtkWidget *label; + GtkWidget *alignment; + GtkWidget *box; + GtkToolItem *item; + GtkWidget *arrow; + + /* Data */ + priv = EGG_FIND_BAR_GET_PRIVATE (find_bar); + + find_bar->priv = priv; + priv->search_string = NULL; + + gtk_toolbar_set_style (GTK_TOOLBAR (find_bar), GTK_TOOLBAR_BOTH_HORIZ); + + /* Find: |_____| */ + item = gtk_tool_item_new (); + box = gtk_hbox_new (FALSE, 12); + + alignment = gtk_alignment_new (0.0, 0.5, 1.0, 0.0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 2, 2); + + label = gtk_label_new_with_mnemonic (_("Find:")); + + priv->find_entry = gtk_entry_new (); + gtk_entry_set_width_chars (GTK_ENTRY (priv->find_entry), 32); + gtk_entry_set_max_length (GTK_ENTRY (priv->find_entry), 512); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), priv->find_entry); + + /* Prev */ + arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE); + priv->previous_button = gtk_tool_button_new (arrow, Q_("Find Pre_vious")); + gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->previous_button), TRUE); + gtk_tool_item_set_is_important (priv->previous_button, TRUE); + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->previous_button), + _("Find previous occurrence of the search string")); + + /* Next */ + arrow = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE); + priv->next_button = gtk_tool_button_new (arrow, Q_("Find Ne_xt")); + gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->next_button), TRUE); + gtk_tool_item_set_is_important (priv->next_button, TRUE); + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->next_button), + _("Find next occurrence of the search string")); + + /* Separator*/ + priv->status_separator = gtk_separator_tool_item_new(); + + /* Case button */ + priv->case_button = gtk_toggle_tool_button_new (); + g_object_set (G_OBJECT (priv->case_button), "label", _("C_ase Sensitive"), NULL); + gtk_tool_item_set_is_important (priv->case_button, TRUE); + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->case_button), + _("Toggle case sensitive search")); + + /* Status */ + priv->status_item = gtk_tool_item_new(); + gtk_tool_item_set_expand (priv->status_item, TRUE); + priv->status_label = gtk_label_new (NULL); + gtk_label_set_ellipsize (GTK_LABEL (priv->status_label), + PANGO_ELLIPSIZE_END); + gtk_misc_set_alignment (GTK_MISC (priv->status_label), 0.0, 0.5); + + + g_signal_connect (priv->find_entry, "changed", + G_CALLBACK (entry_changed_callback), + find_bar); + g_signal_connect (priv->find_entry, "activate", + G_CALLBACK (entry_activate_callback), + find_bar); + g_signal_connect (priv->next_button, "clicked", + G_CALLBACK (next_clicked_callback), + find_bar); + g_signal_connect (priv->previous_button, "clicked", + G_CALLBACK (previous_clicked_callback), + find_bar); + g_signal_connect (priv->case_button, "toggled", + G_CALLBACK (case_sensitive_toggled_callback), + find_bar); + + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (box), priv->find_entry, TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (alignment), box); + gtk_container_add (GTK_CONTAINER (item), alignment); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), item, -1); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), priv->previous_button, -1); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), priv->next_button, -1); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), priv->case_button, -1); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), priv->status_separator, -1); + gtk_container_add (GTK_CONTAINER (priv->status_item), priv->status_label); + gtk_toolbar_insert (GTK_TOOLBAR (find_bar), priv->status_item, -1); + + /* don't show status separator/label until they are set */ + + gtk_widget_show_all (GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (priv->next_button)); + gtk_widget_show_all (GTK_WIDGET (priv->previous_button)); + gtk_widget_show (priv->status_label); +} + +static void +egg_find_bar_finalize (GObject *object) +{ + EggFindBar *find_bar = EGG_FIND_BAR (object); + EggFindBarPrivate *priv = (EggFindBarPrivate *)find_bar->priv; + + g_free (priv->search_string); + + G_OBJECT_CLASS (egg_find_bar_parent_class)->finalize (object); +} + +static void +egg_find_bar_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EggFindBar *find_bar = EGG_FIND_BAR (object); + + switch (prop_id) + { + case PROP_SEARCH_STRING: + egg_find_bar_set_search_string (find_bar, g_value_get_string (value)); + break; + case PROP_CASE_SENSITIVE: + egg_find_bar_set_case_sensitive (find_bar, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +egg_find_bar_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EggFindBar *find_bar = EGG_FIND_BAR (object); + EggFindBarPrivate *priv = (EggFindBarPrivate *)find_bar->priv; + + switch (prop_id) + { + case PROP_SEARCH_STRING: + g_value_set_string (value, priv->search_string); + break; + case PROP_CASE_SENSITIVE: + g_value_set_boolean (value, priv->case_sensitive); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +egg_find_bar_show (GtkWidget *widget) +{ + EggFindBar *bar = EGG_FIND_BAR (widget); + EggFindBarPrivate *priv = bar->priv; + + GTK_WIDGET_CLASS (egg_find_bar_parent_class)->show (widget); + + if (priv->set_focus_handler == 0) + { + GtkWidget *toplevel; + + toplevel = gtk_widget_get_toplevel (widget); + + priv->set_focus_handler = + g_signal_connect (toplevel, "set-focus", + G_CALLBACK (set_focus_cb), bar); + } +} + +static void +egg_find_bar_hide (GtkWidget *widget) +{ + EggFindBar *bar = EGG_FIND_BAR (widget); + EggFindBarPrivate *priv = bar->priv; + + if (priv->set_focus_handler != 0) + { + GtkWidget *toplevel; + + toplevel = gtk_widget_get_toplevel (widget); + + g_signal_handlers_disconnect_by_func + (toplevel, (void (*)) G_CALLBACK (set_focus_cb), bar); + priv->set_focus_handler = 0; + } + + GTK_WIDGET_CLASS (egg_find_bar_parent_class)->hide (widget); +} + +static void +egg_find_bar_grab_focus (GtkWidget *widget) +{ + EggFindBar *find_bar = EGG_FIND_BAR (widget); + EggFindBarPrivate *priv = find_bar->priv; + + gtk_widget_grab_focus (priv->find_entry); +} + +/** + * egg_find_bar_new: + * + * Creates a new #EggFindBar. + * + * Returns: a newly created #EggFindBar + * + * Since: 2.6 + */ +GtkWidget * +egg_find_bar_new (void) +{ + EggFindBar *find_bar; + + find_bar = g_object_new (EGG_TYPE_FIND_BAR, NULL); + + return GTK_WIDGET (find_bar); +} + +/** + * egg_find_bar_set_search_string: + * + * Sets the string that should be found/highlighted in the document. + * Empty string is converted to NULL. + * + * Since: 2.6 + */ +void +egg_find_bar_set_search_string (EggFindBar *find_bar, + const char *search_string) +{ + EggFindBarPrivate *priv; + + g_return_if_fail (EGG_IS_FIND_BAR (find_bar)); + + priv = (EggFindBarPrivate *)find_bar->priv; + + g_object_freeze_notify (G_OBJECT (find_bar)); + + if (priv->search_string != search_string) + { + char *old; + + old = priv->search_string; + + if (search_string && *search_string == '\0') + search_string = NULL; + + /* Only update if the string has changed; setting the entry + * will emit changed on the entry which will re-enter + * this function, but we'll handle that fine with this + * short-circuit. + */ + if ((old && search_string == NULL) || + (old == NULL && search_string) || + (old && search_string && + strcmp (old, search_string) != 0)) + { + gboolean not_empty; + + priv->search_string = g_strdup (search_string); + g_free (old); + + gtk_entry_set_text (GTK_ENTRY (priv->find_entry), + priv->search_string ? + priv->search_string : + ""); + + not_empty = (search_string == NULL) ? FALSE : TRUE; + + gtk_widget_set_sensitive (GTK_WIDGET (find_bar->priv->next_button), not_empty); + gtk_widget_set_sensitive (GTK_WIDGET (find_bar->priv->previous_button), not_empty); + + g_object_notify (G_OBJECT (find_bar), + "search_string"); + } + } + + g_object_thaw_notify (G_OBJECT (find_bar)); +} + + +/** + * egg_find_bar_get_search_string: + * + * Gets the string that should be found/highlighted in the document. + * + * Returns: the string + * + * Since: 2.6 + */ +const char* +egg_find_bar_get_search_string (EggFindBar *find_bar) +{ + EggFindBarPrivate *priv; + + g_return_val_if_fail (EGG_IS_FIND_BAR (find_bar), NULL); + + priv = find_bar->priv; + + return priv->search_string ? priv->search_string : ""; +} + +/** + * egg_find_bar_set_case_sensitive: + * + * Sets whether the search is case sensitive + * + * Since: 2.6 + */ +void +egg_find_bar_set_case_sensitive (EggFindBar *find_bar, + gboolean case_sensitive) +{ + EggFindBarPrivate *priv; + + g_return_if_fail (EGG_IS_FIND_BAR (find_bar)); + + priv = (EggFindBarPrivate *)find_bar->priv; + + g_object_freeze_notify (G_OBJECT (find_bar)); + + case_sensitive = case_sensitive != FALSE; + + if (priv->case_sensitive != case_sensitive) + { + priv->case_sensitive = case_sensitive; + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->case_button), + priv->case_sensitive); + + g_object_notify (G_OBJECT (find_bar), + "case_sensitive"); + } + + g_object_thaw_notify (G_OBJECT (find_bar)); +} + +/** + * egg_find_bar_get_case_sensitive: + * + * Gets whether the search is case sensitive + * + * Returns: TRUE if it's case sensitive + * + * Since: 2.6 + */ +gboolean +egg_find_bar_get_case_sensitive (EggFindBar *find_bar) +{ + EggFindBarPrivate *priv; + + g_return_val_if_fail (EGG_IS_FIND_BAR (find_bar), FALSE); + + priv = (EggFindBarPrivate *)find_bar->priv; + + return priv->case_sensitive; +} + +static void +get_style_color (EggFindBar *find_bar, + const char *style_prop_name, + GdkColor *color) +{ + GdkColor *style_color; + + gtk_widget_ensure_style (GTK_WIDGET (find_bar)); + gtk_widget_style_get (GTK_WIDGET (find_bar), + "color", &style_color, NULL); + if (style_color) + { + *color = *style_color; + gdk_color_free (style_color); + } +} + +/** + * egg_find_bar_get_all_matches_color: + * + * Gets the color to use to highlight all the + * known matches. + * + * Since: 2.6 + */ +void +egg_find_bar_get_all_matches_color (EggFindBar *find_bar, + GdkColor *color) +{ + GdkColor found_color = { 0, 0, 0, 0x0f0f }; + + get_style_color (find_bar, "all_matches_color", &found_color); + + *color = found_color; +} + +/** + * egg_find_bar_get_current_match_color: + * + * Gets the color to use to highlight the match + * we're currently on. + * + * Since: 2.6 + */ +void +egg_find_bar_get_current_match_color (EggFindBar *find_bar, + GdkColor *color) +{ + GdkColor found_color = { 0, 0, 0, 0xffff }; + + get_style_color (find_bar, "current_match_color", &found_color); + + *color = found_color; +} + +/** + * egg_find_bar_set_status_text: + * + * Sets some text to display if there's space; typical text would + * be something like "5 results on this page" or "No results" + * + * @text: the text to display + * + * Since: 2.6 + */ +void +egg_find_bar_set_status_text (EggFindBar *find_bar, + const char *text) +{ + EggFindBarPrivate *priv; + + g_return_if_fail (EGG_IS_FIND_BAR (find_bar)); + + priv = (EggFindBarPrivate *)find_bar->priv; + + gtk_label_set_text (GTK_LABEL (priv->status_label), text); + g_object_set (priv->status_separator, "visible", text != NULL && *text != '\0', NULL); + g_object_set (priv->status_item, "visible", text != NULL && *text !='\0', NULL); +} diff --git a/shell/eggfindbar.h b/shell/eggfindbar.h new file mode 100644 index 00000000..7a7487e3 --- /dev/null +++ b/shell/eggfindbar.h @@ -0,0 +1,82 @@ +/* Copyright (C) 2004 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the Mate Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#ifndef __EGG_FIND_BAR_H__ +#define __EGG_FIND_BAR_H__ + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_FIND_BAR (egg_find_bar_get_type ()) +#define EGG_FIND_BAR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), EGG_TYPE_FIND_BAR, EggFindBar)) +#define EGG_FIND_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_FIND_BAR, EggFindBarClass)) +#define EGG_IS_FIND_BAR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), EGG_TYPE_FIND_BAR)) +#define EGG_IS_FIND_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_FIND_BAR)) +#define EGG_FIND_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_FIND_BAR, EggFindBarClass)) + +typedef struct _EggFindBar EggFindBar; +typedef struct _EggFindBarClass EggFindBarClass; +typedef struct _EggFindBarPrivate EggFindBarPrivate; + +struct _EggFindBar +{ + GtkToolbar parent; + + /*< private >*/ + EggFindBarPrivate *priv; +}; + +struct _EggFindBarClass +{ + GtkToolbarClass parent_class; + + void (* next) (EggFindBar *find_bar); + void (* previous) (EggFindBar *find_bar); + void (* close) (EggFindBar *find_bar); + void (* scroll) (EggFindBar *find_bar, GtkScrollType* scroll); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); +}; + +GType egg_find_bar_get_type (void) G_GNUC_CONST; +GtkWidget *egg_find_bar_new (void); + +void egg_find_bar_set_search_string (EggFindBar *find_bar, + const char *search_string); +const char* egg_find_bar_get_search_string (EggFindBar *find_bar); +void egg_find_bar_set_case_sensitive (EggFindBar *find_bar, + gboolean case_sensitive); +gboolean egg_find_bar_get_case_sensitive (EggFindBar *find_bar); +void egg_find_bar_get_all_matches_color (EggFindBar *find_bar, + GdkColor *color); +void egg_find_bar_get_current_match_color (EggFindBar *find_bar, + GdkColor *color); +void egg_find_bar_set_status_text (EggFindBar *find_bar, + const char *text); + +G_END_DECLS + +#endif /* __EGG_FIND_BAR_H__ */ + + diff --git a/shell/ev-annotation-properties-dialog.c b/shell/ev-annotation-properties-dialog.c new file mode 100644 index 00000000..8828eba4 --- /dev/null +++ b/shell/ev-annotation-properties-dialog.c @@ -0,0 +1,327 @@ +/* ev-annotation-properties-dialog.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <config.h> + +#include <glib/gi18n.h> + +#include "ev-annotation-properties-dialog.h" + +enum { + PROP_0, + PROP_ANNOT_TYPE +}; + +struct _EvAnnotationPropertiesDialog { + GtkDialog base_instance; + + EvAnnotationType annot_type; + EvAnnotation *annot; + + GtkWidget *table; + + GtkWidget *author; + GtkWidget *color; + GtkWidget *opacity; + GtkWidget *popup_state; + + /* Text Annotations */ + GtkWidget *icon; +}; + +struct _EvAnnotationPropertiesDialogClass { + GtkDialogClass base_class; +}; + +G_DEFINE_TYPE (EvAnnotationPropertiesDialog, ev_annotation_properties_dialog, GTK_TYPE_DIALOG) + +static void +ev_annotation_properties_dialog_dispose (GObject *object) +{ + EvAnnotationPropertiesDialog *dialog = EV_ANNOTATION_PROPERTIES_DIALOG (object); + + if (dialog->annot) { + g_object_unref (dialog->annot); + dialog->annot = NULL; + } + + G_OBJECT_CLASS (ev_annotation_properties_dialog_parent_class)->dispose (object); +} + +static void +ev_annotation_properties_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvAnnotationPropertiesDialog *dialog = EV_ANNOTATION_PROPERTIES_DIALOG (object); + + switch (prop_id) { + case PROP_ANNOT_TYPE: + dialog->annot_type = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_annotation_properties_dialog_constructed (GObject *object) +{ + EvAnnotationPropertiesDialog *dialog = EV_ANNOTATION_PROPERTIES_DIALOG (object); + GtkWidget *contant_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + GtkWidget *table = dialog->table; + GtkWidget *label; + + contant_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + + switch (dialog->annot_type) { + case EV_ANNOTATION_TYPE_TEXT: + label = gtk_label_new (_("Icon:")); + gtk_misc_set_alignment (GTK_MISC (label), 0., 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + dialog->icon = gtk_combo_box_new_text (); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Note")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Comment")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Key")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Help")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("New Paragraph")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Paragraph")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Insert")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Cross")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Circle")); + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->icon), _("Unknown")); + gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->icon), 0); + gtk_table_attach (GTK_TABLE (table), dialog->icon, + 1, 2, 5, 6, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (dialog->icon); + + break; + case EV_ANNOTATION_TYPE_ATTACHMENT: + /* TODO */ + default: + break; + } +} + +static void +ev_annotation_properties_dialog_init (EvAnnotationPropertiesDialog *annot_dialog) +{ + GtkDialog *dialog = GTK_DIALOG (annot_dialog); + GtkWidget *content_area; + GtkWidget *label; + GtkWidget *table; + GtkWidget *hbox; + gchar *markup; + GdkColor color = { 0, 65535, 65535, 0 }; + + gtk_window_set_title (GTK_WINDOW (annot_dialog), _("Annotation Properties")); + gtk_window_set_destroy_with_parent (GTK_WINDOW (annot_dialog), TRUE); + gtk_container_set_border_width (GTK_CONTAINER (annot_dialog), 5); + gtk_dialog_set_has_separator (dialog, FALSE); + gtk_dialog_add_buttons (dialog, + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, + GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, + NULL); + gtk_dialog_set_default_response (dialog, GTK_RESPONSE_APPLY); + + content_area = gtk_dialog_get_content_area (dialog); + gtk_box_set_spacing (GTK_BOX (content_area), 2); + + table = gtk_table_new (5, 2, FALSE); + annot_dialog->table = table; + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + gtk_box_pack_start (GTK_BOX (content_area), table, FALSE, FALSE, 0); + gtk_widget_show (table); + + label = gtk_label_new (_("Author:")); + gtk_misc_set_alignment (GTK_MISC (label), 0., 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + annot_dialog->author = gtk_entry_new (); + gtk_entry_set_text (GTK_ENTRY (annot_dialog->author), g_get_real_name ()); + gtk_table_attach (GTK_TABLE (table), annot_dialog->author, + 1, 2, 0, 1, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (annot_dialog->author); + + label = gtk_label_new (_("Color:")); + gtk_misc_set_alignment (GTK_MISC (label), 0., 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + annot_dialog->color = gtk_color_button_new_with_color (&color); + gtk_table_attach (GTK_TABLE (table), annot_dialog->color, + 1, 2, 1, 2, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (annot_dialog->color); + + label = gtk_label_new (_("Style:")); + gtk_misc_set_alignment (GTK_MISC (label), 0., 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + annot_dialog->opacity = gtk_hscale_new_with_range (0, 100, 5); + gtk_range_set_value (GTK_RANGE (annot_dialog->opacity), 100); + gtk_table_attach (GTK_TABLE (table), annot_dialog->opacity, + 1, 2, 2, 3, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (annot_dialog->opacity); + + hbox = gtk_hbox_new (FALSE, 6); + + label = gtk_label_new (NULL); + markup = g_strdup_printf ("<small>%s</small>", _("Transparent")); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + label = gtk_label_new (NULL); + markup = g_strdup_printf ("<small>%s</small>", _("Opaque")); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + gtk_table_attach (GTK_TABLE (table), hbox, + 1, 2, 3, 4, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (hbox); + + label = gtk_label_new (_("Initial window state:")); + gtk_misc_set_alignment (GTK_MISC (label), 0., 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + annot_dialog->popup_state = gtk_combo_box_new_text (); + gtk_combo_box_append_text (GTK_COMBO_BOX (annot_dialog->popup_state), _("Open")); + gtk_combo_box_append_text (GTK_COMBO_BOX (annot_dialog->popup_state), _("Close")); + gtk_combo_box_set_active (GTK_COMBO_BOX (annot_dialog->popup_state), 1); + gtk_table_attach (GTK_TABLE (table), annot_dialog->popup_state, + 1, 2, 4, 5, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + gtk_widget_show (annot_dialog->popup_state); +} + +static void +ev_annotation_properties_dialog_class_init (EvAnnotationPropertiesDialogClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = ev_annotation_properties_dialog_dispose; + object_class->constructed = ev_annotation_properties_dialog_constructed; + object_class->set_property = ev_annotation_properties_dialog_set_property; + + g_object_class_install_property (object_class, + PROP_ANNOT_TYPE, + g_param_spec_enum ("annot-type", + "AnnotType", + "The type of annotation", + EV_TYPE_ANNOTATION_TYPE, + EV_ANNOTATION_TYPE_TEXT, + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} + +GtkWidget * +ev_annotation_properties_dialog_new (EvAnnotationType annot_type) +{ + return GTK_WIDGET (g_object_new (EV_TYPE_ANNOTATION_PROPERTIES_DIALOG, + "annot-type", annot_type, + NULL)); +} + +GtkWidget * +ev_annotation_properties_dialog_new_with_annotation (EvAnnotation *annot) +{ + EvAnnotationPropertiesDialog *dialog; + const gchar *label; + gdouble opacity; + gboolean is_open; + GdkColor color; + + dialog = (EvAnnotationPropertiesDialog *)ev_annotation_properties_dialog_new (ev_annotation_get_annotation_type (annot)); + dialog->annot = g_object_ref (annot); + + label = ev_annotation_markup_get_label (EV_ANNOTATION_MARKUP (annot)); + if (label) + gtk_entry_set_text (GTK_ENTRY (dialog->author), label); + + ev_annotation_get_color (annot, &color); + gtk_color_button_set_color (GTK_COLOR_BUTTON (dialog->color), &color); + + opacity = ev_annotation_markup_get_opacity (EV_ANNOTATION_MARKUP (annot)); + gtk_range_set_value (GTK_RANGE (dialog->opacity), opacity * 100); + + is_open = ev_annotation_markup_get_popup_is_open (EV_ANNOTATION_MARKUP (annot)); + gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->popup_state), + is_open ? 0 : 1); + + if (EV_IS_ANNOTATION_TEXT (annot)) { + EvAnnotationText *annot_text = EV_ANNOTATION_TEXT (annot); + + gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->icon), + ev_annotation_text_get_icon (annot_text)); + } + + return GTK_WIDGET (dialog); +} + +const gchar * +ev_annotation_properties_dialog_get_author (EvAnnotationPropertiesDialog *dialog) +{ + return gtk_entry_get_text (GTK_ENTRY (dialog->author)); +} + +void +ev_annotation_properties_dialog_get_color (EvAnnotationPropertiesDialog *dialog, + GdkColor *color) +{ + gtk_color_button_get_color (GTK_COLOR_BUTTON (dialog->color), color); +} + +gdouble +ev_annotation_properties_dialog_get_opacity (EvAnnotationPropertiesDialog *dialog) +{ + return gtk_range_get_value (GTK_RANGE (dialog->opacity)) / 100; +} + +gboolean +ev_annotation_properties_dialog_get_popup_is_open (EvAnnotationPropertiesDialog *dialog) +{ + return gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->popup_state)) == 0; +} + +EvAnnotationTextIcon +ev_annotation_properties_dialog_get_text_icon (EvAnnotationPropertiesDialog *dialog) +{ + return gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->icon)); +} diff --git a/shell/ev-annotation-properties-dialog.h b/shell/ev-annotation-properties-dialog.h new file mode 100644 index 00000000..eee533e1 --- /dev/null +++ b/shell/ev-annotation-properties-dialog.h @@ -0,0 +1,54 @@ +/* ev-annotation-properties-dialog.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __EV_ANNOTATION_PROPERTIES_DIALOG_H__ +#define __EV_ANNOTATION_PROPERTIES_DIALOG_H__ + +#include <gtk/gtk.h> +#include <glib-object.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +#define EV_TYPE_ANNOTATION_PROPERTIES_DIALOG (ev_annotation_properties_dialog_get_type()) +#define EV_ANNOTATION_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST((o), EV_TYPE_ANNOTATION_PROPERTIES_DIALOG, EvAnnotationPropertiesDialog)) +#define EV_ANNOTATION_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_ANNOTATION_PROPERTIES_DIALOG, EvAnnotationPropertiesDialogClass)) +#define EV_IS_ANNOTATION_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), EV_TYPE_ANNOTATION_PROPERTIES_DIALOG)) +#define EV_IS_ANNOTATION_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), EV_TYPE_ANNOTATION_PROPERTIES_DIALOG)) +#define EV_ANNOTATION_PROPERTIES_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), EV_TYPE_ANNOTATION_PROPERTIES_DIALOG, EvAnnotationPropertiesDialogClass)) + +typedef struct _EvAnnotationPropertiesDialog EvAnnotationPropertiesDialog; +typedef struct _EvAnnotationPropertiesDialogClass EvAnnotationPropertiesDialogClass; + +GType ev_annotation_properties_dialog_get_type (void) G_GNUC_CONST; +GtkWidget *ev_annotation_properties_dialog_new (EvAnnotationType annot_type); +GtkWidget *ev_annotation_properties_dialog_new_with_annotation (EvAnnotation *annot); + +const gchar *ev_annotation_properties_dialog_get_author (EvAnnotationPropertiesDialog *dialog); +void ev_annotation_properties_dialog_get_color (EvAnnotationPropertiesDialog *dialog, + GdkColor *color); +gdouble ev_annotation_properties_dialog_get_opacity (EvAnnotationPropertiesDialog *dialog); +gboolean ev_annotation_properties_dialog_get_popup_is_open (EvAnnotationPropertiesDialog *dialog); +EvAnnotationTextIcon ev_annotation_properties_dialog_get_text_icon (EvAnnotationPropertiesDialog *dialog); + +G_END_DECLS + +#endif /* __EV_ANNOTATION_PROPERTIES_DIALOG_H__ */ diff --git a/shell/ev-application.c b/shell/ev-application.c new file mode 100644 index 00000000..af70617a --- /dev/null +++ b/shell/ev-application.c @@ -0,0 +1,1151 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * Copyright Ā© 2010 Christian Persch + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#include <config.h> +#include <stdlib.h> +#include <string.h> + +#include <glib.h> +#include <glib/gi18n.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> +#ifdef GDK_WINDOWING_X11 +#include <gdk/gdkx.h> +#endif +#include <unistd.h> + +#include "totem-scrsaver.h" + +#ifdef WITH_SMCLIENT +#include "eggsmclient.h" +#endif + +#include "ev-application.h" +#include "ev-file-helpers.h" +#include "ev-stock-icons.h" + +#ifdef ENABLE_DBUS +#include "ev-media-player-keys.h" +#endif /* ENABLE_DBUS */ + +struct _EvApplication { + GObject base_instance; + + gchar *uri; + + gchar *dot_dir; + gchar *data_dir; + +#ifdef ENABLE_DBUS + GDBusConnection *connection; + guint registration_id; + EvMediaPlayerKeys *keys; + gboolean doc_registered; +#endif + + TotemScrsaver *scr_saver; + +#ifdef WITH_SMCLIENT + EggSMClient *smclient; +#endif + + gchar *filechooser_open_uri; + gchar *filechooser_save_uri; +}; + +struct _EvApplicationClass { + GObjectClass base_class; +}; + +static EvApplication *instance; + +G_DEFINE_TYPE (EvApplication, ev_application, G_TYPE_OBJECT); + +#ifdef ENABLE_DBUS +#define APPLICATION_DBUS_OBJECT_PATH "/org/mate/evince/Evince" +#define APPLICATION_DBUS_INTERFACE "org.mate.evince.Application" + +#define EVINCE_DAEMON_SERVICE "org.mate.evince.Daemon" +#define EVINCE_DAEMON_OBJECT_PATH "/org/mate/evince/Daemon" +#define EVINCE_DAEMON_INTERFACE "org.mate.evince.Daemon" +#endif + +static const gchar *userdir = NULL; + +static void _ev_application_open_uri_at_dest (EvApplication *application, + const gchar *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp); +static void ev_application_open_uri_in_window (EvApplication *application, + const char *uri, + EvWindow *ev_window, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp); + +/** + * ev_application_get_instance: + * + * Checks for #EvApplication instance, if it doesn't exist it does create it. + * + * Returns: an instance of the #EvApplication data. + */ +EvApplication * +ev_application_get_instance (void) +{ + if (!instance) { + instance = EV_APPLICATION (g_object_new (EV_TYPE_APPLICATION, NULL)); + } + + return instance; +} + +/* Session */ +gboolean +ev_application_load_session (EvApplication *application) +{ + GKeyFile *state_file; + gchar *uri; + +#ifdef WITH_SMCLIENT + if (egg_sm_client_is_resumed (application->smclient)) { + state_file = egg_sm_client_get_state_file (application->smclient); + if (!state_file) + return FALSE; + } else +#endif /* WITH_SMCLIENT */ + return FALSE; + + uri = g_key_file_get_string (state_file, "Evince", "uri", NULL); + if (!uri) + return FALSE; + + ev_application_open_uri_at_dest (application, uri, + gdk_screen_get_default (), + NULL, 0, NULL, + GDK_CURRENT_TIME); + g_free (uri); + g_key_file_free (state_file); + + return TRUE; +} + +#ifdef WITH_SMCLIENT + +static void +smclient_save_state_cb (EggSMClient *client, + GKeyFile *state_file, + EvApplication *application) +{ + if (!application->uri) + return; + + g_key_file_set_string (state_file, "Evince", "uri", application->uri); +} + +static void +smclient_quit_cb (EggSMClient *client, + EvApplication *application) +{ + ev_application_shutdown (application); +} +#endif /* WITH_SMCLIENT */ + +static void +ev_application_init_session (EvApplication *application) +{ +#ifdef WITH_SMCLIENT + application->smclient = egg_sm_client_get (); + g_signal_connect (application->smclient, "save_state", + G_CALLBACK (smclient_save_state_cb), + application); + g_signal_connect (application->smclient, "quit", + G_CALLBACK (smclient_quit_cb), + application); +#endif +} + +/** + * ev_display_open_if_needed: + * @name: the name of the display to be open if it's needed. + * + * Search among all the open displays if any of them have the same name as the + * passed name. If the display isn't found it tries the open it. + * + * Returns: a #GdkDisplay of the display with the passed name. + */ +static GdkDisplay * +ev_display_open_if_needed (const gchar *name) +{ + GSList *displays; + GSList *l; + GdkDisplay *display = NULL; + + displays = gdk_display_manager_list_displays (gdk_display_manager_get ()); + + for (l = displays; l != NULL; l = l->next) { + const gchar *display_name = gdk_display_get_name ((GdkDisplay *) l->data); + + if (g_ascii_strcasecmp (display_name, name) == 0) { + display = l->data; + break; + } + } + + g_slist_free (displays); + + return display != NULL ? display : gdk_display_open (name); +} + +static void +child_setup (gpointer user_data) +{ + gchar *startup_id; + + startup_id = g_strdup_printf ("_TIME%lu", + (unsigned long)GPOINTER_TO_INT (user_data)); + g_setenv ("DESKTOP_STARTUP_ID", startup_id, TRUE); + g_free (startup_id); +} + +static void +ev_spawn (const char *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp) +{ + gchar *argv[6]; + guint arg = 0; + gint i; + gboolean res; + GError *error = NULL; + +#ifdef G_OS_WIN32 +{ + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + argv[arg++] = g_build_filename (dir, "bin", "evince", NULL); + g_free (dir); +} +#else + argv[arg++] = g_build_filename (BINDIR, "evince", NULL); +#endif + + /* Page label */ + if (dest) { + const gchar *page_label; + + page_label = ev_link_dest_get_page_label (dest); + if (page_label) + argv[arg++] = g_strdup_printf ("--page-label=%s", page_label); + else + argv[arg++] = g_strdup_printf ("--page-label=%d", + ev_link_dest_get_page (dest)); + } + + /* Find string */ + if (search_string) { + argv[arg++] = g_strdup_printf ("--find=%s", search_string); + } + + /* Mode */ + switch (mode) { + case EV_WINDOW_MODE_FULLSCREEN: + argv[arg++] = g_strdup ("-f"); + break; + case EV_WINDOW_MODE_PRESENTATION: + argv[arg++] = g_strdup ("-s"); + break; + default: + break; + } + + argv[arg++] = (gchar *)uri; + argv[arg] = NULL; + + res = gdk_spawn_on_screen (screen, NULL /* wd */, argv, NULL /* env */, + 0, + child_setup, + GINT_TO_POINTER(timestamp), + NULL, &error); + if (!res) { + g_warning ("Error launching evince %s: %s\n", uri, error->message); + g_error_free (error); + } + + for (i = 0; i < arg - 1; i++) { + g_free (argv[i]); + } +} + +static GList * +ev_application_get_windows (EvApplication *application) +{ + GList *l, *toplevels; + GList *windows = NULL; + + toplevels = gtk_window_list_toplevels (); + + for (l = toplevels; l != NULL; l = l->next) { + if (EV_IS_WINDOW (l->data)) { + windows = g_list_append (windows, l->data); + } + } + + g_list_free (toplevels); + + return windows; +} + +static EvWindow * +ev_application_get_empty_window (EvApplication *application, + GdkScreen *screen) +{ + EvWindow *empty_window = NULL; + GList *windows = ev_application_get_windows (application); + GList *l; + + for (l = windows; l != NULL; l = l->next) { + EvWindow *window = EV_WINDOW (l->data); + + if (ev_window_is_empty (window) && + gtk_window_get_screen (GTK_WINDOW (window)) == screen) { + empty_window = window; + break; + } + } + + g_list_free (windows); + + return empty_window; +} + + +#ifdef ENABLE_DBUS +typedef struct { + gchar *uri; + GdkScreen *screen; + EvLinkDest *dest; + EvWindowRunMode mode; + gchar *search_string; + guint timestamp; +} EvRegisterDocData; + +static void +ev_register_doc_data_free (EvRegisterDocData *data) +{ + if (!data) + return; + + g_free (data->uri); + if (data->search_string) + g_free (data->search_string); + if (data->dest) + g_object_unref (data->dest); + + g_free (data); +} + +static void +on_reload_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GDBusConnection *connection = G_DBUS_CONNECTION (source_object); + GVariant *value; + GError *error = NULL; + + value = g_dbus_connection_call_finish (connection, res, &error); + if (!value) { + g_warning ("Failed to Reload: %s", error->message); + g_error_free (error); + } + g_variant_unref (value); + + ev_application_shutdown (EV_APP); +} + +static void +on_register_uri_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GDBusConnection *connection = G_DBUS_CONNECTION (source_object); + EvRegisterDocData *data = (EvRegisterDocData *)user_data; + EvApplication *application = EV_APP; + GVariant *value; + const gchar *owner; + GVariantBuilder builder; + GError *error = NULL; + + value = g_dbus_connection_call_finish (connection, res, &error); + if (!value) { + g_warning ("Error registering document: %s\n", error->message); + g_error_free (error); + + _ev_application_open_uri_at_dest (application, + data->uri, + data->screen, + data->dest, + data->mode, + data->search_string, + data->timestamp); + ev_register_doc_data_free (data); + + return; + } + + g_variant_get (value, "(&s)", &owner); + + /* This means that the document wasn't already registered; go + * ahead with opening it. + */ + if (owner[0] == '\0') { + g_variant_unref (value); + + application->doc_registered = TRUE; + + _ev_application_open_uri_at_dest (application, + data->uri, + data->screen, + data->dest, + data->mode, + data->search_string, + data->timestamp); + ev_register_doc_data_free (data); + + return; + } + + /* Already registered */ + g_variant_builder_init (&builder, G_VARIANT_TYPE ("(a{sv}u)")); + g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_add (&builder, "{sv}", + "display", + g_variant_new_string (gdk_display_get_name (gdk_screen_get_display (data->screen)))); + g_variant_builder_add (&builder, "{sv}", + "screen", + g_variant_new_int32 (gdk_screen_get_number (data->screen))); + if (data->dest) { + g_variant_builder_add (&builder, "{sv}", + "page-label", + g_variant_new_string (ev_link_dest_get_page_label (data->dest))); + } + if (data->search_string) { + g_variant_builder_add (&builder, "{sv}", + "find-string", + g_variant_new_string (data->search_string)); + } + if (data->mode != EV_WINDOW_MODE_NORMAL) { + g_variant_builder_add (&builder, "{sv}", + "mode", + g_variant_new_uint32 (data->mode)); + } + g_variant_builder_close (&builder); + + g_variant_builder_add (&builder, "u", data->timestamp); + + g_dbus_connection_call (connection, + owner, + APPLICATION_DBUS_OBJECT_PATH, + APPLICATION_DBUS_INTERFACE, + "Reload", + g_variant_builder_end (&builder), + NULL, + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + on_reload_cb, + NULL); + g_variant_unref (value); + ev_register_doc_data_free (data); +} + +/* + * ev_application_register_uri: + * @application: + * @uri: + * @screen: + * @dest: + * @mode: + * @search_string: + * @timestamp: + * + * Registers @uri with evince-daemon. + * + */ +static void +ev_application_register_uri (EvApplication *application, + const gchar *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp) +{ + EvRegisterDocData *data; + + if (!application->connection) + return; + + if (application->doc_registered) { + /* Already registered, reload */ + GList *windows, *l; + + windows = ev_application_get_windows (application); + for (l = windows; l != NULL; l = g_list_next (l)) { + EvWindow *ev_window = EV_WINDOW (l->data); + + ev_application_open_uri_in_window (application, uri, ev_window, + screen, dest, mode, + search_string, + timestamp); + } + g_list_free (windows); + + return; + } + + data = g_new (EvRegisterDocData, 1); + data->uri = g_strdup (uri); + data->screen = screen; + data->dest = dest ? g_object_ref (dest) : NULL; + data->mode = mode; + data->search_string = search_string ? g_strdup (search_string) : NULL; + data->timestamp = timestamp; + + g_dbus_connection_call (application->connection, + EVINCE_DAEMON_SERVICE, + EVINCE_DAEMON_OBJECT_PATH, + EVINCE_DAEMON_INTERFACE, + "RegisterDocument", + g_variant_new ("(s)", uri), + G_VARIANT_TYPE ("(s)"), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + on_register_uri_cb, + data); +} + +static void +ev_application_unregister_uri (EvApplication *application, + const gchar *uri) +{ + GVariant *value; + GError *error = NULL; + + if (!application->doc_registered) + return; + + /* This is called from ev_application_shutdown(), + * so it's safe to use the sync api + */ + value = g_dbus_connection_call_sync ( + application->connection, + EVINCE_DAEMON_SERVICE, + EVINCE_DAEMON_OBJECT_PATH, + EVINCE_DAEMON_INTERFACE, + "UnregisterDocument", + g_variant_new ("(s)", uri), + NULL, + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + &error); + if (value == NULL) { + g_warning ("Error unregistering document: %s\n", error->message); + g_error_free (error); + } else { + g_variant_unref (value); + } +} +#endif /* ENABLE_DBUS */ + +static void +ev_application_open_uri_in_window (EvApplication *application, + const char *uri, + EvWindow *ev_window, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp) +{ +#ifdef GDK_WINDOWING_X11 + GdkWindow *gdk_window; +#endif + + if (screen) { + ev_stock_icons_set_screen (screen); + gtk_window_set_screen (GTK_WINDOW (ev_window), screen); + } + + /* We need to load uri before showing the window, so + we can restore window size without flickering */ + ev_window_open_uri (ev_window, uri, dest, mode, search_string); + + if (!gtk_widget_get_realized (GTK_WIDGET (ev_window))) + gtk_widget_realize (GTK_WIDGET (ev_window)); + +#ifdef GDK_WINDOWING_X11 + gdk_window = gtk_widget_get_window (GTK_WIDGET (ev_window)); + + if (timestamp <= 0) + timestamp = gdk_x11_get_server_time (gdk_window); + gdk_x11_window_set_user_time (gdk_window, timestamp); + + gtk_window_present (GTK_WINDOW (ev_window)); +#else + gtk_window_present_with_time (GTK_WINDOW (ev_window), timestamp); +#endif /* GDK_WINDOWING_X11 */ +} + +static void +_ev_application_open_uri_at_dest (EvApplication *application, + const gchar *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp) +{ + EvWindow *ev_window; + + ev_window = ev_application_get_empty_window (application, screen); + if (!ev_window) + ev_window = EV_WINDOW (ev_window_new ()); + + ev_application_open_uri_in_window (application, uri, ev_window, + screen, dest, mode, + search_string, + timestamp); +} + +/** + * ev_application_open_uri_at_dest: + * @application: The instance of the application. + * @uri: The uri to be opened. + * @screen: Thee screen where the link will be shown. + * @dest: The #EvLinkDest of the document. + * @mode: The run mode of the window. + * @timestamp: Current time value. + */ +void +ev_application_open_uri_at_dest (EvApplication *application, + const char *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint timestamp) +{ + g_return_if_fail (uri != NULL); + + if (application->uri && strcmp (application->uri, uri) != 0) { + /* spawn a new evince process */ + ev_spawn (uri, screen, dest, mode, search_string, timestamp); + return; + } else if (!application->uri) { + application->uri = g_strdup (uri); + } + +#ifdef ENABLE_DBUS + /* Register the uri or send Reload to + * remote instance if already registered + */ + ev_application_register_uri (application, uri, screen, dest, mode, search_string, timestamp); +#else + _ev_application_open_uri_at_dest (application, uri, screen, dest, mode, search_string, timestamp); +#endif /* ENABLE_DBUS */ +} + +/** + * ev_application_open_window: + * @application: The instance of the application. + * @timestamp: Current time value. + * + * Creates a new window + */ +void +ev_application_open_window (EvApplication *application, + GdkScreen *screen, + guint32 timestamp) +{ + GtkWidget *new_window = ev_window_new (); +#ifdef GDK_WINDOWING_X11 + GdkWindow *gdk_window; +#endif + + if (screen) { + ev_stock_icons_set_screen (screen); + gtk_window_set_screen (GTK_WINDOW (new_window), screen); + } + + if (!gtk_widget_get_realized (new_window)) + gtk_widget_realize (new_window); + +#ifdef GDK_WINDOWING_X11 + gdk_window = gtk_widget_get_window (GTK_WIDGET (new_window)); + + if (timestamp <= 0) + timestamp = gdk_x11_get_server_time (gdk_window); + gdk_x11_window_set_user_time (gdk_window, timestamp); + + gtk_window_present (GTK_WINDOW (new_window)); +#else + gtk_window_present_with_time (GTK_WINDOW (new_window), timestamp); +#endif /* GDK_WINDOWING_X11 */ +} + +#ifdef ENABLE_DBUS +static void +method_call_cb (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + EvApplication *application = EV_APPLICATION (user_data); + GList *windows, *l; + guint timestamp; + GVariantIter *iter; + const gchar *key; + GVariant *value; + GdkDisplay *display = NULL; + int screen_number = 0; + EvLinkDest *dest = NULL; + EvWindowRunMode mode = EV_WINDOW_MODE_NORMAL; + const gchar *search_string = NULL; + GdkScreen *screen = NULL; + + if (g_strcmp0 (method_name, "Reload") == 0) { + g_variant_get (parameters, "(a{sv}u)", &iter, ×tamp); + + while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) { + if (strcmp (key, "display") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { + display = ev_display_open_if_needed (g_variant_get_string (value, NULL)); + } else if (strcmp (key, "screen") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { + screen_number = g_variant_get_int32 (value); + } else if (strcmp (key, "mode") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_UINT32) { + mode = g_variant_get_uint32 (value); + } else if (strcmp (key, "page-label") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { + dest = ev_link_dest_new_page_label (g_variant_get_string (value, NULL)); + } else if (strcmp (key, "find-string") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { + search_string = g_variant_get_string (value, NULL); + } + } + g_variant_iter_free (iter); + + if (display != NULL && + screen_number >= 0 && + screen_number < gdk_display_get_n_screens (display)) + screen = gdk_display_get_screen (display, screen_number); + else + screen = gdk_screen_get_default (); + + windows = ev_application_get_windows (application); + for (l = windows; l != NULL; l = g_list_next (l)) { + EvWindow *ev_window = EV_WINDOW (l->data); + + ev_application_open_uri_in_window (application, application->uri, + ev_window, + screen, dest, mode, + search_string, + timestamp); + } + g_list_free (windows); + + if (dest) + g_object_unref (dest); + + g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); + } else if (g_strcmp0 (method_name, "GetWindowList") == 0) { + GList *windows = ev_application_get_windows (application); + GVariantBuilder builder; + GList *l; + + g_variant_builder_init (&builder, G_VARIANT_TYPE ("(ao)")); + g_variant_builder_open (&builder, G_VARIANT_TYPE ("ao")); + + for (l = windows; l; l = g_list_next (l)) { + EvWindow *window = (EvWindow *)l->data; + + g_variant_builder_add (&builder, "o", ev_window_get_dbus_object_path (window)); + } + + g_variant_builder_close (&builder); + g_list_free (windows); + + g_dbus_method_invocation_return_value (invocation, g_variant_builder_end (&builder)); + } +} + +static const char introspection_xml[] = + "<node>" + "<interface name='org.mate.evince.Application'>" + "<method name='Reload'>" + "<arg type='a{sv}' name='args' direction='in'/>" + "<arg type='u' name='timestamp' direction='in'/>" + "</method>" + "<method name='GetWindowList'>" + "<arg type='ao' name='window_list' direction='out'/>" + "</method>" + "</interface>" + "</node>"; + +static const GDBusInterfaceVTable interface_vtable = { + method_call_cb, + NULL, + NULL +}; + +static GDBusNodeInfo *introspection_data; +#endif /* ENABLE_DBUS */ + +void +ev_application_open_uri_list (EvApplication *application, + GSList *uri_list, + GdkScreen *screen, + guint timestamp) +{ + GSList *l; + + for (l = uri_list; l != NULL; l = l->next) { + ev_application_open_uri_at_dest (application, (char *)l->data, + screen, NULL, 0, NULL, + timestamp); + } +} + +static void +ev_application_accel_map_save (EvApplication *application) +{ + gchar *accel_map_file; + gchar *tmp_filename; + gint fd; + + if (userdir) { + accel_map_file = g_build_filename (userdir, "accels", + "evince", NULL); + } else { + accel_map_file = g_build_filename (g_get_home_dir (), + ".mate2", "accels", + "evince", NULL); + } + + tmp_filename = g_strdup_printf ("%s.XXXXXX", accel_map_file); + + fd = g_mkstemp (tmp_filename); + if (fd == -1) { + g_free (accel_map_file); + g_free (tmp_filename); + + return; + } + gtk_accel_map_save_fd (fd); + close (fd); + + if (g_rename (tmp_filename, accel_map_file) == -1) { + /* FIXME: win32? */ + g_unlink (tmp_filename); + } + + g_free (accel_map_file); + g_free (tmp_filename); +} + +static void +ev_application_accel_map_load (EvApplication *application) +{ + gchar *accel_map_file; + + if (userdir) { + accel_map_file = g_build_filename (userdir, "accels", + "evince", NULL); + } else { + accel_map_file = g_build_filename (g_get_home_dir (), + ".mate2", "accels", + "evince", NULL); + } + + gtk_accel_map_load (accel_map_file); + g_free (accel_map_file); +} + +void +ev_application_shutdown (EvApplication *application) +{ + if (application->uri) { +#ifdef ENABLE_DBUS + ev_application_unregister_uri (application, + application->uri); +#endif + g_free (application->uri); + application->uri = NULL; + } + + ev_application_accel_map_save (application); + + g_object_unref (application->scr_saver); + application->scr_saver = NULL; + +#ifdef ENABLE_DBUS + if (application->keys) { + g_object_unref (application->keys); + application->keys = NULL; + } + if (application->registration_id != 0) { + g_dbus_connection_unregister_object (application->connection, + application->registration_id); + application->registration_id = 0; + } + if (application->connection != NULL) { + g_object_unref (application->connection); + application->connection = NULL; + } + if (introspection_data) { + g_dbus_node_info_ref (introspection_data); + introspection_data = NULL; + } +#endif /* ENABLE_DBUS */ + + g_free (application->dot_dir); + application->dot_dir = NULL; + g_free (application->data_dir); + application->data_dir = NULL; + g_free (application->filechooser_open_uri); + application->filechooser_open_uri = NULL; + g_free (application->filechooser_save_uri); + application->filechooser_save_uri = NULL; + + g_object_unref (application); + instance = NULL; + + gtk_main_quit (); +} + +static void +ev_application_class_init (EvApplicationClass *ev_application_class) +{ +} + +static void +ev_application_init (EvApplication *ev_application) +{ + GError *error = NULL; + + userdir = g_getenv ("MATE22_USER_DIR"); + if (userdir) + ev_application->dot_dir = g_build_filename (userdir, "evince", NULL); + else + ev_application->dot_dir = g_build_filename (g_get_home_dir (), + ".mate2", + "evince", + NULL); + +#ifdef G_OS_WIN32 +{ + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + ev_application->data_dir = g_build_filename (dir, "share", "evince", NULL); + g_free (dir); +} +#else + ev_application->data_dir = g_strdup (EVINCEDATADIR); +#endif + + ev_application_init_session (ev_application); + + ev_application_accel_map_load (ev_application); + +#ifdef ENABLE_DBUS + ev_application->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + if (ev_application->connection != NULL) { + introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL); + g_assert (introspection_data != NULL); + + ev_application->registration_id = + g_dbus_connection_register_object (ev_application->connection, + APPLICATION_DBUS_OBJECT_PATH, + introspection_data->interfaces[0], + &interface_vtable, + ev_application, NULL, + &error); + if (ev_application->registration_id == 0) { + g_printerr ("Failed to register bus object: %s\n", error->message); + g_error_free (error); + } + } else { + g_printerr ("Failed to get bus connection: %s\n", error->message); + g_error_free (error); + } + + ev_application->keys = ev_media_player_keys_new (); +#endif /* ENABLE_DBUS */ + + ev_application->scr_saver = totem_scrsaver_new (); + g_object_set (ev_application->scr_saver, + "reason", _("Running in presentation mode"), + NULL); +} + +GDBusConnection * +ev_application_get_dbus_connection (EvApplication *application) +{ +#ifdef ENABLE_DBUS + return application->connection; +#else + return NULL; +#endif +} + +gboolean +ev_application_has_window (EvApplication *application) +{ + GList *l, *toplevels; + gboolean retval = FALSE; + + toplevels = gtk_window_list_toplevels (); + + for (l = toplevels; l != NULL && !retval; l = l->next) { + if (EV_IS_WINDOW (l->data)) + retval = TRUE; + } + + g_list_free (toplevels); + + return retval; +} + +guint +ev_application_get_n_windows (EvApplication *application) +{ + GList *l, *toplevels; + guint retval = 0; + + toplevels = gtk_window_list_toplevels (); + + for (l = toplevels; l != NULL; l = l->next) { + if (EV_IS_WINDOW (l->data)) + retval++; + } + + g_list_free (toplevels); + + return retval; +} + +const gchar * +ev_application_get_uri (EvApplication *application) +{ + return application->uri; +} + +/** + * ev_application_get_media_keys: + * @application: The instance of the application. + * + * It gives you access to the media player keys handler object. + * + * Returns: A #EvMediaPlayerKeys. + */ +GObject * +ev_application_get_media_keys (EvApplication *application) +{ +#ifdef ENABLE_DBUS + return G_OBJECT (application->keys); +#else + return NULL; +#endif /* ENABLE_DBUS */ +} + +void +ev_application_set_filechooser_uri (EvApplication *application, + GtkFileChooserAction action, + const gchar *uri) +{ + if (action == GTK_FILE_CHOOSER_ACTION_OPEN) { + g_free (application->filechooser_open_uri); + application->filechooser_open_uri = g_strdup (uri); + } else if (action == GTK_FILE_CHOOSER_ACTION_SAVE) { + g_free (application->filechooser_save_uri); + application->filechooser_save_uri = g_strdup (uri); + } +} + +const gchar * +ev_application_get_filechooser_uri (EvApplication *application, + GtkFileChooserAction action) +{ + if (action == GTK_FILE_CHOOSER_ACTION_OPEN) { + if (application->filechooser_open_uri) + return application->filechooser_open_uri; + } else if (action == GTK_FILE_CHOOSER_ACTION_SAVE) { + if (application->filechooser_save_uri) + return application->filechooser_save_uri; + } + + return NULL; +} + +void +ev_application_screensaver_enable (EvApplication *application) +{ + totem_scrsaver_enable (application->scr_saver); +} + +void +ev_application_screensaver_disable (EvApplication *application) +{ + totem_scrsaver_disable (application->scr_saver); +} + +const gchar * +ev_application_get_dot_dir (EvApplication *application, + gboolean create) +{ + if (create) + g_mkdir_with_parents (application->dot_dir, 0700); + + return application->dot_dir; +} + +const gchar * +ev_application_get_data_dir (EvApplication *application) +{ + return application->data_dir; +} diff --git a/shell/ev-application.h b/shell/ev-application.h new file mode 100644 index 00000000..1e21ebde --- /dev/null +++ b/shell/ev-application.h @@ -0,0 +1,88 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_APPLICATION_H +#define EV_APPLICATION_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib.h> +#include <gtk/gtk.h> + +#include "ev-window.h" + +G_BEGIN_DECLS + +typedef struct _EvApplication EvApplication; +typedef struct _EvApplicationClass EvApplicationClass; + +#define EV_TYPE_APPLICATION (ev_application_get_type ()) +#define EV_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_APPLICATION, EvApplication)) +#define EV_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_APPLICATION, EvApplicationClass)) +#define EV_IS_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_APPLICATION)) +#define EV_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_APPLICATION)) +#define EV_APPLICATION_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_APPLICATION, EvApplicationClass)) + +#define EV_APP (ev_application_get_instance ()) + +GType ev_application_get_type (void) G_GNUC_CONST; +EvApplication *ev_application_get_instance (void); + +void ev_application_shutdown (EvApplication *application); +gboolean ev_application_load_session (EvApplication *application); +void ev_application_open_window (EvApplication *application, + GdkScreen *screen, + guint32 timestamp); +void ev_application_open_uri_at_dest (EvApplication *application, + const char *uri, + GdkScreen *screen, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string, + guint32 timestamp); +void ev_application_open_uri_list (EvApplication *application, + GSList *uri_list, + GdkScreen *screen, + guint32 timestamp); +GDBusConnection *ev_application_get_dbus_connection (EvApplication *application); +gboolean ev_application_has_window (EvApplication *application); +guint ev_application_get_n_windows (EvApplication *application); +const gchar * ev_application_get_uri (EvApplication *application); +GObject *ev_application_get_media_keys (EvApplication *application); + +void ev_application_set_filechooser_uri (EvApplication *application, + GtkFileChooserAction action, + const gchar *uri); +const gchar *ev_application_get_filechooser_uri (EvApplication *application, + GtkFileChooserAction action); +void ev_application_screensaver_enable (EvApplication *application); +void ev_application_screensaver_disable (EvApplication *application); +const gchar *ev_application_get_dot_dir (EvApplication *application, + gboolean create); +const gchar *ev_application_get_data_dir (EvApplication *application); + +G_END_DECLS + +#endif /* !EV_APPLICATION_H */ + diff --git a/shell/ev-convert-metadata.c b/shell/ev-convert-metadata.c new file mode 100644 index 00000000..485ce133 --- /dev/null +++ b/shell/ev-convert-metadata.c @@ -0,0 +1,302 @@ +/* ev-convert-metadata.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +//#include <config.h> + +#include <gtk/gtk.h> +#include <glib.h> +#include <gio/gio.h> +#include <glib/gi18n.h> +#include <string.h> +#include <libxml/tree.h> + +#define EV_METADATA_NAMESPACE "metadata::evince" + +typedef struct { + xmlNodePtr cur; + xmlChar *uri; +} DocItem; + +typedef struct { + GtkWidget *progress; + GtkWidget *label; + + xmlDocPtr doc; + GList *items; + GList *current; + guint n_item; +} ConvertData; + +static void +free_doc_item (DocItem *item) +{ + xmlFree (item->uri); + g_free (item); +} + +static void +convert_finish (ConvertData *data) +{ + g_list_foreach (data->items, (GFunc)free_doc_item, NULL); + g_list_free (data->items); + xmlFreeDoc (data->doc); + g_free (data); + + gtk_main_quit (); +} + +static gboolean +convert_file (ConvertData *data) +{ + GFile *file; + DocItem *item; + const gchar *uri; + xmlNodePtr node; + xmlNodePtr cur; + gint total, current; + gchar *text; + + if (!data->current) + return FALSE; + + item = (DocItem *) data->current->data; + uri = (const gchar *)item->uri; + node = item->cur; + data->current = g_list_next (data->current); + + /* Update progress information */ + total = g_list_length (data->items); + current = ++(data->n_item); + + text = g_strdup_printf (_("Converting %s"), uri); + gtk_label_set_text (GTK_LABEL (data->label), text); + g_free (text); + + text = g_strdup_printf (_("%d of %d documents converted"), current, total); + gtk_progress_bar_set_text (GTK_PROGRESS_BAR (data->progress), text); + g_free (text); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (data->progress), + (gdouble)(current - 1) / total); + + file = g_file_new_for_uri (uri); + if (!g_file_query_exists (file, NULL)) { + g_printerr ("Uri %s does not exist\n", uri); + g_object_unref (file); + + return data->current != NULL; + } + + for (cur = node->xmlChildrenNode; cur != NULL; cur = cur->next) { + xmlChar *key; + xmlChar *value; + + if (xmlStrcmp (cur->name, (const xmlChar *)"entry") != 0) + continue; + + key = xmlGetProp (cur, (const xmlChar *)"key"); + value = xmlGetProp (cur, (const xmlChar *)"value"); + if (key && value) { + GFileInfo *info; + gchar *gio_key; + GError *error = NULL; + + info = g_file_info_new (); + + gio_key = g_strconcat (EV_METADATA_NAMESPACE"::", key, NULL); + g_file_info_set_attribute_string (info, gio_key, (const gchar *)value); + g_free (gio_key); + + if (!g_file_set_attributes_from_info (file, info, 0, NULL, &error)) { + g_printerr ("Error setting metadata for %s: %s\n", + uri, error->message); + g_error_free (error); + } + + g_object_unref (info); + } + + if (key) + xmlFree (key); + if (value) + xmlFree (value); + } + + g_object_unref (file); + + return data->current != NULL; +} + +static void +convert_metadata_cancel (GtkDialog *dialog, + gint response_id, + ConvertData *data) +{ + convert_finish (data); + exit (1); +} + +static void +show_progress_dialog (ConvertData *data) +{ + GtkWidget *dialog; + GtkWidget *action_area; + GtkWidget *vbox, *pbox; + GtkWidget *label; + GtkWidget *progress; + gchar *text; + + dialog = gtk_dialog_new_with_buttons (_("Converting metadata"), + NULL, + GTK_DIALOG_NO_SEPARATOR, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + NULL); + action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog)); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); + gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); + gtk_box_set_spacing (GTK_BOX (action_area), 6); + + vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_set_spacing (GTK_BOX (vbox), 12); + + label = gtk_label_new (NULL); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + text = g_strdup_printf ("<b>%s</b>", _("Converting metadata")); + gtk_label_set_markup (GTK_LABEL (label), text); + g_free (text); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + label = gtk_label_new (_("The metadata format used by Evince " + "has changed, and hence it needs to be migrated. " + "If the migration is cancelled the metadata " + "storage will not work.")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); + gtk_widget_show (label); + + pbox = gtk_vbox_new (FALSE, 6); + progress = gtk_progress_bar_new (); + data->progress = progress; + gtk_box_pack_start (GTK_BOX (pbox), progress, TRUE, TRUE, 0); + gtk_widget_show (progress); + + label = gtk_label_new (NULL); + data->label = label; + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); + gtk_box_pack_start (GTK_BOX (pbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + gtk_box_pack_start (GTK_BOX (vbox), pbox, TRUE, TRUE, 0); + gtk_widget_show (pbox); + + g_signal_connect (dialog, "response", + G_CALLBACK (convert_metadata_cancel), + data); + + gtk_widget_show (dialog); +} + +static gboolean +convert_metadata_file (const gchar *filename) +{ + ConvertData *data; + xmlDocPtr doc; + xmlNodePtr cur; + + if (!g_file_test (filename, G_FILE_TEST_EXISTS)) + return FALSE; + + doc = xmlParseFile (filename); + if (!doc) { + g_printerr ("Error loading metadata file %s\n", filename); + return FALSE; + } + + cur = xmlDocGetRootElement (doc); + if (!cur) { + g_printerr ("Metadata file %s is empty\n", filename); + xmlFreeDoc (doc); + return TRUE; + } + + if (xmlStrcmp (cur->name, (const xmlChar *) "metadata")) { + g_printerr ("File %s is not a valid evince metadata file\n", filename); + xmlFreeDoc (doc); + return FALSE; + } + + data = g_new0 (ConvertData, 1); + data->doc = doc; + + for (cur = cur->xmlChildrenNode; cur != NULL; cur = cur->next) { + xmlChar *uri; + DocItem *item; + + if (xmlStrcmp (cur->name, (const xmlChar *)"document") != 0) + continue; + + uri = xmlGetProp (cur, (const xmlChar *)"uri"); + if (!uri) + continue; + + item = g_new (DocItem, 1); + item->uri = uri; + item->cur = cur; + data->items = g_list_prepend (data->items, item); + } + + if (!data->items) { + xmlFreeDoc (data->doc); + g_free (data); + + return TRUE; + } + + show_progress_dialog (data); + + data->current = data->items; + g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc)convert_file, + data, + (GDestroyNotify)convert_finish); + + return TRUE; +} + +gint +main (gint argc, gchar **argv) +{ + if (argc != 2) { + g_printerr ("%s\n", "Usage: evince-convert-metadata FILE"); + return 1; + } + + gtk_init (&argc, &argv); + + if (!convert_metadata_file (argv[1])) + return 1; + + gtk_main (); + + return 0; +} diff --git a/shell/ev-daemon.c b/shell/ev-daemon.c new file mode 100644 index 00000000..53bd30ea --- /dev/null +++ b/shell/ev-daemon.c @@ -0,0 +1,553 @@ +/* ev-metadata.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright Ā© 2010 Christian Persch + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <glib.h> +#include <glib/gstdio.h> +#include <gio/gio.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/wait.h> +#include <fcntl.h> +#include <unistd.h> + +#define EV_DBUS_DAEMON_NAME "org.mate.evince.Daemon" +#define EV_DBUS_DAEMON_INTERFACE_NAME "org.mate.evince.Daemon" +#define EV_DBUS_DAEMON_OBJECT_PATH "/org/mate/evince/Daemon" + +#define EV_DBUS_WINDOW_INTERFACE_NAME "org.mate.evince.Window" + +#define DAEMON_TIMEOUT (30) /* seconds */ + +#define LOG g_printerr + +static GList *ev_daemon_docs = NULL; +static guint kill_timer_id; +static GHashTable *pending_invocations = NULL; + +typedef struct { + gchar *dbus_name; + gchar *uri; + guint watch_id; + guint loaded_id; +} EvDoc; + +static void +ev_doc_free (EvDoc *doc) +{ + if (!doc) + return; + + g_free (doc->dbus_name); + g_free (doc->uri); + + g_bus_unwatch_name (doc->watch_id); + + g_free (doc); +} + +static EvDoc * +ev_daemon_find_doc (const gchar *uri) +{ + GList *l; + + for (l = ev_daemon_docs; l != NULL; l = l->next) { + EvDoc *doc = (EvDoc *)l->data; + + if (strcmp (doc->uri, uri) == 0) + return doc; + } + + return NULL; +} + +static void +ev_daemon_stop_killtimer (void) +{ + if (kill_timer_id != 0) + g_source_remove (kill_timer_id); + kill_timer_id = 0; +} + +static gboolean +ev_daemon_shutdown (gpointer user_data) +{ + GMainLoop *loop = (GMainLoop *) user_data; + + LOG ("Timeout; exiting daemon.\n"); + + if (g_main_loop_is_running (loop)) + g_main_loop_quit (loop); + + return FALSE; +} + +static void +ev_daemon_maybe_start_killtimer (gpointer data) +{ + ev_daemon_stop_killtimer (); + if (ev_daemon_docs != NULL) + return; + + kill_timer_id = g_timeout_add_seconds (DAEMON_TIMEOUT, + (GSourceFunc) ev_daemon_shutdown, + data); +} + +static gboolean +convert_metadata (const gchar *metadata) +{ + GFile *file; + char *argv[3]; + gint exit_status; + GFileAttributeInfoList *namespaces; + gboolean supported = FALSE; + GError *error = NULL; + gboolean retval; + + /* If metadata is not supported for a local file + * is likely because and old gvfs version is running. + */ + file = g_file_new_for_path (metadata); + namespaces = g_file_query_writable_namespaces (file, NULL, NULL); + if (namespaces) { + gint i; + + for (i = 0; i < namespaces->n_infos; i++) { + if (strcmp (namespaces->infos[i].name, "metadata") == 0) { + supported = TRUE; + break; + } + } + g_file_attribute_info_list_unref (namespaces); + } + if (!supported) { + g_warning ("GVFS metadata not supported. " + "Evince will run without metadata support.\n"); + g_object_unref (file); + return FALSE; + } + g_object_unref (file); + + argv[0] = g_build_filename (LIBEXECDIR, "evince-convert-metadata", NULL); + argv[1] = (char *) metadata; + argv[2] = NULL; + + retval = g_spawn_sync (NULL /* wd */, argv, NULL /* env */, + 0, NULL, NULL, NULL, NULL, + &exit_status, &error); + g_free (argv[0]); + + if (!retval) { + g_printerr ("Error migrating metadata: %s\n", error->message); + g_error_free (error); + } + + return retval && WIFEXITED (exit_status) && WEXITSTATUS (exit_status) == 0; +} + +static void +ev_migrate_metadata (void) +{ + gchar *updated; + gchar *metadata; + gchar *dot_dir; + const gchar *userdir; + + userdir = g_getenv ("MATE22_USER_DIR"); + if (userdir) { + dot_dir = g_build_filename (userdir, "evince", NULL); + } else { + dot_dir = g_build_filename (g_get_home_dir (), + ".mate2", + "evince", + NULL); + } + + updated = g_build_filename (dot_dir, "migrated-to-gvfs", NULL); + if (g_file_test (updated, G_FILE_TEST_EXISTS)) { + /* Already migrated */ + g_free (updated); + g_free (dot_dir); + return; + } + + metadata = g_build_filename (dot_dir, "ev-metadata.xml", NULL); + if (g_file_test (metadata, G_FILE_TEST_EXISTS)) { + if (convert_metadata (metadata)) { + gint fd; + + fd = g_creat (updated, 0600); + if (fd != -1) { + close (fd); + } + } + } + + g_free (dot_dir); + g_free (updated); + g_free (metadata); +} + +static gboolean +spawn_evince (const gchar *uri) +{ + gchar *argv[3]; + gboolean retval; + GError *error = NULL; + + /* TODO Check that the uri exists */ + argv[0] = g_build_filename (BINDIR, "evince", NULL); + argv[1] = (gchar *) uri; + argv[2] = NULL; + + retval = g_spawn_async (NULL /* wd */, argv, NULL /* env */, + 0, NULL, NULL, NULL, &error); + if (!retval) { + g_printerr ("Error spawning evince for uri %s: %s\n", uri, error->message); + g_error_free (error); + } + g_free (argv[0]); + + return retval; +} + +static void +name_appeared_cb (GDBusConnection *connection, + const gchar *name, + const gchar *name_owner, + gpointer user_data) +{ + LOG ("Watch name'%s' appeared with owner '%s'\n", name, name_owner); +} + +static void +name_vanished_cb (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + GList *l; + + LOG ("Watch name'%s' disappeared\n", name); + + for (l = ev_daemon_docs; l != NULL; l = l->next) { + EvDoc *doc = (EvDoc *) l->data; + + if (strcmp (doc->dbus_name, name) != 0) + continue; + + LOG ("Watch found URI '%s' for name; removing\n", doc->uri); + + ev_daemon_docs = g_list_delete_link (ev_daemon_docs, l); + ev_doc_free (doc); + + ev_daemon_maybe_start_killtimer (user_data); + return; + } +} + +static void +process_pending_invocations (const gchar *uri, + const gchar *dbus_name) +{ + GList *l; + GList *uri_invocations; + + LOG ("RegisterDocument process pending invocations for URI %s\n", uri); + uri_invocations = g_hash_table_lookup (pending_invocations, uri); + + for (l = uri_invocations; l != NULL; l = l->next) { + GDBusMethodInvocation *invocation; + + invocation = (GDBusMethodInvocation *)l->data; + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", dbus_name)); + } + + g_list_free (uri_invocations); + g_hash_table_remove (pending_invocations, uri); +} + +static void +document_loaded_cb (GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + EvDoc *doc) +{ + const gchar *uri; + + g_variant_get (parameters, "(&s)", &uri); + if (strcmp (uri, doc->uri) == 0) + process_pending_invocations (uri, sender_name); + g_dbus_connection_signal_unsubscribe (connection, doc->loaded_id); +} + +static void +method_call_cb (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + if (g_strcmp0 (interface_name, EV_DBUS_DAEMON_INTERFACE_NAME) != 0) + return; + + if (g_strcmp0 (method_name, "RegisterDocument") == 0) { + EvDoc *doc; + const gchar *uri; + + g_variant_get (parameters, "(&s)", &uri); + + doc = ev_daemon_find_doc (uri); + if (doc != NULL) { + LOG ("RegisterDocument found owner '%s' for URI '%s'\n", doc->dbus_name, uri); + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", doc->dbus_name)); + return; + } + + ev_daemon_stop_killtimer (); + + doc = g_new (EvDoc, 1); + doc->dbus_name = g_strdup (sender); + doc->uri = g_strdup (uri); + + doc->loaded_id = g_dbus_connection_signal_subscribe (connection, + doc->dbus_name, + EV_DBUS_WINDOW_INTERFACE_NAME, + "DocumentLoaded", + NULL, + NULL, + 0, + (GDBusSignalCallback) document_loaded_cb, + doc, + NULL); + doc->watch_id = g_bus_watch_name_on_connection (connection, + sender, + G_BUS_NAME_WATCHER_FLAGS_NONE, + name_appeared_cb, + name_vanished_cb, + user_data, NULL); + + LOG ("RegisterDocument registered owner '%s' for URI '%s'\n", doc->dbus_name, uri); + ev_daemon_docs = g_list_prepend (ev_daemon_docs, doc); + + g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "")); + } else if (g_strcmp0 (method_name, "UnregisterDocument") == 0) { + EvDoc *doc; + const gchar *uri; + + g_variant_get (parameters, "(&s)", &uri); + + LOG ("UnregisterDocument URI '%s'\n", uri); + + doc = ev_daemon_find_doc (uri); + if (doc == NULL) { + LOG ("UnregisterDocument URI was not registered!\n"); + g_dbus_method_invocation_return_error_literal (invocation, + G_DBUS_ERROR, + G_DBUS_ERROR_INVALID_ARGS, + "URI not registered"); + return; + } + + if (strcmp (doc->dbus_name, sender) != 0) { + LOG ("UnregisterDocument called by non-owner (owner '%s' sender '%s')\n", + doc->dbus_name, sender); + + g_dbus_method_invocation_return_error_literal (invocation, + G_DBUS_ERROR, + G_DBUS_ERROR_BAD_ADDRESS, + "Only owner can call this method"); + return; + } + + ev_daemon_docs = g_list_remove (ev_daemon_docs, doc); + ev_doc_free (doc); + ev_daemon_maybe_start_killtimer (user_data); + + g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); + } else if (g_strcmp0 (method_name, "FindDocument") == 0) { + EvDoc *doc; + const gchar *uri; + gboolean spawn; + + g_variant_get (parameters, "(&sb)", &uri, &spawn); + + LOG ("FindDocument URI '%s' \n", uri); + + doc = ev_daemon_find_doc (uri); + if (doc != NULL) { + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", doc->dbus_name)); + return; + } + + if (spawn) { + GList *uri_invocations; + gboolean ret_val = TRUE; + + uri_invocations = g_hash_table_lookup (pending_invocations, uri); + + if (uri_invocations == NULL) { + /* Only spawn once. */ + ret_val = spawn_evince (uri); + } + + if (ret_val) { + /* Only defer DBUS answer if evince was succesfully spawned */ + uri_invocations = g_list_prepend (uri_invocations, invocation); + g_hash_table_insert (pending_invocations, + g_strdup (uri), + uri_invocations); + return; + } + } + + LOG ("FindDocument URI '%s' was not registered!\n", uri); + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)","")); + } +} + +static const char introspection_xml[] = + "<node>" + "<interface name='org.mate.evince.Daemon'>" + "<method name='RegisterDocument'>" + "<arg type='s' name='uri' direction='in'/>" + "<arg type='s' name='owner' direction='out'/>" + "</method>" + "<method name='UnregisterDocument'>" + "<arg type='s' name='uri' direction='in'/>" + "</method>" + "<method name='FindDocument'>" + "<arg type='s' name='uri' direction='in'/>" + "<arg type='b' name='spawn' direction='in'/>" + "<arg type='s' name='owner' direction='out'/>" + "</method>" + "</interface>" + "</node>"; + +static const GDBusInterfaceVTable interface_vtable = { + method_call_cb, + NULL, + NULL +}; + +static GDBusNodeInfo *introspection_data; + +static void +bus_acquired_cb (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + GMainLoop *loop = (GMainLoop *) user_data; + guint registration_id; + GError *error = NULL; + + if (!introspection_data) + introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL); + + registration_id = g_dbus_connection_register_object (connection, + EV_DBUS_DAEMON_OBJECT_PATH, + introspection_data->interfaces[0], + &interface_vtable, + g_main_loop_ref (loop), + (GDestroyNotify) g_main_loop_unref, + &error); + if (registration_id == 0) { + g_printerr ("Failed to register object: %s\n", error->message); + g_error_free (error); + + if (g_main_loop_is_running (loop)) + g_main_loop_quit (loop); + } +} + +static void +name_acquired_cb (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + ev_migrate_metadata (); + + ev_daemon_maybe_start_killtimer (user_data); +} + +static void +name_lost_cb (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + GMainLoop *loop = (GMainLoop *) user_data; + + /* Failed to acquire the name; exit daemon */ + if (g_main_loop_is_running (loop)) + g_main_loop_quit (loop); +} + +gint +main (gint argc, gchar **argv) +{ + GMainLoop *loop; + guint owner_id; + + g_set_prgname ("evince-daemon"); + + g_type_init (); + + loop = g_main_loop_new (NULL, FALSE); + + pending_invocations = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify)g_free, + NULL); + + owner_id = g_bus_own_name (G_BUS_TYPE_SESSION, + EV_DBUS_DAEMON_NAME, + G_BUS_NAME_OWNER_FLAGS_NONE, + bus_acquired_cb, + name_acquired_cb, + name_lost_cb, + g_main_loop_ref (loop), + (GDestroyNotify) g_main_loop_unref); + + g_main_loop_run (loop); + + g_bus_unown_name (owner_id); + + g_main_loop_unref (loop); + if (introspection_data) + g_dbus_node_info_unref (introspection_data); + g_list_foreach (ev_daemon_docs, (GFunc)ev_doc_free, NULL); + g_list_free (ev_daemon_docs); + g_hash_table_destroy (pending_invocations); + + return 0; +} diff --git a/shell/ev-file-monitor.c b/shell/ev-file-monitor.c new file mode 100644 index 00000000..3de0ce01 --- /dev/null +++ b/shell/ev-file-monitor.c @@ -0,0 +1,168 @@ +/* ev-file-monitor.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <glib.h> +#include <gio/gio.h> + +#include "ev-file-monitor.h" + +enum { + CHANGED, + N_SIGNALS +}; + +struct _EvFileMonitorPrivate { + GFileMonitor *monitor; + + guint timeout_id; +}; + +static void ev_file_monitor_timeout_start (EvFileMonitor *ev_monitor); +static void ev_file_monitor_timeout_stop (EvFileMonitor *ev_monitor); +static void ev_file_monitor_changed_cb (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + EvFileMonitor *ev_monitor); + +#define EV_FILE_MONITOR_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_FILE_MONITOR, EvFileMonitorPrivate)) + +G_DEFINE_TYPE (EvFileMonitor, ev_file_monitor, G_TYPE_OBJECT) + +static guint signals[N_SIGNALS]; + +static void +ev_file_monitor_init (EvFileMonitor *ev_monitor) +{ + ev_monitor->priv = EV_FILE_MONITOR_GET_PRIVATE (ev_monitor); +} + +static void +ev_file_monitor_finalize (GObject *object) +{ + EvFileMonitor *ev_monitor = EV_FILE_MONITOR (object); + + ev_file_monitor_timeout_stop (ev_monitor); + + if (ev_monitor->priv->monitor) { + g_signal_handlers_disconnect_by_func (ev_monitor->priv->monitor, + ev_file_monitor_changed_cb, + ev_monitor); + g_object_unref (ev_monitor->priv->monitor); + ev_monitor->priv->monitor = NULL; + } + + G_OBJECT_CLASS (ev_file_monitor_parent_class)->finalize (object); +} + +static void +ev_file_monitor_class_init (EvFileMonitorClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (g_object_class, sizeof (EvFileMonitorPrivate)); + + g_object_class->finalize = ev_file_monitor_finalize; + + /* Signals */ + signals[CHANGED] = + g_signal_new ("changed", + EV_TYPE_FILE_MONITOR, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvFileMonitorClass, changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +static gboolean +timeout_cb (EvFileMonitor *ev_monitor) +{ + g_signal_emit (ev_monitor, signals[CHANGED], 0); + + ev_monitor->priv->timeout_id = 0; + return FALSE; +} + +static void +ev_file_monitor_timeout_start (EvFileMonitor *ev_monitor) +{ + ev_file_monitor_timeout_stop (ev_monitor); + + ev_monitor->priv->timeout_id = + g_timeout_add_seconds (5, (GSourceFunc)timeout_cb, ev_monitor); +} + +static void +ev_file_monitor_timeout_stop (EvFileMonitor *ev_monitor) +{ + if (ev_monitor->priv->timeout_id > 0) { + g_source_remove (ev_monitor->priv->timeout_id); + ev_monitor->priv->timeout_id = 0; + } +} + +static void +ev_file_monitor_changed_cb (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + EvFileMonitor *ev_monitor) +{ + switch (event_type) { + case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: + ev_file_monitor_timeout_stop (ev_monitor); + g_signal_emit (ev_monitor, signals[CHANGED], 0); + + break; + case G_FILE_MONITOR_EVENT_CHANGED: + ev_file_monitor_timeout_start (ev_monitor); + break; + default: + break; + } +} + +EvFileMonitor * +ev_file_monitor_new (const gchar *uri) +{ + EvFileMonitor *ev_monitor; + GFile *file; + GError *error = NULL; + + ev_monitor = EV_FILE_MONITOR (g_object_new (EV_TYPE_FILE_MONITOR, NULL)); + + file = g_file_new_for_uri (uri); + ev_monitor->priv->monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, &error); + if (ev_monitor->priv->monitor) { + g_signal_connect (ev_monitor->priv->monitor, "changed", + G_CALLBACK (ev_file_monitor_changed_cb), ev_monitor); + } else if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } + + g_object_unref (file); + + return ev_monitor; +} diff --git a/shell/ev-file-monitor.h b/shell/ev-file-monitor.h new file mode 100644 index 00000000..6656671f --- /dev/null +++ b/shell/ev-file-monitor.h @@ -0,0 +1,57 @@ +/* ev-file-monitor.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_FILE_MONITOR_H +#define EV_FILE_MONITOR_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _EvFileMonitor EvFileMonitor; +typedef struct _EvFileMonitorClass EvFileMonitorClass; +typedef struct _EvFileMonitorPrivate EvFileMonitorPrivate; + +#define EV_TYPE_FILE_MONITOR (ev_file_monitor_get_type()) +#define EV_FILE_MONITOR(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FILE_MONITOR, EvFileMonitor)) +#define EV_FILE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FILE_MONITOR, EvFileMonitorClass)) +#define EV_IS_FILE_MONITOR(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FILE_MONITOR)) +#define EV_IS_FILE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FILE_MONITOR)) +#define EV_FILE_MONITOR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FILE_MONITOR, EvFileMonitorClass)) + +struct _EvFileMonitor { + GObject base_instance; + + EvFileMonitorPrivate *priv; +}; + +struct _EvFileMonitorClass { + GObjectClass base_class; + + /* Signals */ + void (*changed) (EvFileMonitor *ev_monitor); +}; + +GType ev_file_monitor_get_type (void) G_GNUC_CONST; +EvFileMonitor *ev_file_monitor_new (const gchar *uri); + +G_END_DECLS + +#endif /* EV_FILE_MONITOR_H */ diff --git a/shell/ev-history.c b/shell/ev-history.c new file mode 100644 index 00000000..9b59014c --- /dev/null +++ b/shell/ev-history.c @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2005 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include <glib/gi18n.h> +#include <string.h> + +#include "ev-history.h" + + +enum +{ + HISTORY_CHANGED, + N_SIGNALS +}; + +static guint signals[N_SIGNALS] = {0, }; + +struct _EvHistoryPrivate +{ + GList *links; +}; + +static void ev_history_init (EvHistory *history); +static void ev_history_class_init (EvHistoryClass *class); + +G_DEFINE_TYPE (EvHistory, ev_history, G_TYPE_OBJECT) + +#define EV_HISTORY_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_HISTORY, EvHistoryPrivate)) + +static void +ev_history_init (EvHistory *history) +{ + history->priv = EV_HISTORY_GET_PRIVATE (history); + + history->priv->links = NULL; +} + +static void +free_links_list (GList *l) +{ + g_list_foreach (l, (GFunc)g_object_unref, NULL); + g_list_free (l); +} + +static void +ev_history_finalize (GObject *object) +{ + EvHistory *history = EV_HISTORY (object); + + free_links_list (history->priv->links); + + G_OBJECT_CLASS (ev_history_parent_class)->finalize (object); +} + +static void +ev_history_class_init (EvHistoryClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->finalize = ev_history_finalize; + + signals[HISTORY_CHANGED] = + g_signal_new ("changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvHistoryClass, changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + g_type_class_add_private (object_class, sizeof (EvHistoryPrivate)); +} + +#define HISTORY_LENGTH 7 + +void +ev_history_add_link (EvHistory *history, EvLink *link) +{ + GList *l; + + g_return_if_fail (EV_IS_HISTORY (history)); + g_return_if_fail (EV_IS_LINK (link)); + + for (l = history->priv->links; l; l = l->next) { + if (!strcmp (ev_link_get_title (EV_LINK (l->data)), ev_link_get_title (link))) { + g_object_unref (G_OBJECT (l->data)); + history->priv->links = g_list_delete_link (history->priv->links, l); + break; + } + } + + g_object_ref (link); + history->priv->links = g_list_append (history->priv->links, + link); + + if (g_list_length (history->priv->links) > HISTORY_LENGTH) { + g_object_unref (G_OBJECT (history->priv->links->data)); + history->priv->links = g_list_delete_link (history->priv->links, + history->priv->links); + } + + g_signal_emit (history, signals[HISTORY_CHANGED], 0); +} + +EvLink * +ev_history_get_link_nth (EvHistory *history, int index) +{ + GList *l; + + g_return_val_if_fail (EV_IS_HISTORY (history), NULL); + + l = g_list_nth (history->priv->links, index); + + return EV_LINK (l->data); +} + +int +ev_history_get_n_links (EvHistory *history) +{ + g_return_val_if_fail (EV_IS_HISTORY (history), -1); + + return g_list_length (history->priv->links); +} + +EvHistory * +ev_history_new (void) +{ + return EV_HISTORY (g_object_new (EV_TYPE_HISTORY, NULL)); +} + diff --git a/shell/ev-history.h b/shell/ev-history.h new file mode 100644 index 00000000..d8bb53f5 --- /dev/null +++ b/shell/ev-history.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2005 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.. + * + */ + +#ifndef EV_HISTORY_H +#define EV_HISTORY_H + +#include <glib-object.h> + +#include "ev-link.h" + +G_BEGIN_DECLS + +#define EV_TYPE_HISTORY (ev_history_get_type ()) +#define EV_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_HISTORY, EvHistory)) +#define EV_HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_HISTORY, EvHistoryClass)) +#define EV_IS_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_HISTORY)) +#define EV_IS_HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EV_TYPE_HISTORY)) +#define EV_HISTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EV_TYPE_HISTORY, EvHistoryClass)) + +typedef struct _EvHistory EvHistory; +typedef struct _EvHistoryPrivate EvHistoryPrivate; +typedef struct _EvHistoryClass EvHistoryClass; + +struct _EvHistory +{ + GObject parent; + + /*< private >*/ + EvHistoryPrivate *priv; +}; + +struct _EvHistoryClass +{ + GObjectClass parent_class; + + void (*changed) (EvHistory *history); +}; + +GType ev_history_get_type (void); +EvHistory *ev_history_new (void); +void ev_history_add_link (EvHistory *history, + EvLink *linkk); +EvLink *ev_history_get_link_nth (EvHistory *history, + int index); +int ev_history_get_n_links (EvHistory *history); + +G_END_DECLS + +#endif diff --git a/shell/ev-keyring.c b/shell/ev-keyring.c new file mode 100644 index 00000000..f7d935f0 --- /dev/null +++ b/shell/ev-keyring.c @@ -0,0 +1,116 @@ +/* ev-keyring.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <glib/gi18n.h> + +#include "ev-keyring.h" + +#ifdef WITH_KEYRING +#include <mate-keyring.h> + +static const MateKeyringPasswordSchema doc_password_schema = { + MATE_KEYRING_ITEM_GENERIC_SECRET, + { + { "type", MATE_KEYRING_ATTRIBUTE_TYPE_STRING }, + { "uri", MATE_KEYRING_ATTRIBUTE_TYPE_STRING }, + { NULL, 0 } + } +}; +const MateKeyringPasswordSchema *EV_DOCUMENT_PASSWORD_SCHEMA = &doc_password_schema; +#endif /* WITH_KEYRING */ + +gboolean +ev_keyring_is_available (void) +{ +#ifdef WITH_KEYRING + return mate_keyring_is_available (); +#else + return FALSE; +#endif +} + +gchar * +ev_keyring_lookup_password (const gchar *uri) +{ + gchar *retval = NULL; +#ifdef WITH_KEYRING + MateKeyringResult result; + gchar *password = NULL; + + g_return_val_if_fail (uri != NULL, NULL); + + if (!mate_keyring_is_available ()) + return NULL; + + result = mate_keyring_find_password_sync (EV_DOCUMENT_PASSWORD_SCHEMA, + &password, + "type", "document_password", + "uri", uri, + NULL); + if (result != MATE_KEYRING_RESULT_OK || !password) { + if (password) + mate_keyring_free_password (password); + return NULL; + } + + retval = g_strdup (password); + mate_keyring_free_password (password); +#endif /* WITH_KEYRING */ + return retval; +} + +gboolean +ev_keyring_save_password (const gchar *uri, + const gchar *password, + GPasswordSave flags) +{ +#ifdef WITH_KEYRING + MateKeyringResult result; + const gchar *keyring; + gchar *name; + gchar *unescaped_uri; + + g_return_val_if_fail (uri != NULL, FALSE); + + if (!mate_keyring_is_available ()) + return FALSE; + + if (flags == G_PASSWORD_SAVE_NEVER) + return FALSE; + + keyring = (flags == G_PASSWORD_SAVE_FOR_SESSION) ? "session" : NULL; + unescaped_uri = g_uri_unescape_string (uri, NULL); + name = g_strdup_printf (_("Password for document %s"), unescaped_uri); + g_free (unescaped_uri); + + result = mate_keyring_store_password_sync (EV_DOCUMENT_PASSWORD_SCHEMA, + keyring, name, password, + "type", "document_password", + "uri", uri, + NULL); + g_free (name); + + return (result == MATE_KEYRING_RESULT_OK); +#else + return FALSE; +#endif /* WITH_KEYRING */ +} diff --git a/shell/ev-keyring.h b/shell/ev-keyring.h new file mode 100644 index 00000000..d1cc5226 --- /dev/null +++ b/shell/ev-keyring.h @@ -0,0 +1,37 @@ +/* ev-keyring.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_KEYRING_H__ +#define __EV_KEYRING_H__ + +#include <glib.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + +gboolean ev_keyring_is_available (void); +gchar *ev_keyring_lookup_password (const gchar *uri); +gboolean ev_keyring_save_password (const gchar *uri, + const gchar *password, + GPasswordSave flags); + +G_END_DECLS + +#endif /* __EV_KEYRING_H__ */ diff --git a/shell/ev-marshal.list b/shell/ev-marshal.list new file mode 100644 index 00000000..72f99379 --- /dev/null +++ b/shell/ev-marshal.list @@ -0,0 +1 @@ +VOID:STRING,STRING diff --git a/shell/ev-media-player-keys.c b/shell/ev-media-player-keys.c new file mode 100644 index 00000000..f3237873 --- /dev/null +++ b/shell/ev-media-player-keys.c @@ -0,0 +1,233 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2007 Jan Arne Petersen <jap@gnome.org> + * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> + * Copyright Ā© 2010 Christian Persch + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include "config.h" + +#include "ev-media-player-keys.h" + +#include <string.h> +#include <glib.h> +#include <gio/gio.h> + +#define SD_NAME "org.mate.SettingsDaemon" +#define SD_OBJECT_PATH "/org/mate/SettingsDaemon/MediaKeys" +#define SD_INTERFACE "org.mate.SettingsDaemon.MediaKeys" + +enum { + KEY_PRESSED, + LAST_SIGNAL +}; + +struct _EvMediaPlayerKeys +{ + GObject parent; + + GDBusProxy *proxy; + gboolean has_name_owner; +}; + +struct _EvMediaPlayerKeysClass +{ + GObjectClass parent_class; + + /* Signals */ + void (* key_pressed) (EvMediaPlayerKeys *keys, + const gchar *key); +}; + +static guint signals[LAST_SIGNAL]; + +G_DEFINE_TYPE (EvMediaPlayerKeys, ev_media_player_keys, G_TYPE_OBJECT) + +static void ev_media_player_keys_finalize (GObject *object); + +static void +ev_media_player_keys_class_init (EvMediaPlayerKeysClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_media_player_keys_finalize; + + signals[KEY_PRESSED] = + g_signal_new ("key_pressed", + EV_TYPE_MEDIA_PLAYER_KEYS, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvMediaPlayerKeysClass, key_pressed), + NULL, NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, G_TYPE_STRING); +} + +static void +ev_media_player_keys_update_has_name_owner (EvMediaPlayerKeys *keys) +{ + gchar *name_owner; + + if (!keys->proxy) { + keys->has_name_owner = FALSE; + return; + } + + name_owner = g_dbus_proxy_get_name_owner (keys->proxy); + keys->has_name_owner = (name_owner != NULL); + g_free (name_owner); +} + +static void +ev_media_player_keys_grab_keys (EvMediaPlayerKeys *keys) +{ + if (!keys->has_name_owner) + return; + + /* + * The uint as second argument is time. We give a very low value so that + * if a media player is there it gets higher priority on the keys (0 is + * a special value having maximum priority). + */ + g_dbus_proxy_call (keys->proxy, + "GrabMediaPlayerKeys", + g_variant_new ("(su)", "Evince", 1), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, NULL, NULL); +} + +static void +ev_media_player_keys_release_keys (EvMediaPlayerKeys *keys) +{ + if (!keys->has_name_owner) + return; + + g_dbus_proxy_call (keys->proxy, + "ReleaseMediaPlayerKeys", + g_variant_new ("(s)", "Evince"), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, NULL, NULL); +} + +static void +media_player_key_pressed_cb (GDBusProxy *proxy, + gchar *sender_name, + gchar *signal_name, + GVariant *parameters, + gpointer user_data) +{ + const char *application, *key; + + if (g_strcmp0 (sender_name, SD_NAME) != 0) + return; + + if (g_strcmp0 (signal_name, "MediaPlayerKeyPressed") != 0) + return; + + if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(ss)"))) + return; + + g_variant_get (parameters, "(&s&s)", &application, &key); + + if (strcmp ("Evince", application) == 0) { + g_signal_emit (user_data, signals[KEY_PRESSED], 0, key); + } +} + +static void +mediakeys_name_owner_changed (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ + EvMediaPlayerKeys *keys = EV_MEDIA_PLAYER_KEYS (user_data); + + ev_media_player_keys_update_has_name_owner (keys); +} + +static void +mediakeys_service_appeared_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + EvMediaPlayerKeys *keys = EV_MEDIA_PLAYER_KEYS (user_data); + GDBusProxy *proxy; + + proxy = g_dbus_proxy_new_for_bus_finish (res, NULL); + + if (proxy == NULL) { + return; + } + + g_signal_connect (proxy, "g-signal", + G_CALLBACK (media_player_key_pressed_cb), + keys); + g_signal_connect (proxy, "notify::g-name-owner", + G_CALLBACK (mediakeys_name_owner_changed), + keys); + + keys->proxy = proxy; + ev_media_player_keys_update_has_name_owner (keys); + ev_media_player_keys_grab_keys (keys); +} + +static void +ev_media_player_keys_init (EvMediaPlayerKeys *keys) +{ + g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, + SD_NAME, + SD_OBJECT_PATH, + SD_INTERFACE, + NULL, + mediakeys_service_appeared_cb, + keys); +} + +void +ev_media_player_keys_focused (EvMediaPlayerKeys *keys) +{ + if (keys->proxy == NULL) + return; + + ev_media_player_keys_grab_keys (keys); +} + +static void +ev_media_player_keys_finalize (GObject *object) +{ + EvMediaPlayerKeys *keys = EV_MEDIA_PLAYER_KEYS (object); + + if (keys->proxy != NULL) { + ev_media_player_keys_release_keys (keys); + g_object_unref (keys->proxy); + keys->proxy = NULL; + keys->has_name_owner = FALSE; + } + + G_OBJECT_CLASS (ev_media_player_keys_parent_class)->finalize (object); +} + +EvMediaPlayerKeys * +ev_media_player_keys_new (void) +{ + return g_object_new (EV_TYPE_MEDIA_PLAYER_KEYS, NULL); +} + diff --git a/shell/ev-media-player-keys.h b/shell/ev-media-player-keys.h new file mode 100644 index 00000000..8e2d62be --- /dev/null +++ b/shell/ev-media-player-keys.h @@ -0,0 +1,49 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2007 Jan Arne Petersen <jap@gnome.org> + * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#ifndef EV_MEDIA_PLAYER_KEYS_H +#define EV_MEDIA_PLAYER_KEYS_H + +#include <glib-object.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + +#define EV_TYPE_MEDIA_PLAYER_KEYS (ev_media_player_keys_get_type ()) +#define EV_MEDIA_PLAYER_KEYS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_MEDIA_PLAYER_KEYS, EvMediaPlayerKeys)) +#define EV_MEDIA_PLAYER_KEYS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_MEDIA_PLAYER_KEYS, EvMediaPlayerKeysClass)) +#define EV_IS_MEDIA_PLAYER_KEYS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_MEDIA_PLAYER_KEYS)) +#define EV_IS_MEDIA_PLAYER_KEYS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_MEDIA_PLAYER_KEYS)) +#define EV_MEDIA_PLAYER_KEYS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EV_TYPE_MEDIA_PLAYER_KEYS, EvMediaPlayerKeysClass)) + +typedef struct _EvMediaPlayerKeys EvMediaPlayerKeys; +typedef struct _EvMediaPlayerKeysClass EvMediaPlayerKeysClass; + + +GType ev_media_player_keys_get_type (void) G_GNUC_CONST; + +EvMediaPlayerKeys *ev_media_player_keys_new (void); + +void ev_media_player_keys_focused (EvMediaPlayerKeys *keys); + +G_END_DECLS + +#endif /* !EV_MEDIA_PLAYER_KEYS_H */ diff --git a/shell/ev-message-area.c b/shell/ev-message-area.c new file mode 100644 index 00000000..3530f4a4 --- /dev/null +++ b/shell/ev-message-area.c @@ -0,0 +1,354 @@ +/* ev-message-area.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos + * + * Author: + * Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include "ev-message-area.h" + +#define EV_MESSAGE_AREA_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_MESSAGE_AREA, EvMessageAreaPrivate)) + +struct _EvMessageAreaPrivate { + GtkWidget *main_box; + GtkWidget *image; + GtkWidget *label; + GtkWidget *secondary_label; + + guint message_type : 3; +}; + +enum { + PROP_0, + PROP_TEXT, + PROP_SECONDARY_TEXT, + PROP_IMAGE +}; + +static void ev_message_area_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void ev_message_area_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +G_DEFINE_TYPE (EvMessageArea, ev_message_area, GTK_TYPE_INFO_BAR) + +static void +ev_message_area_class_init (EvMessageAreaClass *class) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + gobject_class->set_property = ev_message_area_set_property; + gobject_class->get_property = ev_message_area_get_property; + + g_object_class_install_property (gobject_class, + PROP_TEXT, + g_param_spec_string ("text", + "Text", + "The primary text of the message dialog", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_SECONDARY_TEXT, + g_param_spec_string ("secondary-text", + "Secondary Text", + "The secondary text of the message dialog", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_IMAGE, + g_param_spec_object ("image", + "Image", + "The image", + GTK_TYPE_WIDGET, + G_PARAM_READWRITE)); + + g_type_class_add_private (gobject_class, sizeof (EvMessageAreaPrivate)); +} + +static void +ev_message_area_init (EvMessageArea *area) +{ + GtkWidget *hbox, *vbox; + GtkWidget *content_area; + + area->priv = EV_MESSAGE_AREA_GET_PRIVATE (area); + + area->priv->main_box = gtk_vbox_new (FALSE, 12); + + hbox = gtk_hbox_new (FALSE, 12); + vbox = gtk_vbox_new (FALSE, 12); + + area->priv->label = gtk_label_new (NULL); + gtk_label_set_use_markup (GTK_LABEL (area->priv->label), TRUE); + gtk_label_set_line_wrap (GTK_LABEL (area->priv->label), TRUE); + gtk_label_set_selectable (GTK_LABEL (area->priv->label), TRUE); + gtk_misc_set_alignment (GTK_MISC (area->priv->label), 0.0, 0.5); + gtk_widget_set_can_focus (area->priv->label, TRUE); + gtk_box_pack_start (GTK_BOX (vbox), area->priv->label, TRUE, TRUE, 0); + gtk_widget_show (area->priv->label); + + area->priv->secondary_label = gtk_label_new (NULL); + gtk_label_set_use_markup (GTK_LABEL (area->priv->secondary_label), TRUE); + gtk_label_set_line_wrap (GTK_LABEL (area->priv->secondary_label), TRUE); + gtk_label_set_selectable (GTK_LABEL (area->priv->secondary_label), TRUE); + gtk_misc_set_alignment (GTK_MISC (area->priv->secondary_label), 0.0, 0.5); + gtk_widget_set_can_focus (area->priv->secondary_label, TRUE); + gtk_box_pack_start (GTK_BOX (vbox), area->priv->secondary_label, TRUE, TRUE, 0); + + area->priv->image = gtk_image_new_from_stock (NULL, GTK_ICON_SIZE_DIALOG); + gtk_misc_set_alignment (GTK_MISC (area->priv->image), 0.5, 0.0); + gtk_box_pack_start (GTK_BOX (hbox), area->priv->image, FALSE, FALSE, 0); + gtk_widget_show (area->priv->image); + + gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); + gtk_widget_show (vbox); + + gtk_box_pack_start (GTK_BOX (area->priv->main_box), hbox, TRUE, TRUE, 0); + gtk_widget_show (hbox); + + content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (area)); + gtk_container_add (GTK_CONTAINER (content_area), area->priv->main_box); + gtk_widget_show (area->priv->main_box); +} + +static void +ev_message_area_set_image_for_type (EvMessageArea *area, + GtkMessageType type) +{ + const gchar *stock_id = NULL; + AtkObject *atk_obj; + + switch (type) { + case GTK_MESSAGE_INFO: + stock_id = GTK_STOCK_DIALOG_INFO; + break; + case GTK_MESSAGE_QUESTION: + stock_id = GTK_STOCK_DIALOG_QUESTION; + break; + case GTK_MESSAGE_WARNING: + stock_id = GTK_STOCK_DIALOG_WARNING; + break; + case GTK_MESSAGE_ERROR: + stock_id = GTK_STOCK_DIALOG_ERROR; + break; + case GTK_MESSAGE_OTHER: + break; + default: + g_warning ("Unknown GtkMessageType %u", type); + break; + } + + if (stock_id) + gtk_image_set_from_stock (GTK_IMAGE (area->priv->image), stock_id, + GTK_ICON_SIZE_DIALOG); + + atk_obj = gtk_widget_get_accessible (GTK_WIDGET (area)); + if (GTK_IS_ACCESSIBLE (atk_obj)) { + atk_object_set_role (atk_obj, ATK_ROLE_ALERT); + if (stock_id) { + GtkStockItem item; + + gtk_stock_lookup (stock_id, &item); + atk_object_set_name (atk_obj, item.label); + } + } +} + +static void +ev_message_area_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvMessageArea *area = EV_MESSAGE_AREA (object); + + switch (prop_id) { + case PROP_TEXT: + ev_message_area_set_text (area, g_value_get_string (value)); + break; + case PROP_SECONDARY_TEXT: + ev_message_area_set_secondary_text (area, g_value_get_string (value)); + break; + case PROP_IMAGE: + ev_message_area_set_image (area, (GtkWidget *)g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_message_area_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvMessageArea *area = EV_MESSAGE_AREA (object); + + switch (prop_id) { + case PROP_TEXT: + g_value_set_string (value, gtk_label_get_label (GTK_LABEL (area->priv->label))); + break; + case PROP_SECONDARY_TEXT: + g_value_set_string (value, gtk_label_get_label (GTK_LABEL (area->priv->secondary_label))); + break; + case PROP_IMAGE: + g_value_set_object (value, area->priv->image); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +void +_ev_message_area_add_buttons_valist (EvMessageArea *area, + const gchar *first_button_text, + va_list args) +{ + const gchar* text; + gint response_id; + + if (first_button_text == NULL) + return; + + text = first_button_text; + response_id = va_arg (args, gint); + + while (text != NULL) { + gtk_info_bar_add_button (GTK_INFO_BAR (area), text, response_id); + + text = va_arg (args, gchar*); + if (text == NULL) + break; + + response_id = va_arg (args, int); + } +} + +GtkWidget * +_ev_message_area_get_main_box (EvMessageArea *area) +{ + return area->priv->main_box; +} + +GtkWidget * +ev_message_area_new (GtkMessageType type, + const gchar *text, + const gchar *first_button_text, + ...) +{ + GtkWidget *widget; + + widget = g_object_new (EV_TYPE_MESSAGE_AREA, + "message-type", type, + "text", text, + NULL); + ev_message_area_set_image_for_type (EV_MESSAGE_AREA (widget), type); + if (first_button_text) { + va_list args; + + va_start (args, first_button_text); + _ev_message_area_add_buttons_valist (EV_MESSAGE_AREA (widget), + first_button_text, args); + va_end (args); + } + + return widget; +} + +void +ev_message_area_set_image (EvMessageArea *area, + GtkWidget *image) +{ + GtkWidget *parent; + + g_return_if_fail (EV_IS_MESSAGE_AREA (area)); + + area->priv->message_type = GTK_MESSAGE_OTHER; + + parent = gtk_widget_get_parent (area->priv->image); + gtk_container_add (GTK_CONTAINER (parent), image); + gtk_container_remove (GTK_CONTAINER (parent), area->priv->image); + gtk_box_reorder_child (GTK_BOX (parent), image, 0); + + area->priv->image = image; + + g_object_notify (G_OBJECT (area), "image"); +} + +void +ev_message_area_set_image_from_stock (EvMessageArea *area, + const gchar *stock_id) +{ + g_return_if_fail (EV_IS_MESSAGE_AREA (area)); + g_return_if_fail (stock_id != NULL); + + gtk_image_set_from_stock (GTK_IMAGE (area->priv->image), + stock_id, + GTK_ICON_SIZE_DIALOG); +} + +void +ev_message_area_set_text (EvMessageArea *area, + const gchar *str) +{ + g_return_if_fail (EV_IS_MESSAGE_AREA (area)); + + if (str) { + gchar *msg; + + msg = g_strdup_printf ("<b>%s</b>", str); + gtk_label_set_markup (GTK_LABEL (area->priv->label), msg); + g_free (msg); + } else { + gtk_label_set_markup (GTK_LABEL (area->priv->label), NULL); + } + + g_object_notify (G_OBJECT (area), "text"); +} + +void +ev_message_area_set_secondary_text (EvMessageArea *area, + const gchar *str) +{ + g_return_if_fail (EV_IS_MESSAGE_AREA (area)); + + if (str) { + gchar *msg; + + msg = g_strdup_printf ("<small>%s</small>", str); + gtk_label_set_markup (GTK_LABEL (area->priv->secondary_label), msg); + g_free (msg); + gtk_widget_show (area->priv->secondary_label); + } else { + gtk_label_set_markup (GTK_LABEL (area->priv->secondary_label), NULL); + gtk_widget_hide (area->priv->secondary_label); + } + + g_object_notify (G_OBJECT (area), "secondary-text"); +} diff --git a/shell/ev-message-area.h b/shell/ev-message-area.h new file mode 100644 index 00000000..0fc7dd8c --- /dev/null +++ b/shell/ev-message-area.h @@ -0,0 +1,74 @@ +/* ev-message-area.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2007 Carlos Garcia Campos + * + * Author: + * Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_MESSAGE_AREA_H +#define EV_MESSAGE_AREA_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EV_TYPE_MESSAGE_AREA (ev_message_area_get_type ()) +#define EV_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_MESSAGE_AREA, EvMessageArea)) +#define EV_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_MESSAGE_AREA, EvMessageAreaClass)) +#define EV_IS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_MESSAGE_AREA)) +#define EV_IS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_MESSAGE_AREA)) +#define EV_MESSAGE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_MESSAGE_AREA, EvMessageAreaClass)) + +typedef struct _EvMessageArea EvMessageArea; +typedef struct _EvMessageAreaClass EvMessageAreaClass; +typedef struct _EvMessageAreaPrivate EvMessageAreaPrivate; + +struct _EvMessageArea { + GtkInfoBar parent_instance; + + /*< private >*/ + EvMessageAreaPrivate *priv; +}; + +struct _EvMessageAreaClass { + GtkInfoBarClass parent_class; +}; + +GType ev_message_area_get_type (void) G_GNUC_CONST; +GtkWidget *ev_message_area_new (GtkMessageType type, + const gchar *text, + const gchar *first_button_text, + ...); +void ev_message_area_set_image (EvMessageArea *area, + GtkWidget *image); +void ev_message_area_set_image_from_stock (EvMessageArea *area, + const gchar *stock_id); +void ev_message_area_set_text (EvMessageArea *area, + const gchar *str); +void ev_message_area_set_secondary_text (EvMessageArea *area, + const gchar *str); + +void _ev_message_area_add_buttons_valist (EvMessageArea *area, + const gchar *first_button_text, + va_list args); +GtkWidget *_ev_message_area_get_main_box (EvMessageArea *area); + +G_END_DECLS + +#endif /* EV_MESSAGE_AREA_H */ diff --git a/shell/ev-metadata.c b/shell/ev-metadata.c new file mode 100644 index 00000000..9056b2fd --- /dev/null +++ b/shell/ev-metadata.c @@ -0,0 +1,313 @@ +/* ev-metadata.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <gio/gio.h> +#include <string.h> + +#include "ev-metadata.h" + +struct _EvMetadata { + GObject base; + + GFile *file; + GHashTable *items; +}; + +struct _EvMetadataClass { + GObjectClass base_class; +}; + +G_DEFINE_TYPE (EvMetadata, ev_metadata, G_TYPE_OBJECT) + +#define EV_METADATA_NAMESPACE "metadata::evince" + +static void +ev_metadata_finalize (GObject *object) +{ + EvMetadata *metadata = EV_METADATA (object); + + if (metadata->items) { + g_hash_table_destroy (metadata->items); + metadata->items = NULL; + } + + if (metadata->file) { + g_object_unref (metadata->file); + metadata->file = NULL; + } + + G_OBJECT_CLASS (ev_metadata_parent_class)->finalize (object); +} + +static void +ev_metadata_init (EvMetadata *metadata) +{ + metadata->items = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + g_free); +} + +static void +ev_metadata_class_init (EvMetadataClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = ev_metadata_finalize; +} + +static void +ev_metadata_load (EvMetadata *metadata) +{ + GFileInfo *info; + gchar **attrs; + gint i; + GError *error = NULL; + + info = g_file_query_info (metadata->file, "metadata::*", 0, NULL, &error); + if (!info) { + g_warning ("%s", error->message); + g_error_free (error); + + return; + } + + if (!g_file_info_has_namespace (info, "metadata")) { + g_object_unref (info); + + return; + } + + attrs = g_file_info_list_attributes (info, "metadata"); + for (i = 0; attrs[i]; i++) { + GFileAttributeType type; + gpointer value; + const gchar *key; + + if (!g_str_has_prefix (attrs[i], EV_METADATA_NAMESPACE)) + continue; + + if (!g_file_info_get_attribute_data (info, attrs[i], + &type, &value, NULL)) { + continue; + } + + key = attrs[i] + strlen (EV_METADATA_NAMESPACE"::"); + + if (type == G_FILE_ATTRIBUTE_TYPE_STRING) { + g_hash_table_insert (metadata->items, + g_strdup (key), + g_strdup (value)); + } + } + g_strfreev (attrs); + g_object_unref (info); +} + +EvMetadata * +ev_metadata_new (GFile *file) +{ + EvMetadata *metadata; + + g_return_val_if_fail (G_IS_FILE (file), NULL); + + metadata = EV_METADATA (g_object_new (EV_TYPE_METADATA, NULL)); + metadata->file = g_object_ref (file); + + ev_metadata_load (metadata); + + return metadata; +} + +gboolean +ev_metadata_is_empty (EvMetadata *metadata) +{ + return g_hash_table_size (metadata->items) == 0; +} + +gboolean +ev_metadata_get_string (EvMetadata *metadata, + const gchar *key, + gchar **value) +{ + gchar *v; + + v = g_hash_table_lookup (metadata->items, key); + if (!v) + return FALSE; + + *value = v; + return TRUE; +} + +static void +metadata_set_callback (GObject *file, + GAsyncResult *result, + EvMetadata *metadata) +{ + GError *error = NULL; + + if (!g_file_set_attributes_finish (G_FILE (file), result, NULL, &error)) { + g_warning ("%s", error->message); + g_error_free (error); + } +} + +gboolean +ev_metadata_set_string (EvMetadata *metadata, + const gchar *key, + const gchar *value) +{ + GFileInfo *info; + gchar *gio_key; + + info = g_file_info_new (); + + gio_key = g_strconcat (EV_METADATA_NAMESPACE"::", key, NULL); + if (value) { + g_file_info_set_attribute_string (info, gio_key, value); + } else { + g_file_info_set_attribute (info, gio_key, + G_FILE_ATTRIBUTE_TYPE_INVALID, + NULL); + } + g_free (gio_key); + + g_hash_table_insert (metadata->items, g_strdup (key), g_strdup (value)); + g_file_set_attributes_async (metadata->file, + info, + 0, + G_PRIORITY_DEFAULT, + NULL, + (GAsyncReadyCallback)metadata_set_callback, + metadata); + g_object_unref (info); + + return TRUE; +} + +gboolean +ev_metadata_get_int (EvMetadata *metadata, + const gchar *key, + gint *value) +{ + gchar *string_value; + gchar *endptr; + gint int_value; + + if (!ev_metadata_get_string (metadata, key, &string_value)) + return FALSE; + + int_value = g_ascii_strtoull (string_value, &endptr, 0); + if (int_value == 0 && string_value == endptr) + return FALSE; + + *value = int_value; + return TRUE; +} + +gboolean +ev_metadata_set_int (EvMetadata *metadata, + const gchar *key, + gint value) +{ + gchar string_value[32]; + + g_snprintf (string_value, sizeof (string_value), "%d", value); + + return ev_metadata_set_string (metadata, key, string_value); +} + +gboolean +ev_metadata_get_double (EvMetadata *metadata, + const gchar *key, + gdouble *value) +{ + gchar *string_value; + gchar *endptr; + gdouble double_value; + + if (!ev_metadata_get_string (metadata, key, &string_value)) + return FALSE; + + double_value = g_ascii_strtod (string_value, &endptr); + if (double_value == 0. && string_value == endptr) + return FALSE; + + *value = double_value; + return TRUE; +} + +gboolean +ev_metadata_set_double (EvMetadata *metadata, + const gchar *key, + gdouble value) +{ + gchar string_value[G_ASCII_DTOSTR_BUF_SIZE]; + + g_ascii_dtostr (string_value, G_ASCII_DTOSTR_BUF_SIZE, value); + + return ev_metadata_set_string (metadata, key, string_value); +} + +gboolean +ev_metadata_get_boolean (EvMetadata *metadata, + const gchar *key, + gboolean *value) +{ + gint int_value; + + if (!ev_metadata_get_int (metadata, key, &int_value)) + return FALSE; + + *value = int_value; + return TRUE; +} + +gboolean +ev_metadata_set_boolean (EvMetadata *metadata, + const gchar *key, + gboolean value) +{ + return ev_metadata_set_string (metadata, key, value ? "1" : "0"); +} + +gboolean +ev_is_metadata_supported_for_file (GFile *file) +{ + GFileAttributeInfoList *namespaces; + gint i; + gboolean retval = FALSE; + + namespaces = g_file_query_writable_namespaces (file, NULL, NULL); + if (!namespaces) + return retval; + + for (i = 0; i < namespaces->n_infos; i++) { + if (strcmp (namespaces->infos[i].name, "metadata") == 0) { + retval = TRUE; + break; + } + } + + g_file_attribute_info_list_unref (namespaces); + + return retval; +} diff --git a/shell/ev-metadata.h b/shell/ev-metadata.h new file mode 100644 index 00000000..69468c80 --- /dev/null +++ b/shell/ev-metadata.h @@ -0,0 +1,69 @@ +/* ev-metadata.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_METADATA_H +#define EV_METADATA_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_METADATA (ev_metadata_get_type()) +#define EV_METADATA(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_METADATA, EvMetadata)) +#define EV_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_METADATA, EvMetadataClass)) +#define EV_IS_METADATA(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_METADATA)) + +typedef struct _EvMetadata EvMetadata; +typedef struct _EvMetadataClass EvMetadataClass; + +GType ev_metadata_get_type (void) G_GNUC_CONST; +EvMetadata *ev_metadata_new (GFile *file); +gboolean ev_metadata_is_empty (EvMetadata *metadata); + +gboolean ev_metadata_get_string (EvMetadata *metadata, + const gchar *key, + gchar **value); +gboolean ev_metadata_set_string (EvMetadata *metadata, + const gchar *key, + const gchar *value); +gboolean ev_metadata_get_int (EvMetadata *metadata, + const gchar *key, + gint *value); +gboolean ev_metadata_set_int (EvMetadata *metadata, + const gchar *key, + gint value); +gboolean ev_metadata_get_double (EvMetadata *metadata, + const gchar *key, + gdouble *value); +gboolean ev_metadata_set_double (EvMetadata *metadata, + const gchar *key, + gdouble value); +gboolean ev_metadata_get_boolean (EvMetadata *metadata, + const gchar *key, + gboolean *value); +gboolean ev_metadata_set_boolean (EvMetadata *metadata, + const gchar *key, + gboolean value); + +gboolean ev_is_metadata_supported_for_file (GFile *file); + +G_END_DECLS + +#endif /* EV_METADATA_H */ diff --git a/shell/ev-navigation-action-widget.c b/shell/ev-navigation-action-widget.c new file mode 100644 index 00000000..95c7fdff --- /dev/null +++ b/shell/ev-navigation-action-widget.c @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "ev-navigation-action-widget.h" + +#include <glib/gi18n.h> +#include <string.h> + +static void ev_navigation_action_widget_init (EvNavigationActionWidget *action_widget); +static void ev_navigation_action_widget_class_init (EvNavigationActionWidgetClass *action_widget); +static void ev_navigation_action_widget_toggled (GtkToggleToolButton *toggle); +static gboolean ev_navigation_action_widget_button_press_event (GtkWidget *widget, + GdkEventButton *event, + gpointer data); + +G_DEFINE_TYPE (EvNavigationActionWidget, ev_navigation_action_widget, GTK_TYPE_TOGGLE_TOOL_BUTTON) + +enum +{ + SHOW_MENU, + LAST_SIGNAL +}; + +static gint signals[LAST_SIGNAL]; + +static void +ev_navigation_action_widget_init (EvNavigationActionWidget *action_widget) +{ + GtkWidget *toggle_button; + + /* It's rather dirty hack but we need a child to connect to + * button press event + */ + + toggle_button = gtk_bin_get_child (GTK_BIN (action_widget)); + + g_signal_connect (toggle_button, "button-press-event", + G_CALLBACK (ev_navigation_action_widget_button_press_event), + action_widget); + return; +} + +static void +ev_navigation_action_widget_class_init (EvNavigationActionWidgetClass *klass) +{ + GtkToggleToolButtonClass *toggle_tool_button_class = GTK_TOGGLE_TOOL_BUTTON_CLASS (klass); + + toggle_tool_button_class->toggled = ev_navigation_action_widget_toggled; + + signals[SHOW_MENU] = + g_signal_new ("show-menu", + G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EvNavigationActionWidgetClass, show_menu), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +static int +menu_deactivate_cb (GtkMenuShell *menu_shell, + EvNavigationActionWidget *widget) +{ + gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (widget), FALSE); + return TRUE; +} + +static void +menu_detacher (GtkWidget *widget, + GtkMenu *menu) +{ + EvNavigationActionWidget *button = EV_NAVIGATION_ACTION_WIDGET (widget); + g_return_if_fail (button->menu == menu); + button->menu = NULL; +} + +void +ev_navigation_action_widget_set_menu(EvNavigationActionWidget *button, GtkWidget *menu) +{ + + if (button->menu == GTK_MENU (menu)) + return; + + if (button->menu && gtk_widget_get_visible (GTK_WIDGET (button->menu))) + gtk_menu_shell_deactivate (GTK_MENU_SHELL (button->menu)); + + if (button->menu) { + g_signal_handlers_disconnect_by_func (button->menu, + menu_deactivate_cb, + button); + gtk_menu_detach (button->menu); + } + + button->menu = GTK_MENU (menu); + + if (button->menu) { + gtk_menu_attach_to_widget (button->menu, GTK_WIDGET (button), + menu_detacher); + g_signal_connect (button->menu, "deactivate", + G_CALLBACK (menu_deactivate_cb), button); + } +} + +static void +menu_position_func (GtkMenu *menu, + int *x, + int *y, + gboolean *push_in, + EvNavigationActionWidget *button) +{ + GtkWidget *widget = GTK_WIDGET (button); + GtkRequisition menu_req; + GtkAllocation allocation; + GtkTextDirection direction; + GdkWindow *gdk_window; + GdkRectangle monitor; + gint monitor_num; + GdkScreen *screen; + + gtk_widget_size_request (GTK_WIDGET (button->menu), &menu_req); + direction = gtk_widget_get_direction (widget); + screen = gtk_widget_get_screen (GTK_WIDGET (menu)); + + gdk_window = gtk_widget_get_window (widget); + monitor_num = gdk_screen_get_monitor_at_window (screen, gdk_window); + if (monitor_num < 0) + monitor_num = 0; + gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); + + gdk_window_get_origin (gdk_window, x, y); + gtk_widget_get_allocation (widget, &allocation); + *x += allocation.x; + *y += allocation.y; + + if (direction == GTK_TEXT_DIR_LTR) + *x += MAX (allocation.width - menu_req.width, 0); + else if (menu_req.width > allocation.width) + *x -= menu_req.width - allocation.width; + + if ((*y + allocation.height + menu_req.height) <= monitor.y + monitor.height) + *y += allocation.height; + else if ((*y - menu_req.height) >= monitor.y) + *y -= menu_req.height; + else if (monitor.y + monitor.height - (*y + allocation.height) > *y) + *y += allocation.height; + else + *y -= menu_req.height; + + *push_in = FALSE; +} + +static void +popup_menu_under_arrow (EvNavigationActionWidget *button, + GdkEventButton *event) +{ + g_signal_emit (button, signals[SHOW_MENU], 0); + + if (!button->menu) + return; + + gtk_menu_popup (button->menu, NULL, NULL, + (GtkMenuPositionFunc) menu_position_func, + button, + event ? event->button : 0, + event ? event->time : gtk_get_current_event_time ()); +} + +static void +ev_navigation_action_widget_toggled (GtkToggleToolButton *toggle) +{ + EvNavigationActionWidget *button = EV_NAVIGATION_ACTION_WIDGET (toggle); + if (!button->menu) + return; + + if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (button)) && + !gtk_widget_get_visible (GTK_WIDGET (button->menu))) { + /* we get here only when the menu is activated by a key + * press, so that we can select the first menu item */ + popup_menu_under_arrow (button, NULL); + gtk_menu_shell_select_first (GTK_MENU_SHELL (button->menu), FALSE); + } +} + +static gboolean +ev_navigation_action_widget_button_press_event (GtkWidget *widget, + GdkEventButton *event, + gpointer data) +{ + EvNavigationActionWidget *button = EV_NAVIGATION_ACTION_WIDGET (data); + + if (event->button == 1) { + popup_menu_under_arrow (button, event); + gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (button), TRUE); + return TRUE; + } + return FALSE; +} diff --git a/shell/ev-navigation-action-widget.h b/shell/ev-navigation-action-widget.h new file mode 100644 index 00000000..4241cd31 --- /dev/null +++ b/shell/ev-navigation-action-widget.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <gtk/gtk.h> + +#define EV_TYPE_NAVIGATION_ACTION_WIDGET (ev_navigation_action_widget_get_type ()) +#define EV_NAVIGATION_ACTION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_NAVIGATION_ACTION_WIDGET, EvNavigationActionWidget)) + +typedef struct _EvNavigationActionWidget EvNavigationActionWidget; +typedef struct _EvNavigationActionWidgetClass EvNavigationActionWidgetClass; + +struct _EvNavigationActionWidget +{ + GtkToggleToolButton parent; + + GtkMenu *menu; +}; + +struct _EvNavigationActionWidgetClass +{ + GtkToggleToolButtonClass parent_class; + + void (*show_menu) (EvNavigationActionWidget *widget); +}; + +GType ev_navigation_action_widget_get_type (void); + +void +ev_navigation_action_widget_set_menu(EvNavigationActionWidget *widget, GtkWidget *menu); diff --git a/shell/ev-navigation-action.c b/shell/ev-navigation-action.c new file mode 100644 index 00000000..b34c3789 --- /dev/null +++ b/shell/ev-navigation-action.c @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-navigation-action.h" +#include "ev-navigation-action-widget.h" + + +enum +{ + WIDGET_ACTIVATE_LINK, + WIDGET_N_SIGNALS +}; + +static guint widget_signals[WIDGET_N_SIGNALS] = {0, }; + +struct _EvNavigationActionPrivate +{ + EvHistory *history; +}; + +static void ev_navigation_action_init (EvNavigationAction *action); +static void ev_navigation_action_class_init (EvNavigationActionClass *class); + +G_DEFINE_TYPE (EvNavigationAction, ev_navigation_action, GTK_TYPE_ACTION) + +#define MAX_LABEL_LENGTH 48 + +#define EV_NAVIGATION_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_NAVIGATION_ACTION, EvNavigationActionPrivate)) + +static void +ev_navigation_action_history_changed (EvHistory *history, + gpointer data) +{ + EvNavigationAction *action = EV_NAVIGATION_ACTION (data); + + gtk_action_set_sensitive (GTK_ACTION (action), + ev_history_get_n_links (history) > 0); +} + +void +ev_navigation_action_set_history (EvNavigationAction *action, + EvHistory *history) +{ + action->priv->history = history; + + g_object_add_weak_pointer (G_OBJECT (action->priv->history), + (gpointer) &action->priv->history); + + g_signal_connect_object (history, "changed", + G_CALLBACK (ev_navigation_action_history_changed), + action, 0); +} + +static void +activate_menu_item_cb (GtkWidget *widget, EvNavigationAction *action) +{ + int index; + + g_return_if_fail (EV_IS_HISTORY (action->priv->history)); + + index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "index")); + + if (action->priv->history) { + EvLink *link; + + link = ev_history_get_link_nth (action->priv->history, index); + + g_signal_emit (action, widget_signals[WIDGET_ACTIVATE_LINK], 0, link); + } +} + +static GtkWidget * +new_history_menu_item (EvNavigationAction *action, + EvLink *link, + int index) +{ + GtkLabel *label; + GtkWidget *item; + const char *title; + + title = ev_link_get_title (link); + item = gtk_image_menu_item_new_with_label (title); + label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (item))); + gtk_label_set_use_markup (label, TRUE); + g_object_set_data (G_OBJECT (item), "index", + GINT_TO_POINTER (index)); + + gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END); + gtk_label_set_max_width_chars (label, MAX_LABEL_LENGTH); + + g_signal_connect (item, "activate", + G_CALLBACK (activate_menu_item_cb), + action); + + gtk_widget_show (item); + + return item; +} + +static GtkWidget * +build_menu (EvNavigationAction *action) +{ + GtkMenuShell *menu; + GtkWidget *item; + EvLink *link; + EvHistory *history = action->priv->history; + int start, end, i; + + if (history == NULL || ev_history_get_n_links (history) <= 0) { + return NULL; + } + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + start = 0; + end = ev_history_get_n_links (history); + + for (i = start; i < end; i++) { + link = ev_history_get_link_nth (history, i); + item = new_history_menu_item (action, link, i); + gtk_menu_shell_prepend (menu, item); + } + + return GTK_WIDGET (menu); +} + +static void +menu_activated_cb (EvNavigationActionWidget *button, + EvNavigationAction *action) +{ + GtkWidget *menu; + + menu = build_menu (action); + ev_navigation_action_widget_set_menu (button, menu); +} + +static void +connect_proxy (GtkAction *action, GtkWidget *proxy) +{ + GtkWidget *menu; + + if (GTK_IS_TOOL_ITEM (proxy)) { + /* set dummy menu so the arrow gets sensitive */ + menu = gtk_menu_new (); + ev_navigation_action_widget_set_menu (EV_NAVIGATION_ACTION_WIDGET (proxy), menu); + + g_signal_connect (proxy, "show-menu", + G_CALLBACK (menu_activated_cb), action); + } + + GTK_ACTION_CLASS (ev_navigation_action_parent_class)->connect_proxy (action, proxy); +} + +static GtkWidget * +create_tool_item (GtkAction *action) +{ + EvNavigationActionWidget *proxy; + + proxy = g_object_new (EV_TYPE_NAVIGATION_ACTION_WIDGET, NULL); + gtk_widget_show (GTK_WIDGET (proxy)); + + return GTK_WIDGET (proxy); +} + +static GtkWidget * +create_menu_item (GtkAction *action) +{ + GtkWidget *menu; + GtkWidget *menu_item; + + menu = build_menu (EV_NAVIGATION_ACTION (action)); + + menu_item = GTK_ACTION_CLASS (ev_navigation_action_parent_class)->create_menu_item (action); + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); + + gtk_widget_show (menu_item); + + return menu_item; +} + +static void +ev_navigation_action_init (EvNavigationAction *action) +{ + action->priv = EV_NAVIGATION_ACTION_GET_PRIVATE (action); +} + +static void +ev_navigation_action_finalize (GObject *object) +{ + EvNavigationAction *action = EV_NAVIGATION_ACTION (object); + + if (action->priv->history) { + g_object_remove_weak_pointer (G_OBJECT (action->priv->history), + (gpointer) &action->priv->history); + action->priv->history = NULL; + } + + G_OBJECT_CLASS (ev_navigation_action_parent_class)->finalize (object); +} + +static void +ev_navigation_action_class_init (EvNavigationActionClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkActionClass *action_class = GTK_ACTION_CLASS (class); + + object_class->finalize = ev_navigation_action_finalize; + + action_class->toolbar_item_type = GTK_TYPE_TOOL_ITEM; + action_class->create_tool_item = create_tool_item; + action_class->connect_proxy = connect_proxy; + action_class->create_menu_item = create_menu_item; + + widget_signals[WIDGET_ACTIVATE_LINK] = g_signal_new ("activate_link", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvNavigationActionClass, activate_link), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); + + g_type_class_add_private (object_class, sizeof (EvNavigationActionPrivate)); +} diff --git a/shell/ev-navigation-action.h b/shell/ev-navigation-action.h new file mode 100644 index 00000000..8089e4f4 --- /dev/null +++ b/shell/ev-navigation-action.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2003, 2004 Marco Pesenti Gritti + * Copyright (C) 2003, 2004 Christian Persch + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef EV_NAVIGATION_ACTION_H +#define EV_NAVIGATION_ACTION_H + +#include <gtk/gtk.h> + +#include "ev-history.h" +#include "ev-link.h" + +G_BEGIN_DECLS + +#define EV_TYPE_NAVIGATION_ACTION (ev_navigation_action_get_type ()) +#define EV_NAVIGATION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_NAVIGATION_ACTION, EvNavigationAction)) +#define EV_NAVIGATION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_NAVIGATION_ACTION, EvNavigationActionClass)) +#define EV_IS_NAVIGATION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_NAVIGATION_ACTION)) +#define EV_IS_NAVIGATION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EV_TYPE_NAVIGATION_ACTION)) +#define EV_NAVIGATION_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EV_TYPE_NAVIGATION_ACTION, EvNavigationActionClass)) + +typedef struct _EvNavigationAction EvNavigationAction; +typedef struct _EvNavigationActionPrivate EvNavigationActionPrivate; +typedef struct _EvNavigationActionClass EvNavigationActionClass; + +struct _EvNavigationAction +{ + GtkAction parent; + + /*< private >*/ + EvNavigationActionPrivate *priv; +}; + +struct _EvNavigationActionClass +{ + GtkActionClass parent_class; + + void (* activate_link) (EvNavigationAction *action, + EvLink *link); +}; + +GType ev_navigation_action_get_type (void); +void ev_navigation_action_set_history (EvNavigationAction *action, + EvHistory *history); + +G_END_DECLS + +#endif diff --git a/shell/ev-open-recent-action.c b/shell/ev-open-recent-action.c new file mode 100644 index 00000000..557e87a6 --- /dev/null +++ b/shell/ev-open-recent-action.c @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2007, Carlos Garcia Campos <carlosgc@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <config.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-open-recent-action.h" + + +enum { + ITEM_ACTIVATED, + N_SIGNALS +}; + +static void ev_open_recent_action_init (EvOpenRecentAction *action); +static void ev_open_recent_action_class_init (EvOpenRecentActionClass *class); + +static guint action_signals[N_SIGNALS]; + +G_DEFINE_TYPE (EvOpenRecentAction, ev_open_recent_action, GTK_TYPE_ACTION) + +static void +recent_chooser_item_activated (GtkRecentChooser *chooser, + GtkAction *action) +{ + gchar *uri; + + uri = gtk_recent_chooser_get_current_uri (chooser); + g_signal_emit (action, action_signals[ITEM_ACTIVATED], 0, uri); + g_free (uri); +} + +static GtkWidget * +ev_open_recent_action_create_tool_item (GtkAction *action) +{ + GtkWidget *tool_item; + GtkWidget *toolbar_recent_menu; + GtkRecentFilter *filter; + + toolbar_recent_menu = gtk_recent_chooser_menu_new_for_manager (gtk_recent_manager_get_default ()); + gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (toolbar_recent_menu), FALSE); + gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (toolbar_recent_menu), GTK_RECENT_SORT_MRU); + gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (toolbar_recent_menu), 5); + g_signal_connect (toolbar_recent_menu, "item_activated", + G_CALLBACK (recent_chooser_item_activated), + action); + + filter = gtk_recent_filter_new (); + gtk_recent_filter_add_application (filter, g_get_application_name ()); + gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (toolbar_recent_menu), filter); + + tool_item = GTK_WIDGET (gtk_menu_tool_button_new_from_stock (GTK_STOCK_OPEN)); + gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON (tool_item), + _("Open a recently used document")); + gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (tool_item), + GTK_WIDGET (toolbar_recent_menu)); + return tool_item; +} + +static void +ev_open_recent_action_init (EvOpenRecentAction *action) +{ +} + +static void +ev_open_recent_action_class_init (EvOpenRecentActionClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkActionClass *action_class = GTK_ACTION_CLASS (class); + + action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON; + action_class->create_tool_item = ev_open_recent_action_create_tool_item; + + action_signals[ITEM_ACTIVATED] = + g_signal_new ("item_activated", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvOpenRecentActionClass, item_activated), + NULL, NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, + G_TYPE_STRING); +} diff --git a/shell/ev-open-recent-action.h b/shell/ev-open-recent-action.h new file mode 100644 index 00000000..87a8fed7 --- /dev/null +++ b/shell/ev-open-recent-action.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2007, Carlos Garcia Campos <carlosgc@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.. + * + */ + +#ifndef EV_OPEN_RECENT_ACTION_H +#define EV_OPEN_RECENT_ACTION_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define EV_TYPE_OPEN_RECENT_ACTION (ev_open_recent_action_get_type ()) +#define EV_OPEN_RECENT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_OPEN_RECENT_ACTION, EvOpenRecentAction)) +#define EV_OPEN_RECENT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_OPEN_RECENT_ACTION, EvOpenRecentActionClass)) +#define EV_IS_OPEN_RECENT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_OPEN_RECENT_ACTION)) +#define EV_IS_OPEN_RECENT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EV_TYPE_OPEN_RECENT_ACTION)) +#define EV_OPEN_RECENT_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EV_TYPE_OPEN_RECENT_ACTION, EvOpenRecentActionClass)) + +typedef struct _EvOpenRecentAction EvOpenRecentAction; +typedef struct _EvOpenRecentActionClass EvOpenRecentActionClass; + +struct _EvOpenRecentAction { + GtkAction parent; +}; + +struct _EvOpenRecentActionClass { + GtkActionClass parent_class; + + void (* item_activated) (EvOpenRecentAction *action, + const gchar *uri); +}; + +GType ev_open_recent_action_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* EV_OPEN_RECENT_ACTION_H */ diff --git a/shell/ev-password-view.c b/shell/ev-password-view.c new file mode 100644 index 00000000..8a1162ac --- /dev/null +++ b/shell/ev-password-view.c @@ -0,0 +1,434 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib/gi18n.h> +#include <gtk/gtk.h> +#include <gio/gio.h> + +#include "ev-keyring.h" +#include "ev-password-view.h" + +enum { + UNLOCK, + LAST_SIGNAL +}; +struct _EvPasswordViewPrivate { + GtkWindow *parent_window; + GtkWidget *label; + GtkWidget *password_entry; + + gchar *password; + GPasswordSave password_save; + + GFile *uri_file; +}; + +#define EV_PASSWORD_VIEW_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_PASSWORD_VIEW, EvPasswordViewPrivate)); + +static guint password_view_signals [LAST_SIGNAL] = { 0 }; + + +G_DEFINE_TYPE (EvPasswordView, ev_password_view, GTK_TYPE_VIEWPORT) + +static void +ev_password_view_finalize (GObject *object) +{ + EvPasswordView *password_view = EV_PASSWORD_VIEW (object); + + if (password_view->priv->password) { + g_free (password_view->priv->password); + password_view->priv->password = NULL; + } + + password_view->priv->parent_window = NULL; + + if (password_view->priv->uri_file) { + g_object_unref (password_view->priv->uri_file); + password_view->priv->uri_file = NULL; + } + + G_OBJECT_CLASS (ev_password_view_parent_class)->finalize (object); +} + +static void +ev_password_view_class_init (EvPasswordViewClass *class) +{ + GObjectClass *g_object_class; + GtkWidgetClass *widget_class; + + g_object_class = G_OBJECT_CLASS (class); + widget_class = GTK_WIDGET_CLASS (class); + + password_view_signals[UNLOCK] = + g_signal_new ("unlock", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvPasswordViewClass, unlock), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + g_type_class_add_private (g_object_class, sizeof (EvPasswordViewPrivate)); + + g_object_class->finalize = ev_password_view_finalize; +} + +static void +ev_password_view_clicked_cb (GtkWidget *button, + EvPasswordView *password_view) +{ + ev_password_view_ask_password (password_view); +} + +static void +ev_password_view_init (EvPasswordView *password_view) +{ + GtkWidget *align; + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *image; + GtkWidget *button; + GtkWidget *label; + gchar *markup; + + password_view->priv = EV_PASSWORD_VIEW_GET_PRIVATE (password_view); + + password_view->priv->password_save = G_PASSWORD_SAVE_NEVER; + + gtk_widget_push_composite_child (); + + /* set ourselves up */ + align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + vbox = gtk_vbox_new (FALSE, 24); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 24); + gtk_container_add (GTK_CONTAINER (password_view), align); + gtk_container_add (GTK_CONTAINER (align), vbox); + + password_view->priv->label = + (GtkWidget *) g_object_new (GTK_TYPE_LABEL, + "wrap", TRUE, + "selectable", TRUE, + NULL); + gtk_box_pack_start (GTK_BOX (vbox), password_view->priv->label, FALSE, FALSE, 0); + + image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, + GTK_ICON_SIZE_DIALOG); + gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, FALSE, 0); + + label = gtk_label_new (NULL); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + markup = g_strdup_printf ("<span size=\"x-large\">%s</span>", + _("This document is locked and can only be read by entering the correct password.")); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + + button = gtk_button_new_with_mnemonic (_("_Unlock Document")); + g_signal_connect (button, "clicked", G_CALLBACK (ev_password_view_clicked_cb), password_view); + gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); + + gtk_widget_show_all (align); + gtk_widget_pop_composite_child (); +} + +/* Public functions */ +void +ev_password_view_set_uri (EvPasswordView *password_view, + const char *uri) +{ + gchar *markup, *file_name; + GFile *file; + + g_return_if_fail (EV_IS_PASSWORD_VIEW (password_view)); + g_return_if_fail (uri != NULL); + + file = g_file_new_for_uri (uri); + if (password_view->priv->uri_file && + g_file_equal (file, password_view->priv->uri_file)) { + g_object_unref (file); + return; + } + if (password_view->priv->uri_file) + g_object_unref (password_view->priv->uri_file); + password_view->priv->uri_file = file; + + file_name = g_file_get_basename (password_view->priv->uri_file); + markup = g_markup_printf_escaped ("<span size=\"x-large\" weight=\"bold\">%s</span>", + file_name); + g_free (file_name); + + gtk_label_set_markup (GTK_LABEL (password_view->priv->label), markup); + g_free (markup); +} + +static void +ev_password_dialog_got_response (GtkDialog *dialog, + gint response_id, + EvPasswordView *password_view) +{ + gtk_widget_set_sensitive (GTK_WIDGET (password_view), TRUE); + + if (response_id == GTK_RESPONSE_OK) { + g_free (password_view->priv->password); + password_view->priv->password = + g_strdup (gtk_entry_get_text (GTK_ENTRY (password_view->priv->password_entry))); + + g_signal_emit (password_view, password_view_signals[UNLOCK], 0); + } + + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +ev_password_dialog_remember_button_toggled (GtkToggleButton *button, + EvPasswordView *password_view) +{ + if (gtk_toggle_button_get_active (button)) { + gpointer data; + + data = g_object_get_data (G_OBJECT (button), "password-save"); + password_view->priv->password_save = GPOINTER_TO_INT (data); + } +} + +static void +ev_password_dialog_entry_changed_cb (GtkEditable *editable, + GtkDialog *dialog) +{ + const char *text; + + text = gtk_entry_get_text (GTK_ENTRY (editable)); + + gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, + (text != NULL && *text != '\0')); +} + +static void +ev_password_dialog_entry_activated_cb (GtkEntry *entry, + GtkDialog *dialog) +{ + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); +} + +void +ev_password_view_ask_password (EvPasswordView *password_view) +{ + GtkDialog *dialog; + GtkWidget *content_area, *action_area; + GtkWidget *entry_container; + GtkWidget *hbox, *main_vbox, *vbox, *icon; + GtkWidget *table; + GtkWidget *label; + gchar *format, *markup, *file_name; + + gtk_widget_set_sensitive (GTK_WIDGET (password_view), FALSE); + + dialog = GTK_DIALOG (gtk_dialog_new ()); + content_area = gtk_dialog_get_content_area (dialog); + action_area = gtk_dialog_get_action_area (dialog); + + /* Set the dialog up with HIG properties */ + gtk_dialog_set_has_separator (dialog, FALSE); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); + gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */ + gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); + gtk_box_set_spacing (GTK_BOX (action_area), 6); + + gtk_window_set_title (GTK_WINDOW (dialog), _("Enter password")); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_DIALOG_AUTHENTICATION); + gtk_window_set_transient_for (GTK_WINDOW (dialog), password_view->priv->parent_window); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + + gtk_dialog_add_buttons (dialog, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + _("_Unlock Document"), GTK_RESPONSE_OK, + NULL); + gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), + GTK_RESPONSE_OK, FALSE); + gtk_dialog_set_alternative_button_order (dialog, + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + /* Build contents */ + hbox = gtk_hbox_new (FALSE, 12); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0); + gtk_widget_show (hbox); + + icon = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, + GTK_ICON_SIZE_DIALOG); + + gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0.0); + gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); + gtk_widget_show (icon); + + main_vbox = gtk_vbox_new (FALSE, 18); + gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0); + gtk_widget_show (main_vbox); + + label = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + file_name = g_file_get_basename (password_view->priv->uri_file); + format = g_strdup_printf ("<span size=\"larger\" weight=\"bold\">%s</span>\n\n%s", + _("Password required"), + _("The document ā%sā is locked and requires a password before it can be opened.")); + markup = g_markup_printf_escaped (format, file_name); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (format); + g_free (markup); + g_free (file_name); + gtk_box_pack_start (GTK_BOX (main_vbox), label, + FALSE, FALSE, 0); + gtk_widget_show (label); + + vbox = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); + gtk_widget_show (vbox); + + /* The table that holds the entries */ + entry_container = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); + + gtk_alignment_set_padding (GTK_ALIGNMENT (entry_container), + 0, 0, 0, 0); + + gtk_box_pack_start (GTK_BOX (vbox), entry_container, + FALSE, FALSE, 0); + gtk_widget_show (entry_container); + + table = gtk_table_new (1, 2, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_container_add (GTK_CONTAINER (entry_container), table); + gtk_widget_show (table); + + label = gtk_label_new_with_mnemonic (_("_Password:")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + + password_view->priv->password_entry = gtk_entry_new (); + gtk_entry_set_visibility (GTK_ENTRY (password_view->priv->password_entry), FALSE); + g_signal_connect (password_view->priv->password_entry, "changed", + G_CALLBACK (ev_password_dialog_entry_changed_cb), + dialog); + g_signal_connect (password_view->priv->password_entry, "activate", + G_CALLBACK (ev_password_dialog_entry_activated_cb), + dialog); + gtk_table_attach (GTK_TABLE (table), label, + 0, 1, 0, 1, + GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_widget_show (label); + + gtk_table_attach_defaults (GTK_TABLE (table), password_view->priv->password_entry, + 1, 2, 0, 1); + gtk_widget_show (password_view->priv->password_entry); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), + password_view->priv->password_entry); + + if (ev_keyring_is_available ()) { + GtkWidget *choice; + GtkWidget *remember_box; + GSList *group; + + remember_box = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (vbox), remember_box, + FALSE, FALSE, 0); + gtk_widget_show (remember_box); + + choice = gtk_radio_button_new_with_mnemonic (NULL, _("Forget password _immediately")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_view->priv->password_save == G_PASSWORD_SAVE_NEVER); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_NEVER)); + g_signal_connect (choice, "toggled", + G_CALLBACK (ev_password_dialog_remember_button_toggled), + password_view); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + gtk_widget_show (choice); + + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); + choice = gtk_radio_button_new_with_mnemonic (group, _("Remember password until you _log out")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_view->priv->password_save == G_PASSWORD_SAVE_FOR_SESSION); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_FOR_SESSION)); + g_signal_connect (choice, "toggled", + G_CALLBACK (ev_password_dialog_remember_button_toggled), + password_view); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + gtk_widget_show (choice); + + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); + choice = gtk_radio_button_new_with_mnemonic (group, _("Remember _forever")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_view->priv->password_save == G_PASSWORD_SAVE_PERMANENTLY); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_PERMANENTLY)); + g_signal_connect (choice, "toggled", + G_CALLBACK (ev_password_dialog_remember_button_toggled), + password_view); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + gtk_widget_show (choice); + } + + g_signal_connect (dialog, "response", + G_CALLBACK (ev_password_dialog_got_response), + password_view); + + gtk_widget_show (GTK_WIDGET (dialog)); +} + +const gchar * +ev_password_view_get_password (EvPasswordView *password_view) +{ + return password_view->priv->password; +} + +GPasswordSave +ev_password_view_get_password_save_flags (EvPasswordView *password_view) +{ + return password_view->priv->password_save; +} + +GtkWidget * +ev_password_view_new (GtkWindow *parent) +{ + EvPasswordView *retval; + + retval = EV_PASSWORD_VIEW (g_object_new (EV_TYPE_PASSWORD_VIEW, NULL)); + + retval->priv->parent_window = parent; + + return GTK_WIDGET (retval); +} + diff --git a/shell/ev-password-view.h b/shell/ev-password-view.h new file mode 100644 index 00000000..a98e40c2 --- /dev/null +++ b/shell/ev-password-view.h @@ -0,0 +1,59 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_PASSWORD_VIEW_H__ +#define __EV_PASSWORD_VIEW_H__ + +#include <gtk/gtk.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PASSWORD_VIEW (ev_password_view_get_type ()) +#define EV_PASSWORD_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PASSWORD_VIEW, EvPasswordView)) +#define EV_IS_PASSWORD_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_PASSWORD_VIEW)) + +typedef struct _EvPasswordView EvPasswordView; +typedef struct _EvPasswordViewClass EvPasswordViewClass; +typedef struct _EvPasswordViewPrivate EvPasswordViewPrivate; + +struct _EvPasswordView { + GtkViewport parent_instance; + + EvPasswordViewPrivate *priv; +}; + +struct _EvPasswordViewClass { + GtkViewportClass parent_class; + + /* signals */ + void (*unlock) (EvPasswordView *self); +}; + +GType ev_password_view_get_type (void) G_GNUC_CONST; +GtkWidget *ev_password_view_new (GtkWindow *parent); +void ev_password_view_set_uri (EvPasswordView *password_view, + const char *uri); +void ev_password_view_ask_password (EvPasswordView *password_view); +const gchar *ev_password_view_get_password (EvPasswordView *password_view); +GPasswordSave ev_password_view_get_password_save_flags (EvPasswordView *password_view); + +G_END_DECLS + +#endif /* __EV_PASSWORD_VIEW_H__ */ diff --git a/shell/ev-progress-message-area.c b/shell/ev-progress-message-area.c new file mode 100644 index 00000000..a0b74b0a --- /dev/null +++ b/shell/ev-progress-message-area.c @@ -0,0 +1,198 @@ +/* ev-progress-message-area.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <gtk/gtk.h> + +#include "ev-progress-message-area.h" + +#define EV_PROGRESS_MESSAGE_AREA_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_PROGRESS_MESSAGE_AREA, EvProgressMessageAreaPrivate)) + +struct _EvProgressMessageAreaPrivate { + GtkWidget *label; + GtkWidget *progress_bar; +}; + +enum { + PROP_0, + PROP_STATUS, + PROP_FRACTION +}; + +static void ev_progress_message_area_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void ev_progress_message_area_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +G_DEFINE_TYPE (EvProgressMessageArea, ev_progress_message_area, EV_TYPE_MESSAGE_AREA) + +static void +ev_progress_message_area_class_init (EvProgressMessageAreaClass *class) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + gobject_class->set_property = ev_progress_message_area_set_property; + gobject_class->get_property = ev_progress_message_area_get_property; + + g_object_class_install_property (gobject_class, + PROP_STATUS, + g_param_spec_string ("status", + "Status", + "The status text of the progress area", + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_FRACTION, + g_param_spec_double ("fraction", + "Fraction", + "The fraction of total work that has been completed", + 0.0, 1.0, 0.0, + G_PARAM_READWRITE)); + + g_type_class_add_private (gobject_class, sizeof (EvProgressMessageAreaPrivate)); +} + +static void +ev_progress_message_area_init (EvProgressMessageArea *area) +{ + GtkWidget *contents; + GtkWidget *vbox; + + area->priv = EV_PROGRESS_MESSAGE_AREA_GET_PRIVATE (area); + + contents = _ev_message_area_get_main_box (EV_MESSAGE_AREA (area)); + + vbox = gtk_vbox_new (FALSE, 6); + + area->priv->label = gtk_label_new (NULL); + gtk_label_set_use_markup (GTK_LABEL (area->priv->label), TRUE); + gtk_label_set_ellipsize (GTK_LABEL (area->priv->label), + PANGO_ELLIPSIZE_END); + gtk_misc_set_alignment (GTK_MISC (area->priv->label), 0.0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), area->priv->label, TRUE, TRUE, 0); + gtk_widget_show (area->priv->label); + + area->priv->progress_bar = gtk_progress_bar_new (); + gtk_widget_set_size_request (area->priv->progress_bar, -1, 15); + gtk_box_pack_start (GTK_BOX (vbox), area->priv->progress_bar, TRUE, FALSE, 0); + gtk_widget_show (area->priv->progress_bar); + + gtk_box_pack_start (GTK_BOX (contents), vbox, TRUE, TRUE, 0); + gtk_widget_show (vbox); +} + +static void +ev_progress_message_area_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvProgressMessageArea *area = EV_PROGRESS_MESSAGE_AREA (object); + + switch (prop_id) { + case PROP_STATUS: + ev_progress_message_area_set_status (area, g_value_get_string (value)); + break; + case PROP_FRACTION: + ev_progress_message_area_set_fraction (area, g_value_get_double (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_progress_message_area_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvProgressMessageArea *area = EV_PROGRESS_MESSAGE_AREA (object); + + switch (prop_id) { + case PROP_STATUS: + g_value_set_string (value, gtk_label_get_label (GTK_LABEL (area->priv->label))); + break; + case PROP_FRACTION: { + gdouble fraction; + + fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (area->priv->progress_bar)); + g_value_set_double (value, fraction); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +GtkWidget * +ev_progress_message_area_new (const gchar *stock_id, + const gchar *text, + const gchar *first_button_text, + ...) +{ + GtkWidget *widget; + + widget = g_object_new (EV_TYPE_PROGRESS_MESSAGE_AREA, + "message-type", GTK_MESSAGE_OTHER, + "text", text, + NULL); + if (first_button_text) { + va_list args; + + va_start (args, first_button_text); + _ev_message_area_add_buttons_valist (EV_MESSAGE_AREA (widget), + first_button_text, + args); + va_end (args); + } + + ev_message_area_set_image_from_stock (EV_MESSAGE_AREA (widget), stock_id); + + return widget; +} + +void +ev_progress_message_area_set_status (EvProgressMessageArea *area, + const gchar *str) +{ + g_return_if_fail (EV_IS_PROGRESS_MESSAGE_AREA (area)); + + gtk_label_set_text (GTK_LABEL (area->priv->label), str); + + g_object_notify (G_OBJECT (area), "status"); +} + +void +ev_progress_message_area_set_fraction (EvProgressMessageArea *area, + gdouble fraction) +{ + g_return_if_fail (EV_IS_PROGRESS_MESSAGE_AREA (area)); + + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (area->priv->progress_bar), + fraction); + g_object_notify (G_OBJECT (area), "fraction"); +} diff --git a/shell/ev-progress-message-area.h b/shell/ev-progress-message-area.h new file mode 100644 index 00000000..ff96d0f7 --- /dev/null +++ b/shell/ev-progress-message-area.h @@ -0,0 +1,64 @@ +/* ev-progress-message-area.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_PROGRESS_MESSAGE_AREA_H +#define EV_PROGRESS_MESSAGE_AREA_H + +#include <gtk/gtk.h> + +#include "ev-message-area.h" + +G_BEGIN_DECLS + +#define EV_TYPE_PROGRESS_MESSAGE_AREA (ev_progress_message_area_get_type ()) +#define EV_PROGRESS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_PROGRESS_MESSAGE_AREA, EvProgressMessageArea)) +#define EV_PROGRESS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_PROGRESS_MESSAGE_AREA, EvProgressMessageAreaClass)) +#define EV_IS_PROGRESS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_PROGRESS_MESSAGE_AREA)) +#define EV_IS_PROGRESS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_PROGRESS_MESSAGE_AREA)) +#define EV_PROGRESS_MESSAGE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_PROGRESS_MESSAGE_AREA, EvProgressMessageAreaClass)) + +typedef struct _EvProgressMessageArea EvProgressMessageArea; +typedef struct _EvProgressMessageAreaClass EvProgressMessageAreaClass; +typedef struct _EvProgressMessageAreaPrivate EvProgressMessageAreaPrivate; + +struct _EvProgressMessageArea { + EvMessageArea parent_instance; + + /*< private >*/ + EvProgressMessageAreaPrivate *priv; +}; + +struct _EvProgressMessageAreaClass { + EvMessageAreaClass parent_class; +}; + +GType ev_progress_message_area_get_type (void) G_GNUC_CONST; +GtkWidget *ev_progress_message_area_new (const gchar *stock_id, + const gchar *text, + const gchar *first_button_text, + ...); +void ev_progress_message_area_set_status (EvProgressMessageArea *area, + const gchar *str); +void ev_progress_message_area_set_fraction (EvProgressMessageArea *area, + gdouble fraction); + +G_END_DECLS + +#endif /* EV_PROGRESS_MESSAGE_AREA_H */ diff --git a/shell/ev-properties-dialog.c b/shell/ev-properties-dialog.c new file mode 100644 index 00000000..722c298a --- /dev/null +++ b/shell/ev-properties-dialog.c @@ -0,0 +1,138 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-document-fonts.h" +#include "ev-properties-dialog.h" +#include "ev-properties-fonts.h" +#include "ev-properties-view.h" +#include "ev-properties-license.h" + +struct _EvPropertiesDialog { + GtkDialog base_instance; + + EvDocument *document; + GtkWidget *notebook; + GtkWidget *general_page; + GtkWidget *fonts_page; + GtkWidget *license_page; +}; + +struct _EvPropertiesDialogClass { + GtkDialogClass base_class; +}; + +G_DEFINE_TYPE (EvPropertiesDialog, ev_properties_dialog, GTK_TYPE_DIALOG) + +static void +ev_properties_dialog_class_init (EvPropertiesDialogClass *properties_class) +{ +} + +static void +ev_properties_dialog_init (EvPropertiesDialog *properties) +{ + GtkBox *content_area; + + content_area = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (properties))); + + gtk_window_set_title (GTK_WINDOW (properties), _("Properties")); + gtk_window_set_destroy_with_parent (GTK_WINDOW (properties), TRUE); + gtk_dialog_set_has_separator (GTK_DIALOG (properties), FALSE); + gtk_container_set_border_width (GTK_CONTAINER (properties), 5); + gtk_box_set_spacing (content_area, 2); + + gtk_dialog_add_button (GTK_DIALOG (properties), GTK_STOCK_CLOSE, + GTK_RESPONSE_CANCEL); + gtk_dialog_set_default_response (GTK_DIALOG (properties), + GTK_RESPONSE_CANCEL); + + properties->notebook = gtk_notebook_new (); + gtk_container_set_border_width (GTK_CONTAINER (properties->notebook), 5); + gtk_box_pack_start (content_area, properties->notebook, TRUE, TRUE, 0); + gtk_widget_show (properties->notebook); + + g_signal_connect (properties, "response", + G_CALLBACK (gtk_widget_destroy), NULL); +} + +void +ev_properties_dialog_set_document (EvPropertiesDialog *properties, + const gchar *uri, + EvDocument *document) +{ + GtkWidget *label; + const EvDocumentInfo *info; + + properties->document = document; + + info = ev_document_get_info (document); + + if (properties->general_page == NULL) { + label = gtk_label_new (_("General")); + properties->general_page = ev_properties_view_new (uri); + gtk_notebook_append_page (GTK_NOTEBOOK (properties->notebook), + properties->general_page, label); + gtk_widget_show (properties->general_page); + } + ev_properties_view_set_info (EV_PROPERTIES_VIEW (properties->general_page), info); + + if (EV_IS_DOCUMENT_FONTS (document)) { + if (properties->fonts_page == NULL) { + label = gtk_label_new (_("Fonts")); + properties->fonts_page = ev_properties_fonts_new (); + gtk_notebook_append_page (GTK_NOTEBOOK (properties->notebook), + properties->fonts_page, label); + gtk_widget_show (properties->fonts_page); + } + + ev_properties_fonts_set_document + (EV_PROPERTIES_FONTS (properties->fonts_page), document); + } + + if (info->fields_mask & EV_DOCUMENT_INFO_LICENSE && info->license) { + if (properties->license_page == NULL) { + label = gtk_label_new (_("Document License")); + properties->license_page = ev_properties_license_new (); + gtk_notebook_append_page (GTK_NOTEBOOK (properties->notebook), + properties->license_page, label); + gtk_widget_show (properties->license_page); + } + + ev_properties_license_set_license + (EV_PROPERTIES_LICENSE (properties->license_page), info->license); + } +} + +GtkWidget * +ev_properties_dialog_new () +{ + EvPropertiesDialog *properties; + + properties = g_object_new (EV_TYPE_PROPERTIES_DIALOG, NULL); + + return GTK_WIDGET (properties); +} diff --git a/shell/ev-properties-dialog.h b/shell/ev-properties-dialog.h new file mode 100644 index 00000000..9484627c --- /dev/null +++ b/shell/ev-properties-dialog.h @@ -0,0 +1,47 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_PROPERTIES_DIALOG_H__ +#define __EV_PROPERTIES_DIALOG_H__ + +#include "ev-document.h" + +G_BEGIN_DECLS + +typedef struct _EvPropertiesDialog EvPropertiesDialog; +typedef struct _EvPropertiesDialogClass EvPropertiesDialogClass; +typedef struct _EvPropertiesDialogPrivate EvPropertiesDialogPrivate; + +#define EV_TYPE_PROPERTIES_DIALOG (ev_properties_dialog_get_type()) +#define EV_PROPERTIES_DIALOG(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PROPERTIES_DIALOG, EvPropertiesDialog)) +#define EV_PROPERTIES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PROPERTIES_DIALOG, EvPropertiesDialogClass)) +#define EV_IS_PROPERTIES_DIALOG(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PROPERTIES_DIALOG)) +#define EV_IS_PROPERTIES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES_DIALOG)) +#define EV_PROPERTIES_DIALOG_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES_DIALOG, EvPropertiesDialogClass)) + +GType ev_properties_dialog_get_type (void); +GtkWidget *ev_properties_dialog_new (void); +void ev_properties_dialog_set_document (EvPropertiesDialog *properties, + const gchar *uri, + EvDocument *document); + +G_END_DECLS + +#endif /* __EV_PROPERTIES_DIALOG_H__ */ diff --git a/shell/ev-properties-fonts.c b/shell/ev-properties-fonts.c new file mode 100644 index 00000000..8480ebd2 --- /dev/null +++ b/shell/ev-properties-fonts.c @@ -0,0 +1,224 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-document-fonts.h" +#include "ev-job-scheduler.h" +#include "ev-jobs.h" +#include "ev-properties-fonts.h" + +struct _EvPropertiesFonts { + GtkVBox base_instance; + + GtkWidget *fonts_treeview; + GtkWidget *fonts_progress_label; + EvJob *fonts_job; + + EvDocument *document; +}; + +struct _EvPropertiesFontsClass { + GtkVBoxClass base_class; +}; + +static void +job_fonts_finished_cb (EvJob *job, EvPropertiesFonts *properties); + +G_DEFINE_TYPE (EvPropertiesFonts, ev_properties_fonts, GTK_TYPE_VBOX) + +static void +ev_properties_fonts_dispose (GObject *object) +{ + EvPropertiesFonts *properties = EV_PROPERTIES_FONTS (object); + + if (properties->fonts_job) { + g_signal_handlers_disconnect_by_func (properties->fonts_job, + job_fonts_finished_cb, + properties); + ev_job_cancel (properties->fonts_job); + + g_object_unref (properties->fonts_job); + properties->fonts_job = NULL; + } + + G_OBJECT_CLASS (ev_properties_fonts_parent_class)->dispose (object); +} + +static void +ev_properties_fonts_class_init (EvPropertiesFontsClass *properties_class) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (properties_class); + + g_object_class->dispose = ev_properties_fonts_dispose; +} + +static void +font_cell_data_func (GtkTreeViewColumn *col, GtkCellRenderer *renderer, + GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) +{ + char *name; + char *details; + char *markup; + + gtk_tree_model_get (model, iter, + EV_DOCUMENT_FONTS_COLUMN_NAME, &name, + EV_DOCUMENT_FONTS_COLUMN_DETAILS, &details, + -1); + + if (details) { + markup = g_strdup_printf ("<b><big>%s</big></b>\n<small>%s</small>", + name, details); + } else { + markup = g_strdup_printf ("<b><big>%s</big></b>", name); + } + + g_object_set (renderer, "markup", markup, NULL); + + g_free (markup); + g_free (details); + g_free (name); +} + +static void +ev_properties_fonts_init (EvPropertiesFonts *properties) +{ + GtkWidget *swindow; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + + gtk_container_set_border_width (GTK_CONTAINER (properties), 12); + gtk_box_set_spacing (GTK_BOX (properties), 6); + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + + properties->fonts_treeview = gtk_tree_view_new (); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (properties->fonts_treeview), + FALSE); + column = gtk_tree_view_column_new (); + gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); + gtk_tree_view_append_column (GTK_TREE_VIEW (properties->fonts_treeview), + column); + + renderer = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, + "ypad", 6, NULL)); + gtk_tree_view_column_pack_start (GTK_TREE_VIEW_COLUMN (column), + renderer, FALSE); + gtk_tree_view_column_set_title (GTK_TREE_VIEW_COLUMN (column), + _("Font")); + gtk_tree_view_column_set_cell_data_func (column, renderer, + font_cell_data_func, + NULL, NULL); + + gtk_container_add (GTK_CONTAINER (swindow), properties->fonts_treeview); + gtk_widget_show (properties->fonts_treeview); + + gtk_box_pack_start (GTK_BOX (properties), swindow, + TRUE, TRUE, 0); + gtk_widget_show (swindow); + + properties->fonts_progress_label = gtk_label_new (NULL); + g_object_set (G_OBJECT (properties->fonts_progress_label), + "xalign", 0.0, + NULL); + gtk_box_pack_start (GTK_BOX (properties), + properties->fonts_progress_label, + FALSE, FALSE, 0); + gtk_widget_show (properties->fonts_progress_label); +} + +static void +update_progress_label (GtkWidget *label, double progress) +{ + if (progress > 0) { + char *progress_text; + progress_text = g_strdup_printf (_("Gathering font informationā¦ %3d%%"), + (int) (progress * 100)); + gtk_label_set_text (GTK_LABEL (label), progress_text); + g_free (progress_text); + gtk_widget_show (label); + } else { + gtk_widget_hide (label); + } +} + +static void +job_fonts_finished_cb (EvJob *job, EvPropertiesFonts *properties) +{ + g_signal_handlers_disconnect_by_func (job, job_fonts_finished_cb, properties); + g_object_unref (properties->fonts_job); + properties->fonts_job = NULL; +} + +static void +job_fonts_updated_cb (EvJobFonts *job, gdouble progress, EvPropertiesFonts *properties) +{ + GtkTreeModel *model; + EvDocumentFonts *document_fonts = EV_DOCUMENT_FONTS (properties->document); + + update_progress_label (properties->fonts_progress_label, progress); + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (properties->fonts_treeview)); + /* Documen lock is already held by the jop */ + ev_document_fonts_fill_model (document_fonts, model); +} + +void +ev_properties_fonts_set_document (EvPropertiesFonts *properties, + EvDocument *document) +{ + GtkTreeView *tree_view = GTK_TREE_VIEW (properties->fonts_treeview); + GtkListStore *list_store; + + properties->document = document; + + list_store = gtk_list_store_new (EV_DOCUMENT_FONTS_COLUMN_NUM_COLUMNS, + G_TYPE_STRING, G_TYPE_STRING); + gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (list_store)); + + properties->fonts_job = ev_job_fonts_new (properties->document); + g_signal_connect (properties->fonts_job, "updated", + G_CALLBACK (job_fonts_updated_cb), + properties); + g_signal_connect (properties->fonts_job, "finished", + G_CALLBACK (job_fonts_finished_cb), + properties); + ev_job_scheduler_push_job (properties->fonts_job, EV_JOB_PRIORITY_NONE); +} + +GtkWidget * +ev_properties_fonts_new () +{ + EvPropertiesFonts *properties; + + properties = g_object_new (EV_TYPE_PROPERTIES_FONTS, NULL); + + return GTK_WIDGET (properties); +} diff --git a/shell/ev-properties-fonts.h b/shell/ev-properties-fonts.h new file mode 100644 index 00000000..9f6ec0cd --- /dev/null +++ b/shell/ev-properties-fonts.h @@ -0,0 +1,48 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_PROPERTIES_FONTS_H__ +#define __EV_PROPERTIES_FONTS_H__ + +#include "ev-document.h" + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +typedef struct _EvPropertiesFonts EvPropertiesFonts; +typedef struct _EvPropertiesFontsClass EvPropertiesFontsClass; +typedef struct _EvPropertiesFontsPrivate EvPropertiesFontsPrivate; + +#define EV_TYPE_PROPERTIES_FONTS (ev_properties_fonts_get_type()) +#define EV_PROPERTIES_FONTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PROPERTIES_FONTS, EvPropertiesFonts)) +#define EV_PROPERTIES_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PROPERTIES_FONTS, EvPropertiesFontsClass)) +#define EV_IS_PROPERTIES(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PROPERTIES_FONTS)) +#define EV_IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES_FONTS)) +#define EV_PROPERTIES_FONTS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES_FONTS, EvPropertiesFontsClass)) + +GType ev_properties_fonts_get_type (void); +GtkWidget *ev_properties_fonts_new (void); +void ev_properties_fonts_set_document (EvPropertiesFonts *properties, + EvDocument *document); + +G_END_DECLS + +#endif /* __EV_PROPERTIES_FONTS_H__ */ diff --git a/shell/ev-properties-license.c b/shell/ev-properties-license.c new file mode 100644 index 00000000..1216df45 --- /dev/null +++ b/shell/ev-properties-license.c @@ -0,0 +1,169 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <string.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-properties-license.h" + +struct _EvPropertiesLicense { + GtkVBox base_instance; +}; + +struct _EvPropertiesLicenseClass { + GtkVBoxClass base_class; +}; + +G_DEFINE_TYPE (EvPropertiesLicense, ev_properties_license, GTK_TYPE_VBOX) + +static void +ev_properties_license_class_init (EvPropertiesLicenseClass *properties_license_class) +{ +} + +static GtkWidget * +get_license_text_widget (EvDocumentLicense *license) +{ + GtkWidget *swindow, *textview; + GtkTextBuffer *buffer; + + textview = gtk_text_view_new (); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview), GTK_WRAP_WORD); + gtk_text_view_set_left_margin (GTK_TEXT_VIEW (textview), 8); + gtk_text_view_set_right_margin (GTK_TEXT_VIEW (textview), 8); + + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)); + gtk_text_buffer_set_text (buffer, ev_document_license_get_text (license), -1); + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + gtk_container_add (GTK_CONTAINER (swindow), textview); + gtk_widget_show (textview); + + return swindow; +} + +static GtkWidget * +get_license_uri_widget (const gchar *uri) +{ + GtkWidget *label; + gchar *checked_uri; + gchar *markup; + + label = gtk_label_new (NULL); + g_object_set (G_OBJECT (label), + "xalign", 0.0, + "width_chars", 25, + "selectable", TRUE, + "ellipsize", PANGO_ELLIPSIZE_END, + NULL); + + checked_uri = g_uri_parse_scheme (uri); + if (checked_uri) { + markup = g_markup_printf_escaped ("<a href=\"%s\">%s</a>", uri, uri); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + g_free (checked_uri); + } else { + gtk_label_set_text (GTK_LABEL (label), uri); + } + + return label; +} + +static void +ev_properties_license_add_section (EvPropertiesLicense *properties, + const gchar *title_text, + GtkWidget *contents) +{ + GtkWidget *title; + GtkWidget *alignment; + gchar *markup; + + title = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (title), 0.0, 0.5); + gtk_label_set_use_markup (GTK_LABEL (title), TRUE); + markup = g_strdup_printf ("<b>%s</b>", title_text); + gtk_label_set_markup (GTK_LABEL (title), markup); + g_free (markup); + gtk_box_pack_start (GTK_BOX (properties), title, FALSE, FALSE, 0); + gtk_widget_show (title); + + alignment = gtk_alignment_new (0.5, 0.5, 1., 1.); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0); + gtk_container_add (GTK_CONTAINER (alignment), contents); + gtk_widget_show (contents); + + gtk_box_pack_start (GTK_BOX (properties), alignment, FALSE, TRUE, 0); + gtk_widget_show (alignment); +} + +void +ev_properties_license_set_license (EvPropertiesLicense *properties, + EvDocumentLicense *license) +{ + const gchar *text = ev_document_license_get_text (license); + const gchar *uri = ev_document_license_get_uri (license); + const gchar *web_statement = ev_document_license_get_web_statement (license); + + if (text) { + ev_properties_license_add_section (properties, + _("Usage terms"), + get_license_text_widget (license)); + } + + if (uri) { + ev_properties_license_add_section (properties, + _("Text License"), + get_license_uri_widget (uri)); + } + + if (web_statement) { + ev_properties_license_add_section (properties, + _("Further Information"), + get_license_uri_widget (web_statement)); + } +} + +static void +ev_properties_license_init (EvPropertiesLicense *properties) +{ + gtk_box_set_spacing (GTK_BOX (properties), 12); + gtk_container_set_border_width (GTK_CONTAINER (properties), 12); +} + +GtkWidget * +ev_properties_license_new (void) +{ + EvPropertiesLicense *properties_license; + + properties_license = g_object_new (EV_TYPE_PROPERTIES_LICENSE, NULL); + + return GTK_WIDGET (properties_license); +} diff --git a/shell/ev-properties-license.h b/shell/ev-properties-license.h new file mode 100644 index 00000000..7b38fa55 --- /dev/null +++ b/shell/ev-properties-license.h @@ -0,0 +1,50 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_PROPERTIES_LICENSE_VIEW_H__ +#define __EV_PROPERTIES_LICENSE_VIEW_H__ + +#include <gtk/gtk.h> + +#include <evince-document.h> + +G_BEGIN_DECLS + +typedef struct _EvPropertiesLicense EvPropertiesLicense; +typedef struct _EvPropertiesLicenseClass EvPropertiesLicenseClass; +typedef struct _EvPropertiesLicensePrivate EvPropertiesLicensePrivate; + +#define EV_TYPE_PROPERTIES_LICENSE (ev_properties_license_get_type()) +#define EV_PROPERTIES_LICENSE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicense)) +#define EV_PROPERTIES_LICENSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicenseClass)) +#define EV_IS_PROPERTIES_LICENSE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PROPERTIES_LICENSE)) +#define EV_IS_PROPERTIES_LICENSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES_LICENSE)) +#define EV_PROPERTIES_LICENSE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicenseClass)) + +GType ev_properties_license_get_type (void) G_GNUC_CONST; + +GtkWidget *ev_properties_license_new (void); +void ev_properties_license_set_license (EvPropertiesLicense *properties_license, + EvDocumentLicense *license); + +G_END_DECLS + +#endif /* __EV_PROPERTIES_LICENSE_VIEW_H__ */ diff --git a/shell/ev-sidebar-annotations.c b/shell/ev-sidebar-annotations.c new file mode 100644 index 00000000..5b8b8309 --- /dev/null +++ b/shell/ev-sidebar-annotations.c @@ -0,0 +1,542 @@ +/* ev-sidebar-annotations.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "config.h" + +#include <glib/gi18n.h> + +#include "ev-document-annotations.h" +#include "ev-sidebar-page.h" +#include "ev-sidebar-annotations.h" +#include "ev-jobs.h" +#include "ev-job-scheduler.h" +#include "ev-stock-icons.h" + +enum { + PROP_0, + PROP_WIDGET +}; + +enum { + COLUMN_MARKUP, + COLUMN_ICON, + COLUMN_ANNOT_MAPPING, + N_COLUMNS +}; + +enum { + ANNOT_ACTIVATED, + BEGIN_ANNOT_ADD, + ANNOT_ADD_CANCELLED, + N_SIGNALS +}; + +struct _EvSidebarAnnotationsPrivate { + EvDocument *document; + + GtkWidget *notebook; + GtkWidget *tree_view; + GtkWidget *palette; + GtkToolItem *annot_text_item; + + EvJob *job; + guint selection_changed_id; +}; + +static void ev_sidebar_annotations_page_iface_init (EvSidebarPageInterface *iface); +static void ev_sidebar_annotations_load (EvSidebarAnnotations *sidebar_annots); + +static guint signals[N_SIGNALS]; + +G_DEFINE_TYPE_EXTENDED (EvSidebarAnnotations, + ev_sidebar_annotations, + GTK_TYPE_VBOX, + 0, + G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE, + ev_sidebar_annotations_page_iface_init)) + +#define EV_SIDEBAR_ANNOTATIONS_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_ANNOTATIONS, EvSidebarAnnotationsPrivate)) + +static void +ev_sidebar_annotations_dispose (GObject *object) +{ + EvSidebarAnnotations *sidebar_annots = EV_SIDEBAR_ANNOTATIONS (object); + EvSidebarAnnotationsPrivate *priv = sidebar_annots->priv; + + if (priv->document) { + g_object_unref (priv->document); + priv->document = NULL; + } + + G_OBJECT_CLASS (ev_sidebar_annotations_parent_class)->dispose (object); +} + +static GtkTreeModel * +ev_sidebar_annotations_create_simple_model (const gchar *message) +{ + GtkTreeModel *retval; + GtkTreeIter iter; + gchar *markup; + + /* Creates a fake model to indicate that we're loading */ + retval = (GtkTreeModel *)gtk_list_store_new (N_COLUMNS, + G_TYPE_STRING, + GDK_TYPE_PIXBUF, + G_TYPE_POINTER); + + gtk_list_store_append (GTK_LIST_STORE (retval), &iter); + markup = g_strdup_printf ("<span size=\"larger\" style=\"italic\">%s</span>", + message); + gtk_list_store_set (GTK_LIST_STORE (retval), &iter, + COLUMN_MARKUP, markup, + -1); + g_free (markup); + + return retval; +} + +static void +ev_sidebar_annotations_add_annots_list (EvSidebarAnnotations *ev_annots) +{ + GtkWidget *swindow; + GtkTreeModel *loading_model; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + GtkTreeSelection *selection; + GtkWidget *label; + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + + /* Create tree view */ + loading_model = ev_sidebar_annotations_create_simple_model (_("Loadingā¦")); + ev_annots->priv->tree_view = gtk_tree_view_new_with_model (loading_model); + g_object_unref (loading_model); + + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (ev_annots->priv->tree_view), + FALSE); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (ev_annots->priv->tree_view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE); + + column = gtk_tree_view_column_new (); + + renderer = gtk_cell_renderer_pixbuf_new (); + gtk_tree_view_column_pack_start (column, renderer, FALSE); + gtk_tree_view_column_set_attributes (column, renderer, + "pixbuf", COLUMN_ICON, + NULL); + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_start (column, renderer, TRUE); + gtk_tree_view_column_set_attributes (column, renderer, + "markup", COLUMN_MARKUP, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (ev_annots->priv->tree_view), + column); + + gtk_container_add (GTK_CONTAINER (swindow), ev_annots->priv->tree_view); + gtk_widget_show (ev_annots->priv->tree_view); + + label = gtk_label_new (_("List")); + gtk_notebook_append_page (GTK_NOTEBOOK (ev_annots->priv->notebook), + swindow, label); + gtk_widget_show (label); + + gtk_widget_show (swindow); +} + +static void +ev_sidebar_annotations_text_annot_button_toggled (GtkToggleToolButton *toolbutton, + EvSidebarAnnotations *sidebar_annots) +{ + EvAnnotationType annot_type; + + if (!gtk_toggle_tool_button_get_active (toolbutton)) { + g_signal_emit (sidebar_annots, signals[ANNOT_ADD_CANCELLED], 0, NULL); + return; + } + + if (GTK_TOOL_ITEM (toolbutton) == sidebar_annots->priv->annot_text_item) + annot_type = EV_ANNOTATION_TYPE_TEXT; + else + annot_type = EV_ANNOTATION_TYPE_UNKNOWN; + + g_signal_emit (sidebar_annots, signals[BEGIN_ANNOT_ADD], 0, annot_type); +} + +static void +ev_sidebar_annotations_add_annots_palette (EvSidebarAnnotations *ev_annots) +{ + GtkWidget *swindow; + GtkWidget *group; + GtkToolItem *item; + GtkWidget *label; + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + + ev_annots->priv->palette = gtk_tool_palette_new (); + group = gtk_tool_item_group_new (_("Annotations")); + gtk_container_add (GTK_CONTAINER (ev_annots->priv->palette), group); + + /* FIXME: use a better icon than EDIT */ + item = gtk_toggle_tool_button_new (); + gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), GTK_STOCK_EDIT); + gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), _("Text")); + gtk_widget_set_tooltip_text (GTK_WIDGET (item), _("Add text annotation")); + ev_annots->priv->annot_text_item = item; + g_signal_connect (item, "toggled", + G_CALLBACK (ev_sidebar_annotations_text_annot_button_toggled), + ev_annots); + gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); + gtk_widget_show (GTK_WIDGET (item)); + + gtk_container_add (GTK_CONTAINER (swindow), ev_annots->priv->palette); + gtk_widget_show (ev_annots->priv->palette); + + label = gtk_label_new (_("Add")); + gtk_notebook_append_page (GTK_NOTEBOOK (ev_annots->priv->notebook), + swindow, label); + gtk_widget_show (label); + + gtk_widget_show (swindow); +} + +static void +ev_sidebar_annotations_init (EvSidebarAnnotations *ev_annots) +{ + ev_annots->priv = EV_SIDEBAR_ANNOTATIONS_GET_PRIVATE (ev_annots); + + ev_annots->priv->notebook = gtk_notebook_new (); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (ev_annots->priv->notebook), FALSE); + gtk_notebook_set_show_border (GTK_NOTEBOOK (ev_annots->priv->notebook), FALSE); + ev_sidebar_annotations_add_annots_list (ev_annots); + ev_sidebar_annotations_add_annots_palette (ev_annots); + gtk_container_add (GTK_CONTAINER (ev_annots), ev_annots->priv->notebook); + gtk_widget_show (ev_annots->priv->notebook); +} + +static void +ev_sidebar_annotations_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebarAnnotations *ev_sidebar_annots; + + ev_sidebar_annots = EV_SIDEBAR_ANNOTATIONS (object); + + switch (prop_id) { + case PROP_WIDGET: + g_value_set_object (value, ev_sidebar_annots->priv->notebook); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_sidebar_annotations_class_init (EvSidebarAnnotationsClass *klass) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (klass); + + g_object_class->get_property = ev_sidebar_annotations_get_property; + g_object_class->dispose = ev_sidebar_annotations_dispose; + + g_type_class_add_private (g_object_class, sizeof (EvSidebarAnnotationsPrivate)); + + g_object_class_override_property (g_object_class, PROP_WIDGET, "main-widget"); + + signals[ANNOT_ACTIVATED] = + g_signal_new ("annot-activated", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarAnnotationsClass, annot_activated), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); + signals[BEGIN_ANNOT_ADD] = + g_signal_new ("begin-annot-add", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarAnnotationsClass, begin_annot_add), + NULL, NULL, + g_cclosure_marshal_VOID__ENUM, + G_TYPE_NONE, 1, + EV_TYPE_ANNOTATION_TYPE); + signals[ANNOT_ADD_CANCELLED] = + g_signal_new ("annot-add-cancelled", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarAnnotationsClass, annot_add_cancelled), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, + G_TYPE_NONE); +} + +GtkWidget * +ev_sidebar_annotations_new (void) +{ + return GTK_WIDGET (g_object_new (EV_TYPE_SIDEBAR_ANNOTATIONS, NULL)); +} + +void +ev_sidebar_annotations_annot_added (EvSidebarAnnotations *sidebar_annots, + EvAnnotation *annot) +{ + GtkToggleToolButton *toolbutton; + + if (EV_IS_ANNOTATION_TEXT (annot)) { + toolbutton = GTK_TOGGLE_TOOL_BUTTON (sidebar_annots->priv->annot_text_item); + g_signal_handlers_block_by_func (toolbutton, + ev_sidebar_annotations_text_annot_button_toggled, + sidebar_annots); + gtk_toggle_tool_button_set_active (toolbutton, FALSE); + g_signal_handlers_unblock_by_func (toolbutton, + ev_sidebar_annotations_text_annot_button_toggled, + sidebar_annots); + } + + ev_sidebar_annotations_load (sidebar_annots); +} + +static void +selection_changed_cb (GtkTreeSelection *selection, + EvSidebarAnnotations *sidebar_annots) +{ + GtkTreeModel *model; + GtkTreeIter iter; + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + EvMapping *mapping = NULL; + + gtk_tree_model_get (model, &iter, + COLUMN_ANNOT_MAPPING, &mapping, + -1); + if (mapping) + g_signal_emit (sidebar_annots, signals[ANNOT_ACTIVATED], 0, mapping); + } +} + +static void +job_finished_callback (EvJobAnnots *job, + EvSidebarAnnotations *sidebar_annots) +{ + EvSidebarAnnotationsPrivate *priv; + GtkTreeStore *model; + GtkTreeSelection *selection; + GList *l; + GdkPixbuf *text_icon = NULL; + GdkPixbuf *attachment_icon = NULL; + + priv = sidebar_annots->priv; + + if (!job->annots) { + GtkTreeModel *list; + + list = ev_sidebar_annotations_create_simple_model (_("Document contains no annotations")); + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), list); + g_object_unref (list); + + g_object_unref (job); + priv->job = NULL; + + return; + } + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + if (priv->selection_changed_id == 0) { + priv->selection_changed_id = + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed_cb), + sidebar_annots); + } + + model = gtk_tree_store_new (N_COLUMNS, + G_TYPE_STRING, + GDK_TYPE_PIXBUF, + G_TYPE_POINTER); + + for (l = job->annots; l; l = g_list_next (l)) { + EvMappingList *mapping_list; + GList *ll; + gchar *page_label; + GtkTreeIter iter; + gboolean found = FALSE; + + mapping_list = (EvMappingList *)l->data; + page_label = g_strdup_printf (_("Page %d"), + ev_mapping_list_get_page (mapping_list) + 1); + gtk_tree_store_append (model, &iter, NULL); + gtk_tree_store_set (model, &iter, + COLUMN_MARKUP, page_label, + -1); + g_free (page_label); + + for (ll = ev_mapping_list_get_list (mapping_list); ll; ll = g_list_next (ll)) { + EvAnnotation *annot; + const gchar *label; + const gchar *modified; + gchar *markup; + GtkTreeIter child_iter; + GdkPixbuf *pixbuf = NULL; + + annot = ((EvMapping *)(ll->data))->data; + if (!EV_IS_ANNOTATION_MARKUP (annot)) + continue; + + label = ev_annotation_markup_get_label (EV_ANNOTATION_MARKUP (annot)); + modified = ev_annotation_get_modified (annot); + if (modified) { + markup = g_strdup_printf ("<span weight=\"bold\">%s</span>\n%s", + label, modified); + } else { + markup = g_strdup_printf ("<span weight=\"bold\">%s</span>", label); + } + + if (EV_IS_ANNOTATION_TEXT (annot)) { + if (!text_icon) { + /* FIXME: use a better icon than EDIT */ + text_icon = gtk_widget_render_icon (priv->tree_view, + GTK_STOCK_EDIT, + GTK_ICON_SIZE_BUTTON, + NULL); + } + pixbuf = text_icon; + } else if (EV_IS_ANNOTATION_ATTACHMENT (annot)) { + if (!attachment_icon) { + attachment_icon = gtk_widget_render_icon (priv->tree_view, + EV_STOCK_ATTACHMENT, + GTK_ICON_SIZE_BUTTON, + NULL); + } + pixbuf = attachment_icon; + } + + gtk_tree_store_append (model, &child_iter, &iter); + gtk_tree_store_set (model, &child_iter, + COLUMN_MARKUP, markup, + COLUMN_ICON, pixbuf, + COLUMN_ANNOT_MAPPING, ll->data, + -1); + g_free (markup); + found = TRUE; + } + + if (!found) + gtk_tree_store_remove (model, &iter); + } + + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), + GTK_TREE_MODEL (model)); + g_object_unref (model); + + if (text_icon) + g_object_unref (text_icon); + if (attachment_icon) + g_object_unref (attachment_icon); + + g_object_unref (job); + priv->job = NULL; +} + +static void +ev_sidebar_annotations_load (EvSidebarAnnotations *sidebar_annots) +{ + EvSidebarAnnotationsPrivate *priv = sidebar_annots->priv; + + if (priv->job) { + g_signal_handlers_disconnect_by_func (priv->job, + job_finished_callback, + sidebar_annots); + g_object_unref (priv->job); + } + + priv->job = ev_job_annots_new (priv->document); + g_signal_connect (priv->job, "finished", + G_CALLBACK (job_finished_callback), + sidebar_annots); + /* The priority doesn't matter for this job */ + ev_job_scheduler_push_job (priv->job, EV_JOB_PRIORITY_NONE); +} + +static void +ev_sidebar_annotations_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarAnnotations *sidebar_annots) +{ + EvDocument *document = ev_document_model_get_document (model); + EvSidebarAnnotationsPrivate *priv = sidebar_annots->priv; + gboolean show_tabs; + + if (!EV_IS_DOCUMENT_ANNOTATIONS (document)) + return; + + if (priv->document) + g_object_unref (priv->document); + priv->document = g_object_ref (document); + + show_tabs = ev_document_annotations_can_add_annotation (EV_DOCUMENT_ANNOTATIONS (document)); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), show_tabs); + + ev_sidebar_annotations_load (sidebar_annots); +} + +/* EvSidebarPageIface */ +static void +ev_sidebar_annotations_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model) +{ + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_annotations_document_changed_cb), + sidebar_page); +} + +static gboolean +ev_sidebar_annotations_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + return (EV_IS_DOCUMENT_ANNOTATIONS (document)); +} + +static const gchar * +ev_sidebar_annotations_get_label (EvSidebarPage *sidebar_page) +{ + return _("Annotations"); +} + +static void +ev_sidebar_annotations_page_iface_init (EvSidebarPageInterface *iface) +{ + iface->support_document = ev_sidebar_annotations_support_document; + iface->set_model = ev_sidebar_annotations_set_model; + iface->get_label = ev_sidebar_annotations_get_label; +} diff --git a/shell/ev-sidebar-annotations.h b/shell/ev-sidebar-annotations.h new file mode 100644 index 00000000..6160868d --- /dev/null +++ b/shell/ev-sidebar-annotations.h @@ -0,0 +1,62 @@ +/* ev-sidebar-annotations.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __EV_SIDEBAR_ANNOTATIONS_H__ +#define __EV_SIDEBAR_ANNOTATIONS_H__ + +#include <gtk/gtk.h> +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _EvSidebarAnnotations EvSidebarAnnotations; +typedef struct _EvSidebarAnnotationsClass EvSidebarAnnotationsClass; +typedef struct _EvSidebarAnnotationsPrivate EvSidebarAnnotationsPrivate; + +#define EV_TYPE_SIDEBAR_ANNOTATIONS (ev_sidebar_annotations_get_type()) +#define EV_SIDEBAR_ANNOTATIONS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_ANNOTATIONS, EvSidebarAnnotations)) +#define EV_SIDEBAR_ANNOTATIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_ANNOTATIONS, EvSidebarAnnotationsClass)) +#define EV_IS_SIDEBAR_ANNOTATIONS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_ANNOTATIONS)) +#define EV_IS_SIDEBAR_ANNOTATIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_ANNOTATIONS)) +#define EV_SIDEBAR_ANNOTATIONS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_ANNOTATIONS, EvSidebarAnnotationsClass)) + +struct _EvSidebarAnnotations { + GtkVBox base_instance; + + EvSidebarAnnotationsPrivate *priv; +}; + +struct _EvSidebarAnnotationsClass { + GtkVBoxClass base_class; + + void (* annot_activated) (EvSidebarAnnotations *sidebar_annots, + EvMapping *mapping); + void (* begin_annot_add) (EvSidebarAnnotations *sidebar_annots, + EvAnnotationType annot_type); + void (* annot_add_cancelled) (EvSidebarAnnotations *sidebar_annots); +}; + +GType ev_sidebar_annotations_get_type (void) G_GNUC_CONST; +GtkWidget *ev_sidebar_annotations_new (void); +void ev_sidebar_annotations_annot_added (EvSidebarAnnotations *sidebar_annots, + EvAnnotation *annot); +G_END_DECLS + +#endif /* __EV_SIDEBAR_ANNOTATIONS_H__ */ diff --git a/shell/ev-sidebar-attachments.c b/shell/ev-sidebar-attachments.c new file mode 100644 index 00000000..273b784f --- /dev/null +++ b/shell/ev-sidebar-attachments.c @@ -0,0 +1,707 @@ +/* ev-sidebar-attachments.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos + * + * Author: + * Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#include <glib/gi18n.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> + +#include "ev-document-attachments.h" +#include "ev-jobs.h" +#include "ev-job-scheduler.h" +#include "ev-file-helpers.h" +#include "ev-sidebar-attachments.h" +#include "ev-sidebar-page.h" + +enum { + COLUMN_ICON, + COLUMN_NAME, + COLUMN_DESCRIPTION, + COLUMN_ATTACHMENT, + N_COLS +}; + +enum { + PROP_0, + PROP_WIDGET, +}; + +enum { + SIGNAL_POPUP_MENU, + N_SIGNALS +}; + +static guint signals[N_SIGNALS]; + +struct _EvSidebarAttachmentsPrivate { + GtkWidget *icon_view; + GtkListStore *model; + + /* Icons */ + GtkIconTheme *icon_theme; + GHashTable *icon_cache; +}; + +static void ev_sidebar_attachments_page_iface_init (EvSidebarPageInterface *iface); + +G_DEFINE_TYPE_EXTENDED (EvSidebarAttachments, + ev_sidebar_attachments, + GTK_TYPE_VBOX, + 0, + G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE, + ev_sidebar_attachments_page_iface_init)) + +#define EV_SIDEBAR_ATTACHMENTS_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsPrivate)) + +/* Icon cache */ +static void +ev_sidebar_attachments_icon_cache_add (EvSidebarAttachments *ev_attachbar, + const gchar *mime_type, + const GdkPixbuf *pixbuf) +{ + g_assert (mime_type != NULL); + g_assert (GDK_IS_PIXBUF (pixbuf)); + + g_hash_table_insert (ev_attachbar->priv->icon_cache, + (gpointer)g_strdup (mime_type), + (gpointer)pixbuf); + +} + +static GdkPixbuf * +icon_theme_get_pixbuf_from_mime_type (GtkIconTheme *icon_theme, + const gchar *mime_type) +{ + const char *separator; + GString *icon_name; + GdkPixbuf *pixbuf; + + separator = strchr (mime_type, '/'); + if (!separator) + return NULL; /* maybe we should return a GError with "invalid MIME-type" */ + + icon_name = g_string_new ("mate-mime-"); + g_string_append_len (icon_name, mime_type, separator - mime_type); + g_string_append_c (icon_name, '-'); + g_string_append (icon_name, separator + 1); + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name->str, 48, 0, NULL); + g_string_free (icon_name, TRUE); + if (pixbuf) + return pixbuf; + + icon_name = g_string_new ("mate-mime-"); + g_string_append_len (icon_name, mime_type, separator - mime_type); + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name->str, 48, 0, NULL); + g_string_free (icon_name, TRUE); + + return pixbuf; +} + +static GdkPixbuf * +ev_sidebar_attachments_icon_cache_get (EvSidebarAttachments *ev_attachbar, + const gchar *mime_type) +{ + GdkPixbuf *pixbuf = NULL; + + g_assert (mime_type != NULL); + + pixbuf = g_hash_table_lookup (ev_attachbar->priv->icon_cache, + mime_type); + + if (GDK_IS_PIXBUF (pixbuf)) + return pixbuf; + + pixbuf = icon_theme_get_pixbuf_from_mime_type (ev_attachbar->priv->icon_theme, + mime_type); + + if (GDK_IS_PIXBUF (pixbuf)) + ev_sidebar_attachments_icon_cache_add (ev_attachbar, + mime_type, + pixbuf); + + return pixbuf; +} + +static gboolean +icon_cache_update_icon (gchar *key, + GdkPixbuf *value, + EvSidebarAttachments *ev_attachbar) +{ + GdkPixbuf *pixbuf = NULL; + + pixbuf = icon_theme_get_pixbuf_from_mime_type (ev_attachbar->priv->icon_theme, + key); + + ev_sidebar_attachments_icon_cache_add (ev_attachbar, + key, + pixbuf); + + return FALSE; +} + +static void +ev_sidebar_attachments_icon_cache_refresh (EvSidebarAttachments *ev_attachbar) +{ + g_hash_table_foreach_remove (ev_attachbar->priv->icon_cache, + (GHRFunc) icon_cache_update_icon, + ev_attachbar); +} + +static EvAttachment * +ev_sidebar_attachments_get_attachment_at_pos (EvSidebarAttachments *ev_attachbar, + gint x, + gint y) +{ + GtkTreePath *path = NULL; + GtkTreeIter iter; + EvAttachment *attachment = NULL; + + path = gtk_icon_view_get_path_at_pos (GTK_ICON_VIEW (ev_attachbar->priv->icon_view), + x, y); + if (!path) { + return NULL; + } + + gtk_tree_model_get_iter (GTK_TREE_MODEL (ev_attachbar->priv->model), + &iter, path); + gtk_tree_model_get (GTK_TREE_MODEL (ev_attachbar->priv->model), &iter, + COLUMN_ATTACHMENT, &attachment, + -1); + + gtk_icon_view_select_path (GTK_ICON_VIEW (ev_attachbar->priv->icon_view), + path); + + gtk_tree_path_free (path); + + return attachment; +} + +static gboolean +ev_sidebar_attachments_popup_menu_show (EvSidebarAttachments *ev_attachbar, + gint x, + gint y) +{ + GtkIconView *icon_view; + GtkTreePath *path; + GList *selected = NULL, *l; + GList *attach_list = NULL; + + icon_view = GTK_ICON_VIEW (ev_attachbar->priv->icon_view); + + path = gtk_icon_view_get_path_at_pos (icon_view, x, y); + if (!path) + return FALSE; + + if (!gtk_icon_view_path_is_selected (icon_view, path)) { + gtk_icon_view_unselect_all (icon_view); + gtk_icon_view_select_path (icon_view, path); + } + + gtk_tree_path_free (path); + + selected = gtk_icon_view_get_selected_items (icon_view); + if (!selected) + return FALSE; + + for (l = selected; l && l->data; l = g_list_next (l)) { + GtkTreeIter iter; + EvAttachment *attachment = NULL; + + path = (GtkTreePath *) l->data; + + gtk_tree_model_get_iter (GTK_TREE_MODEL (ev_attachbar->priv->model), + &iter, path); + gtk_tree_model_get (GTK_TREE_MODEL (ev_attachbar->priv->model), &iter, + COLUMN_ATTACHMENT, &attachment, + -1); + + if (attachment) + attach_list = g_list_prepend (attach_list, attachment); + + gtk_tree_path_free (path); + } + + g_list_free (selected); + + if (!attach_list) + return FALSE; + + g_signal_emit (ev_attachbar, signals[SIGNAL_POPUP_MENU], 0, attach_list); + + return TRUE; +} + +static gboolean +ev_sidebar_attachments_popup_menu (GtkWidget *widget) +{ + EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (widget); + gint x, y; + + gtk_widget_get_pointer (widget, &x, &y); + + return ev_sidebar_attachments_popup_menu_show (ev_attachbar, x, y); +} + +static gboolean +ev_sidebar_attachments_button_press (EvSidebarAttachments *ev_attachbar, + GdkEventButton *event, + GtkWidget *icon_view) +{ + if (!gtk_widget_has_focus (icon_view)) { + gtk_widget_grab_focus (icon_view); + } + + if (event->button == 2) + return FALSE; + + switch (event->button) { + case 1: + if (event->type == GDK_2BUTTON_PRESS) { + GError *error = NULL; + EvAttachment *attachment; + + attachment = ev_sidebar_attachments_get_attachment_at_pos (ev_attachbar, + event->x, + event->y); + if (!attachment) + return FALSE; + + ev_attachment_open (attachment, + gtk_widget_get_screen (GTK_WIDGET (ev_attachbar)), + event->time, + &error); + + if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } + + g_object_unref (attachment); + + return TRUE; + } + break; + case 3: + return ev_sidebar_attachments_popup_menu_show (ev_attachbar, event->x, event->y); + } + + return FALSE; +} + +static void +ev_sidebar_attachments_update_icons (EvSidebarAttachments *ev_attachbar, + gpointer user_data) +{ + GtkTreeIter iter; + gboolean valid; + + ev_sidebar_attachments_icon_cache_refresh (ev_attachbar); + + valid = gtk_tree_model_get_iter_first ( + GTK_TREE_MODEL (ev_attachbar->priv->model), + &iter); + + while (valid) { + EvAttachment *attachment = NULL; + GdkPixbuf *pixbuf = NULL; + const gchar *mime_type; + + gtk_tree_model_get (GTK_TREE_MODEL (ev_attachbar->priv->model), &iter, + COLUMN_ATTACHMENT, &attachment, + -1); + + mime_type = ev_attachment_get_mime_type (attachment); + + if (attachment) + g_object_unref (attachment); + + pixbuf = ev_sidebar_attachments_icon_cache_get (ev_attachbar, + mime_type); + + gtk_list_store_set (ev_attachbar->priv->model, &iter, + COLUMN_ICON, pixbuf, + -1); + + valid = gtk_tree_model_iter_next ( + GTK_TREE_MODEL (ev_attachbar->priv->model), + &iter); + } +} + +static void +ev_sidebar_attachments_screen_changed (GtkWidget *widget, + GdkScreen *old_screen) +{ + EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (widget); + GdkScreen *screen; + + if (!ev_attachbar->priv->icon_theme) + return; + + screen = gtk_widget_get_screen (widget); + if (screen == old_screen) + return; + + if (old_screen) { + g_signal_handlers_disconnect_by_func ( + gtk_icon_theme_get_for_screen (old_screen), + G_CALLBACK (ev_sidebar_attachments_update_icons), + ev_attachbar); + } + + ev_attachbar->priv->icon_theme = gtk_icon_theme_get_for_screen (screen); + g_signal_connect_swapped (ev_attachbar->priv->icon_theme, + "changed", + G_CALLBACK (ev_sidebar_attachments_update_icons), + (gpointer) ev_attachbar); + + if (GTK_WIDGET_CLASS (ev_sidebar_attachments_parent_class)->screen_changed) { + GTK_WIDGET_CLASS (ev_sidebar_attachments_parent_class)->screen_changed (widget, old_screen); + } +} + +static void +ev_sidebar_attachments_drag_data_get (GtkWidget *widget, + GdkDragContext *drag_context, + GtkSelectionData *data, + guint info, + guint time, + gpointer user_data) +{ + EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (user_data); + GList *selected = NULL, *l; + GPtrArray *uris; + char **uri_list; + + selected = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (ev_attachbar->priv->icon_view)); + if (!selected) + return; + + uris = g_ptr_array_new (); + + for (l = selected; l && l->data; l = g_list_next (l)) { + EvAttachment *attachment; + GtkTreePath *path; + GtkTreeIter iter; + GFile *file; + gchar *template; + GError *error = NULL; + + path = (GtkTreePath *) l->data; + + gtk_tree_model_get_iter (GTK_TREE_MODEL (ev_attachbar->priv->model), + &iter, path); + gtk_tree_model_get (GTK_TREE_MODEL (ev_attachbar->priv->model), &iter, + COLUMN_ATTACHMENT, &attachment, + -1); + + /* FIXMEchpe: convert to filename encoding first! */ + template = g_strdup_printf ("%s.XXXXXX", ev_attachment_get_name (attachment)); + file = ev_mkstemp_file (template, &error); + g_free (template); + + if (file != NULL && ev_attachment_save (attachment, file, &error)) { + gchar *uri; + + uri = g_file_get_uri (file); + g_ptr_array_add (uris, uri); + } + + if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } + + gtk_tree_path_free (path); + g_object_unref (file); + g_object_unref (attachment); + } + + g_ptr_array_add (uris, NULL); /* NULL-terminate */ + uri_list = (char **) g_ptr_array_free (uris, FALSE); + gtk_selection_data_set_uris (data, uri_list); + g_strfreev (uri_list); + + g_list_free (selected); +} + +static void +ev_sidebar_attachments_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebarAttachments *ev_sidebar_attachments; + + ev_sidebar_attachments = EV_SIDEBAR_ATTACHMENTS (object); + + switch (prop_id) { + case PROP_WIDGET: + g_value_set_object (value, ev_sidebar_attachments->priv->icon_view); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_sidebar_attachments_destroy (GtkObject *object) +{ + EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (object); + + if (ev_attachbar->priv->icon_theme) { + g_signal_handlers_disconnect_by_func ( + ev_attachbar->priv->icon_theme, + G_CALLBACK (ev_sidebar_attachments_update_icons), + ev_attachbar); + ev_attachbar->priv->icon_theme = NULL; + } + + if (ev_attachbar->priv->model) { + g_object_unref (ev_attachbar->priv->model); + ev_attachbar->priv->model = NULL; + } + + if (ev_attachbar->priv->icon_cache) { + g_hash_table_destroy (ev_attachbar->priv->icon_cache); + ev_attachbar->priv->icon_cache = NULL; + } + + (* GTK_OBJECT_CLASS (ev_sidebar_attachments_parent_class)->destroy) (object); +} + +static void +ev_sidebar_attachments_class_init (EvSidebarAttachmentsClass *ev_attachbar_class) +{ + GObjectClass *g_object_class; + GtkObjectClass *gtk_object_class; + GtkWidgetClass *gtk_widget_class; + + g_object_class = G_OBJECT_CLASS (ev_attachbar_class); + gtk_object_class = GTK_OBJECT_CLASS (ev_attachbar_class); + gtk_widget_class = GTK_WIDGET_CLASS (ev_attachbar_class); + + g_object_class->get_property = ev_sidebar_attachments_get_property; + gtk_object_class->destroy = ev_sidebar_attachments_destroy; + gtk_widget_class->popup_menu = ev_sidebar_attachments_popup_menu; + gtk_widget_class->screen_changed = ev_sidebar_attachments_screen_changed; + + g_type_class_add_private (g_object_class, sizeof (EvSidebarAttachmentsPrivate)); + + /* Signals */ + signals[SIGNAL_POPUP_MENU] = + g_signal_new ("popup", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarAttachmentsClass, popup_menu), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); + + g_object_class_override_property (g_object_class, + PROP_WIDGET, + "main-widget"); +} + +static void +ev_sidebar_attachments_init (EvSidebarAttachments *ev_attachbar) +{ + GtkWidget *swindow; + + ev_attachbar->priv = EV_SIDEBAR_ATTACHMENTS_GET_PRIVATE (ev_attachbar); + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + /* Data Model */ + ev_attachbar->priv->model = gtk_list_store_new (N_COLS, + GDK_TYPE_PIXBUF, + G_TYPE_STRING, + G_TYPE_STRING, + EV_TYPE_ATTACHMENT); + + /* Icon View */ + ev_attachbar->priv->icon_view = + gtk_icon_view_new_with_model (GTK_TREE_MODEL (ev_attachbar->priv->model)); + gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (ev_attachbar->priv->icon_view), + GTK_SELECTION_MULTIPLE); + gtk_icon_view_set_columns (GTK_ICON_VIEW (ev_attachbar->priv->icon_view), -1); + g_object_set (G_OBJECT (ev_attachbar->priv->icon_view), + "text-column", COLUMN_NAME, + "pixbuf-column", COLUMN_ICON, + NULL); + g_signal_connect_swapped (ev_attachbar->priv->icon_view, + "button-press-event", + G_CALLBACK (ev_sidebar_attachments_button_press), + (gpointer) ev_attachbar); + + gtk_container_add (GTK_CONTAINER (swindow), + ev_attachbar->priv->icon_view); + + gtk_container_add (GTK_CONTAINER (ev_attachbar), + swindow); + gtk_widget_show_all (GTK_WIDGET (ev_attachbar)); + + /* Icon Theme */ + ev_attachbar->priv->icon_theme = NULL; + + /* Icon Cache */ + ev_attachbar->priv->icon_cache = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + g_object_unref); + + /* Drag and Drop */ + gtk_icon_view_enable_model_drag_source ( + GTK_ICON_VIEW (ev_attachbar->priv->icon_view), + GDK_BUTTON1_MASK, + NULL, 0, + GDK_ACTION_COPY); + gtk_drag_source_add_uri_targets (ev_attachbar->priv->icon_view); + + g_signal_connect (ev_attachbar->priv->icon_view, + "drag-data-get", + G_CALLBACK (ev_sidebar_attachments_drag_data_get), + (gpointer) ev_attachbar); +} + +GtkWidget * +ev_sidebar_attachments_new (void) +{ + GtkWidget *ev_attachbar; + + ev_attachbar = g_object_new (EV_TYPE_SIDEBAR_ATTACHMENTS, NULL); + + return ev_attachbar; +} + +static void +job_finished_callback (EvJobAttachments *job, + EvSidebarAttachments *ev_attachbar) +{ + GList *l; + + for (l = job->attachments; l && l->data; l = g_list_next (l)) { + EvAttachment *attachment; + GtkTreeIter iter; + GdkPixbuf *pixbuf = NULL; + const gchar *mime_type; + + attachment = EV_ATTACHMENT (l->data); + + mime_type = ev_attachment_get_mime_type (attachment); + pixbuf = ev_sidebar_attachments_icon_cache_get (ev_attachbar, + mime_type); + + gtk_list_store_append (ev_attachbar->priv->model, &iter); + gtk_list_store_set (ev_attachbar->priv->model, &iter, + COLUMN_NAME, ev_attachment_get_name (attachment), + COLUMN_ICON, pixbuf, + COLUMN_ATTACHMENT, attachment, + -1); + } + + g_object_unref (job); +} + + +static void +ev_sidebar_attachments_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarAttachments *ev_attachbar) +{ + EvDocument *document = ev_document_model_get_document (model); + EvJob *job; + + if (!EV_IS_DOCUMENT_ATTACHMENTS (document)) + return; + + if (!ev_document_attachments_has_attachments (EV_DOCUMENT_ATTACHMENTS (document))) + return; + + if (!ev_attachbar->priv->icon_theme) { + GdkScreen *screen; + + screen = gtk_widget_get_screen (GTK_WIDGET (ev_attachbar)); + ev_attachbar->priv->icon_theme = gtk_icon_theme_get_for_screen (screen); + g_signal_connect_swapped (ev_attachbar->priv->icon_theme, + "changed", + G_CALLBACK (ev_sidebar_attachments_update_icons), + (gpointer) ev_attachbar); + } + + gtk_list_store_clear (ev_attachbar->priv->model); + + job = ev_job_attachments_new (document); + g_signal_connect (job, "finished", + G_CALLBACK (job_finished_callback), + ev_attachbar); + g_signal_connect (job, "cancelled", + G_CALLBACK (g_object_unref), + NULL); + /* The priority doesn't matter for this job */ + ev_job_scheduler_push_job (job, EV_JOB_PRIORITY_NONE); +} + +static void +ev_sidebar_attachments_set_model (EvSidebarPage *page, + EvDocumentModel *model) +{ + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_attachments_document_changed_cb), + page); +} + +static gboolean +ev_sidebar_attachments_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + return (EV_IS_DOCUMENT_ATTACHMENTS (document) && + ev_document_attachments_has_attachments (EV_DOCUMENT_ATTACHMENTS (document))); +} + +static const gchar* +ev_sidebar_attachments_get_label (EvSidebarPage *sidebar_page) +{ + return _("Attachments"); +} + +static void +ev_sidebar_attachments_page_iface_init (EvSidebarPageInterface *iface) +{ + iface->support_document = ev_sidebar_attachments_support_document; + iface->set_model = ev_sidebar_attachments_set_model; + iface->get_label = ev_sidebar_attachments_get_label; +} + diff --git a/shell/ev-sidebar-attachments.h b/shell/ev-sidebar-attachments.h new file mode 100644 index 00000000..35e2a324 --- /dev/null +++ b/shell/ev-sidebar-attachments.h @@ -0,0 +1,62 @@ +/* ev-sidebar-attachments.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2006 Carlos Garcia Campos + * + * Author: + * Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_SIDEBAR_ATTACHMENTS_H__ +#define __EV_SIDEBAR_ATTACHMENTS_H__ + +#include "ev-attachment.h" +#include "ev-document.h" + +G_BEGIN_DECLS + +typedef struct _EvSidebarAttachments EvSidebarAttachments; +typedef struct _EvSidebarAttachmentsClass EvSidebarAttachmentsClass; +typedef struct _EvSidebarAttachmentsPrivate EvSidebarAttachmentsPrivate; + +#define EV_TYPE_SIDEBAR_ATTACHMENTS (ev_sidebar_attachments_get_type()) +#define EV_SIDEBAR_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachments)) +#define EV_SIDEBAR_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsClass)) +#define EV_IS_SIDEBAR_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_ATTACHMENTS)) +#define EV_IS_SIDEBAR_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_ATTACHMENTS)) +#define EV_SIDEBAR_ATTACHMENTS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsClass)) + +struct _EvSidebarAttachments { + GtkVBox base_instance; + + EvSidebarAttachmentsPrivate *priv; +}; + +struct _EvSidebarAttachmentsClass { + GtkVBoxClass base_class; + + /* Signals */ + void (*popup_menu) (EvSidebarAttachments *ev_attachbar, + EvAttachment *attachment); +}; + +GType ev_sidebar_attachments_get_type (void) G_GNUC_CONST; +GtkWidget *ev_sidebar_attachments_new (void); + +G_END_DECLS + +#endif /* __EV_SIDEBAR_ATTACHMENTS_H__ */ diff --git a/shell/ev-sidebar-layers.c b/shell/ev-sidebar-layers.c new file mode 100644 index 00000000..686cacaa --- /dev/null +++ b/shell/ev-sidebar-layers.c @@ -0,0 +1,411 @@ +/* ev-sidebar-layers.c + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include <glib/gi18n.h> +#include "gimpcellrenderertoggle.h" + +#include "ev-document-layers.h" +#include "ev-sidebar-page.h" +#include "ev-jobs.h" +#include "ev-job-scheduler.h" +#include "ev-stock-icons.h" +#include "ev-sidebar-layers.h" + +struct _EvSidebarLayersPrivate { + GtkTreeView *tree_view; + + EvDocument *document; + EvJob *job; +}; + +enum { + PROP_0, + PROP_WIDGET +}; + +enum { + LAYERS_VISIBILITY_CHANGED, + N_SIGNALS +}; + +static void ev_sidebar_layers_page_iface_init (EvSidebarPageInterface *iface); +static void job_finished_callback (EvJobLayers *job, + EvSidebarLayers *sidebar_layers); + +static guint signals[N_SIGNALS]; + +G_DEFINE_TYPE_EXTENDED (EvSidebarLayers, + ev_sidebar_layers, + GTK_TYPE_VBOX, + 0, + G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE, + ev_sidebar_layers_page_iface_init)) + +#define EV_SIDEBAR_LAYERS_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_LAYERS, EvSidebarLayersPrivate)) + +static void +ev_sidebar_layers_dispose (GObject *object) +{ + EvSidebarLayers *sidebar = EV_SIDEBAR_LAYERS (object); + + if (sidebar->priv->job) { + g_signal_handlers_disconnect_by_func (sidebar->priv->job, + job_finished_callback, + sidebar); + ev_job_cancel (sidebar->priv->job); + g_object_unref (sidebar->priv->job); + sidebar->priv->job = NULL; + } + + if (sidebar->priv->document) { + g_object_unref (sidebar->priv->document); + sidebar->priv->document = NULL; + } + + G_OBJECT_CLASS (ev_sidebar_layers_parent_class)->dispose (object); +} + +static void +ev_sidebar_layers_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebarLayers *ev_sidebar_layers; + + ev_sidebar_layers = EV_SIDEBAR_LAYERS (object); + + switch (prop_id) { + case PROP_WIDGET: + g_value_set_object (value, ev_sidebar_layers->priv->tree_view); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GtkTreeModel * +ev_sidebar_layers_create_loading_model (void) +{ + GtkTreeModel *retval; + GtkTreeIter iter; + gchar *markup; + + /* Creates a fake model to indicate that we're loading */ + retval = (GtkTreeModel *)gtk_list_store_new (EV_DOCUMENT_LAYERS_N_COLUMNS, + G_TYPE_STRING, + G_TYPE_OBJECT, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, + G_TYPE_INT); + + gtk_list_store_append (GTK_LIST_STORE (retval), &iter); + markup = g_strdup_printf ("<span size=\"larger\" style=\"italic\">%s</span>", _("Loadingā¦")); + gtk_list_store_set (GTK_LIST_STORE (retval), &iter, + EV_DOCUMENT_LAYERS_COLUMN_TITLE, markup, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, FALSE, + EV_DOCUMENT_LAYERS_COLUMN_ENABLED, TRUE, + EV_DOCUMENT_LAYERS_COLUMN_SHOWTOGGLE, FALSE, + EV_DOCUMENT_LAYERS_COLUMN_RBGROUP, -1, + EV_DOCUMENT_LAYERS_COLUMN_LAYER, NULL, + -1); + g_free (markup); + + return retval; +} + +static gboolean +update_kids (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + GtkTreeIter *parent) +{ + if (gtk_tree_store_is_ancestor (GTK_TREE_STORE (model), parent, iter)) { + gboolean visible; + + gtk_tree_model_get (model, parent, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, &visible, + -1); + gtk_tree_store_set (GTK_TREE_STORE (model), iter, + EV_DOCUMENT_LAYERS_COLUMN_ENABLED, visible, + -1); + } + + return FALSE; +} + +static gboolean +clear_rb_group (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gint *rb_group) +{ + gint group; + + gtk_tree_model_get (model, iter, + EV_DOCUMENT_LAYERS_COLUMN_RBGROUP, &group, + -1); + + if (group == *rb_group) { + gtk_tree_store_set (GTK_TREE_STORE (model), iter, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, FALSE, + -1); + } + + return FALSE; +} + +static void +ev_sidebar_layers_visibility_changed (GtkCellRendererToggle *cell, + gchar *path_str, + EvSidebarLayers *ev_layers) +{ + GtkTreeModel *model; + GtkTreePath *path; + GtkTreeIter iter; + gboolean visible; + EvLayer *layer; + + model = gtk_tree_view_get_model (ev_layers->priv->tree_view); + + path = gtk_tree_path_new_from_string (path_str); + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, &visible, + EV_DOCUMENT_LAYERS_COLUMN_LAYER, &layer, + -1); + + visible = !visible; + if (visible) { + gint rb_group; + + ev_document_layers_show_layer (EV_DOCUMENT_LAYERS (ev_layers->priv->document), + layer); + + rb_group = ev_layer_get_rb_group (layer); + if (rb_group) { + gtk_tree_model_foreach (model, + (GtkTreeModelForeachFunc)clear_rb_group, + &rb_group); + } + } else { + ev_document_layers_hide_layer (EV_DOCUMENT_LAYERS (ev_layers->priv->document), + layer); + } + + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, visible, + -1); + + if (ev_layer_is_parent (layer)) { + gtk_tree_model_foreach (model, + (GtkTreeModelForeachFunc)update_kids, + &iter); + } + + gtk_tree_path_free (path); + + g_signal_emit (ev_layers, signals[LAYERS_VISIBILITY_CHANGED], 0); +} + +static GtkTreeView * +ev_sidebar_layers_create_tree_view (EvSidebarLayers *ev_layers) +{ + GtkTreeView *tree_view; + GtkTreeViewColumn *column; + GtkCellRenderer *renderer; + + tree_view = GTK_TREE_VIEW (gtk_tree_view_new ()); + gtk_tree_view_set_headers_visible (tree_view, FALSE); + gtk_tree_selection_set_mode (gtk_tree_view_get_selection (tree_view), + GTK_SELECTION_NONE); + + + column = gtk_tree_view_column_new (); + + renderer = gimp_cell_renderer_toggle_new (EV_STOCK_VISIBLE); + gtk_tree_view_column_pack_start (column, renderer, FALSE); + gtk_tree_view_column_set_attributes (column, renderer, + "active", EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, + "activatable", EV_DOCUMENT_LAYERS_COLUMN_ENABLED, + "visible", EV_DOCUMENT_LAYERS_COLUMN_SHOWTOGGLE, + "sensitive", EV_DOCUMENT_LAYERS_COLUMN_ENABLED, + NULL); + g_object_set (G_OBJECT (renderer), + "xpad", 0, + "ypad", 0, + NULL); + g_signal_connect (renderer, "toggled", + G_CALLBACK (ev_sidebar_layers_visibility_changed), + (gpointer)ev_layers); + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_start (column, renderer, TRUE); + gtk_tree_view_column_set_attributes (column, renderer, + "markup", EV_DOCUMENT_LAYERS_COLUMN_TITLE, + "sensitive", EV_DOCUMENT_LAYERS_COLUMN_ENABLED, + NULL); + g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); + + gtk_tree_view_append_column (tree_view, column); + + return tree_view; +} + +static void +ev_sidebar_layers_init (EvSidebarLayers *ev_layers) +{ + GtkWidget *swindow; + GtkTreeModel *model; + + ev_layers->priv = EV_SIDEBAR_LAYERS_GET_PRIVATE (ev_layers); + + swindow = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + /* Data Model */ + model = ev_sidebar_layers_create_loading_model (); + + /* Layers list */ + ev_layers->priv->tree_view = ev_sidebar_layers_create_tree_view (ev_layers); + gtk_tree_view_set_model (ev_layers->priv->tree_view, model); + g_object_unref (model); + + gtk_container_add (GTK_CONTAINER (swindow), + GTK_WIDGET (ev_layers->priv->tree_view)); + + gtk_container_add (GTK_CONTAINER (ev_layers), swindow); + gtk_widget_show_all (GTK_WIDGET (ev_layers)); +} + +static void +ev_sidebar_layers_class_init (EvSidebarLayersClass *ev_layers_class) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (ev_layers_class); + + g_object_class->get_property = ev_sidebar_layers_get_property; + g_object_class->dispose = ev_sidebar_layers_dispose; + + g_type_class_add_private (g_object_class, sizeof (EvSidebarLayersPrivate)); + + g_object_class_override_property (g_object_class, PROP_WIDGET, "main-widget"); + + signals[LAYERS_VISIBILITY_CHANGED] = + g_signal_new ("layers_visibility_changed", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarLayersClass, layers_visibility_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, G_TYPE_NONE); +} + +GtkWidget * +ev_sidebar_layers_new (void) +{ + return GTK_WIDGET (g_object_new (EV_TYPE_SIDEBAR_LAYERS, NULL)); +} + +static void +job_finished_callback (EvJobLayers *job, + EvSidebarLayers *sidebar_layers) +{ + EvSidebarLayersPrivate *priv; + + priv = sidebar_layers->priv; + + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), job->model); + + g_object_unref (job); + priv->job = NULL; +} + +static void +ev_sidebar_layers_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarLayers *sidebar_layers) +{ + EvDocument *document = ev_document_model_get_document (model); + EvSidebarLayersPrivate *priv = sidebar_layers->priv; + + if (!EV_IS_DOCUMENT_LAYERS (document)) + return; + + if (priv->document) { + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), NULL); + g_object_unref (priv->document); + } + + priv->document = g_object_ref (document); + + if (priv->job) { + g_signal_handlers_disconnect_by_func (priv->job, + job_finished_callback, + sidebar_layers); + g_object_unref (priv->job); + } + + priv->job = ev_job_layers_new (document); + g_signal_connect (priv->job, "finished", + G_CALLBACK (job_finished_callback), + sidebar_layers); + /* The priority doesn't matter for this job */ + ev_job_scheduler_push_job (priv->job, EV_JOB_PRIORITY_NONE); +} + +static void +ev_sidebar_layers_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model) +{ + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_layers_document_changed_cb), + sidebar_page); +} + +static gboolean +ev_sidebar_layers_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + return (EV_IS_DOCUMENT_LAYERS (document) && + ev_document_layers_has_layers (EV_DOCUMENT_LAYERS (document))); +} + +static const gchar* +ev_sidebar_layers_get_label (EvSidebarPage *sidebar_page) +{ + return _("Layers"); +} + +static void +ev_sidebar_layers_page_iface_init (EvSidebarPageInterface *iface) +{ + iface->support_document = ev_sidebar_layers_support_document; + iface->set_model = ev_sidebar_layers_set_model; + iface->get_label = ev_sidebar_layers_get_label; +} + diff --git a/shell/ev-sidebar-layers.h b/shell/ev-sidebar-layers.h new file mode 100644 index 00000000..573dc277 --- /dev/null +++ b/shell/ev-sidebar-layers.h @@ -0,0 +1,58 @@ +/* ev-sidebar-layers.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_SIDEBAR_LAYERS_H__ +#define __EV_SIDEBAR_LAYERS_H__ + +#include <gtk/gtk.h> +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _EvSidebarLayers EvSidebarLayers; +typedef struct _EvSidebarLayersClass EvSidebarLayersClass; +typedef struct _EvSidebarLayersPrivate EvSidebarLayersPrivate; + +#define EV_TYPE_SIDEBAR_LAYERS (ev_sidebar_layers_get_type()) +#define EV_SIDEBAR_LAYERS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_LAYERS, EvSidebarLayers)) +#define EV_SIDEBAR_LAYERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_LAYERS, EvSidebarLayersClass)) +#define EV_IS_SIDEBAR_LAYERS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_LAYERS)) +#define EV_IS_SIDEBAR_LAYERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_LAYERS)) +#define EV_SIDEBAR_LAYERS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_LAYERS, EvSidebarLayersClass)) + +struct _EvSidebarLayers { + GtkVBox base_instance; + + EvSidebarLayersPrivate *priv; +}; + +struct _EvSidebarLayersClass { + GtkVBoxClass base_class; + + /* Signals */ + void (* layers_visibility_changed) (EvSidebarLayers *ev_layers); +}; + +GType ev_sidebar_layers_get_type (void) G_GNUC_CONST; +GtkWidget *ev_sidebar_layers_new (void); + +G_END_DECLS + +#endif /* __EV_SIDEBAR_LAYERS_H__ */ diff --git a/shell/ev-sidebar-links.c b/shell/ev-sidebar-links.c new file mode 100644 index 00000000..402f3be7 --- /dev/null +++ b/shell/ev-sidebar-links.c @@ -0,0 +1,760 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-document-links.h" +#include "ev-job-scheduler.h" +#include "ev-sidebar-links.h" +#include "ev-sidebar-page.h" +#include "ev-window.h" + +struct _EvSidebarLinksPrivate { + GtkWidget *tree_view; + + /* Keep these ids around for blocking */ + guint selection_id; + guint page_changed_id; + guint row_activated_id; + + EvJob *job; + GtkTreeModel *model; + EvDocument *document; + EvDocumentModel *doc_model; +}; + +enum { + PROP_0, + PROP_MODEL, + PROP_WIDGET, +}; + +enum { + LINK_ACTIVATED, + N_SIGNALS +}; + +static void update_page_callback (EvSidebarLinks *sidebar_links, + gint old_page, + gint current_page); +static void row_activated_callback (GtkTreeView *treeview, + GtkTreePath *arg1, + GtkTreeViewColumn *arg2, + gpointer user_data); +static void ev_sidebar_links_set_links_model (EvSidebarLinks *links, + GtkTreeModel *model); +static void job_finished_callback (EvJobLinks *job, + EvSidebarLinks *sidebar_links); +static void ev_sidebar_links_set_current_page (EvSidebarLinks *sidebar_links, + gint current_page); +static void ev_sidebar_links_page_iface_init (EvSidebarPageInterface *iface); +static gboolean ev_sidebar_links_support_document (EvSidebarPage *sidebar_page, + EvDocument *document); +static const gchar* ev_sidebar_links_get_label (EvSidebarPage *sidebar_page); + +static guint signals[N_SIGNALS]; + +G_DEFINE_TYPE_EXTENDED (EvSidebarLinks, + ev_sidebar_links, + GTK_TYPE_VBOX, + 0, + G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE, + ev_sidebar_links_page_iface_init)) + + +#define EV_SIDEBAR_LINKS_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_LINKS, EvSidebarLinksPrivate)) + +static void +ev_sidebar_links_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvSidebarLinks *ev_sidebar_links = EV_SIDEBAR_LINKS (object); + + switch (prop_id) + { + case PROP_MODEL: + ev_sidebar_links_set_links_model (ev_sidebar_links, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_sidebar_links_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebarLinks *ev_sidebar_links; + + ev_sidebar_links = EV_SIDEBAR_LINKS (object); + + switch (prop_id) + { + case PROP_MODEL: + g_value_set_object (value, ev_sidebar_links->priv->model); + break; + case PROP_WIDGET: + g_value_set_object (value, ev_sidebar_links->priv->tree_view); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_sidebar_links_dispose (GObject *object) +{ + EvSidebarLinks *sidebar = EV_SIDEBAR_LINKS (object); + + if (sidebar->priv->job) { + g_signal_handlers_disconnect_by_func (sidebar->priv->job, + job_finished_callback, sidebar); + ev_job_cancel (sidebar->priv->job); + g_object_unref (sidebar->priv->job); + sidebar->priv->job = NULL; + } + + if (sidebar->priv->model) { + g_object_unref (sidebar->priv->model); + sidebar->priv->model = NULL; + } + + if (sidebar->priv->document) { + g_object_unref (sidebar->priv->document); + sidebar->priv->document = NULL; + sidebar->priv->doc_model = NULL; + } + + G_OBJECT_CLASS (ev_sidebar_links_parent_class)->dispose (object); +} + +static void +ev_sidebar_links_map (GtkWidget *widget) +{ + EvSidebarLinks *links; + + links = EV_SIDEBAR_LINKS (widget); + + GTK_WIDGET_CLASS (ev_sidebar_links_parent_class)->map (widget); + + if (links->priv->model) { + ev_sidebar_links_set_current_page (links, + ev_document_model_get_page (links->priv->doc_model)); + } +} + +static void +ev_sidebar_links_class_init (EvSidebarLinksClass *ev_sidebar_links_class) +{ + GObjectClass *g_object_class; + GtkWidgetClass *widget_class; + + g_object_class = G_OBJECT_CLASS (ev_sidebar_links_class); + widget_class = GTK_WIDGET_CLASS (ev_sidebar_links_class); + + g_object_class->set_property = ev_sidebar_links_set_property; + g_object_class->get_property = ev_sidebar_links_get_property; + g_object_class->dispose = ev_sidebar_links_dispose; + + widget_class->map = ev_sidebar_links_map; + + signals[LINK_ACTIVATED] = g_signal_new ("link-activated", + G_TYPE_FROM_CLASS (g_object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (EvSidebarLinksClass, link_activated), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, G_TYPE_OBJECT); + + g_object_class_install_property (g_object_class, + PROP_MODEL, + g_param_spec_object ("model", + "Model", + "Current Model", + GTK_TYPE_TREE_MODEL, + G_PARAM_READWRITE)); + g_object_class_override_property (g_object_class, + PROP_WIDGET, + "main-widget"); + + g_type_class_add_private (g_object_class, sizeof (EvSidebarLinksPrivate)); +} + +static void +selection_changed_callback (GtkTreeSelection *selection, + EvSidebarLinks *ev_sidebar_links) +{ + EvDocument *document; + GtkTreeModel *model; + GtkTreeIter iter; + + document = EV_DOCUMENT (ev_sidebar_links->priv->document); + g_return_if_fail (ev_sidebar_links->priv->document != NULL); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + EvLink *link; + + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (link == NULL) + return; + + g_signal_handler_block (ev_sidebar_links->priv->doc_model, + ev_sidebar_links->priv->page_changed_id); + g_signal_emit (ev_sidebar_links, signals[LINK_ACTIVATED], 0, link); + g_signal_handler_unblock (ev_sidebar_links->priv->doc_model, + ev_sidebar_links->priv->page_changed_id); + + g_object_unref (link); + } +} + +static GtkTreeModel * +create_loading_model (void) +{ + GtkTreeModel *retval; + GtkTreeIter iter; + gchar *markup; + + /* Creates a fake model to indicate that we're loading */ + retval = (GtkTreeModel *)gtk_list_store_new (EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS, + G_TYPE_STRING, + G_TYPE_OBJECT, + G_TYPE_BOOLEAN, + G_TYPE_STRING); + + gtk_list_store_append (GTK_LIST_STORE (retval), &iter); + markup = g_strdup_printf ("<span size=\"larger\" style=\"italic\">%s</span>", _("Loadingā¦")); + gtk_list_store_set (GTK_LIST_STORE (retval), &iter, + EV_DOCUMENT_LINKS_COLUMN_MARKUP, markup, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, FALSE, + EV_DOCUMENT_LINKS_COLUMN_LINK, NULL, + -1); + g_free (markup); + + return retval; +} + +static void +print_section_cb (GtkWidget *menuitem, EvSidebarLinks *sidebar) +{ + GtkWidget *window; + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + + selection = gtk_tree_view_get_selection + (GTK_TREE_VIEW (sidebar->priv->tree_view)); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + EvLink *link; + int first_page, last_page = -1; + + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (!link) + return; + + first_page = ev_link_get_page (link); + if (first_page == -1) { + g_object_unref (link); + return; + } + + first_page++; + g_object_unref (link); + + if (gtk_tree_model_iter_next (model, &iter)) { + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (link) { + last_page = ev_link_get_page (link); + g_object_unref (link); + } + } else { + last_page = ev_document_get_n_pages (sidebar->priv->document); + } + + if (last_page == -1) + last_page = ev_document_get_n_pages (sidebar->priv->document); + + window = gtk_widget_get_toplevel (GTK_WIDGET (sidebar)); + if (EV_IS_WINDOW (window)) { + ev_window_print_range (EV_WINDOW (window), first_page, last_page); + } + } +} + +static GtkMenu * +build_popup_menu (EvSidebarLinks *sidebar) +{ + GtkWidget *menu; + GtkWidget *item; + + menu = gtk_menu_new (); + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_PRINT, NULL); + gtk_label_set_label (GTK_LABEL (gtk_bin_get_child (GTK_BIN (item))), _("Printā¦")); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + g_signal_connect (item, "activate", + G_CALLBACK (print_section_cb), sidebar); + + return GTK_MENU (menu); +} + +static void +popup_menu_cb (GtkWidget *treeview, EvSidebarLinks *sidebar) +{ + GtkMenu *menu = build_popup_menu (sidebar); + + gtk_menu_popup (menu, NULL, NULL, + ev_gui_menu_position_tree_selection, + sidebar->priv->tree_view, 0, + gtk_get_current_event_time ()); + gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE); +} + +static gboolean +button_press_cb (GtkWidget *treeview, + GdkEventButton *event, + EvSidebarLinks *sidebar) +{ + GtkTreePath *path = NULL; + + if (event->button == 3) { + if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (treeview), + event->x, + event->y, + &path, + NULL, NULL, NULL)) { + gtk_tree_view_set_cursor (GTK_TREE_VIEW (treeview), + path, NULL, FALSE); + gtk_menu_popup (build_popup_menu (sidebar), NULL, + NULL, NULL, NULL, event->button, + gtk_get_current_event_time ()); + gtk_tree_path_free (path); + + return TRUE; + } + } + + return FALSE; +} + + +static void +ev_sidebar_links_construct (EvSidebarLinks *ev_sidebar_links) +{ + EvSidebarLinksPrivate *priv; + GtkWidget *swindow; + GtkTreeViewColumn *column; + GtkCellRenderer *renderer; + GtkTreeSelection *selection; + GtkTreeModel *loading_model; + + priv = ev_sidebar_links->priv; + + swindow = gtk_scrolled_window_new (NULL, NULL); + + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow), + GTK_SHADOW_IN); + + /* Create tree view */ + loading_model = create_loading_model (); + priv->tree_view = gtk_tree_view_new_with_model (loading_model); + g_object_unref (loading_model); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE); + gtk_container_add (GTK_CONTAINER (swindow), priv->tree_view); + + gtk_box_pack_start (GTK_BOX (ev_sidebar_links), swindow, TRUE, TRUE, 0); + gtk_widget_show_all (GTK_WIDGET (ev_sidebar_links)); + + column = gtk_tree_view_column_new (); + gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); + gtk_tree_view_append_column (GTK_TREE_VIEW (priv->tree_view), column); + + renderer = (GtkCellRenderer*) + g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, + "ellipsize", PANGO_ELLIPSIZE_END, + NULL); + gtk_tree_view_column_pack_start (GTK_TREE_VIEW_COLUMN (column), renderer, TRUE); + gtk_tree_view_column_set_attributes (GTK_TREE_VIEW_COLUMN (column), renderer, + "markup", EV_DOCUMENT_LINKS_COLUMN_MARKUP, + NULL); + + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_end (GTK_TREE_VIEW_COLUMN (column), renderer, FALSE); + gtk_tree_view_column_set_attributes (GTK_TREE_VIEW_COLUMN (column), renderer, + "text", EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, + NULL); + g_object_set (G_OBJECT (renderer), "style", PANGO_STYLE_ITALIC, NULL); + + g_signal_connect (priv->tree_view, + "button_press_event", + G_CALLBACK (button_press_cb), + ev_sidebar_links); + g_signal_connect (priv->tree_view, + "popup_menu", + G_CALLBACK (popup_menu_cb), + ev_sidebar_links); +} + +static void +ev_sidebar_links_init (EvSidebarLinks *ev_sidebar_links) +{ + ev_sidebar_links->priv = EV_SIDEBAR_LINKS_GET_PRIVATE (ev_sidebar_links); + + ev_sidebar_links_construct (ev_sidebar_links); +} + +static gboolean +fill_page_labels (GtkTreeModel *tree_model, + GtkTreePath *path, + GtkTreeIter *iter, + EvSidebarLinks *sidebar_links) +{ + EvLink *link; + gint page; + gchar *page_label; + + gtk_tree_model_get (tree_model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (!link) + return FALSE; + + page = ev_link_get_page (link); + + if (page < 0) + return FALSE; + + page_label = ev_document_get_page_label (sidebar_links->priv->document, + page); + gtk_tree_store_set (GTK_TREE_STORE (tree_model), iter, + EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, page_label, + -1); + + g_free (page_label); + + g_object_unref (link); + return FALSE; +} + +/* Public Functions */ + +GtkWidget * +ev_sidebar_links_new (void) +{ + GtkWidget *ev_sidebar_links; + + ev_sidebar_links = g_object_new (EV_TYPE_SIDEBAR_LINKS, NULL); + + return ev_sidebar_links; +} + +static gboolean +update_page_callback_foreach (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + EvSidebarLinks *sidebar_links = (data); + EvLink *link; + + gtk_tree_model_get (model, iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + + if (link) { + int current_page; + int dest_page; + + dest_page = ev_link_get_page (link); + g_object_unref (link); + + current_page = ev_document_model_get_page (sidebar_links->priv->doc_model); + + if (dest_page == current_page) { + gtk_tree_view_expand_to_path (GTK_TREE_VIEW (sidebar_links->priv->tree_view), + path); + gtk_tree_view_set_cursor (GTK_TREE_VIEW (sidebar_links->priv->tree_view), + path, NULL, FALSE); + + return TRUE; + } + } + + return FALSE; +} + +static void +ev_sidebar_links_set_current_page (EvSidebarLinks *sidebar_links, + gint current_page) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + + /* Widget is not currently visible */ + if (!gtk_widget_get_mapped (GTK_WIDGET (sidebar_links))) + return; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sidebar_links->priv->tree_view)); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + EvLink *link; + + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LINKS_COLUMN_LINK, &link, + -1); + if (link) { + gint dest_page; + + dest_page = ev_link_get_page (link); + g_object_unref (link); + + if (dest_page == current_page) + return; + } + } + + /* We go through the tree linearly looking for the first page that + * matches. This is pretty inefficient. We can do something neat with + * a GtkTreeModelSort here to make it faster, if it turns out to be + * slow. + */ + g_signal_handler_block (selection, sidebar_links->priv->selection_id); + g_signal_handler_block (sidebar_links->priv->tree_view, sidebar_links->priv->row_activated_id); + + gtk_tree_model_foreach (model, + update_page_callback_foreach, + sidebar_links); + + g_signal_handler_unblock (selection, sidebar_links->priv->selection_id); + g_signal_handler_unblock (sidebar_links->priv->tree_view, sidebar_links->priv->row_activated_id); +} + +static void +update_page_callback (EvSidebarLinks *sidebar_links, + gint old_page, + gint new_page) +{ + ev_sidebar_links_set_current_page (sidebar_links, new_page); +} + +static void +row_activated_callback (GtkTreeView *treeview, + GtkTreePath *arg1, + GtkTreeViewColumn *arg2, + gpointer user_data) +{ + if (gtk_tree_view_row_expanded (GTK_TREE_VIEW (treeview), arg1)) { + gtk_tree_view_collapse_row (GTK_TREE_VIEW (treeview), arg1); + } else { + gtk_tree_view_expand_row (GTK_TREE_VIEW (treeview), arg1, FALSE); + } +} + +static void +expand_open_links (GtkTreeView *tree_view, GtkTreeModel *model, GtkTreeIter *parent) +{ + GtkTreeIter iter; + gboolean expand; + + if (gtk_tree_model_iter_children (model, &iter, parent)) { + do { + gtk_tree_model_get (model, &iter, + EV_DOCUMENT_LINKS_COLUMN_EXPAND, &expand, + -1); + if (expand) { + GtkTreePath *path; + + path = gtk_tree_model_get_path (model, &iter); + gtk_tree_view_expand_row (tree_view, path, FALSE); + gtk_tree_path_free (path); + } + + expand_open_links (tree_view, model, &iter); + } while (gtk_tree_model_iter_next (model, &iter)); + } +} + +static void +ev_sidebar_links_set_links_model (EvSidebarLinks *sidebar_links, + GtkTreeModel *model) +{ + EvSidebarLinksPrivate *priv = sidebar_links->priv; + + if (priv->model == model) + return; + + if (priv->model) + g_object_unref (priv->model); + priv->model = g_object_ref (model); + + g_object_notify (G_OBJECT (sidebar_links), "model"); +} + +static void +job_finished_callback (EvJobLinks *job, + EvSidebarLinks *sidebar_links) +{ + EvSidebarLinksPrivate *priv = sidebar_links->priv; + GtkTreeSelection *selection; + + ev_sidebar_links_set_links_model (sidebar_links, job->model); + + gtk_tree_model_foreach (priv->model, (GtkTreeModelForeachFunc)fill_page_labels, sidebar_links); + + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), job->model); + + g_object_unref (job); + priv->job = NULL; + + expand_open_links (GTK_TREE_VIEW (priv->tree_view), priv->model, NULL); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + + if (priv->selection_id <= 0) { + priv->selection_id = + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed_callback), + sidebar_links); + } + priv->page_changed_id = + g_signal_connect_swapped (priv->doc_model, "page-changed", + G_CALLBACK (update_page_callback), + sidebar_links); + if (priv->row_activated_id <= 0) { + priv->row_activated_id = + g_signal_connect (priv->tree_view, "row-activated", + G_CALLBACK (row_activated_callback), + sidebar_links); + } + + ev_sidebar_links_set_current_page (sidebar_links, + ev_document_model_get_page (priv->doc_model)); +} + +static void +ev_sidebar_links_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarLinks *sidebar_links) +{ + EvDocument *document = ev_document_model_get_document (model); + EvSidebarLinksPrivate *priv = sidebar_links->priv; + + if (!EV_IS_DOCUMENT_LINKS (document)) + return; + + if (!ev_document_links_has_document_links (EV_DOCUMENT_LINKS (document))) + return; + + if (priv->document) { + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), NULL); + g_object_unref (priv->document); + } + + priv->document = g_object_ref (document); + + if (priv->job) { + g_signal_handlers_disconnect_by_func (priv->job, + job_finished_callback, + sidebar_links); + g_object_unref (priv->job); + } + + priv->job = ev_job_links_new (document); + g_signal_connect (priv->job, + "finished", + G_CALLBACK (job_finished_callback), + sidebar_links); + /* The priority doesn't matter for this job */ + ev_job_scheduler_push_job (priv->job, EV_JOB_PRIORITY_NONE); +} + +static void +ev_sidebar_links_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model) +{ + EvSidebarLinks *sidebar_links = EV_SIDEBAR_LINKS (sidebar_page); + EvSidebarLinksPrivate *priv = sidebar_links->priv; + + if (priv->doc_model == model) + return; + + priv->doc_model = model; + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_links_document_changed_cb), + sidebar_page); +} + +static gboolean +ev_sidebar_links_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + return (EV_IS_DOCUMENT_LINKS (document) && + ev_document_links_has_document_links (EV_DOCUMENT_LINKS (document))); +} + +static const gchar* +ev_sidebar_links_get_label (EvSidebarPage *sidebar_page) +{ + return _("Index"); +} + +static void +ev_sidebar_links_page_iface_init (EvSidebarPageInterface *iface) +{ + iface->support_document = ev_sidebar_links_support_document; + iface->set_model = ev_sidebar_links_set_model; + iface->get_label = ev_sidebar_links_get_label; +} + diff --git a/shell/ev-sidebar-links.h b/shell/ev-sidebar-links.h new file mode 100644 index 00000000..dd4acce6 --- /dev/null +++ b/shell/ev-sidebar-links.h @@ -0,0 +1,66 @@ +/* ev-sidebar-links.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_SIDEBAR_LINKS_H__ +#define __EV_SIDEBAR_LINKS_H__ + +#include <gtk/gtk.h> + +#include "ev-document.h" +#include "ev-link.h" +#include "ev-utils.h" + +G_BEGIN_DECLS + +typedef struct _EvSidebarLinks EvSidebarLinks; +typedef struct _EvSidebarLinksClass EvSidebarLinksClass; +typedef struct _EvSidebarLinksPrivate EvSidebarLinksPrivate; + +#define EV_TYPE_SIDEBAR_LINKS (ev_sidebar_links_get_type()) +#define EV_SIDEBAR_LINKS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_LINKS, EvSidebarLinks)) +#define EV_SIDEBAR_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_LINKS, EvSidebarLinksClass)) +#define EV_IS_SIDEBAR_LINKS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_LINKS)) +#define EV_IS_SIDEBAR_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_LINKS)) +#define EV_SIDEBAR_LINKS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_LINKS, EvSidebarLinksClass)) + +struct _EvSidebarLinks { + GtkVBox base_instance; + + EvSidebarLinksPrivate *priv; +}; + +struct _EvSidebarLinksClass { + GtkVBoxClass base_class; + + void (* link_activated) (EvSidebarLinks *sidebar_links, + EvLink *link); +}; + +GType ev_sidebar_links_get_type (void); +GtkWidget *ev_sidebar_links_new (void); + +G_END_DECLS + +#endif /* __EV_SIDEBAR_LINKS_H__ */ + + diff --git a/shell/ev-sidebar-page.c b/shell/ev-sidebar-page.c new file mode 100644 index 00000000..fdb8d4af --- /dev/null +++ b/shell/ev-sidebar-page.c @@ -0,0 +1,92 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gtk/gtk.h> + +#include "ev-sidebar-page.h" + +G_DEFINE_INTERFACE (EvSidebarPage, ev_sidebar_page, 0) + +gboolean +ev_sidebar_page_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + EvSidebarPageInterface *iface; + + g_return_val_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page), FALSE); + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page); + + g_return_val_if_fail (iface->support_document, FALSE); + + return iface->support_document (sidebar_page, document); +} + +void +ev_sidebar_page_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model) +{ + EvSidebarPageInterface *iface; + + g_return_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page)); + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page); + + g_assert (iface->set_model); + + iface->set_model (sidebar_page, model); +} + +const gchar * +ev_sidebar_page_get_label (EvSidebarPage *sidebar_page) +{ + EvSidebarPageInterface *iface; + + g_return_val_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page), NULL); + + iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page); + + g_assert (iface->get_label); + + return iface->get_label (sidebar_page); +} + + +static void +ev_sidebar_page_default_init (EvSidebarPageInterface *iface) +{ + static gboolean initialized = FALSE; + + if (!initialized) { + g_object_interface_install_property (iface, + g_param_spec_object ("main-widget", + "Main Widget", + "Main page widget, used to handle focus", + GTK_TYPE_WIDGET, + G_PARAM_READABLE)); + initialized = TRUE; + } +} diff --git a/shell/ev-sidebar-page.h b/shell/ev-sidebar-page.h new file mode 100644 index 00000000..21ef92cf --- /dev/null +++ b/shell/ev-sidebar-page.h @@ -0,0 +1,64 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2005 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef EV_SIDEBAR_PAGE_H +#define EV_SIDEBAR_PAGE_H + +#include <glib-object.h> +#include <glib.h> + +#include "ev-document.h" +#include "ev-document-model.h" + +G_BEGIN_DECLS + +#define EV_TYPE_SIDEBAR_PAGE (ev_sidebar_page_get_type ()) +#define EV_SIDEBAR_PAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_SIDEBAR_PAGE, EvSidebarPage)) +#define EV_SIDEBAR_PAGE_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_SIDEBAR_PAGE, EvSidebarPageInterface)) +#define EV_IS_SIDEBAR_PAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_SIDEBAR_PAGE)) +#define EV_IS_SIDEBAR_PAGE_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_SIDEBAR_PAGE)) +#define EV_SIDEBAR_PAGE_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_SIDEBAR_PAGE, EvSidebarPageInterface)) + +typedef struct _EvSidebarPage EvSidebarPage; +typedef struct _EvSidebarPageInterface EvSidebarPageInterface; + +struct _EvSidebarPageInterface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* support_document) (EvSidebarPage *sidebar_page, + EvDocument *document); + void (* set_model) (EvSidebarPage *sidebar_page, + EvDocumentModel *model); + const gchar*(* get_label) (EvSidebarPage *sidebar_page); +}; + +GType ev_sidebar_page_get_type (void) G_GNUC_CONST; +gboolean ev_sidebar_page_support_document (EvSidebarPage *sidebar_page, + EvDocument *document); +void ev_sidebar_page_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model); +const gchar* ev_sidebar_page_get_label (EvSidebarPage *page); + + +G_END_DECLS + +#endif /* EV_SIDEBAR_PAGE */ diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c new file mode 100644 index 00000000..65fb3141 --- /dev/null +++ b/shell/ev-sidebar-thumbnails.c @@ -0,0 +1,974 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * Copyright (C) 2004, 2005 Anders Carlsson <andersca@gnome.org> + * + * Authors: + * Jonathan Blandford <jrb@alum.mit.edu> + * Anders Carlsson <andersca@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-document-misc.h" +#include "ev-document-thumbnails.h" +#include "ev-job-scheduler.h" +#include "ev-sidebar-page.h" +#include "ev-sidebar-thumbnails.h" +#include "ev-utils.h" +#include "ev-window.h" + +#define THUMBNAIL_WIDTH 100 + +/* The IconView doesn't scale nearly as well as the TreeView, so we arbitrarily + * limit its use */ +#define MAX_ICON_VIEW_PAGE_COUNT 1500 + +typedef struct _EvThumbsSize +{ + gint width; + gint height; +} EvThumbsSize; + +typedef struct _EvThumbsSizeCache { + gboolean uniform; + gint uniform_width; + gint uniform_height; + EvThumbsSize *sizes; +} EvThumbsSizeCache; + +struct _EvSidebarThumbnailsPrivate { + GtkWidget *swindow; + GtkWidget *icon_view; + GtkWidget *tree_view; + GtkAdjustment *vadjustment; + GtkListStore *list_store; + GHashTable *loading_icons; + EvDocument *document; + EvDocumentModel *model; + EvThumbsSizeCache *size_cache; + + gint n_pages, pages_done; + + int rotation; + gboolean inverted_colors; + + /* Visible pages */ + gint start_page, end_page; +}; + +enum { + COLUMN_PAGE_STRING, + COLUMN_PIXBUF, + COLUMN_THUMBNAIL_SET, + COLUMN_JOB, + NUM_COLUMNS +}; + +enum { + PROP_0, + PROP_WIDGET, +}; + +static void ev_sidebar_thumbnails_clear_model (EvSidebarThumbnails *sidebar); +static gboolean ev_sidebar_thumbnails_support_document (EvSidebarPage *sidebar_page, + EvDocument *document); +static void ev_sidebar_thumbnails_page_iface_init (EvSidebarPageInterface *iface); +static const gchar* ev_sidebar_thumbnails_get_label (EvSidebarPage *sidebar_page); +static void thumbnail_job_completed_callback (EvJobThumbnail *job, + EvSidebarThumbnails *sidebar_thumbnails); +static void adjustment_changed_cb (EvSidebarThumbnails *sidebar_thumbnails); + +G_DEFINE_TYPE_EXTENDED (EvSidebarThumbnails, + ev_sidebar_thumbnails, + GTK_TYPE_VBOX, + 0, + G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE, + ev_sidebar_thumbnails_page_iface_init)) + +#define EV_SIDEBAR_THUMBNAILS_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_THUMBNAILS, EvSidebarThumbnailsPrivate)); + +/* Thumbnails dimensions cache */ +#define EV_THUMBNAILS_SIZE_CACHE_KEY "ev-thumbnails-size-cache" + +static EvThumbsSizeCache * +ev_thumbnails_size_cache_new (EvDocument *document) +{ + EvThumbsSizeCache *cache; + EvRenderContext *rc = NULL; + gint i, n_pages; + EvThumbsSize *thumb_size; + + cache = g_new0 (EvThumbsSizeCache, 1); + + n_pages = ev_document_get_n_pages (document); + + /* Assume all pages are the same size until proven otherwise */ + cache->uniform = TRUE; + + for (i = 0; i < n_pages; i++) { + EvPage *page; + gdouble page_width, page_height; + gint thumb_width = 0; + gint thumb_height = 0; + + page = ev_document_get_page (document, i); + + ev_document_get_page_size (document, i, &page_width, &page_height); + + if (!rc) { + rc = ev_render_context_new (page, 0, (gdouble)THUMBNAIL_WIDTH / page_width); + } else { + ev_render_context_set_page (rc, page); + ev_render_context_set_scale (rc, (gdouble)THUMBNAIL_WIDTH / page_width); + } + + ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (document), + rc, &thumb_width, &thumb_height); + + if (i == 0) { + cache->uniform_width = thumb_width; + cache->uniform_height = thumb_height; + } else if (cache->uniform && + (cache->uniform_width != thumb_width || + cache->uniform_height != thumb_height)) { + /* It's a different thumbnail size. Backfill the array. */ + int j; + + cache->sizes = g_new0 (EvThumbsSize, n_pages); + + for (j = 0; j < i; j++) { + thumb_size = &(cache->sizes[j]); + thumb_size->width = cache->uniform_width; + thumb_size->height = cache->uniform_height; + } + cache->uniform = FALSE; + } + + if (! cache->uniform) { + thumb_size = &(cache->sizes[i]); + + thumb_size->width = thumb_width; + thumb_size->height = thumb_height; + } + + g_object_unref (page); + } + + if (rc) { + g_object_unref (rc); + } + + return cache; +} + +static void +ev_thumbnails_size_cache_get_size (EvThumbsSizeCache *cache, + gint page, + gint rotation, + gint *width, + gint *height) +{ + gint w, h; + + if (cache->uniform) { + w = cache->uniform_width; + h = cache->uniform_height; + } else { + EvThumbsSize *thumb_size; + + thumb_size = &(cache->sizes[page]); + + w = thumb_size->width; + h = thumb_size->height; + } + + if (rotation == 0 || rotation == 180) { + if (width) *width = w; + if (height) *height = h; + } else { + if (width) *width = h; + if (height) *height = w; + } +} + +static void +ev_thumbnails_size_cache_free (EvThumbsSizeCache *cache) +{ + if (cache->sizes) { + g_free (cache->sizes); + cache->sizes = NULL; + } + + g_free (cache); +} + +static EvThumbsSizeCache * +ev_thumbnails_size_cache_get (EvDocument *document) +{ + EvThumbsSizeCache *cache; + + cache = g_object_get_data (G_OBJECT (document), EV_THUMBNAILS_SIZE_CACHE_KEY); + if (!cache) { + cache = ev_thumbnails_size_cache_new (document); + g_object_set_data_full (G_OBJECT (document), + EV_THUMBNAILS_SIZE_CACHE_KEY, + cache, + (GDestroyNotify)ev_thumbnails_size_cache_free); + } + + return cache; +} + + +static void +ev_sidebar_thumbnails_dispose (GObject *object) +{ + EvSidebarThumbnails *sidebar_thumbnails = EV_SIDEBAR_THUMBNAILS (object); + + if (sidebar_thumbnails->priv->loading_icons) { + g_hash_table_destroy (sidebar_thumbnails->priv->loading_icons); + sidebar_thumbnails->priv->loading_icons = NULL; + } + + if (sidebar_thumbnails->priv->list_store) { + ev_sidebar_thumbnails_clear_model (sidebar_thumbnails); + g_object_unref (sidebar_thumbnails->priv->list_store); + sidebar_thumbnails->priv->list_store = NULL; + } + + G_OBJECT_CLASS (ev_sidebar_thumbnails_parent_class)->dispose (object); +} + +static void +ev_sidebar_thumbnails_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebarThumbnails *sidebar = EV_SIDEBAR_THUMBNAILS (object); + + switch (prop_id) { + case PROP_WIDGET: + if (sidebar->priv->tree_view) + g_value_set_object (value, sidebar->priv->tree_view); + else + g_value_set_object (value, sidebar->priv->icon_view); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +ev_sidebar_thumbnails_map (GtkWidget *widget) +{ + EvSidebarThumbnails *sidebar; + + sidebar = EV_SIDEBAR_THUMBNAILS (widget); + + GTK_WIDGET_CLASS (ev_sidebar_thumbnails_parent_class)->map (widget); + + adjustment_changed_cb (sidebar); +} + +static void +ev_sidebar_thumbnails_class_init (EvSidebarThumbnailsClass *ev_sidebar_thumbnails_class) +{ + GObjectClass *g_object_class; + GtkObjectClass *gtk_object_class; + GtkWidgetClass *widget_class; + + g_object_class = G_OBJECT_CLASS (ev_sidebar_thumbnails_class); + gtk_object_class = GTK_OBJECT_CLASS (ev_sidebar_thumbnails_class); + widget_class = GTK_WIDGET_CLASS (ev_sidebar_thumbnails_class); + + g_object_class->dispose = ev_sidebar_thumbnails_dispose; + g_object_class->get_property = ev_sidebar_thumbnails_get_property; + widget_class->map = ev_sidebar_thumbnails_map; + + g_object_class_override_property (g_object_class, + PROP_WIDGET, + "main-widget"); + + g_type_class_add_private (g_object_class, sizeof (EvSidebarThumbnailsPrivate)); +} + +GtkWidget * +ev_sidebar_thumbnails_new (void) +{ + GtkWidget *ev_sidebar_thumbnails; + + ev_sidebar_thumbnails = g_object_new (EV_TYPE_SIDEBAR_THUMBNAILS, NULL); + + return ev_sidebar_thumbnails; +} + +static GdkPixbuf * +ev_sidebar_thumbnails_get_loading_icon (EvSidebarThumbnails *sidebar_thumbnails, + gint width, + gint height) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GdkPixbuf *icon; + gchar *key; + + key = g_strdup_printf ("%dx%d", width, height); + icon = g_hash_table_lookup (priv->loading_icons, key); + if (!icon) { + gboolean inverted_colors; + + inverted_colors = ev_document_model_get_inverted_colors (priv->model); + icon = ev_document_misc_get_loading_thumbnail (width, height, inverted_colors); + g_hash_table_insert (priv->loading_icons, key, icon); + } else { + g_free (key); + } + + return icon; +} + +static void +clear_range (EvSidebarThumbnails *sidebar_thumbnails, + gint start_page, + gint end_page) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GtkTreePath *path; + GtkTreeIter iter; + gboolean result; + gint prev_width = -1; + gint prev_height = -1; + + g_assert (start_page <= end_page); + + path = gtk_tree_path_new_from_indices (start_page, -1); + for (result = gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->list_store), &iter, path); + result && start_page <= end_page; + result = gtk_tree_model_iter_next (GTK_TREE_MODEL (priv->list_store), &iter), start_page ++) { + EvJobThumbnail *job; + GdkPixbuf *loading_icon = NULL; + gint width, height; + + gtk_tree_model_get (GTK_TREE_MODEL (priv->list_store), + &iter, + COLUMN_JOB, &job, + -1); + + if (job) { + g_signal_handlers_disconnect_by_func (job, thumbnail_job_completed_callback, sidebar_thumbnails); + ev_job_cancel (EV_JOB (job)); + g_object_unref (job); + } + + ev_thumbnails_size_cache_get_size (priv->size_cache, start_page, + priv->rotation, + &width, &height); + if (!loading_icon || (width != prev_width && height != prev_height)) { + loading_icon = + ev_sidebar_thumbnails_get_loading_icon (sidebar_thumbnails, + width, height); + } + + prev_width = width; + prev_height = height; + + gtk_list_store_set (priv->list_store, &iter, + COLUMN_JOB, NULL, + COLUMN_THUMBNAIL_SET, FALSE, + COLUMN_PIXBUF, loading_icon, + -1); + } + gtk_tree_path_free (path); +} + +static gdouble +get_scale_for_page (EvSidebarThumbnails *sidebar_thumbnails, + gint page) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + gdouble width; + + ev_document_get_page_size (priv->document, page, &width, NULL); + + return (gdouble)THUMBNAIL_WIDTH / width; +} + +static void +add_range (EvSidebarThumbnails *sidebar_thumbnails, + gint start_page, + gint end_page) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GtkTreePath *path; + GtkTreeIter iter; + gboolean result; + gint page = start_page; + + g_assert (start_page <= end_page); + + path = gtk_tree_path_new_from_indices (start_page, -1); + for (result = gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->list_store), &iter, path); + result && page <= end_page; + result = gtk_tree_model_iter_next (GTK_TREE_MODEL (priv->list_store), &iter), page ++) { + EvJob *job; + gboolean thumbnail_set; + + gtk_tree_model_get (GTK_TREE_MODEL (priv->list_store), &iter, + COLUMN_JOB, &job, + COLUMN_THUMBNAIL_SET, &thumbnail_set, + -1); + + if (job == NULL && !thumbnail_set) { + job = ev_job_thumbnail_new (priv->document, + page, priv->rotation, + get_scale_for_page (sidebar_thumbnails, page)); + ev_job_scheduler_push_job (EV_JOB (job), EV_JOB_PRIORITY_HIGH); + + g_object_set_data_full (G_OBJECT (job), "tree_iter", + gtk_tree_iter_copy (&iter), + (GDestroyNotify) gtk_tree_iter_free); + g_signal_connect (job, "finished", + G_CALLBACK (thumbnail_job_completed_callback), + sidebar_thumbnails); + gtk_list_store_set (priv->list_store, &iter, + COLUMN_JOB, job, + -1); + + /* The queue and the list own a ref to the job now */ + g_object_unref (job); + } else if (job) { + g_object_unref (job); + } + } + gtk_tree_path_free (path); +} + +/* This modifies start */ +static void +update_visible_range (EvSidebarThumbnails *sidebar_thumbnails, + gint start_page, + gint end_page) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + int old_start_page, old_end_page; + + old_start_page = priv->start_page; + old_end_page = priv->end_page; + + if (start_page == old_start_page && + end_page == old_end_page) + return; + + /* Clear the areas we no longer display */ + if (old_start_page >= 0 && old_start_page < start_page) + clear_range (sidebar_thumbnails, old_start_page, MIN (start_page - 1, old_end_page)); + + if (old_end_page > 0 && old_end_page > end_page) + clear_range (sidebar_thumbnails, MAX (end_page + 1, old_start_page), old_end_page); + + add_range (sidebar_thumbnails, start_page, end_page); + + priv->start_page = start_page; + priv->end_page = end_page; +} + +static void +adjustment_changed_cb (EvSidebarThumbnails *sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GtkTreePath *path = NULL; + GtkTreePath *path2 = NULL; + gdouble page_size; + gdouble value; + gint wy1; + gint wy2; + + /* Widget is not currently visible */ + if (!gtk_widget_get_mapped (GTK_WIDGET (sidebar_thumbnails))) + return; + + page_size = gtk_adjustment_get_page_size (priv->vadjustment); + + if (page_size == 0) + return; + + value = gtk_adjustment_get_value (priv->vadjustment); + + if (priv->tree_view) { + if (! gtk_widget_get_realized (priv->tree_view)) + return; + + gtk_tree_view_convert_tree_to_bin_window_coords (GTK_TREE_VIEW (priv->tree_view), + 0, (int) value, + NULL, &wy1); + gtk_tree_view_convert_tree_to_bin_window_coords (GTK_TREE_VIEW (priv->tree_view), + 0, (int) (value + page_size), + NULL, &wy2); + gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (priv->tree_view), + 1, wy1 + 1, &path, + NULL, NULL, NULL); + gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (priv->tree_view), + 1, wy2 -1, &path2, + NULL, NULL, NULL); + } else if (priv->icon_view) { + if (! gtk_widget_get_realized (priv->icon_view)) + return; + if (! gtk_icon_view_get_visible_range (GTK_ICON_VIEW (priv->icon_view), &path, &path2)) + return; + } else { + return; + } + + if (path && path2) { + update_visible_range (sidebar_thumbnails, + gtk_tree_path_get_indices (path)[0], + gtk_tree_path_get_indices (path2)[0]); + } + + gtk_tree_path_free (path); + gtk_tree_path_free (path2); +} + +static void +ev_sidebar_thumbnails_fill_model (EvSidebarThumbnails *sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GtkTreeIter iter; + int i; + gint prev_width = -1; + gint prev_height = -1; + + for (i = 0; i < sidebar_thumbnails->priv->n_pages; i++) { + gchar *page_label; + gchar *page_string; + GdkPixbuf *loading_icon = NULL; + gint width, height; + + page_label = ev_document_get_page_label (priv->document, i); + page_string = g_markup_printf_escaped ("<i>%s</i>", page_label); + ev_thumbnails_size_cache_get_size (sidebar_thumbnails->priv->size_cache, i, + sidebar_thumbnails->priv->rotation, + &width, &height); + if (!loading_icon || (width != prev_width && height != prev_height)) { + loading_icon = + ev_sidebar_thumbnails_get_loading_icon (sidebar_thumbnails, + width, height); + } + + prev_width = width; + prev_height = height; + + gtk_list_store_append (priv->list_store, &iter); + gtk_list_store_set (priv->list_store, &iter, + COLUMN_PAGE_STRING, page_string, + COLUMN_PIXBUF, loading_icon, + COLUMN_THUMBNAIL_SET, FALSE, + -1); + g_free (page_label); + g_free (page_string); + } +} + +static void +ev_sidebar_tree_selection_changed (GtkTreeSelection *selection, + EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = ev_sidebar_thumbnails->priv; + GtkTreePath *path; + GtkTreeIter iter; + int page; + + if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) + return; + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->list_store), + &iter); + page = gtk_tree_path_get_indices (path)[0]; + gtk_tree_path_free (path); + + ev_document_model_set_page (priv->model, page); +} + +static void +ev_sidebar_icon_selection_changed (GtkIconView *icon_view, + EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = ev_sidebar_thumbnails->priv; + GtkTreePath *path; + GList *selected; + int page; + + selected = gtk_icon_view_get_selected_items (icon_view); + if (selected == NULL) + return; + + /* We don't handle or expect multiple selection. */ + g_assert (selected->next == NULL); + + path = selected->data; + page = gtk_tree_path_get_indices (path)[0]; + + gtk_tree_path_free (path); + g_list_free (selected); + + ev_document_model_set_page (priv->model, page); +} + +static void +ev_sidebar_init_tree_view (EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv; + GtkTreeSelection *selection; + GtkCellRenderer *renderer; + + priv = ev_sidebar_thumbnails->priv; + priv->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->list_store)); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + g_signal_connect (selection, "changed", + G_CALLBACK (ev_sidebar_tree_selection_changed), ev_sidebar_thumbnails); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE); + renderer = g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, + "xpad", 2, + "ypad", 2, + NULL); + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->tree_view), -1, + NULL, renderer, + "pixbuf", 1, + NULL); + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->tree_view), -1, + NULL, gtk_cell_renderer_text_new (), + "markup", 0, NULL); + gtk_container_add (GTK_CONTAINER (priv->swindow), priv->tree_view); + gtk_widget_show (priv->tree_view); +} + +static void +ev_sidebar_init_icon_view (EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv; + + priv = ev_sidebar_thumbnails->priv; + + priv->icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (priv->list_store)); + gtk_icon_view_set_markup_column (GTK_ICON_VIEW (priv->icon_view), 0); + gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (priv->icon_view), 1); + g_signal_connect (priv->icon_view, "selection-changed", + G_CALLBACK (ev_sidebar_icon_selection_changed), ev_sidebar_thumbnails); + + gtk_container_add (GTK_CONTAINER (priv->swindow), priv->icon_view); + gtk_widget_show (priv->icon_view); +} + +static gboolean +ev_sidebar_thumbnails_use_icon_view (EvSidebarThumbnails *sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + + return (ev_document_get_n_pages (priv->document) <= MAX_ICON_VIEW_PAGE_COUNT); +} + +static void +ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv; + + priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails); + + priv->list_store = gtk_list_store_new (NUM_COLUMNS, + G_TYPE_STRING, + GDK_TYPE_PIXBUF, + G_TYPE_BOOLEAN, + EV_TYPE_JOB_THUMBNAIL); + + priv->swindow = gtk_scrolled_window_new (NULL, NULL); + + /* We actually don't want GTK_POLICY_AUTOMATIC for horizontal scrollbar here + * it's just a workaround for bug #449462 + */ + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->swindow), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->swindow), + GTK_SHADOW_IN); + priv->vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->swindow)); + g_signal_connect_data (priv->vadjustment, "value-changed", + G_CALLBACK (adjustment_changed_cb), + ev_sidebar_thumbnails, NULL, + G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_swapped (priv->swindow, "size-allocate", + G_CALLBACK (adjustment_changed_cb), + ev_sidebar_thumbnails); + gtk_box_pack_start (GTK_BOX (ev_sidebar_thumbnails), priv->swindow, TRUE, TRUE, 0); + + /* Put it all together */ + gtk_widget_show_all (priv->swindow); +} + +static void +ev_sidebar_thumbnails_set_current_page (EvSidebarThumbnails *sidebar, + gint page) +{ + GtkTreeView *tree_view; + GtkTreePath *path; + + path = gtk_tree_path_new_from_indices (page, -1); + + if (sidebar->priv->tree_view) { + tree_view = GTK_TREE_VIEW (sidebar->priv->tree_view); + gtk_tree_view_set_cursor (tree_view, path, NULL, FALSE); + gtk_tree_view_scroll_to_cell (tree_view, path, NULL, FALSE, 0.0, 0.0); + } else if (sidebar->priv->icon_view) { + + g_signal_handlers_block_by_func + (sidebar->priv->icon_view, + G_CALLBACK (ev_sidebar_icon_selection_changed), sidebar); + + gtk_icon_view_select_path (GTK_ICON_VIEW (sidebar->priv->icon_view), path); + + g_signal_handlers_unblock_by_func + (sidebar->priv->icon_view, + G_CALLBACK (ev_sidebar_icon_selection_changed), sidebar); + + gtk_icon_view_set_cursor (GTK_ICON_VIEW (sidebar->priv->icon_view), path, NULL, FALSE); + } + + gtk_tree_path_free (path); +} + +static void +page_changed_cb (EvSidebarThumbnails *sidebar, + gint old_page, + gint new_page) +{ + ev_sidebar_thumbnails_set_current_page (sidebar, new_page); +} + +static gboolean +refresh (EvSidebarThumbnails *sidebar_thumbnails) +{ + adjustment_changed_cb (sidebar_thumbnails); + return FALSE; +} + +static void +ev_sidebar_thumbnails_reload (EvSidebarThumbnails *sidebar_thumbnails) +{ + EvDocumentModel *model; + + if (sidebar_thumbnails->priv->loading_icons) + g_hash_table_remove_all (sidebar_thumbnails->priv->loading_icons); + + if (sidebar_thumbnails->priv->document == NULL || + sidebar_thumbnails->priv->n_pages <= 0) + return; + + model = sidebar_thumbnails->priv->model; + + ev_sidebar_thumbnails_clear_model (sidebar_thumbnails); + ev_sidebar_thumbnails_fill_model (sidebar_thumbnails); + + /* Trigger a redraw */ + sidebar_thumbnails->priv->start_page = -1; + sidebar_thumbnails->priv->end_page = -1; + ev_sidebar_thumbnails_set_current_page (sidebar_thumbnails, + ev_document_model_get_page (model)); + g_idle_add ((GSourceFunc)refresh, sidebar_thumbnails); +} + +static void +ev_sidebar_thumbnails_rotation_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarThumbnails *sidebar_thumbnails) +{ + gint rotation = ev_document_model_get_rotation (model); + + sidebar_thumbnails->priv->rotation = rotation; + ev_sidebar_thumbnails_reload (sidebar_thumbnails); +} + +static void +ev_sidebar_thumbnails_inverted_colors_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarThumbnails *sidebar_thumbnails) +{ + gboolean inverted_colors = ev_document_model_get_inverted_colors (model); + + sidebar_thumbnails->priv->inverted_colors = inverted_colors; + ev_sidebar_thumbnails_reload (sidebar_thumbnails); +} + +static void +thumbnail_job_completed_callback (EvJobThumbnail *job, + EvSidebarThumbnails *sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + GtkTreeIter *iter; + + iter = (GtkTreeIter *) g_object_get_data (G_OBJECT (job), "tree_iter"); + if (priv->inverted_colors) + ev_document_misc_invert_pixbuf (job->thumbnail); + gtk_list_store_set (priv->list_store, + iter, + COLUMN_PIXBUF, job->thumbnail, + COLUMN_THUMBNAIL_SET, TRUE, + COLUMN_JOB, NULL, + -1); +} + +static void +ev_sidebar_thumbnails_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebarThumbnails *sidebar_thumbnails) +{ + EvDocument *document = ev_document_model_get_document (model); + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + + if (!EV_IS_DOCUMENT_THUMBNAILS (document) || + ev_document_get_n_pages (document) <= 0 || + !ev_document_check_dimensions (document)) { + return; + } + + priv->size_cache = ev_thumbnails_size_cache_get (document); + priv->document = document; + priv->n_pages = ev_document_get_n_pages (document); + priv->rotation = ev_document_model_get_rotation (model); + priv->inverted_colors = ev_document_model_get_inverted_colors (model); + priv->loading_icons = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify)g_free, + (GDestroyNotify)g_object_unref); + + ev_sidebar_thumbnails_clear_model (sidebar_thumbnails); + ev_sidebar_thumbnails_fill_model (sidebar_thumbnails); + + /* Create the view widget, and remove the old one, if needed */ + if (ev_sidebar_thumbnails_use_icon_view (sidebar_thumbnails)) { + if (priv->tree_view) { + gtk_container_remove (GTK_CONTAINER (priv->swindow), priv->tree_view); + priv->tree_view = NULL; + } + + if (! priv->icon_view) { + ev_sidebar_init_icon_view (sidebar_thumbnails); + g_object_notify (G_OBJECT (sidebar_thumbnails), "main_widget"); + } else { + gtk_widget_queue_resize (priv->icon_view); + } + } else { + if (priv->icon_view) { + gtk_container_remove (GTK_CONTAINER (priv->swindow), priv->icon_view); + priv->icon_view = NULL; + } + + if (! priv->tree_view) { + ev_sidebar_init_tree_view (sidebar_thumbnails); + g_object_notify (G_OBJECT (sidebar_thumbnails), "main_widget"); + } + } + + /* Connect to the signal and trigger a fake callback */ + g_signal_connect_swapped (priv->model, "page-changed", + G_CALLBACK (page_changed_cb), + sidebar_thumbnails); + g_signal_connect (priv->model, "notify::rotation", + G_CALLBACK (ev_sidebar_thumbnails_rotation_changed_cb), + sidebar_thumbnails); + g_signal_connect (priv->model, "notify::inverted-colors", + G_CALLBACK (ev_sidebar_thumbnails_inverted_colors_changed_cb), + sidebar_thumbnails); + sidebar_thumbnails->priv->start_page = -1; + sidebar_thumbnails->priv->end_page = -1; + ev_sidebar_thumbnails_set_current_page (sidebar_thumbnails, + ev_document_model_get_page (model)); + adjustment_changed_cb (sidebar_thumbnails); +} + +static void +ev_sidebar_thumbnails_set_model (EvSidebarPage *sidebar_page, + EvDocumentModel *model) +{ + EvSidebarThumbnails *sidebar_thumbnails = EV_SIDEBAR_THUMBNAILS (sidebar_page); + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + + if (priv->model == model) + return; + + priv->model = model; + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_thumbnails_document_changed_cb), + sidebar_page); +} + +static gboolean +ev_sidebar_thumbnails_clear_job (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + EvJob *job; + + gtk_tree_model_get (model, iter, COLUMN_JOB, &job, -1); + + if (job != NULL) { + ev_job_cancel (job); + g_signal_handlers_disconnect_by_func (job, thumbnail_job_completed_callback, data); + g_object_unref (job); + } + + return FALSE; +} + +static void +ev_sidebar_thumbnails_clear_model (EvSidebarThumbnails *sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv; + + gtk_tree_model_foreach (GTK_TREE_MODEL (priv->list_store), ev_sidebar_thumbnails_clear_job, sidebar_thumbnails); + gtk_list_store_clear (priv->list_store); +} + +static gboolean +ev_sidebar_thumbnails_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) +{ + return (EV_IS_DOCUMENT_THUMBNAILS (document)); +} + +static const gchar* +ev_sidebar_thumbnails_get_label (EvSidebarPage *sidebar_page) +{ + return _("Thumbnails"); +} + +static void +ev_sidebar_thumbnails_page_iface_init (EvSidebarPageInterface *iface) +{ + iface->support_document = ev_sidebar_thumbnails_support_document; + iface->set_model = ev_sidebar_thumbnails_set_model; + iface->get_label = ev_sidebar_thumbnails_get_label; +} diff --git a/shell/ev-sidebar-thumbnails.h b/shell/ev-sidebar-thumbnails.h new file mode 100644 index 00000000..0e312469 --- /dev/null +++ b/shell/ev-sidebar-thumbnails.h @@ -0,0 +1,59 @@ +/* ev-sidebar-thumbnails.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_SIDEBAR_THUMBNAILS_H__ +#define __EV_SIDEBAR_THUMBNAILS_H__ + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +typedef struct _EvSidebarThumbnails EvSidebarThumbnails; +typedef struct _EvSidebarThumbnailsClass EvSidebarThumbnailsClass; +typedef struct _EvSidebarThumbnailsPrivate EvSidebarThumbnailsPrivate; + +#define EV_TYPE_SIDEBAR_THUMBNAILS (ev_sidebar_thumbnails_get_type()) +#define EV_SIDEBAR_THUMBNAILS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_THUMBNAILS, EvSidebarThumbnails)) +#define EV_SIDEBAR_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_THUMBNAILS, EvSidebarThumbnailsClass)) +#define EV_IS_SIDEBAR_THUMBNAILS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_THUMBNAILS)) +#define EV_IS_SIDEBAR_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_THUMBNAILS)) +#define EV_SIDEBAR_THUMBNAILS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_THUMBNAILS, EvSidebarThumbnailsClass)) + +struct _EvSidebarThumbnails { + GtkVBox base_instance; + + EvSidebarThumbnailsPrivate *priv; +}; + +struct _EvSidebarThumbnailsClass { + GtkVBoxClass base_class; +}; + +GType ev_sidebar_thumbnails_get_type (void) G_GNUC_CONST; +GtkWidget *ev_sidebar_thumbnails_new (void); + +G_END_DECLS + +#endif /* __EV_SIDEBAR_THUMBNAILS_H__ */ + + diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c new file mode 100644 index 00000000..cf7b5f84 --- /dev/null +++ b/shell/ev-sidebar.c @@ -0,0 +1,543 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> + +#include "ev-sidebar.h" +#include "ev-sidebar-page.h" + +enum +{ + PROP_0, + PROP_CURRENT_PAGE +}; + +enum +{ + PAGE_COLUMN_TITLE, + PAGE_COLUMN_MENU_ITEM, + PAGE_COLUMN_MAIN_WIDGET, + PAGE_COLUMN_NOTEBOOK_INDEX, + PAGE_COLUMN_NUM_COLS +}; + +struct _EvSidebarPrivate { + GtkWidget *notebook; + GtkWidget *select_button; + GtkWidget *menu; + GtkWidget *hbox; + GtkWidget *label; + + EvDocumentModel *model; + GtkTreeModel *page_model; +}; + +G_DEFINE_TYPE (EvSidebar, ev_sidebar, GTK_TYPE_VBOX) + +#define EV_SIDEBAR_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR, EvSidebarPrivate)) + +static void +ev_sidebar_destroy (GtkObject *object) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (object); + + if (ev_sidebar->priv->menu) { + gtk_menu_detach (GTK_MENU (ev_sidebar->priv->menu)); + ev_sidebar->priv->menu = NULL; + } + + if (ev_sidebar->priv->page_model) { + g_object_unref (ev_sidebar->priv->page_model); + ev_sidebar->priv->page_model = NULL; + } + + + (* GTK_OBJECT_CLASS (ev_sidebar_parent_class)->destroy) (object); +} + +static void +ev_sidebar_select_page (EvSidebar *ev_sidebar, GtkTreeIter *iter) +{ + char *title; + int index; + + gtk_tree_model_get (ev_sidebar->priv->page_model, iter, + PAGE_COLUMN_TITLE, &title, + PAGE_COLUMN_NOTEBOOK_INDEX, &index, + -1); + + gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), index); + gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), title); + + g_free (title); +} + +void +ev_sidebar_set_page (EvSidebar *ev_sidebar, + GtkWidget *main_widget) +{ + GtkTreeIter iter; + gboolean valid; + + valid = gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter); + + while (valid) { + GtkWidget *widget; + + gtk_tree_model_get (ev_sidebar->priv->page_model, &iter, + PAGE_COLUMN_MAIN_WIDGET, &widget, + -1); + + if (widget == main_widget) { + ev_sidebar_select_page (ev_sidebar, &iter); + valid = FALSE; + } else { + valid = gtk_tree_model_iter_next (ev_sidebar->priv->page_model, &iter); + } + g_object_unref (widget); + } + + g_object_notify (G_OBJECT (ev_sidebar), "current-page"); +} + +static void +ev_sidebar_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + EvSidebar *sidebar = EV_SIDEBAR (object); + + switch (prop_id) + { + case PROP_CURRENT_PAGE: + ev_sidebar_set_page (sidebar, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static GtkWidget * +ev_sidebar_get_current_page (EvSidebar *sidebar) +{ + GtkNotebook *notebook = GTK_NOTEBOOK (sidebar->priv->notebook); + + return gtk_notebook_get_nth_page + (notebook, gtk_notebook_get_current_page (notebook)); +} + +static void +ev_sidebar_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EvSidebar *sidebar = EV_SIDEBAR (object); + + switch (prop_id) + { + case PROP_CURRENT_PAGE: + g_value_set_object (value, ev_sidebar_get_current_page (sidebar)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +ev_sidebar_class_init (EvSidebarClass *ev_sidebar_class) +{ + GObjectClass *g_object_class; + GtkWidgetClass *widget_class; + GtkObjectClass *gtk_object_klass; + + g_object_class = G_OBJECT_CLASS (ev_sidebar_class); + widget_class = GTK_WIDGET_CLASS (ev_sidebar_class); + gtk_object_klass = GTK_OBJECT_CLASS (ev_sidebar_class); + + g_type_class_add_private (g_object_class, sizeof (EvSidebarPrivate)); + + gtk_object_klass->destroy = ev_sidebar_destroy; + g_object_class->get_property = ev_sidebar_get_property; + g_object_class->set_property = ev_sidebar_set_property; + + g_object_class_install_property (g_object_class, + PROP_CURRENT_PAGE, + g_param_spec_object ("current-page", + "Current page", + "The currently visible page", + GTK_TYPE_WIDGET, + G_PARAM_READWRITE)); +} + +static void +ev_sidebar_menu_position_under (GtkMenu *menu, + int *x, + int *y, + gboolean *push_in, + gpointer user_data) +{ + GtkWidget *widget; + GtkAllocation allocation; + + g_return_if_fail (GTK_IS_BUTTON (user_data)); + g_return_if_fail (!gtk_widget_get_has_window (GTK_WIDGET (user_data))); + + widget = GTK_WIDGET (user_data); + + gdk_window_get_origin (gtk_widget_get_window (widget), x, y); + gtk_widget_get_allocation (widget, &allocation); + + *x += allocation.x; + *y += allocation.y + allocation.height; + + *push_in = FALSE; +} + +static gboolean +ev_sidebar_select_button_press_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (user_data); + + if (event->button == 1) { + GtkRequisition requisition; + GtkAllocation allocation; + gint width; + + gtk_widget_get_allocation (widget, &allocation); + width = allocation.width; + gtk_widget_set_size_request (ev_sidebar->priv->menu, -1, -1); + gtk_widget_size_request (ev_sidebar->priv->menu, &requisition); + gtk_widget_set_size_request (ev_sidebar->priv->menu, + MAX (width, requisition.width), -1); + + gtk_widget_grab_focus (widget); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + gtk_menu_popup (GTK_MENU (ev_sidebar->priv->menu), + NULL, NULL, ev_sidebar_menu_position_under, widget, + event->button, event->time); + + return TRUE; + } + + return FALSE; +} + +static gboolean +ev_sidebar_select_button_key_press_cb (GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (user_data); + + if (event->keyval == GDK_space || + event->keyval == GDK_KP_Space || + event->keyval == GDK_Return || + event->keyval == GDK_KP_Enter) { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + gtk_menu_popup (GTK_MENU (ev_sidebar->priv->menu), + NULL, NULL, ev_sidebar_menu_position_under, widget, + 1, event->time); + return TRUE; + } + + return FALSE; +} + +static void +ev_sidebar_close_clicked_cb (GtkWidget *widget, + gpointer user_data) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (user_data); + + gtk_widget_hide (GTK_WIDGET (ev_sidebar)); +} + +static void +ev_sidebar_menu_deactivate_cb (GtkWidget *widget, + gpointer user_data) +{ + GtkWidget *menu_button; + + menu_button = GTK_WIDGET (user_data); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (menu_button), FALSE); +} + +static void +ev_sidebar_menu_detach_cb (GtkWidget *widget, + GtkMenu *menu) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (widget); + + ev_sidebar->priv->menu = NULL; +} + +static void +ev_sidebar_menu_item_activate_cb (GtkWidget *widget, + gpointer user_data) +{ + EvSidebar *ev_sidebar = EV_SIDEBAR (user_data); + GtkTreeIter iter; + GtkWidget *menu_item, *item; + gboolean valid; + + menu_item = gtk_menu_get_active (GTK_MENU (ev_sidebar->priv->menu)); + valid = gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter); + + while (valid) { + gtk_tree_model_get (ev_sidebar->priv->page_model, &iter, + PAGE_COLUMN_MENU_ITEM, &item, + -1); + + if (item == menu_item) { + ev_sidebar_select_page (ev_sidebar, &iter); + valid = FALSE; + } else { + valid = gtk_tree_model_iter_next (ev_sidebar->priv->page_model, &iter); + } + g_object_unref (item); + } + + g_object_notify (G_OBJECT (ev_sidebar), "current-page"); +} + +static void +ev_sidebar_init (EvSidebar *ev_sidebar) +{ + GtkWidget *hbox; + GtkWidget *close_button; + GtkWidget *select_hbox; + GtkWidget *arrow; + GtkWidget *image; + + ev_sidebar->priv = EV_SIDEBAR_GET_PRIVATE (ev_sidebar); + + /* data model */ + ev_sidebar->priv->page_model = (GtkTreeModel *) + gtk_list_store_new (PAGE_COLUMN_NUM_COLS, + G_TYPE_STRING, + GTK_TYPE_WIDGET, + GTK_TYPE_WIDGET, + G_TYPE_INT); + + /* top option menu */ + hbox = gtk_hbox_new (FALSE, 0); + ev_sidebar->priv->hbox = hbox; + gtk_box_pack_start (GTK_BOX (ev_sidebar), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + ev_sidebar->priv->select_button = gtk_toggle_button_new (); + gtk_button_set_relief (GTK_BUTTON (ev_sidebar->priv->select_button), GTK_RELIEF_NONE); + g_signal_connect (ev_sidebar->priv->select_button, "button_press_event", + G_CALLBACK (ev_sidebar_select_button_press_cb), + ev_sidebar); + g_signal_connect (ev_sidebar->priv->select_button, "key_press_event", + G_CALLBACK (ev_sidebar_select_button_key_press_cb), + ev_sidebar); + + select_hbox = gtk_hbox_new (FALSE, 0); + + ev_sidebar->priv->label = gtk_label_new (""); + gtk_box_pack_start (GTK_BOX (select_hbox), + ev_sidebar->priv->label, + FALSE, FALSE, 0); + gtk_widget_show (ev_sidebar->priv->label); + + arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE); + gtk_box_pack_end (GTK_BOX (select_hbox), arrow, FALSE, FALSE, 0); + gtk_widget_show (arrow); + + gtk_container_add (GTK_CONTAINER (ev_sidebar->priv->select_button), select_hbox); + gtk_widget_show (select_hbox); + + gtk_box_pack_start (GTK_BOX (hbox), ev_sidebar->priv->select_button, TRUE, TRUE, 0); + gtk_widget_show (ev_sidebar->priv->select_button); + + close_button = gtk_button_new (); + gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); + g_signal_connect (close_button, "clicked", + G_CALLBACK (ev_sidebar_close_clicked_cb), + ev_sidebar); + + image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, + GTK_ICON_SIZE_MENU); + gtk_container_add (GTK_CONTAINER (close_button), image); + gtk_widget_show (image); + + gtk_box_pack_end (GTK_BOX (hbox), close_button, FALSE, FALSE, 0); + gtk_widget_show (close_button); + + ev_sidebar->priv->menu = gtk_menu_new (); + g_signal_connect (ev_sidebar->priv->menu, "deactivate", + G_CALLBACK (ev_sidebar_menu_deactivate_cb), + ev_sidebar->priv->select_button); + gtk_menu_attach_to_widget (GTK_MENU (ev_sidebar->priv->menu), + GTK_WIDGET (ev_sidebar), + ev_sidebar_menu_detach_cb); + gtk_widget_show (ev_sidebar->priv->menu); + + ev_sidebar->priv->notebook = gtk_notebook_new (); + gtk_notebook_set_show_border (GTK_NOTEBOOK (ev_sidebar->priv->notebook), FALSE); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (ev_sidebar->priv->notebook), FALSE); + gtk_box_pack_start (GTK_BOX (ev_sidebar), ev_sidebar->priv->notebook, + TRUE, TRUE, 0); + gtk_widget_show (ev_sidebar->priv->notebook); + + gtk_widget_set_sensitive (GTK_WIDGET (ev_sidebar->priv->notebook), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (ev_sidebar->priv->select_button), FALSE); +} + +/* Public functions */ + +GtkWidget * +ev_sidebar_new (void) +{ + GtkWidget *ev_sidebar; + + ev_sidebar = g_object_new (EV_TYPE_SIDEBAR, NULL); + + return ev_sidebar; +} + +void +ev_sidebar_add_page (EvSidebar *ev_sidebar, + GtkWidget *main_widget) +{ + GtkTreeIter iter; + GtkWidget *menu_item; + gchar *label_title; + const gchar *title; + int index; + + g_return_if_fail (EV_IS_SIDEBAR (ev_sidebar)); + g_return_if_fail (EV_IS_SIDEBAR_PAGE (main_widget)); + g_return_if_fail (GTK_IS_WIDGET (main_widget)); + + ev_sidebar_page_set_model (EV_SIDEBAR_PAGE (main_widget), + ev_sidebar->priv->model); + title = ev_sidebar_page_get_label (EV_SIDEBAR_PAGE (main_widget)); + + index = gtk_notebook_append_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), + main_widget, NULL); + + menu_item = gtk_image_menu_item_new_with_label (title); + g_signal_connect (menu_item, "activate", + G_CALLBACK (ev_sidebar_menu_item_activate_cb), + ev_sidebar); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (ev_sidebar->priv->menu), + menu_item); + + /* Insert and move to end */ + gtk_list_store_insert_with_values (GTK_LIST_STORE (ev_sidebar->priv->page_model), + &iter, 0, + PAGE_COLUMN_TITLE, title, + PAGE_COLUMN_MENU_ITEM, menu_item, + PAGE_COLUMN_MAIN_WIDGET, main_widget, + PAGE_COLUMN_NOTEBOOK_INDEX, index, + -1); + gtk_list_store_move_before(GTK_LIST_STORE(ev_sidebar->priv->page_model), + &iter, NULL); + + + /* Set the first item added as active */ + gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter); + gtk_tree_model_get (ev_sidebar->priv->page_model, + &iter, + PAGE_COLUMN_TITLE, &label_title, + PAGE_COLUMN_NOTEBOOK_INDEX, &index, + -1); + + gtk_menu_set_active (GTK_MENU (ev_sidebar->priv->menu), index); + gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title); + gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), + index); + g_free (label_title); +} + +static void +ev_sidebar_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvSidebar *sidebar) +{ + EvSidebarPrivate *priv = sidebar->priv; + EvDocument *document = ev_document_model_get_document (model); + GtkTreeIter iter; + gboolean valid; + gboolean has_pages = FALSE; + + for (valid = gtk_tree_model_get_iter_first (priv->page_model, &iter); + valid; + valid = gtk_tree_model_iter_next (priv->page_model, &iter)) { + GtkWidget *widget; + GtkWidget *menu_widget; + + gtk_tree_model_get (priv->page_model, &iter, + PAGE_COLUMN_MAIN_WIDGET, &widget, + PAGE_COLUMN_MENU_ITEM, &menu_widget, + -1); + + if (ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (widget), document)) { + has_pages = TRUE; + } else { + gtk_widget_set_sensitive (menu_widget, FALSE); + } + g_object_unref (widget); + g_object_unref (menu_widget); + } + + if (!has_pages) { + gtk_widget_hide (GTK_WIDGET (sidebar)); + } else { + gtk_widget_set_sensitive (GTK_WIDGET (sidebar->priv->notebook), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (sidebar->priv->select_button), TRUE); + } +} + +void +ev_sidebar_set_model (EvSidebar *sidebar, + EvDocumentModel *model) +{ + g_return_if_fail (EV_IS_SIDEBAR (sidebar)); + g_return_if_fail (EV_IS_DOCUMENT_MODEL (model)); + + if (model == sidebar->priv->model) + return; + + sidebar->priv->model = model; + g_signal_connect (model, "notify::document", + G_CALLBACK (ev_sidebar_document_changed_cb), + sidebar); +} diff --git a/shell/ev-sidebar.h b/shell/ev-sidebar.h new file mode 100644 index 00000000..68440221 --- /dev/null +++ b/shell/ev-sidebar.h @@ -0,0 +1,67 @@ +/* ev-sidebar.h + * this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_SIDEBAR_H__ +#define __EV_SIDEBAR_H__ + +#include <gtk/gtk.h> + +#include "ev-document-model.h" + +G_BEGIN_DECLS + +typedef struct _EvSidebar EvSidebar; +typedef struct _EvSidebarClass EvSidebarClass; +typedef struct _EvSidebarPrivate EvSidebarPrivate; + +#define EV_TYPE_SIDEBAR (ev_sidebar_get_type()) +#define EV_SIDEBAR(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR, EvSidebar)) +#define EV_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR, EvSidebarClass)) +#define EV_IS_SIDEBAR(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR)) +#define EV_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR)) +#define EV_SIDEBAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR, EvSidebarClass)) + +struct _EvSidebar { + GtkVBox base_instance; + + EvSidebarPrivate *priv; +}; + +struct _EvSidebarClass { + GtkVBoxClass base_class; +}; + +GType ev_sidebar_get_type (void) G_GNUC_CONST; +GtkWidget *ev_sidebar_new (void); +void ev_sidebar_add_page (EvSidebar *ev_sidebar, + GtkWidget *main_widget); +void ev_sidebar_set_page (EvSidebar *ev_sidebar, + GtkWidget *main_widget); +void ev_sidebar_set_model (EvSidebar *sidebar, + EvDocumentModel *model); + +G_END_DECLS + +#endif /* __EV_SIDEBAR_H__ */ + + diff --git a/shell/ev-utils.c b/shell/ev-utils.c new file mode 100644 index 00000000..83cfcdbc --- /dev/null +++ b/shell/ev-utils.c @@ -0,0 +1,389 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Anders Carlsson <andersca@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <config.h> + +#include "ev-utils.h" +#include "ev-file-helpers.h" + +#include <string.h> +#include <math.h> +#include <glib/gi18n.h> + +typedef struct +{ + int size; + double *data; +} ConvFilter; + +static double +gaussian (double x, double y, double r) +{ + return ((1 / (2 * M_PI * r)) * + exp ((- (x * x + y * y)) / (2 * r * r))); +} + +static ConvFilter * +create_blur_filter (int radius) +{ + ConvFilter *filter; + int x, y; + double sum; + + filter = g_new0 (ConvFilter, 1); + filter->size = radius * 2 + 1; + filter->data = g_new (double, filter->size * filter->size); + + sum = 0.0; + + for (y = 0 ; y < filter->size; y++) + { + for (x = 0 ; x < filter->size; x++) + { + sum += filter->data[y * filter->size + x] = gaussian (x - (filter->size >> 1), + y - (filter->size >> 1), + radius); + } + } + + for (y = 0; y < filter->size; y++) + { + for (x = 0; x < filter->size; x++) + { + filter->data[y * filter->size + x] /= sum; + } + } + + return filter; + +} + +static GdkPixbuf * +create_shadow (GdkPixbuf *src, int blur_radius, + int x_offset, int y_offset, double opacity) +{ + int x, y, i, j; + int width, height; + GdkPixbuf *dest; + static ConvFilter *filter = NULL; + int src_rowstride, dest_rowstride; + int src_bpp, dest_bpp; + + guchar *src_pixels, *dest_pixels; + + if (!filter) + filter = create_blur_filter (blur_radius); + + if (x_offset < 0) + x_offset = (blur_radius * 4) / 5; + + if (y_offset < 0) + y_offset = (blur_radius * 4) / 5; + + + width = gdk_pixbuf_get_width (src) + blur_radius * 2 + x_offset; + height = gdk_pixbuf_get_height (src) + blur_radius * 2 + y_offset; + + dest = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (src), TRUE, + gdk_pixbuf_get_bits_per_sample (src), + width, height); + gdk_pixbuf_fill (dest, 0); + src_pixels = gdk_pixbuf_get_pixels (src); + src_rowstride = gdk_pixbuf_get_rowstride (src); + src_bpp = gdk_pixbuf_get_has_alpha (src) ? 4 : 3; + + dest_pixels = gdk_pixbuf_get_pixels (dest); + dest_rowstride = gdk_pixbuf_get_rowstride (dest); + dest_bpp = gdk_pixbuf_get_has_alpha (dest) ? 4 : 3; + + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + int sumr = 0, sumg = 0, sumb = 0, suma = 0; + + for (i = 0; i < filter->size; i++) + { + for (j = 0; j < filter->size; j++) + { + int src_x, src_y; + + src_y = -(blur_radius + x_offset) + y - (filter->size >> 1) + i; + src_x = -(blur_radius + y_offset) + x - (filter->size >> 1) + j; + + if (src_y < 0 || src_y > gdk_pixbuf_get_height (src) || + src_x < 0 || src_x > gdk_pixbuf_get_width (src)) + continue; + + sumr += src_pixels [src_y * src_rowstride + + src_x * src_bpp + 0] * + filter->data [i * filter->size + j]; + sumg += src_pixels [src_y * src_rowstride + + src_x * src_bpp + 1] * + filter->data [i * filter->size + j]; + + sumb += src_pixels [src_y * src_rowstride + + src_x * src_bpp + 2] * + filter->data [i * filter->size + j]; + + if (src_bpp == 4) + suma += src_pixels [src_y * src_rowstride + + src_x * src_bpp + 3] * + filter->data [i * filter->size + j]; + else + suma += 0xff; + + } + } + + if (dest_bpp == 4) + dest_pixels [y * dest_rowstride + + x * dest_bpp + 3] = (suma * opacity) / (filter->size * filter->size); + + } + } + + return dest; +} + +GdkPixbuf * +ev_pixbuf_add_shadow (GdkPixbuf *src, int size, + int x_offset, int y_offset, double opacity) +{ + GdkPixbuf *dest; + + dest = create_shadow (src, size, x_offset, y_offset, opacity); + + gdk_pixbuf_composite (src, dest, + size, size, + gdk_pixbuf_get_width (src), + gdk_pixbuf_get_height (src), + size, size, + 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + + return dest; +} + + +/* Simple function to output the contents of a region. Used solely for testing + * the region code. + */ +void +ev_print_region_contents (cairo_region_t *region) +{ + gint n_rectangles, i; + + if (region == NULL) { + g_print ("<empty region>\n"); + return; + } + + g_print ("<region %p>\n", region); + n_rectangles = cairo_region_num_rectangles (region); + for (i = 0; i < n_rectangles; i++) { + GdkRectangle rect; + + cairo_region_get_rectangle (region, i, &rect); + g_print ("\t(%d %d, %d %d) [%dx%d]\n", + rect.x, + rect.y, + rect.x + rect.width, + rect.y + rect.height, + rect.width, + rect.height); + } +} + +static void +ev_gui_sanitise_popup_position (GtkMenu *menu, + GtkWidget *widget, + gint *x, + gint *y) +{ + GdkScreen *screen = gtk_widget_get_screen (widget); + gint monitor_num; + GdkRectangle monitor; + GtkRequisition req; + + g_return_if_fail (widget != NULL); + + gtk_widget_size_request (GTK_WIDGET (menu), &req); + + monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y); + gtk_menu_set_monitor (menu, monitor_num); + gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); + + *x = CLAMP (*x, monitor.x, monitor.x + MAX (0, monitor.width - req.width)); + *y = CLAMP (*y, monitor.y, monitor.y + MAX (0, monitor.height - req.height)); +} + +void +ev_gui_menu_position_tree_selection (GtkMenu *menu, + gint *x, + gint *y, + gboolean *push_in, + gpointer user_data) +{ + GtkTreeSelection *selection; + GList *selected_rows; + GtkTreeModel *model; + GtkTreeView *tree_view = GTK_TREE_VIEW (user_data); + GtkWidget *widget = GTK_WIDGET (user_data); + GtkRequisition req; + GtkAllocation allocation; + GdkRectangle visible; + + gtk_widget_size_request (GTK_WIDGET (menu), &req); + gdk_window_get_origin (gtk_widget_get_window (widget), x, y); + gtk_widget_get_allocation (widget, &allocation); + + *x += (allocation.width - req.width) / 2; + + /* Add on height for the treeview title */ + gtk_tree_view_get_visible_rect (tree_view, &visible); + *y += allocation.height - visible.height; + + selection = gtk_tree_view_get_selection (tree_view); + selected_rows = gtk_tree_selection_get_selected_rows (selection, &model); + if (selected_rows) + { + GdkRectangle cell_rect; + + gtk_tree_view_get_cell_area (tree_view, selected_rows->data, + NULL, &cell_rect); + + *y += CLAMP (cell_rect.y + cell_rect.height, 0, visible.height); + + g_list_foreach (selected_rows, (GFunc)gtk_tree_path_free, NULL); + g_list_free (selected_rows); + } + + ev_gui_sanitise_popup_position (menu, widget, x, y); +} + +/** + * get_num_monitors: Get the number of user monitors. + * @window: optional GtkWindow to look at. + * + * Returns: Number of monitors, -1 if uncertain situation (like multiple screens) + */ +gint +get_num_monitors (GtkWindow *window) +{ + GdkDisplay *display; + GdkScreen *screen; + gint num_screen; + + display = gdk_display_get_default (); + num_screen = gdk_display_get_n_screens (display); + + if (num_screen != 1) + return -1; + + if (window) + screen = gtk_window_get_screen (window); + else + screen = gdk_display_get_screen (display, 0); + + return gdk_screen_get_n_monitors (screen); +} + +void +file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser) +{ + GSList *pixbuf_formats = NULL; + GSList *iter; + GtkFileFilter *filter; + int i; + + filter = gtk_file_filter_new(); + gtk_file_filter_set_name (filter, _("By extension")); + g_object_set_data (G_OBJECT(filter), "pixbuf-format", NULL); + gtk_file_chooser_add_filter (chooser, filter); + + pixbuf_formats = gdk_pixbuf_get_formats (); + + for (iter = pixbuf_formats; iter; iter = iter->next) { + GdkPixbufFormat *format = iter->data; + + gchar *description, *name, *extensions; + gchar **extension_list, **mime_types; + + if (gdk_pixbuf_format_is_disabled (format) || + !gdk_pixbuf_format_is_writable (format)) + continue; + + name = gdk_pixbuf_format_get_description (format); + extension_list = gdk_pixbuf_format_get_extensions (format); + extensions = g_strjoinv (", ", extension_list); + g_strfreev (extension_list); + description = g_strdup_printf ("%s (%s)", name, extensions); + + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, description); + g_object_set_data (G_OBJECT (filter), "pixbuf-format", format); + gtk_file_chooser_add_filter (chooser, filter); + + g_free (description); + g_free (extensions); + g_free (name); + + mime_types = gdk_pixbuf_format_get_mime_types (format); + for (i = 0; mime_types[i] != 0; i++) + gtk_file_filter_add_mime_type (filter, mime_types[i]); + g_strfreev (mime_types); + } + + g_slist_free (pixbuf_formats); +} + +GdkPixbufFormat* +get_gdk_pixbuf_format_by_extension (gchar *uri) +{ + GSList *pixbuf_formats = NULL; + GSList *iter; + int i; + + pixbuf_formats = gdk_pixbuf_get_formats (); + + for (iter = pixbuf_formats; iter; iter = iter->next) { + gchar **extension_list; + GdkPixbufFormat *format = iter->data; + + if (gdk_pixbuf_format_is_disabled (format) || + !gdk_pixbuf_format_is_writable (format)) + continue; + + extension_list = gdk_pixbuf_format_get_extensions (format); + + for (i = 0; extension_list[i] != 0; i++) { + if (g_str_has_suffix (uri, extension_list[i])) { + g_slist_free (pixbuf_formats); + g_strfreev (extension_list); + return format; + } + } + g_strfreev (extension_list); + } + + g_slist_free (pixbuf_formats); + return NULL; +} diff --git a/shell/ev-utils.h b/shell/ev-utils.h new file mode 100644 index 00000000..81acc463 --- /dev/null +++ b/shell/ev-utils.h @@ -0,0 +1,47 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* + * Copyright (C) 2004 Anders Carlsson <andersca@gnome.org> + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef __EV_UTILS_H__ +#define __EV_UTILS_H__ + +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +GdkPixbuf* ev_pixbuf_add_shadow (GdkPixbuf *src, int size, + int x_offset, int y_offset, double opacity); + +void ev_print_region_contents (cairo_region_t *region); + +void ev_gui_menu_position_tree_selection (GtkMenu *menu, + gint *x, + gint *y, + gboolean *push_in, + gpointer user_data); + +gint get_num_monitors (GtkWindow * window); + +void file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser); +GdkPixbufFormat* get_gdk_pixbuf_format_by_extension (gchar *uri); + +G_END_DECLS + +#endif /* __EV_VIEW_H__ */ diff --git a/shell/ev-window-title.c b/shell/ev-window-title.c new file mode 100644 index 00000000..ad2837a4 --- /dev/null +++ b/shell/ev-window-title.c @@ -0,0 +1,203 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include "ev-window-title.h" +#include "ev-backends-manager.h" +#include "ev-utils.h" + +#include <string.h> +#include <gio/gio.h> +#include <glib/gi18n.h> + +/* Known backends (for bad extensions fix) */ +#define EV_BACKEND_PS "psdocument" +#define EV_BACKEND_PDF "pdfdocument" + +typedef struct +{ + const gchar *backend; + const gchar *text; +} BadTitleEntry; + +struct _EvWindowTitle +{ + EvWindow *window; + EvWindowTitleType type; + EvDocument *document; + char *uri; +}; + +static const BadTitleEntry bad_extensions[] = { + { EV_BACKEND_PS, ".dvi" }, + { EV_BACKEND_PDF, ".doc" }, + { EV_BACKEND_PDF, ".dvi" }, + { EV_BACKEND_PDF, ".indd" }, + { EV_BACKEND_PDF, ".rtf" } +}; + +static const BadTitleEntry bad_prefixes[] = { + { EV_BACKEND_PDF, "Microsoft Word - " }, + { EV_BACKEND_PDF, "Microsoft PowerPoint - " } +}; + +EvWindowTitle * +ev_window_title_new (EvWindow *window) +{ + EvWindowTitle *window_title; + + window_title = g_new0 (EvWindowTitle, 1); + window_title->window = window; + window_title->type = EV_WINDOW_TITLE_DOCUMENT; + + return window_title; +} + +static char * +get_filename_from_uri (const char *uri) +{ + char *filename; + char *basename; + + filename = g_uri_unescape_string (uri, NULL); + basename = g_path_get_basename (filename); + g_free(filename); + + return basename; +} + +/* Some docs report titles with confusing extensions (ex. .doc for pdf). + Let's show the filename in this case */ +static void +ev_window_title_sanitize_title (EvWindowTitle *window_title, char **title) { + const gchar *backend; + int i; + + backend = ev_backends_manager_get_document_module_name (window_title->document); + + for (i = 0; i < G_N_ELEMENTS (bad_extensions); i++) { + if (g_ascii_strcasecmp (bad_extensions[i].backend, backend) == 0 && + g_str_has_suffix (*title, bad_extensions[i].text)) { + char *new_title; + char *filename = get_filename_from_uri (window_title->uri); + + new_title = g_strdup_printf ("%s (%s)", *title, filename); + g_free (*title); + *title = new_title; + + g_free (filename); + } + } + for (i = 0; i < G_N_ELEMENTS (bad_prefixes); i++) { + if (g_ascii_strcasecmp (bad_prefixes[i].backend, backend) == 0 && + g_str_has_prefix (*title, bad_prefixes[i].text)) { + char *new_title; + int len = strlen(bad_prefixes[i].text); + + new_title = g_strdup_printf ("%s", (*title) + len); + g_free (*title); + *title = new_title; + } + } +} + +static void +ev_window_title_update (EvWindowTitle *window_title) +{ + GtkWindow *window = GTK_WINDOW (window_title->window); + char *title = NULL, *password_title, *p; + + if (window_title->document != NULL) { + gchar *doc_title; + + doc_title = g_strdup (ev_document_get_title (window_title->document)); + + /* Make sure we get a valid title back */ + if (doc_title != NULL) { + doc_title = g_strstrip (doc_title); + + if (doc_title[0] != '\0' && + g_utf8_validate (doc_title, -1, NULL)) { + title = g_strdup (doc_title); + } + + g_free (doc_title); + } + } + + if (title && window_title->uri) { + ev_window_title_sanitize_title (window_title, &title); + } else if (window_title->uri) { + title = get_filename_from_uri (window_title->uri); + } else if (!title) { + title = g_strdup (_("Document Viewer")); + } + + for (p = title; *p; ++p) { + /* an '\n' byte is always ASCII, no need for UTF-8 special casing */ + if (*p == '\n') *p = ' '; + } + + switch (window_title->type) { + case EV_WINDOW_TITLE_DOCUMENT: + gtk_window_set_title (window, title); + break; + case EV_WINDOW_TITLE_PASSWORD: + password_title = g_strdup_printf (_("%s ā Password Required"), title); + gtk_window_set_title (window, password_title); + g_free (password_title); + break; + } + + g_free (title); +} + +void +ev_window_title_set_type (EvWindowTitle *window_title, EvWindowTitleType type) +{ + window_title->type = type; + + ev_window_title_update (window_title); +} + +void +ev_window_title_set_document (EvWindowTitle *window_title, + EvDocument *document) +{ + window_title->document = document; + + ev_window_title_update (window_title); +} + +void +ev_window_title_set_uri (EvWindowTitle *window_title, + const char *uri) +{ + g_free (window_title->uri); + window_title->uri = g_strdup (uri); + + ev_window_title_update (window_title); +} + +void +ev_window_title_free (EvWindowTitle *window_title) +{ + g_free (window_title->uri); + g_free (window_title); +} diff --git a/shell/ev-window-title.h b/shell/ev-window-title.h new file mode 100644 index 00000000..8002ee35 --- /dev/null +++ b/shell/ev-window-title.h @@ -0,0 +1,47 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2005 Red Hat, Inc + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __EV_WINDOW_TITLE_H__ +#define __EV_WINDOW_TITLE_H__ + +#include "ev-window.h" +#include "ev-document.h" + +G_BEGIN_DECLS + +typedef struct _EvWindowTitle EvWindowTitle; + +typedef enum +{ + EV_WINDOW_TITLE_DOCUMENT, + EV_WINDOW_TITLE_PASSWORD +} EvWindowTitleType; + +EvWindowTitle *ev_window_title_new (EvWindow *window); +void ev_window_title_set_type (EvWindowTitle *window_title, + EvWindowTitleType type); +void ev_window_title_set_document (EvWindowTitle *window_title, + EvDocument *document); +void ev_window_title_set_uri (EvWindowTitle *window_title, + const char *uri); +void ev_window_title_free (EvWindowTitle *window_title); + +G_END_DECLS + +#endif /* __EV_WINDOW_TITLE_H__ */ diff --git a/shell/ev-window.c b/shell/ev-window.c new file mode 100644 index 00000000..088ac95b --- /dev/null +++ b/shell/ev-window.c @@ -0,0 +1,7149 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2009 Juanjo MarĆn <juanj.marin@juntadeandalucia.es> + * Copyright (C) 2008 Carlos Garcia Campos + * Copyright (C) 2004 Martin Kretzschmar + * Copyright (C) 2004 Red Hat, Inc. + * Copyright (C) 2000, 2001, 2002, 2003, 2004 Marco Pesenti Gritti + * Copyright Ā© 2003, 2004, 2005, 2009 Christian Persch + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <errno.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <math.h> + +#include <glib/gstdio.h> +#include <glib/gi18n.h> +#include <gio/gio.h> +#include <gtk/gtk.h> + +#ifdef WITH_MATECONF +#include <mateconf/mateconf-client.h> +#endif + +#include "egg-editable-toolbar.h" +#include "egg-toolbar-editor.h" +#include "egg-toolbars-model.h" + +#include "eggfindbar.h" + +#include "ephy-zoom-action.h" +#include "ephy-zoom.h" + +#include "ev-application.h" +#include "ev-document-factory.h" +#include "ev-document-find.h" +#include "ev-document-fonts.h" +#include "ev-document-images.h" +#include "ev-document-links.h" +#include "ev-document-thumbnails.h" +#include "ev-document-annotations.h" +#include "ev-document-type-builtins.h" +#include "ev-document-misc.h" +#include "ev-file-exporter.h" +#include "ev-file-helpers.h" +#include "ev-file-monitor.h" +#include "ev-history.h" +#include "ev-image.h" +#include "ev-job-scheduler.h" +#include "ev-jobs.h" +#include "ev-message-area.h" +#include "ev-metadata.h" +#include "ev-navigation-action.h" +#include "ev-open-recent-action.h" +#include "ev-page-action.h" +#include "ev-password-view.h" +#include "ev-properties-dialog.h" +#include "ev-sidebar-annotations.h" +#include "ev-sidebar-attachments.h" +#include "ev-sidebar.h" +#include "ev-sidebar-links.h" +#include "ev-sidebar-page.h" +#include "ev-sidebar-thumbnails.h" +#include "ev-sidebar-layers.h" +#include "ev-stock-icons.h" +#include "ev-utils.h" +#include "ev-keyring.h" +#include "ev-view.h" +#include "ev-view-presentation.h" +#include "ev-view-type-builtins.h" +#include "ev-window.h" +#include "ev-window-title.h" +#include "ev-print-operation.h" +#include "ev-progress-message-area.h" +#include "ev-annotation-properties-dialog.h" + +#ifdef ENABLE_DBUS +#include "ev-media-player-keys.h" +#endif /* ENABLE_DBUS */ + +typedef enum { + PAGE_MODE_DOCUMENT, + PAGE_MODE_PASSWORD +} EvWindowPageMode; + +typedef enum { + EV_CHROME_MENUBAR = 1 << 0, + EV_CHROME_TOOLBAR = 1 << 1, + EV_CHROME_FINDBAR = 1 << 2, + EV_CHROME_RAISE_TOOLBAR = 1 << 3, + EV_CHROME_FULLSCREEN_TOOLBAR = 1 << 4, + EV_CHROME_SIDEBAR = 1 << 5, + EV_CHROME_NORMAL = EV_CHROME_MENUBAR | EV_CHROME_TOOLBAR | EV_CHROME_SIDEBAR +} EvChrome; + +typedef enum { + EV_SAVE_DOCUMENT, + EV_SAVE_ATTACHMENT, + EV_SAVE_IMAGE +} EvSaveType; + +struct _EvWindowPrivate { + /* UI */ + EvChrome chrome; + + GtkWidget *main_box; + GtkWidget *menubar; + GtkWidget *toolbar; + GtkWidget *hpaned; + GtkWidget *view_box; + GtkWidget *sidebar; + GtkWidget *find_bar; + GtkWidget *scrolled_window; + GtkWidget *view; + GtkWidget *presentation_view; + GtkWidget *message_area; + GtkWidget *password_view; + GtkWidget *sidebar_thumbs; + GtkWidget *sidebar_links; + GtkWidget *sidebar_attachments; + GtkWidget *sidebar_layers; + GtkWidget *sidebar_annots; + + /* Settings */ + GSettings *settings; + GSettings *default_settings; + + /* Menubar accels */ + guint menubar_accel_keyval; + GdkModifierType menubar_accel_modifier; + + /* Progress Messages */ + guint progress_idle; + GCancellable *progress_cancellable; + + /* Dialogs */ + GtkWidget *properties; + GtkWidget *print_dialog; + + /* UI Builders */ + GtkActionGroup *action_group; + GtkActionGroup *view_popup_action_group; + GtkActionGroup *attachment_popup_action_group; + GtkRecentManager *recent_manager; + GtkActionGroup *recent_action_group; + guint recent_ui_id; + GtkUIManager *ui_manager; + + /* Fullscreen mode */ + GtkWidget *fullscreen_toolbar; + + /* Popup view */ + GtkWidget *view_popup; + EvLink *link; + EvImage *image; + EvAnnotation *annot; + + /* Popup attachment */ + GtkWidget *attachment_popup; + GList *attach_list; + + /* Document */ + EvDocumentModel *model; + char *uri; + glong uri_mtime; + char *local_uri; + gboolean in_reload; + EvFileMonitor *monitor; + guint setup_document_idle; + + EvDocument *document; + EvHistory *history; + EvWindowPageMode page_mode; + EvWindowTitle *title; + EvMetadata *metadata; + gboolean is_new_doc; + + /* Load params */ + EvLinkDest *dest; + gchar *search_string; + EvWindowRunMode window_mode; + + EvJob *load_job; + EvJob *reload_job; + EvJob *thumbnail_job; + EvJob *save_job; + EvJob *find_job; + + /* Printing */ + GQueue *print_queue; + GtkPrintSettings *print_settings; + GtkPageSetup *print_page_setup; + gboolean close_after_print; +#ifdef WITH_MATECONF + MateConfClient *mateconf_client; +#endif +#ifdef ENABLE_DBUS + /* DBus */ + guint dbus_object_id; + gchar *dbus_object_path; +#endif +}; + +#define EV_WINDOW_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_WINDOW, EvWindowPrivate)) + +#define EV_WINDOW_IS_PRESENTATION(w) (w->priv->presentation_view != NULL) + +#define PAGE_SELECTOR_ACTION "PageSelector" +#define ZOOM_CONTROL_ACTION "ViewZoom" +#define NAVIGATION_ACTION "Navigation" + +#define MATECONF_LOCKDOWN_DIR "/desktop/mate/lockdown" +#define MATECONF_LOCKDOWN_SAVE "/desktop/mate/lockdown/disable_save_to_disk" +#define MATECONF_LOCKDOWN_PRINT "/desktop/mate/lockdown/disable_printing" +#define MATECONF_LOCKDOWN_PRINT_SETUP "/desktop/mate/lockdown/disable_print_setup" + +#ifdef ENABLE_DBUS +#define EV_WINDOW_DBUS_OBJECT_PATH "/org/mate/evince/Window/%d" +#define EV_WINDOW_DBUS_INTERFACE "org.mate.evince.Window" +#endif + +#define GS_SCHEMA_NAME "org.mate.Evince" +#define GS_OVERRIDE_RESTRICTIONS "override-restrictions" + +#define SIDEBAR_DEFAULT_SIZE 132 +#define LINKS_SIDEBAR_ID "links" +#define THUMBNAILS_SIDEBAR_ID "thumbnails" +#define ATTACHMENTS_SIDEBAR_ID "attachments" +#define LAYERS_SIDEBAR_ID "layers" +#define ANNOTS_SIDEBAR_ID "annotations" + +#define EV_PRINT_SETTINGS_FILE "print-settings" +#define EV_PRINT_SETTINGS_GROUP "Print Settings" +#define EV_PAGE_SETUP_GROUP "Page Setup" + +#define EV_TOOLBARS_FILENAME "evince-toolbar.xml" + +#define MIN_SCALE 0.05409 +#define PAGE_CACHE_SIZE 52428800 /* 50MB */ + +#define MAX_RECENT_ITEM_LEN (40) + +static const gchar *document_print_settings[] = { + GTK_PRINT_SETTINGS_N_COPIES, + GTK_PRINT_SETTINGS_COLLATE, + GTK_PRINT_SETTINGS_REVERSE, + GTK_PRINT_SETTINGS_NUMBER_UP, + GTK_PRINT_SETTINGS_SCALE, + GTK_PRINT_SETTINGS_PRINT_PAGES, + GTK_PRINT_SETTINGS_PAGE_RANGES, + GTK_PRINT_SETTINGS_PAGE_SET, + GTK_PRINT_SETTINGS_OUTPUT_URI +}; + +static void ev_window_update_actions (EvWindow *ev_window); +static void ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar, + GParamSpec *pspec, + EvWindow *ev_window); +static void ev_window_view_toolbar_cb (GtkAction *action, + EvWindow *ev_window); +static void ev_window_set_page_mode (EvWindow *window, + EvWindowPageMode page_mode); +static void ev_window_load_job_cb (EvJob *job, + gpointer data); +static void ev_window_reload_document (EvWindow *window, + EvLinkDest *dest); +static void ev_window_reload_job_cb (EvJob *job, + EvWindow *window); +static void ev_window_set_icon_from_thumbnail (EvJobThumbnail *job, + EvWindow *ev_window); +static void ev_window_save_job_cb (EvJob *save, + EvWindow *window); +static void ev_window_sizing_mode_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window); +static void ev_window_zoom_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window); +static void ev_window_add_recent (EvWindow *window, + const char *filename); +static void ev_window_run_fullscreen (EvWindow *window); +static void ev_window_stop_fullscreen (EvWindow *window, + gboolean unfullscreen_window); +static void ev_window_cmd_view_fullscreen (GtkAction *action, + EvWindow *window); +static void ev_window_run_presentation (EvWindow *window); +static void ev_window_stop_presentation (EvWindow *window, + gboolean unfullscreen_window); +static void ev_window_cmd_view_presentation (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_open_link (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_open_link_new_window (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_copy_link_address (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_save_image_as (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_copy_image (GtkAction *action, + EvWindow *window); +static void ev_view_popup_cmd_annot_properties (GtkAction *action, + EvWindow *window); +static void ev_attachment_popup_cmd_open_attachment (GtkAction *action, + EvWindow *window); +static void ev_attachment_popup_cmd_save_attachment_as (GtkAction *action, + EvWindow *window); +static void ev_window_cmd_view_best_fit (GtkAction *action, + EvWindow *ev_window); +static void ev_window_cmd_view_page_width (GtkAction *action, + EvWindow *ev_window); +static void view_handle_link_cb (EvView *view, + EvLink *link, + EvWindow *window); +static void ev_window_update_find_status_message (EvWindow *ev_window); +static void ev_window_cmd_edit_find (GtkAction *action, + EvWindow *ev_window); +static void find_bar_search_changed_cb (EggFindBar *find_bar, + GParamSpec *param, + EvWindow *ev_window); +static void ev_window_load_file_remote (EvWindow *ev_window, + GFile *source_file); +static void ev_window_media_player_key_pressed (EvWindow *window, + const gchar *key, + gpointer user_data); +static void ev_window_update_max_min_scale (EvWindow *window); +#ifdef ENABLE_DBUS +static void ev_window_emit_closed (EvWindow *window); +static void ev_window_emit_doc_loaded (EvWindow *window); +#endif + +static guint ev_window_n_copies = 0; + +G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW) + +static gdouble +get_screen_dpi (EvWindow *window) +{ + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + return ev_document_misc_get_screen_dpi (screen); +} + +static void +ev_window_set_action_sensitive (EvWindow *ev_window, + const char *name, + gboolean sensitive) +{ + GtkAction *action = gtk_action_group_get_action (ev_window->priv->action_group, + name); + gtk_action_set_sensitive (action, sensitive); +} + + +static void +ev_window_setup_action_sensitivity (EvWindow *ev_window) +{ + EvDocument *document = ev_window->priv->document; + const EvDocumentInfo *info = NULL; + gboolean has_document = FALSE; + gboolean ok_to_print = TRUE; + gboolean ok_to_copy = TRUE; + gboolean has_properties = TRUE; + gboolean override_restrictions = TRUE; + gboolean can_get_text = FALSE; + gboolean has_pages = FALSE; + gboolean can_find = FALSE; + + if (document) { + has_document = TRUE; + has_pages = ev_document_get_n_pages (document) > 0; + info = ev_document_get_info (document); + } + + if (!info || info->fields_mask == 0) { + has_properties = FALSE; + } + + if (has_document && EV_IS_SELECTION (document)) { + can_get_text = TRUE; + } + + if (has_pages && EV_IS_DOCUMENT_FIND (document)) { + can_find = TRUE; + } + + if (has_document && ev_window->priv->settings) { + override_restrictions = + g_settings_get_boolean (ev_window->priv->settings, + GS_OVERRIDE_RESTRICTIONS); + } + + if (!override_restrictions && info && info->fields_mask & EV_DOCUMENT_INFO_PERMISSIONS) { + ok_to_print = (info->permissions & EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT); + ok_to_copy = (info->permissions & EV_DOCUMENT_PERMISSIONS_OK_TO_COPY); + } + + if (has_document && !ev_print_operation_exists_for_document(document)) + ok_to_print = FALSE; + +#ifdef WITH_MATECONF + if (has_document && + mateconf_client_get_bool (ev_window->priv->mateconf_client, MATECONF_LOCKDOWN_SAVE, NULL)) { + ok_to_copy = FALSE; + } + + if (has_document && + mateconf_client_get_bool (ev_window->priv->mateconf_client, MATECONF_LOCKDOWN_PRINT, NULL)) { + ok_to_print = FALSE; + } +#endif + + /* File menu */ + ev_window_set_action_sensitive (ev_window, "FileOpenCopy", has_document); + ev_window_set_action_sensitive (ev_window, "FileSaveAs", has_document && ok_to_copy); + ev_window_set_action_sensitive (ev_window, "FilePrint", has_pages && ok_to_print); + ev_window_set_action_sensitive (ev_window, "FileProperties", has_document && has_properties); + + /* Edit menu */ + ev_window_set_action_sensitive (ev_window, "EditSelectAll", has_pages && can_get_text); + ev_window_set_action_sensitive (ev_window, "EditFind", can_find); + ev_window_set_action_sensitive (ev_window, "Slash", can_find); + ev_window_set_action_sensitive (ev_window, "EditRotateLeft", has_pages); + ev_window_set_action_sensitive (ev_window, "EditRotateRight", has_pages); + + /* View menu */ + ev_window_set_action_sensitive (ev_window, "ViewContinuous", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewDual", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewBestFit", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewPageWidth", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewReload", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewAutoscroll", has_pages); + ev_window_set_action_sensitive (ev_window, "ViewInvertedColors", has_pages); + + /* Toolbar-specific actions: */ + ev_window_set_action_sensitive (ev_window, PAGE_SELECTOR_ACTION, has_pages); + ev_window_set_action_sensitive (ev_window, ZOOM_CONTROL_ACTION, has_pages); + ev_window_set_action_sensitive (ev_window, NAVIGATION_ACTION, FALSE); + + ev_window_update_actions (ev_window); +} + +static void +ev_window_update_actions (EvWindow *ev_window) +{ + EvView *view = EV_VIEW (ev_window->priv->view); + int n_pages = 0, page = -1; + gboolean has_pages = FALSE; + gboolean presentation_mode; + gboolean can_find_in_page = FALSE; + EvSizingMode sizing_mode; + + if (ev_window->priv->document) { + page = ev_document_model_get_page (ev_window->priv->model); + n_pages = ev_document_get_n_pages (ev_window->priv->document); + has_pages = n_pages > 0; + } + + can_find_in_page = (ev_window->priv->find_job && + ev_job_find_has_results (EV_JOB_FIND (ev_window->priv->find_job))); + + ev_window_set_action_sensitive (ev_window, "EditCopy", + has_pages && + ev_view_get_has_selection (view)); + ev_window_set_action_sensitive (ev_window, "EditFindNext", + has_pages && can_find_in_page); + ev_window_set_action_sensitive (ev_window, "EditFindPrevious", + has_pages && can_find_in_page); + ev_window_set_action_sensitive (ev_window, "F3", + has_pages && can_find_in_page); + + presentation_mode = EV_WINDOW_IS_PRESENTATION (ev_window); + + ev_window_set_action_sensitive (ev_window, "ViewZoomIn", + has_pages && + ev_view_can_zoom_in (view) && + !presentation_mode); + ev_window_set_action_sensitive (ev_window, "ViewZoomOut", + has_pages && + ev_view_can_zoom_out (view) && + !presentation_mode); + + /* Go menu */ + if (has_pages) { + ev_window_set_action_sensitive (ev_window, "GoPreviousPage", page > 0); + ev_window_set_action_sensitive (ev_window, "GoNextPage", page < n_pages - 1); + ev_window_set_action_sensitive (ev_window, "GoFirstPage", page > 0); + ev_window_set_action_sensitive (ev_window, "GoLastPage", page < n_pages - 1); + } else { + ev_window_set_action_sensitive (ev_window, "GoFirstPage", FALSE); + ev_window_set_action_sensitive (ev_window, "GoPreviousPage", FALSE); + ev_window_set_action_sensitive (ev_window, "GoNextPage", FALSE); + ev_window_set_action_sensitive (ev_window, "GoLastPage", FALSE); + } + + sizing_mode = ev_document_model_get_sizing_mode (ev_window->priv->model); + if (has_pages && sizing_mode != EV_SIZING_FIT_WIDTH && sizing_mode != EV_SIZING_BEST_FIT) { + GtkAction *action; + float zoom; + float real_zoom; + + action = gtk_action_group_get_action (ev_window->priv->action_group, + ZOOM_CONTROL_ACTION); + + real_zoom = ev_document_model_get_scale (ev_window->priv->model); + real_zoom *= 72.0 / get_screen_dpi (ev_window); + zoom = ephy_zoom_get_nearest_zoom_level (real_zoom); + + ephy_zoom_action_set_zoom_level (EPHY_ZOOM_ACTION (action), zoom); + } +} + +static void +ev_window_set_view_accels_sensitivity (EvWindow *window, gboolean sensitive) +{ + gboolean can_find; + + can_find = window->priv->document && + EV_IS_DOCUMENT_FIND (window->priv->document); + + if (window->priv->action_group) { + ev_window_set_action_sensitive (window, "PageDown", sensitive); + ev_window_set_action_sensitive (window, "PageUp", sensitive); + ev_window_set_action_sensitive (window, "Space", sensitive); + ev_window_set_action_sensitive (window, "ShiftSpace", sensitive); + ev_window_set_action_sensitive (window, "BackSpace", sensitive); + ev_window_set_action_sensitive (window, "ShiftBackSpace", sensitive); + ev_window_set_action_sensitive (window, "Return", sensitive); + ev_window_set_action_sensitive (window, "ShiftReturn", sensitive); + ev_window_set_action_sensitive (window, "Plus", sensitive); + ev_window_set_action_sensitive (window, "Minus", sensitive); + ev_window_set_action_sensitive (window, "KpPlus", sensitive); + ev_window_set_action_sensitive (window, "KpMinus", sensitive); + ev_window_set_action_sensitive (window, "Equal", sensitive); + ev_window_set_action_sensitive (window, "p", sensitive); + ev_window_set_action_sensitive (window, "n", sensitive); + + ev_window_set_action_sensitive (window, "Slash", sensitive && can_find); + } +} + +static void +set_widget_visibility (GtkWidget *widget, gboolean visible) +{ + g_assert (GTK_IS_WIDGET (widget)); + + if (visible) + gtk_widget_show (widget); + else + gtk_widget_hide (widget); +} + +static void +update_chrome_visibility (EvWindow *window) +{ + EvWindowPrivate *priv = window->priv; + gboolean menubar, toolbar, findbar, fullscreen_toolbar, sidebar; + gboolean fullscreen_mode, presentation, fullscreen; + + presentation = EV_WINDOW_IS_PRESENTATION (window); + fullscreen = ev_document_model_get_fullscreen (priv->model); + fullscreen_mode = fullscreen || presentation; + + menubar = (priv->chrome & EV_CHROME_MENUBAR) != 0 && !fullscreen_mode; + toolbar = ((priv->chrome & EV_CHROME_TOOLBAR) != 0 || + (priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && !fullscreen_mode; + fullscreen_toolbar = ((priv->chrome & EV_CHROME_FULLSCREEN_TOOLBAR) != 0 || + (priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && fullscreen; + findbar = (priv->chrome & EV_CHROME_FINDBAR) != 0; + sidebar = (priv->chrome & EV_CHROME_SIDEBAR) != 0 && priv->document && !presentation; + + set_widget_visibility (priv->menubar, menubar); + set_widget_visibility (priv->toolbar, toolbar); + set_widget_visibility (priv->find_bar, findbar); + set_widget_visibility (priv->sidebar, sidebar); + + ev_window_set_action_sensitive (window, "EditToolbar", toolbar); + + if (priv->fullscreen_toolbar != NULL) { + set_widget_visibility (priv->fullscreen_toolbar, fullscreen_toolbar); + } +} + +static void +update_chrome_flag (EvWindow *window, EvChrome flag, gboolean active) +{ + EvWindowPrivate *priv = window->priv; + + if (active) { + priv->chrome |= flag; + } else { + priv->chrome &= ~flag; + } +} + +static void +update_sizing_buttons (EvWindow *window) +{ + GtkActionGroup *action_group = window->priv->action_group; + GtkAction *action; + gboolean best_fit, page_width; + + switch (ev_document_model_get_sizing_mode (window->priv->model)) { + case EV_SIZING_BEST_FIT: + best_fit = TRUE; + page_width = FALSE; + break; + case EV_SIZING_FIT_WIDTH: + best_fit = FALSE; + page_width = TRUE; + break; + default: + best_fit = page_width = FALSE; + break; + } + + action = gtk_action_group_get_action (action_group, "ViewBestFit"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_view_best_fit), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), best_fit); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_view_best_fit), window); + + action = gtk_action_group_get_action (action_group, "ViewPageWidth"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_view_page_width), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), page_width); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_view_page_width), window); + + action = gtk_action_group_get_action (window->priv->action_group, + ZOOM_CONTROL_ACTION); + if (best_fit) { + ephy_zoom_action_set_zoom_level (EPHY_ZOOM_ACTION (action), + EPHY_ZOOM_BEST_FIT); + } else if (page_width) { + ephy_zoom_action_set_zoom_level (EPHY_ZOOM_ACTION (action), + EPHY_ZOOM_FIT_WIDTH); + } +} + +static void +update_chrome_actions (EvWindow *window) +{ + EvWindowPrivate *priv = window->priv; + GtkActionGroup *action_group = priv->action_group; + GtkAction *action; + + action= gtk_action_group_get_action (action_group, "ViewToolbar"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_view_toolbar_cb), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + (priv->chrome & EV_CHROME_TOOLBAR) != 0); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_view_toolbar_cb), window); +} + +/** + * ev_window_is_empty: + * @ev_window: The instance of the #EvWindow. + * + * It does look if there is any document loaded or if there is any job to load + * a document. + * + * Returns: %TRUE if there isn't any document loaded or any any documente to be + * loaded, %FALSE in other case. + */ +gboolean +ev_window_is_empty (const EvWindow *ev_window) +{ + g_return_val_if_fail (EV_IS_WINDOW (ev_window), FALSE); + + return (ev_window->priv->document == NULL) && + (ev_window->priv->load_job == NULL); +} + +static void +ev_window_set_message_area (EvWindow *window, + GtkWidget *area) +{ + if (window->priv->message_area == area) + return; + + if (window->priv->message_area) + gtk_widget_destroy (window->priv->message_area); + window->priv->message_area = area; + + if (!area) + return; + + gtk_box_pack_start (GTK_BOX (window->priv->view_box), + window->priv->message_area, + FALSE, FALSE, 0); + gtk_box_reorder_child (GTK_BOX (window->priv->view_box), + window->priv->message_area, 0); + g_object_add_weak_pointer (G_OBJECT (window->priv->message_area), + (gpointer) &(window->priv->message_area)); +} + +static void +ev_window_message_area_response_cb (EvMessageArea *area, + gint response_id, + EvWindow *window) +{ + ev_window_set_message_area (window, NULL); +} + +static void +ev_window_error_message (EvWindow *window, + GError *error, + const gchar *format, + ...) +{ + GtkWidget *area; + va_list args; + gchar *msg = NULL; + + if (window->priv->message_area) + return; + + va_start (args, format); + msg = g_strdup_vprintf (format, args); + va_end (args); + + area = ev_message_area_new (GTK_MESSAGE_ERROR, + msg, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + NULL); + g_free (msg); + + if (error) + ev_message_area_set_secondary_text (EV_MESSAGE_AREA (area), error->message); + g_signal_connect (area, "response", + G_CALLBACK (ev_window_message_area_response_cb), + window); + gtk_widget_show (area); + ev_window_set_message_area (window, area); +} + +static void +ev_window_warning_message (EvWindow *window, + const gchar *format, + ...) +{ + GtkWidget *area; + va_list args; + gchar *msg = NULL; + + if (window->priv->message_area) + return; + + va_start (args, format); + msg = g_strdup_vprintf (format, args); + va_end (args); + + area = ev_message_area_new (GTK_MESSAGE_WARNING, + msg, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + NULL); + g_free (msg); + + g_signal_connect (area, "response", + G_CALLBACK (ev_window_message_area_response_cb), + window); + gtk_widget_show (area); + ev_window_set_message_area (window, area); +} + +typedef struct _FindTask { + const gchar *page_label; + gchar *chapter; +} FindTask; + +static gboolean +ev_window_find_chapter (GtkTreeModel *tree_model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + FindTask *task = (FindTask *)data; + gchar *page_string; + + gtk_tree_model_get (tree_model, iter, + EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, &page_string, + -1); + + if (!page_string) + return FALSE; + + if (!strcmp (page_string, task->page_label)) { + gtk_tree_model_get (tree_model, iter, + EV_DOCUMENT_LINKS_COLUMN_MARKUP, &task->chapter, + -1); + g_free (page_string); + return TRUE; + } + + g_free (page_string); + return FALSE; +} + +static void +ev_window_add_history (EvWindow *window, gint page, EvLink *link) +{ + gchar *page_label = NULL; + gchar *link_title; + FindTask find_task; + EvLink *real_link; + EvLinkAction *action; + EvLinkDest *dest; + + if (window->priv->history == NULL) + return; + + if (!EV_IS_DOCUMENT_LINKS (window->priv->document)) + return; + + if (link) { + action = g_object_ref (ev_link_get_action (link)); + dest = ev_link_action_get_dest (action); + page_label = ev_document_links_get_dest_page_label (EV_DOCUMENT_LINKS (window->priv->document), dest); + } else { + dest = ev_link_dest_new_page (page); + action = ev_link_action_new_dest (dest); + page_label = ev_document_get_page_label (window->priv->document, page); + } + + if (!page_label) + return; + + find_task.page_label = page_label; + find_task.chapter = NULL; + + if (ev_document_links_has_document_links (EV_DOCUMENT_LINKS (window->priv->document))) { + GtkTreeModel *model; + + g_object_get (G_OBJECT (window->priv->sidebar_links), "model", &model, NULL); + + if (model) { + gtk_tree_model_foreach (model, + ev_window_find_chapter, + &find_task); + + g_object_unref (model); + } + } + + if (find_task.chapter) + link_title = g_strdup_printf (_("Page %s ā %s"), page_label, find_task.chapter); + else + link_title = g_strdup_printf (_("Page %s"), page_label); + + real_link = ev_link_new (link_title, action); + + ev_history_add_link (window->priv->history, real_link); + + g_free (find_task.chapter); + g_free (link_title); + g_free (page_label); + g_object_unref (real_link); +} + +static void +view_handle_link_cb (EvView *view, EvLink *link, EvWindow *window) +{ + int current_page = ev_document_model_get_page (window->priv->model); + + ev_window_add_history (window, 0, link); + ev_window_add_history (window, current_page, NULL); +} + +static void +view_selection_changed_cb (EvView *view, + EvWindow *window) +{ + ev_window_set_action_sensitive (window, "EditCopy", + ev_view_get_has_selection (view)); +} + +static void +ev_window_page_changed_cb (EvWindow *ev_window, + gint old_page, + gint new_page, + EvDocumentModel *model) +{ + ev_window_update_actions (ev_window); + + ev_window_update_find_status_message (ev_window); + + if (abs (new_page - old_page) > 1) { + ev_window_add_history (ev_window, new_page, NULL); + ev_window_add_history (ev_window, old_page, NULL); + } + + if (ev_window->priv->metadata && !ev_window_is_empty (ev_window)) + ev_metadata_set_int (ev_window->priv->metadata, "page", new_page); +} + +static const gchar * +ev_window_sidebar_get_current_page_id (EvWindow *ev_window) +{ + GtkWidget *current_page; + const gchar *id; + + g_object_get (ev_window->priv->sidebar, + "current_page", ¤t_page, + NULL); + + if (current_page == ev_window->priv->sidebar_links) { + id = LINKS_SIDEBAR_ID; + } else if (current_page == ev_window->priv->sidebar_thumbs) { + id = THUMBNAILS_SIDEBAR_ID; + } else if (current_page == ev_window->priv->sidebar_attachments) { + id = ATTACHMENTS_SIDEBAR_ID; + } else if (current_page == ev_window->priv->sidebar_layers) { + id = LAYERS_SIDEBAR_ID; + } else if (current_page == ev_window->priv->sidebar_annots) { + id = ANNOTS_SIDEBAR_ID; + } else { + g_assert_not_reached(); + } + + g_object_unref (current_page); + + return id; +} + +static void +ev_window_sidebar_set_current_page (EvWindow *window, + const gchar *page_id) +{ + EvDocument *document = window->priv->document; + EvSidebar *sidebar = EV_SIDEBAR (window->priv->sidebar); + GtkWidget *links = window->priv->sidebar_links; + GtkWidget *thumbs = window->priv->sidebar_thumbs; + GtkWidget *attachments = window->priv->sidebar_attachments; + GtkWidget *annots = window->priv->sidebar_annots; + GtkWidget *layers = window->priv->sidebar_layers; + + if (strcmp (page_id, LINKS_SIDEBAR_ID) == 0 && + ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (links), document)) { + ev_sidebar_set_page (sidebar, links); + } else if (strcmp (page_id, THUMBNAILS_SIDEBAR_ID) == 0 && + ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (thumbs), document)) { + ev_sidebar_set_page (sidebar, thumbs); + } else if (strcmp (page_id, ATTACHMENTS_SIDEBAR_ID) == 0 && + ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (attachments), document)) { + ev_sidebar_set_page (sidebar, attachments); + } else if (strcmp (page_id, LAYERS_SIDEBAR_ID) == 0 && + ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (layers), document)) { + ev_sidebar_set_page (sidebar, layers); + } else if (strcmp (page_id, ANNOTS_SIDEBAR_ID) == 0 && + ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (annots), document)) { + ev_sidebar_set_page (sidebar, annots); + } +} + +static void +update_document_mode (EvWindow *window, EvDocumentMode mode) +{ + if (mode == EV_DOCUMENT_MODE_PRESENTATION) { + ev_window_run_presentation (window); + } + else if (mode == EV_DOCUMENT_MODE_FULL_SCREEN) { + ev_window_run_fullscreen (window); + } +} + +static void +setup_chrome_from_metadata (EvWindow *window) +{ + EvChrome chrome = EV_CHROME_NORMAL; + gboolean show_toolbar = TRUE; + + if (ev_window_is_empty (window)) { + window->priv->chrome = chrome; + + return; + } + + if (!window->priv->metadata) { + show_toolbar = g_settings_get_boolean (window->priv->default_settings, "show-toolbar"); + } else if (!ev_metadata_get_boolean (window->priv->metadata, "show_toolbar", &show_toolbar)) { + if (window->priv->is_new_doc) + show_toolbar = g_settings_get_boolean (window->priv->default_settings, "show-toolbar"); + } + + if (!show_toolbar) + chrome &= ~EV_CHROME_TOOLBAR; + + window->priv->chrome = chrome; +} + +static void +setup_sidebar_from_metadata (EvWindow *window) +{ + EvDocument *document = window->priv->document; + GSettings *settings = window->priv->default_settings; + gchar *page_id; + gint sidebar_size; + gboolean sidebar_visibility = TRUE; + + if (ev_window_is_empty (window)) + return; + + if (!window->priv->metadata) { + sidebar_visibility = g_settings_get_boolean (settings, "show-sidebar"); + } else if (!ev_metadata_get_boolean (window->priv->metadata, "sidebar_visibility", &sidebar_visibility)) { + if (window->priv->is_new_doc) + sidebar_visibility = g_settings_get_boolean (settings, "show-sidebar"); + } + + update_chrome_flag (window, EV_CHROME_SIDEBAR, sidebar_visibility); + update_chrome_visibility (window); + + if (!window->priv->metadata) { + /* Set default values */ + gtk_paned_set_position (GTK_PANED (window->priv->hpaned), + g_settings_get_int (settings, "sidebar-size")); + if (document) { + page_id = g_settings_get_string (settings, "sidebar-page"); + ev_window_sidebar_set_current_page (window, page_id); + g_free (page_id); + } + + return; + } + + if (ev_metadata_get_int (window->priv->metadata, "sidebar_size", &sidebar_size)) { + gtk_paned_set_position (GTK_PANED (window->priv->hpaned), sidebar_size); + } else if (window->priv->is_new_doc) { + gtk_paned_set_position (GTK_PANED (window->priv->hpaned), + g_settings_get_int (settings, "sidebar-size")); + } + + if (!document) + return; + + if (ev_metadata_get_string (window->priv->metadata, "sidebar_page", &page_id)) { + ev_window_sidebar_set_current_page (window, page_id); + } else if (window->priv->is_new_doc) { + page_id = g_settings_get_string (settings, "sidebar-page"); + ev_window_sidebar_set_current_page (window, page_id); + g_free (page_id); + } +} + +static void +setup_model_from_metadata (EvWindow *window) +{ + GSettings *settings = window->priv->default_settings; + gint page; + gchar *sizing_mode; + gdouble zoom; + gint rotation; + gboolean inverted_colors = FALSE; + gboolean continuous = FALSE; + gboolean dual_page = FALSE; + gboolean fullscreen = FALSE; + + if (!window->priv->metadata) { + /* Set default values */ + ev_document_model_set_sizing_mode (window->priv->model, + g_settings_get_enum (settings, "sizing-mode")); + ev_document_model_set_inverted_colors (window->priv->model, + g_settings_get_boolean (settings, "inverted-colors")); + ev_document_model_set_continuous (window->priv->model, + g_settings_get_boolean (settings, "continuous")); + ev_document_model_set_dual_page (window->priv->model, + g_settings_get_boolean (settings, "dual-page")); + fullscreen = g_settings_get_boolean (settings, "fullscreen"); + if (fullscreen) + ev_window_run_fullscreen (window); + + return; + } + + /* Current page */ + if (!window->priv->dest && + ev_metadata_get_int (window->priv->metadata, "page", &page)) { + ev_document_model_set_page (window->priv->model, page); + } + + /* Sizing mode */ + if (ev_metadata_get_string (window->priv->metadata, "sizing_mode", &sizing_mode)) { + GEnumValue *enum_value; + + enum_value = g_enum_get_value_by_nick + (g_type_class_peek (EV_TYPE_SIZING_MODE), sizing_mode); + ev_document_model_set_sizing_mode (window->priv->model, enum_value->value); + } else if (window->priv->is_new_doc) { + ev_document_model_set_sizing_mode (window->priv->model, + g_settings_get_enum (settings, "sizing-mode")); + } + + /* Zoom */ + if (ev_document_model_get_sizing_mode (window->priv->model) == EV_SIZING_FREE && + ev_metadata_get_double (window->priv->metadata, "zoom", &zoom)) { + zoom *= get_screen_dpi (window) / 72.0; + ev_document_model_set_scale (window->priv->model, zoom); + } + + /* Rotation */ + if (ev_metadata_get_int (window->priv->metadata, "rotation", &rotation)) { + switch (rotation) { + case 90: + rotation = 90; + break; + case 180: + rotation = 180; + break; + case 270: + rotation = 270; + break; + default: + rotation = 0; + break; + } + ev_document_model_set_rotation (window->priv->model, rotation); + } + + /* Inverted Colors */ + if (ev_metadata_get_boolean (window->priv->metadata, "inverted-colors", &inverted_colors)) { + ev_document_model_set_inverted_colors (window->priv->model, inverted_colors); + } else if (window->priv->is_new_doc) { + ev_document_model_set_inverted_colors (window->priv->model, + g_settings_get_boolean (settings, "inverted-colors")); + } + + /* Continuous */ + if (ev_metadata_get_boolean (window->priv->metadata, "continuous", &continuous)) { + ev_document_model_set_continuous (window->priv->model, continuous); + } else if (window->priv->is_new_doc) { + ev_document_model_set_continuous (window->priv->model, + g_settings_get_boolean (settings, "continuous")); + } + + /* Dual page */ + if (ev_metadata_get_boolean (window->priv->metadata, "dual-page", &dual_page)) { + ev_document_model_set_dual_page (window->priv->model, dual_page); + } else if (window->priv->is_new_doc) { + ev_document_model_set_dual_page (window->priv->model, + g_settings_get_boolean (settings, "dual-page")); + } + + /* Fullscreen */ + if (!ev_metadata_get_boolean (window->priv->metadata, "fullscreen", &fullscreen)) { + if (window->priv->is_new_doc) + fullscreen = g_settings_get_boolean (settings, "fullscreen"); + } + + if (fullscreen) + ev_window_run_fullscreen (window); +} + +static void +setup_document_from_metadata (EvWindow *window) +{ + gint page, n_pages; + gint width; + gint height; + gdouble width_ratio; + gdouble height_ratio; + + setup_sidebar_from_metadata (window); + + if (window->priv->metadata) { + /* Make sure to not open a document on the last page, + * since closing it on the last page most likely means the + * user was finished reading the document. In that case, reopening should + * show the first page. */ + page = ev_document_model_get_page (window->priv->model); + n_pages = ev_document_get_n_pages (window->priv->document); + if (page == n_pages - 1) + ev_document_model_set_page (window->priv->model, 0); + + if (ev_metadata_get_int (window->priv->metadata, "window_width", &width) && + ev_metadata_get_int (window->priv->metadata, "window_height", &height)) + return; /* size was already set in setup_size_from_metadata */ + } + + g_settings_get (window->priv->default_settings, "window-ratio", "(dd)", &width_ratio, &height_ratio); + if (width_ratio > 0. && height_ratio > 0.) { + gdouble document_width; + gdouble document_height; + GdkScreen *screen; + gint request_width; + gint request_height; + + ev_document_get_max_page_size (window->priv->document, + &document_width, &document_height); + + request_width = (gint)(width_ratio * document_width + 0.5); + request_height = (gint)(height_ratio * document_height + 0.5); + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + if (screen) { + request_width = MIN (request_width, gdk_screen_get_width (screen)); + request_height = MIN (request_height, gdk_screen_get_height (screen)); + } + + if (request_width > 0 && request_height > 0) { + gtk_window_resize (GTK_WINDOW (window), + request_width, + request_height); + } + } +} + +static void +setup_size_from_metadata (EvWindow *window) +{ + gint width; + gint height; + gboolean maximized; + gint x; + gint y; + + if (!window->priv->metadata) + return; + + if (ev_metadata_get_boolean (window->priv->metadata, "window_maximized", &maximized)) { + if (maximized) { + gtk_window_maximize (GTK_WINDOW (window)); + return; + } else { + gtk_window_unmaximize (GTK_WINDOW (window)); + } + } + + if (ev_metadata_get_int (window->priv->metadata, "window_x", &x) && + ev_metadata_get_int (window->priv->metadata, "window_y", &y)) { + gtk_window_move (GTK_WINDOW (window), x, y); + } + + if (ev_metadata_get_int (window->priv->metadata, "window_width", &width) && + ev_metadata_get_int (window->priv->metadata, "window_height", &height)) { + gtk_window_resize (GTK_WINDOW (window), width, height); + } +} + +static void +setup_view_from_metadata (EvWindow *window) +{ + gboolean presentation; + + if (!window->priv->metadata) + return; + + /* Presentation */ + if (ev_metadata_get_boolean (window->priv->metadata, "presentation", &presentation)) { + if (presentation) { + ev_window_run_presentation (window); + } + } +} + +static void +ev_window_clear_thumbnail_job (EvWindow *ev_window) +{ + if (ev_window->priv->thumbnail_job != NULL) { + if (!ev_job_is_finished (ev_window->priv->thumbnail_job)) + ev_job_cancel (ev_window->priv->thumbnail_job); + + g_signal_handlers_disconnect_by_func (ev_window->priv->thumbnail_job, + ev_window_set_icon_from_thumbnail, + ev_window); + g_object_unref (ev_window->priv->thumbnail_job); + ev_window->priv->thumbnail_job = NULL; + } +} + +static void +ev_window_set_icon_from_thumbnail (EvJobThumbnail *job, + EvWindow *ev_window) +{ + if (job->thumbnail) { + if (ev_document_model_get_inverted_colors (ev_window->priv->model)) + ev_document_misc_invert_pixbuf (job->thumbnail); + gtk_window_set_icon (GTK_WINDOW (ev_window), + job->thumbnail); + } + + ev_window_clear_thumbnail_job (ev_window); +} + +static void +ev_window_refresh_window_thumbnail (EvWindow *ev_window) +{ + gdouble page_width; + gdouble scale; + gint rotation; + EvDocument *document = ev_window->priv->document; + + if (!EV_IS_DOCUMENT_THUMBNAILS (document) || + ev_document_get_n_pages (document) <= 0 || + !ev_document_check_dimensions (document)) { + return; + } + + ev_window_clear_thumbnail_job (ev_window); + + ev_document_get_page_size (document, 0, &page_width, NULL); + scale = 128. / page_width; + rotation = ev_document_model_get_rotation (ev_window->priv->model); + + ev_window->priv->thumbnail_job = ev_job_thumbnail_new (document, 0, rotation, scale); + g_signal_connect (ev_window->priv->thumbnail_job, "finished", + G_CALLBACK (ev_window_set_icon_from_thumbnail), + ev_window); + ev_job_scheduler_push_job (ev_window->priv->thumbnail_job, EV_JOB_PRIORITY_NONE); +} + +static void +override_restrictions_changed (GSettings *settings, + gchar *key, + EvWindow *ev_window) +{ + ev_window_setup_action_sensitivity (ev_window); +} + +#ifdef WITH_MATECONF +static void +lockdown_changed (MateConfClient *client, + guint cnxn_id, + MateConfEntry *entry, + EvWindow *ev_window) +{ + ev_window_setup_action_sensitivity (ev_window); +} +#endif /* WITH_MATECONF */ + +static gboolean +ev_window_setup_document (EvWindow *ev_window) +{ + const EvDocumentInfo *info; + EvDocument *document = ev_window->priv->document; + GtkAction *action; + + ev_window->priv->setup_document_idle = 0; + + ev_window_refresh_window_thumbnail (ev_window); + + ev_window_set_page_mode (ev_window, PAGE_MODE_DOCUMENT); + ev_window_title_set_document (ev_window->priv->title, document); + ev_window_title_set_uri (ev_window->priv->title, ev_window->priv->uri); + + if (!ev_window->priv->settings) { + ev_window->priv->settings = g_settings_new (GS_SCHEMA_NAME); + g_signal_connect (ev_window->priv->settings, + "changed::"GS_OVERRIDE_RESTRICTIONS, + G_CALLBACK (override_restrictions_changed), + ev_window); + } + +#ifdef WITH_MATECONF + if (!ev_window->priv->mateconf_client) + ev_window->priv->mateconf_client = mateconf_client_get_default (); + mateconf_client_add_dir (ev_window->priv->mateconf_client, + MATECONF_LOCKDOWN_DIR, + MATECONF_CLIENT_PRELOAD_ONELEVEL, + NULL); + mateconf_client_notify_add (ev_window->priv->mateconf_client, + MATECONF_LOCKDOWN_DIR, + (MateConfClientNotifyFunc)lockdown_changed, + ev_window, NULL, NULL); +#endif /* WITH_MATECONF */ + + ev_window_setup_action_sensitivity (ev_window); + + if (ev_window->priv->history) + g_object_unref (ev_window->priv->history); + ev_window->priv->history = ev_history_new (); + action = gtk_action_group_get_action (ev_window->priv->action_group, NAVIGATION_ACTION); + ev_navigation_action_set_history (EV_NAVIGATION_ACTION (action), ev_window->priv->history); + + if (ev_window->priv->properties) { + ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties), + ev_window->priv->uri, + ev_window->priv->document); + } + + info = ev_document_get_info (document); + update_document_mode (ev_window, info->mode); + + if (EV_WINDOW_IS_PRESENTATION (ev_window)) + gtk_widget_grab_focus (ev_window->priv->presentation_view); + else + gtk_widget_grab_focus (ev_window->priv->view); + + return FALSE; +} + +static void +ev_window_set_document (EvWindow *ev_window, EvDocument *document) +{ + if (ev_window->priv->document == document) + return; + + if (ev_window->priv->document) + g_object_unref (ev_window->priv->document); + ev_window->priv->document = g_object_ref (document); + + ev_window_update_max_min_scale (ev_window); + + ev_window_set_message_area (ev_window, NULL); + + if (ev_document_get_n_pages (document) <= 0) { + ev_window_warning_message (ev_window, "%s", + _("The document contains no pages")); + } else if (!ev_document_check_dimensions (document)) { + ev_window_warning_message (ev_window, "%s", + _("The document contains only empty pages")); + } + + if (EV_WINDOW_IS_PRESENTATION (ev_window)) { + gtk_widget_destroy (ev_window->priv->presentation_view); + ev_window->priv->presentation_view = NULL; + ev_window_run_presentation (ev_window); + } + + if (ev_window->priv->setup_document_idle > 0) + g_source_remove (ev_window->priv->setup_document_idle); + + ev_window->priv->setup_document_idle = g_idle_add ((GSourceFunc)ev_window_setup_document, ev_window); +} + +static void +ev_window_document_changed (EvWindow *ev_window, + gpointer user_data) +{ + ev_window_reload_document (ev_window, NULL); +} + +static void +ev_window_password_view_unlock (EvWindow *ev_window) +{ + const gchar *password; + + g_assert (ev_window->priv->load_job); + + password = ev_password_view_get_password (EV_PASSWORD_VIEW (ev_window->priv->password_view)); + ev_job_load_set_password (EV_JOB_LOAD (ev_window->priv->load_job), password); + ev_job_scheduler_push_job (ev_window->priv->load_job, EV_JOB_PRIORITY_NONE); +} + +static void +ev_window_clear_load_job (EvWindow *ev_window) +{ + if (ev_window->priv->load_job != NULL) { + if (!ev_job_is_finished (ev_window->priv->load_job)) + ev_job_cancel (ev_window->priv->load_job); + + g_signal_handlers_disconnect_by_func (ev_window->priv->load_job, ev_window_load_job_cb, ev_window); + g_object_unref (ev_window->priv->load_job); + ev_window->priv->load_job = NULL; + } +} + +static void +ev_window_clear_reload_job (EvWindow *ev_window) +{ + if (ev_window->priv->reload_job != NULL) { + if (!ev_job_is_finished (ev_window->priv->reload_job)) + ev_job_cancel (ev_window->priv->reload_job); + + g_signal_handlers_disconnect_by_func (ev_window->priv->reload_job, ev_window_reload_job_cb, ev_window); + g_object_unref (ev_window->priv->reload_job); + ev_window->priv->reload_job = NULL; + } +} + +static void +ev_window_clear_local_uri (EvWindow *ev_window) +{ + if (ev_window->priv->local_uri) { + ev_tmp_uri_unlink (ev_window->priv->local_uri); + g_free (ev_window->priv->local_uri); + ev_window->priv->local_uri = NULL; + } +} + +static void +ev_window_handle_link (EvWindow *ev_window, + EvLinkDest *dest) +{ + if (dest) { + EvLink *link; + EvLinkAction *link_action; + + link_action = ev_link_action_new_dest (dest); + link = ev_link_new (NULL, link_action); + ev_view_handle_link (EV_VIEW (ev_window->priv->view), link); + g_object_unref (link); + } +} + +/* This callback will executed when load job will be finished. + * + * Since the flow of the error dialog is very confusing, we assume that both + * document and uri will go away after this function is called, and thus we need + * to ref/dup them. Additionally, it needs to clear + * ev_window->priv->password_{uri,document}, and thus people who call this + * function should _not_ necessarily expect those to exist after being + * called. */ +static void +ev_window_load_job_cb (EvJob *job, + gpointer data) +{ + EvWindow *ev_window = EV_WINDOW (data); + EvDocument *document = EV_JOB (job)->document; + EvJobLoad *job_load = EV_JOB_LOAD (job); + + g_assert (job_load->uri); + + ev_view_set_loading (EV_VIEW (ev_window->priv->view), FALSE); + + /* Success! */ + if (!ev_job_is_failed (job)) { + ev_document_model_set_document (ev_window->priv->model, document); + +#ifdef ENABLE_DBUS + ev_window_emit_doc_loaded (ev_window); +#endif + setup_chrome_from_metadata (ev_window); + update_chrome_actions (ev_window); + setup_document_from_metadata (ev_window); + setup_view_from_metadata (ev_window); + + ev_window_add_recent (ev_window, ev_window->priv->uri); + + ev_window_title_set_type (ev_window->priv->title, + EV_WINDOW_TITLE_DOCUMENT); + if (job_load->password) { + GPasswordSave flags; + + flags = ev_password_view_get_password_save_flags ( + EV_PASSWORD_VIEW (ev_window->priv->password_view)); + ev_keyring_save_password (ev_window->priv->uri, + job_load->password, + flags); + } + + ev_window_handle_link (ev_window, ev_window->priv->dest); + /* Already unrefed by ev_link_action + * FIXME: link action should inc dest ref counting + * or not unref it at all + */ + ev_window->priv->dest = NULL; + + switch (ev_window->priv->window_mode) { + case EV_WINDOW_MODE_FULLSCREEN: + ev_window_run_fullscreen (ev_window); + break; + case EV_WINDOW_MODE_PRESENTATION: + ev_window_run_presentation (ev_window); + break; + default: + break; + } + + if (ev_window->priv->search_string && EV_IS_DOCUMENT_FIND (document)) { + ev_window_cmd_edit_find (NULL, ev_window); + egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar), + ev_window->priv->search_string); + } + + g_free (ev_window->priv->search_string); + ev_window->priv->search_string = NULL; + + /* Create a monitor for the document */ + ev_window->priv->monitor = ev_file_monitor_new (ev_window->priv->uri); + g_signal_connect_swapped (ev_window->priv->monitor, "changed", + G_CALLBACK (ev_window_document_changed), + ev_window); + + ev_window_clear_load_job (ev_window); + return; + } + + if (g_error_matches (job->error, EV_DOCUMENT_ERROR, EV_DOCUMENT_ERROR_ENCRYPTED)) { + gchar *password; + + setup_view_from_metadata (ev_window); + + /* First look whether password is in keyring */ + password = ev_keyring_lookup_password (ev_window->priv->uri); + if (password) { + if (job_load->password && strcmp (password, job_load->password) == 0) { + /* Password in kering is wrong */ + ev_job_load_set_password (job_load, NULL); + /* FIXME: delete password from keyring? */ + } else { + ev_job_load_set_password (job_load, password); + ev_job_scheduler_push_job (job, EV_JOB_PRIORITY_NONE); + g_free (password); + return; + } + + g_free (password); + } + + /* We need to ask the user for a password */ + ev_window_title_set_uri (ev_window->priv->title, + ev_window->priv->uri); + ev_window_title_set_type (ev_window->priv->title, + EV_WINDOW_TITLE_PASSWORD); + + ev_password_view_set_uri (EV_PASSWORD_VIEW (ev_window->priv->password_view), + job_load->uri); + + ev_window_set_page_mode (ev_window, PAGE_MODE_PASSWORD); + + ev_job_load_set_password (job_load, NULL); + ev_password_view_ask_password (EV_PASSWORD_VIEW (ev_window->priv->password_view)); + } else { + ev_window_error_message (ev_window, job->error, + "%s", _("Unable to open document")); + ev_window_clear_load_job (ev_window); + } +} + +static void +ev_window_reload_job_cb (EvJob *job, + EvWindow *ev_window) +{ + GtkWidget *widget; + + if (ev_job_is_failed (job)) { + ev_window_clear_reload_job (ev_window); + ev_window->priv->in_reload = FALSE; + if (ev_window->priv->dest) { + g_object_unref (ev_window->priv->dest); + ev_window->priv->dest = NULL; + } + + return; + } + + ev_document_model_set_document (ev_window->priv->model, + job->document); + if (ev_window->priv->dest) { + ev_window_handle_link (ev_window, ev_window->priv->dest); + /* Already unrefed by ev_link_action + * FIXME: link action should inc dest ref counting + * or not unref it at all + */ + ev_window->priv->dest = NULL; + } + + /* Restart the search after reloading */ + widget = gtk_window_get_focus (GTK_WINDOW (ev_window)); + if (widget && gtk_widget_get_ancestor (widget, EGG_TYPE_FIND_BAR)) { + find_bar_search_changed_cb (EGG_FIND_BAR (ev_window->priv->find_bar), + NULL, ev_window); + } + + ev_window_clear_reload_job (ev_window); + ev_window->priv->in_reload = FALSE; +} + +/** + * ev_window_get_uri: + * @ev_window: The instance of the #EvWindow. + * + * It returns the uri of the document showed in the #EvWindow. + * + * Returns: the uri of the document showed in the #EvWindow. + */ +const char * +ev_window_get_uri (EvWindow *ev_window) +{ + return ev_window->priv->uri; +} + +/** + * ev_window_close_dialogs: + * @ev_window: The window where dialogs will be closed. + * + * It looks for password, print and properties dialogs and closes them and + * frees them from memory. If there is any print job it does free it too. + */ +static void +ev_window_close_dialogs (EvWindow *ev_window) +{ + if (ev_window->priv->print_dialog) + gtk_widget_destroy (ev_window->priv->print_dialog); + ev_window->priv->print_dialog = NULL; + + if (ev_window->priv->properties) + gtk_widget_destroy (ev_window->priv->properties); + ev_window->priv->properties = NULL; +} + +static void +ev_window_clear_progress_idle (EvWindow *ev_window) +{ + if (ev_window->priv->progress_idle > 0) + g_source_remove (ev_window->priv->progress_idle); + ev_window->priv->progress_idle = 0; +} + +static void +reset_progress_idle (EvWindow *ev_window) +{ + ev_window->priv->progress_idle = 0; +} + +static void +ev_window_show_progress_message (EvWindow *ev_window, + guint interval, + GSourceFunc function) +{ + if (ev_window->priv->progress_idle > 0) + g_source_remove (ev_window->priv->progress_idle); + ev_window->priv->progress_idle = + g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, + interval, function, + ev_window, + (GDestroyNotify)reset_progress_idle); +} + +static void +ev_window_reset_progress_cancellable (EvWindow *ev_window) +{ + if (ev_window->priv->progress_cancellable) + g_cancellable_reset (ev_window->priv->progress_cancellable); + else + ev_window->priv->progress_cancellable = g_cancellable_new (); +} + +static void +ev_window_progress_response_cb (EvProgressMessageArea *area, + gint response, + EvWindow *ev_window) +{ + if (response == GTK_RESPONSE_CANCEL) + g_cancellable_cancel (ev_window->priv->progress_cancellable); + ev_window_set_message_area (ev_window, NULL); +} + +static gboolean +show_loading_progress (EvWindow *ev_window) +{ + GtkWidget *area; + gchar *text; + gchar *display_name; + + if (ev_window->priv->message_area) + return FALSE; + + text = g_uri_unescape_string (ev_window->priv->uri, NULL); + display_name = g_markup_escape_text (text, -1); + g_free (text); + text = g_strdup_printf (_("Loading document from ā%sā"), + display_name); + + area = ev_progress_message_area_new (GTK_STOCK_OPEN, + text, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + NULL); + g_signal_connect (area, "response", + G_CALLBACK (ev_window_progress_response_cb), + ev_window); + gtk_widget_show (area); + ev_window_set_message_area (ev_window, area); + + g_free (text); + g_free (display_name); + + return FALSE; +} + +static void +ev_window_load_remote_failed (EvWindow *ev_window, + GError *error) +{ + ev_view_set_loading (EV_VIEW (ev_window->priv->view), FALSE); + ev_window->priv->in_reload = FALSE; + ev_window_error_message (ev_window, error, + "%s", _("Unable to open document")); + g_free (ev_window->priv->local_uri); + ev_window->priv->local_uri = NULL; + ev_window->priv->uri_mtime = 0; +} + +static void +set_uri_mtime (GFile *source, + GAsyncResult *async_result, + EvWindow *ev_window) +{ + GFileInfo *info; + GError *error = NULL; + + info = g_file_query_info_finish (source, async_result, &error); + + if (error) { + ev_window->priv->uri_mtime = 0; + g_error_free (error); + } else { + GTimeVal mtime; + + g_file_info_get_modification_time (info, &mtime); + ev_window->priv->uri_mtime = mtime.tv_sec; + g_object_unref (info); + } + + g_object_unref (source); +} + +static void +mount_volume_ready_cb (GFile *source, + GAsyncResult *async_result, + EvWindow *ev_window) +{ + GError *error = NULL; + + g_file_mount_enclosing_volume_finish (source, async_result, &error); + + if (error) { + ev_window_load_remote_failed (ev_window, error); + g_object_unref (source); + g_error_free (error); + } else { + /* Volume successfully mounted, + try opening the file again */ + ev_window_load_file_remote (ev_window, source); + } +} + +static void +window_open_file_copy_ready_cb (GFile *source, + GAsyncResult *async_result, + EvWindow *ev_window) +{ + GError *error = NULL; + + ev_window_clear_progress_idle (ev_window); + ev_window_set_message_area (ev_window, NULL); + + g_file_copy_finish (source, async_result, &error); + if (!error) { + ev_job_scheduler_push_job (ev_window->priv->load_job, EV_JOB_PRIORITY_NONE); + g_file_query_info_async (source, + G_FILE_ATTRIBUTE_TIME_MODIFIED, + 0, G_PRIORITY_DEFAULT, + NULL, + (GAsyncReadyCallback)set_uri_mtime, + ev_window); + return; + } + + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED)) { + GMountOperation *operation; + + operation = gtk_mount_operation_new (GTK_WINDOW (ev_window)); + g_file_mount_enclosing_volume (source, + G_MOUNT_MOUNT_NONE, + operation, NULL, + (GAsyncReadyCallback)mount_volume_ready_cb, + ev_window); + g_object_unref (operation); + } else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + ev_window_clear_load_job (ev_window); + ev_window_clear_local_uri (ev_window); + g_free (ev_window->priv->uri); + ev_window->priv->uri = NULL; + g_object_unref (source); + + ev_view_set_loading (EV_VIEW (ev_window->priv->view), FALSE); + } else { + ev_window_load_remote_failed (ev_window, error); + g_object_unref (source); + } + + g_error_free (error); +} + +static void +window_open_file_copy_progress_cb (goffset n_bytes, + goffset total_bytes, + EvWindow *ev_window) +{ + gchar *status; + gdouble fraction; + + if (!ev_window->priv->message_area) + return; + + if (total_bytes <= 0) + return; + + fraction = n_bytes / (gdouble)total_bytes; + status = g_strdup_printf (_("Downloading document (%d%%)"), + (gint)(fraction * 100)); + + ev_progress_message_area_set_status (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + status); + ev_progress_message_area_set_fraction (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + fraction); + + g_free (status); +} + +static void +ev_window_load_file_remote (EvWindow *ev_window, + GFile *source_file) +{ + GFile *target_file; + + if (!ev_window->priv->local_uri) { + char *base_name, *template; + GFile *tmp_file; + GError *err = NULL; + + /* We'd like to keep extension of source uri since + * it helps to resolve some mime types, say cbz. + */ + base_name = g_file_get_basename (source_file); + template = g_strdup_printf ("document.XXXXXX-%s", base_name); + g_free (base_name); + + tmp_file = ev_mkstemp_file (template, &err); + g_free (template); + if (tmp_file == NULL) { + ev_window_error_message (ev_window, err, + "%s", _("Failed to load remote file.")); + g_error_free (err); + return; + } + + ev_window->priv->local_uri = g_file_get_uri (tmp_file); + g_object_unref (tmp_file); + + ev_job_load_set_uri (EV_JOB_LOAD (ev_window->priv->load_job), + ev_window->priv->local_uri); + } + + ev_window_reset_progress_cancellable (ev_window); + + target_file = g_file_new_for_uri (ev_window->priv->local_uri); + g_file_copy_async (source_file, target_file, + G_FILE_COPY_OVERWRITE, + G_PRIORITY_DEFAULT, + ev_window->priv->progress_cancellable, + (GFileProgressCallback)window_open_file_copy_progress_cb, + ev_window, + (GAsyncReadyCallback)window_open_file_copy_ready_cb, + ev_window); + g_object_unref (target_file); + + ev_window_show_progress_message (ev_window, 1, + (GSourceFunc)show_loading_progress); +} + +void +ev_window_open_uri (EvWindow *ev_window, + const char *uri, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string) +{ + GFile *source_file; + + ev_window->priv->in_reload = FALSE; + + if (ev_window->priv->uri && + g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0) { + ev_window_reload_document (ev_window, dest); + return; + } + + if (ev_window->priv->monitor) { + g_object_unref (ev_window->priv->monitor); + ev_window->priv->monitor = NULL; + } + + ev_window_close_dialogs (ev_window); + ev_window_clear_load_job (ev_window); + ev_window_clear_local_uri (ev_window); + + ev_window->priv->window_mode = mode; + + if (ev_window->priv->uri) + g_free (ev_window->priv->uri); + ev_window->priv->uri = g_strdup (uri); + + if (ev_window->priv->metadata) + g_object_unref (ev_window->priv->metadata); + + source_file = g_file_new_for_uri (uri); + if (!ev_file_is_temp (source_file) && ev_is_metadata_supported_for_file (source_file)) { + ev_window->priv->metadata = ev_metadata_new (source_file); + ev_window->priv->is_new_doc = ev_metadata_is_empty (ev_window->priv->metadata); + } else { + ev_window->priv->metadata = NULL; + } + + if (ev_window->priv->search_string) + g_free (ev_window->priv->search_string); + ev_window->priv->search_string = search_string ? + g_strdup (search_string) : NULL; + + if (ev_window->priv->dest) + g_object_unref (ev_window->priv->dest); + ev_window->priv->dest = dest ? g_object_ref (dest) : NULL; + + setup_size_from_metadata (ev_window); + setup_model_from_metadata (ev_window); + + ev_window->priv->load_job = ev_job_load_new (uri); + g_signal_connect (ev_window->priv->load_job, + "finished", + G_CALLBACK (ev_window_load_job_cb), + ev_window); + + if (!g_file_is_native (source_file) && !ev_window->priv->local_uri) { + ev_window_load_file_remote (ev_window, source_file); + } else { + ev_view_set_loading (EV_VIEW (ev_window->priv->view), TRUE); + g_object_unref (source_file); + ev_job_scheduler_push_job (ev_window->priv->load_job, EV_JOB_PRIORITY_NONE); + } +} + +void +ev_window_open_document (EvWindow *ev_window, + EvDocument *document, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string) +{ + if (document == ev_window->priv->document) + return; + + ev_window_close_dialogs (ev_window); + ev_window_clear_load_job (ev_window); + ev_window_clear_local_uri (ev_window); + + if (ev_window->priv->monitor) { + g_object_unref (ev_window->priv->monitor); + ev_window->priv->monitor = NULL; + } + + if (ev_window->priv->uri) + g_free (ev_window->priv->uri); + ev_window->priv->uri = g_strdup (ev_document_get_uri (document)); + + setup_size_from_metadata (ev_window); + setup_model_from_metadata (ev_window); + + ev_document_model_set_document (ev_window->priv->model, document); + + setup_document_from_metadata (ev_window); + setup_view_from_metadata (ev_window); + + if (dest) { + EvLink *link; + EvLinkAction *link_action; + + link_action = ev_link_action_new_dest (dest); + link = ev_link_new (NULL, link_action); + ev_view_handle_link (EV_VIEW (ev_window->priv->view), link); + /* FIXME: link action should inc dest ref counting + * or not unref it at all + */ + g_object_ref (dest); + g_object_unref (link); + } + + switch (mode) { + case EV_WINDOW_MODE_FULLSCREEN: + ev_window_run_fullscreen (ev_window); + break; + case EV_WINDOW_MODE_PRESENTATION: + ev_window_run_presentation (ev_window); + break; + default: + break; + } + + if (search_string && EV_IS_DOCUMENT_FIND (document)) { + ev_window_cmd_edit_find (NULL, ev_window); + egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar), + search_string); + } + + /* Create a monitor for the document */ + ev_window->priv->monitor = ev_file_monitor_new (ev_window->priv->uri); + g_signal_connect_swapped (ev_window->priv->monitor, "changed", + G_CALLBACK (ev_window_document_changed), + ev_window); +} + +static void +ev_window_reload_local (EvWindow *ev_window) +{ + const gchar *uri; + + uri = ev_window->priv->local_uri ? ev_window->priv->local_uri : ev_window->priv->uri; + ev_window->priv->reload_job = ev_job_load_new (uri); + g_signal_connect (ev_window->priv->reload_job, "finished", + G_CALLBACK (ev_window_reload_job_cb), + ev_window); + ev_job_scheduler_push_job (ev_window->priv->reload_job, EV_JOB_PRIORITY_NONE); +} + +static gboolean +show_reloading_progress (EvWindow *ev_window) +{ + GtkWidget *area; + gchar *text; + + if (ev_window->priv->message_area) + return FALSE; + + text = g_strdup_printf (_("Reloading document from %s"), + ev_window->priv->uri); + area = ev_progress_message_area_new (GTK_STOCK_REFRESH, + text, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + NULL); + g_signal_connect (area, "response", + G_CALLBACK (ev_window_progress_response_cb), + ev_window); + gtk_widget_show (area); + ev_window_set_message_area (ev_window, area); + g_free (text); + + return FALSE; +} + +static void +reload_remote_copy_ready_cb (GFile *remote, + GAsyncResult *async_result, + EvWindow *ev_window) +{ + GError *error = NULL; + + ev_window_clear_progress_idle (ev_window); + + g_file_copy_finish (remote, async_result, &error); + if (error) { + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + ev_window_error_message (ev_window, error, + "%s", _("Failed to reload document.")); + g_error_free (error); + } else { + ev_window_reload_local (ev_window); + } + + g_object_unref (remote); +} + +static void +reload_remote_copy_progress_cb (goffset n_bytes, + goffset total_bytes, + EvWindow *ev_window) +{ + gchar *status; + gdouble fraction; + + if (!ev_window->priv->message_area) + return; + + if (total_bytes <= 0) + return; + + fraction = n_bytes / (gdouble)total_bytes; + status = g_strdup_printf (_("Downloading document (%d%%)"), + (gint)(fraction * 100)); + + ev_progress_message_area_set_status (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + status); + ev_progress_message_area_set_fraction (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + fraction); + + g_free (status); +} + +static void +query_remote_uri_mtime_cb (GFile *remote, + GAsyncResult *async_result, + EvWindow *ev_window) +{ + GFileInfo *info; + GTimeVal mtime; + GError *error = NULL; + + info = g_file_query_info_finish (remote, async_result, &error); + if (error) { + g_error_free (error); + g_object_unref (remote); + ev_window_reload_local (ev_window); + + return; + } + + g_file_info_get_modification_time (info, &mtime); + if (ev_window->priv->uri_mtime != mtime.tv_sec) { + GFile *target_file; + + /* Remote file has changed */ + ev_window->priv->uri_mtime = mtime.tv_sec; + + ev_window_reset_progress_cancellable (ev_window); + + target_file = g_file_new_for_uri (ev_window->priv->local_uri); + g_file_copy_async (remote, target_file, + G_FILE_COPY_OVERWRITE, + G_PRIORITY_DEFAULT, + ev_window->priv->progress_cancellable, + (GFileProgressCallback)reload_remote_copy_progress_cb, + ev_window, + (GAsyncReadyCallback)reload_remote_copy_ready_cb, + ev_window); + g_object_unref (target_file); + ev_window_show_progress_message (ev_window, 1, + (GSourceFunc)show_reloading_progress); + } else { + g_object_unref (remote); + ev_window_reload_local (ev_window); + } + + g_object_unref (info); +} + +static void +ev_window_reload_remote (EvWindow *ev_window) +{ + GFile *remote; + + remote = g_file_new_for_uri (ev_window->priv->uri); + /* Reload the remote uri only if it has changed */ + g_file_query_info_async (remote, + G_FILE_ATTRIBUTE_TIME_MODIFIED, + 0, G_PRIORITY_DEFAULT, + NULL, + (GAsyncReadyCallback)query_remote_uri_mtime_cb, + ev_window); +} + +static void +ev_window_reload_document (EvWindow *ev_window, + EvLinkDest *dest) +{ + gint page; + + + ev_window_clear_reload_job (ev_window); + ev_window->priv->in_reload = TRUE; + + page = ev_document_model_get_page (ev_window->priv->model); + + if (ev_window->priv->dest) + g_object_unref (ev_window->priv->dest); + ev_window->priv->dest = dest ? g_object_ref (dest) : NULL; + + if (ev_window->priv->local_uri) { + ev_window_reload_remote (ev_window); + } else { + ev_window_reload_local (ev_window); + } +} + +static void +file_open_dialog_response_cb (GtkWidget *chooser, + gint response_id, + EvWindow *ev_window) +{ + if (response_id == GTK_RESPONSE_OK) { + GSList *uris; + gchar *uri; + + uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (chooser)); + + ev_application_open_uri_list (EV_APP, uris, + gtk_window_get_screen (GTK_WINDOW (ev_window)), + gtk_get_current_event_time ()); + + g_slist_foreach (uris, (GFunc)g_free, NULL); + g_slist_free (uris); + + uri = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (chooser)); + ev_application_set_filechooser_uri (EV_APP, + GTK_FILE_CHOOSER_ACTION_OPEN, + uri); + g_free (uri); + } + + gtk_widget_destroy (chooser); +} + +static void +ev_window_cmd_file_open (GtkAction *action, EvWindow *window) +{ + GtkWidget *chooser; + const gchar *default_uri; + gchar *parent_uri = NULL; + + chooser = gtk_file_chooser_dialog_new (_("Open Document"), + GTK_WINDOW (window), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_OK, + NULL); + + ev_document_factory_add_filters (chooser, NULL); + gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE); + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE); + + default_uri = ev_application_get_filechooser_uri (EV_APP, GTK_FILE_CHOOSER_ACTION_OPEN); + if (!default_uri && window->priv->uri) { + GFile *file, *parent; + + file = g_file_new_for_uri (window->priv->uri); + parent = g_file_get_parent (file); + if (parent) { + parent_uri = g_file_get_uri (parent); + default_uri = parent_uri; + g_object_unref (parent); + } + g_object_unref (file); + } + + if (default_uri) { + gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (chooser), default_uri); + } else { + const gchar *folder; + + folder = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS); + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), + folder ? folder : g_get_home_dir ()); + } + g_free (parent_uri); + + g_signal_connect (chooser, "response", + G_CALLBACK (file_open_dialog_response_cb), + window); + + gtk_widget_show (chooser); +} + +static void +ev_window_open_copy_at_dest (EvWindow *window, + EvLinkDest *dest) +{ + EvWindow *new_window = EV_WINDOW (ev_window_new ()); + + ev_window_n_copies++; + + if (window->priv->metadata) + new_window->priv->metadata = g_object_ref (window->priv->metadata); + ev_window_open_document (new_window, + window->priv->document, + dest, 0, NULL); + gtk_window_present (GTK_WINDOW (new_window)); +} + +static void +ev_window_cmd_file_open_copy (GtkAction *action, EvWindow *window) +{ + ev_window_open_copy_at_dest (window, NULL); +} + +static void +ev_window_cmd_recent_file_activate (GtkAction *action, + EvWindow *window) +{ + GtkRecentInfo *info; + const gchar *uri; + + info = g_object_get_data (G_OBJECT (action), "gtk-recent-info"); + g_assert (info != NULL); + + uri = gtk_recent_info_get_uri (info); + + ev_application_open_uri_at_dest (EV_APP, uri, + gtk_window_get_screen (GTK_WINDOW (window)), + NULL, 0, NULL, gtk_get_current_event_time ()); +} + +static void +ev_window_open_recent_action_item_activated (EvOpenRecentAction *action, + const gchar *uri, + EvWindow *window) +{ + ev_application_open_uri_at_dest (EV_APP, uri, + gtk_window_get_screen (GTK_WINDOW (window)), + NULL, 0, NULL, gtk_get_current_event_time ()); +} + +static void +ev_window_add_recent (EvWindow *window, const char *filename) +{ + gtk_recent_manager_add_item (window->priv->recent_manager, filename); +} + +static gint +compare_recent_items (GtkRecentInfo *a, GtkRecentInfo *b) +{ + gboolean has_ev_a, has_ev_b; + const gchar *evince = g_get_application_name (); + + has_ev_a = gtk_recent_info_has_application (a, evince); + has_ev_b = gtk_recent_info_has_application (b, evince); + + if (has_ev_a && has_ev_b) { + time_t time_a, time_b; + + time_a = gtk_recent_info_get_modified (a); + time_b = gtk_recent_info_get_modified (b); + + return (time_b - time_a); + } else if (has_ev_a) { + return -1; + } else if (has_ev_b) { + return 1; + } + + return 0; +} + +/* + * Doubles underscore to avoid spurious menu accels. + */ +static gchar * +ev_window_get_recent_file_label (gint index, const gchar *filename) +{ + GString *str; + gint length; + const gchar *p; + const gchar *end; + gboolean is_rtl; + + is_rtl = (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL); + + g_return_val_if_fail (filename != NULL, NULL); + + length = strlen (filename); + str = g_string_sized_new (length + 10); + g_string_printf (str, "%s_%d. ", is_rtl ? "\xE2\x80\x8F" : "", index); + + p = filename; + end = filename + length; + + while (p != end) { + const gchar *next; + next = g_utf8_next_char (p); + + switch (*p) { + case '_': + g_string_append (str, "__"); + break; + default: + g_string_append_len (str, p, next - p); + break; + } + + p = next; + } + + return g_string_free (str, FALSE); +} + +static void +ev_window_recent_action_connect_proxy_cb (GtkActionGroup *action_group, + GtkAction *action, + GtkWidget *proxy, + gpointer data) +{ + GtkLabel *label; + + if (!GTK_IS_MENU_ITEM (proxy)) + return; + + label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (proxy))); + + gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_MIDDLE); + gtk_label_set_max_width_chars (label, MAX_RECENT_ITEM_LEN); +} + +static void +ev_window_setup_recent (EvWindow *ev_window) +{ + GList *items, *l; + guint n_items = 0; + const gchar *evince = g_get_application_name (); + static guint i = 0; + + if (ev_window->priv->recent_ui_id > 0) { + gtk_ui_manager_remove_ui (ev_window->priv->ui_manager, + ev_window->priv->recent_ui_id); + gtk_ui_manager_ensure_update (ev_window->priv->ui_manager); + } + ev_window->priv->recent_ui_id = gtk_ui_manager_new_merge_id (ev_window->priv->ui_manager); + + if (ev_window->priv->recent_action_group) { + gtk_ui_manager_remove_action_group (ev_window->priv->ui_manager, + ev_window->priv->recent_action_group); + g_object_unref (ev_window->priv->recent_action_group); + } + ev_window->priv->recent_action_group = gtk_action_group_new ("RecentFilesActions"); + g_signal_connect (ev_window->priv->recent_action_group, "connect-proxy", + G_CALLBACK (ev_window_recent_action_connect_proxy_cb), NULL); + + gtk_ui_manager_insert_action_group (ev_window->priv->ui_manager, + ev_window->priv->recent_action_group, -1); + + items = gtk_recent_manager_get_items (ev_window->priv->recent_manager); + items = g_list_sort (items, (GCompareFunc) compare_recent_items); + + for (l = items; l && l->data; l = g_list_next (l)) { + GtkRecentInfo *info; + GtkAction *action; + gchar *action_name; + gchar *label; + const gchar *mime_type; + gchar *content_type; + GIcon *icon = NULL; + + info = (GtkRecentInfo *) l->data; + + if (!gtk_recent_info_has_application (info, evince) || + (gtk_recent_info_is_local (info) && !gtk_recent_info_exists (info))) + continue; + + action_name = g_strdup_printf ("RecentFile%u", i++); + label = ev_window_get_recent_file_label ( + n_items + 1, gtk_recent_info_get_display_name (info)); + + mime_type = gtk_recent_info_get_mime_type (info); + content_type = g_content_type_from_mime_type (mime_type); + if (content_type != NULL) { + icon = g_content_type_get_icon (content_type); + g_free (content_type); + } + + action = g_object_new (GTK_TYPE_ACTION, + "name", action_name, + "label", label, + "gicon", icon, + "always-show-image", TRUE, + NULL); + + g_object_set_data_full (G_OBJECT (action), + "gtk-recent-info", + gtk_recent_info_ref (info), + (GDestroyNotify) gtk_recent_info_unref); + + g_signal_connect (action, "activate", + G_CALLBACK (ev_window_cmd_recent_file_activate), + (gpointer) ev_window); + + gtk_action_group_add_action (ev_window->priv->recent_action_group, + action); + g_object_unref (action); + + gtk_ui_manager_add_ui (ev_window->priv->ui_manager, + ev_window->priv->recent_ui_id, + "/MainMenu/FileMenu/RecentFilesMenu", + label, + action_name, + GTK_UI_MANAGER_MENUITEM, + FALSE); + g_free (action_name); + g_free (label); + if (icon != NULL) + g_object_unref (icon); + + if (++n_items == 5) + break; + } + + g_list_foreach (items, (GFunc) gtk_recent_info_unref, NULL); + g_list_free (items); +} + +static gboolean +show_saving_progress (GFile *dst) +{ + EvWindow *ev_window; + GtkWidget *area; + gchar *text; + gchar *uri; + EvSaveType save_type; + + ev_window = EV_WINDOW (g_object_get_data (G_OBJECT (dst), "ev-window")); + ev_window->priv->progress_idle = 0; + + if (ev_window->priv->message_area) + return FALSE; + + save_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dst), "save-type")); + uri = g_file_get_uri (dst); + switch (save_type) { + case EV_SAVE_DOCUMENT: + text = g_strdup_printf (_("Saving document to %s"), uri); + break; + case EV_SAVE_ATTACHMENT: + text = g_strdup_printf (_("Saving attachment to %s"), uri); + break; + case EV_SAVE_IMAGE: + text = g_strdup_printf (_("Saving image to %s"), uri); + break; + default: + g_assert_not_reached (); + } + g_free (uri); + area = ev_progress_message_area_new (GTK_STOCK_SAVE, + text, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + NULL); + g_signal_connect (area, "response", + G_CALLBACK (ev_window_progress_response_cb), + ev_window); + gtk_widget_show (area); + ev_window_set_message_area (ev_window, area); + g_free (text); + + return FALSE; +} + +static void +window_save_file_copy_ready_cb (GFile *src, + GAsyncResult *async_result, + GFile *dst) +{ + EvWindow *ev_window; + GError *error = NULL; + + ev_window = EV_WINDOW (g_object_get_data (G_OBJECT (dst), "ev-window")); + ev_window_clear_progress_idle (ev_window); + + if (g_file_copy_finish (src, async_result, &error)) { + ev_tmp_file_unlink (src); + return; + } + + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + gchar *name; + + name = g_file_get_basename (dst); + ev_window_error_message (ev_window, error, + _("The file could not be saved as ā%sā."), + name); + g_free (name); + } + ev_tmp_file_unlink (src); + g_error_free (error); +} + +static void +window_save_file_copy_progress_cb (goffset n_bytes, + goffset total_bytes, + GFile *dst) +{ + EvWindow *ev_window; + EvSaveType save_type; + gchar *status; + gdouble fraction; + + ev_window = EV_WINDOW (g_object_get_data (G_OBJECT (dst), "ev-window")); + + if (!ev_window->priv->message_area) + return; + + if (total_bytes <= 0) + return; + + fraction = n_bytes / (gdouble)total_bytes; + save_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dst), "save-type")); + + switch (save_type) { + case EV_SAVE_DOCUMENT: + status = g_strdup_printf (_("Uploading document (%d%%)"), + (gint)(fraction * 100)); + break; + case EV_SAVE_ATTACHMENT: + status = g_strdup_printf (_("Uploading attachment (%d%%)"), + (gint)(fraction * 100)); + break; + case EV_SAVE_IMAGE: + status = g_strdup_printf (_("Uploading image (%d%%)"), + (gint)(fraction * 100)); + break; + default: + g_assert_not_reached (); + } + + ev_progress_message_area_set_status (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + status); + ev_progress_message_area_set_fraction (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + fraction); + + g_free (status); +} + +static void +ev_window_save_remote (EvWindow *ev_window, + EvSaveType save_type, + GFile *src, + GFile *dst) +{ + ev_window_reset_progress_cancellable (ev_window); + g_object_set_data (G_OBJECT (dst), "ev-window", ev_window); + g_object_set_data (G_OBJECT (dst), "save-type", GINT_TO_POINTER (save_type)); + g_file_copy_async (src, dst, + G_FILE_COPY_OVERWRITE, + G_PRIORITY_DEFAULT, + ev_window->priv->progress_cancellable, + (GFileProgressCallback)window_save_file_copy_progress_cb, + dst, + (GAsyncReadyCallback)window_save_file_copy_ready_cb, + dst); + ev_window->priv->progress_idle = + g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, + 1, + (GSourceFunc)show_saving_progress, + dst, + NULL); +} + +static void +ev_window_clear_save_job (EvWindow *ev_window) +{ + if (ev_window->priv->save_job != NULL) { + if (!ev_job_is_finished (ev_window->priv->save_job)) + ev_job_cancel (ev_window->priv->save_job); + + g_signal_handlers_disconnect_by_func (ev_window->priv->save_job, + ev_window_save_job_cb, + ev_window); + g_object_unref (ev_window->priv->save_job); + ev_window->priv->save_job = NULL; + } +} + +static void +ev_window_save_job_cb (EvJob *job, + EvWindow *window) +{ + if (ev_job_is_failed (job)) { + ev_window_error_message (window, job->error, + _("The file could not be saved as ā%sā."), + EV_JOB_SAVE (job)->uri); + } else { + ev_window_add_recent (window, EV_JOB_SAVE (job)->uri); + } + + ev_window_clear_save_job (window); +} + +static void +file_save_dialog_response_cb (GtkWidget *fc, + gint response_id, + EvWindow *ev_window) +{ + gchar *uri; + GFile *file, *parent; + + if (response_id != GTK_RESPONSE_OK) { + gtk_widget_destroy (fc); + return; + } + + uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (fc)); + file = g_file_new_for_uri (uri); + parent = g_file_get_parent (file); + g_object_unref (file); + if (parent) { + gchar *folder_uri; + + folder_uri = g_file_get_uri (parent); + ev_application_set_filechooser_uri (EV_APP, + GTK_FILE_CHOOSER_ACTION_SAVE, + folder_uri); + g_free (folder_uri); + g_object_unref (parent); + } + + /* FIXME: remote copy should be done here rather than in the save job, + * so that we can track progress and cancel the operation + */ + + ev_window_clear_save_job (ev_window); + ev_window->priv->save_job = ev_job_save_new (ev_window->priv->document, + uri, ev_window->priv->uri); + g_signal_connect (ev_window->priv->save_job, "finished", + G_CALLBACK (ev_window_save_job_cb), + ev_window); + /* The priority doesn't matter for this job */ + ev_job_scheduler_push_job (ev_window->priv->save_job, EV_JOB_PRIORITY_NONE); + + g_free (uri); + gtk_widget_destroy (fc); +} + +static void +ev_window_cmd_save_as (GtkAction *action, EvWindow *ev_window) +{ + GtkWidget *fc; + gchar *base_name; + GFile *file; + const gchar *default_uri; + + fc = gtk_file_chooser_dialog_new ( + _("Save a Copy"), + GTK_WINDOW (ev_window), GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_OK, + NULL); + + ev_document_factory_add_filters (fc, ev_window->priv->document); + gtk_dialog_set_default_response (GTK_DIALOG (fc), GTK_RESPONSE_OK); + gtk_dialog_set_alternative_button_order (GTK_DIALOG (fc), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (fc), FALSE); + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (fc), TRUE); + file = g_file_new_for_uri (ev_window->priv->uri); + base_name = g_file_get_basename (file); + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (fc), base_name); + + default_uri = ev_application_get_filechooser_uri (EV_APP, GTK_FILE_CHOOSER_ACTION_SAVE); + if (default_uri) { + gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (fc), default_uri); + } else { + const gchar *folder; + + folder = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS); + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc), + folder ? folder : g_get_home_dir ()); + } + + g_object_unref (file); + g_free (base_name); + + g_signal_connect (fc, "response", + G_CALLBACK (file_save_dialog_response_cb), + ev_window); + + gtk_widget_show (fc); +} + +static GKeyFile * +get_print_settings_file (void) +{ + GKeyFile *print_settings_file; + gchar *filename; + GError *error = NULL; + + print_settings_file = g_key_file_new (); + + filename = g_build_filename (ev_application_get_dot_dir (EV_APP, FALSE), + EV_PRINT_SETTINGS_FILE, NULL); + if (!g_key_file_load_from_file (print_settings_file, + filename, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, + &error)) { + + /* Don't warn if the file simply doesn't exist */ + if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) + g_warning ("%s", error->message); + + g_error_free (error); + } + + g_free (filename); + + return print_settings_file; +} + +static void +save_print_setting_file (GKeyFile *key_file) +{ + gchar *filename; + gchar *data; + gsize data_length; + GError *error = NULL; + + filename = g_build_filename (ev_application_get_dot_dir (EV_APP, TRUE), + EV_PRINT_SETTINGS_FILE, NULL); + data = g_key_file_to_data (key_file, &data_length, NULL); + g_file_set_contents (filename, data, data_length, &error); + if (error) { + g_warning ("Failed to save print settings: %s", error->message); + g_error_free (error); + } + g_free (data); + g_free (filename); +} + +static void +ev_window_save_print_settings (EvWindow *window, + GtkPrintSettings *print_settings) +{ + GKeyFile *key_file; + gint i; + + key_file = get_print_settings_file (); + gtk_print_settings_to_key_file (print_settings, key_file, EV_PRINT_SETTINGS_GROUP); + + /* Save print settings that are specific to the document */ + for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) { + /* Remove it from global settings */ + g_key_file_remove_key (key_file, EV_PRINT_SETTINGS_GROUP, + document_print_settings[i], NULL); + + if (window->priv->metadata) { + const gchar *value; + + value = gtk_print_settings_get (print_settings, + document_print_settings[i]); + ev_metadata_set_string (window->priv->metadata, + document_print_settings[i], value); + } + } + + save_print_setting_file (key_file); + g_key_file_free (key_file); +} + +static void +ev_window_save_print_page_setup (EvWindow *window, + GtkPageSetup *page_setup) +{ + GKeyFile *key_file; + + key_file = get_print_settings_file (); + gtk_page_setup_to_key_file (page_setup, key_file, EV_PAGE_SETUP_GROUP); + + /* Do not save document settings in global file */ + g_key_file_remove_key (key_file, EV_PAGE_SETUP_GROUP, + "page-setup-orientation", NULL); + g_key_file_remove_key (key_file, EV_PAGE_SETUP_GROUP, + "page-setup-margin-top", NULL); + g_key_file_remove_key (key_file, EV_PAGE_SETUP_GROUP, + "page-setup-margin-bottom", NULL); + g_key_file_remove_key (key_file, EV_PAGE_SETUP_GROUP, + "page-setup-margin-left", NULL); + g_key_file_remove_key (key_file, EV_PAGE_SETUP_GROUP, + "page-setup-margin-right", NULL); + + save_print_setting_file (key_file); + g_key_file_free (key_file); + + if (!window->priv->metadata) + return; + + /* Save page setup options that are specific to the document */ + ev_metadata_set_int (window->priv->metadata, "page-setup-orientation", + gtk_page_setup_get_orientation (page_setup)); + ev_metadata_set_double (window->priv->metadata, "page-setup-margin-top", + gtk_page_setup_get_top_margin (page_setup, GTK_UNIT_MM)); + ev_metadata_set_double (window->priv->metadata, "page-setup-margin-bottom", + gtk_page_setup_get_bottom_margin (page_setup, GTK_UNIT_MM)); + ev_metadata_set_double (window->priv->metadata, "page-setup-margin-left", + gtk_page_setup_get_left_margin (page_setup, GTK_UNIT_MM)); + ev_metadata_set_double (window->priv->metadata, "page-setup-margin-right", + gtk_page_setup_get_right_margin (page_setup, GTK_UNIT_MM)); +} + +static void +ev_window_load_print_settings_from_metadata (EvWindow *window, + GtkPrintSettings *print_settings) +{ + gint i; + + if (!window->priv->metadata) + return; + + /* Load print setting that are specific to the document */ + for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) { + gchar *value = NULL; + + ev_metadata_get_string (window->priv->metadata, + document_print_settings[i], &value); + gtk_print_settings_set (print_settings, + document_print_settings[i], value); + } +} + +static void +ev_window_load_print_page_setup_from_metadata (EvWindow *window, + GtkPageSetup *page_setup) +{ + gint int_value; + gdouble double_value; + GtkPaperSize *paper_size = gtk_page_setup_get_paper_size (page_setup); + + /* Load page setup options that are specific to the document */ + if (window->priv->metadata && + ev_metadata_get_int (window->priv->metadata, "page-setup-orientation", &int_value)) { + gtk_page_setup_set_orientation (page_setup, int_value); + } else { + gtk_page_setup_set_orientation (page_setup, GTK_PAGE_ORIENTATION_PORTRAIT); + } + + if (window->priv->metadata && + ev_metadata_get_double (window->priv->metadata, "page-setup-margin-top", &double_value)) { + gtk_page_setup_set_top_margin (page_setup, double_value, GTK_UNIT_MM); + } else { + gtk_page_setup_set_top_margin (page_setup, + gtk_paper_size_get_default_top_margin (paper_size, GTK_UNIT_MM), + GTK_UNIT_MM); + } + + if (window->priv->metadata && + ev_metadata_get_double (window->priv->metadata, "page-setup-margin-bottom", &double_value)) { + gtk_page_setup_set_bottom_margin (page_setup, double_value, GTK_UNIT_MM); + } else { + gtk_page_setup_set_bottom_margin (page_setup, + gtk_paper_size_get_default_bottom_margin (paper_size, GTK_UNIT_MM), + GTK_UNIT_MM); + } + + if (window->priv->metadata && + ev_metadata_get_double (window->priv->metadata, "page-setup-margin-left", &double_value)) { + gtk_page_setup_set_left_margin (page_setup, double_value, GTK_UNIT_MM); + } else { + gtk_page_setup_set_left_margin (page_setup, + gtk_paper_size_get_default_left_margin (paper_size, GTK_UNIT_MM), + GTK_UNIT_MM); + } + + if (window->priv->metadata && + ev_metadata_get_double (window->priv->metadata, "page-setup-margin-right", &double_value)) { + gtk_page_setup_set_right_margin (page_setup, double_value, GTK_UNIT_MM); + } else { + gtk_page_setup_set_right_margin (page_setup, + gtk_paper_size_get_default_right_margin (paper_size, GTK_UNIT_MM), + GTK_UNIT_MM); + } +} + +static GtkPrintSettings * +get_print_settings (GKeyFile *key_file) +{ + GtkPrintSettings *print_settings; + + print_settings = g_key_file_has_group (key_file, EV_PRINT_SETTINGS_GROUP) ? + gtk_print_settings_new_from_key_file (key_file, EV_PRINT_SETTINGS_GROUP, NULL) : + gtk_print_settings_new (); + + return print_settings ? print_settings : gtk_print_settings_new (); +} + +static GtkPageSetup * +get_print_page_setup (GKeyFile *key_file) +{ + GtkPageSetup *page_setup; + + page_setup = g_key_file_has_group (key_file, EV_PAGE_SETUP_GROUP) ? + gtk_page_setup_new_from_key_file (key_file, EV_PAGE_SETUP_GROUP, NULL) : + gtk_page_setup_new (); + + return page_setup ? page_setup : gtk_page_setup_new (); +} + +static void +ev_window_print_cancel (EvWindow *ev_window) +{ + EvPrintOperation *op; + + if (!ev_window->priv->print_queue) + return; + + while ((op = g_queue_peek_tail (ev_window->priv->print_queue))) { + ev_print_operation_cancel (op); + } +} + +static void +ev_window_print_update_pending_jobs_message (EvWindow *ev_window, + gint n_jobs) +{ + gchar *text = NULL; + + if (!EV_IS_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area) || + !ev_window->priv->print_queue) + return; + + if (n_jobs == 0) { + ev_window_set_message_area (ev_window, NULL); + return; + } + + if (n_jobs > 1) { + text = g_strdup_printf (ngettext ("%d pending job in queue", + "%d pending jobs in queue", + n_jobs - 1), n_jobs - 1); + } + + ev_message_area_set_secondary_text (EV_MESSAGE_AREA (ev_window->priv->message_area), + text); + g_free (text); +} + +static gboolean +destroy_window (GtkWidget *window) +{ + gtk_widget_destroy (window); + + return FALSE; +} + +static void +ev_window_print_operation_done (EvPrintOperation *op, + GtkPrintOperationResult result, + EvWindow *ev_window) +{ + gint n_jobs; + + switch (result) { + case GTK_PRINT_OPERATION_RESULT_APPLY: { + GtkPrintSettings *print_settings; + + print_settings = ev_print_operation_get_print_settings (op); + ev_window_save_print_settings (ev_window, print_settings); + + if (ev_print_operation_get_embed_page_setup (op)) { + GtkPageSetup *page_setup; + + page_setup = ev_print_operation_get_default_page_setup (op); + ev_window_save_print_page_setup (ev_window, page_setup); + } + } + + break; + case GTK_PRINT_OPERATION_RESULT_ERROR: { + GtkWidget *dialog; + GError *error = NULL; + + + ev_print_operation_get_error (op, &error); + + /* The message area is already used by + * the printing progress, so it's better to + * use a popup dialog in this case + */ + dialog = gtk_message_dialog_new (GTK_WINDOW (ev_window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", _("Failed to print document")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", error->message); + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), + NULL); + gtk_widget_show (dialog); + + g_error_free (error); + } + break; + case GTK_PRINT_OPERATION_RESULT_CANCEL: + default: + break; + } + + g_queue_remove (ev_window->priv->print_queue, op); + g_object_unref (op); + n_jobs = g_queue_get_length (ev_window->priv->print_queue); + ev_window_print_update_pending_jobs_message (ev_window, n_jobs); + + if (n_jobs == 0 && ev_window->priv->close_after_print) + g_idle_add ((GSourceFunc)destroy_window, + ev_window); +} + +static void +ev_window_print_progress_response_cb (EvProgressMessageArea *area, + gint response, + EvWindow *ev_window) +{ + if (response == GTK_RESPONSE_CANCEL) { + EvPrintOperation *op; + + op = g_queue_peek_tail (ev_window->priv->print_queue); + ev_print_operation_cancel (op); + } else { + gtk_widget_hide (GTK_WIDGET (area)); + } +} + +static void +ev_window_print_operation_status_changed (EvPrintOperation *op, + EvWindow *ev_window) +{ + const gchar *status; + gdouble fraction; + + status = ev_print_operation_get_status (op); + fraction = ev_print_operation_get_progress (op); + + if (!ev_window->priv->message_area) { + GtkWidget *area; + const gchar *job_name; + gchar *text; + + job_name = ev_print_operation_get_job_name (op); + text = g_strdup_printf (_("Printing job ā%sā"), job_name); + + area = ev_progress_message_area_new (GTK_STOCK_PRINT, + text, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + NULL); + ev_window_print_update_pending_jobs_message (ev_window, 1); + g_signal_connect (area, "response", + G_CALLBACK (ev_window_print_progress_response_cb), + ev_window); + gtk_widget_show (area); + ev_window_set_message_area (ev_window, area); + g_free (text); + } + + ev_progress_message_area_set_status (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + status); + ev_progress_message_area_set_fraction (EV_PROGRESS_MESSAGE_AREA (ev_window->priv->message_area), + fraction); +} + +static void +ev_window_print_operation_begin_print (EvPrintOperation *op, + EvWindow *ev_window) +{ + if (!ev_window->priv->print_queue) + ev_window->priv->print_queue = g_queue_new (); + + g_queue_push_head (ev_window->priv->print_queue, op); + ev_window_print_update_pending_jobs_message (ev_window, + g_queue_get_length (ev_window->priv->print_queue)); +} + +void +ev_window_print_range (EvWindow *ev_window, + gint first_page, + gint last_page) +{ + EvPrintOperation *op; + GKeyFile *print_settings_file; + GtkPrintSettings *print_settings; + GtkPageSetup *print_page_setup; + gint current_page; + gint document_last_page; + + g_return_if_fail (EV_IS_WINDOW (ev_window)); + g_return_if_fail (ev_window->priv->document != NULL); + + if (!ev_window->priv->print_queue) + ev_window->priv->print_queue = g_queue_new (); + + op = ev_print_operation_new (ev_window->priv->document); + if (!op) { + g_warning ("%s", "Printing is not supported for document\n"); + return; + } + + g_signal_connect (op, "begin_print", + G_CALLBACK (ev_window_print_operation_begin_print), + (gpointer)ev_window); + g_signal_connect (op, "status_changed", + G_CALLBACK (ev_window_print_operation_status_changed), + (gpointer)ev_window); + g_signal_connect (op, "done", + G_CALLBACK (ev_window_print_operation_done), + (gpointer)ev_window); + + current_page = ev_document_model_get_page (ev_window->priv->model); + document_last_page = ev_document_get_n_pages (ev_window->priv->document); + + print_settings_file = get_print_settings_file (); + + print_settings = get_print_settings (print_settings_file); + ev_window_load_print_settings_from_metadata (ev_window, print_settings); + + print_page_setup = get_print_page_setup (print_settings_file); + ev_window_load_print_page_setup_from_metadata (ev_window, print_page_setup); + + if (first_page != 1 || last_page != document_last_page) { + GtkPageRange range; + + /* Ranges in GtkPrint are 0 - N */ + range.start = first_page - 1; + range.end = last_page - 1; + + gtk_print_settings_set_print_pages (print_settings, + GTK_PRINT_PAGES_RANGES); + gtk_print_settings_set_page_ranges (print_settings, + &range, 1); + } + + ev_print_operation_set_job_name (op, gtk_window_get_title (GTK_WINDOW (ev_window))); + ev_print_operation_set_current_page (op, current_page); + ev_print_operation_set_print_settings (op, print_settings); + ev_print_operation_set_default_page_setup (op, print_page_setup); +#ifdef WITH_MATECONF + ev_print_operation_set_embed_page_setup (op, !mateconf_client_get_bool (ev_window->priv->mateconf_client, + MATECONF_LOCKDOWN_PRINT_SETUP, + NULL)); +#else + ev_print_operation_set_embed_page_setup (op, TRUE); +#endif + + g_object_unref (print_settings); + g_object_unref (print_page_setup); + g_key_file_free (print_settings_file); + + ev_print_operation_run (op, GTK_WINDOW (ev_window)); +} + +static void +ev_window_print (EvWindow *window) +{ + ev_window_print_range (window, 1, + ev_document_get_n_pages (window->priv->document)); +} + +static void +ev_window_cmd_file_print (GtkAction *action, EvWindow *ev_window) +{ + ev_window_print (ev_window); +} + +static void +ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window) +{ + if (ev_window->priv->properties == NULL) { + ev_window->priv->properties = ev_properties_dialog_new (); + ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties), + ev_window->priv->uri, + ev_window->priv->document); + g_object_add_weak_pointer (G_OBJECT (ev_window->priv->properties), + (gpointer) &(ev_window->priv->properties)); + gtk_window_set_transient_for (GTK_WINDOW (ev_window->priv->properties), + GTK_WINDOW (ev_window)); + } + + ev_document_fc_mutex_lock (); + gtk_widget_show (ev_window->priv->properties); + ev_document_fc_mutex_unlock (); +} + +static void +document_modified_confirmation_dialog_response (GtkDialog *dialog, + gint response, + EvWindow *ev_window) +{ + gtk_widget_destroy (GTK_WIDGET (dialog)); + + switch (response) { + case GTK_RESPONSE_YES: + ev_window_cmd_save_as (NULL, ev_window); + break; + case GTK_RESPONSE_NO: + gtk_widget_destroy (GTK_WIDGET (ev_window)); + break; + case GTK_RESPONSE_CANCEL: + default: + break; + } +} + +static gboolean +ev_window_check_document_modified (EvWindow *ev_window) +{ + EvDocument *document = ev_window->priv->document; + GtkWidget *dialog; + gchar *text, *markup; + const gchar *secondary_text; + + if (!document) + return FALSE; + + if (EV_IS_DOCUMENT_FORMS (document) && + ev_document_forms_document_is_modified (EV_DOCUMENT_FORMS (document))) { + secondary_text = _("Document contains form fields that have been filled out. " + "If you don't save a copy, changes will be permanently lost."); + } else if (EV_IS_DOCUMENT_ANNOTATIONS (document) && + ev_document_annotations_document_is_modified (EV_DOCUMENT_ANNOTATIONS (document))) { + secondary_text = _("Document contains new or modified annotations. " + "If you don't save a copy, changes will be permanently lost."); + } else { + return FALSE; + } + + + text = g_markup_printf_escaped (_("Save a copy of document ā%sā before closing?"), + gtk_window_get_title (GTK_WINDOW (ev_window))); + + dialog = gtk_message_dialog_new (GTK_WINDOW (ev_window), + GTK_DIALOG_MODAL, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + NULL); + + markup = g_strdup_printf ("<b>%s</b>", text); + g_free (text); + + gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), markup); + g_free (markup); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", secondary_text); + + gtk_dialog_add_buttons (GTK_DIALOG (dialog), + _("Close _without Saving"), + GTK_RESPONSE_NO, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + _("Save a _Copy"), + GTK_RESPONSE_YES, + NULL); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); + gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog), + GTK_RESPONSE_YES, + GTK_RESPONSE_NO, + GTK_RESPONSE_CANCEL, + -1); + + g_signal_connect (dialog, "response", + G_CALLBACK (document_modified_confirmation_dialog_response), + ev_window); + gtk_widget_show (dialog); + + return TRUE; +} + +static void +print_jobs_confirmation_dialog_response (GtkDialog *dialog, + gint response, + EvWindow *ev_window) +{ + gtk_widget_destroy (GTK_WIDGET (dialog)); + + switch (response) { + case GTK_RESPONSE_YES: + if (!ev_window->priv->print_queue || + g_queue_is_empty (ev_window->priv->print_queue)) + gtk_widget_destroy (GTK_WIDGET (ev_window)); + else + ev_window->priv->close_after_print = TRUE; + break; + case GTK_RESPONSE_NO: + ev_window->priv->close_after_print = TRUE; + if (ev_window->priv->print_queue && + !g_queue_is_empty (ev_window->priv->print_queue)) { + gtk_widget_set_sensitive (GTK_WIDGET (ev_window), FALSE); + ev_window_print_cancel (ev_window); + } else { + gtk_widget_destroy (GTK_WIDGET (ev_window)); + } + break; + case GTK_RESPONSE_CANCEL: + default: + ev_window->priv->close_after_print = FALSE; + } +} + +static gboolean +ev_window_check_print_queue (EvWindow *ev_window) +{ + GtkWidget *dialog; + gchar *text, *markup; + gint n_print_jobs; + + n_print_jobs = ev_window->priv->print_queue ? + g_queue_get_length (ev_window->priv->print_queue) : 0; + + if (n_print_jobs == 0) + return FALSE; + + dialog = gtk_message_dialog_new (GTK_WINDOW (ev_window), + GTK_DIALOG_MODAL, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + NULL); + if (n_print_jobs == 1) { + EvPrintOperation *op; + const gchar *job_name; + + op = g_queue_peek_tail (ev_window->priv->print_queue); + job_name = ev_print_operation_get_job_name (op); + + text = g_strdup_printf (_("Wait until print job ā%sā finishes before closing?"), + job_name); + } else { + text = g_strdup_printf (_("There are %d print jobs active. " + "Wait until print finishes before closing?"), + n_print_jobs); + } + + markup = g_strdup_printf ("<b>%s</b>", text); + g_free (text); + + gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), markup); + g_free (markup); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", + _("If you close the window, pending print " + "jobs will not be printed.")); + + gtk_dialog_add_buttons (GTK_DIALOG (dialog), + _("Cancel _print and Close"), + GTK_RESPONSE_NO, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + _("Close _after Printing"), + GTK_RESPONSE_YES, + NULL); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); + gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog), + GTK_RESPONSE_YES, + GTK_RESPONSE_NO, + GTK_RESPONSE_CANCEL, + -1); + + g_signal_connect (dialog, "response", + G_CALLBACK (print_jobs_confirmation_dialog_response), + ev_window); + gtk_widget_show (dialog); + + return TRUE; +} + +static gboolean +ev_window_close (EvWindow *ev_window) +{ + if (EV_WINDOW_IS_PRESENTATION (ev_window)) { + gint current_page; + + /* Save current page */ + current_page = ev_view_presentation_get_current_page ( + EV_VIEW_PRESENTATION (ev_window->priv->presentation_view)); + ev_document_model_set_page (ev_window->priv->model, current_page); + } + + if (ev_window_check_document_modified (ev_window)) + return FALSE; + + if (ev_window_check_print_queue (ev_window)) + return FALSE; + + return TRUE; +} + +static void +ev_window_cmd_file_close_window (GtkAction *action, EvWindow *ev_window) +{ + if (ev_window_close (ev_window)) + gtk_widget_destroy (GTK_WIDGET (ev_window)); +} + +static void +ev_window_cmd_focus_page_selector (GtkAction *act, EvWindow *window) +{ + GtkAction *action; + + update_chrome_flag (window, EV_CHROME_RAISE_TOOLBAR, TRUE); + ev_window_set_action_sensitive (window, "ViewToolbar", FALSE); + update_chrome_visibility (window); + + action = gtk_action_group_get_action (window->priv->action_group, + PAGE_SELECTOR_ACTION); + ev_page_action_grab_focus (EV_PAGE_ACTION (action)); +} + +static void +ev_window_cmd_scroll_forward (GtkAction *action, EvWindow *window) +{ + ev_view_scroll (EV_VIEW (window->priv->view), GTK_SCROLL_PAGE_FORWARD, FALSE); +} + +static void +ev_window_cmd_scroll_backward (GtkAction *action, EvWindow *window) +{ + ev_view_scroll (EV_VIEW (window->priv->view), GTK_SCROLL_PAGE_BACKWARD, FALSE); +} + +static void +ev_window_cmd_continuous (GtkAction *action, EvWindow *ev_window) +{ + gboolean continuous; + + ev_window_stop_presentation (ev_window, TRUE); + continuous = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + ev_document_model_set_continuous (ev_window->priv->model, continuous); +} + +static void +ev_window_cmd_dual (GtkAction *action, EvWindow *ev_window) +{ + gboolean dual_page; + + ev_window_stop_presentation (ev_window, TRUE); + dual_page = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + ev_document_model_set_dual_page (ev_window->priv->model, dual_page); +} + +static void +ev_window_cmd_view_best_fit (GtkAction *action, EvWindow *ev_window) +{ + ev_window_stop_presentation (ev_window, TRUE); + + if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) { + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_BEST_FIT); + } else { + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); + } + ev_window_update_actions (ev_window); +} + +static void +ev_window_cmd_view_page_width (GtkAction *action, EvWindow *ev_window) +{ + ev_window_stop_presentation (ev_window, TRUE); + + if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) { + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FIT_WIDTH); + } else { + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); + } + ev_window_update_actions (ev_window); +} + + +static void +ev_window_cmd_edit_select_all (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_view_select_all (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + if (ev_window->priv->document == NULL || !EV_IS_DOCUMENT_FIND (ev_window->priv->document)) { + g_error ("Find action should be insensitive since document doesn't support find"); + return; + } + + update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE); + update_chrome_visibility (ev_window); + gtk_widget_grab_focus (ev_window->priv->find_bar); +} + +static void +ev_window_cmd_edit_find_next (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE); + update_chrome_visibility (ev_window); + gtk_widget_grab_focus (ev_window->priv->find_bar); + ev_view_find_next (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_edit_find_previous (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE); + update_chrome_visibility (ev_window); + gtk_widget_grab_focus (ev_window->priv->find_bar); + ev_view_find_previous (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_edit_copy (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_view_copy (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_sidebar_position_change_cb (GObject *object, + GParamSpec *pspec, + EvWindow *ev_window) +{ + if (ev_window->priv->metadata && !ev_window_is_empty (ev_window)) + ev_metadata_set_int (ev_window->priv->metadata, "sidebar_size", + gtk_paned_get_position (GTK_PANED (object))); +} + +static void +ev_window_update_fullscreen_action (EvWindow *window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (window->priv->action_group, "ViewFullscreen"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_view_fullscreen), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + ev_document_model_get_fullscreen (window->priv->model)); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_view_fullscreen), window); +} + +static void +fullscreen_toolbar_setup_item_properties (GtkUIManager *ui_manager) +{ + GtkWidget *item; + + item = gtk_ui_manager_get_widget (ui_manager, "/FullscreenToolbar/GoPreviousPage"); + g_object_set (item, "is-important", FALSE, NULL); + + item = gtk_ui_manager_get_widget (ui_manager, "/FullscreenToolbar/GoNextPage"); + g_object_set (item, "is-important", FALSE, NULL); + + item = gtk_ui_manager_get_widget (ui_manager, "/FullscreenToolbar/StartPresentation"); + g_object_set (item, "is-important", TRUE, NULL); + + item = gtk_ui_manager_get_widget (ui_manager, "/FullscreenToolbar/LeaveFullscreen"); + g_object_set (item, "is-important", TRUE, NULL); +} + +static void +fullscreen_toolbar_remove_shadow (GtkWidget *toolbar) +{ + static gboolean done = FALSE; + + if (!done) { + gtk_rc_parse_string ( + "\n" + " style \"fullscreen-toolbar-style\"\n" + " {\n" + " GtkToolbar::shadow-type=GTK_SHADOW_NONE\n" + " }\n" + "\n" + " widget \"*.fullscreen-toolbar\" style \"fullscreen-toolbar-style\"\n" + "\n"); + done = TRUE; + } + + gtk_widget_set_name (toolbar, "fullscreen-toolbar"); +} + +static void +ev_window_run_fullscreen (EvWindow *window) +{ + gboolean fullscreen_window = TRUE; + + if (ev_document_model_get_fullscreen (window->priv->model)) + return; + + if (!window->priv->fullscreen_toolbar) { + window->priv->fullscreen_toolbar = + gtk_ui_manager_get_widget (window->priv->ui_manager, + "/FullscreenToolbar"); + + gtk_toolbar_set_style (GTK_TOOLBAR (window->priv->fullscreen_toolbar), + GTK_TOOLBAR_BOTH_HORIZ); + fullscreen_toolbar_remove_shadow (window->priv->fullscreen_toolbar); + fullscreen_toolbar_setup_item_properties (window->priv->ui_manager); + + gtk_box_pack_start (GTK_BOX (window->priv->main_box), + window->priv->fullscreen_toolbar, + FALSE, FALSE, 0); + gtk_box_reorder_child (GTK_BOX (window->priv->main_box), + window->priv->fullscreen_toolbar, 1); + } + + if (EV_WINDOW_IS_PRESENTATION (window)) { + ev_window_stop_presentation (window, FALSE); + fullscreen_window = FALSE; + } + + g_object_set (G_OBJECT (window->priv->scrolled_window), + "shadow-type", GTK_SHADOW_NONE, + NULL); + + ev_document_model_set_fullscreen (window->priv->model, TRUE); + ev_window_update_fullscreen_action (window); + + /* If the user doesn't have the main toolbar he/she won't probably want + * the toolbar in fullscreen mode. See bug #483048 + */ + update_chrome_flag (window, EV_CHROME_FULLSCREEN_TOOLBAR, + (window->priv->chrome & EV_CHROME_TOOLBAR) != 0); + update_chrome_visibility (window); + + if (fullscreen_window) + gtk_window_fullscreen (GTK_WINDOW (window)); + gtk_widget_grab_focus (window->priv->view); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "fullscreen", TRUE); +} + +static void +ev_window_stop_fullscreen (EvWindow *window, + gboolean unfullscreen_window) +{ + if (!ev_document_model_get_fullscreen (window->priv->model)) + return; + + g_object_set (G_OBJECT (window->priv->scrolled_window), + "shadow-type", GTK_SHADOW_IN, + NULL); + + ev_document_model_set_fullscreen (window->priv->model, FALSE); + ev_window_update_fullscreen_action (window); + update_chrome_flag (window, EV_CHROME_FULLSCREEN_TOOLBAR, FALSE); + update_chrome_visibility (window); + if (unfullscreen_window) + gtk_window_unfullscreen (GTK_WINDOW (window)); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "fullscreen", FALSE); +} + +static void +ev_window_cmd_view_fullscreen (GtkAction *action, EvWindow *window) +{ + gboolean fullscreen; + + fullscreen = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + if (fullscreen) { + ev_window_run_fullscreen (window); + } else { + ev_window_stop_fullscreen (window, TRUE); + } +} + +static void +ev_window_update_presentation_action (EvWindow *window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (window->priv->action_group, "ViewPresentation"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_view_presentation), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + EV_WINDOW_IS_PRESENTATION (window)); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_view_presentation), window); +} + +static void +ev_window_view_presentation_finished (EvWindow *window) +{ + ev_window_stop_presentation (window, TRUE); +} + +static void +ev_window_run_presentation (EvWindow *window) +{ + gboolean fullscreen_window = TRUE; + guint current_page; + guint rotation; + gboolean inverted_colors; + + if (EV_WINDOW_IS_PRESENTATION (window)) + return; + + if (ev_document_model_get_fullscreen (window->priv->model)) { + ev_window_stop_fullscreen (window, FALSE); + fullscreen_window = FALSE; + } + + current_page = ev_document_model_get_page (window->priv->model); + rotation = ev_document_model_get_rotation (window->priv->model); + inverted_colors = ev_document_model_get_inverted_colors (window->priv->model); + window->priv->presentation_view = ev_view_presentation_new (window->priv->document, + current_page, + rotation, + inverted_colors); + g_signal_connect_swapped (window->priv->presentation_view, "finished", + G_CALLBACK (ev_window_view_presentation_finished), + window); + + gtk_box_pack_start (GTK_BOX (window->priv->main_box), + window->priv->presentation_view, + TRUE, TRUE, 0); + + gtk_widget_hide (window->priv->hpaned); + ev_window_update_presentation_action (window); + update_chrome_visibility (window); + + gtk_widget_grab_focus (window->priv->presentation_view); + if (fullscreen_window) + gtk_window_fullscreen (GTK_WINDOW (window)); + + gtk_widget_show (window->priv->presentation_view); + + ev_application_screensaver_disable (EV_APP); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "presentation", TRUE); +} + +static void +ev_window_stop_presentation (EvWindow *window, + gboolean unfullscreen_window) +{ + guint current_page; + + if (!EV_WINDOW_IS_PRESENTATION (window)) + return; + + current_page = ev_view_presentation_get_current_page (EV_VIEW_PRESENTATION (window->priv->presentation_view)); + ev_document_model_set_page (window->priv->model, current_page); + + gtk_container_remove (GTK_CONTAINER (window->priv->main_box), + window->priv->presentation_view); + window->priv->presentation_view = NULL; + + gtk_widget_show (window->priv->hpaned); + ev_window_update_presentation_action (window); + update_chrome_visibility (window); + if (unfullscreen_window) + gtk_window_unfullscreen (GTK_WINDOW (window)); + + gtk_widget_grab_focus (window->priv->view); + + ev_application_screensaver_enable (EV_APP); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "presentation", FALSE); +} + +static void +ev_window_cmd_view_presentation (GtkAction *action, EvWindow *window) +{ + gboolean presentation; + + presentation = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + if (presentation) { + ev_window_run_presentation (window); + } +} + +static void +ev_window_setup_gtk_settings (EvWindow *window) +{ + GtkSettings *settings; + GdkScreen *screen; + gchar *menubar_accel_accel; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + settings = gtk_settings_get_for_screen (screen); + + g_object_get (settings, + "gtk-menu-bar-accel", &menubar_accel_accel, + NULL); + if (menubar_accel_accel != NULL && menubar_accel_accel[0] != '\0') { + gtk_accelerator_parse (menubar_accel_accel, + &window->priv->menubar_accel_keyval, + &window->priv->menubar_accel_modifier); + if (window->priv->menubar_accel_keyval == 0) { + g_warning ("Failed to parse menu bar accelerator '%s'\n", + menubar_accel_accel); + } + } else { + window->priv->menubar_accel_keyval = 0; + window->priv->menubar_accel_modifier = 0; + } + + g_free (menubar_accel_accel); +} + +static void +ev_window_update_max_min_scale (EvWindow *window) +{ + gdouble dpi; + GtkAction *action; + gdouble min_width, min_height; + gdouble width, height; + gdouble max_scale; + gint rotation = ev_document_model_get_rotation (window->priv->model); + + if (!window->priv->document) + return; + + dpi = get_screen_dpi (window) / 72.0; + + ev_document_get_min_page_size (window->priv->document, &min_width, &min_height); + width = (rotation == 0 || rotation == 180) ? min_width : min_height; + height = (rotation == 0 || rotation == 180) ? min_height : min_width; + max_scale = sqrt (PAGE_CACHE_SIZE / (width * dpi * 4 * height * dpi)); + + action = gtk_action_group_get_action (window->priv->action_group, + ZOOM_CONTROL_ACTION); + ephy_zoom_action_set_max_zoom_level (EPHY_ZOOM_ACTION (action), max_scale * dpi); + + ev_document_model_set_min_scale (window->priv->model, MIN_SCALE * dpi); + ev_document_model_set_max_scale (window->priv->model, max_scale * dpi); +} + +static void +ev_window_screen_changed (GtkWidget *widget, + GdkScreen *old_screen) +{ + EvWindow *window = EV_WINDOW (widget); + GdkScreen *screen; + + screen = gtk_widget_get_screen (widget); + if (screen == old_screen) + return; + + ev_window_setup_gtk_settings (window); + ev_window_update_max_min_scale (window); + + if (GTK_WIDGET_CLASS (ev_window_parent_class)->screen_changed) { + GTK_WIDGET_CLASS (ev_window_parent_class)->screen_changed (widget, old_screen); + } +} + +static gboolean +ev_window_state_event (GtkWidget *widget, + GdkEventWindowState *event) +{ + EvWindow *window = EV_WINDOW (widget); + + if (GTK_WIDGET_CLASS (ev_window_parent_class)->window_state_event) { + GTK_WIDGET_CLASS (ev_window_parent_class)->window_state_event (widget, event); + } + + if ((event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) == 0) + return FALSE; + + if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) { + if (ev_document_model_get_fullscreen (window->priv->model) || EV_WINDOW_IS_PRESENTATION (window)) + return FALSE; + + ev_window_run_fullscreen (window); + } else { + if (ev_document_model_get_fullscreen (window->priv->model)) + ev_window_stop_fullscreen (window, FALSE); + else if (EV_WINDOW_IS_PRESENTATION (window)) + ev_window_stop_presentation (window, FALSE); + } + + return FALSE; +} + +static void +ev_window_set_page_mode (EvWindow *window, + EvWindowPageMode page_mode) +{ + GtkWidget *child = NULL; + GtkWidget *real_child; + + if (window->priv->page_mode == page_mode) + return; + + window->priv->page_mode = page_mode; + + switch (page_mode) { + case PAGE_MODE_DOCUMENT: + child = window->priv->view; + break; + case PAGE_MODE_PASSWORD: + child = window->priv->password_view; + break; + default: + g_assert_not_reached (); + } + + real_child = gtk_bin_get_child (GTK_BIN (window->priv->scrolled_window)); + if (child != real_child) { + gtk_container_remove (GTK_CONTAINER (window->priv->scrolled_window), + real_child); + gtk_container_add (GTK_CONTAINER (window->priv->scrolled_window), + child); + } + ev_window_update_actions (window); +} + + +static void +ev_window_cmd_edit_rotate_left (GtkAction *action, EvWindow *ev_window) +{ + gint rotation = ev_document_model_get_rotation (ev_window->priv->model); + + ev_document_model_set_rotation (ev_window->priv->model, rotation - 90); +} + +static void +ev_window_cmd_edit_rotate_right (GtkAction *action, EvWindow *ev_window) +{ + gint rotation = ev_document_model_get_rotation (ev_window->priv->model); + + ev_document_model_set_rotation (ev_window->priv->model, rotation + 90); +} + +static void +ev_window_cmd_view_inverted_colors (GtkAction *action, EvWindow *ev_window) +{ + gboolean inverted_colors = ev_document_model_get_inverted_colors (ev_window->priv->model); + + ev_document_model_set_inverted_colors (ev_window->priv->model, !inverted_colors); +} + +static void +ev_window_cmd_edit_toolbar_cb (GtkDialog *dialog, + gint response, + EvWindow *ev_window) +{ + EggEditableToolbar *toolbar; + gchar *toolbars_file; + + toolbar = EGG_EDITABLE_TOOLBAR (ev_window->priv->toolbar); + egg_editable_toolbar_set_edit_mode (toolbar, FALSE); + + toolbars_file = g_build_filename (ev_application_get_dot_dir (EV_APP, TRUE), + "evince_toolbar.xml", NULL); + egg_toolbars_model_save_toolbars (egg_editable_toolbar_get_model (toolbar), + toolbars_file, "1.0"); + g_free (toolbars_file); + + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +ev_window_cmd_edit_toolbar (GtkAction *action, EvWindow *ev_window) +{ + GtkWidget *dialog; + GtkWidget *editor; + GtkWidget *content_area; + EggEditableToolbar *toolbar; + + dialog = gtk_dialog_new_with_buttons (_("Toolbar Editor"), + GTK_WINDOW (ev_window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, + NULL); + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE); + gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)), 5); + gtk_box_set_spacing (GTK_BOX (content_area), 2); + gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); + gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 400); + + toolbar = EGG_EDITABLE_TOOLBAR (ev_window->priv->toolbar); + editor = egg_toolbar_editor_new (ev_window->priv->ui_manager, + egg_editable_toolbar_get_model (toolbar)); + + gtk_container_set_border_width (GTK_CONTAINER (editor), 5); + gtk_box_set_spacing (GTK_BOX (EGG_TOOLBAR_EDITOR (editor)), 5); + + gtk_container_add (GTK_CONTAINER (content_area), editor); + + egg_editable_toolbar_set_edit_mode (toolbar, TRUE); + + g_signal_connect (dialog, "response", + G_CALLBACK (ev_window_cmd_edit_toolbar_cb), + ev_window); + gtk_widget_show_all (dialog); +} + +static void +ev_window_cmd_edit_save_settings (GtkAction *action, EvWindow *ev_window) +{ + EvWindowPrivate *priv = ev_window->priv; + EvDocumentModel *model = priv->model; + GSettings *settings = priv->default_settings; + + g_settings_set_boolean (settings, "continuous", + ev_document_model_get_continuous (model)); + g_settings_set_boolean (settings, "dual-page", + ev_document_model_get_dual_page (model)); + g_settings_set_boolean (settings, "fullscreen", + ev_document_model_get_fullscreen (model)); + g_settings_set_boolean (settings, "inverted-colors", + ev_document_model_get_inverted_colors (model)); + g_settings_set_enum (settings, "sizing-mode", + ev_document_model_get_sizing_mode (model)); + g_settings_set_boolean (settings, "show-toolbar", + gtk_widget_get_visible (priv->toolbar)); + g_settings_set_boolean (settings, "show-sidebar", + gtk_widget_get_visible (priv->sidebar)); + g_settings_set_int (settings, "sidebar-size", + gtk_paned_get_position (GTK_PANED (priv->hpaned))); + g_settings_set_string (settings, "sidebar-page", + ev_window_sidebar_get_current_page_id (ev_window)); + g_settings_apply (settings); +} + +static void +ev_window_cmd_view_zoom_in (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); + ev_view_zoom_in (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_view_zoom_out (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE); + ev_view_zoom_out (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_go_previous_page (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_view_previous_page (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_go_next_page (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_view_next_page (EV_VIEW (ev_window->priv->view)); +} + +static void +ev_window_cmd_go_first_page (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_document_model_set_page (ev_window->priv->model, 0); +} + +static void +ev_window_cmd_go_last_page (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_document_model_set_page (ev_window->priv->model, + ev_document_get_n_pages (ev_window->priv->document) - 1); +} + +static void +ev_window_cmd_go_forward (GtkAction *action, EvWindow *ev_window) +{ + int n_pages, current_page; + + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + n_pages = ev_document_get_n_pages (ev_window->priv->document); + current_page = ev_document_model_get_page (ev_window->priv->model); + + if (current_page + 10 < n_pages) { + ev_document_model_set_page (ev_window->priv->model, current_page + 10); + } +} + +static void +ev_window_cmd_go_backward (GtkAction *action, EvWindow *ev_window) +{ + int current_page; + + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + current_page = ev_document_model_get_page (ev_window->priv->model); + + if (current_page - 10 >= 0) { + ev_document_model_set_page (ev_window->priv->model, current_page - 10); + } +} + +static void +ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window) +{ + ev_window_reload_document (ev_window, NULL); +} + +static void +ev_window_cmd_view_autoscroll (GtkAction *action, EvWindow *ev_window) +{ + ev_view_autoscroll_start (EV_VIEW (ev_window->priv->view)); +} + +#if OFFLINE_HELP_ENABLED +#define EV_HELP "ghelp:evince" +#else +#define EV_HELP "http://library.mate.org/users/evince/stable/" +#endif + +static void +ev_window_cmd_help_contents (GtkAction *action, EvWindow *ev_window) +{ + GError *error = NULL; + + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (ev_window)), + EV_HELP, + gtk_get_current_event_time (), + &error); + if (error) { + ev_window_error_message (ev_window, error, + "%s", _("There was an error displaying help")); + g_error_free (error); + } +} + +static void +ev_window_cmd_leave_fullscreen (GtkAction *action, EvWindow *window) +{ + ev_window_stop_fullscreen (window, TRUE); +} + +static void +ev_window_cmd_start_presentation (GtkAction *action, EvWindow *window) +{ + ev_window_run_presentation (window); +} + +static void +ev_window_cmd_escape (GtkAction *action, EvWindow *window) +{ + GtkWidget *widget; + + ev_view_autoscroll_stop (EV_VIEW (window->priv->view)); + + widget = gtk_window_get_focus (GTK_WINDOW (window)); + if (widget && gtk_widget_get_ancestor (widget, EGG_TYPE_FIND_BAR)) { + update_chrome_flag (window, EV_CHROME_FINDBAR, FALSE); + update_chrome_visibility (window); + gtk_widget_grab_focus (window->priv->view); + } else { + gboolean fullscreen; + + fullscreen = ev_document_model_get_fullscreen (window->priv->model); + + if (fullscreen) { + ev_window_stop_fullscreen (window, TRUE); + } else if (EV_WINDOW_IS_PRESENTATION (window)) { + ev_window_stop_presentation (window, TRUE); + gtk_widget_grab_focus (window->priv->view); + } else { + gtk_widget_grab_focus (window->priv->view); + } + + if (fullscreen && EV_WINDOW_IS_PRESENTATION (window)) + g_warning ("Both fullscreen and presentation set somehow"); + } +} + +static void +save_sizing_mode (EvWindow *window) +{ + EvSizingMode mode; + GEnumValue *enum_value; + + if (!window->priv->metadata || ev_window_is_empty (window)) + return; + + mode = ev_document_model_get_sizing_mode (window->priv->model); + enum_value = g_enum_get_value (g_type_class_peek (EV_TYPE_SIZING_MODE), mode); + ev_metadata_set_string (window->priv->metadata, "sizing_mode", + enum_value->value_nick); +} + +static void +ev_window_document_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window) +{ + ev_window_set_document (ev_window, + ev_document_model_get_document (model)); +} + +static void +ev_window_sizing_mode_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window) +{ + EvSizingMode sizing_mode = ev_document_model_get_sizing_mode (model); + + g_object_set (ev_window->priv->scrolled_window, + "hscrollbar-policy", + sizing_mode == EV_SIZING_FREE ? + GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER, + "vscrollbar-policy", GTK_POLICY_AUTOMATIC, + NULL); + + update_sizing_buttons (ev_window); + save_sizing_mode (ev_window); +} + +static void +ev_window_zoom_changed_cb (EvDocumentModel *model, GParamSpec *pspec, EvWindow *ev_window) +{ + ev_window_update_actions (ev_window); + + if (!ev_window->priv->metadata) + return; + + if (ev_document_model_get_sizing_mode (model) == EV_SIZING_FREE && !ev_window_is_empty (ev_window)) { + gdouble zoom; + + zoom = ev_document_model_get_scale (model); + zoom *= 72.0 / get_screen_dpi (ev_window); + ev_metadata_set_double (ev_window->priv->metadata, "zoom", zoom); + } +} + +static void +ev_window_update_continuous_action (EvWindow *window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (window->priv->action_group, "ViewContinuous"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_continuous), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + ev_document_model_get_continuous (window->priv->model)); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_continuous), window); +} + +static void +ev_window_update_dual_page_action (EvWindow *window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (window->priv->action_group, "ViewDual"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_dual), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + ev_document_model_get_dual_page (window->priv->model)); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_dual), window); +} + +static void +ev_window_continuous_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window) +{ + ev_window_update_continuous_action (ev_window); + + if (ev_window->priv->metadata && !ev_window_is_empty (ev_window)) + ev_metadata_set_boolean (ev_window->priv->metadata, "continuous", + ev_document_model_get_continuous (model)); +} + +static void +ev_window_rotation_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *window) +{ + gint rotation = ev_document_model_get_rotation (model); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_int (window->priv->metadata, "rotation", + rotation); + + ev_window_update_max_min_scale (window); + ev_window_refresh_window_thumbnail (window); +} + +static void +ev_window_update_inverted_colors_action (EvWindow *window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (window->priv->action_group, "ViewInvertedColors"); + g_signal_handlers_block_by_func + (action, G_CALLBACK (ev_window_cmd_view_inverted_colors), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), + ev_document_model_get_inverted_colors (window->priv->model)); + g_signal_handlers_unblock_by_func + (action, G_CALLBACK (ev_window_cmd_view_inverted_colors), window); +} + +static void +ev_window_inverted_colors_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *window) +{ + gboolean inverted_colors = ev_document_model_get_inverted_colors (model); + + ev_window_update_inverted_colors_action (window); + + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "inverted-colors", + inverted_colors); + + ev_window_refresh_window_thumbnail (window); +} + +static void +ev_window_dual_mode_changed_cb (EvDocumentModel *model, + GParamSpec *pspec, + EvWindow *ev_window) +{ + ev_window_update_dual_page_action (ev_window); + + if (ev_window->priv->metadata && !ev_window_is_empty (ev_window)) + ev_metadata_set_boolean (ev_window->priv->metadata, "dual-page", + ev_document_model_get_dual_page (model)); +} + +static char * +build_comments_string (EvDocument *document) +{ + gchar *comments = NULL; + EvDocumentBackendInfo info; + + if (document && ev_document_get_backend_info (document, &info)) { + comments = g_strdup_printf ( + _("Document Viewer\nUsing %s (%s)"), + info.name, info.version); + } else { + comments = g_strdup_printf ( + _("Document Viewer")); + } + + return comments; +} + +static void +ev_window_cmd_help_about (GtkAction *action, EvWindow *ev_window) +{ + const char *authors[] = { + "Martin Kretzschmar <m_kretzschmar@gmx.net>", + "Jonathan Blandford <jrb@gnome.org>", + "Marco Pesenti Gritti <marco@gnome.org>", + "Nickolay V. Shmyrev <nshmyrev@yandex.ru>", + "Bryan Clark <clarkbw@gnome.org>", + "Carlos Garcia Campos <carlosgc@gnome.org>", + "Wouter Bolsterlee <wbolster@gnome.org>", + "Christian Persch <chpe" "\100" "mate.org>", + NULL + }; + + const char *documenters[] = { + "Nickolay V. Shmyrev <nshmyrev@yandex.ru>", + NULL + }; + + const char *license[] = { + N_("Evince 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 2 of the License, or " + "(at your option) any later version.\n"), + N_("Evince 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.\n"), + N_("You should have received a copy of the GNU General Public License " + "along with Evince; if not, write to the Free Software Foundation, Inc., " + "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n") + }; + + char *license_trans; + char *comments; + +#ifdef ENABLE_NLS + const char **p; + + for (p = authors; *p; ++p) + *p = _(*p); + + for (p = documenters; *p; ++p) + *p = _(*p); +#endif + + license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n", + _(license[2]), "\n", NULL); + + comments = build_comments_string (ev_window->priv->document); + + gtk_show_about_dialog ( + GTK_WINDOW (ev_window), + "name", _("Evince"), + "version", VERSION, + "copyright", + _("Ā© 1996ā2009 The Evince authors"), + "license", license_trans, + "website", "http://www.mate.org/projects/evince", + "comments", comments, + "authors", authors, + "documenters", documenters, + "translator-credits", _("translator-credits"), + "logo-icon-name", "evince", + "wrap-license", TRUE, + NULL); + + g_free (comments); + g_free (license_trans); +} + +static void +ev_window_view_toolbar_cb (GtkAction *action, EvWindow *ev_window) +{ + gboolean active; + + active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + update_chrome_flag (ev_window, EV_CHROME_TOOLBAR, active); + update_chrome_visibility (ev_window); + if (ev_window->priv->metadata) + ev_metadata_set_boolean (ev_window->priv->metadata, "show_toolbar", active); +} + +static void +ev_window_view_sidebar_cb (GtkAction *action, EvWindow *ev_window) +{ + if (EV_WINDOW_IS_PRESENTATION (ev_window)) + return; + + update_chrome_flag (ev_window, EV_CHROME_SIDEBAR, + gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))); + update_chrome_visibility (ev_window); +} + +static void +ev_window_sidebar_current_page_changed_cb (EvSidebar *ev_sidebar, + GParamSpec *pspec, + EvWindow *ev_window) +{ + if (ev_window->priv->metadata && !ev_window_is_empty (ev_window)) { + ev_metadata_set_string (ev_window->priv->metadata, + "sidebar_page", + ev_window_sidebar_get_current_page_id (ev_window)); + } +} + +static void +ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar, + GParamSpec *pspec, + EvWindow *ev_window) +{ + GtkAction *action; + + action = gtk_action_group_get_action (ev_window->priv->action_group, "ViewSidebar"); + + if (!EV_WINDOW_IS_PRESENTATION (ev_window)) { + gboolean visible = gtk_widget_get_visible (GTK_WIDGET (ev_sidebar)); + + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible); + + if (ev_window->priv->metadata) + ev_metadata_set_boolean (ev_window->priv->metadata, "sidebar_visibility", + visible); + } +} + +static void +view_menu_link_popup (EvWindow *ev_window, + EvLink *link) +{ + gboolean show_external = FALSE; + gboolean show_internal = FALSE; + GtkAction *action; + + if (ev_window->priv->link) + g_object_unref (ev_window->priv->link); + + if (link) + ev_window->priv->link = g_object_ref (link); + else + ev_window->priv->link = NULL; + + if (ev_window->priv->link) { + EvLinkAction *ev_action; + + ev_action = ev_link_get_action (link); + if (ev_action) { + switch (ev_link_action_get_action_type (ev_action)) { + case EV_LINK_ACTION_TYPE_GOTO_DEST: + case EV_LINK_ACTION_TYPE_GOTO_REMOTE: + show_internal = TRUE; + break; + case EV_LINK_ACTION_TYPE_EXTERNAL_URI: + case EV_LINK_ACTION_TYPE_LAUNCH: + show_external = TRUE; + break; + default: + break; + } + } + } + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "OpenLink"); + gtk_action_set_visible (action, show_external); + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "CopyLinkAddress"); + gtk_action_set_visible (action, show_external); + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "GoLink"); + gtk_action_set_visible (action, show_internal); + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "OpenLinkNewWindow"); + gtk_action_set_visible (action, show_internal); +} + +static void +view_menu_image_popup (EvWindow *ev_window, + EvImage *image) +{ + GtkAction *action; + gboolean show_image = FALSE; + + if (ev_window->priv->image) + g_object_unref (ev_window->priv->image); + + if (image) + ev_window->priv->image = g_object_ref (image); + else + ev_window->priv->image = NULL; + + show_image = (ev_window->priv->image != NULL); + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "SaveImageAs"); + gtk_action_set_visible (action, show_image); + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "CopyImage"); + gtk_action_set_visible (action, show_image); +} + +static void +view_menu_annot_popup (EvWindow *ev_window, + EvAnnotation *annot) +{ + GtkAction *action; + gboolean show_annot = FALSE; + + if (ev_window->priv->annot) + g_object_unref (ev_window->priv->annot); + ev_window->priv->annot = (annot) ? g_object_ref (annot) : NULL; + + action = gtk_action_group_get_action (ev_window->priv->view_popup_action_group, + "AnnotProperties"); + gtk_action_set_visible (action, (annot != NULL && EV_IS_ANNOTATION_MARKUP (annot))); + + if (annot && EV_IS_ANNOTATION_ATTACHMENT (annot)) { + EvAttachment *attachment; + + attachment = ev_annotation_attachment_get_attachment (EV_ANNOTATION_ATTACHMENT (annot)); + if (attachment) { + show_annot = TRUE; + if (ev_window->priv->attach_list) { + g_list_foreach (ev_window->priv->attach_list, + (GFunc) g_object_unref, NULL); + g_list_free (ev_window->priv->attach_list); + ev_window->priv->attach_list = NULL; + } + ev_window->priv->attach_list = + g_list_prepend (ev_window->priv->attach_list, + g_object_ref (attachment)); + } + } + + action = gtk_action_group_get_action (ev_window->priv->attachment_popup_action_group, + "OpenAttachment"); + gtk_action_set_visible (action, show_annot); + + action = gtk_action_group_get_action (ev_window->priv->attachment_popup_action_group, + "SaveAttachmentAs"); + gtk_action_set_visible (action, show_annot); +} + +static gboolean +view_menu_popup_cb (EvView *view, + GList *items, + EvWindow *ev_window) +{ + GList *l; + gboolean has_link = FALSE; + gboolean has_image = FALSE; + gboolean has_annot = FALSE; + + for (l = items; l; l = g_list_next (l)) { + if (EV_IS_LINK (l->data)) { + view_menu_link_popup (ev_window, EV_LINK (l->data)); + has_link = TRUE; + } else if (EV_IS_IMAGE (l->data)) { + view_menu_image_popup (ev_window, EV_IMAGE (l->data)); + has_image = TRUE; + } else if (EV_IS_ANNOTATION (l->data)) { + view_menu_annot_popup (ev_window, EV_ANNOTATION (l->data)); + has_annot = TRUE; + } + } + + if (!has_link) + view_menu_link_popup (ev_window, NULL); + if (!has_image) + view_menu_image_popup (ev_window, NULL); + if (!has_annot) + view_menu_annot_popup (ev_window, NULL); + + gtk_menu_popup (GTK_MENU (ev_window->priv->view_popup), + NULL, NULL, NULL, NULL, + 3, gtk_get_current_event_time ()); + return TRUE; +} + +static gboolean +attachment_bar_menu_popup_cb (EvSidebarAttachments *attachbar, + GList *attach_list, + EvWindow *ev_window) +{ + GtkWidget *popup; + + g_assert (attach_list != NULL); + + if (ev_window->priv->attach_list) { + g_list_foreach (ev_window->priv->attach_list, + (GFunc) g_object_unref, NULL); + g_list_free (ev_window->priv->attach_list); + } + + ev_window->priv->attach_list = attach_list; + + popup = ev_window->priv->attachment_popup; + + gtk_menu_popup (GTK_MENU (popup), NULL, NULL, + NULL, NULL, + 3, gtk_get_current_event_time ()); + + return TRUE; +} + +static void +ev_window_update_find_status_message (EvWindow *ev_window) +{ + gchar *message; + + if (!ev_window->priv->find_job) + return; + + if (ev_job_is_finished (ev_window->priv->find_job)) { + EvJobFind *job_find = EV_JOB_FIND (ev_window->priv->find_job); + + if (ev_job_find_has_results (job_find)) { + gint n_results; + + n_results = ev_job_find_get_n_results (job_find, + ev_document_model_get_page (ev_window->priv->model)); + /* TRANS: Sometimes this could be better translated as + "%d hit(s) on this page". Therefore this string + contains plural cases. */ + message = g_strdup_printf (ngettext ("%d found on this page", + "%d found on this page", + n_results), + n_results); + } else { + message = g_strdup (_("Not found")); + } + } else { + gdouble percent; + + percent = ev_job_find_get_progress (EV_JOB_FIND (ev_window->priv->find_job)); + message = g_strdup_printf (_("%3d%% remaining to search"), + (gint) ((1.0 - percent) * 100)); + } + + egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar), message); + g_free (message); +} + +static void +ev_window_find_job_finished_cb (EvJobFind *job, + EvWindow *ev_window) +{ + ev_window_update_find_status_message (ev_window); +} + +static void +ev_window_find_job_updated_cb (EvJobFind *job, + gint page, + EvWindow *ev_window) +{ + ev_window_update_actions (ev_window); + + ev_view_find_changed (EV_VIEW (ev_window->priv->view), + ev_job_find_get_results (job), + page); + ev_window_update_find_status_message (ev_window); +} + +static void +ev_window_clear_find_job (EvWindow *ev_window) +{ + if (ev_window->priv->find_job != NULL) { + if (!ev_job_is_finished (ev_window->priv->find_job)) + ev_job_cancel (ev_window->priv->find_job); + + g_signal_handlers_disconnect_by_func (ev_window->priv->find_job, + ev_window_find_job_finished_cb, + ev_window); + g_signal_handlers_disconnect_by_func (ev_window->priv->find_job, + ev_window_find_job_updated_cb, + ev_window); + g_object_unref (ev_window->priv->find_job); + ev_window->priv->find_job = NULL; + } +} + +static void +find_bar_previous_cb (EggFindBar *find_bar, + EvWindow *ev_window) +{ + ev_view_find_previous (EV_VIEW (ev_window->priv->view)); +} + +static void +find_bar_next_cb (EggFindBar *find_bar, + EvWindow *ev_window) +{ + ev_view_find_next (EV_VIEW (ev_window->priv->view)); +} + +static void +find_bar_close_cb (EggFindBar *find_bar, + EvWindow *ev_window) +{ + ev_view_find_cancel (EV_VIEW (ev_window->priv->view)); + ev_window_clear_find_job (ev_window); + update_chrome_flag (ev_window, EV_CHROME_FINDBAR, FALSE); + update_chrome_visibility (ev_window); +} + +static void +find_bar_search_changed_cb (EggFindBar *find_bar, + GParamSpec *param, + EvWindow *ev_window) +{ + gboolean case_sensitive; + const char *search_string; + + if (!ev_window->priv->document || !EV_IS_DOCUMENT_FIND (ev_window->priv->document)) + return; + + /* Either the string or case sensitivity could have changed. */ + case_sensitive = egg_find_bar_get_case_sensitive (find_bar); + search_string = egg_find_bar_get_search_string (find_bar); + + ev_view_find_search_changed (EV_VIEW (ev_window->priv->view)); + + ev_window_clear_find_job (ev_window); + + if (search_string && search_string[0]) { + ev_window->priv->find_job = ev_job_find_new (ev_window->priv->document, + ev_document_model_get_page (ev_window->priv->model), + ev_document_get_n_pages (ev_window->priv->document), + search_string, + case_sensitive); + g_signal_connect (ev_window->priv->find_job, "finished", + G_CALLBACK (ev_window_find_job_finished_cb), + ev_window); + g_signal_connect (ev_window->priv->find_job, "updated", + G_CALLBACK (ev_window_find_job_updated_cb), + ev_window); + ev_job_scheduler_push_job (ev_window->priv->find_job, EV_JOB_PRIORITY_NONE); + } else { + ev_window_update_actions (ev_window); + egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar), + NULL); + gtk_widget_queue_draw (GTK_WIDGET (ev_window->priv->view)); + } +} + +static void +find_bar_visibility_changed_cb (EggFindBar *find_bar, + GParamSpec *param, + EvWindow *ev_window) +{ + gboolean visible; + + visible = gtk_widget_get_visible (GTK_WIDGET (find_bar)); + + if (ev_window->priv->document && + EV_IS_DOCUMENT_FIND (ev_window->priv->document)) { + ev_view_find_set_highlight_search (EV_VIEW (ev_window->priv->view), visible); + ev_view_find_search_changed (EV_VIEW (ev_window->priv->view)); + ev_window_update_actions (ev_window); + + if (visible) + find_bar_search_changed_cb (find_bar, NULL, ev_window); + else + egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar), NULL); + } +} + +static void +find_bar_scroll (EggFindBar *find_bar, + GtkScrollType scroll, + EvWindow *ev_window) +{ + ev_view_scroll (EV_VIEW (ev_window->priv->view), scroll, FALSE); +} + +static void +zoom_control_changed_cb (EphyZoomAction *action, + float zoom, + EvWindow *ev_window) +{ + EvSizingMode mode; + + if (zoom == EPHY_ZOOM_BEST_FIT) { + mode = EV_SIZING_BEST_FIT; + } else if (zoom == EPHY_ZOOM_FIT_WIDTH) { + mode = EV_SIZING_FIT_WIDTH; + } else { + mode = EV_SIZING_FREE; + } + + ev_document_model_set_sizing_mode (ev_window->priv->model, mode); + + if (mode == EV_SIZING_FREE) { + ev_document_model_set_scale (ev_window->priv->model, + zoom * get_screen_dpi (ev_window) / 72.0); + } +} + +static void +ev_window_drag_data_received (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time) + +{ + EvWindow *window = EV_WINDOW (widget); + gchar **uris; + gint i = 0; + GSList *uri_list = NULL; + GtkWidget *source; + + source = gtk_drag_get_source_widget (context); + if (source && widget == gtk_widget_get_toplevel (source)) { + gtk_drag_finish (context, FALSE, FALSE, time); + return; + } + + uris = gtk_selection_data_get_uris (selection_data); + if (!uris) { + gtk_drag_finish (context, FALSE, FALSE, time); + return; + } + + for (i = 0; uris[i]; i++) { + uri_list = g_slist_prepend (uri_list, (gpointer) uris[i]); + } + + ev_application_open_uri_list (EV_APP, uri_list, + gtk_window_get_screen (GTK_WINDOW (window)), + 0); + gtk_drag_finish (context, TRUE, FALSE, time); + + g_strfreev (uris); + g_slist_free (uri_list); +} + +static void +ev_window_finalize (GObject *object) +{ + G_OBJECT_CLASS (ev_window_parent_class)->finalize (object); + + if (ev_window_n_copies == 0) { + ev_application_shutdown (EV_APP); + } else { + ev_window_n_copies--; + } +} + +static void +ev_window_dispose (GObject *object) +{ + EvWindow *window = EV_WINDOW (object); + EvWindowPrivate *priv = window->priv; + GObject *mpkeys = ev_application_get_media_keys (EV_APP); + + if (mpkeys) { + g_signal_handlers_disconnect_by_func (mpkeys, + ev_window_media_player_key_pressed, + window); + } + +#ifdef ENABLE_DBUS + if (priv->dbus_object_id > 0) { + ev_window_emit_closed (window); + g_dbus_connection_unregister_object (ev_application_get_dbus_connection (EV_APP), + priv->dbus_object_id); + priv->dbus_object_id = 0; + } + + if (priv->dbus_object_path) { + g_free (priv->dbus_object_path); + priv->dbus_object_path = NULL; + } +#endif /* ENABLE_DBUS */ + + if (priv->metadata) { + g_object_unref (priv->metadata); + priv->metadata = NULL; + } + + if (priv->setup_document_idle > 0) { + g_source_remove (priv->setup_document_idle); + priv->setup_document_idle = 0; + } + +#ifdef WITH_MATECONF + if (priv->mateconf_client) { + g_object_unref (priv->mateconf_client); + priv->mateconf_client = NULL; + } +#endif + + if (priv->monitor) { + g_object_unref (priv->monitor); + priv->monitor = NULL; + } + + if (priv->title) { + ev_window_title_free (priv->title); + priv->title = NULL; + } + + if (priv->ui_manager) { + g_object_unref (priv->ui_manager); + priv->ui_manager = NULL; + } + + if (priv->action_group) { + g_object_unref (priv->action_group); + priv->action_group = NULL; + } + + if (priv->view_popup_action_group) { + g_object_unref (priv->view_popup_action_group); + priv->view_popup_action_group = NULL; + } + + if (priv->attachment_popup_action_group) { + g_object_unref (priv->attachment_popup_action_group); + priv->attachment_popup_action_group = NULL; + } + + if (priv->recent_action_group) { + g_object_unref (priv->recent_action_group); + priv->recent_action_group = NULL; + } + + if (priv->recent_manager) { + g_signal_handlers_disconnect_by_func (priv->recent_manager, + ev_window_setup_recent, + window); + priv->recent_manager = NULL; + } + + if (priv->settings) { + g_object_unref (priv->settings); + priv->settings = NULL; + } + + if (priv->default_settings) { + g_settings_apply (priv->default_settings); + g_object_unref (priv->default_settings); + priv->default_settings = NULL; + } + + priv->recent_ui_id = 0; + + if (priv->model) { + g_signal_handlers_disconnect_by_func (priv->model, + ev_window_page_changed_cb, + window); + g_object_unref (priv->model); + priv->model = NULL; + } + + if (priv->document) { + g_object_unref (priv->document); + priv->document = NULL; + } + + if (priv->view) { + g_object_unref (priv->view); + priv->view = NULL; + } + + if (priv->password_view) { + g_object_unref (priv->password_view); + priv->password_view = NULL; + } + + if (priv->load_job) { + ev_window_clear_load_job (window); + } + + if (priv->reload_job) { + ev_window_clear_reload_job (window); + } + + if (priv->save_job) { + ev_window_clear_save_job (window); + } + + if (priv->thumbnail_job) { + ev_window_clear_thumbnail_job (window); + } + + if (priv->find_job) { + ev_window_clear_find_job (window); + } + + if (priv->local_uri) { + ev_window_clear_local_uri (window); + priv->local_uri = NULL; + } + + ev_window_clear_progress_idle (window); + if (priv->progress_cancellable) { + g_object_unref (priv->progress_cancellable); + priv->progress_cancellable = NULL; + } + + ev_window_close_dialogs (window); + + if (priv->link) { + g_object_unref (priv->link); + priv->link = NULL; + } + + if (priv->image) { + g_object_unref (priv->image); + priv->image = NULL; + } + + if (priv->annot) { + g_object_unref (priv->annot); + priv->annot = NULL; + } + + if (priv->attach_list) { + g_list_foreach (priv->attach_list, + (GFunc) g_object_unref, + NULL); + g_list_free (priv->attach_list); + priv->attach_list = NULL; + } + + if (priv->find_bar) { + g_signal_handlers_disconnect_by_func + (window->priv->find_bar, + G_CALLBACK (find_bar_close_cb), + window); + priv->find_bar = NULL; + } + + if (priv->uri) { + g_free (priv->uri); + priv->uri = NULL; + } + + if (priv->search_string) { + g_free (priv->search_string); + priv->search_string = NULL; + } + + if (priv->dest) { + g_object_unref (priv->dest); + priv->dest = NULL; + } + + if (priv->history) { + g_object_unref (priv->history); + priv->history = NULL; + } + + if (priv->print_queue) { + g_queue_free (priv->print_queue); + priv->print_queue = NULL; + } + + G_OBJECT_CLASS (ev_window_parent_class)->dispose (object); +} + +static void +menubar_deactivate_cb (GtkWidget *menubar, + EvWindow *window) +{ + g_signal_handlers_disconnect_by_func (menubar, + G_CALLBACK (menubar_deactivate_cb), + window); + + gtk_menu_shell_deselect (GTK_MENU_SHELL (menubar)); + + update_chrome_visibility (window); +} + +static gboolean +ev_window_key_press_event (GtkWidget *widget, + GdkEventKey *event) +{ + EvWindow *ev_window = EV_WINDOW (widget); + EvWindowPrivate *priv = ev_window->priv; + gboolean handled = FALSE; + + /* Propagate the event to the view first + * It's needed to be able to type in + * annot popups windows + */ + if (priv->view) { + g_object_ref (priv->view); + if (gtk_widget_is_sensitive (priv->view)) + handled = gtk_widget_event (priv->view, (GdkEvent*) event); + g_object_unref (priv->view); + } + + if (!handled && !EV_WINDOW_IS_PRESENTATION (ev_window)) { + guint modifier = event->state & gtk_accelerator_get_default_mod_mask (); + + if (priv->menubar_accel_keyval != 0 && + event->keyval == priv->menubar_accel_keyval && + modifier == priv->menubar_accel_modifier) { + if (!gtk_widget_get_visible (priv->menubar)) { + g_signal_connect (priv->menubar, "deactivate", + G_CALLBACK (menubar_deactivate_cb), + ev_window); + + gtk_widget_show (priv->menubar); + gtk_menu_shell_select_first (GTK_MENU_SHELL (priv->menubar), + FALSE); + + handled = TRUE; + } + } + } + + if (!handled) + handled = GTK_WIDGET_CLASS (ev_window_parent_class)->key_press_event (widget, event); + + return handled; +} + +static gboolean +ev_window_delete_event (GtkWidget *widget, + GdkEventAny *event) +{ + return !ev_window_close (EV_WINDOW (widget)); +} + +static void +ev_window_class_init (EvWindowClass *ev_window_class) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (ev_window_class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (ev_window_class); + + g_object_class->dispose = ev_window_dispose; + g_object_class->finalize = ev_window_finalize; + + widget_class->delete_event = ev_window_delete_event; + widget_class->key_press_event = ev_window_key_press_event; + widget_class->screen_changed = ev_window_screen_changed; + widget_class->window_state_event = ev_window_state_event; + widget_class->drag_data_received = ev_window_drag_data_received; + + g_type_class_add_private (g_object_class, sizeof (EvWindowPrivate)); +} + +/* Normal items */ +static const GtkActionEntry entries[] = { + { "File", NULL, N_("_File") }, + { "Edit", NULL, N_("_Edit") }, + { "View", NULL, N_("_View") }, + { "Go", NULL, N_("_Go") }, + { "Help", NULL, N_("_Help") }, + + /* File menu */ + { "FileOpen", GTK_STOCK_OPEN, N_("_Openā¦"), "<control>O", + N_("Open an existing document"), + G_CALLBACK (ev_window_cmd_file_open) }, + { "FileOpenCopy", NULL, N_("Op_en a Copy"), "<control>N", + N_("Open a copy of the current document in a new window"), + G_CALLBACK (ev_window_cmd_file_open_copy) }, + { "FileSaveAs", GTK_STOCK_SAVE_AS, N_("_Save a Copyā¦"), "<control>S", + N_("Save a copy of the current document"), + G_CALLBACK (ev_window_cmd_save_as) }, + { "FilePrint", GTK_STOCK_PRINT, N_("_Printā¦"), "<control>P", + N_("Print this document"), + G_CALLBACK (ev_window_cmd_file_print) }, + { "FileProperties", GTK_STOCK_PROPERTIES, N_("P_roperties"), "<alt>Return", NULL, + G_CALLBACK (ev_window_cmd_file_properties) }, + { "FileCloseWindow", GTK_STOCK_CLOSE, NULL, "<control>W", NULL, + G_CALLBACK (ev_window_cmd_file_close_window) }, + + /* Edit menu */ + { "EditCopy", GTK_STOCK_COPY, NULL, "<control>C", NULL, + G_CALLBACK (ev_window_cmd_edit_copy) }, + { "EditSelectAll", GTK_STOCK_SELECT_ALL, N_("Select _All"), "<control>A", NULL, + G_CALLBACK (ev_window_cmd_edit_select_all) }, + { "EditFind", GTK_STOCK_FIND, N_("_Findā¦"), "<control>F", + N_("Find a word or phrase in the document"), + G_CALLBACK (ev_window_cmd_edit_find) }, + { "EditFindNext", NULL, N_("Find Ne_xt"), "<control>G", NULL, + G_CALLBACK (ev_window_cmd_edit_find_next) }, + { "EditFindPrevious", NULL, N_("Find Pre_vious"), "<shift><control>G", NULL, + G_CALLBACK (ev_window_cmd_edit_find_previous) }, + { "EditToolbar", NULL, N_("T_oolbar"), NULL, NULL, + G_CALLBACK (ev_window_cmd_edit_toolbar) }, + { "EditRotateLeft", EV_STOCK_ROTATE_LEFT, N_("Rotate _Left"), "<control>Left", NULL, + G_CALLBACK (ev_window_cmd_edit_rotate_left) }, + { "EditRotateRight", EV_STOCK_ROTATE_RIGHT, N_("Rotate _Right"), "<control>Right", NULL, + G_CALLBACK (ev_window_cmd_edit_rotate_right) }, + { "EditSaveSettings", NULL, N_("Save Current Settings as _Default"), "<control>T", NULL, + G_CALLBACK (ev_window_cmd_edit_save_settings) }, + + + /* View menu */ + { "ViewZoomIn", GTK_STOCK_ZOOM_IN, NULL, "<control>plus", + N_("Enlarge the document"), + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "ViewZoomOut", GTK_STOCK_ZOOM_OUT, NULL, "<control>minus", + N_("Shrink the document"), + G_CALLBACK (ev_window_cmd_view_zoom_out) }, + { "ViewReload", GTK_STOCK_REFRESH, N_("_Reload"), "<control>R", + N_("Reload the document"), + G_CALLBACK (ev_window_cmd_view_reload) }, + + { "ViewAutoscroll", GTK_STOCK_MEDIA_PLAY, N_("Auto_scroll"), NULL, NULL, + G_CALLBACK (ev_window_cmd_view_autoscroll) }, + + /* Go menu */ + { "GoPreviousPage", GTK_STOCK_GO_UP, N_("_Previous Page"), "<control>Page_Up", + N_("Go to the previous page"), + G_CALLBACK (ev_window_cmd_go_previous_page) }, + { "GoNextPage", GTK_STOCK_GO_DOWN, N_("_Next Page"), "<control>Page_Down", + N_("Go to the next page"), + G_CALLBACK (ev_window_cmd_go_next_page) }, + { "GoFirstPage", GTK_STOCK_GOTO_TOP, N_("_First Page"), "<control>Home", + N_("Go to the first page"), + G_CALLBACK (ev_window_cmd_go_first_page) }, + { "GoLastPage", GTK_STOCK_GOTO_BOTTOM, N_("_Last Page"), "<control>End", + N_("Go to the last page"), + G_CALLBACK (ev_window_cmd_go_last_page) }, + + /* Help menu */ + { "HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1", NULL, + G_CALLBACK (ev_window_cmd_help_contents) }, + + { "HelpAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL, + G_CALLBACK (ev_window_cmd_help_about) }, + + /* Toolbar-only */ + { "LeaveFullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), NULL, + N_("Leave fullscreen mode"), + G_CALLBACK (ev_window_cmd_leave_fullscreen) }, + { "StartPresentation", EV_STOCK_RUN_PRESENTATION, N_("Start Presentation"), NULL, + N_("Start a presentation"), + G_CALLBACK (ev_window_cmd_start_presentation) }, + + /* Accellerators */ + { "Escape", NULL, "", "Escape", "", + G_CALLBACK (ev_window_cmd_escape) }, + { "Slash", GTK_STOCK_FIND, NULL, "slash", NULL, + G_CALLBACK (ev_window_cmd_edit_find) }, + { "F3", NULL, "", "F3", NULL, + G_CALLBACK (ev_window_cmd_edit_find_next) }, + { "PageDown", NULL, "", "Page_Down", NULL, + G_CALLBACK (ev_window_cmd_scroll_forward) }, + { "PageUp", NULL, "", "Page_Up", NULL, + G_CALLBACK (ev_window_cmd_scroll_backward) }, + { "Space", NULL, "", "space", NULL, + G_CALLBACK (ev_window_cmd_scroll_forward) }, + { "ShiftSpace", NULL, "", "<shift>space", NULL, + G_CALLBACK (ev_window_cmd_scroll_backward) }, + { "BackSpace", NULL, "", "BackSpace", NULL, + G_CALLBACK (ev_window_cmd_scroll_backward) }, + { "ShiftBackSpace", NULL, "", "<shift>BackSpace", NULL, + G_CALLBACK (ev_window_cmd_scroll_forward) }, + { "Return", NULL, "", "Return", NULL, + G_CALLBACK (ev_window_cmd_scroll_forward) }, + { "ShiftReturn", NULL, "", "<shift>Return", NULL, + G_CALLBACK (ev_window_cmd_scroll_backward) }, + { "p", GTK_STOCK_GO_UP, "", "p", NULL, + G_CALLBACK (ev_window_cmd_go_previous_page) }, + { "n", GTK_STOCK_GO_DOWN, "", "n", NULL, + G_CALLBACK (ev_window_cmd_go_next_page) }, + { "Plus", GTK_STOCK_ZOOM_IN, NULL, "plus", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "CtrlEqual", GTK_STOCK_ZOOM_IN, NULL, "<control>equal", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "Equal", GTK_STOCK_ZOOM_IN, NULL, "equal", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "Minus", GTK_STOCK_ZOOM_OUT, NULL, "minus", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_out) }, + { "FocusPageSelector", NULL, "", "<control>l", NULL, + G_CALLBACK (ev_window_cmd_focus_page_selector) }, + { "GoBackwardFast", NULL, "", "<shift>Page_Up", NULL, + G_CALLBACK (ev_window_cmd_go_backward) }, + { "GoForwardFast", NULL, "", "<shift>Page_Down", NULL, + G_CALLBACK (ev_window_cmd_go_forward) }, + { "KpPlus", GTK_STOCK_ZOOM_IN, NULL, "KP_Add", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "KpMinus", GTK_STOCK_ZOOM_OUT, NULL, "KP_Subtract", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_out) }, + { "CtrlKpPlus", GTK_STOCK_ZOOM_IN, NULL, "<control>KP_Add", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_in) }, + { "CtrlKpMinus", GTK_STOCK_ZOOM_OUT, NULL, "<control>KP_Subtract", NULL, + G_CALLBACK (ev_window_cmd_view_zoom_out) }, + { "CtrlInsert", GTK_STOCK_COPY, NULL, "<control>Insert", NULL, + G_CALLBACK (ev_window_cmd_edit_copy) }, +}; + +/* Toggle items */ +static const GtkToggleActionEntry toggle_entries[] = { + /* View Menu */ + { "ViewToolbar", NULL, N_("_Toolbar"), NULL, + N_("Show or hide the toolbar"), + G_CALLBACK (ev_window_view_toolbar_cb), TRUE }, + { "ViewSidebar", GTK_STOCK_INDEX, N_("Side _Pane"), "F9", + N_("Show or hide the side pane"), + G_CALLBACK (ev_window_view_sidebar_cb), TRUE }, + { "ViewContinuous", EV_STOCK_VIEW_CONTINUOUS, N_("_Continuous"), NULL, + N_("Show the entire document"), + G_CALLBACK (ev_window_cmd_continuous), TRUE }, + { "ViewDual", EV_STOCK_VIEW_DUAL, N_("_Dual"), NULL, + N_("Show two pages at once"), + G_CALLBACK (ev_window_cmd_dual), FALSE }, + { "ViewFullscreen", GTK_STOCK_FULLSCREEN, N_("_Fullscreen"), "F11", + N_("Expand the window to fill the screen"), + G_CALLBACK (ev_window_cmd_view_fullscreen) }, + { "ViewPresentation", EV_STOCK_RUN_PRESENTATION, N_("Pre_sentation"), "F5", + N_("Run document as a presentation"), + G_CALLBACK (ev_window_cmd_view_presentation) }, + { "ViewBestFit", EV_STOCK_ZOOM_PAGE, N_("_Best Fit"), NULL, + N_("Make the current document fill the window"), + G_CALLBACK (ev_window_cmd_view_best_fit) }, + { "ViewPageWidth", EV_STOCK_ZOOM_WIDTH, N_("Fit Page _Width"), NULL, + N_("Make the current document fill the window width"), + G_CALLBACK (ev_window_cmd_view_page_width) }, + { "ViewInvertedColors", EV_STOCK_INVERTED_COLORS, N_("_Inverted Colors"), "<control>I", + N_("Show page contents with the colors inverted"), + G_CALLBACK (ev_window_cmd_view_inverted_colors) }, + +}; + +/* Popups specific items */ +static const GtkActionEntry view_popup_entries [] = { + /* Links */ + { "OpenLink", GTK_STOCK_OPEN, N_("_Open Link"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_open_link) }, + { "GoLink", GTK_STOCK_GO_FORWARD, N_("_Go To"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_open_link) }, + { "OpenLinkNewWindow", NULL, N_("Open in New _Window"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_open_link_new_window) }, + { "CopyLinkAddress", NULL, N_("_Copy Link Address"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_copy_link_address) }, + { "SaveImageAs", NULL, N_("_Save Image Asā¦"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_save_image_as) }, + { "CopyImage", NULL, N_("Copy _Image"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_copy_image) }, + { "AnnotProperties", NULL, N_("Annotation Propertiesā¦"), NULL, + NULL, G_CALLBACK (ev_view_popup_cmd_annot_properties) } +}; + +static const GtkActionEntry attachment_popup_entries [] = { + { "OpenAttachment", GTK_STOCK_OPEN, N_("_Open Attachment"), NULL, + NULL, G_CALLBACK (ev_attachment_popup_cmd_open_attachment) }, + { "SaveAttachmentAs", GTK_STOCK_SAVE_AS, N_("_Save Attachment Asā¦"), NULL, + NULL, G_CALLBACK (ev_attachment_popup_cmd_save_attachment_as) }, +}; + +static void +sidebar_links_link_activated_cb (EvSidebarLinks *sidebar_links, EvLink *link, EvWindow *window) +{ + ev_view_handle_link (EV_VIEW (window->priv->view), link); +} + +static void +activate_link_cb (EvPageAction *page_action, EvLink *link, EvWindow *window) +{ + ev_view_handle_link (EV_VIEW (window->priv->view), link); + gtk_widget_grab_focus (window->priv->view); +} + +static void +navigation_action_activate_link_cb (EvNavigationAction *action, EvLink *link, EvWindow *window) +{ + + ev_view_handle_link (EV_VIEW (window->priv->view), link); + gtk_widget_grab_focus (window->priv->view); +} + +static void +sidebar_layers_visibility_changed (EvSidebarLayers *layers, + EvWindow *window) +{ + ev_view_reload (EV_VIEW (window->priv->view)); +} + +static void +sidebar_annots_annot_activated_cb (EvSidebarAnnotations *sidebar_annots, + EvMapping *annot_mapping, + EvWindow *window) +{ + ev_view_focus_annotation (EV_VIEW (window->priv->view), annot_mapping); +} + +static void +sidebar_annots_begin_annot_add (EvSidebarAnnotations *sidebar_annots, + EvAnnotationType annot_type, + EvWindow *window) +{ + ev_view_begin_add_annotation (EV_VIEW (window->priv->view), annot_type); +} + +static void +view_annot_added (EvView *view, + EvAnnotation *annot, + EvWindow *window) +{ + ev_sidebar_annotations_annot_added (EV_SIDEBAR_ANNOTATIONS (window->priv->sidebar_annots), + annot); +} + +static void +sidebar_annots_annot_add_cancelled (EvSidebarAnnotations *sidebar_annots, + EvWindow *window) +{ + ev_view_cancel_add_annotation (EV_VIEW (window->priv->view)); +} + +static void +register_custom_actions (EvWindow *window, GtkActionGroup *group) +{ + GtkAction *action; + + action = g_object_new (EV_TYPE_PAGE_ACTION, + "name", PAGE_SELECTOR_ACTION, + "label", _("Page"), + "tooltip", _("Select Page"), + "icon_name", "text-x-generic", + "visible_overflown", FALSE, + NULL); + ev_page_action_set_model (EV_PAGE_ACTION (action), + window->priv->model); + g_signal_connect (action, "activate_link", + G_CALLBACK (activate_link_cb), window); + gtk_action_group_add_action (group, action); + g_object_unref (action); + + action = g_object_new (EPHY_TYPE_ZOOM_ACTION, + "name", ZOOM_CONTROL_ACTION, + "label", _("Zoom"), + "stock_id", EV_STOCK_ZOOM, + "tooltip", _("Adjust the zoom level"), + "zoom", 1.0, + NULL); + g_signal_connect (action, "zoom_to_level", + G_CALLBACK (zoom_control_changed_cb), window); + gtk_action_group_add_action (group, action); + g_object_unref (action); + + action = g_object_new (EV_TYPE_NAVIGATION_ACTION, + "name", NAVIGATION_ACTION, + "label", _("Navigation"), + "is_important", TRUE, + "short_label", _("Back"), + "stock_id", GTK_STOCK_GO_DOWN, + /*translators: this is the history action*/ + "tooltip", _("Move across visited pages"), + NULL); + g_signal_connect (action, "activate_link", + G_CALLBACK (navigation_action_activate_link_cb), window); + gtk_action_group_add_action (group, action); + g_object_unref (action); + + action = g_object_new (EV_TYPE_OPEN_RECENT_ACTION, + "name", "FileOpenRecent", + "label", _("_Openā¦"), + "tooltip", _("Open an existing document"), + "stock_id", GTK_STOCK_OPEN, + NULL); + g_signal_connect (action, "activate", + G_CALLBACK (ev_window_cmd_file_open), window); + g_signal_connect (action, "item_activated", + G_CALLBACK (ev_window_open_recent_action_item_activated), + window); + gtk_action_group_add_action (group, action); + g_object_unref (action); +} + +static void +set_action_properties (GtkActionGroup *action_group) +{ + GtkAction *action; + + action = gtk_action_group_get_action (action_group, "GoPreviousPage"); + g_object_set (action, "is-important", TRUE, NULL); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Previous"), NULL); + + action = gtk_action_group_get_action (action_group, "GoNextPage"); + g_object_set (action, "is-important", TRUE, NULL); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Next"), NULL); + + action = gtk_action_group_get_action (action_group, "ViewZoomIn"); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Zoom In"), NULL); + + action = gtk_action_group_get_action (action_group, "ViewZoomOut"); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Zoom Out"), NULL); + + action = gtk_action_group_get_action (action_group, "ViewBestFit"); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Best Fit"), NULL); + + action = gtk_action_group_get_action (action_group, "ViewPageWidth"); + /*translators: this is the label for toolbar button*/ + g_object_set (action, "short_label", _("Fit Width"), NULL); + + action = gtk_action_group_get_action (action_group, "LeaveFullscreen"); + g_object_set (action, "is-important", TRUE, NULL); +} + +static void +sidebar_widget_model_set (EvSidebarLinks *ev_sidebar_links, + GParamSpec *pspec, + EvWindow *ev_window) +{ + GtkTreeModel *model; + GtkAction *action; + + g_object_get (G_OBJECT (ev_sidebar_links), + "model", &model, + NULL); + + action = gtk_action_group_get_action (ev_window->priv->action_group, PAGE_SELECTOR_ACTION); + ev_page_action_set_links_model (EV_PAGE_ACTION (action), model); + g_object_unref (model); +} + +static gboolean +view_actions_focus_in_cb (GtkWidget *widget, GdkEventFocus *event, EvWindow *window) +{ +#ifdef ENABLE_DBUS + GObject *keys; + + keys = ev_application_get_media_keys (EV_APP); + ev_media_player_keys_focused (EV_MEDIA_PLAYER_KEYS (keys)); +#endif /* ENABLE_DBUS */ + + update_chrome_flag (window, EV_CHROME_RAISE_TOOLBAR, FALSE); + ev_window_set_action_sensitive (window, "ViewToolbar", TRUE); + + ev_window_set_view_accels_sensitivity (window, TRUE); + + update_chrome_visibility (window); + + return FALSE; +} + +static gboolean +view_actions_focus_out_cb (GtkWidget *widget, GdkEventFocus *event, EvWindow *window) +{ + ev_window_set_view_accels_sensitivity (window, FALSE); + + return FALSE; +} + +static void +sidebar_page_main_widget_update_cb (GObject *ev_sidebar_page, + GParamSpec *pspec, + EvWindow *ev_window) +{ + GtkWidget *widget; + + g_object_get (ev_sidebar_page, "main_widget", &widget, NULL); + + if (widget != NULL) { + g_signal_connect_object (widget, "focus_in_event", + G_CALLBACK (view_actions_focus_in_cb), + ev_window, 0); + g_signal_connect_object (widget, "focus_out_event", + G_CALLBACK (view_actions_focus_out_cb), + ev_window, 0); + g_object_unref (widget); + } +} + +static gboolean +window_state_event_cb (EvWindow *window, GdkEventWindowState *event, gpointer dummy) +{ + if (!(event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) { + gboolean maximized; + + maximized = event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED; + if (window->priv->metadata && !ev_window_is_empty (window)) + ev_metadata_set_boolean (window->priv->metadata, "window_maximized", maximized); + } + + return FALSE; +} + +static gboolean +window_configure_event_cb (EvWindow *window, GdkEventConfigure *event, gpointer dummy) +{ + GdkWindowState state; + gdouble document_width, document_height; + + if (!window->priv->metadata) + return FALSE; + + state = gdk_window_get_state (gtk_widget_get_window (GTK_WIDGET (window))); + + if (!(state & GDK_WINDOW_STATE_FULLSCREEN)) { + if (window->priv->document) { + ev_document_get_max_page_size (window->priv->document, + &document_width, &document_height); + g_settings_set (window->priv->default_settings, "window-ratio", "(dd)", + (double)event->width / document_width, + (double)event->height / document_height); + + ev_metadata_set_int (window->priv->metadata, "window_x", event->x); + ev_metadata_set_int (window->priv->metadata, "window_y", event->y); + ev_metadata_set_int (window->priv->metadata, "window_width", event->width); + ev_metadata_set_int (window->priv->metadata, "window_height", event->height); + } + } + + return FALSE; +} + +static void +launch_action (EvWindow *window, EvLinkAction *action) +{ + const char *filename = ev_link_action_get_filename (action); + GAppInfo *app_info; + GFile *file; + GList file_list = {NULL}; + GAppLaunchContext *context; + GError *error = NULL; + + if (filename == NULL) + return; + + if (g_path_is_absolute (filename)) { + file = g_file_new_for_path (filename); + } else { + GFile *base_file; + gchar *dir; + + dir = g_path_get_dirname (window->priv->uri); + base_file = g_file_new_for_uri (dir); + g_free (dir); + + file = g_file_resolve_relative_path (base_file, filename); + g_object_unref (base_file); + } + + app_info = g_file_query_default_handler (file, NULL, &error); + if (!app_info) { + ev_window_error_message (window, error, + "%s", + _("Unable to launch external application.")); + g_object_unref (file); + g_error_free (error); + + return; + } + + context = G_APP_LAUNCH_CONTEXT (gdk_app_launch_context_new ()); + gdk_app_launch_context_set_screen (GDK_APP_LAUNCH_CONTEXT (context), + gtk_window_get_screen (GTK_WINDOW (window))); + gdk_app_launch_context_set_timestamp (GDK_APP_LAUNCH_CONTEXT (context), + gtk_get_current_event_time ()); + + file_list.data = file; + if (!g_app_info_launch (app_info, &file_list, context, &error)) { + ev_window_error_message (window, error, + "%s", + _("Unable to launch external application.")); + g_error_free (error); + } + + g_object_unref (app_info); + g_object_unref (file); + /* FIXMEchpe: unref launch context? */ + + /* According to the PDF spec filename can be an executable. I'm not sure + allowing to launch executables is a good idea though. -- marco */ +} + +static void +launch_external_uri (EvWindow *window, EvLinkAction *action) +{ + const gchar *uri = ev_link_action_get_uri (action); + GError *error = NULL; + gboolean ret; + GAppLaunchContext *context; + + context = G_APP_LAUNCH_CONTEXT (gdk_app_launch_context_new ()); + gdk_app_launch_context_set_screen (GDK_APP_LAUNCH_CONTEXT (context), + gtk_window_get_screen (GTK_WINDOW (window))); + gdk_app_launch_context_set_timestamp (GDK_APP_LAUNCH_CONTEXT (context), + gtk_get_current_event_time ()); + + if (!g_strstr_len (uri, strlen (uri), "://") && + !g_str_has_prefix (uri, "mailto:")) { + gchar *new_uri; + + /* Not a valid uri, assume http if it starts with www */ + if (g_str_has_prefix (uri, "www.")) { + new_uri = g_strdup_printf ("http://%s", uri); + } else { + GFile *file, *parent; + + file = g_file_new_for_uri (window->priv->uri); + parent = g_file_get_parent (file); + g_object_unref (file); + if (parent) { + gchar *parent_uri = g_file_get_uri (parent); + + new_uri = g_build_filename (parent_uri, uri, NULL); + g_free (parent_uri); + g_object_unref (parent); + } else { + new_uri = g_strdup_printf ("file:///%s", uri); + } + } + ret = g_app_info_launch_default_for_uri (new_uri, context, &error); + g_free (new_uri); + } else { + ret = g_app_info_launch_default_for_uri (uri, context, &error); + } + + if (ret == FALSE) { + ev_window_error_message (window, error, + "%s", _("Unable to open external link")); + g_error_free (error); + } + + /* FIXMEchpe: unref launch context? */ +} + +static void +open_remote_link (EvWindow *window, EvLinkAction *action) +{ + gchar *uri; + gchar *dir; + + dir = g_path_get_dirname (window->priv->uri); + + uri = g_build_filename (dir, ev_link_action_get_filename (action), + NULL); + g_free (dir); + + ev_application_open_uri_at_dest (EV_APP, uri, + gtk_window_get_screen (GTK_WINDOW (window)), + ev_link_action_get_dest (action), + 0, + NULL, + gtk_get_current_event_time ()); + + g_free (uri); +} + +static void +do_action_named (EvWindow *window, EvLinkAction *action) +{ + const gchar *name = ev_link_action_get_name (action); + + if (g_ascii_strcasecmp (name, "FirstPage") == 0) { + ev_window_cmd_go_first_page (NULL, window); + } else if (g_ascii_strcasecmp (name, "PrevPage") == 0) { + ev_window_cmd_go_previous_page (NULL, window); + } else if (g_ascii_strcasecmp (name, "NextPage") == 0) { + ev_window_cmd_go_next_page (NULL, window); + } else if (g_ascii_strcasecmp (name, "LastPage") == 0) { + ev_window_cmd_go_last_page (NULL, window); + } else if (g_ascii_strcasecmp (name, "GoToPage") == 0) { + ev_window_cmd_focus_page_selector (NULL, window); + } else if (g_ascii_strcasecmp (name, "Find") == 0) { + ev_window_cmd_edit_find (NULL, window); + } else if (g_ascii_strcasecmp (name, "Close") == 0) { + ev_window_cmd_file_close_window (NULL, window); + } else if (g_ascii_strcasecmp (name, "Print") == 0) { + ev_window_cmd_file_print (NULL, window); + } else { + g_warning ("Unimplemented named action: %s, please post a " + "bug report in Evince bugzilla " + "(http://bugzilla.mate.org) with a testcase.", + name); + } +} + +static void +view_external_link_cb (EvView *view, EvLinkAction *action, EvWindow *window) +{ + switch (ev_link_action_get_action_type (action)) { + case EV_LINK_ACTION_TYPE_GOTO_DEST: { + EvLinkDest *dest; + + dest = ev_link_action_get_dest (action); + if (!dest) + return; + + ev_window_open_copy_at_dest (window, dest); + } + break; + case EV_LINK_ACTION_TYPE_EXTERNAL_URI: + launch_external_uri (window, action); + break; + case EV_LINK_ACTION_TYPE_LAUNCH: + launch_action (window, action); + break; + case EV_LINK_ACTION_TYPE_GOTO_REMOTE: + open_remote_link (window, action); + break; + case EV_LINK_ACTION_TYPE_NAMED: + do_action_named (window, action); + break; + default: + g_assert_not_reached (); + } +} + +static void +ev_view_popup_cmd_open_link (GtkAction *action, EvWindow *window) +{ + ev_view_handle_link (EV_VIEW (window->priv->view), window->priv->link); +} + +static void +ev_view_popup_cmd_open_link_new_window (GtkAction *action, EvWindow *window) +{ + EvLinkAction *ev_action = NULL; + EvLinkDest *dest; + + ev_action = ev_link_get_action (window->priv->link); + if (!ev_action) + return; + + dest = ev_link_action_get_dest (ev_action); + if (!dest) + return; + + ev_window_open_copy_at_dest (window, dest); +} + +static void +ev_view_popup_cmd_copy_link_address (GtkAction *action, EvWindow *window) +{ + EvLinkAction *ev_action; + + ev_action = ev_link_get_action (window->priv->link); + if (!ev_action) + return; + + ev_view_copy_link_address (EV_VIEW (window->priv->view), + ev_action); +} + + +static void +image_save_dialog_response_cb (GtkWidget *fc, + gint response_id, + EvWindow *ev_window) +{ + GFile *target_file; + gboolean is_native; + GError *error = NULL; + GdkPixbuf *pixbuf; + gchar *uri; + gchar **extensions; + gchar *filename; + gchar *file_format; + GdkPixbufFormat *format; + GtkFileFilter *filter; + + if (response_id != GTK_RESPONSE_OK) { + gtk_widget_destroy (fc); + return; + } + + uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (fc)); + filter = gtk_file_chooser_get_filter (GTK_FILE_CHOOSER (fc)); + format = g_object_get_data (G_OBJECT (filter), "pixbuf-format"); + + if (format == NULL) { + format = get_gdk_pixbuf_format_by_extension (uri); + } + + if (format == NULL && g_strrstr (uri, ".") == NULL) { + /* no extension found and no extension provided within uri */ + format = get_gdk_pixbuf_format_by_extension (".png"); + if (format == NULL) { + /* no .png support, try .jpeg */ + format = get_gdk_pixbuf_format_by_extension (".jpeg"); + } + } + + if (format == NULL) { + ev_window_error_message (ev_window, NULL, + "%s", + _("Couldn't find appropriate format to save image")); + g_free (uri); + gtk_widget_destroy (fc); + + return; + } + + extensions = gdk_pixbuf_format_get_extensions (format); + if (!g_str_has_suffix (uri, extensions[0])) { + gchar *uri_extension; + + uri_extension = g_strconcat (uri, ".", extensions[0], NULL); + target_file = g_file_new_for_uri (uri_extension); + g_free (uri_extension); + } else { + target_file = g_file_new_for_uri (uri); + } + g_strfreev (extensions); + g_free (uri); + + is_native = g_file_is_native (target_file); + if (is_native) { + filename = g_file_get_path (target_file); + } else { + /* Create a temporary local file to save to */ + if (ev_mkstemp ("saveimage.XXXXXX", &filename, &error) == -1) + goto has_error; + } + + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (ev_window->priv->document), + ev_window->priv->image); + ev_document_doc_mutex_unlock (); + + file_format = gdk_pixbuf_format_get_name (format); + gdk_pixbuf_save (pixbuf, filename, file_format, &error, NULL); + g_free (file_format); + g_object_unref (pixbuf); + + has_error: + if (error) { + ev_window_error_message (ev_window, error, + "%s", _("The image could not be saved.")); + g_error_free (error); + g_free (filename); + g_object_unref (target_file); + gtk_widget_destroy (fc); + + return; + } + + if (!is_native) { + GFile *source_file; + + source_file = g_file_new_for_path (filename); + + ev_window_save_remote (ev_window, EV_SAVE_IMAGE, + source_file, target_file); + g_object_unref (source_file); + } + + g_free (filename); + g_object_unref (target_file); + gtk_widget_destroy (fc); +} + +static void +ev_view_popup_cmd_save_image_as (GtkAction *action, EvWindow *window) +{ + GtkWidget *fc; + + if (!window->priv->image) + return; + + fc = gtk_file_chooser_dialog_new (_("Save Image"), + GTK_WINDOW (window), + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_OK, + NULL); + + gtk_dialog_set_default_response (GTK_DIALOG (fc), GTK_RESPONSE_OK); + gtk_dialog_set_alternative_button_order (GTK_DIALOG (fc), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (fc), FALSE); + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (fc), TRUE); + + file_chooser_dialog_add_writable_pixbuf_formats (GTK_FILE_CHOOSER (fc)); + + g_signal_connect (fc, "response", + G_CALLBACK (image_save_dialog_response_cb), + window); + + gtk_widget_show (fc); +} + +static void +ev_view_popup_cmd_copy_image (GtkAction *action, EvWindow *window) +{ + GtkClipboard *clipboard; + GdkPixbuf *pixbuf; + + if (!window->priv->image) + return; + + clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window), + GDK_SELECTION_CLIPBOARD); + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (window->priv->document), + window->priv->image); + ev_document_doc_mutex_unlock (); + + gtk_clipboard_set_image (clipboard, pixbuf); + g_object_unref (pixbuf); +} + +static void +ev_view_popup_cmd_annot_properties (GtkAction *action, + EvWindow *window) +{ + const gchar *author; + GdkColor color; + gdouble opacity; + gboolean popup_is_open; + EvAnnotationPropertiesDialog *dialog; + EvAnnotation *annot = window->priv->annot; + EvAnnotationsSaveMask mask = EV_ANNOTATIONS_SAVE_NONE; + + if (!annot) + return; + + dialog = EV_ANNOTATION_PROPERTIES_DIALOG (ev_annotation_properties_dialog_new_with_annotation (window->priv->annot)); + if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_APPLY) { + gtk_widget_destroy (GTK_WIDGET (dialog)); + + return; + } + + /* Set annotations changes */ + author = ev_annotation_properties_dialog_get_author (dialog); + if (ev_annotation_markup_set_label (EV_ANNOTATION_MARKUP (annot), author)) + mask |= EV_ANNOTATIONS_SAVE_LABEL; + + ev_annotation_properties_dialog_get_color (dialog, &color); + if (ev_annotation_set_color (annot, &color)) + mask |= EV_ANNOTATIONS_SAVE_COLOR; + + opacity = ev_annotation_properties_dialog_get_opacity (dialog); + if (ev_annotation_markup_set_opacity (EV_ANNOTATION_MARKUP (annot), opacity)) + mask |= EV_ANNOTATIONS_SAVE_OPACITY; + + popup_is_open = ev_annotation_properties_dialog_get_popup_is_open (dialog); + if (ev_annotation_markup_set_popup_is_open (EV_ANNOTATION_MARKUP (annot), popup_is_open)) + mask |= EV_ANNOTATIONS_SAVE_POPUP_IS_OPEN; + + if (EV_IS_ANNOTATION_TEXT (annot)) { + EvAnnotationTextIcon icon; + + icon = ev_annotation_properties_dialog_get_text_icon (dialog); + if (ev_annotation_text_set_icon (EV_ANNOTATION_TEXT (annot), icon)) + mask |= EV_ANNOTATIONS_SAVE_TEXT_ICON; + } + + if (mask != EV_ANNOTATIONS_SAVE_NONE) { + ev_document_doc_mutex_lock (); + ev_document_annotations_save_annotation (EV_DOCUMENT_ANNOTATIONS (window->priv->document), + window->priv->annot, + mask); + ev_document_doc_mutex_unlock (); + + /* FIXME: update annot region only */ + ev_view_reload (EV_VIEW (window->priv->view)); + } + + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +ev_attachment_popup_cmd_open_attachment (GtkAction *action, EvWindow *window) +{ + GList *l; + GdkScreen *screen; + + if (!window->priv->attach_list) + return; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + + for (l = window->priv->attach_list; l && l->data; l = g_list_next (l)) { + EvAttachment *attachment; + GError *error = NULL; + + attachment = (EvAttachment *) l->data; + + ev_attachment_open (attachment, screen, gtk_get_current_event_time (), &error); + + if (error) { + ev_window_error_message (window, error, + "%s", _("Unable to open attachment")); + g_error_free (error); + } + } +} + +static void +attachment_save_dialog_response_cb (GtkWidget *fc, + gint response_id, + EvWindow *ev_window) +{ + GFile *target_file; + gchar *uri; + GList *l; + GtkFileChooserAction fc_action; + gboolean is_dir; + gboolean is_native; + + if (response_id != GTK_RESPONSE_OK) { + gtk_widget_destroy (fc); + return; + } + + uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (fc)); + target_file = g_file_new_for_uri (uri); + g_object_get (G_OBJECT (fc), "action", &fc_action, NULL); + is_dir = (fc_action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); + is_native = g_file_is_native (target_file); + + for (l = ev_window->priv->attach_list; l && l->data; l = g_list_next (l)) { + EvAttachment *attachment; + GFile *save_to = NULL; + GError *error = NULL; + + attachment = (EvAttachment *) l->data; + + if (is_native) { + if (is_dir) { + save_to = g_file_get_child (target_file, + /* FIXMEchpe: file name encoding! */ + ev_attachment_get_name (attachment)); + } else { + save_to = g_object_ref (target_file); + } + } else { + save_to = ev_mkstemp_file ("saveattachment.XXXXXX", &error); + } + + if (save_to) + ev_attachment_save (attachment, save_to, &error); + + if (error) { + ev_window_error_message (ev_window, error, + "%s", _("The attachment could not be saved.")); + g_error_free (error); + g_object_unref (save_to); + + continue; + } + + if (!is_native) { + GFile *dest_file; + + if (is_dir) { + dest_file = g_file_get_child (target_file, + ev_attachment_get_name (attachment)); + } else { + dest_file = g_object_ref (target_file); + } + + ev_window_save_remote (ev_window, EV_SAVE_ATTACHMENT, + save_to, dest_file); + + g_object_unref (dest_file); + } + + g_object_unref (save_to); + } + + g_free (uri); + g_object_unref (target_file); + + gtk_widget_destroy (fc); +} + +static void +ev_attachment_popup_cmd_save_attachment_as (GtkAction *action, EvWindow *window) +{ + GtkWidget *fc; + EvAttachment *attachment = NULL; + + if (!window->priv->attach_list) + return; + + if (g_list_length (window->priv->attach_list) == 1) + attachment = (EvAttachment *) window->priv->attach_list->data; + + fc = gtk_file_chooser_dialog_new ( + _("Save Attachment"), + GTK_WINDOW (window), + attachment ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_OK, + NULL); + + gtk_dialog_set_default_response (GTK_DIALOG (fc), GTK_RESPONSE_OK); + gtk_dialog_set_alternative_button_order (GTK_DIALOG (fc), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (fc), TRUE); + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (fc), FALSE); + + if (attachment) + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (fc), + ev_attachment_get_name (attachment)); + + g_signal_connect (fc, "response", + G_CALLBACK (attachment_save_dialog_response_cb), + window); + + gtk_widget_show (fc); +} + +static void +ev_window_media_player_key_pressed (EvWindow *window, + const gchar *key, + gpointer user_data) +{ + if (!gtk_window_is_active (GTK_WINDOW (window))) + return; + + /* Note how Previous/Next only go to the + * next/previous page despite their icon telling you + * they should go to the beginning/end. + * + * There's very few keyboards with FFW/RWD though, + * so we stick the most useful keybinding on the most + * often seen keys + */ + if (strcmp (key, "Play") == 0) { + ev_window_run_presentation (window); + } else if (strcmp (key, "Previous") == 0) { + ev_window_cmd_go_previous_page (NULL, window); + } else if (strcmp (key, "Next") == 0) { + ev_window_cmd_go_next_page (NULL, window); + } else if (strcmp (key, "FastForward") == 0) { + ev_window_cmd_go_last_page (NULL, window); + } else if (strcmp (key, "Rewind") == 0) { + ev_window_cmd_go_first_page (NULL, window); + } +} + +static EggToolbarsModel * +get_toolbars_model (void) +{ + EggToolbarsModel *toolbars_model; + gchar *toolbars_file; + gchar *toolbars_path; + gint i; + + toolbars_model = egg_toolbars_model_new (); + + toolbars_file = g_build_filename (ev_application_get_dot_dir (EV_APP, FALSE), + "evince_toolbar.xml", NULL); + toolbars_path = g_build_filename (ev_application_get_data_dir (EV_APP), + "evince-toolbar.xml", NULL); + egg_toolbars_model_load_names (toolbars_model, toolbars_path); + + if (!egg_toolbars_model_load_toolbars (toolbars_model, toolbars_file)) { + egg_toolbars_model_load_toolbars (toolbars_model, toolbars_path); + goto skip_conversion; + } + + /* Open item doesn't exist anymore, + * convert it to OpenRecent for compatibility + */ + for (i = 0; i < egg_toolbars_model_n_items (toolbars_model, 0); i++) { + const gchar *item; + + item = egg_toolbars_model_item_nth (toolbars_model, 0, i); + if (g_ascii_strcasecmp (item, "FileOpen") == 0) { + egg_toolbars_model_remove_item (toolbars_model, 0, i); + egg_toolbars_model_add_item (toolbars_model, 0, i, + "FileOpenRecent"); + egg_toolbars_model_save_toolbars (toolbars_model, toolbars_file, "1.0"); + break; + } + } + + skip_conversion: + g_free (toolbars_file); + g_free (toolbars_path); + + egg_toolbars_model_set_flags (toolbars_model, 0, EGG_TB_MODEL_NOT_REMOVABLE); + + return toolbars_model; +} + +#ifdef ENABLE_DBUS +static void +ev_window_sync_source (EvWindow *window, + EvSourceLink *link) +{ + GDBusConnection *connection; + GError *error = NULL; + + if (window->priv->dbus_object_id <= 0) + return; + + connection = ev_application_get_dbus_connection (EV_APP); + if (!connection) + return; + + g_dbus_connection_emit_signal (connection, + NULL, + window->priv->dbus_object_path, + EV_WINDOW_DBUS_INTERFACE, + "SyncSource", + g_variant_new ("(s(ii))", + link->filename, + link->line, + link->col), + &error); + if (error) { + g_printerr ("Failed to emit DBus signal SyncSource: %s\n", + error->message); + g_error_free (error); + } +} + +static void +ev_window_emit_closed (EvWindow *window) +{ + GDBusConnection *connection; + GError *error = NULL; + + if (window->priv->dbus_object_id <= 0) + return; + + connection = ev_application_get_dbus_connection (EV_APP); + if (!connection) + return; + + g_dbus_connection_emit_signal (connection, + NULL, + window->priv->dbus_object_path, + EV_WINDOW_DBUS_INTERFACE, + "Closed", + NULL, + &error); + if (error) { + g_printerr ("Failed to emit DBus signal Closed: %s\n", + error->message); + g_error_free (error); + + return; + } + + /* If this is the last window call g_dbus_connection_flush_sync() + * to make sure the signal is emitted. + */ + if (ev_application_get_n_windows (EV_APP) == 1) + g_dbus_connection_flush_sync (connection, NULL, NULL); +} + +static void +ev_window_emit_doc_loaded (EvWindow *window) +{ + GDBusConnection *connection; + GError *error = NULL; + + if (window->priv->dbus_object_id <= 0) + return; + + connection = ev_application_get_dbus_connection (EV_APP); + if (!connection) + return; + + g_dbus_connection_emit_signal (connection, + NULL, + window->priv->dbus_object_path, + EV_WINDOW_DBUS_INTERFACE, + "DocumentLoaded", + g_variant_new("(s)", window->priv->uri), + &error); + if (error) { + g_printerr ("Failed to emit DBus signal DocumentLoaded: %s\n", + error->message); + g_error_free (error); + + return; + } +} + +static void +method_call_cb (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + EvWindow *window = EV_WINDOW (user_data); + + if (g_strcmp0 (method_name, "SyncView") != 0) + return; + + if (window->priv->document && ev_document_has_synctex (window->priv->document)) { + EvSourceLink link; + + g_variant_get (parameters, "(&s(ii))", &link.filename, &link.line, &link.col); + ev_view_highlight_forward_search (EV_VIEW (window->priv->view), &link); + gtk_window_present (GTK_WINDOW (window)); + } + + g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); +} + +static const char introspection_xml[] = + "<node>" + "<interface name='org.mate.evince.Window'>" + "<method name='SyncView'>" + "<arg type='s' name='source_file' direction='in'/>" + "<arg type='(ii)' name='source_point' direction='in'/>" + "</method>" + "<signal name='SyncSource'>" + "<arg type='s' name='source_file' direction='out'/>" + "<arg type='(ii)' name='source_point' direction='out'/>" + "</signal>" + "<signal name='Closed'/>" + "<signal name='DocumentLoaded'>" + "<arg type='s' name='uri' direction='out'/>" + "</signal>" + "</interface>" + "</node>"; + +static const GDBusInterfaceVTable interface_vtable = { + method_call_cb, + NULL, + NULL +}; + +static GDBusNodeInfo *introspection_data; +#endif /* ENABLE_DBUS */ + +static void +ev_window_init (EvWindow *ev_window) +{ + GtkActionGroup *action_group; + GtkAccelGroup *accel_group; + GError *error = NULL; + GtkWidget *sidebar_widget; + GtkWidget *menuitem; + EggToolbarsModel *toolbars_model; + GObject *mpkeys; + gchar *ui_path; +#ifdef ENABLE_DBUS + GDBusConnection *connection; + static gint window_id = 0; +#endif + + g_signal_connect (ev_window, "configure_event", + G_CALLBACK (window_configure_event_cb), NULL); + g_signal_connect (ev_window, "window_state_event", + G_CALLBACK (window_state_event_cb), NULL); + + ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window); + +#ifdef ENABLE_DBUS + connection = ev_application_get_dbus_connection (EV_APP); + if (connection) { + if (!introspection_data) { + introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, &error); + if (error) g_warning ("%s\n", error->message); + } + g_assert (introspection_data != NULL); + + ev_window->priv->dbus_object_path = g_strdup_printf (EV_WINDOW_DBUS_OBJECT_PATH, window_id++); + ev_window->priv->dbus_object_id = + g_dbus_connection_register_object (connection, + ev_window->priv->dbus_object_path, + introspection_data->interfaces[0], + &interface_vtable, + ev_window, NULL, + &error); + if (ev_window->priv->dbus_object_id == 0) { + g_printerr ("Failed to register bus object %s: %s\n", + ev_window->priv->dbus_object_path, error->message); + g_error_free (error); + g_free (ev_window->priv->dbus_object_path); + ev_window->priv->dbus_object_path = NULL; + error = NULL; + } + } + +#endif /* ENABLE_DBUS */ + + ev_window->priv->model = ev_document_model_new (); + + ev_window->priv->page_mode = PAGE_MODE_DOCUMENT; + ev_window->priv->title = ev_window_title_new (ev_window); + + ev_window->priv->main_box = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (ev_window), ev_window->priv->main_box); + gtk_widget_show (ev_window->priv->main_box); + + action_group = gtk_action_group_new ("MenuActions"); + ev_window->priv->action_group = action_group; + gtk_action_group_set_translation_domain (action_group, NULL); + gtk_action_group_add_actions (action_group, entries, + G_N_ELEMENTS (entries), ev_window); + gtk_action_group_add_toggle_actions (action_group, toggle_entries, + G_N_ELEMENTS (toggle_entries), + ev_window); + set_action_properties (action_group); + register_custom_actions (ev_window, action_group); + + ev_window->priv->ui_manager = gtk_ui_manager_new (); + gtk_ui_manager_insert_action_group (ev_window->priv->ui_manager, + action_group, 0); + + accel_group = + gtk_ui_manager_get_accel_group (ev_window->priv->ui_manager); + gtk_window_add_accel_group (GTK_WINDOW (ev_window), accel_group); + + ev_window_set_view_accels_sensitivity (ev_window, FALSE); + + action_group = gtk_action_group_new ("ViewPopupActions"); + ev_window->priv->view_popup_action_group = action_group; + gtk_action_group_set_translation_domain (action_group, NULL); + gtk_action_group_add_actions (action_group, view_popup_entries, + G_N_ELEMENTS (view_popup_entries), + ev_window); + gtk_ui_manager_insert_action_group (ev_window->priv->ui_manager, + action_group, 0); + + action_group = gtk_action_group_new ("AttachmentPopupActions"); + ev_window->priv->attachment_popup_action_group = action_group; + gtk_action_group_set_translation_domain (action_group, NULL); + gtk_action_group_add_actions (action_group, attachment_popup_entries, + G_N_ELEMENTS (attachment_popup_entries), + ev_window); + gtk_ui_manager_insert_action_group (ev_window->priv->ui_manager, + action_group, 0); + + ui_path = g_build_filename (ev_application_get_data_dir (EV_APP), + "evince-ui.xml", NULL); + if (!gtk_ui_manager_add_ui_from_file ( + ev_window->priv->ui_manager, ui_path, &error)) + { + g_warning ("building menus failed: %s", error->message); + g_error_free (error); + } + g_free (ui_path); + + ev_window->priv->recent_manager = gtk_recent_manager_get_default (); + ev_window->priv->recent_action_group = NULL; + ev_window->priv->recent_ui_id = 0; + g_signal_connect_swapped (ev_window->priv->recent_manager, + "changed", + G_CALLBACK (ev_window_setup_recent), + ev_window); + + ev_window->priv->menubar = + gtk_ui_manager_get_widget (ev_window->priv->ui_manager, + "/MainMenu"); + gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), + ev_window->priv->menubar, + FALSE, FALSE, 0); + menuitem = gtk_ui_manager_get_widget (ev_window->priv->ui_manager, + "/MainMenu/EditMenu/EditRotateLeftMenu"); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); + menuitem = gtk_ui_manager_get_widget (ev_window->priv->ui_manager, + "/MainMenu/EditMenu/EditRotateRightMenu"); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); + + toolbars_model = get_toolbars_model (); + ev_window->priv->toolbar = GTK_WIDGET + (g_object_new (EGG_TYPE_EDITABLE_TOOLBAR, + "ui-manager", ev_window->priv->ui_manager, + "popup-path", "/ToolbarPopup", + "model", toolbars_model, + NULL)); + g_object_unref (toolbars_model); + + egg_editable_toolbar_show (EGG_EDITABLE_TOOLBAR (ev_window->priv->toolbar), + "DefaultToolBar"); + gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), + ev_window->priv->toolbar, + FALSE, FALSE, 0); + gtk_widget_show (ev_window->priv->toolbar); + + /* Add the main area */ + ev_window->priv->hpaned = gtk_hpaned_new (); + g_signal_connect (ev_window->priv->hpaned, + "notify::position", + G_CALLBACK (ev_window_sidebar_position_change_cb), + ev_window); + + gtk_paned_set_position (GTK_PANED (ev_window->priv->hpaned), SIDEBAR_DEFAULT_SIZE); + gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), ev_window->priv->hpaned, + TRUE, TRUE, 0); + gtk_widget_show (ev_window->priv->hpaned); + + ev_window->priv->sidebar = ev_sidebar_new (); + ev_sidebar_set_model (EV_SIDEBAR (ev_window->priv->sidebar), + ev_window->priv->model); + gtk_paned_pack1 (GTK_PANED (ev_window->priv->hpaned), + ev_window->priv->sidebar, FALSE, FALSE); + gtk_widget_show (ev_window->priv->sidebar); + + /* Stub sidebar, for now */ + + sidebar_widget = ev_sidebar_thumbnails_new (); + ev_window->priv->sidebar_thumbs = sidebar_widget; + g_signal_connect (sidebar_widget, + "notify::main-widget", + G_CALLBACK (sidebar_page_main_widget_update_cb), + ev_window); + sidebar_page_main_widget_update_cb (G_OBJECT (sidebar_widget), NULL, ev_window); + gtk_widget_show (sidebar_widget); + ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar), + sidebar_widget); + + sidebar_widget = ev_sidebar_links_new (); + ev_window->priv->sidebar_links = sidebar_widget; + g_signal_connect (sidebar_widget, + "notify::model", + G_CALLBACK (sidebar_widget_model_set), + ev_window); + g_signal_connect (sidebar_widget, + "link_activated", + G_CALLBACK (sidebar_links_link_activated_cb), + ev_window); + sidebar_page_main_widget_update_cb (G_OBJECT (sidebar_widget), NULL, ev_window); + gtk_widget_show (sidebar_widget); + ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar), + sidebar_widget); + + sidebar_widget = ev_sidebar_attachments_new (); + ev_window->priv->sidebar_attachments = sidebar_widget; + g_signal_connect_object (sidebar_widget, + "popup", + G_CALLBACK (attachment_bar_menu_popup_cb), + ev_window, 0); + gtk_widget_show (sidebar_widget); + ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar), + sidebar_widget); + + sidebar_widget = ev_sidebar_layers_new (); + ev_window->priv->sidebar_layers = sidebar_widget; + g_signal_connect (sidebar_widget, + "layers_visibility_changed", + G_CALLBACK (sidebar_layers_visibility_changed), + ev_window); + gtk_widget_show (sidebar_widget); + ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar), + sidebar_widget); + + sidebar_widget = ev_sidebar_annotations_new (); + ev_window->priv->sidebar_annots = sidebar_widget; + g_signal_connect (sidebar_widget, + "annot_activated", + G_CALLBACK (sidebar_annots_annot_activated_cb), + ev_window); + g_signal_connect (sidebar_widget, + "begin_annot_add", + G_CALLBACK (sidebar_annots_begin_annot_add), + ev_window); + g_signal_connect (sidebar_widget, + "annot_add_cancelled", + G_CALLBACK (sidebar_annots_annot_add_cancelled), + ev_window); + gtk_widget_show (sidebar_widget); + ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar), + sidebar_widget); + + ev_window->priv->view_box = gtk_vbox_new (FALSE, 0); + ev_window->priv->scrolled_window = + GTK_WIDGET (g_object_new (GTK_TYPE_SCROLLED_WINDOW, + "shadow-type", GTK_SHADOW_IN, + NULL)); + gtk_box_pack_start (GTK_BOX (ev_window->priv->view_box), + ev_window->priv->scrolled_window, + TRUE, TRUE, 0); + gtk_widget_show (ev_window->priv->scrolled_window); + + gtk_paned_add2 (GTK_PANED (ev_window->priv->hpaned), + ev_window->priv->view_box); + gtk_widget_show (ev_window->priv->view_box); + + ev_window->priv->view = ev_view_new (); + ev_view_set_page_cache_size (EV_VIEW (ev_window->priv->view), PAGE_CACHE_SIZE); + ev_view_set_model (EV_VIEW (ev_window->priv->view), ev_window->priv->model); + + ev_window->priv->password_view = ev_password_view_new (GTK_WINDOW (ev_window)); + g_signal_connect_swapped (ev_window->priv->password_view, + "unlock", + G_CALLBACK (ev_window_password_view_unlock), + ev_window); + g_signal_connect_object (ev_window->priv->view, "focus_in_event", + G_CALLBACK (view_actions_focus_in_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "focus_out_event", + G_CALLBACK (view_actions_focus_out_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "external-link", + G_CALLBACK (view_external_link_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "handle-link", + G_CALLBACK (view_handle_link_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "popup", + G_CALLBACK (view_menu_popup_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "selection-changed", + G_CALLBACK (view_selection_changed_cb), + ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "annot-added", + G_CALLBACK (view_annot_added), + ev_window, 0); +#ifdef ENABLE_DBUS + g_signal_connect_swapped (ev_window->priv->view, "sync-source", + G_CALLBACK (ev_window_sync_source), + ev_window); +#endif + gtk_widget_show (ev_window->priv->view); + gtk_widget_show (ev_window->priv->password_view); + + /* Find Bar */ + ev_window->priv->find_bar = egg_find_bar_new (); + gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box), + ev_window->priv->find_bar, + FALSE, TRUE, 0); + + /* We own a ref on these widgets, as we can swap them in and out */ + g_object_ref (ev_window->priv->view); + g_object_ref (ev_window->priv->password_view); + + gtk_container_add (GTK_CONTAINER (ev_window->priv->scrolled_window), + ev_window->priv->view); + + /* Connect to model signals */ + g_signal_connect_swapped (ev_window->priv->model, + "page-changed", + G_CALLBACK (ev_window_page_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::document", + G_CALLBACK (ev_window_document_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::scale", + G_CALLBACK (ev_window_zoom_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::sizing-mode", + G_CALLBACK (ev_window_sizing_mode_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::rotation", + G_CALLBACK (ev_window_rotation_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::continuous", + G_CALLBACK (ev_window_continuous_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::dual-page", + G_CALLBACK (ev_window_dual_mode_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->model, + "notify::inverted-colors", + G_CALLBACK (ev_window_inverted_colors_changed_cb), + ev_window); + + /* Connect sidebar signals */ + g_signal_connect (ev_window->priv->sidebar, + "notify::visible", + G_CALLBACK (ev_window_sidebar_visibility_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->sidebar, + "notify::current-page", + G_CALLBACK (ev_window_sidebar_current_page_changed_cb), + ev_window); + + /* Connect to find bar signals */ + g_signal_connect (ev_window->priv->find_bar, + "previous", + G_CALLBACK (find_bar_previous_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "next", + G_CALLBACK (find_bar_next_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "close", + G_CALLBACK (find_bar_close_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "notify::search-string", + G_CALLBACK (find_bar_search_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "notify::case-sensitive", + G_CALLBACK (find_bar_search_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "notify::visible", + G_CALLBACK (find_bar_visibility_changed_cb), + ev_window); + g_signal_connect (ev_window->priv->find_bar, + "scroll", + G_CALLBACK (find_bar_scroll), + ev_window); + + /* Popups */ + ev_window->priv->view_popup = gtk_ui_manager_get_widget (ev_window->priv->ui_manager, + "/DocumentPopup"); + ev_window->priv->link = NULL; + + ev_window->priv->attachment_popup = gtk_ui_manager_get_widget (ev_window->priv->ui_manager, + "/AttachmentPopup"); + ev_window->priv->attach_list = NULL; + + /* Media player keys */ + mpkeys = ev_application_get_media_keys (EV_APP); + if (mpkeys) { + g_signal_connect_swapped (mpkeys, "key_pressed", + G_CALLBACK (ev_window_media_player_key_pressed), + ev_window); + } + + /* Give focus to the document view */ + gtk_widget_grab_focus (ev_window->priv->view); + + ev_window->priv->default_settings = g_settings_new (GS_SCHEMA_NAME".Default"); + g_settings_delay (ev_window->priv->default_settings); + + /* Set it user interface params */ + ev_window_setup_recent (ev_window); + + ev_window_setup_gtk_settings (ev_window); + + setup_chrome_from_metadata (ev_window); + update_chrome_actions (ev_window); + update_chrome_visibility (ev_window); + + gtk_window_set_default_size (GTK_WINDOW (ev_window), 600, 600); + + setup_view_from_metadata (ev_window); + setup_sidebar_from_metadata (ev_window); + + ev_window_sizing_mode_changed_cb (ev_window->priv->model, NULL, ev_window); + ev_window_setup_action_sensitivity (ev_window); + + /* Drag and Drop */ + gtk_drag_dest_set (GTK_WIDGET (ev_window), + GTK_DEST_DEFAULT_ALL, + NULL, 0, + GDK_ACTION_COPY); + gtk_drag_dest_add_uri_targets (GTK_WIDGET (ev_window)); +} + +/** + * ev_window_new: + * + * Creates a #GtkWidget that represents the window. + * + * Returns: the #GtkWidget that represents the window. + */ +GtkWidget * +ev_window_new (void) +{ + GtkWidget *ev_window; + + ev_window = GTK_WIDGET (g_object_new (EV_TYPE_WINDOW, + "type", GTK_WINDOW_TOPLEVEL, + NULL)); + + return ev_window; +} + +const gchar * +ev_window_get_dbus_object_path (EvWindow *ev_window) +{ +#ifdef ENABLE_DBUS + return ev_window->priv->dbus_object_path; +#else + return NULL; +#endif +} diff --git a/shell/ev-window.h b/shell/ev-window.h new file mode 100644 index 00000000..c6e4bd1b --- /dev/null +++ b/shell/ev-window.h @@ -0,0 +1,93 @@ +/* this file is part of evince, a mate document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince 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 2 of the License, or + * (at your option) any later version. + * + * Evince 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef EV_WINDOW_H +#define EV_WINDOW_H + +#include <glib.h> +#include <gtk/gtk.h> + +#include "ev-link.h" + +G_BEGIN_DECLS + +typedef enum { + EV_WINDOW_MODE_NORMAL, + EV_WINDOW_MODE_FULLSCREEN, + EV_WINDOW_MODE_PRESENTATION +} EvWindowRunMode; + +typedef struct { + gint start; + gint end; +} EvPrintRange; + +typedef enum { + EV_PRINT_PAGE_SET_ALL, + EV_PRINT_PAGE_SET_EVEN, + EV_PRINT_PAGE_SET_ODD +} EvPrintPageSet; + +typedef struct _EvWindow EvWindow; +typedef struct _EvWindowClass EvWindowClass; +typedef struct _EvWindowPrivate EvWindowPrivate; + +#define EV_TYPE_WINDOW (ev_window_get_type()) +#define EV_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_WINDOW, EvWindow)) +#define EV_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_WINDOW, EvWindowClass)) +#define EV_IS_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_WINDOW)) +#define EV_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_WINDOW)) +#define EV_WINDOW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_WINDOW, EvWindowClass)) + + +struct _EvWindow { + GtkWindow base_instance; + EvWindowPrivate *priv; +}; + +struct _EvWindowClass { + GtkWindowClass base_class; +}; + +GType ev_window_get_type (void) G_GNUC_CONST; +GtkWidget *ev_window_new (void); +const char *ev_window_get_uri (EvWindow *ev_window); +void ev_window_open_uri (EvWindow *ev_window, + const char *uri, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string); +void ev_window_open_document (EvWindow *ev_window, + EvDocument *document, + EvLinkDest *dest, + EvWindowRunMode mode, + const gchar *search_string); +gboolean ev_window_is_empty (const EvWindow *ev_window); +void ev_window_print_range (EvWindow *ev_window, + int first_page, + int last_page); +const gchar * ev_window_get_dbus_object_path (EvWindow *ev_window); + + +G_END_DECLS + +#endif /* !EV_WINDOW_H */ diff --git a/shell/evince-icon.rc b/shell/evince-icon.rc new file mode 100644 index 00000000..7a37b524 --- /dev/null +++ b/shell/evince-icon.rc @@ -0,0 +1 @@ +1 ICON "evince.ico" diff --git a/shell/main.c b/shell/main.c new file mode 100644 index 00000000..5e3b6774 --- /dev/null +++ b/shell/main.c @@ -0,0 +1,328 @@ +/* + * Copyright (C) 2004 Marco Pesenti Gritti + * + * 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 2, 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" + +#include <stdlib.h> +#include <string.h> + +#include <glib/gstdio.h> +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +#include "ev-application.h" +#include "ev-debug.h" +#include "ev-init.h" +#include "ev-file-helpers.h" +#include "ev-stock-icons.h" +#include "ev-metadata.h" + +#ifdef WITH_SMCLIENT +#include "eggsmclient.h" +#ifdef GDK_WINDOWING_X11 +#include "eggdesktopfile.h" +#endif +#endif /* WITH_SMCLIENT */ + +#ifdef G_OS_WIN32 +#include <io.h> +#include <conio.h> +#if !(_WIN32_WINNT >= 0x0500) +#error "_WIN32_WINNT must be defined >= 0x0500" +#endif +#include <windows.h> +#endif + +static gchar *ev_page_label; +static gchar *ev_find_string; +static gint ev_page_index = 0; +static gboolean preview_mode = FALSE; +static gboolean fullscreen_mode = FALSE; +static gboolean presentation_mode = FALSE; +static gboolean unlink_temp_file = FALSE; +static gchar *print_settings; +static const char **file_arguments = NULL; + + +static gboolean +option_version_cb (const gchar *option_name, + const gchar *value, + gpointer data, + GError **error) +{ + g_print ("%s %s\n", _("MATE Document Viewer"), VERSION); + + exit (0); + return FALSE; +} + +static const GOptionEntry goption_options[] = +{ + { "page-label", 'p', 0, G_OPTION_ARG_STRING, &ev_page_label, N_("The page label of the document to display."), N_("PAGE")}, + { "page-index", 'i', 0, G_OPTION_ARG_INT, &ev_page_index, N_("The page number of the document to display."), N_("NUMBER")}, + { "fullscreen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen_mode, N_("Run evince in fullscreen mode"), NULL }, + { "presentation", 's', 0, G_OPTION_ARG_NONE, &presentation_mode, N_("Run evince in presentation mode"), NULL }, + { "preview", 'w', 0, G_OPTION_ARG_NONE, &preview_mode, N_("Run evince as a previewer"), NULL }, + { "find", 'l', 0, G_OPTION_ARG_STRING, &ev_find_string, N_("The word or phrase to find in the document"), N_("STRING")}, + { "unlink-tempfile", 'u', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &unlink_temp_file, NULL, NULL }, + { "print-settings", 't', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_FILENAME, &print_settings, NULL, NULL }, + { "version", 0, G_OPTION_FLAG_NO_ARG | G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, option_version_cb, NULL, NULL }, + { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_arguments, NULL, N_("[FILEā¦]") }, + { NULL } +}; + +static gboolean +launch_previewer (void) +{ + GString *cmd_str; + gchar *cmd; + gint argc; + gchar **argv; + gboolean retval = FALSE; + GError *error = NULL; + + /* Rebuild the command line, ignoring options + * not supported by the previewer and taking only + * the first path given + */ + cmd_str = g_string_new ("evince-previewer"); + + if (print_settings) { + gchar *quoted; + + quoted = g_shell_quote (print_settings); + g_string_append_printf (cmd_str, " --print-settings %s", quoted); + g_free (quoted); + } + + if (unlink_temp_file) + g_string_append (cmd_str, " --unlink-tempfile"); + + if (file_arguments) { + gchar *quoted; + + quoted = g_shell_quote (file_arguments[0]); + g_string_append_printf (cmd_str, " %s", quoted); + g_free (quoted); + } + + cmd = g_string_free (cmd_str, FALSE); + g_shell_parse_argv (cmd, &argc, &argv, &error); + g_free (cmd); + + if (!error) { + retval = gdk_spawn_on_screen (gdk_screen_get_default (), + NULL, argv, NULL, + G_SPAWN_SEARCH_PATH, + NULL, NULL, NULL, + &error); + g_strfreev (argv); + } + + if (error) { + g_warning ("Error launching previewer: %s\n", error->message); + g_error_free (error); + } + + return retval; +} + +static gchar * +get_label_from_filename (const gchar *filename) +{ + GFile *file; + gchar *label; + gboolean exists; + + label = g_strrstr (filename, "#"); + if (!label) + return NULL; + + /* Filename contains a #, check + * whether it's part of the path + * or a label + */ + file = g_file_new_for_commandline_arg (filename); + exists = g_file_query_exists (file, NULL); + g_object_unref (file); + + return exists ? NULL : label; +} + +static void +load_files (const char **files) +{ + GdkScreen *screen = gdk_screen_get_default (); + EvWindowRunMode mode = EV_WINDOW_MODE_NORMAL; + gint i; + EvLinkDest *global_dest = NULL; + + if (!files) { + if (!ev_application_has_window (EV_APP)) + ev_application_open_window (EV_APP, screen, GDK_CURRENT_TIME); + return; + } + + if (ev_page_label) + global_dest = ev_link_dest_new_page_label (ev_page_label); + else if (ev_page_index) + global_dest = ev_link_dest_new_page (MAX (0, ev_page_index - 1)); + + if (fullscreen_mode) + mode = EV_WINDOW_MODE_FULLSCREEN; + else if (presentation_mode) + mode = EV_WINDOW_MODE_PRESENTATION; + + for (i = 0; files[i]; i++) { + const gchar *filename; + gchar *uri; + gchar *label; + GFile *file; + EvLinkDest *dest = NULL; + const gchar *app_uri; + + filename = files[i]; + label = get_label_from_filename (filename); + if (label) { + *label = 0; + label++; + dest = ev_link_dest_new_page_label (label); + } else if (global_dest) { + dest = g_object_ref (global_dest); + } + + file = g_file_new_for_commandline_arg (filename); + uri = g_file_get_uri (file); + g_object_unref (file); + + app_uri = ev_application_get_uri (EV_APP); + if (app_uri && strcmp (app_uri, uri) == 0) { + g_free (uri); + continue; + } + + + + ev_application_open_uri_at_dest (EV_APP, uri, screen, dest, + mode, ev_find_string, + GDK_CURRENT_TIME); + + if (dest) + g_object_unref (dest); + g_free (uri); + } +} + +int +main (int argc, char *argv[]) +{ + GOptionContext *context; + GError *error = NULL; + +#ifdef G_OS_WIN32 + + if (fileno (stdout) != -1 && + _get_osfhandle (fileno (stdout)) != -1) + { + /* stdout is fine, presumably redirected to a file or pipe */ + } + else + { + typedef BOOL (* WINAPI AttachConsole_t) (DWORD); + + AttachConsole_t p_AttachConsole = + (AttachConsole_t) GetProcAddress (GetModuleHandle ("kernel32.dll"), "AttachConsole"); + + if (p_AttachConsole != NULL && p_AttachConsole (ATTACH_PARENT_PROCESS)) + { + freopen ("CONOUT$", "w", stdout); + dup2 (fileno (stdout), 1); + freopen ("CONOUT$", "w", stderr); + dup2 (fileno (stderr), 2); + + } + } +#endif + + /* Init glib threads asap */ + if (!g_thread_supported ()) + g_thread_init (NULL); + +#ifdef ENABLE_NLS + /* Initialize the i18n stuff */ + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir()); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + context = g_option_context_new (N_("MATE Document Viewer")); + g_option_context_set_translation_domain(context, GETTEXT_PACKAGE); + g_option_context_add_main_entries (context, goption_options, GETTEXT_PACKAGE); + +#ifdef WITH_SMCLIENT + g_option_context_add_group (context, egg_sm_client_get_option_group ()); +#endif + + g_option_context_add_group (context, gtk_get_option_group (TRUE)); + + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_printerr ("Cannot parse arguments: %s\n", error->message); + g_error_free (error); + g_option_context_free (context); + + return 1; + } + g_option_context_free (context); + + if (preview_mode) { + gboolean retval; + + retval = launch_previewer (); + + return retval ? 0 : 1; + } + + if (!ev_init ()) + return 1; + + ev_stock_icons_init (); + +#if defined(WITH_SMCLIENT) && defined(GDK_WINDOWING_X11) + egg_set_desktop_file (MATEDATADIR "/applications/evince.desktop"); +#else + /* Manually set name and icon */ + g_set_application_name (_("Document Viewer")); + gtk_window_set_default_icon_name ("evince"); +#endif /* WITH_SMCLIENT && GDK_WINDOWING_X11 */ + + ev_application_load_session (EV_APP); + load_files (file_arguments); + + /* Change directory so we don't prevent unmounting in case the initial cwd + * is on an external device (see bug #575436) + */ + g_chdir (g_get_home_dir ()); + + gtk_main (); + + ev_shutdown (); + ev_stock_icons_shutdown (); + + return 0; +} diff --git a/test/Makefile.am b/test/Makefile.am new file mode 100644 index 00000000..3f0a90c5 --- /dev/null +++ b/test/Makefile.am @@ -0,0 +1,19 @@ + +dist_check_SCRIPTS = \ + test1.py \ + test2.py \ + test3.py \ + test4.py \ + test5.py + +TESTS = $(dist_check_SCRIPTS) + +EXTRA_DIST = \ + test-encrypt.pdf \ + test-links.pdf \ + test-mime.bin \ + test-page-labels.pdf \ + test6.py \ + test7.py + +-include $(top_srcdir)/git.mk diff --git a/test/test-encrypt.pdf b/test/test-encrypt.pdf new file mode 100644 index 00000000..8f8f5c1f Binary files /dev/null and b/test/test-encrypt.pdf differ diff --git a/test/test-links.pdf b/test/test-links.pdf new file mode 100644 index 00000000..0b1e6203 Binary files /dev/null and b/test/test-links.pdf differ diff --git a/test/test-mime.bin b/test/test-mime.bin new file mode 100644 index 00000000..0b1e6203 Binary files /dev/null and b/test/test-mime.bin differ diff --git a/test/test-page-labels.pdf b/test/test-page-labels.pdf new file mode 100644 index 00000000..c7d12671 Binary files /dev/null and b/test/test-page-labels.pdf differ diff --git a/test/test1.py b/test/test1.py new file mode 100755 index 00000000..42d83c01 --- /dev/null +++ b/test/test1.py @@ -0,0 +1,36 @@ +#!/usr/bin/python + +# This test opens the interface and just clicks around a bit. + +import os +os.environ['LANG']='C' + +from dogtail.procedural import * + +run('evince') + +# Test file->open +click('File', roleName='menu') +click('Open...', roleName='menu item') +focus.dialog('Open Document') +click('Cancel', roleName='push button') + +# Toolbar editor +click('Edit', roleName='menu') +click('Toolbar', roleName='menu item') +focus.dialog('Toolbar Editor') +click('Close', roleName='push button') + +# About dialog +click('Help', roleName='menu') +click('About', roleName='menu item') +focus.dialog('About Document Viewer') +click('Credits', roleName='push button') +focus.dialog('Credits') +click('Close', roleName='push button') +focus.dialog('About Document Viewer') +click('Close', roleName='push button') + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test2.py b/test/test2.py new file mode 100755 index 00000000..ca06b66b --- /dev/null +++ b/test/test2.py @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# This test opens a password encrypted file and tries to unlock it. + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-encrypt.pdf') + +# Try an incorrect password first +focus.dialog('Enter password') +focus.widget('Password Entry', roleName='password text') +type('wrong password') +click('Unlock Document', roleName='push button') +click('Cancel', roleName='push button') + +# Try again with the correct password +click('Unlock Document', roleName='push button') +focus.widget('Password Entry', roleName='password text') +type('Foo') +click('Unlock Document', roleName='push button') + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test3.py b/test/test3.py new file mode 100755 index 00000000..56b90df1 --- /dev/null +++ b/test/test3.py @@ -0,0 +1,15 @@ +#!/usr/bin/python + +# This test opens a file with wrong extenstion. + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-mime.bin') + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test4.py b/test/test4.py new file mode 100755 index 00000000..789030e3 --- /dev/null +++ b/test/test4.py @@ -0,0 +1,20 @@ +#!/usr/bin/python + +# This test tries document reload action. + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-links.pdf') + +# Reload document a few times +for i in range(1,6): + click('View', roleName='menu') + click('Reload', roleName='menu item') + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test5.py b/test/test5.py new file mode 100755 index 00000000..9fd7276e --- /dev/null +++ b/test/test5.py @@ -0,0 +1,24 @@ +#!/usr/bin/python + +# This test tries document reload action. + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-page-labels.pdf') + +focus.widget('page-label-entry') +focus.widget.text = "iii" +activate() + +if focus.widget.text != "III": + click('File', roleName='menu') + click('Close', roleName='menu item') + exit (1) + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test6.py b/test/test6.py new file mode 100755 index 00000000..89b6e5d0 --- /dev/null +++ b/test/test6.py @@ -0,0 +1,31 @@ +#!/usr/bin/python + +# Test printing + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] +homedir = os.environ["HOME"] + "/"; + +from dogtail.procedural import * + +if os.path.exists(homedir + "output.ps"): + os.unlink(homedir + "output.ps") + +run('evince', arguments=' '+srcdir+'/test-page-labels.pdf') + +click('File', roleName='menu') +click('Print...', roleName='menu item') + +focus.dialog('Print') +click('Print to File', roleName='table cell', raw=True) +click('Print', roleName='push button') + +statinfo = os.stat (homedir + "output.ps") +if statinfo.st_size > 100000: + exit(1) +os.unlink (homedir + "output.ps") + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/test/test7.py b/test/test7.py new file mode 100755 index 00000000..f104a472 --- /dev/null +++ b/test/test7.py @@ -0,0 +1,33 @@ +#!/usr/bin/python + +# Test printing + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-page-labels.pdf') + +#!/usr/bin/python +from dogtail.procedural import * + +focus.application('evince') +focus.frame('test-page-labels.pdf') +click('File', roleName='menu') +click('Print...', roleName='menu item') +focus.dialog('Print') +click('Pages:', roleName='radio button') +keyCombo('Tab') +type('1') +click('Page Setup', roleName='page tab', raw=True) +click('All sheets') +click('Even sheets') +click('Print Preview', roleName='push button') +keyCombo('Return') +click('Cancel') + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') diff --git a/thumbnailer/Makefile.am b/thumbnailer/Makefile.am new file mode 100644 index 00000000..bc5a3314 --- /dev/null +++ b/thumbnailer/Makefile.am @@ -0,0 +1,83 @@ + +bin_PROGRAMS = evince-thumbnailer + +evince_thumbnailer_SOURCES = \ + evince-thumbnailer.c + +evince_thumbnailer_CPPFLAGS = \ + -DEVINCEDATADIR=\"$(pkgdatadir)\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DMATELOCALEDIR=\"$(datadir)/locale\" \ + -DMATEICONDIR=\""$(datadir)/pixmaps"\" \ + $(AM_CPPFLAGS) + +evince_thumbnailer_CFLAGS = \ + $(FRONTEND_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(WARN_CFLAGS) \ + $(AM_CFLAGS) + +evince_thumbnailer_LDFLAGS = $(AM_LDFLAGS) + +if PLATFORM_WIN32 +evince_thumbnailer_LDFLAGS += -mwindows +endif + +evince_thumbnailer_LDADD = \ + $(top_builddir)/libdocument/libevdocument.la \ + $(FRONTEND_LIBS) + +schema_files = \ + evince-thumbnailer-dvi.schemas.in \ + evince-thumbnailer-djvu.schemas.in \ + evince-thumbnailer-comics.schemas.in \ + evince-thumbnailer-ps.schemas.in \ + evince-thumbnailer.schemas.in + +if WITH_MATECONF + +@INTLTOOL_SCHEMAS_RULE@ + +schema_DATA = + +if ENABLE_PDF +schema_DATA += evince-thumbnailer.schemas +endif + +if ENABLE_PS +schema_DATA += evince-thumbnailer-ps.schemas +endif + +if ENABLE_DJVU +schema_DATA += evince-thumbnailer-djvu.schemas +endif + +if ENABLE_DVI +schema_DATA += evince-thumbnailer-dvi.schemas +endif + +if ENABLE_COMICS +schema_DATA += evince-thumbnailer-comics.schemas +endif + +schemadir = $(MATECONF_SCHEMA_FILE_DIR) + +install-data-local: +if MATECONF_SCHEMAS_INSTALL + if test -z "$(DESTDIR)" ; then \ + for p in $(schema_DATA) ; do \ + MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(top_builddir)/thumbnailer/$$p >&1 > /dev/null; \ + done \ + fi +endif + +endif # WITH_MATECONF + +EXTRA_DIST = \ + $(schema_files) + +DISTCLEANFILES = \ + $(schema_DATA) + +-include $(top_srcdir)/git.mk diff --git a/thumbnailer/evince-thumbnailer-comics.schemas.in b/thumbnailer/evince-thumbnailer-comics.schemas.in new file mode 100644 index 00000000..2f00a802 --- /dev/null +++ b/thumbnailer/evince-thumbnailer-comics.schemas.in @@ -0,0 +1,106 @@ +<mateconfschemafile> + <schemalist> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbz/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbz/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbz/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbz/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbr/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbr/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbr/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbr/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cb7/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-cb7/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cb7/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-cb7/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbt/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbt/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-cbt/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-cbt/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + </schemalist> +</mateconfschemafile> diff --git a/thumbnailer/evince-thumbnailer-djvu.schemas.in b/thumbnailer/evince-thumbnailer-djvu.schemas.in new file mode 100644 index 00000000..4ea35272 --- /dev/null +++ b/thumbnailer/evince-thumbnailer-djvu.schemas.in @@ -0,0 +1,30 @@ +<mateconfschemafile> + <schemalist> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@vnd.djvu/enable</key> + <applyto>/desktop/mate/thumbnailers/image@vnd.djvu/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@vnd.djvu/command</key> + <applyto>/desktop/mate/thumbnailers/image@vnd.djvu/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + </schemalist> +</mateconfschemafile> diff --git a/thumbnailer/evince-thumbnailer-dvi.schemas.in b/thumbnailer/evince-thumbnailer-dvi.schemas.in new file mode 100644 index 00000000..eab49a61 --- /dev/null +++ b/thumbnailer/evince-thumbnailer-dvi.schemas.in @@ -0,0 +1,83 @@ +<mateconfschemafile> + <schemalist> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-dvi/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-dvi/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-dvi/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-dvi/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzdvi/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzdvi/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzdvi/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzdvi/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzdvi/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzdvi/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzdvi/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzdvi/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + </schemalist> +</mateconfschemafile> diff --git a/thumbnailer/evince-thumbnailer-ps.schemas.in b/thumbnailer/evince-thumbnailer-ps.schemas.in new file mode 100644 index 00000000..6866ef5a --- /dev/null +++ b/thumbnailer/evince-thumbnailer-ps.schemas.in @@ -0,0 +1,154 @@ +<mateconfschemafile> + <schemalist> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@postscript/enable</key> + <applyto>/desktop/mate/thumbnailers/application@postscript/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@postscript/command</key> + <applyto>/desktop/mate/thumbnailers/application@postscript/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzpostscript/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzpostscript/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzpostscript/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzpostscript/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzpostscript/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzpostscript/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzpostscript/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzpostscript/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-eps/enable</key> + <applyto>/desktop/mate/thumbnailers/image@x-eps/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-eps/command</key> + <applyto>/desktop/mate/thumbnailers/image@x-eps/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-bzeps/enable</key> + <applyto>/desktop/mate/thumbnailers/image@x-bzeps/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-bzeps/command</key> + <applyto>/desktop/mate/thumbnailers/image@x-bzeps/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-gzeps/enable</key> + <applyto>/desktop/mate/thumbnailers/image@x-gzeps/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/image@x-gzeps/command</key> + <applyto>/desktop/mate/thumbnailers/image@x-gzeps/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> + + </schemalist> +</mateconfschemafile> diff --git a/thumbnailer/evince-thumbnailer.c b/thumbnailer/evince-thumbnailer.c new file mode 100644 index 00000000..23ad92b0 --- /dev/null +++ b/thumbnailer/evince-thumbnailer.c @@ -0,0 +1,309 @@ +/* + Copyright (C) 2005 Fernando Herrera <fherrera@onirica.com> + + 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 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include <config.h> + +#include <evince-document.h> + +#include <gio/gio.h> + +#include <stdlib.h> +#include <string.h> + +#ifdef G_OS_WIN32 +#include <io.h> +#include <conio.h> +#if !(_WIN32_WINNT >= 0x0500) +#error "_WIN32_WINNT must be defined >= 0x0500" +#endif +#include <windows.h> +#endif + +#define THUMBNAIL_SIZE 128 + +static gint size = THUMBNAIL_SIZE; +static const gchar **file_arguments; + +static const GOptionEntry goption_options[] = { + { "size", 's', 0, G_OPTION_ARG_INT, &size, NULL, "SIZE" }, + { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_arguments, NULL, "<input> <ouput>" }, + { NULL } +}; + +struct AsyncData { + EvDocument *document; + const gchar *output; + gint size; + gboolean success; +}; + +static void +delete_temp_file (GFile *file) +{ + ev_tmp_file_unlink (file); + g_object_unref (file); +} + +static EvDocument * +evince_thumbnailer_get_document (GFile *file) +{ + EvDocument *document = NULL; + gchar *uri; + GFile *tmp_file = NULL; + GError *error = NULL; + + if (!g_file_is_native (file)) { + gchar *base_name, *template; + + base_name = g_file_get_basename (file); + template = g_strdup_printf ("document.XXXXXX-%s", base_name); + g_free (base_name); + + tmp_file = ev_mkstemp_file (template, &error); + g_free (template); + if (!tmp_file) { + g_printerr ("Error loading remote document: %s\n", error->message); + g_error_free (error); + + return NULL; + } + + g_file_copy (file, tmp_file, G_FILE_COPY_OVERWRITE, + NULL, NULL, NULL, &error); + if (error) { + g_printerr ("Error loading remote document: %s\n", error->message); + g_error_free (error); + g_object_unref (tmp_file); + + return NULL; + } + uri = g_file_get_uri (tmp_file); + } else { + uri = g_file_get_uri (file); + } + + document = ev_document_factory_get_document (uri, &error); + if (tmp_file) { + if (document) { + g_object_weak_ref (G_OBJECT (document), + (GWeakNotify)delete_temp_file, + tmp_file); + } else { + ev_tmp_file_unlink (tmp_file); + g_object_unref (tmp_file); + } + } + g_free (uri); + if (error) { + if (error->domain == EV_DOCUMENT_ERROR && + error->code == EV_DOCUMENT_ERROR_ENCRYPTED) { + /* FIXME: Create a thumb for cryp docs */ + g_error_free (error); + return NULL; + } + g_printerr ("Error loading document: %s\n", error->message); + g_error_free (error); + return NULL; + } + + return document; +} + +static gboolean +evince_thumbnail_pngenc_get (EvDocument *document, const char *thumbnail, int size) +{ + EvRenderContext *rc; + double width, height; + GdkPixbuf *pixbuf; + EvPage *page; + + page = ev_document_get_page (document, 0); + + ev_document_get_page_size (document, 0, &width, &height); + + rc = ev_render_context_new (page, 0, size / width); + pixbuf = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (document), + rc, FALSE); + g_object_unref (rc); + g_object_unref (page); + + if (pixbuf != NULL) { + const char *overlaid_icon_name = NULL; + + if (overlaid_icon_name) { + GdkPixbuf *overlaid_pixbuf; + +#ifdef G_OS_WIN32 + gchar *dir = g_win32_get_package_installation_directory_of_module (NULL); + gchar *overlaid_icon_path = g_build_filename (dir, "share", "evince", overlaid_icon_name, NULL); + g_free (dir); +#else + gchar *overlaid_icon_path = g_strdup_printf ("%s/%s", EVINCEDATADIR, overlaid_icon_name); +#endif + overlaid_pixbuf = gdk_pixbuf_new_from_file (overlaid_icon_path, NULL); + g_free (overlaid_icon_path); + if (overlaid_pixbuf != NULL) { + int delta_height, delta_width; + + delta_width = gdk_pixbuf_get_width (pixbuf) - + gdk_pixbuf_get_width (overlaid_pixbuf); + delta_height = gdk_pixbuf_get_height (pixbuf) - + gdk_pixbuf_get_height (overlaid_pixbuf); + + gdk_pixbuf_composite (overlaid_pixbuf, pixbuf, + delta_width, delta_height, + gdk_pixbuf_get_width (overlaid_pixbuf), + gdk_pixbuf_get_height (overlaid_pixbuf), + delta_width, delta_height, + 1, 1, + GDK_INTERP_NEAREST, 100); + + g_object_unref (overlaid_pixbuf); + } + } + + if (gdk_pixbuf_save (pixbuf, thumbnail, "png", NULL, NULL)) { + g_object_unref (pixbuf); + return TRUE; + } + + g_object_unref (pixbuf); + } + + return FALSE; +} + +static gpointer +evince_thumbnail_pngenc_get_async (struct AsyncData *data) +{ + ev_document_doc_mutex_lock (); + data->success = evince_thumbnail_pngenc_get (data->document, + data->output, + data->size); + ev_document_doc_mutex_unlock (); + + g_idle_add ((GSourceFunc)gtk_main_quit, NULL); + + return NULL; +} + +static void +print_usage (GOptionContext *context) +{ + gchar *help; + + help = g_option_context_get_help (context, TRUE, NULL); + g_print ("%s", help); + g_free (help); +} + +int +main (int argc, char *argv[]) +{ + EvDocument *document; + GOptionContext *context; + const char *input; + const char *output; + GFile *file; + GError *error = NULL; + + context = g_option_context_new ("- MATE Document Thumbnailer"); + g_option_context_add_main_entries (context, goption_options, NULL); + + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_printerr ("%s\n", error->message); + g_error_free (error); + print_usage (context); + g_option_context_free (context); + + return -1; + } + + input = file_arguments ? file_arguments[0] : NULL; + output = input ? file_arguments[1] : NULL; + if (!input || !output) { + print_usage (context); + g_option_context_free (context); + + return -1; + } + + g_option_context_free (context); + + if (size < 1) { + g_print ("Size cannot be smaller than 1 pixel\n"); + return -1; + } + + input = file_arguments[0]; + output = file_arguments[1]; + + g_type_init (); + + if (!g_thread_supported ()) + g_thread_init (NULL); + + if (!ev_init ()) + return -1; + + file = g_file_new_for_commandline_arg (input); + document = evince_thumbnailer_get_document (file); + g_object_unref (file); + + if (!document) { + ev_shutdown (); + return -2; + } + + if (!EV_IS_DOCUMENT_THUMBNAILS (document)) { + g_object_unref (document); + ev_shutdown (); + return -2; + } + + if (EV_IS_ASYNC_RENDERER (document)) { + struct AsyncData data; + + gtk_init (&argc, &argv); + + data.document = document; + data.output = output; + data.size = size; + + g_thread_create ((GThreadFunc) evince_thumbnail_pngenc_get_async, + &data, FALSE, NULL); + + gtk_main (); + + g_object_unref (document); + ev_shutdown (); + + return data.success ? 0 : -2; + } + + if (!evince_thumbnail_pngenc_get (document, output, size)) { + g_object_unref (document); + ev_shutdown (); + return -2; + } + + g_object_unref (document); + ev_shutdown (); + + return 0; +} diff --git a/thumbnailer/evince-thumbnailer.schemas.in b/thumbnailer/evince-thumbnailer.schemas.in new file mode 100644 index 00000000..6dafb8f0 --- /dev/null +++ b/thumbnailer/evince-thumbnailer.schemas.in @@ -0,0 +1,80 @@ +<mateconfschemafile> + <schemalist> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@pdf/enable</key> + <applyto>/desktop/mate/thumbnailers/application@pdf/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Enable thumbnailing of PDF Documents</short> + <long>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@pdf/command</key> + <applyto>/desktop/mate/thumbnailers/application@pdf/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short>Thumbnail command for PDF Documents</short> + <long>Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzpdf/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzpdf/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Enable thumbnailing of PDF Documents</short> + <long>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-bzpdf/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-bzpdf/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short>Thumbnail command for PDF Documents</short> + <long>Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzpdf/enable</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzpdf/enable</applyto> + <owner>evince</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Enable thumbnailing of PDF Documents</short> + <long>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</long> + </locale> + </schema> + + + <schema> + <key>/schemas/desktop/mate/thumbnailers/application@x-gzpdf/command</key> + <applyto>/desktop/mate/thumbnailers/application@x-gzpdf/command</applyto> + <owner>evince</owner> + <type>string</type> + <default>evince-thumbnailer -s %s %u %o</default> + <locale name="C"> + <short>Thumbnail command for PDF Documents</short> + <long>Valid command plus arguments for the PDF Document thumbnailer. See Caja thumbnailer documentation for more information.</long> + </locale> + </schema> + + </schemalist> +</mateconfschemafile> -- cgit v1.2.1